blob: f8272bb2d99efe0e103415ca0adcf302c49d0103 [file] [log] [blame]
2014-04-02 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Transition class CSSImageGeneratorValue/class StyleImage (and its dependencies) from
IntSize to FloatSize to enable subpixel sized (generated)images.
https://bugs.webkit.org/show_bug.cgi?id=130659
Reviewed by Simon Fraser and Andreas Kling.
This is in preparation to support subpixel positioned/sized background images. Generated images
needs to be able to sized on device pixels.
No change in behavior.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSCanvasValue.cpp:
(WebCore::CSSCanvasValue::fixedSize):
(WebCore::CSSCanvasValue::image):
* css/CSSCanvasValue.h:
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::fixedSize):
(WebCore::CSSCrossfadeValue::image):
* css/CSSCrossfadeValue.h:
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::fixedSize):
(WebCore::CSSFilterImageValue::image):
* css/CSSFilterImageValue.h:
* css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::image):
(WebCore::positionFromValue):
(WebCore::CSSGradientValue::computeEndPoint):
(WebCore::endPointsFromAngle):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSGradientValue.h:
(WebCore::CSSGradientValue::fixedSize):
* css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::cachedImageForSize):
(WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
(WebCore::CSSImageGeneratorValue::evictCachedGeneratedImage):
(WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
(WebCore::CSSImageGeneratorValue::image):
(WebCore::CSSImageGeneratorValue::fixedSize):
* css/CSSImageGeneratorValue.h:
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::setContainerSizeForRenderer):
* loader/cache/CachedImage.h:
* platform/graphics/FloatSizeHash.h: Added.
(WTF::FloatHash<WebCore::FloatSize>::hash):
(WTF::FloatHash<WebCore::FloatSize>::equal):
(WTF::HashTraits<WebCore::FloatSize>::constructDeletedValue):
(WTF::HashTraits<WebCore::FloatSize>::isDeletedValue):
* platform/graphics/LayoutSize.h:
(WebCore::flooredForPainting):
* rendering/RenderImageResourceStyleImage.h:
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::computePreferredLogicalWidths):
* rendering/style/StyleCachedImage.cpp:
(WebCore::StyleCachedImage::imageSize):
(WebCore::StyleCachedImage::setContainerSizeForRenderer):
(WebCore::StyleCachedImage::image):
* rendering/style/StyleCachedImage.h:
* rendering/style/StyleCachedImageSet.cpp:
(WebCore::StyleCachedImageSet::imageSize):
(WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
(WebCore::StyleCachedImageSet::image):
* rendering/style/StyleCachedImageSet.h:
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize):
(WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
(WebCore::StyleGeneratedImage::image):
* rendering/style/StyleGeneratedImage.h:
* rendering/style/StyleImage.h:
* rendering/style/StylePendingImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::setContainerSizeForRenderer):
* svg/graphics/SVGImageCache.h:
2014-04-02 Gergo Balogh <gbalogh.u-szeged@partner.samsung.com>
Warning fix for RenderLayer.
https://bugs.webkit.org/show_bug.cgi?id=131090
Reviewed by Csaba Osztrogonác.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantDependentFlags):
2014-04-02 Frédéric Wang <fred.wang@free.fr>
Operator stretching: read the Open Type MATH table
https://bugs.webkit.org/show_bug.cgi?id=130324
Reviewed by Chris Fleizach.
We parse and expose some data from the OpenType MATH table that will be
be relevant for at least the MathML operator stretching (bug 130322):
math constants, italic corrections and size variants / glyph assembly.
This will be tested when the MathML code uses the data.
* WebCore.xcodeproj/project.pbxproj: Add OpenTypeTypes.h to the Mac build.
* platform/graphics/opentype/OpenTypeMathData.cpp: We implement the low-level parsing of the MATH table.
(WebCore::OpenType::MathItalicsCorrectionInfo::getItalicCorrection):
(WebCore::OpenType::MathGlyphInfo::mathItalicsCorrectionInfo):
(WebCore::OpenType::GlyphAssembly::getAssemblyParts):
(WebCore::OpenType::MathGlyphConstruction::getSizeVariants):
(WebCore::OpenType::MathGlyphConstruction::getAssemblyParts):
(WebCore::OpenType::MathVariants::mathGlyphConstruction):
(WebCore::OpenType::MATHTable::mathConstants):
(WebCore::OpenType::MATHTable::mathGlyphInfo):
(WebCore::OpenType::MATHTable::mathVariants):
(WebCore::OpenTypeMathData::OpenTypeMathData): We load the MATH table.
(WebCore::OpenTypeMathData::getMathConstant): We add a function to get values from the MathConstant subtable.
(WebCore::OpenTypeMathData::getItalicCorrection): We add a function to get italic correction from the MathGlyphInfo subtable.
(WebCore::OpenTypeMathData::getMathVariants): We add a function to get size variants / glyph assembly from the MathVariants subtable.
* platform/graphics/opentype/OpenTypeMathData.h: We expose three new functions to get math data.
* platform/graphics/opentype/OpenTypeTypes.h: We share the coverage tables that are common to vertical and math data.
(WebCore::OpenType::TableWithCoverage::getCoverageIndex): We add a function to get the coverage index from a given glyph.
* platform/graphics/opentype/OpenTypeVerticalData.cpp: We move the coverage tables to OpenTypeTypes.h.
2014-04-02 Ion Rosca <rosca@adobe.com>
[CSS Blending] Compositing requirements for blending are not computed correctly
https://bugs.webkit.org/show_bug.cgi?id=130664
Reviewed by Dean Jackson.
Tests: css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html
css3/compositing/blend-mode-with-accelerated-sibling.html
Compositing requirements for blending: if a layer having blend mode
other than normal is composited for any reason, its closest stacking
context ancestor should be composited as well.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
* rendering/RenderLayer.h: added a new field,
m_hasUnisolatedCompositedBlendingDescendants, which is true if the layer
has composited blending descendants not isolated by any stacking context child;
added a new method: isolatesCompositedBlending(), which is true if we should
accelerate that layer in order to perform isolation correctly.
* rendering/RenderLayerCompositor.cpp:
(WebCore::CompositingState::CompositingState): m_subtreeHasBlending was renamed
m_hasUnisolatedCompositedBlendingDescendants in order to be more self-explanatory.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
computes the isolation requirements for composited blending by
(re)setting RenderLayer::m_hasUnisolatedCompositedBlendingDescendants flag.
(WebCore::RenderLayerCompositor::reasonsForCompositing):
fixed the reason of compositing: isolation instead of blending.
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
* rendering/RenderLayerCompositor.h:
2014-04-02 Frédéric Wang <fred.wang@free.fr>
Operator stretching: expose a math data API
https://bugs.webkit.org/show_bug.cgi?id=130572
Reviewed by Chris Fleizach.
We expose a new SimpleFontData API to give access to the data from the
OpenType MATH table. The class OpenTypeMathData will
be implemented in bug 130324. On Darwin platform, we also implement the
missing FontPlatformData::openTypeTable function which will be necessary
to load the OpenType MATH table. The changes are intended to be used
for MathML operator stretching (bug 130322) so tests are not added yet.
* CMakeLists.txt: add new OpenTypeMathData files.
* WebCore.vcxproj/WebCore.vcxproj: ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
* platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::SimpleFontData):
(WebCore::SimpleFontData::mathData): Initialize and return the math data.
* platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
* platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
(WebCore::OpenTypeMathData::OpenTypeMathData):
* platform/graphics/opentype/OpenTypeMathData.h: Added.
(WebCore::OpenTypeMathData::create):
(WebCore::OpenTypeMathData::hasMathData):
2014-04-01 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Displaying region's children in another region not supported
https://bugs.webkit.org/show_bug.cgi?id=130735
Reviewed by David Hyatt.
With http://trac.webkit.org/changeset/166353, we disabled the possibility
of collecting the region's children into another flow and displaying them
in another region.
I added a new test for this and also changed the plain ASSERT in Element dtor
to ASSERT_WITH_SECURITY_IMPLICATION to better reflect the meaning of the assertion.
Test: fast/regions/region-child-not-flowed.html
* dom/Element.cpp:
(WebCore::Element::~Element):
2014-04-01 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Simplify the RenderFlowThread state pusher
https://bugs.webkit.org/show_bug.cgi?id=131035
Reviewed by David Hyatt.
The RenderFlowThread state pusher is desynchronized from the RenderView layout state pusher
by one renderer. This patch fixes the anomaly by correctly ordering the push and pop operations
between the two systems.
Tests: no functional change, no new tests.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::pushFlowThreadLayoutState):
(WebCore::RenderFlowThread::popFlowThreadLayoutState):
(WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion):
* rendering/RenderView.cpp:
(WebCore::RenderView::pushLayoutState):
* rendering/RenderView.h:
2014-04-01 Beth Dakin <bdakin@apple.com>
willReveal edge events should be hooked up for overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=131071
-and corresponding-
<rdar://problem/16190392>
Reviewed by Sam Weinig.
This patch moves the will reveal logic from FrameView to Document so that it can
be shared for RenderLayers.
This is mostly just a moved function, but now the function takes an Element* that
represents the target of the event if the target is not the window.
* dom/Document.cpp:
(WebCore::Document::sendWillRevealEdgeEventsIfNeeded):
* dom/Document.h:
No longer implement sendWillRevealEdgeEventsIfNeeded() on FrameView or
ScrollableArea at all. Call into Document instead.
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
(WebCore::FrameView::sendWillRevealEdgeEventsIfNeeded): Deleted.
* page/FrameView.h:
* platform/ScrollableArea.h:
(WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded): Deleted.
Call sendWillRevealEdgeEventsIfNeeded() after sending scroll events.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
2014-04-01 Jon Honeycutt <jhoneycutt@apple.com>
Crash in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients
<https://bugs.webkit.org/show_bug.cgi?id=121887>
<rdar://problem/15073043>
Reviewed by Dean Jackson.
Test: svg/filters/first-letter-crash.html
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::buildReferenceFilter):
Added a null check to prevent crashes for anonymous RenderObjects.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::filterNeedsRepaint):
Get the enclosing element, if there is one, and recalculate its style.
We use the enclosing element so that we recalculate style for the
ancestor of an anonymous RenderElement.
(WebCore::RenderLayer::enclosingElement):
Remove an assertion; we may now reach this condition if loading a
cached SVG document results in RenderLayer::filterNeedsRepaint() being
called before the object has been inserted into the render tree.
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::notifyFinished):
Tell the RenderLayer that the filter needs repainting.
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
Get the Element from the renderer rather than asking the renderer's
Element, which will be null for anonymous RenderObjects.
* rendering/RenderLayerFilterInfo.h:
Removed declaration for the old workaround function, layerElement().
2014-04-01 Ryuan Choi <ryuan.choi@samsung.com>
Build break when disabled VIDEO since r166261
https://bugs.webkit.org/show_bug.cgi?id=131087
Reviewed by Gyuyoung Kim.
* testing/Internals.cpp: Added ENABLE(VIDEO) guards
(WebCore::Internals::simulateSystemSleep):
(WebCore::Internals::simulateSystemWake):
2014-04-01 Timothy Hatcher <timothy@apple.com>
Remove HeapProfiler from the Web Inspector protocol.
https://bugs.webkit.org/show_bug.cgi?id=131070
Reviewed by Joseph Pecoraro.
* CMakeLists.txt:
* DerivedSources.make:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptHeapSnapshot.h: Removed.
* bindings/js/ScriptProfiler.h:
(WebCore::ScriptProfiler::takeHeapSnapshot): Deleted.
(WebCore::ScriptProfiler::isSampling): Deleted.
(WebCore::ScriptProfiler::hasHeapProfiler): Deleted.
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorHeapProfilerAgent.cpp: Removed.
* inspector/InspectorHeapProfilerAgent.h: Removed.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
(WebCore::InspectorProfilerAgent::getProfileHeaders):
(WebCore::InspectorProfilerAgent::removeProfile):
(WebCore::InspectorProfilerAgent::resetState): The CommandLineAPIHost call to
clear inspected objects should have not been here. It was only needed by the
HeapProfilerAgent.
(WebCore::InspectorProfilerAgent::resetFrontendProfiles):
(WebCore::InspectorProfilerAgent::collectGarbage): Deleted.
(WebCore::InspectorProfilerAgent::createSnapshotHeader): Deleted.
(WebCore::InspectorProfilerAgent::isSampling): Deleted.
(WebCore::InspectorProfilerAgent::hasHeapProfiler): Deleted.
(WebCore::InspectorProfilerAgent::getHeapSnapshot): Deleted.
(WebCore::InspectorProfilerAgent::takeHeapSnapshot): Deleted.
(WebCore::InspectorProfilerAgent::getObjectByHeapObjectId): Deleted.
(WebCore::InspectorProfilerAgent::getHeapObjectId): Deleted.
* inspector/InspectorProfilerAgent.h:
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorHeapProfilerAgent): Deleted.
(WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent): Deleted.
* inspector/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::addInspectedHeapObject): Deleted.
* inspector/WebConsoleAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/protocol/HeapProfiler.json: Removed.
* inspector/protocol/Profiler.json:
2014-04-01 Zoltan Horvath <zoltan@webkit.org>
[CSS Exclusions] Remove exclusions parsing support
https://bugs.webkit.org/show_bug.cgi?id=131046
Reviewed by David Hyatt.
CSS Exclusions specification [1] needs some evolution before the actual implementation happens.
We have only the parsing code in WebKit for -webkit-wrap-flow and -webkit-wrap-through.
This patch removes the code from the trunk for now, it doesn't make sense to keep it around.
[1] http://www.w3.org/TR/css3-exclusions/
Removed existing parsing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
(WebCore::CSSPrimitiveValue::operator WrapFlow): Deleted.
(WebCore::CSSPrimitiveValue::operator WrapThrough): Deleted.
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-04-01 Timothy Hatcher <timothy@apple.com>
Remove the rest of the old Canvas inspection support.
https://bugs.webkit.org/show_bug.cgi?id=131066
Reviewed by Joseph Pecoraro.
* CMakeLists.txt: Removed Canvas.json.
* DerivedSources.make: Ditto.
* inspector/InjectedScriptCanvasModuleSource.js: Removed.
* inspector/protocol/Canvas.json: Removed.
2014-04-01 Alexey Proskuryakov <ap@apple.com>
Eliminate HTMLFormElement::m_shouldSubmit
https://bugs.webkit.org/show_bug.cgi?id=131055
Reviewed by Tim Horton.
m_shouldSubmit was used for two purposes:
- as a return value in a function whose return value is ignored by all callers;
- to make a decision that's local to a function.
There is no need for it to be an instance variable.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::submit):
* html/HTMLFormElement.h:
2014-04-01 Benjamin Poulain <bpoulain@apple.com>
Remove a couple of useless static strings
https://bugs.webkit.org/show_bug.cgi?id=131003
Reviewed by David Kilzer.
There is zero value in keeping those strings alive.
* css/StyleProperties.cpp:
(WebCore::isInitialOrInherit):
2014-04-01 Myles C. Maxfield <mmaxfield@apple.com>
svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html and svg/css/font-face-crash.html frequently assert in ComplexTextController::offsetForPosition
https://bugs.webkit.org/show_bug.cgi?id=119747
Reviewed by Simon Fraser.
Even though kerning and ligatures currently don't work with the
simple text path, messing those up is better than creating null
CTRun and CTLine objects.
Rather than calling the badly-named renderingContext() function on TextRun objects
to determine if they are drawn with an SVG font, this patch creates a wrapper function
with a better name and uses that instead.
Test: svg/text/svg-font-hittest.html
* platform/graphics/Font.cpp:
(WebCore::isDrawnWithSVGFont): Wrapper around renderingContext()
(WebCore::Font::drawText): Use wrapper function
(WebCore::Font::drawEmphasisMarks): Use wrapper function
(WebCore::Font::width): Use wrapper function
(WebCore::Font::selectionRectForText): Use wrapper function
(WebCore::Font::offsetForPosition): If we are using an SVG font, use the simple path
instead of the complex one
(WebCore::Font::codePath): Use wrapper function
* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::ctFont):
2014-04-01 Daniel Bates <dabates@apple.com>
RenderQuote must destroy remaining text renderer before first letter renderer
https://bugs.webkit.org/show_bug.cgi?id=78023
<rdar://problem/10830009>
Reviewed by Brent Fulgham.
Merged from Blink (patch by Abhishek Arya):
https://src.chromium.org/viewvc/blink?view=rev&revision=151270
Following the fix for <https://bugs.webkit.org/show_bug.cgi?id=114586>, a
RenderQuote may have child render objects for the first letter of its text
and everything following the first letter so as to support the CSS first-
letter property. The latter renderer is responsible for destroying the former
on destruction. It's sufficient to reverse the destruction of the children of
RenderQuote to ensure that we destroy the remaining text renderer before we
destroy the first letter renderer.
Test: fast/css-generated-content/quote-first-letter-crash.html
* rendering/RenderQuote.cpp:
(WebCore::RenderQuote::updateText):
2014-04-01 David Kilzer <ddkilzer@apple.com>
Do not allow HTTP refresh headers to refresh to javascript: URLs
<http://webkit.org/b/119051>
<rdar://problem/14536453>
Reviewed by Alexey Proskuryakov.
Merged from Blink (patch by tsepez@chromium.org):
https://src.chromium.org/viewvc/blink?revision=153912&view=revision
http://crbug.com/258151
This behaviour has been standard in IE since IE7. This makes us both
more compatible and less vulnerable to XSS.
Tests: http/tests/security/no-javascript-location-percent-escaped.html
http/tests/security/no-javascript-location.html
http/tests/security/no-javascript-refresh-percent-escaped.php
http/tests/security/no-javascript-refresh-spaces.php
http/tests/security/no-javascript-refresh-static-percent-escaped.html
http/tests/security/no-javascript-refresh-static-spaces.html
http/tests/security/no-javascript-refresh-static.html
http/tests/security/no-javascript-refresh.php
* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::receivedFirstData):
- Do not fire meta http refresh for a javascript: URL protocol.
2014-04-01 Pratik Solanki <psolanki@apple.com>
Unreviewed build fix. Remove duplicate file entries.
* WebCore.xcodeproj/project.pbxproj:
2014-03-31 Simon Fraser <simon.fraser@apple.com>
Enable WEB_TIMING on Mac and iOS
https://bugs.webkit.org/show_bug.cgi?id=128064
Reviewed by Sam Weinig, Brent Fulgham.
Enable WEB_TIMING. Add PerformanceTiming.cpp and JSPerformanceTiming.cpp
to the project.
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
2014-04-01 James Craig <jcraig@apple.com>
AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
roleValue is ApplicationAlertRole || ApplicationStatusRole
https://bugs.webkit.org/show_bug.cgi?id=130907
Reviewed by Chris Fleizach.
Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
platform/mac/accessibility/aria-liveregions-attributes.html:
Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Fixing debug builds after r166586.
* svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener): Fix the ASSERT.
(WebCore::SVGElement::removeEventListener): Ditto.
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
Prevent unnecessary copies in compareEqual template
https://bugs.webkit.org/show_bug.cgi?id=131014
Reviewed by Antti Koivisto.
* rendering/style/RenderStyle.h:
(compareEqual): Casting the second parameter to a non-const, non-reference type
causes an extra copy of that object. Casting to the const reference type of the
first parameter avoids that.
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
Avoid unnecessary HashSet copies when calling collectInstancesForSVGElement
https://bugs.webkit.org/show_bug.cgi?id=131020
Reviewed by Andreas Kling.
Remove collectInstancesForSVGElement() to avoid HashSet copies when assigning a const
HashSet reference to a non-const HashSet reference. Instead, range-based for-loops are
deployed to iterate directly over the const reference to HashSet that's returned by
SVGElement::instancesForElement(). SVGElement::containingShadowRoot() return value
is checked to see if the iteration should be performed in the first place, preserving
the behavior of collectInstancesForSVGElement().
* svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):
(WebCore::collectInstancesForSVGElement): Deleted.
2014-04-01 Zan Dobersek <zdobersek@igalia.com>
Move the attributes HashMap out of the parseAttributes function
https://bugs.webkit.org/show_bug.cgi?id=131019
Reviewed by Andreas Kling.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::parseAttributes): Avoid copying the HashMap object that's being returned by
converting it to an xvalue through using std::move() in the return statement.
2014-04-01 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
https://bugs.webkit.org/show_bug.cgi?id=130643
Reviewed by Simon Fraser.
This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
subpixel sizing on hidpi resolutions, both generated and hidpi images can.
This patch does not change Image behavior in general as both position and size are still snapped to integral values.
No change in behavior.
* WebCore.exp.in:
* css/CSSCrossfadeValue.cpp:
(WebCore::CSSCrossfadeValue::fixedSize):
* css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::fixedSize):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::drawImageIntoBuffer):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
* platform/Cursor.cpp:
(WebCore::determineHotSpot):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::size):
(WebCore::BitmapImage::currentFrameSize):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::drawCrossfade):
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/Gradient.cpp:
(WebCore::Gradient::adjustParametersForTiledDrawing):
* platform/graphics/Gradient.h:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::drawPattern):
* platform/graphics/GradientImage.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::createCompatibleBuffer):
* platform/graphics/GraphicsContext.h:
* platform/graphics/Image.cpp:
(WebCore::Image::adjustSourceRectForDownSampling):
* platform/graphics/Image.h:
(WebCore::Image::setContainerSize):
(WebCore::Image::rect):
(WebCore::Image::width):
(WebCore::Image::height):
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::create):
* platform/graphics/IntPoint.cpp:
(WebCore::IntPoint::IntPoint):
* platform/graphics/IntPoint.h:
* platform/graphics/IntSize.cpp:
(WebCore::IntSize::IntSize):
* platform/graphics/IntSize.h:
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::Image::drawPattern):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/cg/ImageBufferDataCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::size):
(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
(WebCore::applyRotationForPainting):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/cg/PatternCG.cpp:
(WebCore::Pattern::createPlatformPattern):
* platform/graphics/mac/GraphicsContextMac.mm:
* platform/graphics/mac/IconMac.mm:
* platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
* platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
(WebCore::CoordinatedImageBacking::update):
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* platform/win/DragImageCGWin.cpp:
(WebCore::createDragImageFromImage):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::writeImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageSizeForError):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::drawPlatformResizerImage):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::setContainerSize):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageSizeForRenderer):
* svg/graphics/SVGImageCache.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::size):
* svg/graphics/SVGImageForContainer.h:
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::externalRepresentation):
* testing/Internals.cpp:
(WebCore::Internals::getCurrentCursorInfo):
2014-04-01 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix when disabled ACCESSIBILITY
* accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
Separated macros not to check ATK version when disabled ACCESSIBILITY
2014-04-01 Gyuyoung Kim <gyuyoung.kim@samsung.com>
[CMake][EFL] Enable CSS JIT
https://bugs.webkit.org/show_bug.cgi?id=131010
Reviewed by Benjamin Poulain.
Add an inclusion path for enabling CSS JIT on EFL and GTK ports.
This patch only enables it for EFL port.
* CMakeLists.txt:
2014-04-01 Martin Robinson <mrobinson@igalia.com>
[GTK] Readonly attributes installed as readwrite in GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=130978
Reviewed by Carlos Garcia Campos.
Unify how we decide if an attribute is readable or writeable and improve the code.
This results in some attributes now being marked as read-only which didn't have
corresponding case statements in the set_property switch statements and also correctly
installs set_property support for some more POD types.
* bindings/scripts/CodeGeneratorGObject.pm:
(IsPropertyReadable): Added this helper to simplify deciding if an attribute is readable.
(IsPropertyWriteable): Added this helper to simplify deciding if an attribute is writeable. Also
update the list of types to reflect the full list of types we can generate setters for.
(GenerateProperty): Use the IsPropertyWriteable helper instead of checking whether the attribute is read-only.
Also fix generation of the blurb by using $mutableString instead of $mutableStringconst which isn't used.
(GenerateProperties): Use grep and the new helpers to simplify the code.
(GetReadableProperties): Deleted.
(GetWriteableProperties): Deleted.
* bindings/scripts/test/GObject: Update results
2014-03-31 Ryuan Choi <ryuan.choi@samsung.com>
[EFL][WK2] Extract the control of page background out of color_set
https://bugs.webkit.org/show_bug.cgi?id=127539
Reviewed by Gyuyoung Kim.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
Added m_viewBackgroundColor to clear when m_setDrawsBackground is false.
(WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
(WebCore::CoordinatedGraphicsScene::setViewBackgroundColor):
(WebCore::CoordinatedGraphicsScene::viewBackgroundColor):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
Added EFL guard not to set opaque as a default for MainFrameRenderViewLayer.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::ensureRootLayer):
Added EFL guard to apply page scale on RenderView like IOS.
2014-03-31 Byungseon Shin <sun.shin@lge.com>
[WebGL][OpenGLES] Enable MSAA support for WebGL Canvas
https://bugs.webkit.org/show_bug.cgi?id=130955
Reviewed by Dean Jackson.
To avoid aliasing issues when we render content to WebGL canvas,
we need to implement MSAA support.
- Imagination OpenGLES GPU Driver already support MSAA, so we
need a separate code path to enable it.
* platform/graphics/Extensions3D.h:
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
* platform/graphics/opengl/Extensions3DOpenGLCommon.h:
(WebCore::Extensions3DOpenGLCommon::isImagination):
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
2014-03-31 Alexey Proskuryakov <ap@apple.com>
Crashes in PageConsole::addMessage
https://bugs.webkit.org/show_bug.cgi?id=130991
<rdar://problem/14795232>
Reviewed by Geoffrey Garen.
Test: http/tests/misc/detached-frame-console.html
* page/DOMWindow.cpp: (WebCore::DOMWindow::printErrorMessage): Added a null check.
It's legitimate for this to be called for a window that is not currently displayed
in a frame.
2014-03-31 Simon Fraser <simon.fraser@apple.com>
[UI-side compositing] Proxy animations to the UI process
https://bugs.webkit.org/show_bug.cgi?id=130946
Reviewed by Tim Horton.
To proxy CA animations, make PlatformCAAnimation a pure virtual base class
and subclass for Mac, Windows, and Remote (just like PlatformCALayer).
Add coding support for TimingFunctions.
Do some minor #include tidyup.
Minor refactor in GraphicsLayerCA to share some animations code.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/animation/TimingFunction.h: Add setters need for encode/decode.
(WebCore::CubicBezierTimingFunction::setValues):
(WebCore::CubicBezierTimingFunction::setTimingFunctionPreset):
(WebCore::StepsTimingFunction::create):
(WebCore::StepsTimingFunction::setNumberOfSteps):
(WebCore::StepsTimingFunction::setStepAtStart):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createPlatformCAAnimation):
(WebCore::GraphicsLayerCA::animationCanBeAccelerated): Minor refactor so we can share
code with GraphicsLayerCARemote.
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::PassRefPtr<PlatformCAAnimation>GraphicsLayerCA::createKeyframeAnimation):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAAnimation.h:
(WebCore::PlatformCAAnimation::~PlatformCAAnimation):
(WebCore::PlatformCAAnimation::isPlatformCAAnimationMac):
(WebCore::PlatformCAAnimation::isPlatformCAAnimationWin):
(WebCore::PlatformCAAnimation::isPlatformCAAnimationRemote):
(WebCore::PlatformCAAnimation::PlatformCAAnimation):
(WebCore::PlatformCAAnimation::setType):
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.h: Added.
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::addAnimationForKey):
(PlatformCALayerMac::animationForKey):
* platform/graphics/ca/mac/TileController.mm:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
* platform/graphics/ca/win/PlatformCAAnimationWin.h: Added.
2014-03-31 Benjamin Poulain <benjamin@webkit.org>
CSS JIT: compile the first-child pseudo class
https://bugs.webkit.org/show_bug.cgi?id=130954
Reviewed by Andreas Kling.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::collectMatchingRules):
The compiler use the context's style directly when resolving style. An error introduced
in the rule collector would cause a crash in the compiled code which would be hard to debug.
Add an assertion early in the stack to catch errors where it is easier to debug them.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::initForStyleResolve):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacentElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
Refactor those to be able to reuse the code getting a sibling element preceding the current element.
(WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
Extract the code checking the current mode from SelectorCodeGenerator::markParentElementIfResolvingStyle()
in a separate function. This will be useful for all the pseudo class with marking.
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::setFirstChildState):
This is the slow path for when the first-child pseudo class is on a fragment that is not
the rightmost.
The reason to use a slow path is accessing renderStyle() is not trivial and this case isn't not
as common. We should improve this later.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
This is just implementing the test for first-child plus the tree marking. Nothing fancy,
this is basically the same thing as SelectorChecker.
* dom/Element.cpp:
(WebCore::Element::setChildrenAffectedByFirstChildRules):
* dom/Element.h:
C++ fallback to set the flag, to be improved later with the other flags.
* rendering/style/RenderStyle.h:
I accidentaly put noninheritedFlagsMemoryOffset() as private in the RenderStyle refactoring.
Also update the flags accessor to make them easier to work with from the compiler. In particular,
setFirstChildStateFlags() sets both isUnique and firstChild. Currently the JIT does not need to access
the value so individual flags are made private.
2014-03-31 Dean Jackson <dino@apple.com>
Remove WEB_ANIMATIONS
https://bugs.webkit.org/show_bug.cgi?id=130989
Reviewed by Simon Fraser.
Remove this feature flag until we plan to implement.
* Configurations/FeatureDefines.xcconfig:
2014-03-31 Simon Fraser <simon.fraser@apple.com>
Fix iOS build.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):
2014-03-31 Pratik Solanki <psolanki@apple.com>
Unreviewed. iOS build fix after r166532. Add missing comma.
* dom/DocumentMarker.h:
2014-03-31 Brady Eidson <beidson@apple.com>
Add variant of phone number parsing that use DocumentMarker in the current selection
<rdar://problem/16379566> and https://bugs.webkit.org/show_bug.cgi?id=130917
Reviewed by Darin Adler.
* dom/DocumentMarker.h:
(WebCore::DocumentMarker::AllMarkers::AllMarkers): Add a new TelephoneNumber document marker type.
* editing/Editor.cpp:
(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::scanSelectionForTelephoneNumbers): TextIterate over the selected range looking for numbers.
(WebCore::Editor::scanRangeForTelephoneNumbers): Scan the given range for a telephone number,
adding the DocumentMarker to any that are found.
(WebCore::Editor::clearDataDetectedTelephoneNumbers):
* editing/Editor.h:
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): Only linkify on iOS.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintTelephoneNumberMarker): Placeholder UI while the feature is developed.
(WebCore::InlineTextBox::paintDocumentMarkers):
* rendering/InlineTextBox.h:
* testing/Internals.cpp:
(WebCore::markerTypesFrom):
2014-03-31 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Hook up scroll events for accelerated overflow:scroll
https://bugs.webkit.org/show_bug.cgi?id=130976
Reviewed by Tim Horton.
When an accelerated overflow:scroll is scrolled in the UI process,
tell the WebProcess that the scroll happened to update RenderLayer
state and fire events.
In the WebProcess, RemoteScrollingCoordinator gets a message from the
UI process and calls AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll().
Fixed that function to handle scrolling nodes other than the root, which
required storing a map of ScrollingNodeID->RenderLayer* on RenderLayerCompositor,
accessible through FrameView::scrollableAreaForScrollLayerID().
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollableAreaForScrollLayerID):
* page/FrameView.h:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Handle
overflow as well as main frame scrolling nodes.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Use isScrollingNode().
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): When an overflow
scroll node was scrolled externally, we have to update layers in decendant nodes,
and then call scrollingTreeNodeDidScroll() which tells the ScrollingCoordinator that
we scrolled.
* page/scrolling/ScrollingTree.h: Try to reduce confusion between the roles played
by these various functions, some of which happen in the UI process with UI-side
compositing.
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h: Need some functions to be
callable by subclasses.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Add
scrolling layers to the m_scrollingNodeToLayerMap
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Remove
layer from the m_scrollingNodeToLayerMap.
(WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID):
* rendering/RenderLayerCompositor.h:
2014-03-31 Antti Koivisto <antti@apple.com>
Rename TileCache to LegacyTileCache
https://bugs.webkit.org/show_bug.cgi?id=130986
Reviewed by Simon Fraser.
Rename iOS WebKit1 tile cache classes to reflect its status.
This also frees some good type names.
TileCache -> LegacyTileCache
TileGrid -> LegacyTileGrid
TileGridTile -> LegacyTileGridTile
etc.
2014-03-31 Tim Horton <timothy_horton@apple.com>
Small adjustments to WebCore::IOSurface
https://bugs.webkit.org/show_bug.cgi?id=130981
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export some more things.
* platform/graphics/cocoa/IOSurface.h:
createImage() can't be const because it calls ensurePlatformContext().
* platform/graphics/cocoa/IOSurface.mm:
(IOSurface::createImage):
We should be able to create an image even if the CGContext has been cleared (or never created).
(IOSurface::isInUse):
Rename inUse() to isInUse().
(IOSurface::clearGraphicsContext):
Add clearGraphicsContext().
2014-03-31 Tim Horton <timothy_horton@apple.com>
Allocate IOSurfaces with the same cache mode that CoreAnimation uses
https://bugs.webkit.org/show_bug.cgi?id=130982
Reviewed by Simon Fraser.
* platform/graphics/cocoa/IOSurface.mm:
(IOSurface::IOSurface):
CA uses kIOMapWriteCombineCache for IOSurfaces allocated on iOS.
2014-03-31 Ion Rosca <rosca@adobe.com>
[CSS Blending] Blend mode property is propagated to multiple GraphicLayers
https://bugs.webkit.org/show_bug.cgi?id=130337
Reviewed by Dean Jackson.
Resets the blend mode for graphicsLayer when it has an ancestorClippingLayer.
Test: css3/compositing/blend-mode-ancestor-clipping-layer.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateBlendMode):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBlendMode):
* rendering/RenderLayerBacking.h:
2014-03-31 Ion Rosca <rosca@adobe.com>
[CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
https://bugs.webkit.org/show_bug.cgi?id=130922
Reviewed by Simon Fraser.
This change only updates existing tests involving blending. No new test required,
as there is no new or changed functionality.
* rendering/RenderLayer.h: adding blendMode() getter.
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
adding blendMode property and layer's isolation status (does layer isolate blending descendants or not?).
2014-03-31 Benjamin Poulain <benjamin@webkit.org>
CSS JIT: clean up the functions ending when generating a checker with context
https://bugs.webkit.org/show_bug.cgi?id=130959
Reviewed by Andreas Kling.
This code got refactored over time and now both branches do the exact same action
on the stack.
This patch removes the stack split and move the stack cleanup in the common ending
just before restoring the callee saved registers.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
2014-03-31 Beth Dakin <bdakin@apple.com>
ThemeMac should use std::array instead of IntSize* for control sizes
https://bugs.webkit.org/show_bug.cgi?id=130985
Reviewed by Darin Adler.
Replace uses of const IntSize* with const std::array<IntSize, 3>
* platform/mac/ThemeMac.mm:
(WebCore::sizeFromNSControlSize):
(WebCore::sizeFromFont):
(WebCore::controlSizeFromPixelSize):
(WebCore::setControlSize):
(WebCore::checkboxSizes):
(WebCore::radioSizes):
(WebCore::buttonSizes):
(WebCore::setUpButtonCell):
(WebCore::stepperSizes):
2014-03-31 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Simplify RasterShape implementation
https://bugs.webkit.org/show_bug.cgi?id=130916
Reviewed by Dean Jackson.
Since only floats can specify shape-outside, the RasterShapeIntervals
class only needs to track the first and last above threshold pixel column
(x1 and x2 in the implementation) for each row. Removed code for dealing with
multiple "runs" per row as well as shape-inside internals.
No new tests, since functionality was only removed.
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
(WebCore::RasterShapeIntervals::initializeBounds):
(WebCore::RasterShapeIntervals::buildBoundsPath):
(WebCore::RasterShape::getExcludedIntervals):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::RasterShapeIntervals):
(WebCore::RasterShapeIntervals::intervalAt):
(WebCore::RasterShape::RasterShape):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::unite):
2014-03-31 Andreas Kling <akling@apple.com>
Always inline toJS() for NodeList.
<https://webkit.org/b/130974>
This is a pretty cheesy optimization, but it's a 3% progression on
Dromaeo/dom-query.html on my MBP.
Reviewed by Benjamin Poulain.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSNodeListCustom.h: Added.
(WebCore::toJS):
* dom/NodeList.idl:
2014-03-31 Benjamin Poulain <bpoulain@apple.com>
Attempt to fix the 32bits debug builds
The additional debug flags in RefCounted cause the structure to have different alignment
with the 64bits flags.
* rendering/style/RenderStyle.cpp:
2014-03-29 Simon Fraser <simon.fraser@apple.com>
Clarify some scrolling tree terminology
https://bugs.webkit.org/show_bug.cgi?id=130929
Reviewed by Tim Horton.
Attempt to reduce some ambiguity in scrolling tree terminology.
When async scrolling occurs, there are two tasks we have to perform:
1. Layers need to be updated to reflect the scroll
2. WebCore state has to be updated.
The "updateForViewport" name didn't clearly reflect which of these
tasks was being performed, so rename it to updateLayersAfterViewportChange()
to reflect the fact that it only does the first.
Remove the Mac implementation of updateLayersAfterViewportChange(), since
it was confsued about this, and was never called anyway.
* WebCore.exp.in:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
(WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport): Deleted.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateLayersAfterViewportChange):
(WebCore::ScrollingTreeScrollingNodeMac::updateForViewport): Deleted.
2014-03-31 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Disable tile cohort retention for now
https://bugs.webkit.org/show_bug.cgi?id=130926
<rdar://problem/16465413>
Reviewed by Simon Fraser.
* WebCore.exp.in:
* page/Settings.cpp:
(WebCore::Settings::Settings):
(WebCore::Settings::setScrollingPerformanceLoggingEnabled):
(WebCore::Settings::setAggressiveTileRetentionEnabled): Deleted.
* page/Settings.h:
(WebCore::Settings::aggressiveTileRetentionEnabled): Deleted.
* page/Settings.in:
Use Settings.in for these simple settings.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::shouldAggressivelyRetainTiles):
(WebCore::GraphicsLayerClient::shouldTemporarilyRetainTileCohorts):
* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
(WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerShouldAggressivelyRetainTiles):
(WebCore::PlatformCALayerClient::platformCALayerShouldTemporarilyRetainTileCohorts):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldAggressivelyRetainTiles):
(WebCore::RenderLayerBacking::shouldTemporarilyRetainTileCohorts):
* rendering/RenderLayerBacking.h:
Plumb the two tile-retention settings through to TileController in a pull manner
instead of a push manner, as there were some cases (especially on iOS) where
the settings weren't always getting pushed down.
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tileRevalidationTimerFired):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::drawTileMapContents):
Aggressive tile retention wins over temporary retention. If we aren't
using temporary (cohort) retention, throw away the cohort as soon as it
is created.
2014-03-31 Beth Dakin <bdakin@apple.com>
Radio buttons and checkboxes should share code
https://bugs.webkit.org/show_bug.cgi?id=130915
Reviewed by Sam Weinig.
Radio buttons and checkboxes now share a lot of code. The common term for both is
toggle buttons.
Move these radio-sizing functions up in the file to be next to the checkbox sizing
functions.
* platform/mac/ThemeMac.mm:
(WebCore::radioSizes):
(WebCore::radioMargins):
(WebCore::radioSize):
Configures a radio button or a checkbox.
(WebCore::configureToggleButton):
Creates a radio button or a checkbox.
(WebCore::createToggleButtonCell):
Still have a shared cell for each.
(WebCore::sharedRadioCell):
(WebCore::sharedCheckboxCell):
Does the work of the old paintRadio() and paintCheckbox().
(WebCore::paintToggleButton):
Use sharedRadioCell() here.
(WebCore::ThemeMac::inflateControlPaintRect):
Call paintToggleButton() for radio buttons and checkboxes.
(WebCore::ThemeMac::paint):
All gone.
(WebCore::configureCheckbox): Deleted.
(WebCore::createCheckboxCell): Deleted.
(WebCore::paintCheckbox): Deleted.
(WebCore::radio): Deleted.
(WebCore::paintRadio): Deleted.
2014-03-31 Samuel White <samuel_white@apple.com>
AX: Need ability to get line range for text marker.
https://bugs.webkit.org/show_bug.cgi?id=130906
Reviewed by Chris Fleizach.
Added ability to get line range from any marker on that line. This matches the functionality of existing
attributes such as AXParagraphTextMarkerRangeForTextMarker and AXSentenceTextMarkerRangeForTextMarker.
Test: platform/mac/accessibility/line-range-for-text-marker.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::visiblePositionRangeForRange):
(WebCore::AccessibilityObject::lineRangeForPosition):
* accessibility/AccessibilityObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2014-03-31 Anders Carlsson <andersca@apple.com>
Fix iOS build.
* page/ChromeClient.h:
(WebCore::ChromeClient::updateViewportConstrainedLayers):
2014-03-31 Jer Noble <jer.noble@apple.com>
[MSE][Mac] Support lease-renewal.
https://bugs.webkit.org/show_bug.cgi?id=130919
Reviewed by Eric Carlson.
Trigger a new key request when receiving an update message containting "renew".
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Drive-by fix; generate a UTF-8
based array.
(WebCore::CDMSessionMediaSourceAVFObjC::update):
2014-03-31 Alexey Proskuryakov <ap@apple.com>
Remove special handling of soft hyphens in search code
https://bugs.webkit.org/show_bug.cgi?id=130940
Reviewed by Anders Carlsson.
ICU knows to ignore soft hyphens, so we don't need to replace them before searching.
Covered by existing tests.
* editing/TextIterator.cpp:
(WebCore::foldQuoteMark):
(WebCore::foldQuoteMarks):
(WebCore::SearchBuffer::SearchBuffer):
(WebCore::SearchBuffer::append):
(WebCore::foldQuoteMarkOrSoftHyphen): Deleted.
(WebCore::foldQuoteMarksAndSoftHyphens): Deleted.
2014-03-31 Alex Christensen <achristensen@webkit.org>
Preparation for using Soup on Windows.
https://bugs.webkit.org/show_bug.cgi?id=130615
Reviewed by Carlos Garcia Campos.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Added Soup source files in WinCairo build.
* loader/soup/CachedRawResourceSoup.cpp:
* loader/soup/SubresourceLoaderSoup.cpp:
* platform/soup/SharedBufferSoup.cpp:
* platform/soup/URLSoup.cpp:
* platform/network/NetworkStorageSessionStub.cpp:
Only build if USE(SOUP) to prevent building when USE(CURL) is true.
* platform/network/soup/ResourceHandleSoup.cpp:
Only include unistd.h in non-Visual Studio builds.
This would normally be done with a HAVE_UNISTD_H macro when compiling glib and Soup,
but that would need to be left undefined for Visual Studio.
2014-03-31 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Addressing reviewing comments for r166491 that I forgot
to address before landing.
* html/FormController.cpp:
(WebCore::SavedFormState::deserialize): No need to move the std::unique_ptr
object on the way out.
(WebCore::FormController::createSavedFormStateMap): FormKeyGenerator can be
allocated on the stack.
(WebCore::FormController::formStatesFromStateVector): Use auto.
2014-03-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use GMainLoopSource for idle and timeout sources in WebCore
https://bugs.webkit.org/show_bug.cgi?id=130078
Reviewed by Philippe Normand.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/GtkDragAndDropHelper.cpp:
* platform/gtk/SharedTimerGtk.cpp:
2014-03-31 Andrei Bucur <abucur@adobe.com>
Wrong layout while animating content in regions
https://bugs.webkit.org/show_bug.cgi?id=125086
Reviewed by David Hyatt.
The region to layer and regions to layer mappings should be cleared when the region chain changes.
Test: fast/regions/layers/region-removed-during-animation.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::invalidateRegions): Clear the two maps and flag them for recomputation.
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer): Assert that the returned region exists.
2014-03-31 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com>
Remove hostThisRegister() and hostThisValue()
https://bugs.webkit.org/show_bug.cgi?id=130895
Reviewed by Geoffrey Garen.
Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.
No new tests, no behavior changes.
* bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::webkitGetUserMedia):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::callPlugin):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSFloat64Array.cpp:
(WebCore::jsFloat64ArrayPrototypeFunctionFoo):
(WebCore::jsFloat64ArrayPrototypeFunctionSet):
* 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::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionCustomMethod):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionOrange):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
2014-03-31 Zan Dobersek <zdobersek@igalia.com>
Move the rest of Source/WebCore/html/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129669
Reviewed by Anders Carlsson.
Replace the remaining uses of OwnPtr, PassOwnPtr under Source/WebCore/html/ with std::unique_ptr.
* html/FormController.cpp:
(WebCore::SavedFormState::SavedFormState):
(WebCore::SavedFormState::deserialize):
(WebCore::FormController::createSavedFormStateMap):
(WebCore::FormController::formElementsState):
(WebCore::FormController::takeStateForFormElement):
(WebCore::FormController::formStatesFromStateVector):
* html/FormController.h:
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::mapMouseEvent):
* html/HTMLAreaElement.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::setSurfaceSize):
(WebCore::HTMLCanvasElement::createImageBuffer):
* html/HTMLCanvasElement.h:
* html/HTMLCollection.h:
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::addToPastNamesMap):
* html/HTMLFormElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::imageLoader):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::hasImageLoader):
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::startLoadingImage):
* html/HTMLPlugInImageElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
* html/HTMLVideoElement.h:
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::ValidationMessage):
(WebCore::ValidationMessage::setMessage):
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::ValidationMessage::requestToHideMessage):
* html/ValidationMessage.h:
2014-03-31 Maurice van der Pot <griffon26@kfk4ever.com>
Fix mixed use of booleans in JPEGImageDecoder.cpp
https://bugs.webkit.org/show_bug.cgi?id=122412
Reviewed by Darin Adler.
Trivial fix for compilation error; no new tests.
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode):
(WebCore::fill_input_buffer):
Use TRUE/FALSE defined by libjpeg for libjpeg booleans
2014-03-23 Zan Dobersek <zdobersek@igalia.com>
Move Source/WebCore/rendering/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129664
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/rendering/ with std::unique_ptr.
* platform/graphics/FloatPolygon.cpp:
(WebCore::FloatPolygon::FloatPolygon):
* platform/graphics/FloatPolygon.h:
* rendering/ClipPathOperation.h:
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
* rendering/FlowThreadController.h:
* rendering/HitTestLocation.h:
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::HitTestResult):
(WebCore::HitTestResult::operator=):
(WebCore::HitTestResult::rectBasedTestResult):
(WebCore::HitTestResult::mutableRectBasedTestResult):
* rendering/HitTestResult.h:
* rendering/HitTestingTransformState.cpp:
* rendering/ImageQualityController.h:
* rendering/RenderBlock.cpp:
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::finishDelayUpdateScrollInfo):
(WebCore::RenderBlock::addContinuationWithOutline):
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
(WebCore::RenderBlock::setComputedColumnCountAndWidth):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createFloatingObjects):
* rendering/RenderBlockFlow.h:
* rendering/RenderBoxRegionInfo.h:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::styleDidChange):
* rendering/RenderButton.h:
* rendering/RenderCounter.cpp:
(WebCore::makeCounterNode):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
* rendering/RenderFlowThread.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::push):
(WebCore::RenderGeometryMap::pushView):
* rendering/RenderGeometryMap.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
(WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition):
(WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
* rendering/RenderGrid.h:
* rendering/RenderImageResource.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintChildLayerIntoColumns):
(WebCore::RenderLayer::hitTestChildLayerColumns):
(WebCore::RenderLayer::updateClipRects):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
(WebCore::RenderLayer::clearZOrderLists):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
* rendering/RenderLayerCompositor.h:
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::map):
(WebCore::RenderLayer::FilterInfo::get):
* rendering/RenderLayerFilterInfo.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRenderBoxRegionInfo):
(WebCore::RenderRegion::takeRenderBoxRegionInfo):
* rendering/RenderRegion.h:
* rendering/RenderTable.cpp:
(WebCore::RenderTable::styleDidChange):
* rendering/RenderTable.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds):
(WebCore::RenderView::setSelection):
(WebCore::RenderView::compositor):
(WebCore::RenderView::flowThreadController):
(WebCore::RenderView::imageQualityController):
* rendering/RenderView.h:
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::appendFloat):
* rendering/TextAutosizer.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::computeShapePaddingBounds):
(WebCore::computeShapeMarginBounds):
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShape::RasterShape):
* rendering/shapes/Shape.cpp:
(WebCore::createInsetShape):
(WebCore::createRectangleShape):
(WebCore::createCircleShape):
(WebCore::createEllipseShape):
(WebCore::createPolygonShape):
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createLayoutBoxShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::markShapeAsDirty):
(WebCore::ShapeInfo::isShapeDirty):
* rendering/shapes/ShapeInsideInfo.h:
* rendering/style/ContentData.h:
* rendering/style/CounterDirectives.cpp:
(WebCore::clone):
* rendering/style/CounterDirectives.h:
* rendering/style/GridCoordinate.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::addCachedPseudoStyle):
(WebCore::RenderStyle::accessCounterDirectives):
(WebCore::RenderStyle::accessAnimations):
(WebCore::RenderStyle::accessTransitions):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* rendering/style/StyleRareNonInheritedData.h:
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateShapeFromElement):
* rendering/svg/RenderSVGShape.h:
* rendering/svg/SVGResources.cpp:
(WebCore::SVGResources::setClipper):
(WebCore::SVGResources::setFilter):
(WebCore::SVGResources::setMarkerStart):
(WebCore::SVGResources::setMarkerMid):
(WebCore::SVGResources::setMarkerEnd):
(WebCore::SVGResources::setMasker):
(WebCore::SVGResources::setFill):
(WebCore::SVGResources::setStroke):
* rendering/svg/SVGResources.h:
* rendering/svg/SVGResourcesCache.cpp:
(WebCore::SVGResourcesCache::addResourcesFromRenderer):
(WebCore::SVGResourcesCache::removeResourcesFromRenderer):
* rendering/svg/SVGResourcesCache.h:
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
* rendering/svg/SVGTextMetricsBuilder.h:
2014-03-28 Sergio Villar Senin <svillar@igalia.com>
Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in loader
https://bugs.webkit.org/show_bug.cgi?id=130893
Reviewed by Darin Adler.
* loader/ImageLoader.cpp:
(WebCore::beforeLoadEventSender):
(WebCore::loadEventSender):
(WebCore::errorEventSender):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::cacheStorage):
* loader/appcache/ApplicationCacheStorage.h:
* loader/archive/ArchiveFactory.cpp:
(WebCore::archiveMIMETypes):
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::brokenImage):
* loader/cache/CachedRawResource.cpp:
(WebCore::shouldIgnoreHeaderForCacheReuse):
* loader/cache/MemoryCache.cpp:
(WebCore::dummyCachedImageClient):
2014-03-28 Sergio Villar Senin <svillar@igalia.com>
Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in css
https://bugs.webkit.org/show_bug.cgi?id=130409
Reviewed by Darin Adler.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::logUnimplementedPropertyID):
* css/CSSDefaultStyleSheets.cpp:
(WebCore::screenEval):
(WebCore::printEval):
* css/CSSParser.cpp:
(WebCore::strictCSSParserContext):
* css/CSSPrimitiveValue.cpp:
(WebCore::cssTextCache):
* css/CSSProperty.cpp:
(WebCore::borderDirections):
* css/CSSStyleRule.cpp:
(WebCore::selectorTextCache):
* css/CSSValuePool.cpp:
(WebCore::cssValuePool):
* css/CSSValuePool.h:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyPageSize::getPageSizeFromName):
(WebCore::DeprecatedStyleBuilder::sharedStyleBuilder):
* css/DeprecatedStyleBuilder.h:
2014-03-30 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] [TextureMapper] Weird brightness with some videos with acceletared compositing
https://bugs.webkit.org/show_bug.cgi?id=130665
Reviewed by Martin Robinson.
When we uploaded a video texture to the mapper we were not
considering that some videos could be decoded into a format
without alpha component. Now we check if the video has alpha and
if it does not, we remove the alpha flag when retrieving the
texture from the pool. For this, the method to get the texture
from the pool was modified to receive the flags, that is mapped to
have alpha by default in order not to break any other existing
code.
Though we have a problem with AC in WTR and that makes it
currently not testable, no new tests are needed because once this
is fixed the current test set suffices to detect a possible
regression in this.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Check
the video format and decide if the texture shall be pulled with
alpha support or not.
* platform/graphics/texmap/TextureMapper.cpp:
(WebCore::TextureMapper::acquireTextureFromPool): Use the flags
when resetting the texture.
* platform/graphics/texmap/TextureMapper.h:
(WebCore::BitmapTexture::Flag::None): Added with 0x00.
(WebCore::TextureMapper::acquireTextureFromPool): Added flag
parameter to set up the texture with the default for including
alpha channel.
2014-03-30 Jinwoo Song <jinwoo7.song@samsung.com>
Adopt range-based for loops to TextCheckerEnchant
https://bugs.webkit.org/show_bug.cgi?id=130714
Reviewed by Darin Adler.
* platform/text/enchant/TextCheckerEnchant.cpp:
(WebCore::TextCheckerEnchant::ignoreWord):
(WebCore::TextCheckerEnchant::learnWord):
(WebCore::TextCheckerEnchant::checkSpellingOfWord):
(WebCore::TextCheckerEnchant::getGuessesForWord):
(WebCore::TextCheckerEnchant::updateSpellCheckingLanguages):
(WebCore::TextCheckerEnchant::loadedSpellCheckingLanguages):
(WebCore::TextCheckerEnchant::availableSpellCheckingLanguages):
(WebCore::TextCheckerEnchant::freeEnchantBrokerDictionaries):
2014-03-30 Benjamin Poulain <benjamin@webkit.org>
Second attempt to fix 32bits build after r166465
* rendering/style/RenderStyle.h:
The compiler probably complain about the return value, that makes more sense.
2014-03-30 Benjamin Poulain <benjamin@webkit.org>
Attempt to fix 32bits build after r166465
* rendering/style/RenderStyle.h:
2014-03-30 Benjamin Poulain <benjamin@webkit.org>
Make RenderStyle's non inherited flags more JSC friendly
https://bugs.webkit.org/show_bug.cgi?id=130939
Reviewed by Andreas Kling.
Make RenderStyle::NonInheritedFlags accessible to the JIT:
-Make the struct public to give access to the offset.
-Move away from a bit field to static offsets we can use
with the MacroAssembler.
-Reorder the field to simplify bit access of the flags we need.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyVerticalAlign::createHandler):
(WebCore::ApplyPropertyDisplay::applyInitialValue):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::copyNonInheritedFrom):
(WebCore::RenderStyle::hashForTextAutosizing):
(WebCore::RenderStyle::equalForTextAutosizing):
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasAnyPublicPseudoStyles):
(WebCore::RenderStyle::hasPseudoStyle):
(WebCore::RenderStyle::setHasPseudoStyle):
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
2014-03-30 David Kilzer <ddkilzer@apple.com>
[iOS] Fix build of HTMLConverter.mm after r166454
Fixes the following build failures:
WebCore/editing/cocoa/HTMLConverter.mm:1507:13: error: value of type 'WebCore::Element' is not contextually convertible to 'bool'
if (element)
^~~~~~~
WebCore/editing/cocoa/HTMLConverter.mm:1508:49: error: no matching function for call to 'core'
_caches->floatPropertyValueForNode(*core(element), CSSPropertyVerticalAlign, verticalAlign);
^~~~
In file included from WebCore/editing/cocoa/HTMLConverter.mm:41:
In file included from WebCore/page/Frame.h:42:
In file included from WebCore/editing/VisibleSelection.h:30:
In file included from WebCore/editing/VisiblePosition.h:30:
In file included from WebCore/dom/Position.h:31:
WebCore/editing/TextAffinity.h:54:27: note: candidate function not viable: no known conversion from 'WebCore::Element' to 'NSSelectionAffinity' (aka '_NSSelectionAffinity') for 1st argument
inline WebCore::EAffinity core(NSSelectionAffinity affinity)
^
WebCore/editing/cocoa/HTMLConverter.mm:1509:81: error: reference to non-static member function must be called; did you mean to call it with no arguments?
attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
~~~~~~~~^~~~~~~~~~~~
()
WebCore/editing/cocoa/HTMLConverter.mm:1509:103: error: reference to non-static member function must be called; did you mean to call it with no arguments?
attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
~~~~~~~~^~~~~~~~~~~
()
WebCore/editing/cocoa/HTMLConverter.mm:1509:124: error: reference to non-static member function must be called; did you mean to call it with no arguments?
attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
~~~~~~~~^~~~~~~~~~~~
()
5 errors generated.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement):
2014-03-30 Andreas Kling <akling@apple.com>
Make NodeList and HTMLCollection caching helpers use PassRef.
<https://webkit.org/b/130943>
Tweak the helpers in NodeListsNodeData to return PassRef instead of
PassRefPtr. This knocks 2 branches off of some pretty hot code on
Dromaeo/dom-query.
Reviewed by Antti Koivisto.
* dom/ChildNodeList.h:
* dom/ClassNodeList.h:
* dom/NameNodeList.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::ensureChildNodeList):
(WebCore::NodeListsNodeData::ensureEmptyChildNodeList):
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::addCacheWithQualifiedName):
(WebCore::NodeListsNodeData::addCachedCollection):
* dom/TagNodeList.h:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::create):
* html/HTMLCollection.h:
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::create):
* html/HTMLFormControlsCollection.h:
* html/RadioNodeList.h:
2014-03-29 Antti Koivisto <antti@apple.com>
LiveNodeLists should use ElementDescendantIterator
https://bugs.webkit.org/show_bug.cgi?id=130931
Reviewed by Andreas Kling.
Make LiveNodeList traversal use the common DOM tree iterator.
* dom/ChildNodeList.cpp:
(WebCore::ChildNodeList::ChildNodeList):
(WebCore::ChildNodeList::collectionBegin):
(WebCore::ChildNodeList::collectionTraverseForward):
(WebCore::ChildNodeList::collectionTraverseBackward):
(WebCore::ChildNodeList::invalidateCache):
(WebCore::ChildNodeList::collectionFirst): Deleted.
Iterator for ChildNodeList is still just Node*.
* dom/ChildNodeList.h:
* dom/CollectionIndexCache.h:
(WebCore::CollectionIndexCache::hasValidCache):
(WebCore::Iterator>::CollectionIndexCache):
(WebCore::Iterator>::nodeCount):
(WebCore::Iterator>::computeNodeCountUpdatingListCache):
(WebCore::Iterator>::traverseBackwardTo):
(WebCore::Iterator>::traverseForwardTo):
(WebCore::Iterator>::nodeAt):
(WebCore::Iterator>::invalidate):
Make CollectionIndexCache iterator based instead of using NodeType*. The iterator type may
still be a Node* though.
(WebCore::NodeType>::CollectionIndexCache): Deleted.
(WebCore::NodeType>::nodeCount): Deleted.
(WebCore::NodeType>::computeNodeCountUpdatingListCache): Deleted.
(WebCore::NodeType>::nodeBeforeCached): Deleted.
(WebCore::NodeType>::nodeAfterCached): Deleted.
(WebCore::NodeType>::nodeAt): Deleted.
(WebCore::NodeType>::invalidate): Deleted.
* dom/ElementDescendantIterator.h:
(WebCore::ElementDescendantIterator::operator--):
Add backward iteration support.
(WebCore::ElementDescendantIteratorAdapter::last):
(WebCore::ElementDescendantConstIteratorAdapter::last):
Add a way to get the last item.
Provide std::iterator_traits so we can extract the type.
* dom/LiveNodeList.h:
(WebCore::CachedLiveNodeList::collectionEnd):
(WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
(WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
(WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
(WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
(WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
(WebCore::CachedLiveNodeList<NodeListType>::collectionFirst): Deleted.
Make LiveNodeList traversal use ElementDescendantIterator.
(WebCore::nextMatchingElement): Deleted.
(WebCore::previousMatchingElement): Deleted.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::collectionBegin):
(WebCore::HTMLCollection::collectionTraverseForward):
(WebCore::HTMLCollection::collectionTraverseBackward):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::collectionFirst): Deleted.
* html/HTMLCollection.h:
(WebCore::HTMLCollection::collectionEnd):
HTMLCollection still uses Element* as iterator for now.
2014-03-29 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166434.
https://bugs.webkit.org/show_bug.cgi?id=130938
Caused crashes and other failures on cache tests (Requested by
ap on #webkit).
Reverted changeset:
"Web Replay: add page-level setting to bypass the MemoryCache"
https://bugs.webkit.org/show_bug.cgi?id=130728
http://trac.webkit.org/changeset/166434
2014-03-29 David Kilzer <ddkilzer@apple.com>
Preserve selection end positions in directionOfSelection
<http://webkit.org/b/104813>
<rdar://problem/13666417>
Reviewed by Brent Fulgham.
Merged from Blink (patch by kenrb@chromium.org):
https://src.chromium.org/viewvc/blink?revision=150621&view=revision
http://crbug.com/164263
VisibleSelection::visibleStart() and VisibleSelection::visibleEnd()
can both cause layouts, which has the potential to invalidate any
rendertree-based objects. This was causing a problem in
FrameSelection::directionOfSelection(), where a reference to a
lineBox was being held across a call to visibleEnd().
This patch ensures that the any layout is completed before linebox
references are retrieved.
Test: editing/selection/layout-during-move-selection-crash.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::directionOfSelection):
2014-03-29 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Simple line layout should not round to integral position while painting.
https://bugs.webkit.org/show_bug.cgi?id=130934
Reviewed by Simon Fraser.
Remove rounding to integral position. When RenderLayer is injected and hides subpixel positions,
integral rounding produces different paint position.
Test: fast/flexbox/hidpi-simple-line-layout-with-flexbox-and-transition.html
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
2014-03-29 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make GraphicsContext::drawImageBuffer* functions float based.
https://bugs.webkit.org/show_bug.cgi?id=130932
Reviewed by Simon Fraser.
This is in preparation to support device pixel based filter painting.
Filter calculation is still integral based.
No change in behavior.
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImageBuffer):
* platform/graphics/GraphicsContext.h:
* platform/graphics/filters/FilterEffect.cpp: This will eventually be fully float based.
Right now, this IntRect->FloatRect change is only to ensure that we can call
the float based drawImageBuffer().
(WebCore::FilterEffect::drawingRegionOfInputImage):
* platform/graphics/filters/FilterEffect.h:
2014-03-27 Sam Weinig <sam@webkit.org>
Convert yet more of HTMLConverter to C++
https://bugs.webkit.org/show_bug.cgi?id=130850
Reviewed by Anders Carlsson.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::isAncestorsOfStartToBeConverted):
(HTMLConverter::HTMLConverter):
(HTMLConverter::~HTMLConverter):
(HTMLConverter::convert):
(HTMLConverter::computedAttributesForElement):
(HTMLConverter::attributesForElement):
(HTMLConverter::_newParagraphForElement):
(HTMLConverter::_newLineForElement):
(HTMLConverter::_newTabForElement):
(HTMLConverter::_addAttachmentForElement):
(HTMLConverter::_addQuoteForElement):
(HTMLConverter::_addValue):
(HTMLConverter::_processHeadElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_addMarkersToList):
(HTMLConverter::_exitElement):
(HTMLConverter::_processText):
(HTMLConverter::_traverseNode):
(HTMLConverter::_traverseFooterNode):
(WebCore::attributedStringFromRange):
(_childrenForNode): Deleted.
(HTMLConverter::_computedAttributesForElement): Deleted.
(HTMLConverter::_attributesForElement): Deleted.
(HTMLConverter::_loadFromDOMRange): Deleted.
2014-03-28 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r166441 and r166443.
* CMakeLists.txt: Add platform/audio/AudioHardwareListener.cpp.
2014-03-28 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] The 'auto' height must be adapted to the item's margin.
https://bugs.webkit.org/show_bug.cgi?id=130920
Reviewed by Darin Adler.
Adding the grid-item's marginLogicalHeight to the used breadth when computing
content based grid-track sizes.
Test: fast/css-grid-layout/grid-item-margin-auto-columns-rows.html
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::logicalContentHeightForChild):
2014-03-28 James Craig <jcraig@apple.com>
Web Inspector: AXI: support for live regions
https://bugs.webkit.org/show_bug.cgi?id=130725
Reviewed by Timothy Hatcher.
Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html
Initial support for @aria-live, @aria-atomic, and @aria-busy.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-28 Darin Adler <darin@apple.com>
Fix recently-introduced off-by-one error in centerTruncateToBuffer
https://bugs.webkit.org/show_bug.cgi?id=130889
<rdar://problem/16408694>
Reviewed by Alexey Proskuryakov.
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer): Simplified expression that computes truncatedLength.
Removed incorrect "+ 1" from computation of where to write characters.
2014-03-28 Benjamin Poulain <bpoulain@apple.com>
Update the code related to SelectorPseudoTypeMap to reflect its new purpose
https://bugs.webkit.org/show_bug.cgi?id=130620
Reviewed by Andreas Kling.
Since r166094, SelectorPseudoTypeMap only contains PseudoClass instances and the 4 compatibility PseudoElement.
This patch rename SelectorPseudoTypeMap to SelectorPseudoClassAndCompatibilityElementMap and update the parsing
to split PseudoClass and PseudoElement.
* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGrammar.y.in:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
(WebCore::CSSParserSelector::setPseudoClassValue):
* css/CSSParserValues.h:
* css/CSSSelector.cpp:
(WebCore::appendPseudoClassFunctionTail):
(WebCore::CSSSelector::selectorText):
* css/SelectorPseudoClassAndCompatibilityElementMap.in: Renamed from Source/WebCore/css/SelectorPseudoTypeMap.in.
* css/SelectorPseudoTypeMap.h:
* css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Renamed from Source/WebCore/css/makeSelectorPseudoTypeMap.py.
(enumerablePseudoType):
(expand_ifdef_condition):
2014-03-28 Stephanie Lewis <slewis@apple.com>
Unreviewed build fix.
* platform/audio/AudioHardwareListener.cpp:
(WebCore::AudioHardwareListener::create):
(WebCore::AudioHardwareListener::audioHardwareListenerIsSupported): Deleted.
* platform/audio/AudioHardwareListener.h:
2014-03-28 Lukasz Bialek <l.bialek@samsung.com>
Refactor cut and copy functions as suggested in FIXME line
https://bugs.webkit.org/show_bug.cgi?id=129867
Reviewed by Darin Adler.
Cut and Copy functions in Editor.cpp use lots of common code.
Those functions are merged into one to share code, several
additional conditions are added to preserve Cut and Copy
functionality.
* editing/Editor.cpp:
(WebCore::Editor::cut):
(WebCore::Editor::copy):
(WebCore::Editor::performCutOrCopy):
* editing/Editor.h:
2014-03-28 Stephanie Lewis <slewis@apple.com>
Rename pluginDidEvaluate to better represent when it’s called.
Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.
Reviewed by Anders Carlsson.
No new test because it’s just a name change.
* page/PageThrottler.h:
(WebCore::PageThrottler::pluginDidEvaluateWhileAudioIsPlaying):
2014-03-28 Stephanie Lewis <slewis@apple.com>
Notification handler for telling if audio hardware is active.
https://bugs.webkit.org/show_bug.cgi?id=130743
Reviewed by Jer Noble.
Not web-exposed so no easy way to test.
Listen to CoreAudio to see if audio hardware is active in the current process.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/audio/AudioHardwareListener.cpp: Added.
(WebCore::AudioHardwareListener::create):
(WebCore::AudioHardwareListener::AudioHardwareListener):
* platform/audio/AudioHardwareListener.h: Added.
(WebCore::AudioHardwareListener::Client::~Client):
(WebCore::AudioHardwareListener::~AudioHardwareListener):
(WebCore::AudioHardwareListener::isHardwareActive):
* platform/audio/mac/AudioHardwareListenerMac.cpp: Added.
(WebCore::isAudioHardwareProcessRunning):
(WebCore::AudioHardwareListener::create):
(WebCore::AudioHardwareListenerMac::create):
(WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
(WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac):
(WebCore::AudioHardwareListenerMac::setHardwareActive):
* platform/audio/mac/AudioHardwareListenerMac.h: Added.
2014-03-28 James Craig <jcraig@apple.com>
Web Inspector: AXI: expose what elements get generic "clickable" status
https://bugs.webkit.org/show_bug.cgi?id=130721
Reviewed by Timothy Hatcher.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode_mouseEventNodeId.html
Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.
Update AccessibilityNodeObject::mouseButtonListener() to optionally return body element if
requested so that Web Inspector can display body event delegate handlers.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::mouseButtonListener):
* accessibility/AccessibilityNodeObject.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Really drop all locks in nested run loop on iOS if WebThread is enabled
https://bugs.webkit.org/show_bug.cgi?id=130912
Reviewed by Geoffrey Garen.
Previously we were calling DropAllLocks inside of a single line if statement,
so the JSLock was getting reaquired very quickly. We really want to DropAllLocks
for the duration of running the nested run loop on iOS if there is a WebThread.
* bindings/js/PageScriptDebugServer.h:
* bindings/js/PageScriptDebugServer.cpp:
(WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
(WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
2014-03-28 Brent Fulgham <bfulgham@apple.com>
[Win] Enable Media Track testing features on Windows
https://bugs.webkit.org/show_bug.cgi?id=130851
Reviewed by Eric Carlson.
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Execute code on Windows as well.
(WebCore::Internals::Internals): Ditto.
(WebCore::Internals::captionsStyleSheetOverride): Ditto.
(WebCore::Internals::setCaptionsStyleSheetOverride): Ditto.
(WebCore::Internals::setPrimaryAudioTrackLanguageOverride): Ditto.
(WebCore::Internals::setCaptionDisplayMode): Ditto.
2014-03-28 Brian Burg <bburg@apple.com>
Web Replay: add page-level setting to bypass the MemoryCache
https://bugs.webkit.org/show_bug.cgi?id=130728
Reviewed by Timothy Hatcher.
When replaying a specific Page we don't want to store its cached resources in the
MemoryCache. This patch adds a page setting to prevent the page's resources from
being saved in the MemoryCache.
If Settings::usesMemoryCache() is false, page resources are given the special
SessionID bypassCacheSessionID(). The cached resource loader and memory cache
act as if the memory cache is disabled if the resource has this special session id.
Hook up ReplayController to override the memory cache setting during capture/replay.
Test: http/tests/cache/bypass-memory-cache-after-reload.html
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::add):
* page/Page.cpp:
(WebCore::Page::sessionID):
* page/SessionID.h:
(WebCore::SessionID::bypassCacheSessionID):
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setUsesMemoryCache):
(WebCore::Settings::usesMemoryCache):
* replay/ReplayController.cpp:
(WebCore::ReplayController::setForceDeterministicSettings):
* replay/ReplayController.h:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setUsesMemoryCache):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:
2014-03-28 Radu Stavila <stavila@adobe.com>
In some situations, partial layouts of floating elements produce incorrect results.
https://bugs.webkit.org/show_bug.cgi?id=122668
Reviewed by David Hyatt.
When performing partial layout of float elements and checking if other float
elements are encountered, incorrect results were obtained by not checking
the size of the existing floats vector.
Test: fast/block/float/floats-in-clean-line-crash.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::checkFloatsInCleanLine):
2014-03-28 Beth Dakin <bdakin@apple.com>
Build fix.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
2014-03-28 Jer Noble <jer.noble@apple.com>
[MSE] Implement support for SourceBuffer.remove()
https://bugs.webkit.org/show_bug.cgi?id=121562
Reviewed by Eric Carlson.
Test: media/media-source/media-source-remove.html
Add support for SourceBuffer.remove().
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Initialize new member variables.
(WebCore::SourceBuffer::setTimestampOffset): Update comments to match spec.
(WebCore::SourceBuffer::remove): Added; start removeTimer.
(WebCore::SourceBuffer::abortIfUpdating): Cancel removeTimer.
(WebCore::SourceBuffer::removedFromMediaSource): Call abortIfUpdating().
(WebCore::SourceBuffer::stop): Cancel removeTimer.
(WebCore::SourceBuffer::removeCodedFrames): Added.
(WebCore::SourceBuffer::removeTimerFired): Added.
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBuffer.idl:
2014-03-27 Dean Jackson <dino@apple.com>
Support form controls that may need incremental redraw
https://bugs.webkit.org/show_bug.cgi?id=130736
Reviewed by Beth Dakin.
There are some form controls that change appearance
over time. Expand the ControlStates so that it can
hold a little more information, including a reference
to the native form control. This way the Theme implementation
can repaint the existing native control if necessary. At
least ThemeMac was reusing a single control for painting
all instances before this change.
Since ControlStates is now a class, pass it around by
reference.
The other major change is keeping a timer to trigger a
repaint in RenderBox, which happens if Theme/RenderTheme
update the ControlState to request one.
* WebCore.xcodeproj/project.pbxproj: Add ControlStates.h.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* dom/Element.cpp:
(WebCore::Element::setActive): States now within ControlStates.
(WebCore::Element::setHovered): Ditto.
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged): Ditto.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::disabledStateChanged): Ditto.
(WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked): Ditto.
(WebCore::HTMLInputElement::setIndeterminate): Ditto.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute): Ditto.
* platform/ControlStates.h: New file. Copied the old ControlStates enum,
and added accessors to hold whether or not the state is dirty, and
a reference to a platform control if necessary.
* platform/Theme.h:
(WebCore::Theme::selectionColor): Pass ControlStates pointer.
(WebCore::Theme::paint): Ditto.
(WebCore::Theme::inflateControlPaintRect): Ditto.
* platform/ThemeTypes.h: Remove ControlStates enum.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::applyEdjeStateFromForm): Pass ControlStates pointer.
(WebCore::RenderThemeEfl::paintThemePart): Ditto.
* platform/efl/RenderThemeEfl.h: Ditto.
* platform/mac/ThemeMac.h: Ditto.
* platform/mac/ThemeMac.mm:
(-[WebCoreThemeView addSubview:]): New method to make sure we don't add CALayer backed
views to the NSView we're using for rendering.
(WebCore::updateStates): Use the private animated setters if necessary.
(WebCore::convertControlStatesToThemeDrawState): Namespacing.
(WebCore::configureCheckbox): Pass ControlStates pointer.
(WebCore::createCheckboxCell): New helper since we're creating non-static cells.
(WebCore::sharedCheckboxCell): The old static provider, renamed.
(WebCore::paintCheckbox): Check if this paint was triggered by a state change
or an animation. Update the ControlStates if we need to be repainted.
(WebCore::radio): Parameter is now ControlStates*.
(WebCore::paintRadio): Ditto.
(WebCore::setUpButtonCell): Ditto.
(WebCore::button): Ditto.
(WebCore::paintButton): Ditto.
(WebCore::paintStepper): Ditto.
(WebCore::ThemeMac::ensuredView): Ditto.
(WebCore::ThemeMac::inflateControlPaintRect): Ditto.
(WebCore::ThemeMac::paint): Ditto.
(WebCore::checkbox): Deleted.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::RenderBox): Initialize timer.
(WebCore::RenderBox::~RenderBox): Stop any pending timers and delete the ControlState if necessary.
(WebCore::RenderBox::paintBoxDecorations): Create a ControlStates if needed. Paint, and start the repaint
timer if the ControlStates say we should.
(WebCore::RenderBox::repaintTimerFired): Call repaint when the timer fires.
* rendering/RenderBox.h: Add a timer for repainting.
* rendering/RenderElement.cpp:
(WebCore::controlStatesRendererMap): A static HashMap that associates renderers with ControlStates.
(WebCore::RenderElement::hasControlStatesForRenderer):
(WebCore::RenderElement::controlStatesForRenderer):
(WebCore::RenderElement::removeControlStatesForRenderer):
(WebCore::RenderElement::addControlStatesForRenderer):
* rendering/RenderElement.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Use a pointer to ControlStates.
(WebCore::RenderTheme::adjustRepaintRect): Ditto.
(WebCore::RenderTheme::stateChanged): Ditto.
(WebCore::RenderTheme::updateControlStatesForRenderer): New method that just updates the states part of ControlStates.
(WebCore::RenderTheme::extractControlStatesForRenderer): New method that calculates the state.
(WebCore::RenderTheme::controlStatesForRenderer): Deleted.
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor): Use a ControlStates pointer.
2014-03-28 Myles C. Maxfield <mmaxfield@apple.com>
Clear SVGInlineTextBox fragments when the text changes.
https://bugs.webkit.org/show_bug.cgi?id=130879
Reviewed by Darin Adler.
Ported from Blink: https://src.chromium.org/viewvc/blink?revision=150456&view=revision
This patch modifies SVGInlineTextBox::dirtyLineBoxes to clear all
following text boxes when invoked. Typically this method is called
when the underlying text string changes, and that change needs to
be propagated to all the boxes that use the text beyond the point
where the text is first modified.
Also cleans up final function keywords for SVGRootInlineBox.
Test: svg/custom/unicode-in-tspan-multi-svg-crash.html
* rendering/InlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
(WebCore::InlineTextBox::dirtyOwnLineBoxes): Calls dirtyLineBoxes()
* rendering/svg/SVGInlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
(WebCore::SVGInlineTextBox::dirtyOwnLineBoxes):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::dirtyOwnLineBoxes): Non-recursive part of dirtyLineBoxes()
(WebCore::SVGInlineTextBox::dirtyLineBoxes): Calls dirtyOwnLineBoxes() in a loop
* rendering/svg/SVGRootInlineBox.h:
2014-03-28 Andreas Kling <akling@apple.com>
Rebaseline bindings tests.
2014-03-28 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling r166248 back in.
Turns out r166070 didn't cause a 2% performance loss in page load times
Reverted changeset:
Unreviewed, rolling out r166126.
Rollout r166126 in prepartion to roll out prerequisite r166070
2014-03-26 Antonio Gomes <a1.gomes@sisa.samsung.com>
[Bindings] constants are always typed to 'int'
https://bugs.webkit.org/show_bug.cgi?id=130775
Reviewed by Darin Adler.
Patch fixes a bug where all constant getter generated
methods were returning 'integer' values due to static_cast.
Compilers should be smarth enough to properly infer which
jsNumber class construtor to call given a literal value.
Patch also fixes a bug where values whose representation
is bigger an integer maximum were overflowing. For instance,
NodeFilter.SHOW_ALL (0xFFFFFFFF).
Tests:
Binding tests updated.
Rebaselined fast/dom/constants.html
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceIMPLEMENTSCONSTANT1):
(WebCore::jsTestInterfaceIMPLEMENTSCONSTANT2):
(WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT1):
(WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT2):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjCONDITIONAL_CONST):
(WebCore::jsTestObjCONST_VALUE_0):
(WebCore::jsTestObjCONST_VALUE_1):
(WebCore::jsTestObjCONST_VALUE_2):
(WebCore::jsTestObjCONST_VALUE_4):
(WebCore::jsTestObjCONST_VALUE_8):
(WebCore::jsTestObjCONST_VALUE_9):
(WebCore::jsTestObjCONST_VALUE_11):
(WebCore::jsTestObjCONST_VALUE_12):
(WebCore::jsTestObjCONST_VALUE_13):
(WebCore::jsTestObjCONST_VALUE_14):
(WebCore::jsTestObjCONST_JAVASCRIPT):
(WebCore::jsTestObjReadonly):
2014-03-28 Myles C. Maxfield <mmaxfield@apple.com>
A TrailingObject's endpoint might get decremented twice
https://bugs.webkit.org/show_bug.cgi?id=130874
Reviewed by Darin Adler.
There are two places where we might shave off a trailing space from the end
of a line. We don't want to hit both codepaths for a single line.
Fixes fast/block/update-midpoints-for-trailing-boxes-crash.html after r166245.
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::checkMidpoints):
(WebCore::BreakingContext::handleEndOfLine):
2014-03-28 Andreas Kling <akling@apple.com>
Inline JSDOMWrapper subclasses' finishCreation().
<https://webkit.org/b/130890>
finishCreation() is really a no-op for JSDOMWrapper subclasses in
release builds. None of the ancestor classes do anything but assert
in their implementations.
Generate the function inline, reducing binary size, and removing
an unnecessary call from the JSFoo::create() helpers.
Reviewed by Sam Weinig.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GenerateImplementation):
2014-03-28 Jer Noble <jer.noble@apple.com>
[Mac] HLS streams will report an incorrect natural size.
https://bugs.webkit.org/show_bug.cgi?id=130859
Reviewed by Eric Carlson.
Some HLS streams will report incorrect naturalSizes due to the asset's preferredTransform
property not being available at the same time as the track's natural size. Given that
AVFoundation only allows one video track to be selected at a time, simply use the asset's
presentation size, cached in m_cachedPresentation size in all cases.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):
2014-03-28 Antti Koivisto <antti@apple.com>
Remove NodeListRootType flag
https://bugs.webkit.org/show_bug.cgi?id=130896
Reviewed by Anders Carlsson.
This can be handled statically (except for the RadioNodeList case) removing
a branch from NodeList traversal.
* dom/ClassNodeList.h:
* dom/Document.cpp:
(WebCore::Document::registerNodeListForInvalidation):
(WebCore::Document::unregisterNodeListForInvalidation):
(WebCore::Document::registerNodeList): Deleted.
(WebCore::Document::unregisterNodeList): Deleted.
Mark document invalidation registered lists with a bit.
Renamed for clarity.
* dom/Document.h:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::rootNode):
Base class version that invokes virtual isRootedAtDocument. It is needed to support
LiveNodeList::namedItem.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::isRegisteredForInvalidationAtDocument):
(WebCore::LiveNodeList::setRegisteredForInvalidationAtDocument):
(WebCore::LiveNodeList::document):
(WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
(WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
(WebCore::CachedLiveNodeList<NodeListType>::rootNode):
Call isRootedAtDocument on the final leaf type. Except for RadioNodeList this
resolves statically.
(WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
(WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
(WebCore::LiveNodeList::isRootedAtDocument): Deleted.
(WebCore::LiveNodeList::rootType): Deleted.
(WebCore::LiveNodeList::rootNode): Deleted.
* dom/NameNodeList.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* dom/TagNodeList.h:
* html/HTMLCollection.cpp:
(WebCore::rootTypeFromCollectionType):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::isRootedAtDocument):
(WebCore::HTMLCollection::rootType):
HTMLCollections still needs the flag.
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
2014-03-28 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Geoclue2 providers won't work after reloading
https://bugs.webkit.org/show_bug.cgi?id=130898
Reviewed by Martin Robinson.
Don't reuse the Geoclue2 client proxy between different calls to
startPosition(), and create a new client proxy each time instead.
* platform/geoclue/GeolocationProviderGeoclue2.cpp:
(GeolocationProviderGeoclue::startUpdating): Don't reuse the
client proxy, by always calling geoclue_manager_call_get_client().
(GeolocationProviderGeoclue::stopUpdating): Disconnect from the
'location-updated' signal and dispose the client proxy.
2014-03-28 Diego Pino Garcia <dpino@igalia.com>
[GTK] Too many redirects visiting www.globalforestwatch.org
https://bugs.webkit.org/show_bug.cgi?id=129681
Reviewed by Martin Robinson.
* platform/gtk/UserAgentGtk.cpp:
(WebCore::standardUserAgent): Append Safari version to UserAgent
string.
2014-03-28 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling r166249 back in.
Turns out r166070 didn't cause a 2% performance loss in page load times
Reverted changeset:
Unreviewed, rolling out r166070.
Rollout r166070 due to 2% performance loss in page load times
2014-03-28 James Craig <jcraig@apple.com>
Web Inspector: Copy/paste error. EventListener block in DOM.json uses description from Node.
https://bugs.webkit.org/show_bug.cgi?id=130158
Reviewed by Timothy Hatcher.
* inspector/protocol/DOM.json: Fixed a copy/paste annoyance.
2014-03-27 James Craig <jcraig@apple.com>
Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
https://bugs.webkit.org/show_bug.cgi?id=130827
Reviewed by Timothy Hatcher.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Support for selectedChildNodeIds in inspector-protocol: DOM.getAccessibilityPropertiesForNode.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-27 Brent Fulgham <bfulgham@apple.com>
Specify Shadow DOM Pseudo IDs in Media Element Constructors
https://bugs.webkit.org/show_bug.cgi?id=130882
Reviewed by Eric Carlson.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlPanelElement::MediaControlPanelElement): Call setPseudoId in constructor.
(WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement): Ditto.
(WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): Ditto.
(WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): Ditto.
(WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): Ditto.
(WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement): Ditto.
(WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Ditto.
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Ditto.
(WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement): Ditto.
(WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Ditto.
(WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Ditto.
(WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Ditto.
(WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Ditto.
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Ditto.
(WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement): Ditto.
(WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Ditto.
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Ditto.
(WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement): Ditto.
(WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement): Ditto.
(WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Ditto.
(WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement): Ditto.
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement): Ditto.
(WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Ditto.
(WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Ditto.
(WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Ditto.
2014-03-27 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Adjust the tile coverage on the scrollview's edges
https://bugs.webkit.org/show_bug.cgi?id=130884
Reviewed by Dan Bernstein.
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::computeCoverageRect):
Pull back the future rect inside the contentRect if it goes outside.
There is no point in retiling for rubberbanding and the extra tiles should be always be
on the opposite side to the edges.
2014-03-27 Joseph Pecoraro <pecoraro@apple.com>
Remove unused LocaleMac::create method
https://bugs.webkit.org/show_bug.cgi?id=130870
Reviewed by Andreas Kling.
* platform/text/mac/LocaleMac.h:
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::create): Deleted.
(WebCore::LocaleMac::shortDateFormatter): Deleted.
2014-03-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Clean up unneeded "mutable" keyword
https://bugs.webkit.org/show_bug.cgi?id=130832
Reviewed by Andreas Kling.
As r166350, this patch cleans up unneeded "mutable" keywords.
Additionally, m_validatedSelectionCache is removed because it is not used anywhere else.
* css/CSSFontFaceRule.h:
* css/CSSStyleRule.h:
* editing/FrameSelection.h:
2014-03-27 Enrica Casucci <enrica@apple.com>
Add support for AirPlay picker in WK2 for iOS.
https://bugs.webkit.org/show_bug.cgi?id=130855
<rdar://problem/15349859>
Reviewed by Eric Carlson, Joseph Pecoraro and Benjamin Poulain.
Adds support in HTMLMediaSession to display the airplay picker
and to monitor presence of available wireless targets.
* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::showPlaybackTargetPicker):
(WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
* loader/EmptyClients.h:
* page/ChromeClient.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::wirelessRoutesAvailableChanged):
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::hasWirelessTargetsAvailable):
(WebCore::MediaSessionManager::startMonitoringAirPlayRoutes):
(WebCore::MediaSessionManager::stopMonitoringAirPlayRoutes):
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::hasWirelessTargetsAvailable):
(WebCore::MediaSessionManageriOS::startMonitoringAirPlayRoutes):
(WebCore::MediaSessionManageriOS::stopMonitoringAirPlayRoutes):
(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper hasWirelessTargetsAvailable]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled):
2014-03-27 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes][css clip-path] rounded corner calculation for box shapes is wrong
https://bugs.webkit.org/show_bug.cgi?id=127982
Reviewed by Simon Fraser.
Calculate rounded corners for box shapes as defined in the CSS Shapes
spec.
Tests: css3/masking/clip-path-border-radius-border-box-000.html
css3/masking/clip-path-border-radius-content-box-000.html
css3/masking/clip-path-border-radius-content-box-001.html
css3/masking/clip-path-border-radius-padding-box-000.html
css3/masking/clip-path-border-radius-padding-box-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-002.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-002.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-003.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-002.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-003.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-004.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-002.html
fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-003.html
* platform/graphics/RoundedRect.h:
(WebCore::RoundedRect::Radii::transposedRadii): Transpose radii for
vertical writing modes.
(WebCore::RoundedRect::moveBy): Add method for use with clip path.
(WebCore::RoundedRect::transposedRect): Transpose rect for vertical
writing modes.
* rendering/RenderBox.h:
(WebCore::RenderBox::marginBoxRect): Return the margin box rect for
the RenderBox.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setupClipPath): Call the new function for the
rounded corner calculation.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape): Call the new function
for the rounded corner calculation.
* rendering/shapes/BoxShape.cpp:
(WebCore::adjustRadiusForMarginBoxShape): Helper function for
computeRoundedRectForLayoutBoxShape.
(WebCore::computeMarginBoxShapeRadius): Ditto.
(WebCore::computeMarginBoxShapeRadii): Ditto.
(WebCore::computeRoundedRectForBoxShape): Utility function to do the
rounded corner calculation.
* rendering/shapes/BoxShape.h: Add new function.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::getRoundedInnerBorderFor): Add default argument
values.
2014-03-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166364.
https://bugs.webkit.org/show_bug.cgi?id=130872
Caused a test assertion (Requested by smfr on #webkit).
Reverted changeset:
"Operator stretching: expose a math data API"
https://bugs.webkit.org/show_bug.cgi?id=130572
http://trac.webkit.org/changeset/166364
2014-03-27 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Compute a good exposed rect when scaling WKContentView
https://bugs.webkit.org/show_bug.cgi?id=130761
Reviewed by Simon Fraser.
* WebCore.exp.in:
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::setScrollVelocity):
(WebCore::ScrollView::computeCoverageRect):
While scaling in, do not add margins tiles. When scaling out, add 1 margin tile size
all around.
2014-03-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166360.
https://bugs.webkit.org/show_bug.cgi?id=130869
Seems to have broken PLT (Requested by ap on #webkit).
Reverted changeset:
"Connection::dispatchOneMessage() can be re-entered while
handling Cmd-key menu"
https://bugs.webkit.org/show_bug.cgi?id=130767
http://trac.webkit.org/changeset/166360
2014-03-27 Antti Koivisto <antti@apple.com>
Remove LiveNodeList::Type
https://bugs.webkit.org/show_bug.cgi?id=130866
Reviewed by Andreas Kling.
We don't need dynamic type information anymore.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::radioNodeList):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::LiveNodeList):
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::invalidationType):
(WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
(WebCore::LiveNodeList::type): Deleted.
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::nodeMatches): Deleted.
* dom/NameNodeList.h:
(WebCore::NameNodeList::nodeMatches):
* dom/NodeRareData.h:
(WebCore::NodeListTypeIdentifier<ClassNodeList>::value):
(WebCore::NodeListTypeIdentifier<NameNodeList>::value):
(WebCore::NodeListTypeIdentifier<TagNodeList>::value):
(WebCore::NodeListTypeIdentifier<HTMLTagNodeList>::value):
(WebCore::NodeListTypeIdentifier<RadioNodeList>::value):
(WebCore::NodeListTypeIdentifier<LabelsNodeList>::value):
Get unique id from type for key generation purposes only.
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::namedNodeListKey):
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::HTMLTagNodeList::HTMLTagNodeList):
* dom/TagNodeList.h:
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
2014-03-27 Simon Fraser <simon.fraser@apple.com>
Fix crash when RenderView is cleared inside of frame flattening layout
https://bugs.webkit.org/show_bug.cgi?id=130864
Reviewed by Dan Bernstein.
Navigating on http://wallstcheatsheet.com pages on iOS in WebKit1 would
sometimes crash when, inside the inChildFrameLayoutWithFrameFlattening clause,
our frame's RenderView would be null after doing a layout from the root frame,
possibly also when WebCore was being re-entered from another thread.
Add a null check to fix this.
Crash was timing-dependent and hard to test.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
2014-03-27 Antti Koivisto <antti@apple.com>
Remove some unnecessary branches from LiveNodeList traversal
https://bugs.webkit.org/show_bug.cgi?id=130854
Reviewed by Andreas Kling.
Compile different traversal code paths for all NodeList subclasses.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
(WebCore::ClassNodeList::~ClassNodeList):
(WebCore::ClassNodeList::nodeMatches): Deleted.
* dom/ClassNodeList.h:
(WebCore::ClassNodeList::nodeMatches):
(WebCore::ClassNodeList::nodeMatchesInlined): Deleted.
Remove separate nodeMatchesInlined functions.
We now rely on exact types and marking classes final.
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::~LiveNodeList):
(WebCore::LiveNodeList::namedItem):
(WebCore::LiveNodeList::rootNode): Deleted.
(WebCore::isMatchingElement): Deleted.
(WebCore::firstMatchingElement): Deleted.
(WebCore::lastMatchingElement): Deleted.
(WebCore::nextMatchingElement): Deleted.
(WebCore::previousMatchingElement): Deleted.
(WebCore::traverseMatchingElementsForward): Deleted.
(WebCore::traverseMatchingElementsBackward): Deleted.
(WebCore::LiveNodeList::collectionFirst): Deleted.
(WebCore::LiveNodeList::collectionLast): Deleted.
(WebCore::LiveNodeList::collectionTraverseForward): Deleted.
(WebCore::LiveNodeList::collectionTraverseBackward): Deleted.
(WebCore::LiveNodeList::length): Deleted.
(WebCore::LiveNodeList::item): Deleted.
(WebCore::LiveNodeList::memoryCost): Deleted.
(WebCore::LiveNodeList::invalidateCache): Deleted.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::invalidateCacheForAttribute):
(WebCore::CachedLiveNodeList::collectionCanTraverseBackward):
(WebCore::LiveNodeList::rootNode):
(WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
Add CachedLiveNodeList<NodeListType> utility type that interfaces with CollectionIndexCache.
It is the base class for all concrete LiveNodeLists.
(WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
(WebCore::CachedLiveNodeList<NodeListType>::collectionFirst):
(WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
(WebCore::nextMatchingElement):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
(WebCore::previousMatchingElement):
(WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
(WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
(WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
(WebCore::CachedLiveNodeList<NodeListType>::length):
(WebCore::CachedLiveNodeList<NodeListType>::item):
(WebCore::CachedLiveNodeList<NodeListType>::memoryCost):
Templated code moves to header.
(WebCore::LiveNodeList::LiveNodeList): Deleted.
(WebCore::LiveNodeList::~LiveNodeList): Deleted.
(WebCore::LiveNodeList::invalidateCache): Deleted.
(WebCore::LiveNodeList::collectionCanTraverseBackward): Deleted.
(WebCore::LiveNodeList::willValidateIndexCache): Deleted.
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches):
(WebCore::NodeListsNodeData::invalidateCaches):
* dom/TagNodeList.cpp:
(WebCore::TagNodeList::TagNodeList):
(WebCore::HTMLTagNodeList::HTMLTagNodeList):
(WebCore::HTMLTagNodeList::~HTMLTagNodeList):
(WebCore::TagNodeList::nodeMatches): Deleted.
(WebCore::HTMLTagNodeList::nodeMatches): Deleted.
* dom/TagNodeList.h:
(WebCore::TagNodeList::nodeMatches):
(WebCore::HTMLTagNodeList::nodeMatches):
(WebCore::TagNodeList::create): Deleted.
(WebCore::HTMLTagNodeList::nodeMatchesInlined): Deleted.
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
2014-03-27 Adenilson Cavalcanti <cavalcantii@gmail.com>
Remove comment from Filter.h
https://bugs.webkit.org/show_bug.cgi?id=130848
Reviewed by Simon Fraser.
Exploring the use of consts on applyScale() methods didn't yield
good results.
No new tests, no change on behavior.
* platform/graphics/filters/Filter.h:
2014-03-27 Frédéric Wang <fred.wang@free.fr>
Operator stretching: expose a math data API
https://bugs.webkit.org/show_bug.cgi?id=130572
Reviewed by Chris Fleizach.
We expose a new SimpleFontData API to give access to the data from the
OpenType MATH table using a font cache. The class OpenTypeMathData will
be implemented in bug 130324. On Darwin platform, we also implement the
missing FontPlatformData::openTypeTable function which will be necessary
to load the OpenType MATH table. The changes are intended to be used
for MathML operator stretching (bug 130322) so tests are not added yet.
* CMakeLists.txt: add new OpenTypeMathData files.
* WebCore.vcxproj/WebCore.vcxproj: ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
We make the math and vertical data share the same key for the cache.
(WebCore::fontMathDataCacheInstance):
(WebCore::FontCache::getMathData):
(WebCore::fontVerticalDataCacheInstance):
* platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
* platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
* platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
* platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
(WebCore::OpenTypeMathData::OpenTypeMathData):
* platform/graphics/opentype/OpenTypeMathData.h: Added.
(WebCore::OpenTypeMathData::create):
(WebCore::OpenTypeMathData::hasMathData):
2014-03-27 Brent Fulgham <bfulgham@apple.com>
Fix a crash caused by track insertion after load()
https://bugs.webkit.org/show_bug.cgi?id=130777
Reviewed by Eric Carlson.
Test: media/track/track-insert-after-load-crash.html
Based on the Blink change (patch by acolwell@chromium.org):
https://codereview.chromium.org/211373009/
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Remove stale LoadMediaResource flag after explicit load.
2014-03-27 Alexey Proskuryakov <ap@apple.com>
Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
equivalents, ASSERT(!_data->_keyDownEventBeingResent)
https://bugs.webkit.org/show_bug.cgi?id=130767
<rdar://problem/16307487>
Added a wrapper for RunLoop::initializeMainThread that also adds modal run loop
mode to it on Mac.
* CMakeLists.txt:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/MainRunLoop.cpp: Added.
(WebCore::initializeMainRunLoop):
* platform/MainRunLoop.h: Added.
* platform/mac/MainRunLoop.mm: Added.
(WebCore::initializeMainRunLoop):
2014-03-27 Krzysztof Czech <k.czech@samsung.com>
AX: Returns const reference to static string.
https://bugs.webkit.org/show_bug.cgi?id=130835
Reviewed by Mario Sanchez Prada.
Avoiding some unnecessary copies by returning const reference to static string.
No new tests. No behaviour change.
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::controlTypeName):
(WebCore::AccessibilityMediaControlsContainer::elementTypeName):
* accessibility/AccessibilityMediaControls.h:
2014-03-27 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Rename inNamedFlow flag to isNamedFlowContentNode flag
https://bugs.webkit.org/show_bug.cgi?id=130731
Reviewed by Andrei Bucur.
Currently, the inNamedFlow flag in Node class tells if a node is a content node, one that has a style with flow-into.
Since it is used only for those nodes and not propagated through hierarchy, i want to renamed it to a more meaningful name.
No new functionality, no new tests.
* dom/ContainerNode.cpp:
(WebCore::destroyRenderTreeIfNeeded):
* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::unregisterNamedFlowContentElement):
* dom/Node.h:
(WebCore::Node::isNamedFlowContentNode):
(WebCore::Node::setIsNamedFlowContentNode):
(WebCore::Node::clearIsNamedFlowContentNode):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::clearContentElements):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::nextNodeInsideContentElement):
* style/StyleResolveTree.cpp:
(WebCore::Style::attachChildren):
(WebCore::Style::resolveLocal):
2014-03-27 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Crash when cloning a region child with a content node child
https://bugs.webkit.org/show_bug.cgi?id=129811
Reviewed by David Hyatt.
Collecting the children of a region in another named flow will be supported
again in the future and it will be revisited when we will implement the content
keyword: http://dev.w3.org/csswg/css-regions-1/#the-flow-into-property.
Remove the support for now as it introduces unnecessary complexity in the code
and potential wrong behavior.
Test: fast/regions/region-content-node-child-clone-crash.html
* dom/Element.cpp:
(WebCore::Element::shouldMoveToFlowThread):
(WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::ElementRareData):
* rendering/FlowThreadController.cpp:
* rendering/FlowThreadController.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::moveToFlowThreadIfNeeded):
(WebCore::Style::createRendererIfNeeded):
2014-03-27 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Remove unneeded mutable keyword in some member variables
https://bugs.webkit.org/show_bug.cgi?id=130813
Reviewed by Andreas Kling.
Some member variables have mutable keyword though they don't used by const function.
This patch removes them.
No new tests, no behavior changes. Just clean up.
* storage/StorageAreaSync.h:
* svg/animation/SVGSMILElement.h:
2014-03-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166296 and r166331.
https://bugs.webkit.org/show_bug.cgi?id=130822
caused some crashes and frequent assertion failures, and the
fix is going to take a little while (Requested by thorton on
#webkit).
Reverted changesets:
"[iOS WebKit2] Flush all surfaces after painting into all of
them, instead of after painting into each one"
https://bugs.webkit.org/show_bug.cgi?id=130768
http://trac.webkit.org/changeset/166296
"Assertion failure in RemoteLayerBackingStore::flush"
https://bugs.webkit.org/show_bug.cgi?id=130810
http://trac.webkit.org/changeset/166331
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Fix failing scrolling tests by reverting to previous behavior where
the scrolling geometry for the main frame scrolling node was only
updated from frameViewLayoutUpdated() and no-where else.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateScrollingNode):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Deleted.
2014-03-26 Ryosuke Niwa <rniwa@webkit.org>
HTMLConverter::_processText is slow because it walks up ancestor elements
https://bugs.webkit.org/show_bug.cgi?id=130820
Reviewed by Sam Weinig.
Avoid walking up the tree from each text node by caching the aggregated attributed strings for each element.
Also compute the attributed strings top-down to avoid calling mutableCopy in every iteration.
This reduces the runtime of Interactive/CopyAll.html from 15s to 13s (15%).
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_attributesForElement):
(HTMLConverter::attributesForElement):
(HTMLConverter::aggregatedAttributesForAncestors):
(HTMLConverter::_processText):
2014-03-26 Sam Weinig <sam@webkit.org>
Fix iOS build.
* editing/cocoa/HTMLConverter.mm:
(_font):
2014-03-26 Ryosuke Niwa <rniwa@webkit.org>
Make _processText and _traverseNode in HTMLConverter more efficient
https://bugs.webkit.org/show_bug.cgi?id=130769
Reviewed by Sam Weinig.
Rewrote a bunch of code in C++ and avoided creating wrappers.
This reduces the runtime of Interactive/CopyAll.html from ~16.5s to 15s.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::isAncestorsOfStartToBeConverted):
(HTMLConverter::HTMLConverter):
(HTMLConverter::~HTMLConverter):
(HTMLConverter::_processElement):
(HTMLConverter::_processText):
(HTMLConverter::_traverseNode):
(HTMLConverter::_traverseFooterNode):
(HTMLConverterCaches::cacheAncestorsOfStartToBeConverted):
(HTMLConverter::_loadFromDOMRange):
2014-03-26 Adenilson Cavalcanti <cavalcantii@gmail.com>
FEGaussianBlur: unify and const-ify calculateKernelSize
https://bugs.webkit.org/show_bug.cgi?id=130779
Some methods can benefit of using const refs as also make sense to
unify the interface (i.e. parameters) in calculateKernelSize/Unscaled.
FilterEffect::filter() will now return a reference, which helps since
its descendants were accessing methods into the pointer without testing
for it.
Reviewed by Simon Fraser.
No new tests, no changes on behavior.
* platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::platformApplySoftware):
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::determineAbsolutePaintRect):
(WebCore::FEDropShadow::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
(WebCore::FEGaussianBlur::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.h:
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::determineAbsolutePaintRect):
(WebCore::FEMorphology::platformApplySoftware):
* platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::determineAbsolutePaintRect):
(WebCore::FEOffset::platformApplySoftware):
* platform/graphics/filters/FETile.cpp:
(WebCore::FETile::platformApplySoftware):
* platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::fillRegion):
* platform/graphics/filters/Filter.h:
(WebCore::Filter::applyHorizontalScale):
(WebCore::Filter::applyVerticalScale):
* platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::filter):
* platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::determineAbsolutePaintRect):
(WebCore::SourceAlpha::platformApplySoftware):
* platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::determineAbsolutePaintRect):
(WebCore::SourceGraphic::platformApplySoftware):
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
(WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
* svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::determineAbsolutePaintRect):
(WebCore::FEImage::platformApplySoftware):
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Make sure childContainmentLayer is parented
https://bugs.webkit.org/show_bug.cgi?id=130808
Reviewed by Tim Horton.
m_childContainmentLayer was never parented if the page
created no other compositing layers, which left a dangling
GraphicsLayer which in turn confused UI-side compositing a little.
Fix by always parenting this layer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
2014-03-26 Brian Burg <bburg@apple.com>
Web Replay: disable page cache during capture/replay
https://bugs.webkit.org/show_bug.cgi?id=130672
Reviewed by Timothy Hatcher.
Save, set, and restore page cache settings at the correct times.
No new tests. If this code fails, then the tests for network replay will fail.
* replay/ReplayController.cpp:
(WebCore::ReplayController::setForceDeterministicSettings): Added.
(WebCore::ReplayController::startCapturing):
(WebCore::ReplayController::stopCapturing):
(WebCore::ReplayController::cancelPlayback):
(WebCore::ReplayController::replayToPosition):
* replay/ReplayController.h:
2014-03-26 Sam Weinig <sam@webkit.org>
Convert more of HTMLConverter to C++
https://bugs.webkit.org/show_bug.cgi?id=130811
Reviewed by Anders Carlsson.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::HTMLConverter):
(HTMLConverter::~HTMLConverter):
(HTMLConverter::_blockLevelElementForNode):
(HTMLConverter::_colorForElement):
(HTMLConverter::_computedAttributesForElement):
(HTMLConverter::_attributesForElement):
(HTMLConverter::_fillInBlock):
(HTMLConverter::_enterElement):
(HTMLConverter::_addTableForElement):
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_exitElement):
(HTMLConverter::_getFloat): Deleted.
(HTMLConverter::_elementIsBlockLevel): Deleted.
(HTMLConverter::_elementHasOwnBackgroundColor): Deleted.
(HTMLConverter::_colorForNode): Deleted.
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Hook up -webkit-overflow-scrolling:touch for iOS WK2
https://bugs.webkit.org/show_bug.cgi?id=130809
Reviewed by Tim Horton.
Get -webkit-overflow-scrolling: touch working for iOS WK2.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollingNode):
Send in ScrollingGeometry when we update scrolling nodes.
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::updateScrollingNode):
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
Need to get to the scrolling layer in a subclass.
(WebCore::ScrollingTreeScrollingNodeIOS::scrollLayer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasAcceleratedTouchScrolling): Remove code
that temporarily disabled touch-scrolling.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): When we
update scrolling nodes, send in the right scrolling geometry.
2014-03-26 Timothy Hatcher <timothy@apple.com>
Modernize the loops in InspectorPageAgent.cpp.
Also moves the check for hiddenFromInspector to a lower level.
This hides hidden resources from more places.
https://bugs.webkit.org/show_bug.cgi?id=130803
Reviewed by Joseph Pecoraro.
* inspector/InspectorPageAgent.cpp:
(WebCore::buildArrayForCookies):
(WebCore::cachedResourcesForFrame):
(WebCore::allResourcesURLsForFrame):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
(WebCore::InspectorPageAgent::loaderDetachedFromFrame):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
2014-03-26 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Add platform implementation for RTCOfferAnswerOptions and RTCOfferOptions
https://bugs.webkit.org/show_bug.cgi?id=130689
Reviewed by Eric Carlson.
RTCOfferAnswerOptions and RTCOfferOptions objects were being passed to platform class, causing a layer
violation.
* Modules/mediastream/RTCOfferAnswerOptions.cpp:
(WebCore::RTCOfferAnswerOptions::initialize):
(WebCore::RTCOfferOptions::initialize):
* Modules/mediastream/RTCOfferAnswerOptions.h:
(WebCore::RTCOfferAnswerOptions::requestIdentity):
(WebCore::RTCOfferAnswerOptions::privateOfferAnswerOptions):
(WebCore::RTCOfferAnswerOptions::RTCOfferAnswerOptions):
(WebCore::RTCOfferOptions::offerToReceiveVideo):
(WebCore::RTCOfferOptions::offerToReceiveAudio):
(WebCore::RTCOfferOptions::voiceActivityDetection):
(WebCore::RTCOfferOptions::iceRestart):
(WebCore::RTCOfferOptions::privateOfferOptions):
(WebCore::RTCOfferOptions::RTCOfferOptions):
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
* platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Added.
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createOffer):
(WebCore::RTCPeerConnectionHandlerMock::createAnswer):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2014-03-26 Zalan Bujtas <zalan@apple.com>
Device scale factor should always be greater than 0.
https://bugs.webkit.org/show_bug.cgi?id=130798
Reviewed by David Kilzer.
Rendering context requires a device scale factor > 0 so that we can map CSS pixels
to device pixels properly. Neither 0 nor a negative device pixel ratio are considered to be valid.
* page/Page.cpp:
(WebCore::Page::setDeviceScaleFactor):
2014-03-26 Myles C. Maxfield <mmaxfield@apple.com>
Skipping underlines disregard points completely inside the underline rect
https://bugs.webkit.org/show_bug.cgi?id=130800
Reviewed by Dean Jackson.
When determining bounds for underline skipping, endpoints of glyph contours
that lie entirely within the rect of the underline are ignored. This patch
makes these points affect the skipping regions the same way that intersections
do.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/glyph-inside-underline.html
* platform/graphics/mac/FontMac.mm:
(WebCore::updateX): Refactored common code into a function
(WebCore::findPathIntersections): Test for endpoints which lie entirely within
the underline bounds
2014-03-26 Pratik Solanki <psolanki@apple.com>
Unreviewed. iOS build fix after r166312. Soft link CMTimeRangeGetEnd.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2014-03-26 Timothy Hatcher <timothy@apple.com>
Propagate the hiddenFromInspector flag on ResourceRequest in
places when a new request a made or passed between processes.
https://bugs.webkit.org/show_bug.cgi?id=130741
Reviewed by Joseph Pecoraro.
* WebCore.exp.in: Updated symbols for updateFromDelegatePreservingOldProperties.
* platform/network/cf/ResourceRequest.h:
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
* platform/network/curl/ResourceRequest.h:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
* platform/network/mac/ResourceRequestMac.mm:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
* platform/network/soup/ResourceRequest.h:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
(WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
2014-03-26 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Remove no-longer-used shape-inside geometry code
https://bugs.webkit.org/show_bug.cgi?id=130740
Reviewed by David Hyatt.
This patch removes shape-padding support, since it can be used only with shape-inside.
Shape-inside support has been removed in r166301.
No new tests needed, existing tests have been removed by r166301.
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::shapePaddingLogicalBoundingBox): Deleted.
(WebCore::BoxShape::shapePaddingBounds): Deleted.
(WebCore::BoxShape::getIncludedIntervals): Deleted.
(WebCore::BoxShape::firstIncludedIntervalLogicalTop): Deleted.
* rendering/shapes/BoxShape.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::leftSide): Deleted.
(WebCore::isReflexVertex): Deleted.
(WebCore::computeShapePaddingBounds): Deleted.
(WebCore::PolygonShape::shapePaddingBounds): Deleted.
(WebCore::PolygonShape::getIncludedIntervals): Deleted.
(WebCore::firstFitRectInPolygon): Deleted.
(WebCore::aboveOrToTheLeft): Deleted.
(WebCore::PolygonShape::firstIncludedIntervalLogicalTop): Deleted.
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::firstIncludedIntervalY): Deleted.
(WebCore::RasterShapeIntervals::getIncludedIntervals): Deleted.
(WebCore::RasterShape::paddingIntervals): Deleted.
(WebCore::RasterShape::getIncludedIntervals): Deleted.
(WebCore::RasterShape::firstIncludedIntervalLogicalTop): Deleted.
* rendering/shapes/RasterShape.h:
* rendering/shapes/RectangleShape.cpp:
(WebCore::ellipseYIntercept): Deleted.
(WebCore::RectangleShape::shapePaddingBounds): Deleted.
(WebCore::RectangleShape::getIncludedIntervals): Deleted.
(WebCore::cornerInterceptForWidth): Deleted.
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop): Deleted.
* rendering/shapes/RectangleShape.h:
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
(WebCore::Shape::createRasterShape):
(WebCore::Shape::createBoxShape):
* rendering/shapes/Shape.h:
(WebCore::Shape::lineOverlapsShapePaddingBounds): Deleted.
(WebCore::Shape::shapePadding): Deleted.
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-03-26 Jeremy Jones <jeremyj@apple.com>
Implement hasLiveStreamingContent property in WebAVPlayerController
https://bugs.webkit.org/show_bug.cgi?id=128684
Reviewed by Simon Fraser.
* WebCore.exp.in:
Add export for WebVideoFullscreenInterfaceAVKit::setSeekableRanges().
* platform/ios/WebVideoFullscreenInterface.h:
Add setSeekableRanges()
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
Add setSeekableRanges()
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
Remove vestigial playerLayer property. Add seekableTimeRanges property.
(-[WebAVPlayerController dealloc]):
Release _seekableTimeRanges.
Remove references to _playerLayer.
(-[WebAVPlayerController hasLiveStreamingContent]):
Implement based on duration. Live stream has an infinite duration.
(+[WebAVPlayerController keyPathsForValuesAffectingHasLiveStreamingContent]):
Describe dependent keys for computed property hasLiveStreamingContent.
(-[WebAVPlayerController skipBackwardThirtySeconds:]):
Seek back 30 seconds if that time is in the seekable ranges.
(-[WebAVPlayerController gotoEndOfSeekableRanges:]):
Jump to live by going to the of the seekable ranges.
(WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
Convert TimeRange to CMTimeRange.
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setMediaElement):
Set initial seekable ranges.
(WebVideoFullscreenModelMediaElement::handleEvent):
Update seekable ranges when time changes.
2014-03-26 Brent Fulgham <bfulgham@apple.com>
Fix OS X build.
* WebCore.exp.in: Add missing export symbol.
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Fix the Windows build. Add a no-op impl for Mac non-UI-side.
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
* platform/graphics/ca/win/PlatformCALayerWin.h:
2014-03-26 Simon Fraser <simon.fraser@apple.com>
REGRESSION (r155977): matrix animations no longer animate
https://bugs.webkit.org/show_bug.cgi?id=130789
<rdar://problem/15650946>
Reviewed by Dean Jackson.
r155977 erroneously removed two lines that set the end points for
matrix animations (used when transform lists don't match), so
put them back.
Also don't repaint when updateContentsScale()
is called and doesn't change the contents scale.
Test: compositing/animation/matrix-animation.html
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateRootRelativeScale):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::updateContentsScale):
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
https://bugs.webkit.org/show_bug.cgi?id=130778
Reviewed by Tim Horton.
Make it possible to put a "custom behavior" flag on a layer so that,
with UI-side compositing, we know to create a specific type of
layer or view for that GraphicsLayer.
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setCustomBehavior):
(WebCore::GraphicsLayer::customBehavior):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateCustomBehavior):
(WebCore::GraphicsLayerCA::setCustomBehavior):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateScrollingLayers):
2014-03-26 Brent Fulgham <bfulgham@apple.com>
Unreviewed test correction.
Because of the way DRT on Windows links to WebCore, having the implementaion of the update
method in the header caused a runtime failure due to duplicate symbols being bound to the
compilation unit.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Moved from header.
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Deleted.
2014-03-26 Jer Noble <jer.noble@apple.com>
REGRESSION(r162679): Poster image visible under the video
https://bugs.webkit.org/show_bug.cgi?id=130783
Reviewed by Simon Fraser.
In the listed revision, we started checking for isRenderImage()
instead of isImage(). RenderMedias return 'true' for the first
but 'false' for the second. Change the if() statement to check
for isRenderMedia() in addition to !isRenderImage().
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
2014-03-26 Antti Koivisto <antti@apple.com>
Render tree construction is O(N^2) in number of siblings
https://bugs.webkit.org/show_bug.cgi?id=129065
Reviewed by Darin Adler.
When adding a new renderer to the tree we would search for the correct render tree
position by traversing DOM children forward to find something that already has a renderer.
In common case there is no such renderer. This would be repeated for each inserted renderer
leading to O(n^2) in respect to child node count.
This patch caches the computed render tree insertion position and passes it to siblings.
Until the cached position is reached it can be used for all new renderers.
Test: perf/sibling-renderer-On2.html
* style/StyleResolveTree.cpp:
(WebCore::Style::RenderTreePosition::parent):
(WebCore::Style::RenderTreePosition::RenderTreePosition):
(WebCore::Style::RenderTreePosition::canInsert):
(WebCore::Style::RenderTreePosition::insert):
(WebCore::Style::RenderTreePosition::computeNextSibling):
(WebCore::Style::RenderTreePosition::invalidateNextSibling):
(WebCore::Style::styleForElement):
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::attachTextRenderer):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
(WebCore::Style::attachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::resolveTextNode):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::updateBeforeOrAfterPseudoElement):
(WebCore::Style::resolveTree):
2014-03-26 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166264.
https://bugs.webkit.org/show_bug.cgi?id=130785
Broke some window.opener tests for WK2 Mavericks (Requested by
brrian__ on #webkit).
Reverted changeset:
"Web Replay: resource unique identifiers should be unique-per-
frame, not globally"
https://bugs.webkit.org/show_bug.cgi?id=130632
http://trac.webkit.org/changeset/166264
2014-03-26 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Remove shape-inside support
https://bugs.webkit.org/show_bug.cgi?id=130698
Reviewed by David Hyatt.
CSS Shapes Level 1 (CR) only contains shape-outside. We are focusing our efforts on finalizing
the implementation of shape-outside, it's worth to remove shape-inside code at this point for now.
A list of reasons for the removal:
- Shape-inside is only part of Shapes Level 2, which needs to be improved on some topics.
- Shape-inside is lack of new shapes support (e.g. inset).
- Deprecated shapes (r165472) are removed from the code (e.g. rectangle), which affects shape-inside.
- The current shape-inside code spreads across the layout code.
- The current shape-inside implementation is experimental in some areas,
and the partially implemented code can have security implications.
- Removal of shape-inside opens possibilities for code complexity and performance
optimizations for shape-outside. (e.g. simpler geometry code)
No new tests are needed.
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isSimpleLengthPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseShapeProperty):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::loadPendingImages):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/LayoutState.h:
(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::shapeInsideInfo): Deleted.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::imageChanged):
(WebCore::RenderBlock::preparePaginationBeforeBlockLayout):
(WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Deleted.
(WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Deleted.
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Deleted.
(WebCore::RenderBlock::ensureShapeInsideInfo): Deleted.
(WebCore::RenderBlock::shapeInsideInfo): Deleted.
(WebCore::RenderBlock::setShapeInsideInfo): Deleted.
(WebCore::RenderBlock::markShapeInsideDescendantsForLayout): Deleted.
(WebCore::RenderBlock::layoutShapeInsideInfo): Deleted.
(WebCore::shapeInfoRequiresRelayout): Deleted.
(WebCore::RenderBlock::computeShapeSize): Deleted.
(WebCore::RenderBlock::updateShapesBeforeBlockLayout): Deleted.
(WebCore::RenderBlock::updateShapesAfterBlockLayout): Deleted.
(WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout): Deleted.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::allowsShapeInsideInfoSharing): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::constructBidiRunsForLine): Deleted.
(WebCore::pushShapeContentOverflowBelowTheContentBox): Deleted.
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine): Deleted.
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): Deleted.
(WebCore::adjustLogicalLineTop): Deleted.
(WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): Deleted.
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement):
(WebCore::RenderElement::initializeStyle):
(WebCore::RenderElement::setStyle):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
* rendering/RenderView.h:
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::handleEndOfLine):
(WebCore::updateSegmentsForShapes): Deleted.
* rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::nextLineBreak):
* rendering/line/LineWidth.cpp:
(WebCore::LineWidth::LineWidth):
(WebCore::LineWidth::updateAvailableWidth):
(WebCore::LineWidth::wrapNextToShapeOutside):
(WebCore::LineWidth::fitBelowFloats):
(WebCore::LineWidth::updateLineSegment): Deleted.
(WebCore::LineWidth::updateCurrentShapeSegment): Deleted.
* rendering/line/LineWidth.h:
* rendering/shapes/ShapeInsideInfo.cpp: Removed.
* rendering/shapes/ShapeInsideInfo.h: Removed.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-03-25 Brent Fulgham <bfulgham@apple.com>
Avoid duplicate size checks when creating empty image
https://bugs.webkit.org/show_bug.cgi?id=130730
Reviewed by Dean Jackson.
Merged from Blink (patch by ch.dumez@samsung.com):
https://chromium.googlesource.com/chromium/blink/+/4861a71bc1f284fc97417f405ab7d08dc6947b88
http://crbug.com/190633011
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::createEmptyImageData): Don't perform overflow calculation twice.
2014-03-26 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] getComputedStyle() must return the specified value for positioning properties
https://bugs.webkit.org/show_bug.cgi?id=130010
Reviewed by Darin Adler.
According to the specs
http://dev.w3.org/csswg/css-grid/#property-index and also to
http://lists.w3.org/Archives/Public/www-style/2014Mar/0162.html
the function getComputedStyle() must return the specified values
for positioning properties, i.e, grid-{columns|rows}-{start|end}.
We were in some cases, adjusting the style in the StyleResolver
(for example with two opposing spans) something that is now done
in the RenderGrid because we cannot alter the original style.
The code moved to the renderer became more self explanatory and it
now supports named grid areas with names ending in "-start" and
"-end".
Test: fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::gridLineDefinedBeforeGridArea): Deleted.
(WebCore::StyleResolver::adjustNamedGridItemPosition): Deleted.
(WebCore::StyleResolver::adjustGridItemPosition): Deleted.
* css/StyleResolver.h:
* rendering/RenderGrid.cpp:
(WebCore::isColumnSide):
(WebCore::RenderGrid::explicitGridSizeForSide):
(WebCore::gridLineDefinedBeforeGridArea):
(WebCore::setNamedLinePositionIfDefinedBeforeArea):
(WebCore::RenderGrid::adjustNamedGridItemPosition):
(WebCore::RenderGrid::adjustGridPositionsFromStyle):
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
(WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle):
(WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
(WebCore::GridPosition::setAutoPosition): New helper function.
2014-03-26 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build.
* WebCore.exp.in:
2014-03-26 Tim Horton <timothy_horton@apple.com>
[iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
https://bugs.webkit.org/show_bug.cgi?id=130768
<rdar://problem/16421471>
Reviewed by Simon Fraser.
* platform/graphics/cocoa/IOSurface.h:
Add a non-ensuring platformContext() getter.
2014-03-26 James Craig <jcraig@apple.com>
Web Inspector: AXI: crash when inspecting "bar" text node in getAccessibilityPropertiesForNode layout test
https://bugs.webkit.org/show_bug.cgi?id=130290
Reviewed by Timothy Hatcher.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Fixing regression from r165590. http://webkit.org/b/129779
Verify isElementNode to avoid calling toElement on document or text nodes.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
2014-03-25 Sergio Villar Senin <svillar@igalia.com>
Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in editing/
https://bugs.webkit.org/show_bug.cgi?id=130722
Reviewed by Antti Koivisto.
* editing/AlternativeTextController.cpp:
(WebCore::markerTypesForAutocorrection):
(WebCore::markerTypesForReplacement):
(WebCore::markerTypesForAppliedDictationAlternative):
* editing/EditingStyle.cpp:
(WebCore::htmlElementEquivalents):
(WebCore::htmlAttributeEquivalents):
* editing/FormatBlockCommand.cpp:
(WebCore::isElementForFormatBlock):
* editing/RemoveFormatCommand.cpp:
(WebCore::isElementForRemoveFormatCommand):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::isProhibitedParagraphChild):
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::maybeEmitTextFocusChange):
2014-03-25 Simon Fraser <simon.fraser@apple.com>
Add a new type of scrolling tree node for overflow scrolling
https://bugs.webkit.org/show_bug.cgi?id=130763
Reviewed by Tim Horton.
Prepare for overflow scrolling via the scrolling tree by adding
a new scrolling node type for overflow:scroll nodes. Mostly
this is a new ScrollingNodeType that gets mapped to the same
scrolling state nodes and scrolling nodes, but iOS creates
state and scrolling nodes specific to overflow:scroll.
Change the type checking on nodes to use virtual functions instead
of just checking the node type, to allow the macros to work with
the new scrolling node type.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
* page/scrolling/ScrollingCoordinator.h:
* page/scrolling/ScrollingStateFixedNode.h:
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::isFixedNode):
(WebCore::ScrollingStateNode::isStickyNode):
(WebCore::ScrollingStateNode::isScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::create):
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingStateStickyNode.h:
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode):
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::isFixedNode):
(WebCore::ScrollingTreeNode::isStickyNode):
(WebCore::ScrollingTreeNode::isScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingCoordinatorIOS.mm:
(WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::create):
(WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
* page/scrolling/mac/ScrollingTreeFixedNode.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::create):
(WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
* page/scrolling/mac/ScrollingTreeStickyNode.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
2014-03-26 Krzysztof Czech <k.czech@samsung.com>
[ATK] Utilize new AtkValue interface coming in ATK 2.11.92
https://bugs.webkit.org/show_bug.cgi?id=130575
Reviewed by Mario Sanchez Prada.
ATK 2.11.92 introduces some new API and deprecates an old one.
Adjust current implementation to meet requirements of the new API.
No new tests. Covered by existing ones.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
(webkitAccessibleSetNewValue):
(webkitAccessibleGetIncrementValue):
(webkitAccessibleGetValueAndText):
(webkitAccessibleGetIncrement):
(webkitAccessibleSetValue):
(webkitAccessibleGetRange):
(webkitAccessibleValueSetCurrentValue):
(webkitAccessibleValueGetMinimumIncrement):
(webkitAccessibleValueInterfaceInit):
2014-03-26 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Removing the remaining Automake cruft.
* GNUmakefile.list.am: Removed.
2014-03-25 Pratik Solanki <psolanki@apple.com>
iOS build fix. Add missing semicolon.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement):
2014-03-25 Sam Weinig <sam@webkit.org>
Speculative iOS build fix.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_addAttachmentForElement):
2014-03-25 Jer Noble <jer.noble@apple.com>
[MSE] Duplicate 'seeked' events.
https://bugs.webkit.org/show_bug.cgi?id=130754
Reviewed by Eric Carlson.
Test: media/media-source/media-source-duplicate-seeked.html
During certain seek operations, HTMLMediaElement::finishSeek() can be called re-entrantly due to
the ready state changing as a result of MediaSource::monitorSourceBuffers(). Move this call to the
end of finishSeek() after m_seeking has been cleared.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-03-25 James Craig <jcraig@apple.com>
Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
https://bugs.webkit.org/show_bug.cgi?id=130712
Reviewed by Timothy Hatcher.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-25 Sanghyup Lee <sh53.lee@samsung.com>
When the mouse is upped after dragged out of shadowDOM, it should lose :active.
https://bugs.webkit.org/show_bug.cgi?id=130660
Reviewed by Darin Adler.
This caused a regression after r165037.
When we have to clear :active style of shadow DOM, we should clear host's style.
This patch replaces parentElement() by parentOrShadowHostElement().
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
2014-03-25 Eric Carlson <eric.carlson@apple.com>
[Mac] Always retry a failed MediaDocument as a PluginDocument
https://bugs.webkit.org/show_bug.cgi?id=130742
Reviewed by Jer Noble.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaLoadingFailedFatally): If the element is in a media document,
tell it that loading failed so it can retry as a plug-in.
2014-03-25 Ryosuke Niwa <rniwa@webkit.org>
Replace HTMLConverter::_stringForNode by propertyValueForNode
https://bugs.webkit.org/show_bug.cgi?id=130711
Reviewed by Sam Weinig.
Replaced all calls to HTMLConverter::_stringForNode by that to propertyValueForNode.
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_computedAttributesForElement):
(HTMLConverter::_addAttachmentForElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_addTableForElement):
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_exitElement):
(HTMLConverter::_processText):
(HTMLConverter::_traverseNode):
(HTMLConverter::_traverseFooterNode):
(HTMLConverter::_stringForNode): Deleted.
2014-03-25 Pratik Solanki <psolanki@apple.com>
Attempt to fix iOS build after r166261.
* WebCore.xcodeproj/project.pbxproj: Make SystemSleepListener.h a private header.
2014-03-21 Jer Noble <jer.noble@apple.com>
[iOS] Enable caption support in full screen.
https://bugs.webkit.org/show_bug.cgi?id=130603
Reviewed by Eric Carlson.
Add TextTrackRepresentation support to MediaPlayerPrivateAVFoundationObjC.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Add the m_textTrackRepresenationLayer if present.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation): True, if a m_videoFullscreenLayer is present.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Remove the old, and add the new m_textTrackRepresenationLayer.
Make the text track container a stacking context for painting purposes.
* Modules/mediacontrols/mediaControlsiOS.css:
(video::-webkit-media-text-track-container):
2014-03-25 Brian Burg <bburg@apple.com>
Web Replay: resource unique identifiers should be unique-per-frame, not globally
https://bugs.webkit.org/show_bug.cgi?id=130632
Reviewed by Timothy Hatcher.
For replay purposes, we want to deterministically assign resource load identifiers
to resource loaders, provided that the resource loaders are created in the same
order.
To do this, we convert unique identifiers from being globally-unique to being
frame-unique. When a new frame is being loaded, unique identifiers for
subresources of that frame begin counting from 1.
No new tests. Identifier invariants are exercised by existing assertions and tests.
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::ProgressTracker):
(WebCore::ProgressTracker::reset):
(WebCore::ProgressTracker::createUniqueIdentifier):
* loader/ProgressTracker.h:
2014-03-25 Jer Noble <jer.noble@apple.com>
[Mac] Pause the media element during system sleep.
https://bugs.webkit.org/show_bug.cgi?id=130718
Reviewed by Eric Carlson.
Test: media/video-system-sleep.html
Relying on the platform media system to pause and restart playback during
system sleep can cause problems on some platforms, especially where hardware
decoders are concerned. Rather than implicitly pausing the media during
system sleep, explicitly pause the media before sleeping and resume (if
appropriate) upon waking.
Add a new class to be used for system sleep notifications:
* platform/SystemSleepListener.cpp: Added.
(WebCore::SystemSleepListener::create):
(WebCore::SystemSleepListener::SystemSleepListener):
* platform/SystemSleepListener.h: Added.
(WebCore::SystemSleepListener::Client::~Client):
(WebCore::SystemSleepListener::~SystemSleepListener):
(WebCore::SystemSleepListener::client):
Add a Mac-specific implementation:
* platform/mac/SystemSleepListenerMac.h: Added.
* platform/mac/SystemSleepListenerMac.mm: Added.
(WebCore::SystemSleepListener::create):
(WebCore::SystemSleepListenerMac::SystemSleepListenerMac):
(WebCore::SystemSleepListenerMac::~SystemSleepListenerMac):
Listen for system sleep notifications in MediaSessionManager:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager):
(WebCore::MediaSessionManager::systemWillSleep):
(WebCore::MediaSessionManager::systemDidWake):
* platform/audio/MediaSessionManager.h:
Drive-by fix; notify the MediaSession that playback will begin
due to autoplay, but do not begin autoplaying if the session
is already interrupted:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
Add new files to project:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* CMakeLists.txt:
* GNUmakefile.list.am:
2014-03-25 Radu Stavila <stavila@adobe.com>
[CSS Regions] The background of children of scrollable elements flowed into regions is not properly scrolled
https://bugs.webkit.org/show_bug.cgi?id=130574
Reviewed by David Hyatt.
When computing the clip rect for painting the box decorations, the scrolled content offset
must be computed by going up the containing block tree, up to the region.
Tests: fast/regions/scrollable-region-scrollable-absolute-content-background.html
fast/regions/scrollable-region-scrollable-content-background.html
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
2014-03-25 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Inspector View Indication Support
https://bugs.webkit.org/show_bug.cgi?id=130709
Reviewed by Simon Fraser.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::showInspectorIndication):
(WebCore::InspectorClient::hideInspectorIndication):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::setIndicating):
Rename indicate/hideIndication to show/hide names.
2014-03-25 Brent Fulgham <bfulgham@apple.com>
Unreviewed build fix. Typo on checkin.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Left an unmatched open bracket.
2014-03-25 Jer Noble <jer.noble@apple.com>
Even further unreviewed build fix after r166247. Unprotect the implementation of HTMLMediaElement::shouldDisableSleep().
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
2014-03-25 Jer Noble <jer.noble@apple.com>
Further unreviewed build fix after r166247. Add DisplaySleepDisabler to the windows project file and
move the definition of DisplaySleepDisabler's constructor and destructor into the cpp file.
* WebCore.vcxproj/WebCore.vcxproj:
* platform/DisplaySleepDisabler.cpp:
(WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
(WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
* platform/DisplaySleepDisabler.h:
2014-03-25 Jer Noble <jer.noble@apple.com>
Unreviewed build fix after r166247. Un-platform-protect the declaration of HTMLMediaElement::shouldDisableSleep()
and make WebVideoFullscreenController's _displaySleepDisabler a std::unique_ptr.
* html/HTMLMediaElement.h:
* platform/mac/WebVideoFullscreenController.h:
2014-03-25 Brent Fulgham <bfulgham@apple.com>
[iOS] Pass additional options to AVFoundation during playback.
https://bugs.webkit.org/show_bug.cgi?id=130624
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::doesHaveAttribute): Return attribute value if the user
passes a pointer to fill in.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::doesHaveAttribute):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::doesHaveAttribute):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Pass additional
option if supplied by user.
2014-03-25 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling out r166070.
Rollout r166070 due to 2% performance loss in page load times
Reverted changeset:
"Change CodeGeneratorJS.pm special cases for "DOMWindow" to be
general purpose"
https://bugs.webkit.org/show_bug.cgi?id=130553
http://trac.webkit.org/changeset/166070
2014-03-25 Michael Saboff <msaboff@apple.com>
Unreviewed, rolling out r166126.
Rollout r166126 in prepartion to roll out prerequisite r166070
Reverted changeset:
"toThis() on a JSWorkerGlobalScope should return a JSProxy and
not undefined"
https://bugs.webkit.org/show_bug.cgi?id=130554
http://trac.webkit.org/changeset/166126
2014-03-25 Jer Noble <jer.noble@apple.com>
[iOS] Playing video does not disable display sleep.
https://bugs.webkit.org/show_bug.cgi?id=130729
Reviewed by Eric Carlson.
DisplaySleepDisabler was broken by r161589, which replaced the iOS implementation with
an empty one. Make a platform independent version with a Cocoa-platform subclass. Update
the APIs to non-deprecated ones.
* platform/DisplaySleepDisabler.cpp: Added.
(WebCore::DisplaySleepDisabler::create):
* platform/DisplaySleepDisabler.h: Added.
(WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
(WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
* platform/cocoa/DisplaySleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.cpp.
(WebCore::DisplaySleepDisabler::create):
(WebCore::DisplaySleepDisablerCocoa::DisplaySleepDisablerCocoa):
(WebCore::DisplaySleepDisablerCocoa::~DisplaySleepDisablerCocoa):
* platform/cocoa/DisplaySleepDisablerCocoa.h: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.h.
Update m_sleepDisabler to be a std::unique_ptr, and unprotect the definition of methods which use it.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateSleepDisabling):
(WebCore::HTMLMediaElement::shouldDisableSleep):
* html/HTMLMediaElement.h:
Add the new and renamed files to the project:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
2014-03-25 Dirk Schulze <krit@webkit.org>
Implement ImageData constructors and WebWorkers exposure
https://bugs.webkit.org/show_bug.cgi?id=130668
Reviewed by Dean Jackson.
Add new constructors for ImageData.
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#pixel-manipulation
Test: fast/canvas/canvas-imageData.html
* html/ImageData.cpp:
(WebCore::ImageData::create):
* html/ImageData.h:
* html/ImageData.idl:
2014-03-25 Myles C. Maxfield <mmaxfield@apple.com>
InlineIterator position (unsigned int) variable can wrap around
https://bugs.webkit.org/show_bug.cgi?id=130540
Reviewed by Simon Fraser.
We trigger an ASSERT that occurs when we are ignoring spaces (to collapse them
into a single whitespace mark) but then encounter a line break. Because we don't ignore
the first space (but do ignore subsequent spaces), when we hit a newline in an RTL context
we want to ignore that first space as well (so as not to push the text away from the right
edge). We do this by decrementing the InlineIterator pointing to this first space, so all
the spaces get ignored. However, if that space is the first character in a Text node, the
decrement will try to go past the beginning of the node, and trigger an ASSERT.
This design is not great. At some point we should rework it to more elegantly handle
collapsing whitespace in both RTL and LTR writing modes.
This patch adds an ASSERT earlier in this codepath to catch potential problems earlier.
It also pulls our sentinel value out into a separate boolean to make it more clear what is
going on.
Test: fast/text/whitespace-only-text-in-rtl.html
* rendering/InlineIterator.h:
(WebCore::InlineIterator::moveTo): Use the set***() calls
(WebCore::InlineIterator::setOffset): ASSERT early that our math hasn't wrapped
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::appendRunsForObject): Use new boolean value
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText): Guard against wraps
(WebCore::checkMidpoints): Use new boolean value
* rendering/line/TrailingObjects.cpp:
(WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Use new boolean value
2014-03-25 Martin Robinson <mrobinson@igalia.com>
[GTK] Remove the autotools build
https://bugs.webkit.org/show_bug.cgi?id=130717
Reviewed by Anders Carlsson.
* GNUmakefile.am: Removed.
* bindings/gobject/GNUmakefile.am: Removed.
* config.h: Removed references to autotools configure file.
2014-03-24 Brent Fulgham <bfulgham@apple.com>
Prevent 'removetrack' events from firing when all inband text tracks are removed.
https://bugs.webkit.org/show_bug.cgi?id=130704
Reviewed by Eric Carlson.
Test: media/track/track-remove-track.html
Based on the Blink change (patch by acolwell@chromium.org):
https://codereview.chromium.org/177243018/
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad): Reorder steps to match W3C specification.
(WebCore::HTMLMediaElement::noneSupported): Forget tracks as required by specification.
(WebCore::HTMLMediaElement::mediaLoadingFailed): Forget tracks as required by specification.
(WebCore::HTMLMediaElement::removeTextTrack): Only request the 'removetracks' event if
requested by caller.
(WebCore::HTMLMediaElement::removeAllInbandTracks): Renamed to 'forgetResourceSpecificTracks'
(WebCore::HTMLMediaElement::noneSupported): Specify that we want the 'removetracks' event
fired for this use case.
(WebCore::HTMLMediaElement::prepareForLoad): Switch to new 'forgetResourceSpecificTracks' name.
* html/HTMLMediaElement.h:
* html/track/TextTrackList.cpp:
(TextTrackList::remove): Only fire the 'removetrack' event if the caller requests it.
* html/track/TextTrackList.h: Add default argument to fire the 'removetrack' event
when removing a track.
* html/track/TrackListBase.cpp:
(TrackListBase::remove): Only fire the 'removetrack' event if the caller requests it.
* html/track/TrackListBase.h: Add default argument to fire the 'removetrack' event.
2014-03-25 David Kilzer <ddkilzer@apple.com>
Hold a reference to firstSuccessfulSubmitButton in HTMLFormElement::submit
<http://webkit.org/b/130713>
<rdar://problem/15661876>
Reviewed by Darin Adler.
Merged from Blink (patch by Ian Beer):
http://crbug.com/303657
https://src.chromium.org/viewvc/blink?view=rev&revision=158938
Test: fast/forms/form-submission-crash-successful-submit-button.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::submit):
2014-03-25 Gabor Rapcsanyi <rgabor@webkit.org>
[ARM64] GNU assembler fails in TransformationMatrix::multiply
https://bugs.webkit.org/show_bug.cgi?id=130454
Reviewed by Zoltan Herczeg.
Change the NEON intstructions to the proper style.
* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
2014-03-20 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Vertical rectangles not considered as valid grid areas
https://bugs.webkit.org/show_bug.cgi?id=130513
Reviewed by Andreas Kling.
Grid areas sized as vertical rectangles were incorrectly
considered as invalid by the parser. That's because the condition
checking that each new row was adjacent to the previous one was
using the first row of the currently parsed grid area instead of
the last one.
Test: fast/css-grid-layout/grid-template-areas-get-set.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTemplateAreas):
2014-03-25 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Volume slider shows below the panel with videos in certain cases
https://bugs.webkit.org/show_bug.cgi?id=130608
Reviewed by Jer Noble.
We need to delay the moment we check if the volume slider shows up
or down. If the video was not visible, the offsets were 0 and it
was forced to be shown below the panel.
Test: media/video-initially-hidden-volume-slider-up.html
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.createControls): Moved volumebox pseudo from
the subclass. The test checks for it and it would fail in Mac.
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.createControls): Moved volumebox pseudo
to the superclass.
(ControllerGtk.prototype.handleMuteButtonMouseOver): Check if
volume slider should show up or down.
(ControllerGtk.prototype.updateReadyState): Removed check for
volume slider direction.
2014-03-24 Brent Fulgham <bfulgham@apple.com>
[Win] Enable WebVTT Regions on Windows.
https://bugs.webkit.org/show_bug.cgi?id=130680
Reviewed by Eric Carlson.
* DerivedSources.cpp: Add new build components.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
2014-03-24 Simon Fraser <simon.fraser@apple.com>
Remove some unnecessary includes from PlatformCALayerClient.h
https://bugs.webkit.org/show_bug.cgi?id=130703
Reviewed by Andreas Kling.
No need for all these #includes.
* platform/graphics/ca/PlatformCALayerClient.h:
2014-03-24 Adenilson Cavalcanti <cavalcantii@gmail.com>
[core] FEGaussianBlur: use IntSize to simplify member function interface
https://bugs.webkit.org/show_bug.cgi?id=130695
Reviewed by Dean Jackson.
By returning an IntSize to store the calculated kernel size values
it is possible to have less function parameters. This patch also
streamlines a bit the code in calculateUnscaledKernelSize.
No new tests, no change in behavior.
* platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::determineAbsolutePaintRect):
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
(WebCore::FEGaussianBlur::calculateKernelSize):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):
(WebCore::FEGaussianBlur::platformApplySoftware):
* platform/graphics/filters/FEGaussianBlur.h:
(if): Deleted.
* platform/graphics/filters/FilterOperations.cpp:
(WebCore::outsetSizeForBlur):
2014-03-24 Brian Burg <bburg@apple.com>
Web Replay: capture and replay keyboard events
https://bugs.webkit.org/show_bug.cgi?id=130314
Reviewed by Joseph Pecoraro.
Upstream support for capturing and replaying non-IME keyboard input.
This works similarly to mouse events. It introduces optional fields and
macros to encode/decode them.
Test: ManualTests/inspector/replay-keyboard-events.html
* replay/ReplayInputDispatchMethods.cpp:
(WebCore::HandleKeyPress::dispatch):
* replay/SerializationMethods.cpp:
(JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
(JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): Switch existing
encode/decode calls to use the shortening macros.
(JSC::EncodingTraits<KeypressCommand>::encodeValue): Added.
(JSC::EncodingTraits<KeypressCommand>::decodeValue): Added.
(JSC::PlatformKeyboardEventAppKit::PlatformKeyboardEventAppKit): Subclass
PlatformKeyboardEvent so that we can set AppKit-specific members not
initialized through the main constructors.
(JSC::EncodingTraits<PlatformKeyboardEvent>::encodeValue): Added.
(JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue): Added.
* replay/SerializationMethods.h:
* replay/UserInputBridge.cpp:
(WebCore::UserInputBridge::UserInputBridge): initialize m_state inside a guard.
(WebCore::UserInputBridge::handleKeyEvent): fill in the implementation.
* replay/WebInputs.json:
2014-03-24 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Optimizing string construction for type error in JSNavigatorCustom.cpp
https://bugs.webkit.org/show_bug.cgi?id=130683
Reviewed by Eric Carlson.
* bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::webkitGetUserMedia):
2014-03-24 Beth Dakin <bdakin@apple.com>
Legacy-style scrollbars constantly redraw after scrolling
https://bugs.webkit.org/show_bug.cgi?id=130699
Reviewed by Simon Fraser.
The constant re-draw was happening because we were never calling [ScrollbarPainter
setUsePresentationValue:NO]. This is a silly bug where were should have been
looking at PlatformWheelEvent::momentumPhase() instead of
PlatformWheelEvent::phase()
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
2014-03-24 Daniel Bates <dabates@apple.com>
XSS Auditor doesn't block <script> injected before an existing <script>
https://bugs.webkit.org/show_bug.cgi?id=130475
Merged from Blink (patch by Tom Sepez):
https://src.chromium.org/viewvc/blink?view=rev&revision=169697
Tests: http/tests/security/xssAuditor/script-tag-expression-follows.html
http/tests/security/xssAuditor/script-tag-near-start.html
* html/parser/XSSAuditor.cpp:
(WebCore::startsHTMLCommentAt):
(WebCore::startsSingleLineCommentAt):
(WebCore::startsMultiLineCommentAt):
(WebCore::startsOpeningScriptTagAt):
(WebCore::XSSAuditor::decodedSnippetForJavaScript):
2014-03-24 Brent Fulgham <bfulgham@apple.com>
Activate WebVTT Tests Once Merging is Complete
https://bugs.webkit.org/show_bug.cgi?id=130420
Reviewed by Eric Carlson.
* Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)
2014-03-24 Anders Carlsson <andersca@apple.com>
Re-fix the build.
* WebCore.exp.in:
2014-03-24 Anders Carlsson <andersca@apple.com>
Fix build.
* WebCore.exp.in:
Move a CFNetwork only symbol inside the USE(CFNETWORK) section.
2014-03-24 Chris Fleizach <cfleizach@apple.com>
Regression: AX: Don't expose role or notifications for invalid menus
https://bugs.webkit.org/show_bug.cgi?id=129814
Reviewed by Mario Sanchez Prada.
If a role=menu has no menuitem children, it should not be a menu.
This was a bit tricky to implement since we need to update the role after the children are created,
but it means we have to be a bit more aggressive about when to updateChildren, so that the role
is known to be valid.
Test: platform/mac/accessibility/invalid-menu-role-does-not-send-notification.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
2014-03-24 Andy Estes <aestes@apple.com>
[iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
https://bugs.webkit.org/show_bug.cgi?id=129322
Reviewed by Anders Carlsson.
* platform/network/ResourceHandle.h:
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::releaseConnectionForDownload): Changed to
return a RetainPtr that adopts the connection's retain count.
2014-03-24 Enrica Casucci <enrica@apple.com>
Update Hindi fallback font.
https://bugs.webkit.org/show_bug.cgi?id=130690
<rdar://problem/16391601>
Reviewed by Sam Weinig.
Using the new available font for Hindi in the fallback list.
* platform/graphics/ios/FontCacheIOS.mm:
(WebCore::FontCache::systemFallbackForCharacters):
2014-03-24 Brent Fulgham <bfulgham@apple.com>
Merge Minor WebVTT Cleanups from Blink
https://bugs.webkit.org/show_bug.cgi?id=130681
Reviewed by Eric Carlson.
Merged from Blink (patch by philipj@opera.com):
https://chromium.googlesource.com/chromium/blink/+/693eb5e2933dca0eab5bbd604e9f3406fe9fd1ab
http://crbug.com/52593009
https://chromium.googlesource.com/chromium/blink/+/40b3602feab34e9be829fd742b6ad6ded322a09f
http://crbug.com/104243003
* html/track/TextTrack.cpp:
(WebCore::TextTrack::setMode):
* html/track/TextTrack.idl:
* html/track/TextTrackCue.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCue::VTTCue):
* html/track/VTTCue.h:
2014-03-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166169.
https://bugs.webkit.org/show_bug.cgi?id=130682
This patch broke tests on Apple Mavericks (Requested by fredw
on #webkit).
Reverted changeset:
"Operator stretching: expose a math data API"
https://bugs.webkit.org/show_bug.cgi?id=130572
http://trac.webkit.org/changeset/166169
2014-03-24 Martin Hodovan <mhodovan@inf.u-szeged.hu>
ENABLE(CSS_GRID_LAYOUT) guard for CSSGridLineNamesValue
https://bugs.webkit.org/show_bug.cgi?id=130669
Reviewed by Sergio Villar Senin.
No new tests. No new functionality.
* css/CSSGridLineNamesValue.cpp:
* css/CSSGridLineNamesValue.h:
2014-03-24 Chris Fleizach <cfleizach@apple.com>
<hr> should expose AXRole/AXSubrole, etc
https://bugs.webkit.org/show_bug.cgi?id=109015
Reviewed by Mario Sanchez Prada.
Expose the <hr> element to Mac and iOS through the accessibility interface.
Test: platform/mac/accessibility/hr-element.html
* English.lproj/Localizable.strings:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isEnabled):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computedRoleString):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* accessibility/atk/AccessibilityObjectAtk.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityLabel]):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
* platform/LocalizedStrings.cpp:
(WebCore::AXHorizontalRuleDescriptionText):
* platform/LocalizedStrings.h:
2014-03-24 Antti Koivisto <antti@apple.com>
Invalidate sibling text node style when needed instead of attaching synchronously
https://bugs.webkit.org/show_bug.cgi?id=130590
Reviewed by Andreas Kling.
Make things simpler.
* style/StyleResolveTree.cpp:
(WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
Just invalidate instead of calling attach directly.
Rename to match.
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::createTextRendererIfNeeded):
Move all testing to textRendererIsNeeded.
(WebCore::Style::updateTextRendererAfterContentChange):
Call resolveTextNode instead of re-implementing the same thing.
(WebCore::Style::resolveLocal):
(WebCore::Style::resolveTextNode):
Avoid unnecessary reattaching.
Rename for consistency.
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):
2014-03-24 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
Fix !ENABLE(VIDEO) build
https://bugs.webkit.org/show_bug.cgi?id=130671
Reviewed by Eric Carlson.
Add missing ENABLE(VIDEO) guards because many functions use
the newly guarded functions.
* testing/Internals.cpp:
* testing/Internals.h:
* testing/Internals.idl:
2014-03-24 Antti Koivisto <antti@apple.com>
Text autosizing does not determine line count correctly for simple line layout
https://bugs.webkit.org/show_bug.cgi?id=130673
Reviewed by Daniel Bates.
We don't count lines correctly in simple line layout case.
* page/Frame.cpp:
(WebCore::Frame::textAutosizingWidth):
(WebCore::Frame::setTextAutosizingWidth):
* page/ios/FrameIOS.mm:
(WebCore::Frame::textAutosizingWidth): Deleted.
(WebCore::Frame::setTextAutosizingWidth): Deleted.
Move to Frame.cpp to make enabling on non-iOS build easier.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::lineCount):
Handle simple line layout case.
(WebCore::RenderBlockFlow::lineCountForTextAutosizing):
Call lineCount() if children are inline.
Rename for clarity.
(WebCore::RenderBlockFlow::adjustComputedFontSizes):
(WebCore::RenderBlockFlow::immediateLineCount): Deleted.
* rendering/RenderBlockFlow.h:
2014-03-24 Frédéric Wang <fred.wang@free.fr>
[regression] background colors do not apply to <mo> elements.
https://bugs.webkit.org/show_bug.cgi?id=130470.
Test: mathml/presentation/tokenElements-background-color.html
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::paint): always call the parent painting to draw the background.
(WebCore::RenderMathMLOperator::paintChildren): move the special case for invisible operator here.
2014-03-24 Frédéric Wang <fred.wang@free.fr>
Operator stretching: expose a math data API
https://bugs.webkit.org/show_bug.cgi?id=130572
Reviewed by Chris Fleizach.
We expose a new SimpleFontData API to give access to the data from the
OpenType MATH table using a font cache. The class OpenTypeMathData will
be implemented in bug 130324. On Darwin platform, we also implement the
missing FontPlatformData::openTypeTable function which will be necessary
to load the OpenType MATH table. The changes are intended to be used
for MathML operator stretching (bug 130322) so tests are not added yet.
* CMakeLists.txt: add new OpenTypeMathData files.
* GNUmakefile.list.am: ditto.
* WebCore.vcxproj/WebCore.vcxproj: ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
* WebCore.xcodeproj/project.pbxproj: ditto.
* platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
We make the math and vertical data share the same key for the cache.
(WebCore::fontMathDataCacheInstance):
(WebCore::FontCache::getMathData):
(WebCore::fontVerticalDataCacheInstance):
* platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
* platform/graphics/FontPlatformData.cpp:
(WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
* platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
* platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
(WebCore::SimpleFontData::SimpleFontData):
* platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
* platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
(WebCore::OpenTypeMathData::OpenTypeMathData):
* platform/graphics/opentype/OpenTypeMathData.h: Added.
(WebCore::OpenTypeMathData::create):
(WebCore::OpenTypeMathData::hasMathData):
2014-03-24 Jon Lee <jonlee@apple.com>
Build fixes.
Unreviewed.
* editing/ios/EditorIOS.mm:
(WebCore::Editor::writeSelectionToPasteboard): Convert to reference.
2014-03-24 Martin Hodovan <mhodovan@inf.u-szeged.hu>
ENABLE(VIDEO_TRACK) guard for CSSParserSelector::parsePseudoCueFunctionSelector
https://bugs.webkit.org/show_bug.cgi?id=130666
Reviewed by Andreas Kling.
No new tests. No new functionality.
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePseudoCueFunctionSelector): Deleted.
2014-03-24 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] Update named <grid-line> syntax to the last version of the specs
https://bugs.webkit.org/show_bug.cgi?id=129041
Reviewed by Sergio Villar Senin.
From Blink r162555 by <svillar@igalia.com>
Names for grid lines are now specified as a list of whitespace separated
idents enclosed in parentheses instead of as a list of strings.
Updated tests to match the new <grid-line> syntax.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj: Added info of the new file for the CSSGridLineNamesValue class.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::addValuesForNamedGridLinesAtIndex): The named <grid-line> value is now a list.
* css/CSSGrammar.y.in: New syntax for named <grid-line>.
* css/CSSGridLineNamesValue.cpp: Added.
(WebCore::CSSGridLineNamesValue::customCSSText): String representation of the named <grid-line> as a list of Strings.
(WebCore::CSSGridLineNamesValue::CSSGridLineNamesValue): Constructor.
(WebCore::CSSGridLineNamesValue::cloneForCSSOM): Ref counted cloning function.
* css/CSSGridLineNamesValue.h: Added.
(WebCore::CSSGridLineNamesValue::create): Ref counted constructor.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridLineNames): It replaces the old parseGrdTrackNames.
(WebCore::CSSParser::parseGridTrackList): Using the new named <grid-line> syntax.
(WebCore::CSSParser::parseGridTrackRepeatFunction): Using the new named <grid-line> syntax.
* css/CSSParser.h:
* css/CSSParserValues.cpp:
(WebCore::destroy): Handling the case of CSSValue being CSSValueList intances.
(WebCore::CSSParserValue::createCSSValue): Handling the case of CSSValue being CSSValueList intances.
* css/CSSParserValues.h:
(WebCore::CSSParserValue::setFromValueList): Adds the named <grid-line> list to the CSSParserValueList instance.
* css/CSSValue.cpp:
(WebCore::CSSValue::equals): Handling the case of the new CSSGridLineNamesValue class.
(WebCore::CSSValue::cssText): Handling the case of the new CSSGridLineNamesValue class.
(WebCore::CSSValue::destroy): Handling the case of the new CSSGridLineNamesValue class.
* css/CSSValue.h:
(WebCore::CSSValue::isGridLineNamesValue): Type cast check for the new CSSGridLineNamesValue class.
* css/StyleResolver.cpp:
(WebCore::createGridTrackList): Using the new named <grid-line> syntax.
2014-03-23 Sam Weinig <sam@webkit.org>
Convert WebHTMLConverter to C++
https://bugs.webkit.org/show_bug.cgi?id=130655
Reviewed by Andreas Kling.
- Mechanically converts the Objective-C class WebHTMLConverter, to the C++ HTMLConverter (lots of cleanup to follow).
- Removes unused members
- _standardFontFamily (never assigned to)
- _textSizeMultiplier (always exactly 1)
- _webViewTextSizeMultiplier (always exactly 0)
- _defaultFontSize (always exactly 12, changed to be constant)
- _minimumFontSize (always exactly 1, changed to be constant)
- _colorsForNodes (never assigned to)
- _indexingLimit (always exactly 0)
- _thumbnailLimit (always exactly 0)
- _flags.isIndexing (always false)
- _flags.isTesting (always false)
* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::convert):
(HTMLConverter::HTMLConverter):
(HTMLConverter::~HTMLConverter):
(defaultParagraphStyle):
(_childrenForNode):
(HTMLConverter::_stringForNode):
(HTMLConverter::_getFloat):
(_webKitBundle):
(HTMLConverter::_elementIsBlockLevel):
(HTMLConverter::_elementHasOwnBackgroundColor):
(HTMLConverter::_blockLevelElementForNode):
(HTMLConverter::_colorForNode):
(HTMLConverter::_computedAttributesForElement):
(HTMLConverter::_attributesForElement):
(HTMLConverter::_newParagraphForElement):
(HTMLConverter::_newLineForElement):
(HTMLConverter::_newTabForElement):
(_WebMessageDocumentClass):
(HTMLConverter::_addAttachmentForElement):
(HTMLConverter::_addQuoteForElement):
(HTMLConverter::_addValue):
(HTMLConverter::_fillInBlock):
(HTMLConverter::_processMetaElementWithName):
(HTMLConverter::_processHeadElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_addTableForElement):
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_addMarkersToList):
(HTMLConverter::_exitElement):
(HTMLConverter::_processText):
(HTMLConverter::_traverseNode):
(HTMLConverter::_traverseFooterNode):
(HTMLConverter::_adjustTrailingNewline):
(HTMLConverter::_loadFromDOMRange):
(fileWrapperForURL):
(fileWrapperForElement):
(WebCore::attributedStringFromRange):
(WebCore::editingAttributedStringFromRange):
2014-03-23 Jinwoo Song <jinwoo7.song@samsung.com>
Remove Dead Stores from editing directory
https://bugs.webkit.org/show_bug.cgi?id=130634
Reviewed by Darin Adler.
Remove Dead Stores from editing directory which assigning a value to a variable
and never reading that value.
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
* editing/markup.cpp:
(WebCore::createMarkupInternal):
2014-03-23 Hyowon Kim <hw1008.kim@samsung.com>
Move all EFL typedefs into EflTypedefs.h.
https://bugs.webkit.org/show_bug.cgi?id=130511
Reviewed by Gyuyoung Kim.
* platform/FileSystem.h: Remove EFL typedefs.
* platform/Widget.h: Ditto.
* platform/efl/EflScreenUtilities.h: Ditto.
* platform/graphics/Icon.h: Ditto.
* platform/graphics/Image.h: Ditto.
* platform/graphics/IntPoint.h: Ditto.
* platform/graphics/IntRect.h: Ditto.
* platform/network/NetworkStateNotifier.h: Ditto.
2014-03-23 Sam Weinig <sam@webkit.org>
Move HTMLConverter from platform/mac to editing/cocoa.
Rubber-stamped by Darin Adler.
* WebCore.xcodeproj/project.pbxproj:
* editing/cocoa: Added.
* editing/cocoa/HTMLConverter.h: Copied from platform/mac/HTMLConverter.h.
* editing/cocoa/HTMLConverter.mm: Copied from platform/mac/HTMLConverter.mm.
* platform/mac/HTMLConverter.h: Removed.
* platform/mac/HTMLConverter.mm: Removed.
2014-03-23 Sam Weinig <sam@webkit.org>
Simplify the HTMLConverter interface (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=130654
Reviewed by Darin Adler.
Switch HTMLConverter from using an Objective-C interface to C functions.
* WebCore.exp.in:
* editing/ios/EditorIOS.mm:
(WebCore::Editor::writeSelectionToPasteboard):
* editing/mac/EditorMac.mm:
(WebCore::Editor::dataSelectionForPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):
* platform/ios/PasteboardIOS.mm:
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
(WebCore::attributedStringFromRange):
(WebCore::editingAttributedStringFromRange):
* platform/mac/PasteboardMac.mm:
2014-03-23 Darin Adler <darin@apple.com>
Remove code in HTMLObjectElement attribute parsing that forces style resolution and layout
https://bugs.webkit.org/show_bug.cgi?id=130653
Reviewed by Antti Koivisto.
* dom/ContainerNode.cpp: Moved the post-attach callback code from here to
StyleResolveTree.h/cpp.
* dom/ContainerNode.h: Ditto.
* dom/Document.cpp:
(WebCore::Document::recalcStyle): Use Style::PostResolutionCallbackDisabler instead of
PostAttachCallbackDisabler.
* dom/Element.h: Moved the post-attach callback code from here to StyleResolveTree.h/cpp.
* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::parseAttribute): Simplified the code for typeAttr, turning
it into a 1-liner. Added a FIXME in codeAttr about the fact that it does not have the
code to trigger image loads. Changed srcAttr to call updateImageLoaderWithNewURLSoon to
do the image loading logic.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::didAttachRenderers): Updated to use
Style::queuePostResolutionCallback and use a lambda instead of a function.
(WebCore::HTMLFormControlElement::didRecalcStyle): Ditto. Also added RefPtr instead
of just using wishful thinking to keep the object alive.
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc): Ditto.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute):: Simplified the code for typeAttr, turning
it into a 1-liner. Changed dataAttr to use updateImageLoaderWithNewURLSoon(). Also made
it call setNeedsWidgetUpdate(true) unconditionally after checking carefully to see that's
harmless if there is no renderer. Changed classidAttr to call setNeedsWidgetUpdate(true)
unconditionally and not set m_classId.
(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use fastGetAttribute
instead of classId and descendantsOfType instead of getElementsByTagName.
(WebCore::HTMLObjectElement::hasValidClassId): Use fastGetAttribute instead of classId.
(WebCore::HTMLObjectElement::renderFallbackContent): Use imageLoader instead of m_imageLoader.
* html/HTMLObjectElement.h: Removed classId, since there is no reason to cache that
attribute in a data member. Rearranged header, making more private, and fixing some typos,
and doing a "using" instead of a function to disambiguate the inherited form functions.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize m_needsImageReload.
(WebCore::HTMLPlugInImageElement::createElementRenderer): Fixed some code that assumed the
first child of the shadow root is guaranteed to be an element.
(WebCore::HTMLPlugInImageElement::didRecalcStyle): Added. Calls the new
scheduleUpdateForAfterStyleResolution function.
(WebCore::HTMLPlugInImageElement::didAttachRenderers): Moved all the logic from this
function into scheduleUpdateForAfterStyleResolution. Also added a call through to the base
class; cleaner even though it's just an assertion.
(WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution): Added.
Schedules a call to updateAfterStyleResolution when needed.
(WebCore::HTMLPlugInImageElement::updateAfterStyleResolution): Added.
Combines updateWidgetIfNecessary and startLoadingImage, and also deals with the new
m_needsImageReload boolean in cases where no actual loading is done.
(WebCore::HTMLPlugInImageElement::removedFrom): Added. Do not delay the load event of
document once this element is removed, clears m_needsImageReload.
(WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Removed null check on oldDocument,
since m_needsDocumentActivationCallbacks can't be true if the old document was null.
(WebCore::is100Percent): Added helper to make function below more readable.
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Restructured the code a
bit. The part that attracted my attention was the local variable of type RenderBox, which
was named renderEmbeddedObject. Turns out the caller guarantees to only call this if there
is a renderer of type RenderEmbeddedObject, so depend on that.
(WebCore::HTMLPlugInImageElement::setNeedsImageReload): Added. When called with true, sets
the flag and triggers a style recalculation, and lets updateAfterStyleResolution do the rest.
When called with false, reverses the effects and stops delaying the load event.
* html/HTMLPlugInImageElement.h: Trimmed includes a bit. Made more members private.
Marked more function members final. Made a protected imageLoader function so that
m_imageLoader can be private. Added new protected function updateImageLoaderWithNewURLSoon,
as well as other new private functions. Made m_imageLoader be std::unique_ptr instead of
OwnPtr, and added m_needsImageReload.
* style/StyleResolveTree.cpp:
(WebCore::Style::needsPseudoElement): Fixed spelling error in the name of this function.
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Updated for name change.
(WebCore::Style::attachRenderTree): Update for new name of PostResolutionCallbackDisabler.
(WebCore::Style::updateBeforeOrAfterPseudoElement): Updated for name change.
(WebCore::Style::postResolutionCallbackQueue): Added.
(WebCore::Style::queuePostResolutionCallback): Added.
(WebCore::Style::suspendMemoryCacheClientCalls): Added. This is a side effect of the original
PostAttachCallbackDisabler that is now done in a cleaner way, using the callback queue, instead
of as a special case. It should not work for multiple documents across multiple pages instead of
only the outermost one.
(WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Added.
Calls suspendMemoryCacheClientCalls, but a FIXME tries to point out why that isn't so great.
(WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Added.
(WebCore::Style::postResolutionCallbacksAreSuspended): Added.
* style/StyleResolveTree.h: Added queuePostResolutionCallback and
postResolutionCallbacksAreSuspended. Also added PostResolutionCallbackDisabler, which should
eventually become a private implementation detail.
2014-03-23 Sam Weinig <sam@webkit.org>
Simplify the HTMLConverter interface (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=130654
Reviewed by Dan Bernstein.
Convert WebHTMLConverter's interface to only use class methods as the first
step of simplifying the interface.
* editing/ios/EditorIOS.mm:
(WebCore::attributedStringForRange):
* editing/mac/EditorMac.mm:
(WebCore::attributedStringForRange):
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter attributedStringFromRange:]):
2014-03-23 James Craig <jcraig@apple.com>
Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
https://bugs.webkit.org/show_bug.cgi?id=130635
Reviewed by Timothy Hatcher.
Support for @aria-owns, @aria-controls, and @aria-flowto.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-23 Simon Fraser <simon.fraser@apple.com>
Clean up #includes by geometry classes
https://bugs.webkit.org/show_bug.cgi?id=130645
Reviewed by Andreas Kling.
Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
classes brings in a lot of additional headers. Fix by adding a new
GeometryUtilities file so that the basic files don't need Vector,
and including GeometryUtilities.h where necessary.
Also forward declare PrintStream.h and only bring in the header
in implementation files.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSToStyleMap.h:
* html/HTMLCanvasElement.cpp:
* platform/cairo/WidgetBackingStoreCairo.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/GeometryUtilities.cpp: Added.
(WebCore::findSlope):
(WebCore::findIntersection):
(WebCore::unionRect):
(WebCore::mapRect):
* platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.cpp:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/TextTrackRepresentation.h:
* platform/graphics/Tile.h:
* platform/graphics/texmap/coordinated/UpdateAtlas.h:
* platform/gtk/WidgetBackingStoreGtkX11.h:
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderObject.cpp:
2014-03-23 Simon Fraser <simon.fraser@apple.com>
Clean up #includes by geometry classes
https://bugs.webkit.org/show_bug.cgi?id=130645
Reviewed by Andreas Kling.
Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
classes brings in a lot of additional headers. Fix by adding a new
GeometryUtilities file so that the basic files don't need Vector,
and including GeometryUtilities.h where necessary.
Also forward declare PrintStream.h and only bring in the header
in implementation files.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSToStyleMap.h:
* html/HTMLCanvasElement.cpp:
* platform/cairo/WidgetBackingStoreCairo.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/GeometryUtilities.cpp: Added.
(WebCore::findSlope):
(WebCore::findIntersection):
(WebCore::unionRect):
(WebCore::mapRect):
* platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
* platform/graphics/IntPoint.h:
* platform/graphics/IntRect.cpp:
* platform/graphics/IntRect.h:
* platform/graphics/IntSize.h:
* platform/graphics/TextTrackRepresentation.h:
* platform/graphics/Tile.h:
* platform/gtk/WidgetBackingStoreGtkX11.h:
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderObject.cpp:
2014-03-22 Chang Shu <cshu@webkit.org>
Replace deprecatedIsCollapsibleWhitespace with RenderStyle::isCollapsibleWhiteSpace in TextIterator.
https://bugs.webkit.org/show_bug.cgi?id=130612.
Reviewed by Darin Adler.
Some layout tests are affected by this change but the new behavior should be correct.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
2014-03-22 Sam Weinig <sam@webkit.org>
Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
https://bugs.webkit.org/show_bug.cgi?id=130639
Reviewed by Darin Adler.
This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.
- Removes gratuitous lookup of CSS properties that are known at compile time.
- Removes attempted use of non-supported CSS properties (font-effect and horizontal-align)
that will alway yield the same results.
- Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
but instead used the non-existent font-effect.
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::computedStylePropertyForElement):
(HTMLConverterCaches::inlineStylePropertyForElement):
(HTMLConverterCaches::propertyValueForNode):
(-[WebHTMLConverter _stringForNode:property:]):
(HTMLConverterCaches::floatPropertyValueForNode):
(-[WebHTMLConverter _getFloat:forNode:property:]):
(HTMLConverterCaches::isBlockElement):
(HTMLConverterCaches::elementHasOwnBackgroundColor):
(HTMLConverterCaches::colorPropertyValueForNode):
(-[WebHTMLConverter _colorForNode:property:]):
(-[WebHTMLConverter _computedAttributesForElement:]):
(-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
(-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
(-[WebHTMLConverter _addTableForElement:]):
(-[WebHTMLConverter _addTableCellForElement:]):
(-[WebHTMLConverter _processElement:tag:display:depth:]):
(-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
(-[WebHTMLConverter _processText:]):
(-[WebHTMLConverter _traverseNode:depth:embedded:]):
2014-03-22 Andreas Kling <akling@apple.com>
Fix debug build.
* bindings/js/JSDOMBinding.h:
(WebCore::createWrapper):
2014-03-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Add *final* keyword to NavigatorContentUtils class
https://bugs.webkit.org/show_bug.cgi?id=130636
Reviewed by Darin Adler.
NavigatorContentUtils won't be used as a base class. So, added final keyword.
No new tests, no behavior changes.
* Modules/navigatorcontentutils/NavigatorContentUtils.h:
2014-03-22 Andreas Kling <akling@apple.com>
CREATE_DOM_WRAPPER doesn't need the ExecState.
<https://webkit.org/b/130648>
Remove the ExecState parameter from CREATE_DOM_WRAPPER and get all
that we need from the global object instead.
toJS() and toJSNewlyCreated() still take an ExecState, that needs
to be dealt with separately since some of them have scary looking
currentWorld() checks.
Reviewed by Darin Adler.
* bindings/js/JSAudioContextCustom.cpp:
(WebCore::JSAudioContextConstructor::constructJSAudioContext):
* bindings/js/JSBlobCustom.cpp:
(WebCore::toJS):
(WebCore::JSBlobConstructor::constructJSBlob):
* bindings/js/JSCDATASectionCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCanvasRenderingContextCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDOMBinding.h:
(WebCore::createWrapper):
(WebCore::wrap):
(WebCore::createNewWrapper):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::toJS):
* bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::toJS):
* bindings/js/JSHTMLTemplateElementCustom.cpp:
(WebCore::JSHTMLTemplateElement::content):
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
(WebCore::toJS):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
* bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJS):
* bindings/js/JSRTCIceCandidateCustom.cpp:
(WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):
* bindings/js/JSRTCPeerConnectionCustom.cpp:
(WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
* bindings/js/JSRTCSessionDescriptionCustom.cpp:
(WebCore::JSRTCSessionDescriptionConstructor::constructJSRTCSessionDescription):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTextCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTouchCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSTouchListCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toJS):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* dom/make_names.pl:
(printWrapperFunctions):
(printWrapperFactoryCppFile):
(printWrapperFactoryHeaderFile):
2014-03-22 Michael Saboff <msaboff@apple.com>
toThis() on a JSWorkerGlobalScope should return a JSProxy and not undefined
https://bugs.webkit.org/show_bug.cgi?id=130554
Reviewed by Geoffrey Garen.
Fixed toThis() on WorkerGlobalScope to return a JSProxy instead of the JSGlobalObject.
Added cast from JSProxy->target() if the jsCast<>() to the native object fails
in toJSDedicatedWorkerGlobalScope() and toJSSharedWorkerGlobalScope().
The original cast is needed for access to the local side of the worker, while the JSProxy
cast is used on the remote side of a worker.
Test: fast/workers/worker-strict.html
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::toJSDedicatedWorkerGlobalScope):
(WebCore::toJSSharedWorkerGlobalScope):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::evaluate): Changed to pass in the JSProxy and not
the WorkerGlobalScope object as the this object to script evaluation.
* workers/DedicatedWorkerGlobalScope.idl:
* workers/SharedWorkerGlobalScope.idl:
* workers/WorkerGlobalScope.idl:
Added the new CustomProxyToJSObject attribute so we'll call to<{nativeClass}>() for
getting the object to use for global evaluation.
2014-03-22 Simon Fraser <simon.fraser@apple.com>
Some #include hygiene in Node/Element etc
https://bugs.webkit.org/show_bug.cgi?id=130642
Reviewed by Geoffrey Garen.
Clean up various #includes.
* accessibility/AccessibilityObject.h:
* bindings/js/WebCoreTypedArrayController.h:
* dom/Element.h:
* dom/EventListenerMap.h:
* dom/EventTarget.h:
* dom/Node.h:
* rendering/RenderObject.h:
* rendering/svg/RenderSVGRoot.h:
2014-03-22 Simon Fraser <simon.fraser@apple.com>
FloatRect.h on iOS should not suck in a system header
https://bugs.webkit.org/show_bug.cgi?id=130641
Reviewed by Geoff Garen.
Don't pull in <CoreGraphics/CGGeometry.h> from FloatRect.h.
* platform/graphics/FloatRect.h:
2014-03-22 Dan Bernstein <mitz@apple.com>
Fixed the iOS build.
Reviewed by Darin Adler.
* page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot):
2014-03-22 Darin Adler <darin@apple.com>
Remove String::deprecatedCharacters
https://bugs.webkit.org/show_bug.cgi?id=126854
Reviewed by Sam Weinig.
* bindings/scripts/StaticString.pm:
(GenerateStrings): Remove the code to generate the null m_copyData16 pointer.
* editing/TextIterator.cpp:
(WebCore::SearchBuffer::prependContext): Changed to use the new append function in
StringView.h and removed the one defined locally here.
* editing/VisibleUnits.cpp:
(WebCore::wordBreakIteratorForMinOffsetBoundary): Use the new append function
in StringView.h instead of using deprecatedCharacters.
(WebCore::wordBreakIteratorForMaxOffsetBoundary): Ditto.
Removed an append function defined locally here and use the one in StringView.h.
* editing/htmlediting.cpp:
(WebCore::stringWithRebalancedWhitespace): Use StringView::getCharactersWithUpconvert.
* html/parser/HTMLToken.h:
(WebCore::HTMLToken::appendToAttributeValue): Changed to take a StringView instead
of a const String&.
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest): Use StringView and StringView::upconvertedCharacters.
* page/EventSource.cpp:
(WebCore::EventSource::didReceiveData): Use the new append overload from StringView.h.
Also added a comment about incorrect use of the decode function.
* page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot): Use the new StringView append function.
Also use simpler new-style for loops.
* platform/LinkHash.cpp:
(WebCore::visitedURLInline): Use the new append function and StringView::substring.
(WebCore::visitedLinkHash): Use upconvertedCharacters for the non-8-bit case.
* platform/URL.cpp:
(WebCore::findFirstOf): Chagned to take a StringView.
(WebCore::containsOnlyASCII): Added. Works on StringView. Could move to a WTF header in
the future if it's needed elsewhere.
(WebCore::protocolIs): Added. Works on StringView. Could put in URL.h if needed elsewhere,
or consider replacing the one that takes const String& with just this one.
(WebCore::appendEncodedHostname): Changed to take a StringView and use
StringView::upconvertedCharacters.
(WebCore::findHostnamesInMailToURL): Changed to take a StringView.
(WebCore::findHostnameInHierarchicalURL): Ditto.
(WebCore::encodeHostnames): Ditto.
(WebCore::encodeRelativeString): Ditto.
* platform/graphics/StringTruncator.cpp:
(WebCore::StringTruncator::width): Use StringView::upconvertedCharacters.
* platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
(WebCore::HarfBuzzShaper::setFontFeatures): Use indexing directly on the string instead
of on a UChar*.
(WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Use StringView::upconvertedCharacters.
* platform/text/TextCodecICU.cpp:
(WebCore::TextCodecICU::encode): Use a Vector<UChar> rather than a String to copy and
replace the backslashes with yen signs. Also optimize case where there are no backslashes.
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint): Use TextRun::setText(StringView).
* rendering/RenderText.cpp:
(WebCore::maxWordFragmentWidth): Pass a String to RenderBlock::constructTextRun instead of
calling StringBuilder::deprecatedCharacters.
* rendering/RenderText.h: Removed deprecatedCharacters function.
* rendering/line/BreakingContextInlineHeaders.h: Added now-needed header include.
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::constructTextRun): Use StringView version of TextRun constructor.
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::SVGTextMetrics): Take references instead of pointers.
(WebCore::SVGTextMetrics::constructTextRun): Take references instead of pointers, and don't
take a character pointer any more. Instead, extract the text and use the StringView version of
the TextRun constructor.
(WebCore::SVGTextMetrics::measureCharacterRange): Take references instead of pointers and
update for above changes.
* rendering/svg/SVGTextMetrics.h: Updated for changes above. Also tweaked style a bit.
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::advanceSimpleText): Updated for SVGTextMetrics changes.
(WebCore::SVGTextMetricsBuilder::advanceComplexText): Ditto.
(WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer): Ditto.
(WebCore::SVGTextMetricsBuilder::measureTextRenderer): Change code to store a character
for lastCharacter rather than storing a pointer to a character. Stop using TextRun::data16.
* rendering/svg/SVGTextQuery.cpp:
(WebCore::SVGTextQuery::subStringLengthCallback): Updated for SVGTextMetrics changes.
(WebCore::SVGTextQuery::startPositionOfCharacterCallback): Ditto.
(WebCore::SVGTextQuery::endPositionOfCharacterCallback): Ditto.
(WebCore::calculateGlyphBoundaries): Ditto.
* xml/XPathFunctions.cpp:
(WebCore::XPath::atomicSubstring): Added.
(WebCore::XPath::FunId::evaluate): Tweaked a bit to use a new style for loop.
Use the atomicSubstring function to avoid making a temporary String just to make an AtomicString.
That function also uses characters8/16 rather than depreccatedCharacters.
* xml/XPathNodeSet.h: Added begin and end so this collection can be iterated with new style for loop.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::doWrite): Use StringView::upconvertedCharacters.
(WebCore::parseAttributes): Ditto.
2014-03-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166118.
https://bugs.webkit.org/show_bug.cgi?id=130640
Crashing things (Requested by weinig on #webkit).
Reverted changeset:
"Switch HTMLConverter to use CSSPropertyIDs to refer to CSS
properties"
https://bugs.webkit.org/show_bug.cgi?id=130639
http://trac.webkit.org/changeset/166118
2014-03-22 Sam Weinig <sam@webkit.org>
Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
https://bugs.webkit.org/show_bug.cgi?id=130639
Reviewed by Simon Fraser.
This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.
- Removes gratuitous lookup of CSS properties that are known at compile time.
- Removes attempted use of non-supported CSS properties (font-effect and horizontal-align)
that will alway yield the same results.
- Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
but instead used the non-existent font-effect.
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::computedStylePropertyForElement):
(HTMLConverterCaches::inlineStylePropertyForElement):
(HTMLConverterCaches::propertyValueForNode):
(-[WebHTMLConverter _stringForNode:property:]):
(HTMLConverterCaches::floatPropertyValueForNode):
(-[WebHTMLConverter _getFloat:forNode:property:]):
(HTMLConverterCaches::isBlockElement):
(HTMLConverterCaches::elementHasOwnBackgroundColor):
(HTMLConverterCaches::colorPropertyValueForNode):
(-[WebHTMLConverter _colorForNode:property:]):
(-[WebHTMLConverter _computedAttributesForElement:]):
(-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
(-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
(-[WebHTMLConverter _addTableForElement:]):
(-[WebHTMLConverter _addTableCellForElement:]):
(-[WebHTMLConverter _processElement:tag:display:depth:]):
(-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
(-[WebHTMLConverter _processText:]):
(-[WebHTMLConverter _traverseNode:depth:embedded:]):
2014-03-21 Simon Fraser <simon.fraser@apple.com>
Don't flush compositing layers within FrameView::willPaintContents()
https://bugs.webkit.org/show_bug.cgi?id=130627
<rdar://problem/16368869>
Reviewed by Sam Weinig.
Remove the call to flushCompositingStateForThisFrame() here. We should
have always flushed before painting via other mechanisms in WebKit2 and WebKit2.
Flushing during painting is actually harmful, since we could be inside
a CA commit already, and creating or destroying layers via flushing is bad.
* page/FrameView.cpp:
(WebCore::FrameView::willPaintContents):
2014-03-22 Martin Hodovan <mhodovan@inf.u-szeged.hu>
ASSERTION FAILED: std::isfinite(num) in WebCore::CSSPrimitiveValue::CSSPrimitiveValue
https://bugs.webkit.org/show_bug.cgi?id=127361
Huge numbers represented by the 'INF' value can not be used
in CSS rules, so they make the assert fail. We have to make
sure that the parsed property value is finite, otherwise
the property will be dropped.
Test: fast/css/infinite-floating-value.html
* css/CSSValuePool.cpp:
(WebCore::CSSValuePool::createValue):
2014-03-21 Zalan Bujtas <zalan@apple.com>
Remove redundant friending from class Image.
https://bugs.webkit.org/show_bug.cgi?id=130628
Reviewed by Simon Fraser.
Those friend classes are subclasses. No need to make them friend of their parent class.
No change in functionality.
* platform/graphics/Image.h:
2014-03-21 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
https://bugs.webkit.org/show_bug.cgi?id=130555
Reviewed by Simon Fraser.
* WebCore.exp.in:
* platform/ScrollView.h:
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::computeTileCoverageRect):
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::setScrollVelocityInformation):
(WebCore::ScrollView::computeCoverageRect):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
2014-03-21 Eric Carlson <eric.carlson@apple.com>
[iOS] clean up fullscreen player controller when exiting fullscreen
https://bugs.webkit.org/show_bug.cgi?id=130621
Reviewed by Jer Noble.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(-[WebAVVideoLayer setBounds:]): Do nothing if _avPlayerController is nil.
(-[WebAVVideoLayer setVideoLayerGravity:]): Ditto.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Set m_playerViewController delegate
and player controller to nil.
2014-03-21 Eric Carlson <eric.carlson@apple.com>
[iOS] remote command callbacks must happen on the WebThread
https://bugs.webkit.org/show_bug.cgi?id=130618
Reviewed by Jer Noble.
* platform/ios/RemoteCommandListenerIOS.h:
(WebCore::RemoteCommandListenerIOS::createWeakPtr):
* platform/ios/RemoteCommandListenerIOS.mm:
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Dispatch commands to the
main thread before making listener callbacks.
2014-03-21 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make <img> positioning subpixel aware.
https://bugs.webkit.org/show_bug.cgi?id=130596
Reviewed by Simon Fraser.
Change <img> positioning from integral to device pixel. It enables us
to paint hairline borders around <img> properly.
This patch changes the behavior of broken image representation from constant 1 CSS px border
to a dynamic 1 device px.
Test: fast/images/hidpi-image-position-on-device-pixels.html
* WebCore.exp.in:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawRect):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawRect):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawRect):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
* rendering/RenderImage.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::drawPlatformResizerImage):
2014-03-21 Brent Fulgham <bfulgham@apple.com>
Merge VTTScanner Code from Blink
https://bugs.webkit.org/show_bug.cgi?id=130616
Reviewed by Eric Carlson.
Merged from Blink (patch by fs@opera.com):
https://chromium.googlesource.com/chromium/blink/+/f1ceb058d574a1174b524c57f67350510a942071
http://crbug.com/75273002
https://chromium.googlesource.com/chromium/blink/+/3e2c67969486e86347b328c72c67cacabfe6f4a1
http://crbug.com/134173002
https://chromium.googlesource.com/chromium/blink/+/5962b7bbb001838f3fc7f24817637528b86bfd9b
http://crbug.com/134153002
https://chromium.googlesource.com/chromium/blink/+/6c81f51438013edca920a19fc6a31026fc562af2
http://crbug.com/137033002
https://chromium.googlesource.com/chromium/blink/+/fa286dca17a291da3ae8be80111e2264de6d5cfd
http://crbug.com/140503004
https://chromium.googlesource.com/chromium/blink/+/8f33b63aabcce7dd21dd15288d45c4eb37c02001
http://crbug.com/139343006
https://chromium.googlesource.com/chromium/blink/+/1872b54b908fac525f1ad9d6f15174b11e27c8af
http://crbug.com/143983002
https://chromium.googlesource.com/chromium/blink/+/e6494b3359e2077bd8772d86ab1fb709acf4c398
http://crbug.com/144893002
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/track/ParsingUtilities.h: Added.
(skipExactly):
(skipUntil):
(skipWhile):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::markFutureAndPastNodes):
(WebCore::VTTCue::settingName):
(WebCore::scanPercentage):
(WebCore::VTTCue::setCueSettings):
* html/track/VTTCue.h:
* html/track/VTTRegion.cpp:
(WebCore::VTTRegion::setRegionSettings):
(WebCore::VTTRegion::scanSettingName):
(WebCore::parsedEntireRun):
(WebCore::VTTRegion::parseSettingValue):
* html/track/VTTRegion.h:
* html/track/VTTScanner.cpp: Added.
(WebCore::VTTScanner::VTTScanner):
(WebCore::VTTScanner::scan):
(WebCore::VTTScanner::scanRun):
(WebCore::VTTScanner::skipRun):
(WebCore::VTTScanner::extractString):
(WebCore::VTTScanner::restOfInputAsString):
(WebCore::VTTScanner::scanDigits):
(WebCore::VTTScanner::scanFloat):
* html/track/VTTScanner.h: Added.
(WebCore::VTTScanner::Run::Run):
(WebCore::VTTScanner::Run::start):
(WebCore::VTTScanner::Run::end):
(WebCore::VTTScanner::Run::isEmpty):
(WebCore::VTTScanner::isAt):
(WebCore::VTTScanner::isAtEnd):
(WebCore::VTTScanner::match):
(WebCore::VTTScanner::position):
(WebCore::VTTScanner::end):
(WebCore::VTTScanner::LCharPredicateAdapter):
(WebCore::VTTScanner::Run::length):
(WebCore::VTTScanner::scan):
(WebCore::VTTScanner::skipWhile):
(WebCore::VTTScanner::skipUntil):
(WebCore::VTTScanner::collectWhile):
(WebCore::VTTScanner::collectUntil):
(WebCore::VTTScanner::seekTo):
(WebCore::VTTScanner::currentChar):
(WebCore::VTTScanner::advance):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseFloatPercentageValue):
(WebCore::WebVTTParser::parseFloatPercentageValuePair):
(WebCore::WebVTTParser::collectTimingsAndSettings):
(WebCore::WebVTTParser::collectTimeStamp):
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
* html/track/WebVTTParser.h:
2014-03-21 Benjamin Poulain <bpoulain@apple.com>
Pseudo type cleanup part 2: split pseudo elements parsing
https://bugs.webkit.org/show_bug.cgi?id=130370
Reviewed by Andreas Kling.
With this patch, pseudo elements are handled separately. The only thing left in
the old path is compatibility pseudo elements and pseudo classes.
The list of special pseudo elements is now separated and is stored in SelectorPseudoElementTypeMap.in.
The script makeSelectorPseudoElementsMap.py takes that list to make the pseudo elements hash table.
The other pseudo elements are the prefixed ones, they are filtered in CSSSelector::parsePseudoElementType().
All the non-compatibility selectors are removed from SelectorPseudoTypeMap.in. CSSParserSelector::setPseudoTypeValue()
is updated accordingly. The next step will be to clean that part.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
* css/CSSGrammar.y.in:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePseudoElementSelector):
(WebCore::CSSParserSelector::parsePseudoCueFunctionSelector):
(WebCore::CSSParserSelector::setPseudoTypeValue):
* css/CSSParserValues.h:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::parsePseudoElementType):
* css/CSSSelector.h:
* css/SelectorPseudoElementTypeMap.in: Added.
* css/SelectorPseudoTypeMap.h:
* css/SelectorPseudoTypeMap.in:
* css/html.css:
(q::before):
(q::after):
* css/makeSelectorPseudoElementsMap.py: Added.
(enumerablePseudoType):
(expand_ifdef_condition):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules):
2014-03-20 Andreas Kling <akling@apple.com>
Less inclusion of JSCInlines.h.
<https://webkit.org/b/130545>
Stop including JSCInlines.h from JSDOMGlobalObject.h!
Reviewed by Simon Fraser.
* ForwardingHeaders/runtime/IdentifierInlines.h: Added.
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
* bindings/js/JSCommandLineAPIHostCustom.cpp:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMStringMapCustom.cpp:
* bindings/js/JSHTMLAllCollectionCustom.cpp:
* bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
* bindings/js/JSLazyEventListener.cpp:
* bindings/js/JSSQLResultSetRowListCustom.cpp:
* bindings/js/JSStorageCustom.cpp:
* bindings/js/ScriptGlobalObject.cpp:
* dom/NodeIterator.cpp:
* dom/TreeWalker.cpp:
* testing/Internals.cpp:
* testing/js/WebCoreTestSupport.cpp:
2014-03-21 Oliver Hunt <oliver@apple.com>
Fix a crash when assigning an object to document.location
https://bugs.webkit.org/show_bug.cgi?id=130213
Reviewed by Geoffrey Garen.
Convert location to string before we make use the document.
This prevents us from attempting to navigate a frame that
has already been removed.
Test: fast/dom/navigation-with-sideeffects-crash.html
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::location):
(WebCore::JSDocument::setLocation):
2014-03-21 Brian Burg <bburg@apple.com>
Web Replay: replay controller is improperly setting user input bridge state
https://bugs.webkit.org/show_bug.cgi?id=130606
Reviewed by Timothy Hatcher.
The user input bridge was being set based on the old session state,
rather than the new session state.
* replay/ReplayController.cpp:
(WebCore::ReplayController::setSessionState):
2014-03-21 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose Accessibility Tree children of the selected node
https://bugs.webkit.org/show_bug.cgi?id=130264
Reviewed by Timothy Hatcher.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Expose the accessibility tree children (different from DOM children) of the
current node in the accessibility node inspector.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/InspectorDOMAgent.h:
* inspector/protocol/DOM.json:
2014-03-21 Alex Christensen <achristensen@webkit.org>
[Win] Compile fixes with video not enabled.
https://bugs.webkit.org/show_bug.cgi?id=130597
Reviewed by Darin Adler.
* DerivedSources.make:
Only generate UserAgentScripts.h if needed.
* platform/audio/MediaSession.cpp:
* platform/audio/MediaSessionManager.cpp:
Only compile if video is enabled.
2014-03-21 Adenilson Cavalcanti <cavalcantii@gmail.com>
Optimize FEGaussian blur
https://bugs.webkit.org/show_bug.cgi?id=50881
Reviewed by Dirk Schulze.
Currently boxBlur() will calculate the filter for each channel in
a loop and also uses Uint8ClampedArray::set() to write the
resulting pixels into destination array.
Using Uint8ClampedArray::set() requires lots of unnecessary type
conversions, not to mention other function calls. This patch
updates the original written by Simon Fraser to apply cleanly to current
trunk.
It also implements code to handle EdgeModes and finally avoids use
of ::set() in the newly added boxBlurAlphaOnly()
function. Assignment of calculated pixel values rely on pointers.
No new tests, no change on behavior.
* platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::boxBlurAlphaOnly): Specialized version for alpha only cases.
(WebCore::boxBlur):
2014-03-21 Simon Fraser <simon.fraser@apple.com>
unobscuredContentRect() should have the same signature on iOS and other platforms,
and should not recurse on iOS.
https://bugs.webkit.org/show_bug.cgi?id=130604
<rdar://problem/16392587>
Reviewed by Tim Horton and Beth Dakin.
Having different signatures on different platforms is a recipe for
build breakage. Give the iOS unobscuredContentRect() an unused
VisibleContentRectIncludesScrollbars parameter.
Also avoid recursion via unobscuredContentRect() calling visibleContentRectInternal().
* WebCore.exp.in:
* platform/ScrollView.cpp:
(WebCore::ScrollView::unobscuredContentRect):
(WebCore::ScrollView::unobscuredContentRectInternal):
(WebCore::ScrollView::visibleContentRectInternal):
* platform/ScrollView.h:
(WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):
2014-03-21 Brent Fulgham <bfulgham@apple.com>
Handle recovery on "timestamp-looking" lines in the WebVTT parser
https://bugs.webkit.org/show_bug.cgi?id=130610
Reviewed by Eric Carlson.
Merged from Blink (patch by fs@opera.com):
https://chromium.googlesource.com/chromium/blink/+/b669a380efbffe25f3b154b026b57b9822ce08e2
http://crbug.com/75273002
Tests: media/track/track-webvtt-tc031-cue-recovery.html
media/track/track-webvtt-tc032-degenerate-cues.html
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parse):
(WebCore::WebVTTParser::collectCueText):
(WebCore::WebVTTParser::recoverCue):
(WebCore::WebVTTParser::ignoreBadCue):
* html/track/WebVTTParser.h:
2014-03-21 Andreas Kling <akling@apple.com>
Remove unused RenderView::repaintRectangleInViewAndCompositedLayers().
<https://webkit.org/b/130605>
Reviewed by Antti Koivisto.
* rendering/RenderView.cpp:
* rendering/RenderView.h:
2014-03-21 David Hyatt <hyatt@apple.com>
Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
https://bugs.webkit.org/show_bug.cgi?id=129948
<rdar://problem/16074072>
Reviewed by Simon Fraser.
When the marker was placed for multi-column list items, it was being inserted
into the list item itself. Even though the add code in RenderBlock did the right
thing and put the marker inside the multi-column flow thread, the list item code
passed in a beforeChild that was computed using the incorrect parent. This resulted
in the flow thread being used both as the parent of the marker and the sibling of
the marker.
The fix is to add some code to RenderListItem to make sure it uses the multi-column
flow thread if it exists both as the parent of the marker and as the basis for the
computation of the sibling that the marker should be placed in front of.
Added fast/multicol/multicol-li-crash.html
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):
2014-03-20 Andreas Kling <akling@apple.com>
Stop pulling in JSCInlines.h all over the place.
<https://webkit.org/b/130105>
JSDOMBinding.h is included by everyone and their uncle, so try to
cut down on the amount of JSC *Inlines.h it includes.
Reviewed by Geoff Garen.
* ForwardingHeaders/heap/SlotVisitorInlines.h: Added.
* ForwardingHeaders/runtime/JSCJSValueInlines.h: Added.
* ForwardingHeaders/runtime/JSCellInlines.h: Added.
* ForwardingHeaders/runtime/StructureInlines.h: Added.
* bindings/js/JSDOMBinding.h:
2014-03-21 David Kilzer <ddkilzer@apple.com>
WindowFeatures.{x|y|width|height} are not initialized
<http://webkit.org/b/130547>
<rdar://problem/16383151>
Reviewed by Darin Adler.
Based on a Blink patch in CRBug 342591 by zhaoqin.
* page/WindowFeatures.cpp:
(WebCore::WindowFeatures::WindowFeatures):
- Initialize x, y, width, height in String constructor.
- Move 'resizeable' variable to short-hand initialization since
it is true in both cases.
- Use String::isEmpty() instead of checking its length.
* page/WindowFeatures.h:
(WebCore::WindowFeatures::WindowFeatures): Initialize x, y,
width, height in no-argument constructor.
2014-03-21 Sergio Villar Senin <svillar@igalia.com>
Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in bridge/
https://bugs.webkit.org/show_bug.cgi?id=130601
Reviewed by Darin Adler.
* bridge/IdentifierRep.cpp:
(WebCore::identifierSet):
(WebCore::intIdentifierMap):
(WebCore::stringIdentifierMap):
* bridge/NP_jsobject.cpp:
(objectMap):
* bridge/runtime_root.cpp:
(JSC::Bindings::rootObjectSet): Return a reference instead of
a pointer.
(JSC::Bindings::findProtectingRootObject):
(JSC::Bindings::findRootObject):
(JSC::Bindings::RootObject::RootObject):
(JSC::Bindings::RootObject::invalidate):
2014-03-21 Michael Saboff <msaboff@apple.com>
Change CodeGeneratorJS.pm special cases for "DOMWindow" to be general purpose
https://bugs.webkit.org/show_bug.cgi?id=130553
Reviewed by Geoffrey Garen.
Eliminated 'if ($interfaceName eq "DOMWindow") {' sections in CodeGeneratorJS where
it was used to do DOMWindow specific casting to a JSObject, either a JSDOMWindow* or
a JSDOMWindowShell*. Instead the code generator will use the existing
JSDOMWindow* toJSDOMWindow(JSValue value) function based on a newly added attribute
"CustomProxyToJSObject". That attribute will emit a call to the function
${className}* to${className}(JSValue).
This is being done to clean up the code generator and for a subsequent patch that
will use a similar custom to{className} function for workers,
JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSValue).
Changes covered by existing tests.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* page/DOMWindow.idl:
2014-03-21 Krzysztof Czech <k.czech@samsung.com>
AX: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=130594
Reviewed by Chris Fleizach.
Use static NeverDestroyed<T> in new code.
* accessibility/AccessibilityMediaControls.cpp:
(WebCore::AccessibilityMediaControl::controlTypeName):
(WebCore::AccessibilityMediaControl::title):
(WebCore::AccessibilityMediaControlsContainer::elementTypeName):
(WebCore::AccessibilityMediaTimeline::helpText):
(WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::actionVerb):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
(WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
(WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
(WebCore::AccessibilityRenderObject::actionVerb):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
2014-03-20 Brent Fulgham <bfulgham@apple.com>
Merge WebVTT Tokenizer Updates
https://bugs.webkit.org/show_bug.cgi?id=130565
Reviewed by Eric Carlson.
Merged from Blink (patch by fs@opera.com):
https://chromium.googlesource.com/chromium/blink/+/923db263aa65d6efd71c5b55708ad7eea6b23f53
http://crbug.com/73813002
https://chromium.googlesource.com/chromium/blink/+/48375b1d56b2d8850ae93a6c6fb01c69fae82c75
http://crbug.com/77553004
https://chromium.googlesource.com/chromium/blink/+/98d4fc4f5cb716a31d11907120b10538d4ba0f09
http://crbug.com/78833002
https://chromium.googlesource.com/chromium/blink/+/0e53d4f9f140e979b7f32de495551684bc7f4cd2
http://crbug.com/81113003
https://chromium.googlesource.com/chromium/blink/+/730ef1e7f9a1919964f7e74e7ccb2f343e10a148
http://crbug.com/97103002
https://chromium.googlesource.com/chromium/blink/+/c373ee914ffabeaf833939129538251d8f2f4eca
http://crbug.com/98763004
https://chromium.googlesource.com/chromium/blink/+/4ddb4d57948228fa05e49e06bd58a1179c09f212
http://crbug.com/118263002
* html/track/VTTCue.cpp:
(WebCore::scanPercentage):
(WebCore::VTTCue::setCueSettings):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTTreeBuilder::buildFromString):
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):
* html/track/WebVTTToken.h:
(WebCore::WebVTTToken::WebVTTToken):
(WebCore::WebVTTToken::StringToken):
(WebCore::WebVTTToken::StartTag):
(WebCore::WebVTTToken::EndTag):
(WebCore::WebVTTToken::TimestampTag):
(WebCore::WebVTTToken::type):
(WebCore::WebVTTToken::name):
(WebCore::WebVTTToken::characters):
(WebCore::WebVTTToken::classes):
(WebCore::WebVTTToken::annotation):
* html/track/WebVTTTokenizer.cpp:
(WebCore::addNewClass):
(WebCore::emitToken):
(WebCore::advanceAndEmitToken):
(WebCore::WebVTTTokenizer::WebVTTTokenizer):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
(WebCore::WebVTTTokenizer::shouldSkipNullCharacters):
2014-03-21 Frédéric Wang <fred.wang@free.fr>
Bug 130345 - Refine childShouldCreateRenderer for MathML elements
https://bugs.webkit.org/show_bug.cgi?id=130345
Reviewed by Chris Fleizach.
This is a follow-up of bug 124128. We add more restrictions on foreign
content of MathML elements.
Tests: mathml/presentation/annotation-children.html
mathml/presentation/foreign-element-in-token.html
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::isPresentationMathML): fix line wrapping
(WebCore::MathMLElement::isPhrasingContent):
- move the function from MathMLSelectElement.cpp
- add the constraint "is descendant of a map element" for area.
(WebCore::MathMLElement::isFlowContent): new function to test flow content.
(WebCore::MathMLElement::childShouldCreateRenderer):
- remove annotation since it is now tested in MathMLTextElement
- refine testing of annotation-xml
- do not create renderer for text content in MathML. Such content is only allowed inside token elements.
* mathml/MathMLElement.h: Declare isPhrasingContent and isFlowContent.
* mathml/MathMLSelectElement.cpp: Add new function to test MathML/SVG/HTML encodings.
(WebCore::MathMLSelectElement::isMathMLEncoding):
(WebCore::MathMLSelectElement::isSVGEncoding):
(WebCore::MathMLSelectElement::isHTMLEncoding):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild): use the new functions.
* mathml/MathMLSelectElement.h: Declare the new public functions.
* mathml/MathMLTextElement.cpp: remove the isPhrasingContent function.
(WebCore::MathMLTextElement::childShouldCreateRenderer): Just in case, use the generic StyledElement::childShouldCreateRenderer.
2014-03-21 Darin Adler <darin@apple.com>
Stop using deprecatedCharacters in WebCore/platform/win
https://bugs.webkit.org/show_bug.cgi?id=130515
Reviewed by Brent Fulgham.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun): Add a constructor that takes a StringView.
Later, we might want to exclusively use the StringView version and remove
some of the others.
(WebCore::TextRun::setText): Add a version of this function that takes a StringView.
* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::systemFallbackForCharacters): Use StringView::getCharactersWithUpconvert.
(WebCore::createGDIFont): Ditto.
(WebCore::FontCache::getTraitsInFamily): Ditto.
* platform/win/BString.cpp:
(WebCore::BString::BString): Use StringView::upconvertedCharacters.
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData): Use StringView::getCharactersWithUpconvert.
* platform/win/FileSystemWin.cpp:
(WebCore::pathByAppendingComponent): Use StringBuilder and StringView::getCharactersWithUpconvert.
(WebCore::fileSystemRepresentation): Use StringView::upconvertedCharacters.
* platform/win/PasteboardWin.cpp:
(WebCore::filesystemPathFromUrlOrTitle): Use StringView::getCharactersWithUpconvert.
(WebCore::Pasteboard::writeURLToDataObject): Ditto.
(WebCore::createGlobalImageFileDescriptor): Ditto.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::calculatePositionAndSize): Use the new TextRun constructor.
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint): Ditto.
2014-03-21 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: RenderBox is positioned off by one when non-compositing transform is present.
https://bugs.webkit.org/show_bug.cgi?id=130430
Reviewed by Simon Fraser.
div {
position: absolute;
top: 10.25px;
left: 10.25px;
}
The <div> with (10.25px, 10.25px) is painted to (10.5px, 10.5px) after device pixel snapping on 2x display.
Moving <div> to its own RenderLayer should not change the painting position.
div {
position: absolute;
top: 10.25px;
left: 10.25px;
-webkit-transform: rotate(0deg);
}
When we paint the RenderLayer's content, the graphics context is translated by the rounded value of
renderer's offset from parent.
(10.25px,10.25px) -> rounded to (10.5px,10.5px).
When the translate moves the graphics context's origin over the renderer's top-left position,
the renderer's relative top-left coordinates end up being negative.
Graphics context translated by (10.5px,10.5px) -> pushes renderer's relative top-left coords to (-0.25px,-0.25px)
When we round (pixel snap) these negative coordinates, half-way values get translated to the wrong direction.
(relative coords (-0.25px,-0.25px) -> pixel snapped to (-0.5px,-0.5px) -> final absolute(painting) coords (10px,10px))
This patch changes the rounding to flooring to ensure that the relative top-left position never gets negative as the result
of subpixel shifting.
Tests: compositing/hidpi-box-positioned-off-by-one-when-non-compositing-transform-is-present.html
fast/layers/hidpi-box-positioned-off-by-one-when-transform-is-present.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedTransform):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateTransform):
(WebCore::RenderLayer::currentTransform):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateTransform):
* rendering/style/RenderStyle.cpp:
* rendering/style/RenderStyle.h:
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::animatedLocalTransform):
2014-03-21 Pratik Solanki <psolanki@apple.com>
Unreviewed. iOS build fix after r166046.
* WebCore.exp.in:
2014-03-21 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Fix the !ENABLE(FILTERS) build
https://bugs.webkit.org/show_bug.cgi?id=130394
Reviewed by Gyuyoung Kim.
Add missing includes in rendering to fix compile errors, and include JSC headers to ImageBuffer.h to fix linker errors.
* platform/graphics/ImageBuffer.h:
* rendering/svg/RenderSVGImage.cpp:
* rendering/svg/RenderSVGRoot.cpp:
2014-03-21 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r166052.
https://bugs.webkit.org/show_bug.cgi?id=130571
It broke EFL build (Requested by KaL on #webkit).
Reverted changeset:
"[GTK] Use GMainLoopSource for idle and timeout sources in
WebCore"
https://bugs.webkit.org/show_bug.cgi?id=130078
http://trac.webkit.org/changeset/166052
2014-03-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Add *explicit* keyword to avoid implicit type conversion
https://bugs.webkit.org/show_bug.cgi?id=130568
Reviewed by Antti Koivisto.
Constructors of RemoteFontFaceSource, SVGDocumentExtensions, XMLDocumentParserScope,
and WorkerScriptDebugServer need to use *explicit* keyword because they have an argument.
Besides removed a meaningless argument name.
* svg/SVGDocumentExtensions.h:
* xml/parser/XMLDocumentParserScope.h:
2014-03-20 Sergio Villar Senin <svillar@igalia.com>
Modules: replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
https://bugs.webkit.org/show_bug.cgi?id=130407
Reviewed by Darin Adler.
* Modules/encryptedmedia/CDM.cpp:
(WebCore::installedCDMFactories):
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::registry):
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediastream/MediaStreamRegistry.cpp:
(WebCore::MediaStreamRegistry::registry):
2014-03-20 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Use GMainLoopSource for idle and timeout sources in WebCore
https://bugs.webkit.org/show_bug.cgi?id=130078
Reviewed by Philippe Normand.
* platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
* platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
* platform/gtk/GtkDragAndDropHelper.cpp:
* platform/gtk/SharedTimerGtk.cpp:
2014-03-21 Andreas Kling <akling@apple.com>
HTMLFrameOwnerElement should obey the SubframeLoadingDisabler when creating subframes
<rdar://problem/15675780>
Merge Blink r156744 by Adam Klein.
Test: fast/frames/set-iframe-src-in-pagehide-crash.html
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadSubframe):
2014-03-21 Darin Adler <darin@apple.com>
Improve idiom used for string building in a few places
https://bugs.webkit.org/show_bug.cgi?id=130561
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::loggingString): Use a StringBuilder, and get rid of
an an unnecessary additional string allocation.
* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::create): Use StringBuilder.
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::createTDForFilename): Do a more efficient
string concatenation.
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::updateValidationMessage): Ditto.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
Use a StringBuilder.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::shorthandValue): Use a StringBuilder.
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::insertProperty): Use a more efficient idiom
for string concatenation.
(WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
* loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL): Ditto.
* page/Frame.cpp:
(WebCore::createRegExpForLabels): Use a StringBuilder.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Use a more efficient
idiom for string concatenation.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::getUnmangledInfoLog): Use a StringBuilder.
* platform/network/MIMEHeader.cpp:
(WebCore::MIMEHeader::parseHeader): Use a more efficient idiom for string
concatenation.
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::addHTTPHeaderField): Ditto.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerTreeAsText): Ditto.
* rendering/RenderText.cpp:
(WebCore::RenderText::secureText): Create a new string with the substring
function rather than with the append function.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::setRequestHeaderInternal): Use a more efficient idiom
for string concatenation.
2014-03-21 Darin Adler <darin@apple.com>
Add a combined decodeAndFlush to TextResourceDecoder
https://bugs.webkit.org/show_bug.cgi?id=130560
Reviewed by Andreas Kling.
* WebCore.exp.in: Added new symbol for decodeAndFlush. Also re-did
the geometry types #if so it would sort more logically.
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::convertToText): Use decodeAndFlush.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResourceContent): Ditto.
* inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::decodeDataToContent): Ditto.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::decodeAndFlush): Added.
* loader/TextResourceDecoder.h: Ditto.
* loader/appcache/ManifestParser.cpp:
(WebCore::parseManifest): Use decodeAndFlush.
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::sheetText): Ditto.
(WebCore::CachedCSSStyleSheet::finishLoading): Ditto.
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::ensureSVGFontData): Use decodeAndFlush. Also use nullptr.
(WebCore::CachedFont::getSVGFontById): Use descendantsOfType<SVGFontElement>
instead of using a NodeList. Much more efficient!
* loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::finishLoading): Use decodeAndFlush.
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::script): Ditto.
* loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::finishLoading): Ditto.
* page/Page.cpp:
(WebCore::Page::userStyleSheet): Ditto.
2014-03-20 Darin Adler <darin@apple.com>
Remove a couple of unused functions from CSSOMUtils
https://bugs.webkit.org/show_bug.cgi?id=130558
Reviewed by Andreas Kling.
* css/CSSOMUtils.cpp: Remove String overloads. Callers all use the StringBuilder
ones, which is good since that is a more efficient idiom.
* css/CSSOMUtils.h: Ditto.
2014-03-20 Pratik Solanki <psolanki@apple.com>
Unreviewed. iOS build fix after r166017, r166032.
* platform/ScrollView.cpp:
(WebCore::ScrollView::visibleContentRectInternal):
2014-03-20 Hyowon Kim <hw1008.kim@samsung.com>
Move to using std::unique_ptr for EFL objects.
https://bugs.webkit.org/show_bug.cgi?id=129853
Reviewed by Gyuyoung Kim.
EflUniquePtr is a template alias of std::unique_ptr
with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
No new tests. No new functionality.
* platform/efl/EflScreenUtilities.h:
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
(WebCore::RenderThemeEfl::loadTheme):
* platform/efl/RenderThemeEfl.h:
* platform/graphics/Icon.h:
* platform/graphics/efl/EvasGLContext.h:
(WebCore::EvasGLContext::create):
* platform/graphics/efl/EvasGLSurface.h:
(WebCore::EvasGLSurface::create):
2014-03-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[EFL][GTK] Get CMake to find Freetype2 properly
https://bugs.webkit.org/show_bug.cgi?id=130150
Reviewed by Martin Robinson.
Newer versions of CMake are not able to find Freetype2 correctly.
FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
freetype2 repo, because a completely different version number is found in freetype2.pc.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
2014-03-20 Martin Robinson <mrobinson@igalia.com>
[GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
https://bugs.webkit.org/show_bug.cgi?id=130517
Reviewed by Sergio Villar Senin.
* plugins/gtk/gtk2xtbin.c: Use GCC suppression to suppress errors about deprecations.
2014-03-20 Simon Fraser <simon.fraser@apple.com>
Cleanup in aisle r166017.
visibleContentRectInternal() was dropping the scrollbar
inclusiveness on the floor, and we need to reset the top inset
between tests.
* platform/ScrollView.cpp:
(WebCore::ScrollView::visibleContentRectInternal):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
2014-03-20 Enrica Casucci <enrica@apple.com>
Build fix.
Removing unused variable.
* page/FrameView.cpp:
(WebCore::FrameView::didPaintContents):
2014-03-20 Brent Fulgham <bfulgham@apple.com>
Rename TextTrackRegion/TextTrackRegionList to VTTRegion/VTTRegionList
https://bugs.webkit.org/show_bug.cgi?id=130543
Reviewed by Dean Jackson.
Merged from Blink (patch by philipj@opera.com):
https://chromium.googlesource.com/chromium/blink/+/69ee6d3399d64163e4936ac1bde222036c54c4b8
http://crbug.com/55653003
Tests: media/track/regions-webvtt/vtt-region-constructor.html
media/track/regions-webvtt/vtt-region-display.html
media/track/regions-webvtt/vtt-region-dom-layout.html
media/track/regions-webvtt/vtt-region-list.html
media/track/regions-webvtt/vtt-region-parser.html
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::ensureVTTRegionList):
(WebCore::TextTrack::regions):
(WebCore::TextTrack::addRegion):
(WebCore::TextTrack::removeRegion):
* html/track/TextTrack.h:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.cpp:
* html/track/TextTrackRegion.cpp: Removed.
* html/track/TextTrackRegion.h: Removed.
* html/track/TextTrackRegion.idl: Removed.
* html/track/TextTrackRegionList.cpp: Removed.
* html/track/TextTrackRegionList.h: Removed.
* html/track/TextTrackRegionList.idl: Removed.
* html/track/VTTCue.cpp:
(WebCore::VTTCue::removeDisplayTree):
* html/track/VTTRegion.cpp: Copied from Source/WebCore/html/track/TextTrackRegion.cpp.
(WebCore::VTTRegion::VTTRegion):
(WebCore::VTTRegion::~VTTRegion):
(WebCore::VTTRegion::setTrack):
(WebCore::VTTRegion::setId):
(WebCore::VTTRegion::setWidth):
(WebCore::VTTRegion::setHeight):
(WebCore::VTTRegion::setRegionAnchorX):
(WebCore::VTTRegion::setRegionAnchorY):
(WebCore::VTTRegion::setViewportAnchorX):
(WebCore::VTTRegion::setViewportAnchorY):
(WebCore::VTTRegion::scroll):
(WebCore::VTTRegion::setScroll):
(WebCore::VTTRegion::updateParametersFromRegion):
(WebCore::VTTRegion::setRegionSettings):
(WebCore::VTTRegion::getSettingFromString):
(WebCore::VTTRegion::parseSettingValue):
(WebCore::VTTRegion::parseSetting):
(WebCore::VTTRegion::textTrackCueContainerScrollingClass):
(WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
(WebCore::VTTRegion::textTrackRegionShadowPseudoId):
(WebCore::VTTRegion::appendTextTrackCueBox):
(WebCore::VTTRegion::displayLastTextTrackCueBox):
(WebCore::VTTRegion::willRemoveTextTrackCueBox):
(WebCore::VTTRegion::getDisplayTree):
(WebCore::VTTRegion::prepareRegionDisplayTree):
(WebCore::VTTRegion::startTimer):
(WebCore::VTTRegion::stopTimer):
(WebCore::VTTRegion::scrollTimerFired):
* html/track/VTTRegion.h: Copied from Source/WebCore/html/track/TextTrackRegion.h.
(WebCore::VTTRegion::create):
* html/track/VTTRegion.idl: Copied from Source/WebCore/html/track/TextTrackRegion.idl.
* html/track/VTTRegionList.cpp: Copied from Source/WebCore/html/track/TextTrackRegionList.cpp.
(WebCore::VTTRegionList::VTTRegionList):
(WebCore::VTTRegionList::length):
(WebCore::VTTRegionList::item):
(WebCore::VTTRegionList::getRegionById):
(WebCore::VTTRegionList::add):
(WebCore::VTTRegionList::remove):
(WebCore::VTTRegionList::clear):
* html/track/VTTRegionList.h: Copied from Source/WebCore/html/track/TextTrackRegionList.h.
(WebCore::VTTRegionList::create):
(WebCore::VTTRegionList::~VTTRegionList):
* html/track/VTTRegionList.idl: Copied from Source/WebCore/html/track/TextTrackRegionList.idl.
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseFloatPercentageValue):
(WebCore::WebVTTParser::getNewRegions):
(WebCore::WebVTTParser::createNewRegion):
* html/track/WebVTTParser.h:
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewRegions):
* loader/TextTrackLoader.h:
2014-03-20 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build.
* page/FrameView.cpp:
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):
2014-03-20 Hans Muller <hmuller@adobe.com>
[CSS Shapes] clamp RasterShape shapeMargin to reference box size
https://bugs.webkit.org/show_bug.cgi?id=130350
Reviewed by Dean Jackson.
Corrected the way the maximum shape-margin value was computed for image valued
shapes. The limiting case is an image with just one above threshold pixel. The
largest possible value for shapeMargin is the radius of a circle that encloses
the size of the shape-outside element's margin-box, since the shape-outside's
boundary is clipped to the margin-box. The radius is just sqrt(2) * the margin-box's
largest dimension.
Also cleaned up up a few poorly named parameters.
Test: fast/shapes/shape-outside-floats/shape-outside-one-pixel.html
* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShape::marginIntervals):
* rendering/shapes/RasterShape.h:
(WebCore::RasterShape::RasterShape):
* rendering/shapes/Shape.h:
2014-03-20 Beth Dakin <bdakin@apple.com>
Build fix.
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
2014-03-20 Beth Dakin <bdakin@apple.com>
Implement contentInset for Mac WebKit2
https://bugs.webkit.org/show_bug.cgi?id=130273
Reviewed by Simon Fraser.
This patch adds support for topContentInset(). If a page has a topContentInset(),
the root layer’s position is adjusted to account for the inset. It is assumed that
the area accounted for by the inset is visible but obscured, so scrollbars need to
be moved so that they only cover the non-obscured area, and most parts of WebCore
that wonder about visibleContentSize only care about the unobscured area, so this
patch makes that visibleContentRect return the unobscuredRect. Finally since this
is achieved by moving a layer’s position, the topContentInset() also needs to be
factored into various functions that are used to convert between coordinate
spaces.
Return Page::topContentInset() if this is the main frame.
* page/FrameView.cpp:
(WebCore::FrameView::topContentInset):
* page/FrameView.h:
Cache the inset on Page.
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::topContentInset):
(WebCore::Page::setTopContentInset):
unobscuredContentRect() used to unconditionally return visibleContentRect() on
non-iOS platforms. Now that it is possible for some technically visible content to
be obscured, this code needed to be re-worked a bit to make some more sense.
visibleContentRect() now represents that visible content that is completely
unobscured, so it should call into unobscuredContentRect() rather than the other
way around.
* platform/ScrollView.cpp:
(WebCore::ScrollView::unobscuredContentRect):
unscaledTotalVisibleContentSize() includes the size of all content that might be
visible. Some of this content might be obscured.
(WebCore::ScrollView::unscaledTotalVisibleContentSize):
Most of the time, we only care about the content that is FULLY visible. That is
what you get from unscaledUnobscuredVisibleContentSize().
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):
Use the unobscured size for these computations.
(WebCore::ScrollView::visibleContentRectInternal):
(WebCore::ScrollView::layoutSize):
Factor in the topContentInset().
(WebCore::ScrollView::scrollOffsetRelativeToDocument):
(WebCore::ScrollView::scrollPositionRelativeToDocument):
The scrollbars should be positioned to cover the non-obscured content only.
(WebCore::ScrollView::updateScrollbars):
Again, factor the topContentInset() into these conversions since the root layer’s
position has been adjusted to account for it.
(WebCore::ScrollView::contentsToRootView):
(WebCore::ScrollView::contentsToWindow):
Just like the scrollbars, the scroll corner must be moved the account for the
inset.
(WebCore::ScrollView::scrollCornerRect):
* platform/ScrollView.h:
(WebCore::ScrollView::topContentInset):
RenderLayerCompositor cares about unscaledTotalVisibleContentSize(). It does not
care if some of that content is obscured.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::frameViewDidChangeSize):
Move the root layer’s position based on the contentInset.
(WebCore::RenderLayerCompositor::updateRootLayerPosition):
(WebCore::RenderLayerCompositor::ensureRootLayer):
Allow setting contentInset via Internals for testing purposes.
* testing/Internals.cpp:
(WebCore::Internals::setTopContentInset):
* testing/Internals.h:
* testing/Internals.idl:
2014-03-20 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Optimize RenderTable::colToEffCol() for tables without colspans
https://bugs.webkit.org/show_bug.cgi?id=129298
Reviewed by Simon Fraser.
Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
when there is no colspan or colspan does not exceed the width of table.
Blink merge https://codereview.chromium.org/154243002 by rhogan
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable):
(WebCore::RenderTable::appendColumn):
(WebCore::RenderTable::recalcSections):
* rendering/RenderTable.h:
(WebCore::RenderTable::colToEffCol):
(WebCore::RenderTable::effColToCol):
(WebCore::RenderTable::hasCellColspanThatDeterminesTableWidth):
2014-03-20 Simon Fraser <simon.fraser@apple.com>
FrameView::paintContents() is not called for composited content
https://bugs.webkit.org/show_bug.cgi?id=130541
Reviewed by Beth Dakin.
FrameView::paintContents() is not called for frames that have
composited contents, yet it contains code that is expected
to run for all Frames.
Fix by factoring into will/didPaintContents(), and calling
the will/did functions from RenderLayerBacking::paintIntoLayer().
Also add a SetLayoutNeededForbiddenScope check for composited-layer
painting.
* page/FrameView.cpp:
(WebCore::FrameView::updateControlTints):
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):
(WebCore::FrameView::paintContents):
* page/FrameView.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
2014-03-20 Tim Horton <timothy_horton@apple.com>
Fix the Mountain Lion build.
* platform/graphics/cocoa/IOSurface.mm:
(IOSurface::setIsPurgeable):
2014-03-20 Brian Burg <bburg@apple.com>
Web Replay: capture and replay mouse events
https://bugs.webkit.org/show_bug.cgi?id=129395
Reviewed by Joseph Pecoraro.
Add support for capturing and replaying mouse inputs that come from WebKit2.
Hook up the UserInputBridge to session state changes in the ReplayController so
that the bridge knows when to capture or deny mouse inputs.
Test: ManualTests/inspector/replay-mouse-events.html
* platform/PlatformEvent.h: Give explicit storage types to Modifiers and Type enums
so they can be forward-declared.
* platform/PlatformMouseEvent.h: Give an explicit storage type to enum MouseButton.
Add operator== and operator!= for MouseButton to work around an MSVC bug.
* replay/ReplayController.cpp: Perform session state changes in a helper function, and
at the same time change the state of the page's user input bridge.
(WebCore::ReplayController::setSessionState):
(WebCore::ReplayController::startCapturing):
(WebCore::ReplayController::stopCapturing):
(WebCore::ReplayController::startPlayback):
(WebCore::ReplayController::cancelPlayback):
* replay/ReplayInputDispatchMethods.cpp: Add dispatch methods for new inputs.
(WebCore::HandleMouseMove::dispatch):
(WebCore::HandleMousePress::dispatch):
(WebCore::HandleMouseRelease::dispatch):
* replay/SerializationMethods.cpp: Add helper macros so that encode/decode methods look
symmetric with one data member per line. This helps reduce unintentional inconsistencies.
(JSC::EncodingTraits<PlatformMouseEvent>::encodeValue): Added.
(JSC::EncodingTraits<PlatformMouseEvent>::decodeValue): Added.
* replay/SerializationMethods.h:
* replay/UserInputBridge.cpp: Fill in the bridge method implementations for mouse
events, adding helpers and macros as necessary to reduce boilerplate.
(WebCore::UserInputBridge::activeCursor): Added.
(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
* replay/UserInputBridge.h: Add a bridge state enum along with getters and setters.
The enum value controls whether the bridge should capture commands, deny non-synthetic
commands (from the user), or allow anything to pass (the default).
(WebCore::UserInputBridge::setState): Added.
(WebCore::UserInputBridge::state): Added.
* replay/WebInputs.json: Add inputs HandleMouseMove, HandleMousePress, HandleMouseRelease.
Add enum definitions for PlatformEvent::Type, PlatformEvent::Modifiers, and PlatformMouseEvent::MouseButton.
Alphabetize the existing data type definitions.
2014-03-20 Tim Horton <timothy_horton@apple.com>
Add WebCore::IOSurface wrapper
https://bugs.webkit.org/show_bug.cgi?id=130529
Reviewed by Simon Fraser.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/cg/ColorCG.cpp:
* platform/graphics/cg/GraphicsContextCG.h:
(WebCore::cachedCGColorSpace):
Move cachedCGColorSpace out so that other clients of GraphicsContextCG
can use its mapping from WebCore::ColorSpace -> CGColorSpaceRef.
* platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
* platform/graphics/cg/ImageBufferCG.cpp:
Add FIXMEs for ImageBuffer to adopt WebCore::IOSurface.
* platform/graphics/cocoa/IOSurface.h: Added.
* platform/graphics/cocoa/IOSurface.mm: Added.
(IOSurface::create):
(IOSurface::createFromMachPort):
(IOSurface::createFromSurface):
(IOSurface::IOSurface):
(IOSurface::maximumSize):
(IOSurface::createMachPort):
(IOSurface::createImage):
(IOSurface::ensurePlatformContext):
(IOSurface::ensureGraphicsContext):
(IOSurface::state):
(IOSurface::isPurgeable):
(IOSurface::setIsPurgeable):
(IOSurface::inUse):
Add WebCore::IOSurface.
2014-03-20 Pratik Solanki <psolanki@apple.com>
iOS build fix after r165992.
* generate-export-file:
(preprocessorMacros):
2014-03-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Moving RTCConfiguration and RTCIceServer to Modules/mediastream
https://bugs.webkit.org/show_bug.cgi?id=130434
Reviewed by Eric Carlson.
Those classes are defined in WebRTC spec, so they should not be in platform layer.
Adding a platform implementation to be passed to handler classes.
* Modules/mediastream/RTCConfiguration.h: Copied from Source/WebCore/platform/mediastream/RTCConfiguration.h.
* Modules/mediastream/RTCIceServer.h: Copied from Source/WebCore/platform/mediastream/RTCIceServer.h.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::updateIce):
* WebCore.xcodeproj/project.pbxproj:
* platform/mediastream/RTCConfigurationPrivate.h: Added.
* platform/mediastream/RTCIceServerPrivate.h: Added.
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::initialize):
(WebCore::RTCPeerConnectionHandlerMock::updateIce):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2014-03-20 Alex Christensen <achristensen@webkit.org>
[WinCairo] Unreviewed speculative build after my r165996.
* platform/network/soup/AuthenticationChallengeSoup.cpp:
* platform/network/soup/CertificateInfo.cpp:
* platform/network/soup/CookieJarSoup.cpp:
* platform/network/soup/ResourceRequestSoup.cpp:
* platform/network/soup/ResourceResponseSoup.cpp:
* platform/network/soup/SynchronousLoaderClientSoup.cpp:
2014-03-20 Brent Fulgham <bfulgham@apple.com>
Add a flushing mechanism for the WebVTTParser
https://bugs.webkit.org/show_bug.cgi?id=130532
Reviewed by Eric Carlson.
Merged from Blink (patch by vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/1ac2b3081492ab8661429230004013a9a3623f0f
http://crbug.com/54203003
https://chromium.googlesource.com/chromium/blink/+/24343d32bc36d20d59ef3e10040faddde65929e6
http://crbug.com/59453002
https://chromium.googlesource.com/chromium/blink/+/ef2793f1d9d207389589ecf9a136ea5c7170b4af
http://crbug.com/75233002
https://chromium.googlesource.com/chromium/blink/+/a29f2f8324abcd4826b41e7dc34373dee2ec57a9
http://crbug.com/52713005
https://chromium.googlesource.com/chromium/blink/+/7ce003c8d47b39f116f1f2a592a5dfb4a9e77228
http://crbug.com/64303004
https://chromium.googlesource.com/chromium/blink/+/18f896b3498478311e880f782813d5dfc8c0c7d1
http://crbug.com/96933004
https://chromium.googlesource.com/chromium/blink/+/8670e8ecb13254a651f5493ec83f4484d18c154e
http://crbug.com/98783005
https://chromium.googlesource.com/chromium/blink/+/4ac55780a6af3d76e0159c1d145330964ad56647
http://crbug.com/104713002
Tests: http/tests/media/track/track-webvtt-slow-loading-2.html
http/tests/media/track/track-webvtt-slow-loading.html
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/track/BufferedLineReader.cpp: Added.
* html/track/BufferedLineReader.h: Added.
* html/track/TextTrackRegion.cpp:
* html/track/VTTCue.cpp:
* html/track/WebVTTParser.cpp:
* html/track/WebVTTParser.h:
* loader/TextTrackLoader.cpp:
2014-03-20 Alex Christensen <achristensen@webkit.org>
Preparation for using Soup on Windows.
https://bugs.webkit.org/show_bug.cgi?id=130472
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Added Soup source to build on WinCairo.
* platform/network/curl/CookieJarCurl.cpp:
* platform/network/curl/CredentialStorageCurl.cpp:
* platform/network/curl/CurlCacheEntry.cpp:
* platform/network/curl/CurlCacheManager.cpp:
* platform/network/curl/CurlDownload.cpp:
* platform/network/curl/DNSCurl.cpp:
* platform/network/curl/FormDataStreamCurl.cpp:
* platform/network/curl/MultipartHandle.cpp:
* platform/network/curl/ProxyServerCurl.cpp:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/curl/ResourceHandleManager.cpp:
* platform/network/curl/SSLHandle.cpp:
* platform/network/curl/SocketStreamHandleCurl.cpp:
Protected with USE(CURL) to avoid duplicate symbols when linking.
* platform/network/soup/AuthenticationChallengeSoup.cpp:
* platform/network/soup/CertificateInfo.cpp:
* platform/network/soup/CookieJarSoup.cpp:
* platform/network/soup/CookieStorageSoup.cpp:
* platform/network/soup/CredentialStorageSoup.cpp:
* platform/network/soup/DNSSoup.cpp:
* platform/network/soup/NetworkStorageSessionSoup.cpp:
* platform/network/soup/ProxyResolverSoup.cpp:
* platform/network/soup/ProxyServerSoup.cpp:
* platform/network/soup/ResourceErrorSoup.cpp:
* platform/network/soup/ResourceHandleSoup.cpp:
* platform/network/soup/ResourceRequestSoup.cpp:
* platform/network/soup/ResourceResponseSoup.cpp:
* platform/network/soup/SocketStreamHandleSoup.cpp:
* platform/network/soup/SoupNetworkSession.cpp:
* platform/network/soup/SynchronousLoaderClientSoup.cpp:
Protected with USE(CURL) to avoid duplicate symbols when linking.
2014-03-20 Pratik Solanki <psolanki@apple.com>
iOS build fix after r165979.
* generate-export-file:
(preprocessorMacros):
2014-03-20 David Hyatt <hyatt@apple.com>
[New Multicolumn] getClientRects returns wrong rectangle
https://bugs.webkit.org/show_bug.cgi?id=128614
Reviewed by Sam Weinig.
Added fast/multicol/newmulticol/client-rects.html and beefed up existing
fast/multicol/client-rects.html to use more writing modes.
* rendering/LayoutState.h:
Removed unused function.
* rendering/RenderFlowThread.h:
Make mapFlowToRegion virtual so that RenderMultiColumnFlowThread can
override it.
* rendering/RenderMultiColumnFlowThread.cpp:
(WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
* rendering/RenderMultiColumnFlowThread.h:
Implement mapFlowToRegion to correctly translate a flow thread position
into a column offset within a region.
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
Refactored some code to make a columnTranslationForOffset helper that
can be used by RenderMultiColumnFlowThread.
2014-03-20 Daniel Bates <dabates@apple.com>
Preserve original document URL for XSSAuditor reports
Merged from Blink (patch by Tom Sepez):
https://src.chromium.org/viewvc/blink?view=rev&revision=158406
Test: http/tests/security/xssAuditor/report-script-tag-replace-state.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
* html/parser/XSSAuditorDelegate.cpp:
(WebCore::buildConsoleError):
(WebCore::XSSAuditorDelegate::generateViolationReport):
(WebCore::XSSAuditorDelegate::didBlockScript):
* html/parser/XSSAuditorDelegate.h:
(WebCore::XSSInfo::XSSInfo):
2014-03-20 Daniel Bates <dabates@apple.com>
XSSAuditor bypass with frameset tags
Merged from Blink (patch by Tom Sepez):
https://src.chromium.org/viewvc/blink?view=rev&revision=157794
Test: http/tests/security/xssAuditor/frameset-injection.html
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterStartToken):
(WebCore::XSSAuditor::filterFrameToken):
* html/parser/XSSAuditor.h:
2014-03-20 Brian Burg <bburg@apple.com>
Web Replay: fix some oversights in the replay backend
https://bugs.webkit.org/show_bug.cgi?id=130435
Reviewed by Andreas Kling.
This functionality will be covered by tests in https://webkit.org/b/130145.
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::playbackFinishedImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::playbackFinished):
* inspector/InspectorReplayAgent.cpp:
(WebCore::buildInspectorObjectForSegment):
(WebCore::InspectorReplayAgent::playbackFinished):
* inspector/InspectorReplayAgent.h: Add a playbackFinished event to Inspector
instrumentation. This is fired by ReplayController when playback is cancelled or
playback of the final segment has completed.
* replay/EventLoopInputDispatcher.cpp:
(WebCore::EventLoopInputDispatcher::dispatchInputSoon): Fix wrong cast.
(WebCore::EventLoopInputDispatcher::dispatchInput): Ensure that m_dispatching is
false when m_running is false.
* replay/EventLoopInputDispatcher.h: Distinguish 'dispaching' and 'running' in comments.
(WebCore::EventLoopInputDispatcher::isRunning): Added.
* replay/FunctorInputCursor.h: Since the base class InputCursor is RefCounted, the
Functor subclass cannot be put into a unique_ptr. Add create() method instead.
* replay/ReplayController.cpp:
(WebCore::ReplayController::loadSegmentAtIndex): Renamed from loadSegment(). Callers
now pass in the desired segment index rather than the segment itself. The index is
necessary to properly reset m_position after the segment is loaded.
(WebCore::ReplayController::startPlayback): Set the dispatcher's speed before run().
(WebCore::ReplayController::pausePlayback): Only pause the dispatcher if it's running.
(WebCore::ReplayController::cancelPlayback): Add playbackFinished instrumentation.
(WebCore::ReplayController::replayToPosition):
(WebCore::ReplayController::didDispatchFinalInput): If there are no more segments to load,
manually adjust the final m_position and defer to cancelPlayback to unload the segment.
* replay/ReplayController.h:
* replay/ReplaySessionSegment.cpp:
(WebCore::ReplaySessionSegment::createFunctorCursor):
* replay/ReplaySessionSegment.h:
2014-03-20 Pratik Solanki <psolanki@apple.com>
[iOS] Get code to compile on older iOS versions
https://bugs.webkit.org/show_bug.cgi?id=130142
<rdar://problem/16302908>
Reviewed by Darin Adler.
* WebCore.exp.in:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController WebCore::]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/mac/HTMLConverter.mm:
(_dateForString):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
* platform/text/ios/LocalizedDateCache.mm:
(WebCore::LocalizedDateCache::calculateMaximumWidth):
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::LocaleMac):
2014-03-20 Simon Fraser <simon.fraser@apple.com>
Followup build fix: AnimationBase.h needs to be private because
it's included by AnimationController.h.
* WebCore.xcodeproj/project.pbxproj:
2014-03-20 Simon Fraser <simon.fraser@apple.com>
A completed fill-forwards animation should not disable overlap testing
https://bugs.webkit.org/show_bug.cgi?id=130522
<rdar://problem/15862395>
Reviewed by Dean Jackson.
Previously, if -webkit-transform was being keyframe-animated, and the
animation had fill-forwards, then we would continue to think that the
animation is running and turn off compositing overlap testing. This
caused some sites to keep too much backing store around.
Fix by having isRunning{Accelerated}AnimationOnRenderer take some flags
so that more specific questions about the running state can be asked.
For layer creation, keep using the same criteria as before (for now)
which includes paused and fill-forwards animations. For overlap testing,
don't include the fill-forwards test.
Tests: compositing/animation/filling-animation-overlap-at-end.html
compositing/animation/filling-animation-overlap.html
compositing/animation/layer-for-filling-animation.html
* page/animation/AnimationBase.h:
(WebCore::AnimationBase::fillingForwards):
(WebCore::AnimationBase::inPausedState):
(WebCore::AnimationBase::isAnimatingProperty):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::isRunningAnimationOnRenderer):
(WebCore::AnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
(WebCore::AnimationController::isRunningAnimationOnRenderer):
(WebCore::AnimationController::isRunningAcceleratedAnimationOnRenderer):
* page/animation/AnimationController.h:
* page/animation/AnimationControllerPrivate.h:
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::isAnimatingProperty):
* page/animation/CompositeAnimation.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
(WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation):
2014-03-20 Dirk Schulze <krit@webkit.org>
Canvas methods clip/fill/stroke should not except 0 argument
https://bugs.webkit.org/show_bug.cgi?id=130497
Reviewed by Dean Jackson.
Do not allow nullable argument for fill/stroke/clip.
No new tests. Updated existing tests.
* html/canvas/CanvasRenderingContext2D.idl:
2014-03-20 Eric Carlson <eric.carlson@apple.com>
[iOS] Support MediaDocument when building with PLUGIN_PROXY_FOR_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=130520
Reviewed by Jer Noble.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Check the isVideoPluginProxyEnabled setting
when building with ENABLE_PLUGIN_PROXY_FOR_VIDEO.
2014-03-20 Mihai Tica <mitica@adobe.com>
[CSS Blending] Blending operation is not isolated when setting z-index on parent from javascript
https://bugs.webkit.org/show_bug.cgi?id=129307
Reviewed by Dean Jackson.
Reimplement the logic behind isolating blend modes. The blending operation should be limited to the
contents of the parent stacking context. The proposed solution implies adding logic in updateDescendantDependentFlags,
to track child elements that have blending and create a transparency layer that triggers isolation.
Tests: css3/compositing/blend-mode-background.html
fast/repaint/blend-mode-isolate-stacking-context.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer): Remove old members, add new members to constructor.
(WebCore::RenderLayer::updateBlendMode): Update parent stacking context isolation on blend mode change.
(WebCore::RenderLayer::updateNonCompositedParentStackingContextHasBlendedChild):
- Set m_hasBlendedElementInChildStackingContext for the non composited parent stacking context.
(WebCore::RenderLayer::dirtyAncestorParentStackingContextHasBlendedElement):
- Set flag so isolation should be considered in updateDescendantDependentFlags.
(WebCore::RenderLayer::nonCompositedParentStackingContextHasBlendedChild):
- Return whether the non composited parent stacking context isolates blending.
(WebCore::RenderLayer::updateDescendantDependentFlags): Add logic for isolating blending.
(WebCore::RenderLayer::addChild): Call to updateNonCompositedParentStackingContextHasBlendedChild if needed.
(WebCore::RenderLayer::removeChild): Call to dirtyAncestorParentStackingContextHasBlendedElement if needed.
(WebCore::RenderLayer::updateStackingContextsAfterStyleChange): Update isolation when a stacking context was set or unset.
(WebCore::RenderLayer::styleChanged): Removed oldStyle parameter from updateBlendMode call.
Update parent stacking context isolation on blend mode change.
* rendering/RenderLayer.h:
- Add members, getters and setters for tracking whether the element has a blended child:
- m_hasBlendedElementInChildStackingContext
- m_hasBlendedElementInChildStackingContextStatusDirty
- Removed m_updateParentStackingContextShouldIsolateBlendingDirty (replaced with m_hasBlendedElementInChildStackingContextStatusDirty)
- Removed m_isolatesBlending (replaced with m_hasBlendedElementInChildStackingContext)
- Updated the isolatesBlending method to return true only when the element is a stacking context and has a blended child.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Removed layer.updateParentStackingContextShouldIsolateBlending call.
2014-03-20 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Do not compile ProxyResolverSoup.cpp
https://bugs.webkit.org/show_bug.cgi?id=130516
Reviewed by Sergio Villar Senin.
* PlatformGTK.cmake: Remove the file from the source list.
2014-03-20 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165962.
https://bugs.webkit.org/show_bug.cgi?id=130512
It broke the build (Requested by Ossy on #webkit).
Reverted changeset:
"[EFL][GTK] Get CMake to find Freetype2 properly"
https://bugs.webkit.org/show_bug.cgi?id=130150
http://trac.webkit.org/changeset/165962
2014-03-20 Lorenzo Tilve <ltilve@igalia.com>
"input" event is not fired when changing a select element's value
https://bugs.webkit.org/show_bug.cgi?id=117526
Reviewed by Antti Koivisto.
Add a call to dispatch input event when listbox or menulist
values are modified.
According to the spec: "When the user agent is to send select update
notifications, queue a task to first fire a simple even that bubbles
named input at the select element, and then fire a simple event that
bubbles named change at the select element, using the user interaction
task source as the task source."
Tests: fast/forms/select/listbox-oninput-fired.html
fast/forms/select/menulist-oninput-fired.html
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxOnChange):
(WebCore::HTMLSelectElement::dispatchChangeEventForMenuList):
2014-03-20 Radu Stavila <stavila@adobe.com>
[CSS Regions] The height of a scrollable element flowed inside a scrollable region is not computed correctly
https://bugs.webkit.org/show_bug.cgi?id=129487
Reviewed by Andrei Bucur.
When propagating the layout overflow from the flowed element up to the flow thread itself,
the region's logical bottom padding and the element's logical bottom margin must be taken into consideration.
However, if the flowed element has overflow, the overflow will be painted over the region's padding
and the element's margin, in order to be compatible with the non-regions case.
More info can be found here: http://lists.w3.org/Archives/Public/www-style/2014Jan/0089.html
Tests: fast/regions/scrollable-region-content-size-horiz-bt.html
fast/regions/scrollable-region-content-size-no-overflow-horiz-bt.html
fast/regions/scrollable-region-content-size-no-overflow-vert-rl.html
fast/regions/scrollable-region-content-size-no-overflow.html
fast/regions/scrollable-region-content-size-relative.html
fast/regions/scrollable-region-content-size-vert-rl.html
fast/regions/scrollable-region-content-size-vertical-lr.html
fast/regions/scrollable-region-content-size.html
fast/regions/scrollable-region-scrollable-content.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::rectFlowPortionForBox):
2014-03-20 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=130153
Reviewed by Simon Fraser.
Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
need to be propagated through the layer tree so that painting coordinates match layout coordinates.
Subpixel accumulation through nesting (absolute positioning, 2x display):
non-compositing case:
(nested boxes) (layout pos) (norm.paint pos) (translate accumulation, subpixel accumulation, final paint pos)
div -> top: 1.3px 1.3px 1.5px 1.5px 0.2px -> snapped 0.0px -> 1.5px
div -> top: 1.3px 2.6px 2.5px 3.0px 0.4px -> snapped 0.5px -> 2.5px
div -> top: 1.3px 3.9px 4.0px 4.5px 0.6px -> snapped 0.5px -> 4.0px
div -> top: 1.3px 5.2px 5.0px 6.0px 0.8px -> snapped 1.0px -> 5.0px
compositing case:
(nested boxes) (layout pos) (norm.paint pos) (device pixel offset + fractional offset, final pos)
div -> top: 1.3px 1.3px 1.5px 1.0px + 0.3px -> snapped -> 1.5px
div -> top: 1.3px 2.6px 2.5px 2.5px + 0.1px -> snapped -> 2.5px
div -> top: 1.3px 3.9px 4.0px 3.5px + 0.4px -> snapped -> 4.0px
div -> top: 1.3px 5.2px 5.0px 5.0px + 0.2px -> snapped -> 5.0px
Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerByApplyingTransform):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):
2014-03-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[EFL][GTK] Get CMake to find Freetype2 properly
https://bugs.webkit.org/show_bug.cgi?id=130150
Reviewed by Csaba Osztrogonác.
Newer versions of CMake are not able to find Freetype2 correctly.
FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
freetype2 repo, because a completely different version number is found in freetype2.pc.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
2014-03-20 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Refactor checking log channel state in MediaPlayerPrivateGStreamerBase.
https://bugs.webkit.org/show_bug.cgi?id=130241
Reviewed by Philippe Normand.
The channel was passed around only to check its state. Cleaned this up
by adding a method to check whether a log channel is enabled.
* platform/Logging.cpp:
(WebCore::isLogChannelEnabled):
* platform/Logging.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
2014-03-20 Lorenzo Tilve <ltilve@igalia.com>
Dispatch input event for Range element keyboard event
https://bugs.webkit.org/show_bug.cgi?id=129929
Reviewed by Kent Tamura.
For any value update, dispatch both input and change event.
Also removes extra dispatch change event, as event is dispatched
from TextFieldInputType:setValue.
Merged from Blink (patch by Habib Virji):
https://src.chromium.org/viewvc/blink?revision=168558&view=revision
Test: fast/forms/range/range-keyboard-oninput-event.html
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
2014-03-20 Jinwoo Song <jinwoo7.song@samsung.com>
Refine BatteryStatus module
https://bugs.webkit.org/show_bug.cgi?id=130495
Reviewed by Andreas Kling.
Small refinements:
- Return PassRef instead of PassRefPtr in create method
- Switched to nullptr instead of 0 where appropriate.
- Removed unused function and header file.
- Removed unnecessary empty lines.
* Modules/battery/BatteryController.h:
* Modules/battery/BatteryManager.cpp:
(WebCore::BatteryManager::create): Make return passRef.
* Modules/battery/BatteryManager.h:
(WebCore::BatteryManager::batteryControllerDestroyed): Use nullptr.
* Modules/battery/BatteryStatus.cpp:
(WebCore::BatteryStatus::create): Make return passRef.
* Modules/battery/BatteryStatus.h:
* Modules/battery/NavigatorBattery.cpp:
(WebCore::NavigatorBattery::webkitBattery): Remove batteryManager().
* Modules/battery/NavigatorBattery.h:
2014-03-19 Pratik Solanki <psolanki@apple.com>
[iOS] Get code to compile on older iOS versions
https://bugs.webkit.org/show_bug.cgi?id=130142
<rdar://problem/16302908>
Reviewed by Darin Adler.
* WebCore.exp.in:
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(-[WebVideoFullscreenController WebCore::]):
(-[WebVideoFullscreenController enterFullscreen:]):
(-[WebVideoFullscreenController exitFullscreen]):
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
* platform/mac/HTMLConverter.mm:
(_dateForString):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::copyCookiesForURLWithFirstPartyURL):
* platform/text/ios/LocalizedDateCache.mm:
(WebCore::LocalizedDateCache::calculateMaximumWidth):
* platform/text/mac/LocaleMac.mm:
(WebCore::LocaleMac::LocaleMac):
2014-03-19 Byungseon Shin <sun.shin@lge.com>
Fix "WEBKIT_WEBGL_compressed_texture_pvrtc" extension support
https://bugs.webkit.org/show_bug.cgi?id=130292
Reviewed by Dean Jackson.
WebGLRenderingContext::getExtension was not returning WEBGL_compressed_texture_pvrtc extension.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
2014-03-19 Brent Fulgham <bfulgham@apple.com>
Merge Misc. WebVTT Updates from Blink.
https://bugs.webkit.org/show_bug.cgi?id=130491
Reviewed by Eric Carlson.
Test: media/track/track-webvtt-tc030-interspersed-non-cue.html
Merged from Blink (patch by vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/fb62b2b54944bd19026192c049a1db250756fc12
http://crbug.com/40323003
https://chromium.googlesource.com/chromium/blink/+/29176fb0b394a97e85f4dabc07e18329f3ceae41
http://crbug.com/54463002
https://chromium.googlesource.com/chromium/blink/+/29476f839a08cb17c5a3fc713f7e454e7cea9c60
http://crbug.com/55853002
https://chromium.googlesource.com/chromium/blink/+/ba2378ef873e786cf2937034e012669cdd37dfe8
http://crbug.com/65343003
https://chromium.googlesource.com/chromium/blink/+/1915b9aa1bba45aebf28531b40ae627ecf9a3d59
http://crbug.com/62833005
https://chromium.googlesource.com/chromium/blink/+/ea46dbd0f1f29779a1cd4f59b19361b803f09a9b
http://crbug.com/64273013
https://chromium.googlesource.com/chromium/blink/+/9eb4bb6b627357bb94d66386a4123ec004cccfc4
http://crbug.com/101513002
https://chromium.googlesource.com/chromium/blink/+/192a843b32eafb77bf92c50ec50d334ba935028a
http://crbug.com/102403002
https://chromium.googlesource.com/chromium/blink/+/15f9efcc952fcf73184e28fb9db79633c1fa6653
http://crbug.com/104443002
https://chromium.googlesource.com/chromium/blink/+/74fd66b451a464683f7cb748855b1740a54b2c16
http://crbug.com/75243004
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::parseSettingValue):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::markFutureAndPastNodes):
(WebCore::VTTCue::setCueSettings):
* html/track/WebVTTParser.cpp:
(WebCore::scanDigits):
(WebCore::WebVTTParser::collectDigitsToInt):
(WebCore::WebVTTParser::parseFloatPercentageValue):
(WebCore::WebVTTParser::parseBytes):
(WebCore::WebVTTParser::collectMetadataHeader):
(WebCore::WebVTTParser::collectTimingsAndSettings):
(WebCore::WebVTTParser::createDocumentFragmentFromCueText):
(WebCore::WebVTTParser::createNewCue):
(WebCore::WebVTTParser::createNewRegion):
(WebCore::WebVTTParser::collectTimeStamp):
(WebCore::tokenToNodeType):
(WebCore::WebVTTParser::constructTreeFromToken):
* html/track/WebVTTParser.h:
* html/track/WebVTTToken.h:
(WebCore::WebVTTToken::name):
(WebCore::WebVTTToken::characters):
(WebCore::WebVTTToken::appendToCharacter):
(WebCore::WebVTTToken::addNewClass):
(WebCore::WebVTTToken::classes):
(WebCore::WebVTTToken::addNewAnnotation):
(WebCore::WebVTTToken::annotation):
* html/track/WebVTTTokenizer.cpp:
(WebCore::equalLiteral):
(WebCore::WebVTTTokenizer::WebVTTTokenizer):
(WebCore::WebVTTTokenizer::nextToken):
* html/track/WebVTTTokenizer.h:
2014-03-19 Mark Hahnenberg <mhahnenberg@apple.com>
GC timer should intelligently choose between EdenCollections and FullCollections
https://bugs.webkit.org/show_bug.cgi?id=128261
Reviewed by Geoffrey Garen.
No new tests.
Updated WebSafeGCActivityCallbacks for both Eden and Full timers.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
* platform/ios/WebSafeGCActivityCallbackIOS.h:
2014-03-19 Andy Estes <aestes@apple.com>
Fix the iOS build after r165917.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
2014-03-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165926.
https://bugs.webkit.org/show_bug.cgi?id=130488
broke the iOS build (Requested by estes on #webkit).
Reverted changeset:
"GC timer should intelligently choose between EdenCollections
and FullCollections"
https://bugs.webkit.org/show_bug.cgi?id=128261
http://trac.webkit.org/changeset/165926
2014-03-19 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165929.
https://bugs.webkit.org/show_bug.cgi?id=130487
in order to roll out r165926 (Requested by estes on #webkit).
Reverted changeset:
http://trac.webkit.org/changeset/165929
2014-03-19 Mark Hahnenberg <mhahnenberg@apple.com>
Build fix for iOS after r165926
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
* platform/ios/WebSafeGCActivityCallbackIOS.h:
2014-03-19 Eric Carlson <eric.carlson@apple.com>
Allow media engine to update HTMLMediaElement state when playing to external device
https://bugs.webkit.org/show_bug.cgi?id=130480
Reviewed by Jer Noble.
* html/HTMLMediaElement.h: Add mediaPlayerHandlePlaybackCommand.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::handlePlaybackCommand): New.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Send Play and Pause commands when
playing to an external device.
2014-03-19 Dirk Schulze <krit@webkit.org>
Implement isPointInPath and isPointInStroke with Path2D argument
https://bugs.webkit.org/show_bug.cgi?id=130473
Reviewed by Dean Jackson.
Implement isPointInPath and isPointInStroke for 2D Canvas contxts
with Path2D argument.
Tests: fast/canvas/canvas-path-isPointInPath.html
fast/canvas/canvas-path-isPointInStroke.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::isPointInPath):
(WebCore::CanvasRenderingContext2D::isPointInStroke):
(WebCore::CanvasRenderingContext2D::isPointInPathInternal):
(WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:
2014-03-13 Mark Hahnenberg <mhahnenberg@apple.com>
GC timer should intelligently choose between EdenCollections and FullCollections
https://bugs.webkit.org/show_bug.cgi?id=128261
Reviewed by Geoffrey Garen.
No new tests.
* platform/ios/WebSafeGCActivityCallbackIOS.h: Update WebSafeGCActivityCallback
appropriately for the introduction of another type of GCActivityCallback.
<<<<<<< .mine
2014-03-18 Mark Hahnenberg <mhahnenberg@apple.com>
GC timer should intelligently choose between EdenCollections and FullCollections
https://bugs.webkit.org/show_bug.cgi?id=128261
Reviewed by Geoffrey Garen.
No new tests.
Updated WebSafeGCActivityCallbacks for both Eden and Full timers.
* platform/ios/WebSafeGCActivityCallbackIOS.h:
2014-03-19 Antti Koivisto <antti@apple.com>
Crash with long selector list
https://bugs.webkit.org/show_bug.cgi?id=123006
Reviewed by Andreas Kling.
Test: fast/css/long-selector-list-crash.html
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector):
(WebCore::CSSSelectorList::operator=):
* css/StyleRule.cpp:
(WebCore::StyleRule::create):
Add a bunch of asserts.
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
This could produce a zero-length selector list.
2014-03-19 Andreas Kling <akling@apple.com>
Rebaseline bindings tests.
* bindings/scripts/test/JS/*:
2014-03-04 Jer Noble <jer.noble@apple.com>
[iOS][MediaControls] Reverse-pinching using the built-in controls should enter full screen
https://bugs.webkit.org/show_bug.cgi?id=129707
Reviewed by Eric Carlson.
The default controls on iOS should respond to a pinch gesture by entering fullscreen. Add a gesture
event listener, and enter full screen if the user does a quick (>2 velocity) reverse (>1.25 scale) pinch.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.createBase):
(ControllerIOS.prototype.handlePlayButtonTouchEnd):
(ControllerIOS.prototype.handleBaseGestureStart):
(ControllerIOS.prototype.handleBaseGestureChange):
(ControllerIOS.prototype.handleBaseGestureEnd):
2014-03-19 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r156316): Scrollbar on a large document is broken
https://bugs.webkit.org/show_bug.cgi?id=130474
<rdar://problem/16371523>
Reviewed by Anders Carlsson.
The bug was caused by updateArrowPlacement() doing the work even though Scrollbar Overlay API is available.
Prior to r156316, this function exited early:
http://trac.webkit.org/browser/trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm?rev=156315#L147
Fixed the bug by deleting updateArrowPlacement() entirely.
* platform/mac/ScrollbarThemeMac.mm:
(WebCore::ScrollbarThemeMac::preferencesChanged):
2014-03-19 Jer Noble <jer.noble@apple.com>
[Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
https://bugs.webkit.org/show_bug.cgi?id=130459
Reviewed by Eric Carlson.
* WebCore.exp.in: Export the new WCSI method.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Bail early if we have no decoder support.
* platform/mac/WebCoreSystemInterface.h: Provide a WCSI wrapper for WKSI.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
2014-03-19 Eric Carlson <eric.carlson@apple.com>
Make Remote Control commands testable
https://bugs.webkit.org/show_bug.cgi?id=130358
Reviewed by Jer Noble.
Test: media/video-remote-control-playpause.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Call session->clientWillPausePlayback.
(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Log the command.
* platform/audio/MediaSession.cpp:
(WebCore::MediaSessionClient::mediaSessionTitle): Move from header file.
(WebCore::MediaSessionClient::mediaSessionDuration): Ditto.
(WebCore::MediaSessionClient::mediaSessionCurrentTime): Ditto.
* platform/audio/MediaSession.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): Get rid of m_activeSession.
(WebCore::MediaSessionManager::removeSession): No need to clear m_activeSession because
we use the m_sessions vector.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): setCurrentSession takes a
MediaSession&.
(WebCore::MediaSessionManager::sessionWillEndPlayback): Keep m_sessions sorted so playing
sessions are before paused sessions.
(WebCore::MediaSessionManager::setCurrentSession): Move the session that is beginning to
play to the head of m_sessions.
(WebCore::MediaSessionManager::currentSession): Return m_sessions[0] or nullptr.
(WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
* platform/audio/MediaSessionManager.h:
* platform/audio/ios/MediaSessionManagerIOS.mm: Include MediaPlayer.h.
* testing/Internals.cpp:
(WebCore::Internals::postRemoteControlCommand): New.
* testing/Internals.h:
* testing/Internals.idl:
2014-03-19 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Improving webkitGetUserMedia error handling and error messages
https://bugs.webkit.org/show_bug.cgi?id=130452
Reviewed by Eric Carlson.
Checking if first argument of webkitGetUserMedia is a valid Dictionary. If not, throw an exception with a
clearer message of the error.
Test updated.
* Modules/mediastream/NavigatorMediaStream.idl:
* UseJSC.cmake:
* bindings/js/JSNavigatorCustom.cpp: Added.
2014-03-19 Andreas Kling <akling@apple.com>
JSC bindings should use the passed-in global object for wrapper caching.
<https://webkit.org/b/130458>
Take a shorter path to the DOMWrapperWorld by using the passed-in
global object instead of getting the lexical global from ExecState.
Removed an old FIXME that no longer applies since JSObjects can
always find the right global object these days.
Reviewed by Geoff Garen.
* bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJS):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDOMBinding.h:
(WebCore::createWrapper):
(WebCore::wrap):
(WebCore::getExistingWrapper):
(WebCore::createNewWrapper):
(WebCore::toJS):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):
* bindings/js/JSDocumentCustom.cpp:
(WebCore::JSDocument::location):
(WebCore::toJS):
* bindings/js/JSElementCustom.cpp:
(WebCore::toJSNewlyCreated):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::toJS):
* bindings/js/JSHTMLTemplateElementCustom.cpp:
(WebCore::JSHTMLTemplateElement::content):
* bindings/js/JSImageDataCustom.cpp:
(WebCore::toJS):
* bindings/js/JSNodeCustom.cpp:
(WebCore::createWrapperInline):
* bindings/js/JSNodeCustom.h:
(WebCore::toJS):
* bindings/js/JSSVGPathSegCustom.cpp:
(WebCore::toJS):
* bindings/js/JSStyleSheetCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::toJS):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toJS):
* bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
2014-03-19 Benjamin Poulain <bpoulain@apple.com>
Page::setPageScaleFactor should not force the scroll view position when using delegatesScrolling()
https://bugs.webkit.org/show_bug.cgi?id=130429
Reviewed by Simon Fraser.
When setting the same scale mutliple time (for example on load), Page was asking the top scrollview
to scroll to the origin. This is bogus since the scroll view is driving Page::setDeviceScaleFactor,
not the other way around.
Simon fixed the general case in http://trac.webkit.org/changeset/165652/trunk/Source/WebCore/page/Page.cpp
but this branch was still scrolling content.
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
2014-03-19 Brady Eidson <beidson@apple.com>
Filter out editable services from image menu for non-contenteditable images
<rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437
Reviewed by Tim Horton.
* WebCore.exp.in:
2014-03-19 Dirk Schulze <krit@webkit.org>
Implement method addPath for Path2D
https://bugs.webkit.org/show_bug.cgi?id=130461
Reviewed by Dean Jackson.
Add support for the Path2D method addPath. The method allows
to append and existing Path2D object to another one. It can be
combined with a transformation matrix SVGMatrix.
Test: fast/canvas/canvas-path-addPath.html
* html/canvas/DOMPath.h: Add new method addPath().
(WebCore::DOMPath::addPath):
* html/canvas/DOMPath.idl:
* platform/graphics/Path.h: Add support for appending paths.
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::addPath):
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::addPath):
* platform/graphics/wince/PathWinCE.cpp:
(WebCore::Path::addPath):
2014-03-19 Yongjun Zhang <yongjun_zhang@apple.com>
[iOS] WebKit2 Quicklook.
https://bugs.webkit.org/show_bug.cgi?id=130360
Reviewed by Tim Horton.
Since ResourceLoaders using WebKit2 network process don't have ResourceHandle any more, we
need to make it possible to create QuickLookHandle from ResourceLoader.
* WebCore.exp.in: Make some QuickLookHandle methods visible from WebKit2.
* loader/ResourceLoader.h: Add m_quickLookHandle data member to ResourceLoader.
(WebCore::ResourceLoader::quickLookHandle):
(WebCore::ResourceLoader::setQuickLookHandle):
* platform/network/ios/QuickLook.h: Add a new method to create QuickLookHandle from ResourceLoader.
* platform/network/ios/QuickLook.mm:
(WebCore::QuickLookHandle::create):
2014-03-19 Brent Fulgham <bfulgham@apple.com>
Fix cue rendering test and include support for left/right alignment
https://bugs.webkit.org/show_bug.cgi?id=130406
Reviewed by Eric Carlson.
Merged from Blink (patch by vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/e695703cb603421c741e59a557a7989113c13b94
http://crbug.com/25155003
No new tests. Covered by media/track/track-cue-rendering-snap-to-lines-not-set.html.
* html/track/VTTCue.cpp:
(WebCore::leftKeyword): Added.
(WebCore::rightKeyword): Added.
(WebCore::VTTCueBox::applyCSSProperties): Added.
(WebCore::VTTCue::VTTCue):
(WebCore::VTTCue::align): Handle left/right alignment.
(WebCore::VTTCue::setAlign): Ditto.
(WebCore::VTTCue::calculateDisplayParameters): Refactored and revised for left/right tokens.
(WebCore::VTTCue::setCueSettings): Ditto.
(WebCore::VTTCue::getCSSAlignment): Added.
(WebCore::VTTCue::getCSSWritingMode): Added.
* html/track/VTTCue.h:
2014-03-18 Anders Carlsson <andersca@apple.com>
Add new functionality that will be required by the history item decoding
https://bugs.webkit.org/show_bug.cgi?id=130433
Reviewed by Sam Weinig.
* platform/KeyedCoding.h:
(WebCore::KeyedDecoder::decodeConditionalObject):
2014-03-19 Tim Horton <timothy_horton@apple.com>
Fix the iOS build.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToDateComponents):
Missing a StringView().
2014-03-19 Antti Koivisto <antti@apple.com>
Tighten ElementRuleCollector::m_matchedRuleList typing
https://bugs.webkit.org/show_bug.cgi?id=130446
Reviewed by Anders Carlsson.
StyleRuleBase -> StyleRule.
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchedRuleList):
* css/ElementRuleCollector.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
* css/StyleResolver.h:
* editing/EditingStyle.cpp:
(WebCore::styleFromMatchedRulesForElement):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
* inspector/InspectorCSSAgent.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules):
2014-03-19 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] An unsplittable box is always displayed in a single region
https://bugs.webkit.org/show_bug.cgi?id=130451
Reviewed by Andrei Bucur.
Add an ASSERT stating that an unsplittable box region range always contains 1 region.
No new functionality, no new tests.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::getRegionRangeForBox):
2014-03-19 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Transform origin is miscalculated when RenderLayer's
offsetfromRenderer has device pixel fraction value.
https://bugs.webkit.org/show_bug.cgi?id=129859
Reviewed by Simon Fraser.
We need to calculate the transformed origin using the painting coordinates to produce
pixel precise result.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::computeTransformOriginForPainting):
* rendering/RenderLayerBacking.h:
2014-03-19 Claudio Saavedra <csaavedra@igalia.com>
[GStreamer] Clean timeout source ids
https://bugs.webkit.org/show_bug.cgi?id=130450
Reviewed by Philippe Normand.
Sources IDs need to be cleaned up if the callback removes the
source, otherwise we'll be attempting to remove an empty source at
some point.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
(webKitMediaVideoSrcStart): Clean the source id.
(webKitMediaAudioSrcStart): Ditto.
(webKitMediaVideoSrcSeekMainCb): Ditto.
(webKitMediaAudioSrcSeekMainCb): Ditto.
2014-03-19 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Compute region ranges for children of inline blocks
https://bugs.webkit.org/show_bug.cgi?id=130392
Reviewed by Andrei Bucur.
Extend the region ranges computation for children of inline blocks.
When we cannot retrieve the region range for a box using cached information,
either from region range map or from the region cached on the RootInlineBox,
try to find the top most unsplittable box up to the flow thread boundary.
If we find such unsplittable box and the box has a region range, then return
this range.
Before this patch, method getRegionRangeForBox did not return true/false
if it was able to retrieve the range and the caller checked the returned
region values. I modified the method to return true if we were able to compute
the range.
Tests: fast/regions/inline-block-inline-children-flowed-in-regions.html
fast/regions/inline-blocks-dyn-enlarged-regions.html
fast/regions/inline-blocks-dyn-shrunk-regions.html
fast/regions/inline-blocks-in-two-regions.html
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRendererFragments):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::hasNextPage):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::clampToStartAndEndRegions):
(WebCore::RenderBox::borderBoxRectInRegion):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::regionForCompositedLayer):
(WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
(WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
(WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
(WebCore::RenderFlowThread::getRegionRangeForBox):
(WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
(WebCore::RenderFlowThread::objectInFlowRegion):
(WebCore::RenderFlowThread::addRegionsVisualEffectOverflow):
(WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
(WebCore::RenderFlowThread::addRegionsLayoutOverflow):
(WebCore::RenderFlowThread::addRegionsVisualOverflow):
(WebCore::RenderFlowThread::clearRegionsOverflow):
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::locateFlowThreadContainingBlock):
Make sure we return the right render flow thread in the case of
region-based multicolumn inside named flows.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::rectFlowPortionForBox):
2014-03-19 Krzysztof Wolanski <k.wolanski@samsung.com>
[EFL] vibration/cancelVibration-during-pattern-vibrating.html is failing after r165598
https://bugs.webkit.org/show_bug.cgi?id=130333
Reviewed by Gyuyoung Kim.
Added setting m_state when calling Vibration::vibrate. It was missing after
refactoring Vibration (r165598).
* Modules/vibration/Vibration.cpp:
(WebCore::Vibration::vibrate):
2014-03-19 Sam Weinig <sam@webkit.org>
Rewrite WebHTMLConverter::_colorForNode in C++
https://bugs.webkit.org/show_bug.cgi?id=130443
Reviewed by Andreas Kling.
* platform/mac/HTMLConverter.mm:
(_platformColor):
Rename from _colorForRGBColor and simplify to just do the platform conversion.
(normalizedColor):
Extract normalization out of _colorForRGBColor and remove cases that are impossible to hit
due to us only ever using the device color space.
(HTMLConverterCaches::colorPropertyValueForNode):
(-[WebHTMLConverter _colorForNode:property:]):
Convert to C++.
(-[WebHTMLConverter dealloc]):
(-[WebHTMLConverter init]):
Remove caches, we already cache in ColorMac.
2014-03-18 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Strange layout for content with region breaks
https://bugs.webkit.org/show_bug.cgi?id=121318
Reviewed by Mihnea Ovidenie.
When break-inside: avoid is used on an element, the implementation tries to
force it inside a single fragmentation container even though the descendants
of the element specify forced breaks. This leads to unexpected results and
unstable layout.
The change extends the definition of unsplittable elements for flow threads
using the same conditions found inside RenderBlockFlow::adjustForUnsplittableChild.
This change forces elements that require break avoidance to have a single region
in the region range. As a result, forced breaks have no effect inside them.
It should be noted this may not the behavior defined by the CSS3 Fragmentation spec.
From my understanding of the text, forced breaks override any avoidance specified
by ancestor elements. However, implementing this is a larger change that will require
a fundamental new approach in handling break avoidance. This patch just brings
consistency to the API.
Test: fast/regions/forced-break-inside-avoid-break.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
(WebCore::RenderBlock::computeRegionRangeForBoxChild):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustForUnsplittableChild): Move the avoidance conditions inside
a helper method RenderBlock::childBoxIsUnsplittableForFragmentation.
2014-03-18 Samuel White <samuel_white@apple.com>
AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
https://bugs.webkit.org/show_bug.cgi?id=130250
Reviewed by Chris Fleizach.
If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.
Test: platform/mac/accessibility/selection-initial.html
* page/EventHandler.cpp:
(WebCore::handleKeyboardSelectionMovement):
(WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
2014-03-18 Brent Fulgham <bfulgham@apple.com>
TextTrackRegion Not Implemented
https://bugs.webkit.org/show_bug.cgi?id=116546
Reviewed by Eric Carlson.
Merged from Blink (patch by vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
http://crbug.com/25798003
Tests: media/track/regions-webvtt/text-track-region-display.html
media/track/regions-webvtt/text-track-region-dom-layout.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/TextTrack.cpp:
* html/track/TextTrack.h:
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::TextTrackRegion):
(WebCore::TextTrackRegion::appendTextTrackCueBox):
* html/track/TextTrackRegion.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCue::VTTCue):
(WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
* html/track/VTTCue.h:
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseBytes):
(WebCore::WebVTTParser::collectMetadataHeader):
* html/track/WebVTTParser.h:
2014-03-18 Andreas Kling <akling@apple.com>
Share MemoryPressureHandler::releaseMemory() between platforms.
<https://webkit.org/b/130416>
Move the code that scours WebKit for things we can free up right now
to the common part of MemoryPressureHandler. This will enable other
platforms to do the same thing under pressure.
There's now also a platformReleaseMemory() where platform-specific
pressure relief stuff can go.
Reviewed by Antti Koivisto.
* platform/MemoryPressureHandler.cpp:
(WebCore::MemoryPressureHandler::releaseMemory):
(WebCore::MemoryPressureHandler::platformReleaseMemory):
* platform/MemoryPressureHandler.h:
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
(WebCore::MemoryPressureHandler::platformReleaseMemory):
2014-03-18 Dean Jackson <dino@apple.com>
[WebGL] Destroy EAGLContext's backing store
https://bugs.webkit.org/show_bug.cgi?id=130439
<rdar://problem/16295217>
Reviewed by Tim Horton.
When a GraphicsContext3D is being destroyed, we should
also remove any EAGLContext backing store.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::~GraphicsContext3D):
2014-03-18 Tim Horton <timothy_horton@apple.com>
[iOS][WebKit2] Mark layer contents as being opaque if they are
https://bugs.webkit.org/show_bug.cgi?id=130427
<rdar://problem/15540434>
Reviewed by Simon Fraser.
* platform/graphics/GraphicsLayerClient.h:
(WebCore::GraphicsLayerClient::paintsOpaquelyAtNonIntegralScales):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateContentsOpaque):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintsOpaquelyAtNonIntegralScales):
* rendering/RenderLayerBacking.h:
r159463 stopped us from setting layers opaque if they were being painted
at non-integral scale. This makes sense for compositing layers, which
are painted by arbitrary elements, but the main frame's RenderView
will always paint its entire contents. To restore the opaque contents
optimization to the main frame's tiles, don't de-opaquify layers
belonging to the main frame's RenderView.
2014-03-18 Jeffrey Pfau <jpfau@apple.com>
Unify <media> element callback registration and unregistration
https://bugs.webkit.org/show_bug.cgi?id=130417
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
(WebCore::HTMLMediaElement::didMoveToNewDocument):
* html/HTMLMediaElement.h:
2014-03-18 Jer Noble <jer.noble@apple.com>
MediaDocument should set a max-width on its <video> element.
https://bugs.webkit.org/show_bug.cgi?id=114691
Reviewed by Eric Carlson.
Set a style attribute containing max-width:100% and max-height:100% so that large videos
are entirely visible within the browser window bounds.
* html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
2014-03-18 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Fix layering violation in RTCStatsRequest
https://bugs.webkit.org/show_bug.cgi?id=130426
Reviewed by Eric Carlson.
RTCStatsRequest::track() should return a MediaStreamTrackPrivate*.
No new tests needed.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getStats):
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::create):
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
(WebCore::RTCStatsRequestImpl::track):
* Modules/mediastream/RTCStatsRequestImpl.h:
* platform/mediastream/RTCStatsRequest.h:
2014-03-18 Anders Carlsson <andersca@apple.com>
Fix a trivial FIXME
https://bugs.webkit.org/show_bug.cgi?id=130432
Reviewed by Tim Horton.
* history/HistoryItem.cpp:
(WebCore::HistoryItem::encodeBackForwardTreeNode):
2014-03-18 Anders Carlsson <andersca@apple.com>
Begin cleaning up KeyedDecoder and KeyedEncoder
https://bugs.webkit.org/show_bug.cgi?id=130431
Reviewed by Tim Horton.
Rename KeyedDecoder::decodeVerifiedEnum to decodeEnum to match the encode function,
and sort the decode functions to be in the same logical order as the encode functions.
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::decode):
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::decode):
* platform/KeyedCoding.h:
(WebCore::KeyedDecoder::decodeEnum):
2014-03-18 Darin Adler <darin@apple.com>
Reduce use of deprecatedCharacters in WebCore
https://bugs.webkit.org/show_bug.cgi?id=130318
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPathLexer::IDBKeyPathLexer): Use StringView for parsing.
(WebCore::IDBKeyPathLexer::lex): Ditto.
(WebCore::IDBKeyPathLexer::lexIdentifier): Ditto.
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
(WebCore::IDBLevelDBCoding::encodeString): Index directly into string instead of
using deprecatedCharacters.
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol): Use
StringView::getCharactersWithUpconvert.
(WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Ditto.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
Use operator NSString * instead of explicitly creating an NSString.
* bindings/js/SerializedScriptValue.cpp:
(WebCore::writeLittleEndianUInt16): Added.
(WebCore::CloneSerializer::serialize): Added a separate code path for 8-bit strings.
(WebCore::CloneSerializer::write): Ditto.
* bindings/objc/WebScriptObject.mm:
(+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
Use operator NSString * instead of explicitly creating an NSString.
* dom/Document.cpp:
(WebCore::Document::parseQualifiedName): Index directly into string instead of
using deprecatedCharacters.
* editing/CompositeEditCommand.cpp:
(WebCore::containsOnlyWhitespace): Ditto.
* editing/SmartReplace.cpp:
(WebCore::addAllCodePoints): Ditto.
(WebCore::getSmartSet): Use StringView::upconvertedCharacters.
* editing/TextIterator.cpp:
(WebCore::foldQuoteMarksAndSoftHyphens): Changed to return a value so it can be
used in initialization rather than assignment.
(WebCore::SearchBuffer::SearchBuffer): Use StringView::upconvertedCharacters.
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertText): Index directly into string instead of using
deprecatedCharacters.
* editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::characterAfter): Ditto.
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph): Ditto.
(WebCore::endOfParagraph): Ditto.
* fileapi/WebKitBlobBuilder.cpp:
(WebCore::BlobBuilder::append): Pass a StringView to TextEncoding::encode.
* html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::parseToDateComponents): Use
StringView::upconvertedCharacters.
* html/FormDataList.cpp:
(WebCore::FormDataList::appendString): Pass a StringView to TextEncoding::encode.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeSpaces): Use StringView::getCharactersWithUpconvert.
* html/parser/HTMLParserIdioms.cpp:
(WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 for a code path
that already handled 8-bit characters separately.
(WebCore::parseHTMLNonNegativeInteger): Ditto.
(WebCore::parseDescriptors): Added an 8-bit code path.
* inspector/InspectorStyleSheet.cpp:
(WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Index directly into
string instead of using deprecatedCharacters.
* inspector/InspectorStyleTextEditor.cpp:
(WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
(WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
* page/ContentSecurityPolicy.cpp:
(WebCore::isSourceListNone): Use StringView::upconvertedCharacters.
(WebCore::CSPSourceList::parse): Ditto.
(WebCore::NonceDirective::parse): Ditto.
(WebCore::MediaListDirective::parse): Ditto.
(WebCore::CSPDirectiveList::parse): Ditto.
(WebCore::CSPDirectiveList::parseReportURI): Ditto.
(WebCore::CSPDirectiveList::parseReflectedXSS): Ditto.
(WebCore::ContentSecurityPolicy::didReceiveHeader): Ditto.
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame): Pass a StringView into
TextEncoding::encode.
(WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.
* platform/Length.cpp:
(WebCore::countCharacter): Index directly into string instead of using
deprecatedCharacters. Also changed to take a StringImpl&.
(WebCore::newCoordsArray): Ditto. Call countCharacter the new way, and
use StringView::upconvertedCharacters.
(WebCore::newLengthArray): Ditto.
* platform/LinkHash.cpp:
(WebCore::visitedLinkHash): Use characters16 for the 16-bit path.
Also removed unused visitedURL function.
* platform/LinkHash.h: Removed unused visitedURL function.
* platform/SharedBuffer.cpp:
(WebCore::utf8Buffer): Added an 8-bit code path.
* platform/URL.cpp:
(WebCore::URL::port): Ditto.
(WebCore::encodeRelativeString): Use StringView to call TextEncoding::encode.
* platform/graphics/Color.cpp:
(WebCore::Color::parseHexColor): Use characters16 in the 16-bit path.
(WebCore::Color::Color): Ditto.
* platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
(WebCore::harfBuzzGetGlyph): Use StringView to call TextEncoding::encode.
* platform/graphics/StringTruncator.cpp:
(WebCore::centerTruncateToBuffer): Use StringView::getCharactersWithUpconvert.
(WebCore::rightTruncateToBuffer): Ditto.
(WebCore::rightClipToCharacterBuffer): Ditto.
(WebCore::rightClipToWordBuffer): Ditto.
(WebCore::leftTruncateToBuffer): Ditto.
(WebCore::truncateString): Ditto.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun): Use characters16 in the 16-bit code path.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
Use StringView::upconvertedCharacters.
* platform/network/DataURL.cpp:
(WebCore::handleDataURL): Use StringView to call TextEncoding::encode.
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Ditto.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::bindBlob): Use StringView::upconvertedCharacters.
(WebCore::SQLiteStatement::bindText): Ditto.
* platform/text/DecodeEscapeSequences.h:
(WebCore::Unicode16BitEscapeSequence::decodeRun): Changed to take a StringView.
(WebCore::URLEscapeSequence::decodeRun): Ditto.
(WebCore::decodeEscapeSequences): Pass StringView to decodeRun.
* platform/text/Hyphenation.cpp:
(WebCore::lastHyphenLocation): Take a StringView.
* platform/text/Hyphenation.h: Make lastHyphenLocation take a StringView.
* platform/text/TextBreakIterator.cpp:
(WebCore::initializeIteratorWithRules): Use StringView::upconvertedCharacters.
* platform/text/TextEncoding.cpp:
(WebCore::TextEncoding::encode): Use StringView::upconvertedCharacters.
Change argument type to StringView.
* platform/text/TextEncoding.h: Ditto.
* platform/text/TextEncodingRegistry.cpp:
(WebCore::atomicCanonicalTextEncodingName): Use characters16 for the 16-bit path.
* platform/text/cf/HyphenationCF.cpp:
(WebCore::lastHyphenLocation): Use StringView::text.createCFStringWithoutCopying.
Change argument type to StringView.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun): Use characters16 for the 16-bit path.
* rendering/RenderCombineText.cpp:
(WebCore::RenderCombineText::width): Removed check for null characters pointer,
since the pointer will never be null, and even if it was there would be no need
for an early exit.
* rendering/RenderText.cpp:
(WebCore::maxWordFragmentWidth): Take a StringView.
(WebCore::RenderText::computePreferredLogicalWidths): Pass in a StringView.
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::tryHyphenating): Ditto.
* rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Use
StringView::upconvertedCharacters.
* rendering/svg/SVGTextMetrics.cpp:
(WebCore::SVGTextMetrics::SVGTextMetrics): Use String::substring.
* svg/SVGAngle.cpp:
(WebCore::SVGAngle::setValueAsString): Use StringView::upconvertedCharacters.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::parsePoint): Ditto.
* svg/SVGAnimationElement.cpp:
(WebCore::parseKeySplines): Ditto.
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::parseViewBox): Ditto.
* svg/SVGFontData.cpp:
(WebCore::SVGFontData::applySVGGlyphSelection): Pass StringView to
createStringWIthMirroredCharacters.
(WebCore::createStringWithMirroredCharacters): Changed to use StringView and
use indexing into that instead of a characters pointer.
* svg/SVGFontData.h: Removed createStringWithMirroredCharacters member function,
since it has nothing to do with the SVGFontData object. Now it's just a private
helper function in the SVGFontData.cpp source file.
* svg/SVGFontElement.cpp:
(WebCore::SVGFontElement::registerLigaturesInGlyphCache): Index into the string
instead of using deprecatedCharacters.
* svg/SVGGlyphMap.h:
(WebCore::SVGGlyphMap::addGlyph): Use StringView::upconvertedCharacters.
(WebCore::SVGGlyphMap::collectGlyphsForString): Ditto.
* svg/SVGGlyphRefElement.cpp:
(WebCore::SVGGlyphRefElement::parseAttribute): Ditto.
* svg/SVGLength.cpp:
(WebCore::SVGLength::setValueAsString): Ditto.
* svg/SVGLengthList.cpp:
(WebCore::SVGLengthList::parse): Ditto.
* svg/SVGNumberList.cpp:
(WebCore::SVGNumberList::parse): Ditto.
* svg/SVGParserUtilities.cpp:
(WebCore::parseNumberFromString): Ditto.
(WebCore::parseNumberOptionalNumber): Ditto.
(WebCore::parseRect): Ditto.
(WebCore::pointsListFromSVGData): Ditto.
(WebCore::parseGlyphName): Ditto.
(WebCore::parseKerningUnicodeString): Ditto.
(WebCore::parseDelimitedString): Ditto.
* svg/SVGPreserveAspectRatio.cpp:
(WebCore::SVGPreserveAspectRatio::parse): Ditto.
* svg/SVGStringList.cpp:
(WebCore::SVGStringList::parse): Ditto.
* svg/SVGTransformList.cpp:
(WebCore::SVGTransformList::parse): Ditto.
* svg/SVGTransformable.cpp:
(WebCore::SVGTransformable::parseTransformType): Ditto.
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::parseViewSpec): Ditto.
* svg/SVGZoomAndPan.h:
(WebCore::SVGZoomAndPan::parseAttribute): Ditto.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send): Pass a StringView to TextEncoding::encode.
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString): Use StringView::upconvertedCharacters.
2014-03-18 Bem Jones-Bey <bjonesbe@adobe.com>
LayoutBox is a terrible name
https://bugs.webkit.org/show_bug.cgi?id=130351
Reviewed by Simon Fraser.
Rename LayoutBox to CSSBoxType. Also rename the functions and methods
that mention "LayoutBox" to something that makes sense for each
specific situation.
No new tests, no behavior change.
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape):
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapeCircle::cssText):
(WebCore::CSSBasicShapeCircle::equals):
(WebCore::CSSBasicShapeEllipse::cssText):
(WebCore::CSSBasicShapeEllipse::equals):
(WebCore::CSSBasicShapePolygon::cssText):
(WebCore::CSSBasicShapePolygon::equals):
(WebCore::CSSBasicShapeInset::cssText):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShape::referenceBox):
(WebCore::CSSBasicShape::setReferenceBox):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::shapePropertyValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator CSSBoxType):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFunc):
* rendering/ClipPathOperation.h:
(WebCore::ShapeClipPathOperation::setReferenceBox):
(WebCore::ShapeClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::create):
(WebCore::BoxClipPathOperation::referenceBox):
(WebCore::BoxClipPathOperation::BoxClipPathOperation):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createBoxShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::ShapeInfo<RenderType>::computedShape):
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInsideInfo.h:
* rendering/shapes/ShapeOutsideInfo.h:
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShape::canBlend):
* rendering/style/BasicShapes.h:
(WebCore::BasicShape::referenceBox):
(WebCore::BasicShape::setReferenceBox):
(WebCore::BasicShape::BasicShape):
* rendering/style/RenderStyleConstants.h:
* rendering/style/ShapeValue.h:
(WebCore::ShapeValue::createShapeValue):
(WebCore::ShapeValue::createBoxShapeValue):
(WebCore::ShapeValue::cssBox):
(WebCore::ShapeValue::ShapeValue):
2014-03-18 Daniel Bates <dabates@apple.com>
REGRESSION (r162334): RenderTableCol::styleDidChange uses out-of-date table information
https://bugs.webkit.org/show_bug.cgi?id=129561
Reviewed by Antti Koivisto.
Test: fast/table/update-col-width-and-remove-table-cell-crash.html
Fixes an issue where a table column or table column group may query an out-
of-date model of its associated table as part of its process to propagate
style changes to affected table cells.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::styleDidChange): Ensure that all sections in the table
are up-to-date before querying for a table cell.
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::recalcCells): Update comment to read well. In
particular, remove the reference to RenderTableSection::fillRowsWithDefaultStartingAtPosition()
as this function was removed in <http://trac.webkit.org/changeset/99919>.
(WebCore::RenderTableSection::setNeedsCellRecalc): Clear the grid preemptively to
to ensure that accessors cannot access stale data. We'll build the grid again
in RenderTableSection::recalcCells().
(WebCore::RenderTableSection::numColumns): Add ASSERT(!m_needsCellRecalc) to assert
that the grid cells are up-to-date. That is, we don't need to calculate them again.
* rendering/RenderTableSection.h: Add ASSERT(!m_needsCellRecalc) or call recalcCellsIfNeeded()
before accessing the grid to ensure that it's up-to-date.
2014-03-18 Daniel Bates <dabates@apple.com>
REGRESSION (r163560): ASSERTION FAILED: childrenInline() in WebCore::RenderSVGText::layout
https://bugs.webkit.org/show_bug.cgi?id=130346
Reviewed by Andreas Kling.
Following <http://trac.webkit.org/changeset/163560>, SVG inline elements may be treated as block-
level elements depending on their CSS styles (e.g. display: block). But such elements should always
be treated as inline-level elements.
Partially revert <http://trac.webkit.org/changeset/164368> as it addressed a similar issue for
<tspan> and <tref>. Instead we should implement RenderSVGInline::updateFromStyle() to ensure that
RenderSVGInline and any derived classes (e.g. RenderSVGTSpan) are always treated as inline elements
regardless of their CSS style because the SVG text layout code depends on this assumption as part
of a performance optimization. We may want to revaluate the benefits of this optimization with respect
to code clarity and ensuring the code is less error prone.
Test: svg/text/a-display-block.html
svg/text/tref-display-inherit.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Revert changes from <http://trac.webkit.org/changeset/164368>.
* rendering/RenderInline.h:
* rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::updateFromStyle): Added; ensure that RenderSVGInline and any derived
classes are treated as inline elements because the SVG text layout code depends on this assumption.
* rendering/svg/RenderSVGInline.h:
2014-03-18 Hans Muller <hmuller@adobe.com>
[CSS Shapes] shape-outside: ellipse(50% 50% at) causes crash
https://bugs.webkit.org/show_bug.cgi?id=130366
Reviewed by Andreas Kling.
The BasicShape ellipse and circle functions now report a syntax error
if the "at" keyword is not followed by a position.
The existing parsing tests have been updated to include this case.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::CSSParser::parseBasicShapeEllipse):
2014-03-18 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing MediaStreamVector typedef
https://bugs.webkit.org/show_bug.cgi?id=130402
Reviewed by Eric Carlson.
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getLocalStreams):
(WebCore::RTCPeerConnection::getRemoteStreams):
(WebCore::RTCPeerConnection::getStreamById):
(WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
* Modules/mediastream/RTCPeerConnection.h:
>>>>>>> .r165925
2014-03-18 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165815.
https://bugs.webkit.org/show_bug.cgi?id=130410
Broke many VTT tests (Requested by bfulgham on #webkit).
Reverted changeset:
"TextTrackRegion Not Implemented"
https://bugs.webkit.org/show_bug.cgi?id=116546
http://trac.webkit.org/changeset/165815
2014-03-18 Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
Bad cast with toRenderBox in WebCore::RenderView::repaintViewRectangle
https://bugs.webkit.org/show_bug.cgi?id=129104
Reviewed by Simon Fraser.
We should not cast the renderer of a RenderView's owner to RenderBox
unless we are sure it is one.
Test: plugins/crash-invalid-data-reference.html
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
2014-03-18 Andreas Kling <akling@apple.com>
Micro-optimize element descendant iterator.
<https://webkit.org/b/130384>
Add a slightly more efficient ElementDescendantIterator that keeps a stack
of relevant ancestor siblings instead of walking up the parent chain every
time we run out of children.
Reviewed by Antti Koivisto.
* WebCore.xcodeproj/project.pbxproj:
* dom/ElementDescendantIterator.h: Added.
(WebCore::ElementDescendantIterator::ElementDescendantIterator):
(WebCore::ElementDescendantIterator::operator++):
(WebCore::ElementDescendantConstIterator::ElementDescendantConstIterator):
(WebCore::ElementDescendantConstIterator::operator++):
(WebCore::ElementDescendantIteratorAdapter::ElementDescendantIteratorAdapter):
(WebCore::ElementDescendantIteratorAdapter::begin):
(WebCore::ElementDescendantIteratorAdapter::end):
(WebCore::ElementDescendantConstIteratorAdapter::ElementDescendantConstIteratorAdapter):
(WebCore::ElementDescendantConstIteratorAdapter::begin):
(WebCore::ElementDescendantConstIteratorAdapter::end):
(WebCore::elementDescendants):
* dom/ElementIterator.h:
* dom/SelectorQuery.cpp:
(WebCore::elementsForLocalName):
(WebCore::anyElement):
(WebCore::SelectorDataList::executeSingleTagNameSelectorData):
(WebCore::SelectorDataList::executeSingleClassNameSelectorData):
(WebCore::SelectorDataList::executeSingleSelectorData):
(WebCore::SelectorDataList::executeSingleMultiSelectorData):
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
2014-03-18 Antti Koivisto <antti@apple.com>
Mutating rules returned by getMatchedCSSRules can result in crash
https://bugs.webkit.org/show_bug.cgi?id=130209
Reviewed by Andreas Kling.
The non-standard getMatchedCSSRules API returns CSSStyleRule objects that don't
have parent stylesheet pointer (as we don't know which sheet the rule originated from).
Mutating the rule via such wrapper can lead to crashes later as we fail to invalidate
the underlying stylesheet.
Fix by disallowing mutation of style rules that don't have parent sheet pointer. CSSStyleRule
has two mutable properties selectorText and style. The latter gives back CSSStyleDeclaration.
This patch disallows mutations in both cases for CSSStyleRules that don't have parent stylesheet
pointer.
While it is technically possible to have CSSRules that are legitimately disconnected
from stylesheet (by removing rule from sheet while holding a reference to it) it never
makes sense to mutate such rule as there is no way to do anything with it afterwards.
Tests: fast/css/getMatchedCSSProperties-rule-mutation.html
fast/css/getMatchedCSSRules-crash.html
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
Bail out if parent stylesheet is null.
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setCssText):
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
Allow StyleRuleCSSStyleDeclaration subclass cancel the mutation via
boolean return value from willMutate.
(WebCore::StyleRuleCSSStyleDeclaration::willMutate):
Disallow mutation if the owning CSSStyleRule is null or has null stylesheet.
(WebCore::StyleRuleCSSStyleDeclaration::didMutate):
We never get here with null rule or stylesheet anymore.
* css/PropertySetCSSStyleDeclaration.h:
(WebCore::PropertySetCSSStyleDeclaration::willMutate):
2014-03-17 Jeffrey Pfau <jpfau@apple.com>
<media> elements are not properly moved to new documents' visibility callback lists
https://bugs.webkit.org/show_bug.cgi?id=127711
Reviewed by David Kilzer.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::didMoveToNewDocument):
2014-03-18 Filip Pizlo <fpizlo@apple.com>
More FTL enabling.
Rubber stamped by Dan Bernstein and Mark Hahnenberg.
No new tests.
* Configurations/FeatureDefines.xcconfig:
2014-03-18 Brent Fulgham <bfulgham@apple.com>
TextTrackRegion Not Implemented
https://bugs.webkit.org/show_bug.cgi?id=116546
Reviewed by Eric Carlson.
Merged from Blink (patch by vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
http://crbug.com/25798003
Tests: media/track/regions-webvtt/text-track-region-display.html
media/track/regions-webvtt/text-track-region-dom-layout.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/TextTrack.cpp:
* html/track/TextTrack.h:
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::TextTrackRegion):
(WebCore::TextTrackRegion::appendTextTrackCueBox):
* html/track/TextTrackRegion.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCue::VTTCue):
(WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
* html/track/VTTCue.h:
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseBytes):
(WebCore::WebVTTParser::collectMetadataHeader):
* html/track/WebVTTParser.h:
2014-03-18 Philippe Normand <pnormand@igalia.com>
[GTK] ResourceLoaderSoup.cpp was added by mistake
https://bugs.webkit.org/show_bug.cgi?id=130396
Reviewed by Carlos Garcia Campos.
This file was committed by mistake in r152778 and is not built by
any port.
* loader/soup/ResourceLoaderSoup.cpp: Removed.
2014-03-18 Andreas Kling <akling@apple.com>
Rename ElementDescendantIterator to TypedElementDescendantIterator.
Romper-stubbed by Antti "Latte Lung" Koivisto.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/ElementDescendantIterator.h: Removed.
* dom/ElementIterator.h:
* dom/TypedElementDescendantIterator.h: Added.
(WebCore::TypedElementDescendantIterator<ElementType>::TypedElementDescendantIterator):
(WebCore::TypedElementDescendantIterator<ElementType>::operator):
(WebCore::TypedElementDescendantConstIterator<ElementType>::TypedElementDescendantConstIterator):
(WebCore::TypedElementDescendantConstIterator<ElementType>::operator):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::TypedElementDescendantIteratorAdapter):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::begin):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::end):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::beginAt):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::from):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::first):
(WebCore::TypedElementDescendantIteratorAdapter<ElementType>::last):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::TypedElementDescendantConstIteratorAdapter):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::begin):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::end):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::beginAt):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::from):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::first):
(WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::last):
(WebCore::descendantsOfType):
2014-03-18 Ion Rosca <rosca@adobe.com>
Add blend mode property to dumped information in GraphicsLayer.
https://bugs.webkit.org/show_bug.cgi?id=130331
Reviewed by Simon Fraser.
Functionality is not changed, therefore no new tests added.
I adjusted the affected test results generated with layerTreeAsText.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::dumpProperties):
2014-03-17 Sergio Villar Senin <svillar@igalia.com>
webdatabase: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
https://bugs.webkit.org/show_bug.cgi?id=130347
Reviewed by Darin Adler.
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::openDatabaseMutex):
(WebCore::notificationMutex):
(WebCore::notificationQueue):
2014-03-17 Jer Noble <jer.noble@apple.com>
Add RemoteCommandListener support to MediaSessionManager.
https://bugs.webkit.org/show_bug.cgi?id=130354
Reviewed by Eric Carlson.
Listen for remote commands in MediaSessionManager.
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::removeSession):
* platform/audio/MediaSessionManager.h:
Add RemoteCommandListener to the project files:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2014-03-17 Ryosuke Niwa <rniwa@webkit.org>
Rewrite WebHTMLConverter::_elementHasOwnBackgroundColor in C++
https://bugs.webkit.org/show_bug.cgi?id=130291
Reviewed by Andreas Kling.
Extracted HTMLConverterCaches::elementHasOwnBackgroundColor.
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::elementHasOwnBackgroundColor):
(-[WebHTMLConverter _elementHasOwnBackgroundColor:]):
2014-03-17 Ryosuke Niwa <rniwa@webkit.org>
Rewrite WebHTMLConverter::_elementIsBlockLevel in C++
https://bugs.webkit.org/show_bug.cgi?id=130287
Reviewed by Andreas Kling.
Rewrote _elementIsBlockLevel as HTMLConverterCaches::isBlockElement. Also removed the code to update
_elementIsBlockLevel in _traverseNode as computing the value of _elementIsBlockLevel is now fast.
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::isBlockElement):
(-[WebHTMLConverter _elementIsBlockLevel:]):
(-[WebHTMLConverter _traverseNode:depth:embedded:]):
(-[WebHTMLConverter dealloc]):
(-[WebHTMLConverter init]):
2014-03-17 Ryosuke Niwa <rniwa@webkit.org>
Rewrite WebHTMLConverter::_getComputedFloat in C++
https://bugs.webkit.org/show_bug.cgi?id=130284
Reviewed by Andreas Kling.
Rewrote _getComputedFloat as HTMLConverterCaches::floatPropertyValueForNode.
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::floatPropertyValueForNode):
(-[WebHTMLConverter _getFloat:forNode:property:]): Now that computing the float value is fast, we don't need to
store it in the cache.
(-[WebHTMLConverter dealloc]):
(-[WebHTMLConverter init]):
2014-03-16 Andreas Kling <akling@apple.com>
HTMLInputElement::defaultEventHandler() shouldn't force style updates.
<https://webkit.org/b/130303>
Move the updateStyleIfNeeded() call down to TextFieldInputType instead
of doing it for every HTMLInputEvent.
There might be a better way to do this; we only want to know about this
specific element's renderer, and don't need the rest of the tree.
This is still an easy hack to avoid a lot of unnecessary work.
Reviewed by Anders Carlsson.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
2014-03-17 Brent Fulgham <bfulgham@apple.com>
[WebVTT] Extending WebVTT Rendering with Regions
https://bugs.webkit.org/show_bug.cgi?id=109822
Reviewed by Eric Carlson.
Merged from Blink (patch by Victor Carbune vcarbune@chromium.org):
https://chromium.googlesource.com/chromium/blink/+/0cdebc1d76d41bfcb9c4b022e54a4fbff132225d
No new tests, as this feature is not active in default builds. New tests will be added
in an upcoming bug.
* css/mediaControls.css:
(video::-webkit-media-text-track-region):
(video::-webkit-media-text-track-region-container):
(video::-webkit-media-text-track-region-container.scrolling):
(video::-webkit-media-text-track-display):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/track/TextTrack.cpp:
(WebCore::TextTrack::~TextTrack):
* html/track/TextTrackCue.cpp:
* html/track/TextTrackRegion.cpp:
(WebCore::TextTrackRegion::TextTrackRegion):
(WebCore::TextTrackRegion::textTrackCueContainerScrollingClass):
(WebCore::TextTrackRegion::textTrackCueContainerShadowPseudoId):
(WebCore::TextTrackRegion::textTrackRegionShadowPseudoId):
(WebCore::TextTrackRegion::appendTextTrackCueBox):
(WebCore::TextTrackRegion::displayLastTextTrackCueBox):
(WebCore::TextTrackRegion::willRemoveTextTrackCueBox):
(WebCore::TextTrackRegion::getDisplayTree):
(WebCore::TextTrackRegion::prepareRegionDisplayTree):
(WebCore::TextTrackRegion::startTimer):
(WebCore::TextTrackRegion::stopTimer):
(WebCore::TextTrackRegion::scrollTimerFired):
* html/track/TextTrackRegion.h:
(WebCore::TextTrackRegion::create):
(WebCore::TextTrackRegion::isScrollingRegion):
(WebCore::TextTrackRegion::ownerDocument):
* html/track/TextTrackRegion.idl:
* html/track/TextTrackRegionList.cpp:
(WebCore::TextTrackRegionList::getRegionById):
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::~VTTCue):
(WebCore::VTTCue::setIsActive):
(WebCore::VTTCue::removeDisplayTree):
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::createNewRegion):
* rendering/RenderVTTCue.cpp:
(WebCore::RenderVTTCue::layout):
2014-03-17 Brendan Long <b.long@cablelabs.com>
[GStreamer] human readable language code for tracks
https://bugs.webkit.org/show_bug.cgi?id=124514
Reviewed by Martin Robinson.
* PlatformEfl.cmake: Add GSTREAMER_TAG_INCLUDE_DIRS and GSTREAMER_TAG_LIBRARIES.
* PlatformGTK.cmake: Same.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::getLanguageCode): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Use getLanguageCode() for languages instead of just getTag().
2014-03-17 Ryosuke Niwa <rniwa@webkit.org>
[Mac] Rewrite WebHTMLConverter::_computedStringForNode in C++
https://bugs.webkit.org/show_bug.cgi?id=130274
Reviewed by Andreas Kling.
Rewrote WebHTMLConverter::_computedStringForNode as HTMLConverterCaches::propertyValueForNode.
* platform/mac/HTMLConverter.h: Removed unused caches.
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::computedStylePropertyForElement): Added use const String& instead of String& on property name.
(HTMLConverterCaches::inlineStylePropertyForElement): Ditto.
(HTMLConverterCaches::propertyValueForNode): Renamed and rewritten from _computedStringForNode.
(-[WebHTMLConverter _stringForNode:property:]): Simply return the computed value instead of storing it in the cache
now that the computing the value is fast.
(-[WebHTMLConverter dealloc]):
(-[WebHTMLConverter init]):
2014-03-17 Andreas Kling <akling@apple.com>
Remove unnecessary JSC::Handle null checks in bindings code.
<https://webkit.org/b/130356>
Use Handle::slot() directly instead of going through Handle::get().
This avoids null checking the HandleSlot, which isn't necessary here
anyway, and the code already assumes it'll never be null.
Reviewed by Gavin Barraclough.
* bindings/js/JSCSSRuleListCustom.cpp:
(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
* bindings/js/JSCSSValueCustom.cpp:
(WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
(WebCore::JSCSSValueOwner::finalize):
* bindings/js/JSMutationObserverCustom.cpp:
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
* bindings/js/JSTextTrackCueCustom.cpp:
(WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
* bindings/js/WebCoreTypedArrayController.cpp:
(WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
(WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::finalize):
2014-03-17 Krzysztof Czech <k.czech@samsung.com>
AX: Reducing some code by using helper function ariaElementsFromAttribute
https://bugs.webkit.org/show_bug.cgi?id=130344
Reviewed by Chris Fleizach.
Change visibility of ariaElementsFromAttribute function from private to protected
so that other classes that derives from AccessibilityRenderObject can use it.
No new tests. No behaviour change.
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::columnHeaders):
2014-03-16 Brent Fulgham <bfulgham@apple.com>
Provide preference to enable additional AVFoundation options
https://bugs.webkit.org/show_bug.cgi?id=130275
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::doesHaveAttribute): Added.
* html/HTMLMediaElement.h:
* page/Settings.in: Add new attribute.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::doesHaveAttribute): Added stub to call private player object's
implementation of doesHaveAttribute.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::doesHaveAttribute):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::AVFWrapper::createAssetForURL): Check the <media> object,
and notify AVFoundationCF to use URI option if relevant.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Check the <media> object,
and notify AVFoundation to use URI option if relevant.
2014-03-17 Jer Noble <jer.noble@apple.com>
[EME] Add NULL protections in SourceBuffer and MediaSource.
https://bugs.webkit.org/show_bug.cgi?id=130266
Reviewed by Eric Carlson.
Add NULL checks in places which may be called after a SourceBuffer has been removed:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::monitorSourceBuffers): Protect against a SourceBuffer being removed
(and thus activeSourceBuffers being empty) when monitoring source buffer state.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::appendBufferTimerFired): Protect against SourceBuffer being removed.
(WebCore::SourceBuffer::videoTracks): Ditto.
(WebCore::SourceBuffer::audioTracks): Ditto.
(WebCore::SourceBuffer::textTracks): Ditto.
(WebCore::SourceBuffer::setActive): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Ditto.
(WebCore::SourceBuffer::hasCurrentTime): Ditto.
(WebCore::SourceBuffer::canPlayThrough): Ditto.
(WebCore::SourceBuffer::hasFutureTime): Ditto, and check for an empty buffered ranges.
2014-03-17 Tim Horton <timothy_horton@apple.com>
WKThumbnailView should support snapshots
https://bugs.webkit.org/show_bug.cgi?id=130335
<rdar://problem/16255139>
Reviewed by Simon Fraser.
* WebCore.exp.in:
2014-01-29 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] getComputedStyle() not using author's order when showing named grid lines
https://bugs.webkit.org/show_bug.cgi?id=127837
Reviewed by David Hyatt.
Added a couple of new Vectors to store the names of the grid lines
respecting their order. They will be used to get the right outcome
for getComputedStyle().
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::addValuesForNamedGridLinesAtIndex):
(WebCore::valueForGridTrackList):
* css/StyleResolver.cpp:
(WebCore::createGridTrackList):
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h:
* rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
* rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator==):
2014-03-17 Zsolt Borbely <borbezs@inf.u-szeged.hu>
Fix the !ENABLE(PROMISES) build
https://bugs.webkit.org/show_bug.cgi?id=130328
Reviewed by Darin Adler.
Add missing ENABLE(PROMISES) guards.
* bindings/js/JSDOMPromise.cpp:
* bindings/js/JSDOMPromise.h:
2014-03-17 Gurpreet Kaur <k.gurpreet@samsung.com>
Safari should not render a cell if the <td> is empty
https://bugs.webkit.org/show_bug.cgi?id=15273
Reviewed by Darin Adler.
When table cell has no children and the doctype is not present or not
correct the border for that cell should not be drawn. Firefox also
follows the same behaviour hence making the changes to make it similiar
to Firefox behaviour.
Tests: fast/table/table-cell-border-doctype.html
fast/table/table-cell-border-no-doctype.html
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBoxDecorations):
Added condition for not drawing the border when table cell has no child
and doctype.
2014-03-17 Frédéric Wang <fred.wang@free.fr>
Fix handling of <annotation> in MathMLTextElement.
https://bugs.webkit.org/show_bug.cgi?id=124128.
Reviewed by Darin Adler.
No new tests.
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::createElementRenderer): do not create the special RenderMathMLToken for the <annotation> tag.
(WebCore::MathMLTextElement::childShouldCreateRenderer): only allow text inside <annotation>.
2014-03-17 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] Credential storage is not enabled
https://bugs.webkit.org/show_bug.cgi?id=130149
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Add the libsecret include directories and link line to the build.
2014-03-17 Zan Dobersek <zdobersek@igalia.com>
Unreviewed.
Addressing reviewing comments by Darin in bug #130310 that I forgot
to address before landing the changes in r165732.
https://bugs.webkit.org/show_bug.cgi?id=130310
* rendering/InlineTextBox.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderObject.cpp:
2014-03-17 Jessie Berlin <jberlin@apple.com>
Speculative build fix for ENABLE(TELEPHONE_NUMBER_DETECTION) after r165724.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
2014-03-17 Zan Dobersek <zdobersek@igalia.com>
Only supplement Page with UserMediaController once
https://bugs.webkit.org/show_bug.cgi?id=130311
Reviewed by Darin Adler.
Don't supplement the Page with an UserMediaController object if that Page was
already supplemented with one. This avoids triggering an assertion in
Supplementable::provideSupplement() that ensures no supplement with the same key
exists yet. The cause of this is calling provideUserMediaTo() in the Internals
constructor that's using the same Page for two subsequent tests.
* Modules/mediastream/UserMediaController.cpp:
(WebCore::provideUserMediaTo):
2014-03-17 Zan Dobersek <zdobersek@igalia.com>
Explicitly include cstdio header for debug builds in InlineTextBox, RenderLayer, RenderObject
https://bugs.webkit.org/show_bug.cgi?id=130310
Reviewed by Darin Adler.
Building the GTK port with Clang through CMake falls into a configuration where
the cstdio header is not indirectly included in InlineTextBox, RenderLayer and
RenderObject source files. fprintf() is required for helper functions that print
out helpful debugging information in debug builds, so the cstdio header should
be included explicitly in that case.
* rendering/InlineTextBox.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderObject.cpp:
2014-03-17 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Cleanup WebKitDOMObject
https://bugs.webkit.org/show_bug.cgi?id=130246
Reviewed by Martin Robinson.
Remove unneeded getter and fix coding style.
* bindings/gobject/WebKitDOMObject.cpp:
(webkitDOMObjectSetProperty):
(webkit_dom_object_class_init):
2014-03-17 Darin Adler <darin@apple.com>
Stop using deprecatedCharacters in HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=130323
Reviewed by Andreas Kling.
Keeping this separate from other patches because of concern that this could affect
page load performance.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
Use a StringView instead of a character pointer.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::isEmpty): Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining): Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo): Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace): Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeading): Ditto.
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading): Ditto.
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers): Use StringView::upconvertedCharacters.
2014-03-17 Jinwoo Song <jinwoo7.song@samsung.com>
Make some Module class constructors return PassRef.
https://bugs.webkit.org/show_bug.cgi?id=130282
Reviewed by Andreas Kling.
Make the constructor helpers for the following classes return PassRef
instead of PassRefPtr since they will never return null.
- GamepadList
- Geolocation
- NavigatorContentUtils
- NetworkInfoConnection
- Notification
- NotificationCenter
- DeviceProximityEvent
* Modules/gamepad/GamepadList.h:
(WebCore::GamepadList::create):
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::create):
* Modules/geolocation/Geolocation.h:
(WebCore::Geolocation::GeoNotifier::create):
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::NavigatorContentUtils::create):
* Modules/navigatorcontentutils/NavigatorContentUtils.h:
* Modules/networkinfo/NetworkInfoConnection.cpp:
(WebCore::NetworkInfoConnection::create):
* Modules/networkinfo/NetworkInfoConnection.h:
* Modules/notifications/Notification.cpp:
(WebCore::Notification::create):
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::create):
* Modules/notifications/NotificationCenter.h:
* Modules/proximity/DeviceProximityEvent.h:
(WebCore::DeviceProximityEvent::create):
2014-03-16 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions]Do not compute region range for a box unless the parent has one
https://bugs.webkit.org/show_bug.cgi?id=130249
Reviewed by Andrei Bucur.
If the containing block does not have a region range computed, do not attempt to compute
a region range for a child. In such cases, the range computation for a child can lead to
a result that is wrong, possibly leading to an incorrect clipping.
Test: fast/regions/inline-block-flowed-in-regions.html
* rendering/RenderBlock.cpp:
(WebCore::canComputeRegionRangeForBox):
(WebCore::RenderBlock::computeRegionRangeForBoxChild):
(WebCore::RenderBlock::estimateRegionRangeForBoxChild):
(WebCore::RenderBlock::updateRegionRangeForBoxChild):
* rendering/RenderFlowThread.h:
2014-03-16 Andreas Kling <akling@apple.com>
CSSValueList should assert that no null values are added to it.
<https://webkit.org/b/130315>
Add assertions in CSSValueList's append() and prepend() that we are
not adding a null value. This caught a single place in CSSParser
that was appending an alread-released RefPtr to a CSSValueList.
That list was eventually discarded anyway (due to "foundClip" now
being true), so the fix is simply to remove the adding.
Eventually we should use Ref and PassRef all over for CSSValueList,
this is just a first step on the way.
Reviewed by Darin Adler.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFillShorthand):
* css/CSSValueList.h:
(WebCore::CSSValueList::append):
(WebCore::CSSValueList::prepend):
2014-03-16 Praveen R Jadhav <praveen.j@samsung.com>
AudioBufferSourceNode stop attribute shouldn't throw exception in finished state.
https://bugs.webkit.org/show_bug.cgi?id=130000.
Reviewed by Jer Noble.
AudioBufferSourceNode may go to FINISHED_STATE even before "stop" method is called
as silence rendered after audio data is played out when its not looping.
A call to "stop" method after this shouldn't throw exception.
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::stop):
2014-03-16 Brian Burg <bburg@apple.com>
Web Inspector: generated backend commands should reflect build system ENABLE settings
https://bugs.webkit.org/show_bug.cgi?id=130111
Reviewed by Timothy Hatcher.
Add guards for conditional inspector domains.
For Makefile-based build systems, force regeneration of the
combined file if the list of domains has changed.
Combine only the Inspector domains listed in INSPECTOR_DOMAINS,
instead of globbing any .json file.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
2014-03-16 David Kilzer <ddkilzer@apple.com>
Follow-up: Double values passed to fabsf() in maxScaleFromTransform()
<http://webkit.org/b/130297>
Reviewed by Darin Adler.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::maxScaleFromTransform): Use narrowPrecisionToFloat()
instead of static_cast<float>().
2014-03-16 Andreas Kling <akling@apple.com>
ScriptExecutionContext::vm() should return a reference.
<https://webkit.org/b/129611>
Every ScriptExecutionContext has a VM, so this can never return null.
Made WorkerScriptController::vm() return a reference as well, since
that was needed for this change.
Reviewed by Geoffrey Garen.
* bindings/js/WorkerScriptController.h:
(WebCore::WorkerScriptController::vm):
* bindings/js/WorkerScriptDebugServer.cpp:
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ruleMatches):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::vm):
* dom/ScriptExecutionContext.h:
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::execute):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::createImageBuffer):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::dropProtection):
* testing/Internals.cpp:
(WebCore::Internals::parserMetaData):
2014-03-16 Zan Dobersek <zdobersek@igalia.com>
Remove OwnPtr.h, PassOwnPtr.h header inclusions in Source/WebCore/html/parser/ code
https://bugs.webkit.org/show_bug.cgi?id=129667
Reviewed by Anders Carlsson.
Remove unnecessary inclusions of the OwnPtr.h and PassOwnPtr.h headers
in the code under Source/WebCore/html/parser/.
* html/parser/HTMLParserScheduler.h:
* html/parser/HTMLToken.h:
* html/parser/HTMLTreeBuilder.h:
* html/parser/XSSAuditor.h:
* html/parser/XSSAuditorDelegate.h:
2014-03-16 Darin Adler <darin@apple.com>
Remove uses of "cat" in DerivedSources.make outside platform-specific rules
https://bugs.webkit.org/show_bug.cgi?id=130307
Reviewed by Anders Carlsson.
* DerivedSources.make: Use "perl -pe ''" instead of "cat".
2014-03-16 Brian Burg <bburg@apple.com>
Web Inspector: vended backend commands file should be generated as part of the build
https://bugs.webkit.org/show_bug.cgi?id=130110
Reviewed by Timothy Hatcher.
* WebCore.xcodeproj/project.pbxproj: Copy InspectorWebBackendCommands.js to the
private headers directory.
2014-03-16 Frédéric Wang <fred.wang@free.fr>
[regression] foreign content not displayed in MathML
<https://webkit.org/b/124128>
Reviewed by Chris Fleizach.
This restores foreign content in <mtext>, <mn> and <mi> elements, but only when it is "phrasing content" as defined per the HTML5 specification. Other token elements are not handled here. This change makes mspace-units.html work again on Linux.
Tests: mathml/presentation/foreign-mi-dynamic.html
mathml/presentation/foreign-mi.html
mathml/presentation/foreign-mn.html
mathml/presentation/foreign-mtext-rejected.html
mathml/presentation/foreign-mtext.html
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::createElementRenderer): create a RenderMathMLToken for mn, ms and mtext.
(WebCore::isPhrasingContent): helper function to check phrasing content, as defined by the HTML spec.
(WebCore::MathMLTextElement::childShouldCreateRenderer): <mi>, <mn>, <mtext> and, <ms> now accepts phrasing content.
* rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::RenderMathMLToken):
(WebCore::RenderMathMLToken::updateTokenContent): initialize the m_containsElement boolean when updating the token content.
(WebCore::RenderMathMLToken::updateStyle): move <mi> specific handling in its own section and only apply the single-char rule when it does not contain elements.
* rendering/mathml/RenderMathMLToken.h: add an m_containsElement boolean to handle token element specifically.
2014-03-16 David Kilzer <ddkilzer@apple.com>
PlatformTimeRanges::nearest() truncates closestDelta values from double to float
<http://webkit.org/b/130298>
Reviewed by Darin Adler.
Fixes the following build failures using trunk clang:
WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
closestDelta = fabsf(startTime - time);
^
WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: note: use function 'fabs' instead
closestDelta = fabsf(startTime - time);
^~~~~
fabs
WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
closestDelta = fabsf(endTime - time);
^
WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: note: use function 'fabs' instead
closestDelta = fabsf(endTime - time);
^~~~~
fabs
* platform/graphics/PlatformTimeRanges.cpp:
(WebCore::PlatformTimeRanges::nearest): Extract start and end
time deltas into local variables so they don't have to be
computed twice, using fabs() instead of fabsf().
2014-03-16 Darin Adler <darin@apple.com>
Optimize hasTagName when called on an HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=130090
Reviewed by Antti Koivisto.
Added new hasTagName functions that have the efficiency of hasLocalName.
but are safe.
Now we can always use hasTagName, and we'll get a compile time error if
we try to use an SVG tag name with an HTML element. All call sites that
use the more specific tag name types are more efficient, and call sites
that have a specific pointer type will get even more efficient checking
that is exactly what we used to get by calling hasLocalName.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
since Node::hasTagName no longer works on a general QualifiedName.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
more specific type, RenderElement, so we can call hasTagName on Element
instead of Node; eliminates an unnecessary branch.
* accessibility/AccessibilityTableColumn.cpp: Added now-needed include.
* accessibility/atk/AccessibilityObjectAtk.cpp: Ditto.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
new for loop and full words for variable names. Also use nullptr instead
of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
since it's already checking isHTMLElement and isSVGElement.
* dom/Element.cpp:
(WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
the map rather than putting pointers to a vector into the map.
(WebCore::attrNodeListForElement): Take a reference rather than a pointer,
and update for the change above.
(WebCore::ensureAttrNodeListForElement): Ditto.
(WebCore::removeAttrNodeListForElement): Ditto.
(WebCore::findAttrNodeInList): Ditto.
(WebCore::Element::isFocusable): Use lineageOfType<HTMLCanvasElement>
to fine the canvas rather than a hand-written loop.
(WebCore::Element::attrNodeList): Update for above changes.
(WebCore::Element::setAttributeNode): Ditto.
(WebCore::Element::attrIfExists): Ditto.
(WebCore::Element::ensureAttr): Ditto.
(WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
(WebCore::Element::detachAllAttrNodesFromElement): Ditto.
* dom/Element.h: Removed the overload of hasLocalName that takes a
QualifiedName and ignores the non-local-name parts of it. Callers should
use hasTagName instead, now that it's optimized appropriately. Added
overloads of hasTagName for all the specific qualified name types. It's
more efficient to use the Node versions of these functions rather than
using QualifiedName::matches to do the check. Removed the hasTagName and
hasLocalName functions from the Node class; the only convenience functions
needed in Node are the specific checks for tags from HTML, MathML, and SVG,
not the general purpose ones.
* dom/Node.h: Removed hasLocalName and replaced the single hasTagName
that takes a QualifiedName with three faster ones that take HTML, MathML,
and SVG qualified names instead. Also updated to use nullptr instead of 0.
* dom/PositionIterator.cpp: Added now-needed include.
* dom/Text.cpp: Ditto.
* dom/make_names.pl:
(printHeaderHead): Renamed an argument for clarity and added a definitions
argument, which is where we insert the classes derived from QualifiedName.
(printCppHead): Renamed an argument for clarity.
(printTypeHelpers): Use hasTagName rather than hasLocalName, since the
former is now optimized to be the same as what the latter was.
(printNamesHeaderFile): Define a class derived from QualifiedName that can
be used at compile time to avoid having to check the namespace.
(printNamesCppFile): Use the new more-specific type as needed.
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
and references instead of pointers.
(WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
construction of a smart pointer.
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
the enclosingElementWithTag function by its new name.
* editing/Editor.cpp:
(WebCore::Editor::selectionUnorderedListState): Updated to use the
enclosingElementWithTag function by its new name.
(WebCore::Editor::selectionOrderedListState): Ditto.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
* editing/InsertListCommand.h: Ditto.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
cast to Element in the loop that is already guarded by an isElementNode check.
Also use a modern C++ for loop.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
Updated to use the enclosingElementWithTag function by its new name.
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.
* editing/TypingCommand.cpp: Added now-needed includes.
* editing/VisibleUnits.cpp: Ditto.
* editing/htmlediting.cpp:
(WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
since nodes other than elements do not have tags.
* editing/htmlediting.h: Ditto.
* editing/mac/EditorMac.mm:
(WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
function by its new name.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendText): Ditto.
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
(WebCore::highestAncestorToWrapMarkup): Ditto.
(WebCore::createMarkupInternal): Ditto.
(WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
since the former is now optimized to be the same as the latter was before.
* html/HTMLCollection.cpp:
(WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
since the former is now optimized to be the same as the latter was before.
(WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
(WebCore::unicodeBidiAttributeForDirAuto): Ditto.
(WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
(WebCore::HTMLElement::setInnerHTML): Ditto.
(WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
setInnerText and setOuterText.
(WebCore::HTMLElement::setInnerText): Ditto.
(WebCore::HTMLElement::setOuterText): Ditto.
(WebCore::HTMLElement::rendererIsNeeded): Ditto.
(WebCore::HTMLElement::createElementRenderer): Ditto.
* html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific HTMLQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for HTMLQualifiedName into this header.
* html/HTMLObjectElement.cpp:
(WebCore::isRecognizedTagName): Updated for change in return type of
HTMLNames::getHTMLTags.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
(WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
Also use a new style for loop and emptyString() instead of "".
(WebCore::HTMLSelectElement::setValue): Ditto.
(WebCore::HTMLSelectElement::setLength): Ditto.
(WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
instead of hasLocalName.
* html/HTMLTableRowsCollection.cpp:
(WebCore::isInSection): Updated to use hasTagName and take a reference.
(WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.
* html/parser/HTMLConstructionSite.cpp: Added now-needed include.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
be flxible about the type of the table being used.
(WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
(WebCore::adjustAttributes): Added new helper so we can share more code. Updated
template argument names for clarity.
(WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
calls a single non-inline function.
(WebCore::adjustMathMLAttributes): Ditto.
(WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
(WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
function below.
(WebCore::adjustForeignAttributes): Updated for above changes.
(WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
(WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.
* inspector/InspectorStyleSheet.cpp: Added now-needed include.
* mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific MathMLQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for MathMLQualifiedName into this header.
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
(WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
(WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
(WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::createElementRenderer): Ditto.
(WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.
* platform/gtk/PasteboardGtk.cpp: Added now-needed include.
* platform/mac/HTMLConverter.mm: Ditto.
* rendering/RenderBlockFlow.cpp: Ditto.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::rendererForRootBackground): Ditto.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.
* rendering/RenderReplaced.cpp: Added now-needed include.
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.
* svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific SVGQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for SVGQualifiedName into this header.
* svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
of calling hasTagName.
* svg/SVGUseElement.cpp:
(WebCore::isDirectReference): Changed to take a reference and a more specific type.
(WebCore::SVGUseElement::toClipPath): Added a type cast.
(WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
need a type cast.
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
unusual call site that has a good reason to use hasLocalName instead of hasTagName.
2014-03-16 Andreas Kling <akling@apple.com>
Stop pulling in JSDOMBinding.h via JSEventListener.h
<https://webkit.org/b/130299>
Just chippin' away at the compile time monster.
Reviewed by Darin Adler.
* bindings/js/IDBBindingUtilities.cpp:
* bindings/js/JSEventListener.h:
2014-03-16 David Kilzer <ddkilzer@apple.com>
Double values passed to fabsf() in maxScaleFromTransform()
<http://webkit.org/b/130297>
Reviewed by Darin Adler.
Fixes the following build failures using trunk clang:
WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
^
WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: note: use function 'fabs' instead
return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
^~~~~
fabs
WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
^
WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: note: use function 'fabs' instead
return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
^~~~~
fabs
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::maxScaleFromTransform): Use static_cast<float>() to
convert float values to double values.
2014-03-15 Zalan Bujtas <zalan@apple.com>
Move BorderEdge class to its own file.
https://bugs.webkit.org/show_bug.cgi?id=130294
Reviewed by Sam Weinig.
This is in preparation to have better encapsulation for border box decoration painting.
No change in functionality.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* rendering/BorderEdge.cpp: Added.
(WebCore::BorderEdge::BorderEdge):
(WebCore::BorderEdge::getBorderEdgeInfo):
(WebCore::BorderEdge::includesAdjacentEdges):
(WebCore::BorderEdge::obscuresBackgroundEdge):
(WebCore::BorderEdge::obscuresBackground):
(WebCore::BorderEdge::getDoubleBorderStripeWidths):
* rendering/BorderEdge.h: Added.
(WebCore::BorderEdge::edgeFlagForSide):
(WebCore::BorderEdge::includesEdge):
(WebCore::BorderEdge::edgesShareColor):
(WebCore::BorderEdge::hasVisibleColorAndStyle):
(WebCore::BorderEdge::shouldRender):
(WebCore::BorderEdge::presentButInvisible):
(WebCore::BorderEdge::widthForPainting):
(WebCore::BorderEdge::borderWidthInDevicePixel):
* rendering/RenderBoxModelObject.cpp:
(WebCore::borderStyleHasUnmatchedColorsAtCorner):
(WebCore::colorsMatchAtCorner):
(WebCore::colorNeedsAntiAliasAtCorner):
(WebCore::willBeOverdrawn):
(WebCore::joinRequiresMitre):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
(WebCore::RenderBoxModelObject::borderObscuresBackground):
* rendering/RenderBoxModelObject.h:
2014-03-15 Martin Robinson <mrobinson@igalia.com>
Fix WebCore unused parameter warnings for WebKitGTK+ CMake build
https://bugs.webkit.org/show_bug.cgi?id=130252
Reviewed by Carlos Garcia Campos.
* Modules/mediastream/HTMLMediaElementMediaStream.cpp: Fix unused parameters.
* html/RangeInputType.cpp: Ditto.
* page/gtk/EventHandlerGtk.cpp: Ditto.
* platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
* platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Ditto.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Ditto.
* platform/graphics/opengl/Extensions3DOpenGLES.cpp: Ditto.
* platform/gtk/GamepadsGtk.cpp: Ditto.
* platform/gtk/GtkClickCounter.cpp: Ditto.
* platform/gtk/GtkPopupMenu.cpp: Ditto.
* platform/gtk/GtkTouchContextHelper.cpp: Ditto.
* platform/gtk/GtkVersioning.c: Ditto.
* platform/gtk/MainFrameScrollbarGtk.cpp: Ditto.
* platform/gtk/PasteboardGtk.cpp: Ditto.
* platform/gtk/PasteboardHelper.cpp: Ditto.
* platform/gtk/RedirectedXCompositeWindow.cpp: Ditto.
* platform/gtk/RenderThemeGtk.cpp: Ditto.
* platform/gtk/RenderThemeGtk.h: Ditto.
* platform/gtk/RenderThemeGtk2.cpp: Ditto.
* platform/gtk/ScrollbarThemeGtk.cpp: Ditto.
* platform/gtk/ScrollbarThemeGtk2.cpp: Ditto.
* platform/gtk/WidgetGtk.cpp: Ditto.
* platform/network/gtk/CredentialBackingStore.cpp: Ditto.
* platform/soup/SharedBufferSoup.cpp: Ditto.
* plugins/gtk/PluginViewGtk.cpp: Ditto.
* plugins/gtk/gtk2xtbin.c: Ditto.
* rendering/InlineTextBox.cpp: Ditto.
2014-03-14 Myles C. Maxfield <mmaxfield@apple.com>
RenderTextControl::hasValidAvgCharWidth doesn't detect System Font
https://bugs.webkit.org/show_bug.cgi?id=130168
Reviewed by Dean Jackson.
No new tests.
* platform/graphics/Font.cpp: Moved functions from RenderTextControl
(WebCore::Font::hasValidAverageCharWidth):
(WebCore::Font::fastAverageCharWidthIfAvailable):
* platform/graphics/Font.h:
* rendering/RenderTextControl.cpp: Moved functions to Font.cpp
(WebCore::RenderTextControl::getAverageCharWidth): Removed redundant function argument
(WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::getAverageCharWidth): Removed redundant function argument
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::getAverageCharWidth): Removed redundant function argument
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
* rendering/RenderTextControlSingleLine.h:
2014-03-15 David Kilzer <ddkilzer@apple.com>
[iOS] Define SYSTEM_VERSION_PREFIX consistently
<http://webkit.org/b/130293>
<rdar://problem/15926359>
Reviewed by Dan Bernstein.
* Configurations/Version.xcconfig:
(SYSTEM_VERSION_PREFIX_iphoneos): Sync with
Source/WebKit/mac/Version.xcconfig.
2014-03-14 Mark Rowe <mrowe@apple.com>
Fix the production build.
Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
be at the expected relative path when working from installed source.
* Configurations/Base.xcconfig:
2014-03-14 Maciej Stachowiak <mjs@apple.com>
Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
https://bugs.webkit.org/show_bug.cgi?id=130276
<rdar://problem/16266927>
Reviewed by Simon Fraser.
No new tests because no behavior changes.
* DerivedSources.make:
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
* Modules/encryptedmedia/MediaKeyMessageEvent.cpp:
* Modules/encryptedmedia/MediaKeyMessageEvent.h:
* Modules/encryptedmedia/MediaKeyMessageEvent.idl:
* Modules/encryptedmedia/MediaKeyNeededEvent.cpp:
* Modules/encryptedmedia/MediaKeyNeededEvent.h:
* Modules/encryptedmedia/MediaKeyNeededEvent.idl:
* Modules/encryptedmedia/MediaKeySession.idl:
* Modules/encryptedmedia/MediaKeys.idl:
* Modules/geolocation/NavigatorGeolocation.cpp:
* Modules/indexeddb/DOMWindowIndexedDatabase.idl:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabaseException.cpp:
* Modules/indexeddb/IDBDatabaseMetadata.h:
* Modules/indexeddb/IDBEventDispatcher.cpp:
* Modules/indexeddb/IDBEventDispatcher.h:
* Modules/indexeddb/IDBFactory.cpp:
* Modules/indexeddb/IDBFactory.h:
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBHistograms.h:
* Modules/indexeddb/IDBIndexMetadata.h:
* Modules/indexeddb/IDBObjectStoreMetadata.h:
* Modules/indexeddb/IDBRecordIdentifier.h:
* Modules/indexeddb/IDBRequest.cpp:
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBRequest.idl:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/mediacontrols/MediaControlsHost.cpp:
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
* Modules/mediacontrols/mediaControlsApple.css:
* Modules/mediacontrols/mediaControlsiOS.css:
* Modules/mediasource/AudioTrackMediaSource.h:
* Modules/mediasource/AudioTrackMediaSource.idl:
* Modules/mediasource/TextTrackMediaSource.h:
* Modules/mediasource/TextTrackMediaSource.idl:
* Modules/mediasource/VideoTrackMediaSource.h:
* Modules/mediasource/VideoTrackMediaSource.idl:
* Modules/mediastream/AllAudioCapabilities.h:
* Modules/mediastream/AllAudioCapabilities.idl:
* Modules/mediastream/AllVideoCapabilities.h:
* Modules/mediastream/AllVideoCapabilities.idl:
* Modules/mediastream/AudioStreamTrack.cpp:
* Modules/mediastream/AudioStreamTrack.h:
* Modules/mediastream/AudioStreamTrack.idl:
* Modules/mediastream/CapabilityRange.cpp:
* Modules/mediastream/CapabilityRange.h:
* Modules/mediastream/CapabilityRange.idl:
* Modules/mediastream/MediaSourceStates.cpp:
* Modules/mediastream/MediaSourceStates.h:
* Modules/mediastream/MediaSourceStates.idl:
* Modules/mediastream/MediaStreamCapabilities.cpp:
* Modules/mediastream/MediaStreamCapabilities.h:
* Modules/mediastream/MediaStreamCapabilities.idl:
* Modules/mediastream/MediaTrackConstraint.cpp:
* Modules/mediastream/MediaTrackConstraint.h:
* Modules/mediastream/MediaTrackConstraint.idl:
* Modules/mediastream/MediaTrackConstraintSet.cpp:
* Modules/mediastream/MediaTrackConstraintSet.h:
* Modules/mediastream/MediaTrackConstraints.cpp:
* Modules/mediastream/MediaTrackConstraints.h:
* Modules/mediastream/MediaTrackConstraints.idl:
* Modules/mediastream/NavigatorMediaStream.cpp:
* Modules/mediastream/NavigatorUserMediaError.cpp:
* Modules/mediastream/RTCConfiguration.idl:
* Modules/mediastream/RTCIceServer.idl:
* Modules/mediastream/RTCOfferAnswerOptions.cpp:
* Modules/mediastream/RTCOfferAnswerOptions.h:
* Modules/mediastream/VideoStreamTrack.cpp:
* Modules/mediastream/VideoStreamTrack.h:
* Modules/mediastream/VideoStreamTrack.idl:
* Modules/networkinfo/NetworkInfo.cpp:
* Modules/networkinfo/NetworkInfo.h:
* Modules/networkinfo/NetworkInfoConnection.cpp:
* Modules/networkinfo/NetworkInfoConnection.h:
* Modules/networkinfo/NetworkInfoController.cpp:
* Modules/notifications/DOMWindowNotifications.cpp:
* Modules/notifications/DOMWindowNotifications.h:
* Modules/notifications/DOMWindowNotifications.idl:
* Modules/notifications/NotificationController.cpp:
* Modules/notifications/NotificationController.h:
* Modules/notifications/NotificationPermissionCallback.h:
* Modules/notifications/NotificationPermissionCallback.idl:
* Modules/notifications/WorkerGlobalScopeNotifications.cpp:
* Modules/notifications/WorkerGlobalScopeNotifications.h:
* Modules/notifications/WorkerGlobalScopeNotifications.idl:
* Modules/plugins/PluginReplacement.h:
* Modules/plugins/QuickTimePluginReplacement.cpp:
* Modules/plugins/QuickTimePluginReplacement.css:
* Modules/plugins/QuickTimePluginReplacement.h:
* Modules/plugins/QuickTimePluginReplacement.idl:
* Modules/quota/DOMWindowQuota.idl:
* Modules/speech/DOMWindowSpeechSynthesis.h:
* Modules/speech/DOMWindowSpeechSynthesis.idl:
* Modules/speech/SpeechSynthesis.cpp:
* Modules/speech/SpeechSynthesis.h:
* Modules/speech/SpeechSynthesis.idl:
* Modules/speech/SpeechSynthesisEvent.cpp:
* Modules/speech/SpeechSynthesisEvent.h:
* Modules/speech/SpeechSynthesisEvent.idl:
* Modules/speech/SpeechSynthesisUtterance.cpp:
* Modules/speech/SpeechSynthesisUtterance.h:
* Modules/speech/SpeechSynthesisUtterance.idl:
* Modules/speech/SpeechSynthesisVoice.cpp:
* Modules/speech/SpeechSynthesisVoice.h:
* Modules/speech/SpeechSynthesisVoice.idl:
* Modules/webaudio/AudioBuffer.cpp:
* Modules/webaudio/AudioBuffer.h:
* Modules/webaudio/AudioBuffer.idl:
* Modules/webaudio/AudioListener.cpp:
* Modules/webaudio/AudioListener.h:
* Modules/webaudio/AudioListener.idl:
* Modules/webaudio/AudioParam.h:
* Modules/webaudio/AudioParam.idl:
* Modules/webaudio/AudioParamTimeline.h:
* Modules/webaudio/AudioScheduledSourceNode.h:
* Modules/webaudio/ChannelMergerNode.cpp:
* Modules/webaudio/ChannelMergerNode.h:
* Modules/webaudio/ChannelMergerNode.idl:
* Modules/webaudio/MediaStreamAudioSource.cpp:
* Modules/webaudio/MediaStreamAudioSource.h:
* Modules/webaudio/PeriodicWave.cpp:
* Modules/webaudio/PeriodicWave.h:
* Modules/webdatabase/ChangeVersionWrapper.cpp:
* Modules/webdatabase/ChangeVersionWrapper.h:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
* Modules/webdatabase/DOMWindowWebDatabase.h:
* Modules/webdatabase/DOMWindowWebDatabase.idl:
* Modules/webdatabase/Database.cpp:
* Modules/webdatabase/Database.h:
* Modules/webdatabase/Database.idl:
* Modules/webdatabase/DatabaseAuthorizer.cpp:
* Modules/webdatabase/DatabaseAuthorizer.h:
* Modules/webdatabase/DatabaseBackendBase.cpp:
* Modules/webdatabase/DatabaseBackendBase.h:
* Modules/webdatabase/DatabaseCallback.idl:
* Modules/webdatabase/DatabaseContext.cpp:
* Modules/webdatabase/DatabaseContext.h:
* Modules/webdatabase/DatabaseDetails.h:
* Modules/webdatabase/DatabaseTask.cpp:
* Modules/webdatabase/DatabaseTask.h:
* Modules/webdatabase/DatabaseThread.cpp:
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/SQLCallbackWrapper.h:
* Modules/webdatabase/SQLError.h:
* Modules/webdatabase/SQLError.idl:
* Modules/webdatabase/SQLException.cpp:
* Modules/webdatabase/SQLResultSet.cpp:
* Modules/webdatabase/SQLResultSet.h:
* Modules/webdatabase/SQLResultSet.idl:
* Modules/webdatabase/SQLResultSetRowList.cpp:
* Modules/webdatabase/SQLResultSetRowList.h:
* Modules/webdatabase/SQLResultSetRowList.idl:
* Modules/webdatabase/SQLStatement.cpp:
* Modules/webdatabase/SQLStatement.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
* Modules/webdatabase/SQLStatementBackend.h:
* Modules/webdatabase/SQLStatementCallback.h:
* Modules/webdatabase/SQLStatementCallback.idl:
* Modules/webdatabase/SQLStatementErrorCallback.h:
* Modules/webdatabase/SQLStatementErrorCallback.idl:
* Modules/webdatabase/SQLStatementSync.cpp:
* Modules/webdatabase/SQLTransaction.cpp:
* Modules/webdatabase/SQLTransaction.h:
* Modules/webdatabase/SQLTransaction.idl:
* Modules/webdatabase/SQLTransactionBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCallback.h:
* Modules/webdatabase/SQLTransactionCallback.idl:
* Modules/webdatabase/SQLTransactionErrorCallback.h:
* Modules/webdatabase/SQLTransactionErrorCallback.idl:
* Modules/webdatabase/WorkerGlobalScopeWebDatabase.cpp:
* Modules/webdatabase/WorkerGlobalScopeWebDatabase.h:
* Modules/webdatabase/WorkerGlobalScopeWebDatabase.idl:
* Resources/deleteButton.tiff:
* Resources/deleteButtonPressed.tiff:
* WebCore.vcxproj/MigrateScripts:
* WebCorePrefix.cpp:
* accessibility/AXObjectCache.cpp:
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityARIAGrid.cpp:
* accessibility/AccessibilityARIAGrid.h:
* accessibility/AccessibilityARIAGridCell.cpp:
* accessibility/AccessibilityARIAGridCell.h:
* accessibility/AccessibilityARIAGridRow.cpp:
* accessibility/AccessibilityARIAGridRow.h:
* accessibility/AccessibilityImageMapLink.cpp:
* accessibility/AccessibilityImageMapLink.h:
* accessibility/AccessibilityList.cpp:
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityListBox.cpp:
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityListBoxOption.cpp:
* accessibility/AccessibilityListBoxOption.h:
* accessibility/AccessibilityMediaControls.cpp:
* accessibility/AccessibilityMediaControls.h:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySVGRoot.cpp:
* accessibility/AccessibilitySVGRoot.h:
* accessibility/AccessibilityScrollbar.cpp:
* accessibility/AccessibilityScrollbar.h:
* accessibility/AccessibilitySlider.cpp:
* accessibility/AccessibilitySlider.h:
* accessibility/AccessibilityTable.cpp:
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableCell.cpp:
* accessibility/AccessibilityTableCell.h:
* accessibility/AccessibilityTableColumn.cpp:
* accessibility/AccessibilityTableColumn.h:
* accessibility/AccessibilityTableHeaderContainer.cpp:
* accessibility/AccessibilityTableHeaderContainer.h:
* accessibility/AccessibilityTableRow.cpp:
* accessibility/AccessibilityTableRow.h:
* accessibility/ios/AXObjectCacheIOS.mm:
* accessibility/ios/AccessibilityObjectIOS.mm:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
* accessibility/mac/AXObjectCacheMac.mm:
* accessibility/mac/AccessibilityObjectMac.mm:
* accessibility/mac/WebAccessibilityObjectWrapperBase.h:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
* accessibility/mac/WebAccessibilityObjectWrapperMac.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
* bindings/gobject/WebKitDOMEventTarget.cpp:
* bindings/gobject/WebKitDOMHTMLPrivate.cpp:
* bindings/gobject/WebKitDOMHTMLPrivate.h:
* bindings/js/Dictionary.cpp:
* bindings/js/GCController.cpp:
* bindings/js/GCController.h:
* bindings/js/JSAttrCustom.cpp:
* bindings/js/JSAudioTrackCustom.cpp:
* bindings/js/JSAudioTrackListCustom.cpp:
* bindings/js/JSCSSRuleCustom.cpp:
* bindings/js/JSCSSRuleCustom.h:
* bindings/js/JSCSSRuleListCustom.cpp:
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
* bindings/js/JSCSSValueCustom.cpp:
* bindings/js/JSCallbackData.cpp:
* bindings/js/JSCallbackData.h:
* bindings/js/JSCanvasRenderingContextCustom.cpp:
* bindings/js/JSClipboardCustom.cpp:
* bindings/js/JSCustomSQLStatementErrorCallback.cpp:
* bindings/js/JSCustomXPathNSResolver.cpp:
* bindings/js/JSCustomXPathNSResolver.h:
* bindings/js/JSDOMGlobalObject.cpp:
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowShell.cpp:
* bindings/js/JSDOMWindowShell.h:
* bindings/js/JSElementCustom.cpp:
* bindings/js/JSEventCustom.cpp:
* bindings/js/JSHTMLAppletElementCustom.cpp:
* bindings/js/JSHTMLCanvasElementCustom.cpp:
* bindings/js/JSHTMLDocumentCustom.cpp:
* bindings/js/JSHTMLElementCustom.cpp:
* bindings/js/JSHTMLEmbedElementCustom.cpp:
* bindings/js/JSHTMLFormElementCustom.cpp:
* bindings/js/JSHTMLFrameElementCustom.cpp:
* bindings/js/JSHTMLFrameSetElementCustom.cpp:
* bindings/js/JSHTMLObjectElementCustom.cpp:
* bindings/js/JSHTMLSelectElementCustom.h:
* bindings/js/JSHistoryCustom.cpp:
* bindings/js/JSMediaListCustom.h:
* bindings/js/JSMediaSourceStatesCustom.cpp:
* bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
* bindings/js/JSNamedNodeMapCustom.cpp:
* bindings/js/JSNodeCustom.cpp:
* bindings/js/JSNodeCustom.h:
* bindings/js/JSNodeFilterCustom.cpp:
* bindings/js/JSNodeListCustom.cpp:
* bindings/js/JSSQLResultSetRowListCustom.cpp:
* bindings/js/JSSQLTransactionCustom.cpp:
* bindings/js/JSSQLTransactionSyncCustom.cpp:
* bindings/js/JSSVGElementInstanceCustom.cpp:
* bindings/js/JSStyleSheetCustom.cpp:
* bindings/js/JSStyleSheetCustom.h:
* bindings/js/JSStyleSheetListCustom.cpp:
* bindings/js/JSTextTrackCueCustom.cpp:
* bindings/js/JSTextTrackCustom.cpp:
* bindings/js/JSTextTrackListCustom.cpp:
* bindings/js/JSTouchCustom.cpp:
* bindings/js/JSTouchListCustom.cpp:
* bindings/js/JSTrackCustom.cpp:
* bindings/js/JSTrackCustom.h:
* bindings/js/JSTrackEventCustom.cpp:
* bindings/js/JSVideoTrackCustom.cpp:
* bindings/js/JSVideoTrackListCustom.cpp:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
* bindings/js/JSWebKitPointCustom.cpp:
* bindings/js/JSWorkerGlobalScopeBase.cpp:
* bindings/js/JSWorkerGlobalScopeBase.h:
* bindings/js/JSXMLHttpRequestCustom.cpp:
* bindings/js/JSXSLTProcessorCustom.cpp:
* bindings/js/ScriptControllerMac.mm:
* bindings/js/ScriptProfile.cpp:
* bindings/js/ScriptProfile.h:
* bindings/js/ScriptProfileNode.h:
* bindings/js/ScriptProfiler.cpp:
* bindings/js/ScriptProfiler.h:
* bindings/js/SerializedScriptValue.cpp:
* bindings/js/SerializedScriptValue.h:
* bindings/js/WorkerScriptController.cpp:
* bindings/js/WorkerScriptController.h:
* bindings/objc/DOM.h:
* bindings/objc/DOM.mm:
* bindings/objc/DOMAbstractView.mm:
* bindings/objc/DOMAbstractViewFrame.h:
* bindings/objc/DOMCSS.h:
* bindings/objc/DOMCSS.mm:
* bindings/objc/DOMCore.h:
* bindings/objc/DOMCustomXPathNSResolver.h:
* bindings/objc/DOMCustomXPathNSResolver.mm:
* bindings/objc/DOMEventException.h:
* bindings/objc/DOMEvents.h:
* bindings/objc/DOMEvents.mm:
* bindings/objc/DOMException.h:
* bindings/objc/DOMExtensions.h:
* bindings/objc/DOMHTML.h:
* bindings/objc/DOMHTML.mm:
* bindings/objc/DOMInternal.h:
* bindings/objc/DOMInternal.mm:
* bindings/objc/DOMObject.h:
* bindings/objc/DOMObject.mm:
* bindings/objc/DOMPrivate.h:
* bindings/objc/DOMRangeException.h:
* bindings/objc/DOMRanges.h:
* bindings/objc/DOMStylesheets.h:
* bindings/objc/DOMTraversal.h:
* bindings/objc/DOMUIKitExtensions.h:
* bindings/objc/DOMUIKitExtensions.mm:
* bindings/objc/DOMUtility.mm:
* bindings/objc/DOMViews.h:
* bindings/objc/DOMXPath.h:
* bindings/objc/DOMXPath.mm:
* bindings/objc/DOMXPathException.h:
* bindings/objc/ExceptionHandlers.h:
* bindings/objc/ExceptionHandlers.mm:
* bindings/objc/ObjCEventListener.h:
* bindings/objc/ObjCEventListener.mm:
* bindings/objc/ObjCNodeFilterCondition.h:
* bindings/objc/ObjCNodeFilterCondition.mm:
* bindings/objc/PublicDOMInterfaces.h:
* bindings/objc/WebScriptObject.mm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/InFilesCompiler.pm:
(license):
* bindings/scripts/InFilesParser.pm:
* bindings/scripts/generate-bindings.pl:
* bindings/scripts/test/ObjC/DOMFloat64Array.h:
* bindings/scripts/test/ObjC/DOMFloat64Array.mm:
* bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
* bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
* bindings/scripts/test/ObjC/DOMTestCallback.h:
* bindings/scripts/test/ObjC/DOMTestCallback.mm:
* bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
* bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
* bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
* bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestEventTarget.h:
* bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
* bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
* bindings/scripts/test/ObjC/DOMTestException.h:
* bindings/scripts/test/ObjC/DOMTestException.mm:
* bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
* bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
* bindings/scripts/test/ObjC/DOMTestInterface.h:
* bindings/scripts/test/ObjC/DOMTestInterface.mm:
* bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.h:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
* bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
* bindings/scripts/test/ObjC/DOMTestNamedConstructor.h:
* bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
* bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
* bindings/scripts/test/ObjC/DOMTestNode.h:
* bindings/scripts/test/ObjC/DOMTestNode.mm:
* bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
* bindings/scripts/test/ObjC/DOMTestObjInternal.h:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
* bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
* bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
* bindings/scripts/test/ObjC/DOMTestTypedefs.h:
* bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
* bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
* bindings/scripts/test/ObjC/DOMattribute.h:
* bindings/scripts/test/ObjC/DOMattribute.mm:
* bindings/scripts/test/ObjC/DOMattributeInternal.h:
* bindings/scripts/test/ObjC/DOMreadonly.h:
* bindings/scripts/test/ObjC/DOMreadonly.mm:
* bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
* bindings/scripts/test/TestCallback.idl:
* bindings/scripts/test/TestCustomNamedGetter.idl:
* bindings/scripts/test/TestDomainSecurity.idl:
* bindings/scripts/test/TestEventConstructor.idl:
* bindings/scripts/test/TestEventTarget.idl:
* bindings/scripts/test/TestException.idl:
* bindings/scripts/test/TestImplements.idl:
* bindings/scripts/test/TestInterface.idl:
* bindings/scripts/test/TestMediaQueryListListener.idl:
* bindings/scripts/test/TestNamedConstructor.idl:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/TestOverloadedConstructors.idl:
* bindings/scripts/test/TestSupplemental.idl:
* bridge/Bridge.h:
* bridge/IdentifierRep.cpp:
* bridge/IdentifierRep.h:
* bridge/NP_jsobject.cpp:
* bridge/NP_jsobject.h:
* bridge/c/CRuntimeObject.cpp:
* bridge/c/CRuntimeObject.h:
* bridge/c/c_class.cpp:
* bridge/c/c_class.h:
* bridge/c/c_instance.cpp:
* bridge/c/c_instance.h:
* bridge/c/c_runtime.cpp:
* bridge/c/c_runtime.h:
* bridge/c/c_utility.cpp:
* bridge/c/c_utility.h:
* bridge/jsc/BridgeJSC.cpp:
* bridge/jsc/BridgeJSC.h:
* bridge/npruntime.cpp:
* bridge/npruntime_impl.h:
* bridge/npruntime_priv.h:
* bridge/objc/ObjCRuntimeObject.h:
* bridge/objc/ObjCRuntimeObject.mm:
* bridge/objc/WebScriptObject.h:
* bridge/objc/objc_class.h:
* bridge/objc/objc_class.mm:
* bridge/objc/objc_header.h:
* bridge/objc/objc_instance.h:
* bridge/objc/objc_instance.mm:
* bridge/objc/objc_runtime.h:
* bridge/objc/objc_runtime.mm:
* bridge/objc/objc_utility.h:
* bridge/objc/objc_utility.mm:
* bridge/runtime_array.cpp:
* bridge/runtime_array.h:
* bridge/runtime_method.cpp:
* bridge/runtime_method.h:
* bridge/runtime_object.cpp:
* bridge/runtime_object.h:
* bridge/runtime_root.cpp:
* bridge/runtime_root.h:
* bridge/testbindings.mm:
* css/CSSAllInOne.cpp:
* css/CSSAspectRatioValue.cpp:
* css/CSSAspectRatioValue.h:
* css/CSSBorderImageSliceValue.cpp:
* css/CSSBorderImageSliceValue.h:
* css/CSSCanvasValue.cpp:
* css/CSSCanvasValue.h:
* css/CSSCrossfadeValue.cpp:
* css/CSSCrossfadeValue.h:
* css/CSSFontFace.cpp:
* css/CSSFontFace.h:
* css/CSSFontFaceSource.cpp:
* css/CSSFontFaceSource.h:
* css/CSSFontFaceSrcValue.cpp:
* css/CSSFontFaceSrcValue.h:
* css/CSSFontFeatureValue.cpp:
* css/CSSFontFeatureValue.h:
* css/CSSFontSelector.cpp:
* css/CSSFontSelector.h:
* css/CSSFontValue.cpp:
* css/CSSGradientValue.cpp:
* css/CSSGradientValue.h:
* css/CSSImageGeneratorValue.cpp:
* css/CSSImageGeneratorValue.h:
* css/CSSMediaRule.cpp:
* css/CSSProperty.cpp:
* css/CSSProperty.h:
* css/CSSReflectValue.cpp:
* css/CSSReflectValue.h:
* css/CSSReflectionDirection.h:
* css/CSSRuleList.cpp:
* css/CSSRuleList.h:
* css/CSSRuleList.idl:
* css/CSSSegmentedFontFace.cpp:
* css/CSSSegmentedFontFace.h:
* css/CSSShadowValue.cpp:
* css/CSSTimingFunctionValue.cpp:
* css/CSSTimingFunctionValue.h:
* css/CSSUnicodeRangeValue.cpp:
* css/CSSUnicodeRangeValue.h:
* css/CSSUnknownRule.idl:
* css/CSSValue.cpp:
* css/CSSValueList.idl:
* css/MediaAllInOne.cpp:
* css/MediaFeatureNames.cpp:
* css/MediaList.idl:
* css/MediaQuery.cpp:
* css/MediaQuery.h:
* css/MediaQueryEvaluator.cpp:
* css/MediaQueryEvaluator.h:
* css/MediaQueryExp.cpp:
* css/MediaQueryExp.h:
* css/Pair.h:
* css/PropertySetCSSStyleDeclaration.h:
* css/RGBColor.cpp:
* css/RGBColor.h:
* css/SVGCSSParser.cpp:
* css/SVGCSSStyleSelector.cpp:
* css/StyleInvalidationAnalysis.cpp:
* css/StyleInvalidationAnalysis.h:
* css/StyleMedia.cpp:
* css/StyleMedia.h:
* css/StyleMedia.idl:
* css/StyleSheet.cpp:
* css/WebKitCSSFilterValue.cpp:
* css/WebKitCSSFilterValue.h:
* css/WebKitCSSFilterValue.idl:
* css/WebKitCSSKeyframeRule.cpp:
* css/WebKitCSSKeyframeRule.h:
* css/WebKitCSSKeyframeRule.idl:
* css/WebKitCSSKeyframesRule.cpp:
* css/WebKitCSSKeyframesRule.h:
* css/WebKitCSSKeyframesRule.idl:
* css/WebKitCSSTransformValue.cpp:
* css/WebKitCSSTransformValue.h:
* css/WebKitCSSTransformValue.idl:
* css/make-css-file-arrays.pl:
* css/mediaControls.css:
* css/mediaControlsEfl.css:
* css/mediaControlsEflFullscreen.css:
* css/mediaControlsGtk.css:
* css/mediaControlsiOS.css:
* css/svg.css:
* dom/ActiveDOMObject.cpp:
* dom/ActiveDOMObject.h:
* dom/BeforeLoadEvent.h:
* dom/BeforeLoadEvent.idl:
* dom/BeforeTextInsertedEvent.cpp:
* dom/BeforeTextInsertedEvent.h:
* dom/BeforeUnloadEvent.cpp:
* dom/BeforeUnloadEvent.h:
* dom/BeforeUnloadEvent.idl:
* dom/ClassNodeList.cpp:
* dom/ClassNodeList.h:
* dom/ClientRect.cpp:
* dom/ClientRect.h:
* dom/ClientRect.idl:
* dom/ClientRectList.cpp:
* dom/ClientRectList.h:
* dom/ClientRectList.idl:
* dom/Clipboard.cpp:
* dom/Clipboard.idl:
* dom/ClipboardAccessPolicy.h:
* dom/ClipboardMac.mm:
* dom/CompositionEvent.cpp:
* dom/CompositionEvent.h:
* dom/CompositionEvent.idl:
* dom/ContextDestructionObserver.cpp:
* dom/ContextDestructionObserver.h:
* dom/CurrentScriptIncrementer.h:
* dom/CustomEvent.cpp:
* dom/CustomEvent.h:
* dom/CustomEvent.idl:
* dom/DOMCoreException.cpp:
* dom/DOMCoreException.h:
* dom/DOMCoreException.idl:
* dom/DOMError.idl:
* dom/DeviceMotionEvent.cpp:
* dom/DeviceMotionEvent.h:
* dom/DeviceMotionEvent.idl:
* dom/DocumentEventQueue.cpp:
* dom/DocumentEventQueue.h:
* dom/DocumentMarker.h:
* dom/DocumentParser.h:
* dom/DocumentSharedObjectPool.cpp:
* dom/DocumentSharedObjectPool.h:
* dom/Entity.idl:
* dom/EventContext.cpp:
* dom/EventContext.h:
* dom/EventException.cpp:
* dom/EventException.h:
* dom/EventException.idl:
* dom/EventListener.idl:
* dom/EventListenerMap.cpp:
* dom/EventListenerMap.h:
* dom/EventNames.cpp:
* dom/EventQueue.h:
* dom/EventTarget.cpp:
* dom/EventTarget.h:
* dom/ExceptionBase.cpp:
* dom/ExceptionBase.h:
* dom/GenericEventQueue.cpp:
* dom/GenericEventQueue.h:
* dom/KeyboardEvent.idl:
* dom/MessageChannel.cpp:
* dom/MessageChannel.h:
* dom/MessageChannel.idl:
* dom/MessageEvent.cpp:
* dom/MessageEvent.h:
* dom/MessageEvent.idl:
* dom/MessagePort.cpp:
* dom/MessagePort.h:
* dom/MessagePort.idl:
* dom/MouseRelatedEvent.h:
* dom/MutationEvent.idl:
* dom/Notation.idl:
* dom/OverflowEvent.cpp:
* dom/OverflowEvent.h:
* dom/OverflowEvent.idl:
* dom/PopStateEvent.cpp:
* dom/PopStateEvent.h:
* dom/PopStateEvent.idl:
* dom/Position.cpp:
* dom/Position.h:
* dom/ProcessingInstruction.idl:
* dom/ProgressEvent.cpp:
* dom/ProgressEvent.h:
* dom/ProgressEvent.idl:
* dom/Range.idl:
* dom/RangeException.cpp:
* dom/RangeException.h:
* dom/ScriptExecutionContext.cpp:
* dom/ScriptExecutionContext.h:
* dom/SecurityContext.cpp:
* dom/SecurityContext.h:
* dom/StaticNodeList.cpp:
* dom/StaticNodeList.h:
* dom/Text.idl:
* dom/TextEvent.cpp:
* dom/TextEvent.h:
* dom/TextEvent.idl:
* dom/Touch.cpp:
* dom/Touch.h:
* dom/Touch.idl:
* dom/TouchEvent.cpp:
* dom/TouchEvent.h:
* dom/TouchEvent.idl:
* dom/TouchList.cpp:
* dom/TouchList.h:
* dom/TouchList.idl:
* dom/TransitionEvent.cpp:
* dom/TransitionEvent.h:
* dom/TransitionEvent.idl:
* dom/TreeWalker.idl:
* dom/UIEvent.idl:
* dom/UIEventWithKeyState.cpp:
* dom/WebKitAnimationEvent.cpp:
* dom/WebKitAnimationEvent.h:
* dom/WebKitAnimationEvent.idl:
* dom/WebKitTransitionEvent.cpp:
* dom/WebKitTransitionEvent.h:
* dom/WebKitTransitionEvent.idl:
* dom/make_dom_exceptions.pl:
* dom/make_event_factory.pl:
* dom/make_names.pl:
(printLicenseHeader):
* editing/AlternativeTextController.cpp:
* editing/AlternativeTextController.h:
* editing/AppendNodeCommand.cpp:
* editing/AppendNodeCommand.h:
* editing/ApplyStyleCommand.cpp:
* editing/ApplyStyleCommand.h:
* editing/BreakBlockquoteCommand.cpp:
* editing/BreakBlockquoteCommand.h:
* editing/CompositeEditCommand.cpp:
* editing/CompositeEditCommand.h:
* editing/CreateLinkCommand.cpp:
* editing/CreateLinkCommand.h:
* editing/DeleteButton.cpp:
* editing/DeleteButton.h:
* editing/DeleteButtonController.cpp:
* editing/DeleteButtonController.h:
* editing/DeleteFromTextNodeCommand.cpp:
* editing/DeleteFromTextNodeCommand.h:
* editing/DeleteSelectionCommand.cpp:
* editing/DeleteSelectionCommand.h:
* editing/EditAction.h:
* editing/EditCommand.cpp:
* editing/EditCommand.h:
* editing/EditingBoundary.h:
* editing/EditingStyle.cpp:
* editing/Editor.cpp:
* editing/Editor.h:
* editing/EditorCommand.cpp:
* editing/EditorDeleteAction.h:
* editing/EditorInsertAction.h:
* editing/FormatBlockCommand.cpp:
* editing/FormatBlockCommand.h:
* editing/FrameSelection.cpp:
* editing/FrameSelection.h:
* editing/HTMLInterchange.cpp:
* editing/HTMLInterchange.h:
* editing/IndentOutdentCommand.cpp:
* editing/IndentOutdentCommand.h:
* editing/InsertIntoTextNodeCommand.cpp:
* editing/InsertIntoTextNodeCommand.h:
* editing/InsertLineBreakCommand.cpp:
* editing/InsertLineBreakCommand.h:
* editing/InsertListCommand.cpp:
* editing/InsertListCommand.h:
* editing/InsertNodeBeforeCommand.cpp:
* editing/InsertNodeBeforeCommand.h:
* editing/InsertParagraphSeparatorCommand.cpp:
* editing/InsertParagraphSeparatorCommand.h:
* editing/InsertTextCommand.cpp:
* editing/InsertTextCommand.h:
* editing/MarkupAccumulator.h:
* editing/MergeIdenticalElementsCommand.cpp:
* editing/MergeIdenticalElementsCommand.h:
* editing/ModifySelectionListLevel.cpp:
* editing/ModifySelectionListLevel.h:
* editing/MoveSelectionCommand.cpp:
* editing/MoveSelectionCommand.h:
* editing/RemoveCSSPropertyCommand.cpp:
* editing/RemoveCSSPropertyCommand.h:
* editing/RemoveFormatCommand.cpp:
* editing/RemoveFormatCommand.h:
* editing/RemoveNodeCommand.cpp:
* editing/RemoveNodeCommand.h:
* editing/RemoveNodePreservingChildrenCommand.cpp:
* editing/RemoveNodePreservingChildrenCommand.h:
* editing/ReplaceSelectionCommand.cpp:
* editing/ReplaceSelectionCommand.h:
* editing/SetNodeAttributeCommand.cpp:
* editing/SetNodeAttributeCommand.h:
* editing/SetSelectionCommand.cpp:
* editing/SetSelectionCommand.h:
* editing/SimplifyMarkupCommand.cpp:
* editing/SimplifyMarkupCommand.h:
* editing/SmartReplace.cpp:
* editing/SmartReplace.h:
* editing/SmartReplaceCF.cpp:
* editing/SpellChecker.cpp:
* editing/SpellChecker.h:
* editing/SpellingCorrectionCommand.cpp:
* editing/SpellingCorrectionCommand.h:
* editing/SplitElementCommand.cpp:
* editing/SplitElementCommand.h:
* editing/SplitTextNodeCommand.cpp:
* editing/SplitTextNodeCommand.h:
* editing/SplitTextNodeContainingElementCommand.cpp:
* editing/SplitTextNodeContainingElementCommand.h:
* editing/TextAffinity.h:
* editing/TextCheckingHelper.cpp:
* editing/TextGranularity.h:
* editing/TextIterator.cpp:
* editing/TextIterator.h:
* editing/TextIteratorBehavior.h:
* editing/TypingCommand.cpp:
* editing/TypingCommand.h:
* editing/UnlinkCommand.cpp:
* editing/UnlinkCommand.h:
* editing/VisiblePosition.cpp:
* editing/VisiblePosition.h:
* editing/VisibleSelection.cpp:
* editing/VisibleSelection.h:
* editing/VisibleUnits.cpp:
* editing/VisibleUnits.h:
* editing/WrapContentsInDummySpanCommand.cpp:
* editing/WrapContentsInDummySpanCommand.h:
* editing/WritingDirection.h:
* editing/efl/EditorEfl.cpp:
* editing/htmlediting.cpp:
* editing/htmlediting.h:
* editing/mac/EditorMac.mm:
* editing/mac/FrameSelectionMac.mm:
* editing/markup.cpp:
* editing/markup.h:
* extract-localizable-strings.pl:
* fileapi/FileException.cpp:
* history/BackForwardClient.h:
* history/BackForwardList.cpp:
* history/BackForwardList.h:
* history/CachedFrame.cpp:
* history/CachedFrame.h:
* history/CachedFramePlatformData.h:
* history/CachedPage.cpp:
* history/CachedPage.h:
* history/HistoryItem.cpp:
* history/HistoryItem.h:
* history/PageCache.cpp:
* history/PageCache.h:
* history/mac/HistoryItemMac.mm:
* html/FTPDirectoryDocument.cpp:
* html/FTPDirectoryDocument.h:
* html/HTMLAudioElement.cpp:
* html/HTMLAudioElement.h:
* html/HTMLAudioElement.idl:
* html/HTMLCanvasElement.cpp:
* html/HTMLCanvasElement.h:
* html/HTMLCanvasElement.idl:
* html/HTMLFieldSetElement.idl:
* html/HTMLImageLoader.h:
* html/HTMLMediaElement.cpp:
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl:
* html/HTMLOptionsCollection.cpp:
* html/HTMLPlugInElement.cpp:
* html/HTMLSourceElement.cpp:
* html/HTMLSourceElement.h:
* html/HTMLSourceElement.idl:
* html/HTMLTablePartElement.cpp:
* html/HTMLTableRowsCollection.cpp:
* html/HTMLTableRowsCollection.h:
* html/HTMLTitleElement.idl:
* html/HTMLTrackElement.cpp:
* html/HTMLTrackElement.h:
* html/HTMLTrackElement.idl:
* html/HTMLVideoElement.cpp:
* html/HTMLVideoElement.h:
* html/HTMLVideoElement.idl:
* html/ImageData.cpp:
* html/ImageData.h:
* html/ImageData.idl:
* html/ImageDocument.cpp:
* html/ImageDocument.h:
* html/MediaController.cpp:
* html/MediaController.h:
* html/MediaController.idl:
* html/MediaControllerInterface.h:
* html/MediaError.h:
* html/MediaError.idl:
* html/MediaFragmentURIParser.cpp:
* html/MediaFragmentURIParser.h:
* html/MediaKeyError.h:
* html/MediaKeyError.idl:
* html/MediaKeyEvent.cpp:
* html/MediaKeyEvent.h:
* html/MediaKeyEvent.idl:
* html/PluginDocument.cpp:
* html/PluginDocument.h:
* html/TextDocument.cpp:
* html/TextDocument.h:
* html/TimeRanges.cpp:
* html/TimeRanges.h:
* html/TimeRanges.idl:
* html/VoidCallback.h:
* html/VoidCallback.idl:
* html/canvas/CanvasGradient.cpp:
* html/canvas/CanvasGradient.h:
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasPattern.cpp:
* html/canvas/CanvasPattern.h:
* html/canvas/CanvasPattern.idl:
* html/canvas/CanvasRenderingContext.cpp:
* html/canvas/CanvasRenderingContext.h:
* html/canvas/CanvasRenderingContext.idl:
* html/canvas/CanvasRenderingContext2D.cpp:
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/CanvasStyle.cpp:
* html/canvas/CanvasStyle.h:
* html/canvas/DOMPath.idl:
* html/canvas/OESVertexArrayObject.cpp:
* html/canvas/OESVertexArrayObject.h:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLBuffer.cpp:
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLBuffer.idl:
* html/canvas/WebGLContextGroup.cpp:
* html/canvas/WebGLContextGroup.h:
* html/canvas/WebGLContextObject.cpp:
* html/canvas/WebGLContextObject.h:
* html/canvas/WebGLFramebuffer.cpp:
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLFramebuffer.idl:
* html/canvas/WebGLObject.cpp:
* html/canvas/WebGLObject.h:
* html/canvas/WebGLProgram.cpp:
* html/canvas/WebGLProgram.h:
* html/canvas/WebGLProgram.idl:
* html/canvas/WebGLRenderbuffer.cpp:
* html/canvas/WebGLRenderbuffer.h:
* html/canvas/WebGLRenderbuffer.idl:
* html/canvas/WebGLRenderingContext.cpp:
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
* html/canvas/WebGLShader.cpp:
* html/canvas/WebGLShader.h:
* html/canvas/WebGLShader.idl:
* html/canvas/WebGLSharedObject.cpp:
* html/canvas/WebGLSharedObject.h:
* html/canvas/WebGLTexture.cpp:
* html/canvas/WebGLTexture.h:
* html/canvas/WebGLTexture.idl:
* html/canvas/WebGLUniformLocation.cpp:
* html/canvas/WebGLUniformLocation.h:
* html/canvas/WebGLUniformLocation.idl:
* html/canvas/WebGLVertexArrayObjectOES.cpp:
* html/canvas/WebGLVertexArrayObjectOES.h:
* html/canvas/WebGLVertexArrayObjectOES.idl:
* html/forms/FileIconLoader.cpp:
* html/forms/FileIconLoader.h:
* html/parser/TextDocumentParser.cpp:
* html/parser/TextDocumentParser.h:
* html/shadow/MediaControlElementTypes.cpp:
* html/shadow/MediaControlElementTypes.h:
* html/shadow/MediaControlElements.cpp:
* html/shadow/MediaControlElements.h:
* html/shadow/MediaControls.cpp:
* html/shadow/MediaControls.h:
* html/shadow/MediaControlsApple.cpp:
* html/shadow/MediaControlsApple.h:
* html/shadow/MediaControlsGtk.cpp:
* html/shadow/MediaControlsGtk.h:
* html/shadow/SpinButtonElement.cpp:
* html/shadow/SpinButtonElement.h:
* html/shadow/TextControlInnerElements.cpp:
* html/shadow/TextControlInnerElements.h:
* html/track/AudioTrack.h:
* html/track/AudioTrack.idl:
* html/track/AudioTrackList.cpp:
* html/track/AudioTrackList.h:
* html/track/AudioTrackList.idl:
* html/track/DataCue.cpp:
* html/track/DataCue.h:
* html/track/DataCue.idl:
* html/track/InbandGenericTextTrack.cpp:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandTextTrack.cpp:
* html/track/InbandTextTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.cpp:
* html/track/LoadableTextTrack.h:
* html/track/TextTrack.h:
* html/track/TextTrack.idl:
* html/track/TextTrackCue.idl:
* html/track/TextTrackCueGeneric.cpp:
* html/track/TextTrackCueGeneric.h:
* html/track/TextTrackCueList.cpp:
* html/track/TextTrackCueList.h:
* html/track/TextTrackCueList.idl:
* html/track/TextTrackList.cpp:
* html/track/TextTrackList.h:
* html/track/TextTrackList.idl:
* html/track/TextTrackRegion.idl:
* html/track/TextTrackRegionList.cpp:
* html/track/TextTrackRegionList.h:
* html/track/TextTrackRegionList.idl:
* html/track/TrackBase.cpp:
* html/track/TrackBase.h:
* html/track/TrackEvent.cpp:
* html/track/TrackEvent.h:
* html/track/TrackEvent.idl:
* html/track/TrackListBase.cpp:
* html/track/TrackListBase.h:
* html/track/VTTCue.idl:
* html/track/VideoTrack.h:
* html/track/VideoTrack.idl:
* html/track/VideoTrackList.cpp:
* html/track/VideoTrackList.h:
* html/track/VideoTrackList.idl:
* html/track/WebVTTElement.cpp:
* html/track/WebVTTElement.h:
* inspector/CommandLineAPIHost.cpp:
* inspector/CommandLineAPIHost.h:
* inspector/CommandLineAPIModuleSource.js:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorClient.h:
* inspector/InspectorDOMAgent.cpp:
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDatabaseResource.cpp:
* inspector/InspectorDatabaseResource.h:
* inspector/InspectorForwarding.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorNodeFinder.cpp:
* inspector/InspectorNodeFinder.h:
* inspector/InspectorOverlay.cpp:
* inspector/InspectorOverlay.h:
* inspector/InspectorOverlayPage.html:
* inspector/InspectorProfilerAgent.cpp:
* inspector/InspectorProfilerAgent.h:
* inspector/ScriptProfile.idl:
* inspector/ScriptProfileNode.idl:
* loader/CookieJar.h:
* loader/CrossOriginAccessControl.cpp:
* loader/CrossOriginAccessControl.h:
* loader/CrossOriginPreflightResultCache.cpp:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentLoader.cpp:
* loader/DocumentLoader.h:
* loader/DocumentWriter.cpp:
* loader/EmptyClients.h:
* loader/FormState.cpp:
* loader/FormState.h:
* loader/FrameLoadRequest.h:
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
* loader/FrameLoaderClient.h:
* loader/FrameLoaderTypes.h:
* loader/HistoryController.cpp:
* loader/HistoryController.h:
* loader/MixedContentChecker.cpp:
* loader/NavigationAction.cpp:
* loader/NavigationAction.h:
* loader/NavigationScheduler.cpp:
* loader/NavigationScheduler.h:
* loader/NetscapePlugInStreamLoader.cpp:
* loader/NetscapePlugInStreamLoader.h:
* loader/PolicyCallback.cpp:
* loader/PolicyCallback.h:
* loader/PolicyChecker.cpp:
* loader/PolicyChecker.h:
* loader/ProgressTracker.cpp:
* loader/ProgressTracker.h:
* loader/ResourceBuffer.cpp:
* loader/ResourceBuffer.h:
* loader/ResourceLoadNotifier.cpp:
* loader/ResourceLoadNotifier.h:
* loader/ResourceLoader.cpp:
* loader/ResourceLoader.h:
* loader/SinkDocument.cpp:
* loader/SinkDocument.h:
* loader/SubframeLoader.cpp:
* loader/SubframeLoader.h:
* loader/SubresourceLoader.cpp:
* loader/SubresourceLoader.h:
* loader/SubstituteData.h:
* loader/TextTrackLoader.cpp:
* loader/appcache/ApplicationCacheAllInOne.cpp:
* loader/archive/Archive.cpp:
* loader/archive/Archive.h:
* loader/archive/ArchiveFactory.cpp:
* loader/archive/ArchiveFactory.h:
* loader/archive/ArchiveResource.cpp:
* loader/archive/ArchiveResource.h:
* loader/archive/ArchiveResourceCollection.cpp:
* loader/archive/ArchiveResourceCollection.h:
* loader/archive/cf/LegacyWebArchive.cpp:
* loader/archive/cf/LegacyWebArchive.h:
* loader/archive/cf/LegacyWebArchiveMac.mm:
* loader/cache/CachePolicy.h:
* loader/cache/CachedCSSStyleSheet.cpp:
* loader/cache/CachedFont.cpp:
* loader/cache/CachedFont.h:
* loader/cache/CachedResourceRequest.cpp:
* loader/cache/CachedResourceRequest.h:
* loader/cache/CachedResourceRequestInitiators.cpp:
* loader/cache/CachedResourceRequestInitiators.h:
* loader/cf/ResourceLoaderCFNet.cpp:
* loader/icon/IconController.cpp:
* loader/icon/IconController.h:
* loader/icon/IconDatabase.cpp:
* loader/icon/IconDatabase.h:
* loader/icon/IconDatabaseBase.cpp:
* loader/icon/IconDatabaseBase.h:
* loader/icon/IconDatabaseClient.h:
* loader/icon/IconLoader.cpp:
* loader/icon/IconLoader.h:
* loader/icon/IconRecord.cpp:
* loader/icon/IconRecord.h:
* loader/icon/PageURLRecord.cpp:
* loader/icon/PageURLRecord.h:
* loader/mac/DocumentLoaderMac.cpp:
* loader/mac/LoaderNSURLExtras.h:
* loader/mac/LoaderNSURLExtras.mm:
* loader/mac/ResourceBuffer.mm:
* loader/mac/ResourceLoaderMac.mm:
* loader/win/DocumentLoaderWin.cpp:
* loader/win/FrameLoaderWin.cpp:
* mathml/MathMLAllInOne.cpp:
* page/AbstractView.idl:
* page/AlternativeTextClient.h:
* page/AutoscrollController.cpp:
* page/AutoscrollController.h:
* page/BarProp.cpp:
* page/BarProp.h:
* page/BarProp.idl:
* page/ContentSecurityPolicy.cpp:
* page/ContentSecurityPolicy.h:
* page/ContextMenuClient.h:
* page/ContextMenuContext.cpp:
* page/ContextMenuContext.h:
* page/ContextMenuController.cpp:
* page/ContextMenuController.h:
* page/DOMSecurityPolicy.cpp:
* page/DOMSecurityPolicy.h:
* page/DOMSelection.cpp:
* page/DOMSelection.h:
* page/DOMSelection.idl:
* page/DOMTimer.cpp:
* page/DOMTimer.h:
* page/DOMWindow.cpp:
* page/DOMWindow.h:
* page/DOMWindow.idl:
* page/DragActions.h:
* page/DragClient.h:
* page/DragController.cpp:
* page/DragController.h:
* page/DragSession.h:
* page/DragState.h:
* page/EditorClient.h:
* page/EventHandler.cpp:
* page/EventHandler.h:
* page/FocusController.cpp:
* page/FocusController.h:
* page/FocusDirection.h:
* page/FrameTree.h:
* page/GestureTapHighlighter.cpp:
* page/GestureTapHighlighter.h:
* page/History.cpp:
* page/History.h:
* page/History.idl:
* page/Location.cpp:
* page/Location.h:
* page/Location.idl:
* page/MouseEventWithHitTestResults.cpp:
* page/MouseEventWithHitTestResults.h:
* page/Navigator.cpp:
* page/NavigatorBase.cpp:
* page/NavigatorBase.h:
* page/PageConsole.cpp:
* page/PageConsole.h:
* page/Screen.cpp:
* page/Screen.h:
* page/Screen.idl:
* page/SecurityOrigin.cpp:
* page/SecurityOrigin.h:
* page/SecurityOriginHash.h:
* page/Settings.cpp:
* page/Settings.h:
* page/SpatialNavigation.cpp:
* page/SuspendableTimer.cpp:
* page/SuspendableTimer.h:
* page/UserContentTypes.h:
* page/UserContentURLPattern.cpp:
* page/UserContentURLPattern.h:
* page/UserScript.h:
* page/UserScriptTypes.h:
* page/UserStyleSheet.h:
* page/UserStyleSheetTypes.h:
* page/WebCoreKeyboardUIMode.h:
* page/WebKitPoint.h:
* page/WebKitPoint.idl:
* page/WindowBase64.idl:
* page/WindowFeatures.h:
* page/WindowFocusAllowedIndicator.cpp:
* page/WindowFocusAllowedIndicator.h:
* page/WindowTimers.idl:
* page/WorkerNavigator.cpp:
* page/WorkerNavigator.h:
* page/WorkerNavigator.idl:
* page/animation/AnimationBase.cpp:
* page/animation/AnimationBase.h:
* page/animation/AnimationController.cpp:
* page/animation/AnimationController.h:
* page/animation/AnimationControllerPrivate.h:
* page/animation/CSSPropertyAnimation.cpp:
* page/animation/CSSPropertyAnimation.h:
* page/animation/CompositeAnimation.cpp:
* page/animation/CompositeAnimation.h:
* page/animation/ImplicitAnimation.cpp:
* page/animation/ImplicitAnimation.h:
* page/animation/KeyframeAnimation.cpp:
* page/animation/KeyframeAnimation.h:
* page/efl/DragControllerEfl.cpp:
* page/efl/EventHandlerEfl.cpp:
* page/gtk/DragControllerGtk.cpp:
* page/gtk/EventHandlerGtk.cpp:
* page/ios/EventHandlerIOS.mm:
* page/mac/DragControllerMac.mm:
* page/mac/EventHandlerMac.mm:
* page/mac/PageMac.cpp:
* page/mac/WebCoreFrameView.h:
* page/make_settings.pl:
* page/win/DragControllerWin.cpp:
* page/win/EventHandlerWin.cpp:
* page/win/FrameCGWin.cpp:
* page/win/FrameCairoWin.cpp:
* page/win/FrameGdiWin.cpp:
* page/win/FrameWin.cpp:
* page/win/FrameWin.h:
* pdf/ios/PDFDocument.h:
* platform/Clock.cpp:
* platform/Clock.h:
* platform/ClockGeneric.cpp:
* platform/ClockGeneric.h:
* platform/ColorChooser.h:
* platform/ColorChooserClient.h:
* platform/ContentType.cpp:
* platform/ContentType.h:
* platform/ContextMenu.h:
* platform/ContextMenuItem.h:
* platform/Cookie.h:
* platform/Cursor.h:
* platform/DragData.cpp:
* platform/DragData.h:
* platform/DragImage.cpp:
* platform/DragImage.h:
* platform/FileChooser.cpp:
* platform/FileChooser.h:
* platform/FileSystem.h:
* platform/FloatConversion.h:
* platform/KillRing.h:
* platform/LinkHash.h:
* platform/LocalizedStrings.cpp:
* platform/LocalizedStrings.h:
* platform/Logging.cpp:
* platform/Logging.h:
* platform/MIMETypeRegistry.cpp:
* platform/MIMETypeRegistry.h:
* platform/MediaDescription.h:
* platform/MediaSample.h:
* platform/NotImplemented.h:
* platform/PODFreeListArena.h:
* platform/Pasteboard.h:
* platform/PasteboardStrategy.h:
* platform/PlatformExportMacros.h:
* platform/PlatformKeyboardEvent.h:
* platform/PlatformMenuDescription.h:
* platform/PlatformMouseEvent.h:
* platform/PlatformPasteboard.h:
* platform/PlatformScreen.h:
* platform/PlatformSpeechSynthesis.h:
* platform/PlatformSpeechSynthesisUtterance.cpp:
* platform/PlatformSpeechSynthesisUtterance.h:
* platform/PlatformSpeechSynthesisVoice.cpp:
* platform/PlatformSpeechSynthesisVoice.h:
* platform/PlatformSpeechSynthesizer.cpp:
* platform/PlatformSpeechSynthesizer.h:
* platform/PlatformWheelEvent.h:
* platform/PopupMenuClient.h:
* platform/RemoteCommandListener.cpp:
* platform/RemoteCommandListener.h:
* platform/SSLKeyGenerator.h:
* platform/SchemeRegistry.cpp:
* platform/SchemeRegistry.h:
* platform/ScrollTypes.h:
* platform/ScrollView.cpp:
* platform/ScrollView.h:
* platform/Scrollbar.cpp:
* platform/Scrollbar.h:
* platform/SharedBuffer.cpp:
* platform/SharedBuffer.h:
* platform/SharedTimer.h:
* platform/Sound.h:
* platform/ThreadCheck.h:
* platform/ThreadGlobalData.cpp:
* platform/ThreadGlobalData.h:
* platform/ThreadTimers.cpp:
* platform/ThreadTimers.h:
* platform/Timer.cpp:
* platform/Timer.h:
* platform/URL.cpp:
* platform/URL.h:
* platform/Widget.cpp:
* platform/Widget.h:
* platform/animation/AnimationUtilities.h:
* platform/audio/AudioArray.h:
* platform/audio/AudioBus.cpp:
* platform/audio/AudioBus.h:
* platform/audio/AudioChannel.cpp:
* platform/audio/AudioChannel.h:
* platform/audio/AudioDestination.h:
* platform/audio/AudioFIFO.cpp:
* platform/audio/AudioFIFO.h:
* platform/audio/AudioFileReader.h:
* platform/audio/AudioIOCallback.h:
* platform/audio/AudioPullFIFO.cpp:
* platform/audio/AudioPullFIFO.h:
* platform/audio/AudioSourceProvider.h:
* platform/audio/Biquad.cpp:
* platform/audio/Biquad.h:
* platform/audio/Cone.cpp:
* platform/audio/Cone.h:
* platform/audio/DirectConvolver.cpp:
* platform/audio/DirectConvolver.h:
* platform/audio/Distance.cpp:
* platform/audio/Distance.h:
* platform/audio/DownSampler.cpp:
* platform/audio/DownSampler.h:
* platform/audio/DynamicsCompressor.cpp:
* platform/audio/DynamicsCompressor.h:
* platform/audio/DynamicsCompressorKernel.cpp:
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/FFTConvolver.cpp:
* platform/audio/FFTConvolver.h:
* platform/audio/FFTFrame.cpp:
* platform/audio/FFTFrame.h:
* platform/audio/HRTFDatabase.cpp:
* platform/audio/HRTFDatabase.h:
* platform/audio/HRTFDatabaseLoader.cpp:
* platform/audio/HRTFDatabaseLoader.h:
* platform/audio/HRTFElevation.cpp:
* platform/audio/HRTFElevation.h:
* platform/audio/HRTFKernel.cpp:
* platform/audio/HRTFKernel.h:
* platform/audio/MultiChannelResampler.cpp:
* platform/audio/MultiChannelResampler.h:
* platform/audio/Panner.cpp:
* platform/audio/Panner.h:
* platform/audio/Reverb.cpp:
* platform/audio/Reverb.h:
* platform/audio/ReverbAccumulationBuffer.cpp:
* platform/audio/ReverbAccumulationBuffer.h:
* platform/audio/ReverbConvolver.cpp:
* platform/audio/ReverbConvolver.h:
* platform/audio/ReverbConvolverStage.cpp:
* platform/audio/ReverbConvolverStage.h:
* platform/audio/ReverbInputBuffer.cpp:
* platform/audio/ReverbInputBuffer.h:
* platform/audio/SincResampler.cpp:
* platform/audio/SincResampler.h:
* platform/audio/UpSampler.cpp:
* platform/audio/UpSampler.h:
* platform/audio/ZeroPole.cpp:
* platform/audio/ZeroPole.h:
* platform/audio/ios/AudioDestinationIOS.cpp:
* platform/audio/ios/AudioDestinationIOS.h:
* platform/audio/ios/AudioFileReaderIOS.cpp:
* platform/audio/ios/AudioFileReaderIOS.h:
* platform/audio/mac/AudioDestinationMac.cpp:
* platform/audio/mac/AudioDestinationMac.h:
* platform/audio/mac/AudioFileReaderMac.cpp:
* platform/audio/mac/AudioFileReaderMac.h:
* platform/audio/mac/FFTFrameMac.cpp:
* platform/cf/FileSystemCF.cpp:
* platform/cf/SharedBufferCF.cpp:
* platform/cf/URLCF.cpp:
* platform/cocoa/KeyEventCocoa.h:
* platform/cocoa/KeyEventCocoa.mm:
* platform/efl/CursorEfl.cpp:
* platform/efl/EflKeyboardUtilities.cpp:
* platform/efl/EflKeyboardUtilities.h:
* platform/efl/FileSystemEfl.cpp:
* platform/efl/LanguageEfl.cpp:
* platform/efl/LocalizedStringsEfl.cpp:
* platform/efl/MIMETypeRegistryEfl.cpp:
* platform/efl/PlatformKeyboardEventEfl.cpp:
* platform/efl/PlatformMouseEventEfl.cpp:
* platform/efl/PlatformScreenEfl.cpp:
* platform/efl/PlatformWheelEventEfl.cpp:
* platform/efl/RenderThemeEfl.h:
* platform/efl/ScrollbarEfl.h:
* platform/efl/SharedTimerEfl.cpp:
* platform/efl/SoundEfl.cpp:
* platform/efl/TemporaryLinkStubs.cpp:
* platform/efl/WidgetEfl.cpp:
* platform/graphics/ANGLEWebKitBridge.cpp:
* platform/graphics/ANGLEWebKitBridge.h:
* platform/graphics/AudioTrackPrivate.h:
* platform/graphics/BitmapImage.cpp:
* platform/graphics/BitmapImage.h:
* platform/graphics/Color.cpp:
* platform/graphics/Color.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/DashArray.h:
* platform/graphics/DisplayRefreshMonitor.cpp:
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/FloatPoint.cpp:
* platform/graphics/FloatPoint.h:
* platform/graphics/FloatQuad.cpp:
* platform/graphics/FloatQuad.h:
* platform/graphics/FloatRect.cpp:
* platform/graphics/FloatRect.h:
* platform/graphics/FloatSize.cpp:
* platform/graphics/FloatSize.h:
* platform/graphics/FontBaseline.h:
* platform/graphics/FontCache.cpp:
* platform/graphics/FontCache.h:
* platform/graphics/FontData.cpp:
* platform/graphics/FontData.h:
* platform/graphics/FontDescription.cpp:
* platform/graphics/FontFeatureSettings.cpp:
* platform/graphics/FontFeatureSettings.h:
* platform/graphics/FontGlyphs.cpp:
* platform/graphics/FontOrientation.h:
* platform/graphics/FontRenderingMode.h:
* platform/graphics/FontSelector.h:
* platform/graphics/FontWidthVariant.h:
* platform/graphics/FormatConverter.cpp:
* platform/graphics/FormatConverter.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/Glyph.h:
* platform/graphics/GlyphBuffer.h:
* platform/graphics/GlyphMetricsMap.h:
* platform/graphics/GlyphPage.h:
* platform/graphics/GlyphPageTreeNode.cpp:
* platform/graphics/GlyphPageTreeNode.h:
* platform/graphics/Gradient.cpp:
* platform/graphics/Gradient.h:
* platform/graphics/GradientImage.h:
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContext3D.cpp:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/GraphicsTypes.cpp:
* platform/graphics/GraphicsTypes.h:
* platform/graphics/GraphicsTypes3D.h:
* platform/graphics/Image.cpp:
* platform/graphics/Image.h:
* platform/graphics/ImageBuffer.cpp:
* platform/graphics/ImageBuffer.h:
* platform/graphics/ImageBufferData.h:
* platform/graphics/ImageObserver.h:
* platform/graphics/ImageSource.cpp:
* platform/graphics/ImageSource.h:
* platform/graphics/InbandTextTrackPrivate.h:
* platform/graphics/InbandTextTrackPrivateClient.h:
* platform/graphics/IntPoint.cpp:
* platform/graphics/IntPoint.h:
* platform/graphics/IntSize.cpp:
* platform/graphics/IntSize.h:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/MediaSourcePrivateClient.h:
* platform/graphics/NativeImagePtr.h:
* platform/graphics/OpenGLESShims.h:
* platform/graphics/Path.cpp:
* platform/graphics/Path.h:
* platform/graphics/PathTraversalState.h:
* platform/graphics/Pattern.cpp:
* platform/graphics/Pattern.h:
* platform/graphics/PlatformLayer.h:
* platform/graphics/PlatformTimeRanges.cpp:
* platform/graphics/PlatformTimeRanges.h:
* platform/graphics/SegmentedFontData.cpp:
* platform/graphics/SegmentedFontData.h:
* platform/graphics/ShadowBlur.cpp:
* platform/graphics/ShadowBlur.h:
* platform/graphics/SimpleFontData.cpp:
* platform/graphics/SourceBufferPrivateClient.h:
* platform/graphics/StringTruncator.cpp:
* platform/graphics/StringTruncator.h:
* platform/graphics/TrackPrivateBase.h:
* platform/graphics/VideoTrackPrivate.h:
* platform/graphics/WindRule.h:
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
* platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
* platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
* platform/graphics/ca/GraphicsLayerCA.cpp:
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/LayerFlushScheduler.cpp:
* platform/graphics/ca/LayerFlushScheduler.h:
* platform/graphics/ca/LayerFlushSchedulerClient.h:
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/PlatformCALayer.cpp:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/PlatformCALayerClient.h:
* platform/graphics/ca/TransformationMatrixCA.cpp:
* platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
* platform/graphics/ca/mac/LayerPool.mm:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/mac/PlatformCAFiltersMac.h:
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
* platform/graphics/ca/mac/WebTiledBackingLayer.h:
* platform/graphics/ca/mac/WebTiledBackingLayer.mm:
* platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
* platform/graphics/ca/win/CACFLayerTreeHost.h:
* platform/graphics/ca/win/CACFLayerTreeHostClient.h:
* platform/graphics/ca/win/LayerChangesFlusher.cpp:
* platform/graphics/ca/win/LayerChangesFlusher.h:
* platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
* platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.h:
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
* platform/graphics/ca/win/PlatformCALayerWinInternal.h:
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
* platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
* platform/graphics/cairo/BitmapImageCairo.cpp:
* platform/graphics/cairo/CairoUtilities.cpp:
* platform/graphics/cairo/CairoUtilities.h:
* platform/graphics/cairo/DrawingBufferCairo.cpp:
* platform/graphics/cairo/FloatRectCairo.cpp:
* platform/graphics/cairo/FontCairo.cpp:
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
* platform/graphics/cairo/GradientCairo.cpp:
* platform/graphics/cairo/GraphicsContext3DCairo.cpp:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
* platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
* platform/graphics/cairo/ImageBufferCairo.cpp:
* platform/graphics/cairo/ImageBufferDataCairo.h:
* platform/graphics/cairo/ImageCairo.cpp:
* platform/graphics/cairo/PatternCairo.cpp:
* platform/graphics/cairo/PlatformContextCairo.cpp:
* platform/graphics/cairo/PlatformContextCairo.h:
* platform/graphics/cairo/TransformationMatrixCairo.cpp:
* platform/graphics/cg/BitmapImageCG.cpp:
* platform/graphics/cg/ColorCG.cpp:
* platform/graphics/cg/FloatPointCG.cpp:
* platform/graphics/cg/FloatRectCG.cpp:
* platform/graphics/cg/FloatSizeCG.cpp:
* platform/graphics/cg/GradientCG.cpp:
* platform/graphics/cg/GraphicsContext3DCG.cpp:
* platform/graphics/cg/GraphicsContextCG.cpp:
* platform/graphics/cg/GraphicsContextCG.h:
* platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
* platform/graphics/cg/ImageBufferCG.cpp:
* platform/graphics/cg/ImageBufferDataCG.cpp:
* platform/graphics/cg/ImageBufferDataCG.h:
* platform/graphics/cg/ImageCG.cpp:
* platform/graphics/cg/ImageSourceCG.cpp:
* platform/graphics/cg/IntPointCG.cpp:
* platform/graphics/cg/IntRectCG.cpp:
* platform/graphics/cg/IntSizeCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/cg/PathCG.cpp:
* platform/graphics/cg/PatternCG.cpp:
* platform/graphics/cg/TransformationMatrixCG.cpp:
* platform/graphics/efl/IconEfl.cpp:
* platform/graphics/efl/ImageEfl.cpp:
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
* platform/graphics/filters/FilterOperations.cpp:
* platform/graphics/filters/FilterOperations.h:
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
* platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
* platform/graphics/gpu/mac/DrawingBufferMac.mm:
* platform/graphics/gtk/GdkCairoUtilities.cpp:
* platform/graphics/gtk/GdkCairoUtilities.h:
* platform/graphics/gtk/IconGtk.cpp:
* platform/graphics/gtk/ImageGtk.cpp:
* platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
* platform/graphics/ios/FontCacheIOS.mm:
* platform/graphics/ios/GraphicsContext3DIOS.h:
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h:
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
* platform/graphics/mac/ColorMac.h:
* platform/graphics/mac/ColorMac.mm:
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
* platform/graphics/mac/FloatPointMac.mm:
* platform/graphics/mac/FloatRectMac.mm:
* platform/graphics/mac/FloatSizeMac.mm:
* platform/graphics/mac/FontCacheMac.mm:
* platform/graphics/mac/FontCustomPlatformData.h:
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
* platform/graphics/mac/GraphicsContext3DMac.mm:
* platform/graphics/mac/GraphicsContextMac.mm:
* platform/graphics/mac/ImageMac.mm:
* platform/graphics/mac/IntPointMac.mm:
* platform/graphics/mac/IntRectMac.mm:
* platform/graphics/mac/IntSizeMac.mm:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
* platform/graphics/mac/MediaPlayerProxy.h:
* platform/graphics/mac/WebCoreCALayerExtras.h:
* platform/graphics/mac/WebCoreCALayerExtras.mm:
* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm:
* platform/graphics/mac/WebLayer.h:
* platform/graphics/mac/WebLayer.mm:
* platform/graphics/mac/WebTiledLayer.h:
* platform/graphics/mac/WebTiledLayer.mm:
* platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
* platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
* platform/graphics/opentype/OpenTypeUtilities.cpp:
* platform/graphics/opentype/OpenTypeUtilities.h:
* platform/graphics/transforms/AffineTransform.cpp:
* platform/graphics/transforms/AffineTransform.h:
* platform/graphics/transforms/Matrix3DTransformOperation.cpp:
* platform/graphics/transforms/Matrix3DTransformOperation.h:
* platform/graphics/transforms/PerspectiveTransformOperation.cpp:
* platform/graphics/transforms/PerspectiveTransformOperation.h:
* platform/graphics/transforms/TransformState.cpp:
* platform/graphics/transforms/TransformState.h:
* platform/graphics/transforms/TransformationMatrix.cpp:
* platform/graphics/transforms/TransformationMatrix.h:
* platform/graphics/win/FontCGWin.cpp:
* platform/graphics/win/FontCacheWin.cpp:
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
* platform/graphics/win/FontWin.cpp:
* platform/graphics/win/FullScreenController.cpp:
* platform/graphics/win/FullScreenController.h:
* platform/graphics/win/FullScreenControllerClient.h:
* platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
* platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
* platform/graphics/win/GraphicsContextCGWin.cpp:
* platform/graphics/win/GraphicsContextCairoWin.cpp:
* platform/graphics/win/GraphicsContextWin.cpp:
* platform/graphics/win/ImageCGWin.cpp:
* platform/graphics/win/ImageCairoWin.cpp:
* platform/graphics/win/ImageWin.cpp:
* platform/graphics/win/IntPointWin.cpp:
* platform/graphics/win/IntRectWin.cpp:
* platform/graphics/win/IntSizeWin.cpp:
* platform/graphics/win/LocalWindowsContext.h:
* platform/graphics/win/MediaPlayerPrivateTaskTimer.cpp:
* platform/graphics/win/MediaPlayerPrivateTaskTimer.h:
* platform/graphics/win/SimpleFontDataCGWin.cpp:
* platform/graphics/win/SimpleFontDataCairoWin.cpp:
* platform/graphics/win/SimpleFontDataWin.cpp:
* platform/graphics/win/TransformationMatrixWin.cpp:
* platform/graphics/wince/FontCacheWinCE.cpp:
* platform/graphics/wince/FontWinCE.cpp:
* platform/graphics/wince/MediaPlayerPrivateWinCE.h:
* platform/graphics/wince/SimpleFontDataWinCE.cpp:
* platform/gtk/CompositionResults.h:
* platform/gtk/CursorGtk.cpp:
* platform/gtk/GtkPluginWidget.cpp:
* platform/gtk/GtkPluginWidget.h:
* platform/gtk/LocalizedStringsGtk.cpp:
* platform/gtk/MIMETypeRegistryGtk.cpp:
* platform/gtk/PlatformKeyboardEventGtk.cpp:
* platform/gtk/PlatformMouseEventGtk.cpp:
* platform/gtk/PlatformScreenGtk.cpp:
* platform/gtk/PlatformWheelEventGtk.cpp:
* platform/gtk/RedirectedXCompositeWindow.cpp:
* platform/gtk/RedirectedXCompositeWindow.h:
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/ScrollViewGtk.cpp:
* platform/gtk/SharedTimerGtk.cpp:
* platform/gtk/TemporaryLinkStubs.cpp:
* platform/gtk/UserAgentGtk.cpp:
* platform/gtk/UserAgentGtk.h:
* platform/gtk/WidgetGtk.cpp:
* platform/gtk/WidgetRenderingContext.cpp:
* platform/image-decoders/ImageDecoder.h:
* platform/image-decoders/cairo/ImageDecoderCairo.cpp:
* platform/image-decoders/gif/GIFImageDecoder.cpp:
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/gif/GIFImageReader.cpp:
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
* platform/image-decoders/png/PNGImageDecoder.cpp:
* platform/image-decoders/png/PNGImageDecoder.h:
* platform/image-decoders/webp/WEBPImageDecoder.cpp:
* platform/image-decoders/webp/WEBPImageDecoder.h:
* platform/ios/CursorIOS.cpp:
* platform/ios/DragImageIOS.mm:
* platform/ios/KeyEventCodesIOS.h:
* platform/ios/KeyEventIOS.mm:
* platform/ios/PlatformPasteboardIOS.mm:
* platform/ios/PlatformScreenIOS.mm:
* platform/ios/PlatformSpeechSynthesizerIOS.mm:
* platform/ios/RemoteCommandListenerIOS.h:
* platform/ios/RemoteCommandListenerIOS.mm:
* platform/ios/ScrollViewIOS.mm:
* platform/ios/SoundIOS.mm:
* platform/ios/SystemMemory.h:
* platform/ios/SystemMemoryIOS.cpp:
* platform/ios/WebCoreSystemInterfaceIOS.h:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/ios/WidgetIOS.mm:
* platform/mac/BlockExceptions.h:
* platform/mac/BlockExceptions.mm:
* platform/mac/ContextMenuItemMac.mm:
* platform/mac/ContextMenuMac.mm:
* platform/mac/CursorMac.mm:
* platform/mac/DragDataMac.mm:
* platform/mac/DragImageMac.mm:
* platform/mac/FileSystemMac.mm:
* platform/mac/KeyEventMac.mm:
* platform/mac/LocalCurrentGraphicsContext.h:
* platform/mac/LocalCurrentGraphicsContext.mm:
* platform/mac/LoggingMac.mm:
* platform/mac/MIMETypeRegistryMac.mm:
* platform/mac/MediaTimeMac.cpp:
* platform/mac/MediaTimeMac.h:
* platform/mac/PasteboardMac.mm:
* platform/mac/PlatformClockCA.cpp:
* platform/mac/PlatformClockCA.h:
* platform/mac/PlatformClockCM.h:
* platform/mac/PlatformClockCM.mm:
* platform/mac/PlatformPasteboardMac.mm:
* platform/mac/PlatformScreenMac.mm:
* platform/mac/PlatformSpeechSynthesisMac.mm:
* platform/mac/PlatformSpeechSynthesizerMac.mm:
* platform/mac/ScrollViewMac.mm:
* platform/mac/SharedBufferMac.mm:
* platform/mac/SharedTimerMac.mm:
* platform/mac/SoftLinking.h:
* platform/mac/SoundMac.mm:
* platform/mac/ThreadCheck.mm:
* platform/mac/URLMac.mm:
* platform/mac/WebCoreNSStringExtras.h:
* platform/mac/WebCoreNSStringExtras.mm:
* platform/mac/WebCoreNSURLExtras.h:
* platform/mac/WebCoreNSURLExtras.mm:
* platform/mac/WebCoreObjCExtras.h:
* platform/mac/WebCoreObjCExtras.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/mac/WebCoreView.h:
* platform/mac/WebCoreView.m:
* platform/mac/WebFontCache.h:
* platform/mac/WebFontCache.mm:
* platform/mac/WebWindowAnimation.h:
* platform/mac/WebWindowAnimation.mm:
* platform/mac/WidgetMac.mm:
* platform/mediastream/MediaStreamConstraintsValidationClient.h:
* platform/mediastream/MediaStreamCreationClient.h:
* platform/mediastream/MediaStreamSourceCapabilities.h:
* platform/mediastream/MediaStreamSourceStates.h:
* platform/mediastream/MediaStreamTrackSourcesRequestClient.h:
* platform/mediastream/RTCIceServer.h:
* platform/mediastream/mac/AVAudioCaptureSource.h:
* platform/mediastream/mac/AVAudioCaptureSource.mm:
* platform/mediastream/mac/AVCaptureDeviceManager.h:
* platform/mediastream/mac/AVCaptureDeviceManager.mm:
* platform/mediastream/mac/AVMediaCaptureSource.h:
* platform/mediastream/mac/AVMediaCaptureSource.mm:
* platform/mediastream/mac/AVVideoCaptureSource.h:
* platform/mediastream/mac/AVVideoCaptureSource.mm:
* platform/mock/MockMediaStreamCenter.cpp:
* platform/mock/MockMediaStreamCenter.h:
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
* platform/mock/PlatformSpeechSynthesizerMock.h:
* platform/mock/mediasource/MockBox.cpp:
* platform/mock/mediasource/MockBox.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
* platform/mock/mediasource/MockMediaSourcePrivate.cpp:
* platform/mock/mediasource/MockMediaSourcePrivate.h:
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
* platform/mock/mediasource/MockSourceBufferPrivate.h:
* platform/mock/mediasource/MockTracks.cpp:
* platform/mock/mediasource/MockTracks.h:
* platform/network/AuthenticationChallengeBase.cpp:
* platform/network/AuthenticationChallengeBase.h:
* platform/network/Credential.cpp:
* platform/network/Credential.h:
* platform/network/DNS.h:
* platform/network/DNSResolveQueue.cpp:
* platform/network/DNSResolveQueue.h:
* platform/network/DataURL.cpp:
* platform/network/DataURL.h:
* platform/network/HTTPHeaderMap.h:
* platform/network/HTTPParsers.cpp:
* platform/network/HTTPParsers.h:
* platform/network/PlatformCookieJar.h:
* platform/network/ProtectionSpace.cpp:
* platform/network/ProtectionSpace.h:
* platform/network/ResourceErrorBase.cpp:
* platform/network/ResourceErrorBase.h:
* platform/network/ResourceHandle.cpp:
* platform/network/ResourceHandle.h:
* platform/network/ResourceHandleClient.h:
* platform/network/ResourceHandleInternal.h:
* platform/network/ResourceRequestBase.cpp:
* platform/network/ResourceRequestBase.h:
* platform/network/ResourceResponseBase.cpp:
* platform/network/ResourceResponseBase.h:
* platform/network/cf/AuthenticationCF.cpp:
* platform/network/cf/AuthenticationCF.h:
* platform/network/cf/AuthenticationChallenge.h:
* platform/network/cf/CookieJarCFNet.cpp:
* platform/network/cf/CookieStorageCFNet.cpp:
* platform/network/cf/DNSCFNet.cpp:
* platform/network/cf/DownloadBundle.h:
* platform/network/cf/FormDataStreamCFNet.cpp:
* platform/network/cf/FormDataStreamCFNet.h:
* platform/network/cf/ResourceError.h:
* platform/network/cf/ResourceErrorCF.cpp:
* platform/network/cf/ResourceHandleCFNet.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
* platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
* platform/network/cf/ResourceRequest.h:
* platform/network/cf/ResourceRequestCFNet.cpp:
* platform/network/cf/ResourceRequestCFNet.h:
* platform/network/cf/ResourceResponse.h:
* platform/network/cf/ResourceResponseCFNet.cpp:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
* platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
* platform/network/curl/AuthenticationChallenge.h:
* platform/network/curl/CurlDownload.cpp:
* platform/network/curl/CurlDownload.h:
* platform/network/curl/DNSCurl.cpp:
* platform/network/curl/DownloadBundle.h:
* platform/network/curl/FormDataStreamCurl.cpp:
* platform/network/curl/FormDataStreamCurl.h:
* platform/network/curl/ResourceError.h:
* platform/network/curl/ResourceHandleCurl.cpp:
* platform/network/curl/ResourceHandleManager.cpp:
* platform/network/curl/ResourceHandleManager.h:
* platform/network/curl/ResourceRequest.h:
* platform/network/curl/ResourceResponse.h:
* platform/network/curl/SSLHandle.cpp:
* platform/network/curl/SSLHandle.h:
* platform/network/gtk/CredentialBackingStore.cpp:
* platform/network/gtk/CredentialBackingStore.h:
* platform/network/ios/WebCoreURLResponseIOS.h:
* platform/network/ios/WebCoreURLResponseIOS.mm:
* platform/network/mac/AuthenticationMac.h:
* platform/network/mac/AuthenticationMac.mm:
* platform/network/mac/CookieJarMac.mm:
* platform/network/mac/CookieStorageMac.mm:
* platform/network/mac/FormDataStreamMac.h:
* platform/network/mac/FormDataStreamMac.mm:
* platform/network/mac/ResourceErrorMac.mm:
* platform/network/mac/ResourceHandleMac.mm:
* platform/network/mac/ResourceRequestMac.mm:
* platform/network/mac/ResourceResponseMac.mm:
* platform/network/mac/WebCoreURLResponse.h:
* platform/network/mac/WebCoreURLResponse.mm:
* platform/network/soup/AuthenticationChallenge.h:
* platform/network/soup/AuthenticationChallengeSoup.cpp:
* platform/network/soup/CookieJarSoup.h:
* platform/network/soup/DNSSoup.cpp:
* platform/network/soup/ResourceError.h:
* platform/network/soup/ResourceErrorSoup.cpp:
* platform/network/soup/ResourceRequest.h:
* platform/network/soup/ResourceResponse.h:
* platform/network/soup/SoupNetworkSession.cpp:
* platform/network/soup/SoupNetworkSession.h:
* platform/network/win/CookieJarWin.cpp:
* platform/network/win/DownloadBundleWin.cpp:
* platform/network/win/ResourceError.h:
* platform/network/win/ResourceHandleWin.cpp:
* platform/network/win/ResourceRequest.h:
* platform/network/win/ResourceResponse.h:
* platform/posix/FileSystemPOSIX.cpp:
* platform/posix/SharedBufferPOSIX.cpp:
* platform/soup/URLSoup.cpp:
* platform/sql/SQLValue.cpp:
* platform/sql/SQLValue.h:
* platform/sql/SQLiteAuthorizer.cpp:
* platform/sql/SQLiteDatabase.cpp:
* platform/sql/SQLiteDatabase.h:
* platform/sql/SQLiteStatement.cpp:
* platform/sql/SQLiteStatement.h:
* platform/sql/SQLiteTransaction.cpp:
* platform/sql/SQLiteTransaction.h:
* platform/text/SuffixTree.h:
* platform/text/TextAllInOne.cpp:
* platform/text/TextBoundaries.cpp:
* platform/text/TextBoundaries.h:
* platform/text/TextCodec.cpp:
* platform/text/TextCodec.h:
* platform/text/TextCodecASCIIFastPath.h:
* platform/text/TextCodecICU.cpp:
* platform/text/TextCodecICU.h:
* platform/text/TextCodecLatin1.cpp:
* platform/text/TextCodecLatin1.h:
* platform/text/TextCodecUTF16.cpp:
* platform/text/TextCodecUTF16.h:
* platform/text/TextCodecUTF8.cpp:
* platform/text/TextCodecUTF8.h:
* platform/text/TextCodecUserDefined.cpp:
* platform/text/TextCodecUserDefined.h:
* platform/text/TextDirection.h:
* platform/text/TextEncoding.cpp:
* platform/text/TextEncoding.h:
* platform/text/TextEncodingRegistry.cpp:
* platform/text/TextEncodingRegistry.h:
* platform/text/TextStream.cpp:
* platform/text/TextStream.h:
* platform/text/UnicodeBidi.h:
* platform/text/mac/CharsetData.h:
* platform/text/mac/TextBoundaries.mm:
* platform/text/mac/TextCodecMac.cpp:
* platform/text/mac/TextCodecMac.h:
* platform/text/mac/character-sets.txt:
* platform/text/mac/make-charset-table.pl:
* platform/text/win/TextCodecWin.h:
* platform/win/BString.cpp:
* platform/win/BString.h:
* platform/win/COMPtr.h:
* platform/win/ClipboardUtilitiesWin.cpp:
* platform/win/ClipboardUtilitiesWin.h:
* platform/win/ContextMenuItemWin.cpp:
* platform/win/ContextMenuWin.cpp:
* platform/win/CursorWin.cpp:
* platform/win/DragDataWin.cpp:
* platform/win/DragImageCGWin.cpp:
* platform/win/DragImageCairoWin.cpp:
* platform/win/DragImageWin.cpp:
* platform/win/FileSystemWin.cpp:
* platform/win/GDIObjectCounter.cpp:
* platform/win/GDIObjectCounter.h:
* platform/win/HWndDC.h:
* platform/win/KeyEventWin.cpp:
* platform/win/LanguageWin.cpp:
* platform/win/MIMETypeRegistryWin.cpp:
* platform/win/PasteboardWin.cpp:
* platform/win/PlatformMouseEventWin.cpp:
* platform/win/PlatformScreenWin.cpp:
* platform/win/SharedBufferWin.cpp:
* platform/win/SharedTimerWin.cpp:
* platform/win/SoftLinking.h:
* platform/win/SoundWin.cpp:
* platform/win/StructuredExceptionHandlerSuppressor.cpp:
* platform/win/TemporaryLinkStubs.cpp:
* platform/win/WCDataObject.cpp:
* platform/win/WCDataObject.h:
* platform/win/WebCoreTextRenderer.cpp:
* platform/win/WebCoreTextRenderer.h:
* platform/win/WheelEventWin.cpp:
* platform/win/WidgetWin.cpp:
* platform/win/WindowMessageBroadcaster.cpp:
* platform/win/WindowMessageBroadcaster.h:
* platform/win/WindowMessageListener.h:
* platform/win/WindowsTouch.h:
* platform/win/makesafeseh.asm:
* plugins/PluginDatabase.cpp:
* plugins/PluginDatabase.h:
* plugins/PluginDebug.cpp:
* plugins/PluginDebug.h:
* plugins/PluginPackage.cpp:
* plugins/PluginPackage.h:
* plugins/PluginQuirkSet.h:
* plugins/PluginStream.cpp:
* plugins/PluginStream.h:
* plugins/PluginView.cpp:
* plugins/PluginView.h:
* plugins/efl/PluginPackageEfl.cpp:
* plugins/efl/PluginViewEfl.cpp:
* plugins/gtk/PluginPackageGtk.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginPackageMac.cpp:
* plugins/mac/PluginViewMac.mm:
* plugins/npapi.cpp:
* plugins/npfunctions.h:
* plugins/npruntime.h:
* plugins/win/PluginDatabaseWin.cpp:
* plugins/win/PluginPackageWin.cpp:
* plugins/win/PluginViewWin.cpp:
* plugins/x11/PluginViewX11.cpp:
* rendering/EllipsisBox.cpp:
* rendering/EllipsisBox.h:
* rendering/FilterEffectRenderer.cpp:
* rendering/FilterEffectRenderer.h:
* rendering/HitTestLocation.h:
* rendering/HitTestRequest.h:
* rendering/HitTestResult.h:
* rendering/HitTestingTransformState.cpp:
* rendering/HitTestingTransformState.h:
* rendering/RenderBoxRegionInfo.h:
* rendering/RenderButton.cpp:
* rendering/RenderButton.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
* rendering/RenderDeprecatedFlexibleBox.h:
* rendering/RenderFieldset.cpp:
* rendering/RenderFrameBase.cpp:
* rendering/RenderFrameBase.h:
* rendering/RenderFrameSet.cpp:
* rendering/RenderGeometryMap.cpp:
* rendering/RenderGeometryMap.h:
* rendering/RenderGrid.cpp:
* rendering/RenderGrid.h:
* rendering/RenderHTMLCanvas.cpp:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.cpp:
* rendering/RenderIFrame.h:
* rendering/RenderLayerBacking.cpp:
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderLayerCompositor.h:
* rendering/RenderLineBoxList.cpp:
* rendering/RenderLineBoxList.h:
* rendering/RenderListBox.cpp:
* rendering/RenderListBox.h:
* rendering/RenderMarquee.h:
* rendering/RenderMedia.cpp:
* rendering/RenderMedia.h:
* rendering/RenderMultiColumnFlowThread.cpp:
* rendering/RenderMultiColumnFlowThread.h:
* rendering/RenderMultiColumnSet.cpp:
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowThread.cpp:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegionSet.cpp:
* rendering/RenderRegionSet.h:
* rendering/RenderReplica.cpp:
* rendering/RenderReplica.h:
* rendering/RenderTheme.cpp:
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeWin.h:
* rendering/RenderThemeWinCE.cpp:
* rendering/RenderThemeWinCE.h:
* rendering/RenderTreeAsText.cpp:
* rendering/RenderTreeAsText.h:
* rendering/RenderVTTCue.cpp:
* rendering/RenderVTTCue.h:
* rendering/RenderVideo.cpp:
* rendering/RenderVideo.h:
* rendering/RenderView.h:
* rendering/style/SVGRenderStyle.cpp:
* rendering/style/SVGRenderStyle.h:
* rendering/style/SVGRenderStyleDefs.cpp:
* rendering/style/SVGRenderStyleDefs.h:
* rendering/style/StyleFilterData.cpp:
* rendering/style/StyleFilterData.h:
* rendering/style/StylePendingImage.h:
* rendering/svg/RenderSVGBlock.cpp:
* rendering/svg/RenderSVGBlock.h:
* rendering/svg/RenderSVGForeignObject.cpp:
* rendering/svg/RenderSVGForeignObject.h:
* rendering/svg/RenderSVGImage.cpp:
* rendering/svg/RenderSVGInline.h:
* rendering/svg/RenderSVGInlineText.cpp:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGTSpan.h:
* rendering/svg/RenderSVGText.cpp:
* rendering/svg/RenderSVGText.h:
* rendering/svg/SVGInlineFlowBox.cpp:
* rendering/svg/SVGInlineFlowBox.h:
* rendering/svg/SVGRenderTreeAsText.cpp:
* rendering/svg/SVGRenderTreeAsText.h:
* rendering/svg/SVGRootInlineBox.cpp:
* rendering/svg/SVGRootInlineBox.h:
* storage/StorageEventDispatcher.h:
* svg/SVGException.cpp:
* svg/graphics/SVGImageChromeClient.h:
* workers/Worker.cpp:
* workers/Worker.h:
* workers/Worker.idl:
* workers/WorkerEventQueue.cpp:
* workers/WorkerEventQueue.h:
* workers/WorkerGlobalScope.cpp:
* workers/WorkerGlobalScope.h:
* workers/WorkerGlobalScope.idl:
* workers/WorkerLocation.cpp:
* workers/WorkerLocation.h:
* workers/WorkerLocation.idl:
* workers/WorkerMessagingProxy.cpp:
* workers/WorkerMessagingProxy.h:
* workers/WorkerScriptLoader.cpp:
* workers/WorkerScriptLoader.h:
* workers/WorkerScriptLoaderClient.h:
* workers/WorkerThread.cpp:
* workers/WorkerThread.h:
* xml/DOMParser.h:
* xml/DOMParser.idl:
* xml/NativeXPathNSResolver.cpp:
* xml/NativeXPathNSResolver.h:
* xml/XMLHttpRequest.idl:
* xml/XMLHttpRequestException.cpp:
* xml/XMLHttpRequestException.h:
* xml/XMLHttpRequestException.idl:
* xml/XMLHttpRequestProgressEvent.h:
* xml/XMLHttpRequestProgressEvent.idl:
* xml/XMLHttpRequestUpload.idl:
* xml/XMLSerializer.h:
* xml/XMLSerializer.idl:
* xml/XPathEvaluator.cpp:
* xml/XPathEvaluator.h:
* xml/XPathEvaluator.idl:
* xml/XPathException.cpp:
* xml/XPathException.h:
* xml/XPathException.idl:
* xml/XPathExpression.idl:
* xml/XPathExpressionNode.cpp:
* xml/XPathNSResolver.cpp:
* xml/XPathNSResolver.h:
* xml/XPathNSResolver.idl:
* xml/XPathNodeSet.h:
* xml/XPathResult.idl:
* xml/XPathUtil.h:
* xml/XPathVariableReference.cpp:
* xml/XSLTProcessor.idl:
* xml/XSLTUnicodeSort.cpp:
* xml/XSLTUnicodeSort.h:
2014-03-14 Simon Fraser <simon.fraser@apple.com>
Fix scrollperf logging
https://bugs.webkit.org/show_bug.cgi?id=130278
<rdar://problem/16320003>
Reviewed by Anders Carlsson.
r165493 broke scrollperf logging by adding in the scroll position
to the viewport rect, which used to be 0,0 based. Restore
the previous behavior.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
2014-03-14 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
https://bugs.webkit.org/show_bug.cgi?id=130272
Unreviewed. Missing piece from http://trac.webkit.org/changeset/165670
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
2014-03-14 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
https://bugs.webkit.org/show_bug.cgi?id=130272
Reviewed by Simon Fraser.
Rounded rectangle's radius needs adjustment after its containing rect gets pixel snapped.
Keeping the old radius value could make rounded rectangle non-renderable, because the
originally calculated radius length does not fit the snapped rectangle anymore.
Test: fast/borders/hidpi-border-radius-outer-border-goes-rectangle.html
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBorder):
2014-03-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] background-attachment: fixed renders oddly, moves around
https://bugs.webkit.org/show_bug.cgi?id=130277
<rdar://problem/16332883>
Reviewed by Tim Horton.
If we have a counter-scrolling layer (for a fixed background), move
it around when changing the viewport.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):
2014-03-14 Jae Hyun Park <jaepark@webkit.org>
[Texmap] Remove duplicated code in TextureMapperLayer
https://bugs.webkit.org/show_bug.cgi?id=130173
Reviewed by Martin Robinson.
This patch is a simple refactoring to remove duplicated code in
TextureMapperLayer.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::removeFromParent):
2014-03-14 Simon Fraser <simon.fraser@apple.com>
Release-assert if someone starts the WebThread in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=130270
<rdar://problem/16332380>
Reviewed by Sam Weinig.
If someone tries to start the WebThread in the WebProcess, assert,
even in release builds, because this should never happen.
* platform/ios/wak/WebCoreThread.mm:
(WebThreadEnable):
2014-03-14 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Clean up unused externs from WebCore logging.
https://bugs.webkit.org/show_bug.cgi?id=130240
Reviewed by Andreas Kling.
* platform/Logging.h:
2014-03-14 James Craig <jcraig@apple.com>
AX: AccessibilityObject::invalidStatus() is incorrect when aria-invalid="undefined" or whitespace
https://bugs.webkit.org/show_bug.cgi?id=130071
Reviewed by Chris Fleizach.
Accounted for whitespace values and the explicit string, "undefined".
Test: accessibility/aria-invalid.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::invalidStatus):
* accessibility/AccessibilityObject.h:
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
2014-03-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] CSS parser accepts trailing position arguments
https://bugs.webkit.org/show_bug.cgi?id=129514
Reviewed by Andreas Kling.
Add a check to make sure there are no remaining function args
following a position in the circle() and ellipse() css shape
functions.
Updated existing parsing tests.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShapeCircle):
(WebCore::CSSParser::parseBasicShapeEllipse):
2014-03-14 Simon Fraser <simon.fraser@apple.com>
Fix the iOS build and sort the exports file.
* WebCore.exp.in:
2014-03-14 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Improve behavior of fixed elments on zooming
https://bugs.webkit.org/show_bug.cgi?id=130253
Reviewed by Beth Dakin.
Correctly reposition right- and bottom-relative position:fixed
elements on zooming in WK2 iOS by telling the scrolling tree
about zoom-related viewport changes.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::rectForViewportConstrainedObjects):
(WebCore::FrameView::viewportConstrainedObjectsRect): We need to be able to
recompute the fixed position rect from the scrolling tree on iOS, so we need
a static function, similar to scrollOffsetForFixedPosition(), that computes
the constrained viewport.
* page/FrameView.h:
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor): When scrolling (and, by implication, zooming)
is delegated, then setPageScaleFactor() should not affect the scroll position.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Go back to just
passing the visibleContentRect() for iOS.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Entrypoint to
the scrolling tree, called when the viewport is changed by zooming.
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition): Use the
new FrameView::rectForViewportConstrainedObjects() to compute the correct viewport
for fixed/sticky child nodes.
(WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateForViewport):
2014-03-14 Dirk Schulze <krit@webkit.org>
Refactor Path to Path2D and remove currentPath
https://bugs.webkit.org/show_bug.cgi?id=130236
Reviewed by Dean Jackson.
Other implementations prefer Path2D over Path. Furthermore, currentPath is not the right
way to apply a Path2D object to a context. Main argument is that currentPath creates a copy
of the Path2D object. Instead we pass Path2D as argument to fill, stroke and clip now.
Tests: fast/canvas/canvas-clip-path.html
fast/canvas/canvas-fill-path.html
fast/canvas/canvas-stroke-path.html
* bindings/scripts/CodeGeneratorJS.pm: WebIDL parser didn't handle enumerations
for overloaded methods at all.
(GenerateParametersCheckExpression):
* html/canvas/CanvasRenderingContext2D.cpp: New functions with DOMPath argument.
(WebCore::CanvasRenderingContext2D::fill):
(WebCore::CanvasRenderingContext2D::stroke):
(WebCore::CanvasRenderingContext2D::clip):
(WebCore::CanvasRenderingContext2D::fillInternal): Internal method to avoid code duplication
and copy operation.
(WebCore::CanvasRenderingContext2D::strokeInternal): Ditto.
(WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/CanvasRenderingContext2D.idl:
* html/canvas/DOMPath.idl: Rename Path to Path2D.
2014-03-14 Grzegorz Czajkowski <g.czajkowski@samsung.com>
ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder should take a const reference to InsertedNodes
https://bugs.webkit.org/show_bug.cgi?id=130232
Reviewed by Andreas Kling.
This method doesn't modify InsertedNodes object.
No new tests, no behavior change.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
* editing/ReplaceSelectionCommand.h:
2014-03-14 Jer Noble <jer.noble@apple.com>
[EME] Extend the lifetime of MediaKeySession.
https://bugs.webkit.org/show_bug.cgi?id=129841
Reviewed by Eric Carlson.
Test: media/encrypted-media/encrypted-media-session-lifetime.html
In anticipation of guidance to be added to the EME Spec <https://www.w3.org/Bugs/Public/show_bug.cgi?id=24771>,
extend the lifetime of MediaKeySession by making the session an ActiveDOMObject, and returning true to
hasPendingActivity when the session is both not closed and is associated with a live MediaKeys object.
Additionally, keep the object from being destroyed while events are pending.
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::MediaKeySession):
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeySession.idl:
2014-03-14 Ryosuke Niwa <rniwa@webkit.org>
Remove an unused function fix builds.
* platform/mac/HTMLConverter.mm:
2014-03-14 Frédéric Wang <fred.wang@free.fr>
FontCache: Replace DEPRECATED_DEFINE_STATIC_LOCAL with static NeverDestroyed<T>.
https://bugs.webkit.org/show_bug.cgi?id=130233
Reviewed by Andreas Kling.
No new tests.
* platform/graphics/FontCache.cpp:
(WebCore::fontCache):
(WebCore::FontVerticalDataCacheKeyTraits::emptyValue):
(WebCore::fontVerticalDataCacheInstance):
(WebCore::FontDataCacheKeyTraits::emptyValue):
* platform/graphics/FontCache.h:
2014-03-11 Oliver Hunt <oliver@apple.com>
Improve dom error messages
https://bugs.webkit.org/show_bug.cgi?id=130103
Reviewed by Andreas Kling.
Make the DOM error messages more descriptive, and update bindings tests.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
(WebCore::jsTestActiveDOMObjectExcitingAttr):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::jsTestEventConstructorAttr1):
(WebCore::jsTestEventConstructorAttr2):
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::jsTestExceptionName):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfaceImplementsStr1):
(WebCore::jsTestInterfaceImplementsStr2):
(WebCore::jsTestInterfaceImplementsStr3):
(WebCore::jsTestInterfaceImplementsNode):
(WebCore::jsTestInterfaceSupplementalStr1):
(WebCore::jsTestInterfaceSupplementalStr2):
(WebCore::jsTestInterfaceSupplementalStr3):
(WebCore::jsTestInterfaceSupplementalNode):
(WebCore::setJSTestInterfaceImplementsStr2):
(WebCore::setJSTestInterfaceImplementsStr3):
(WebCore::setJSTestInterfaceImplementsNode):
(WebCore::setJSTestInterfaceSupplementalStr2):
(WebCore::setJSTestInterfaceSupplementalStr3):
(WebCore::setJSTestInterfaceSupplementalNode):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::constructJSTestObj):
(WebCore::jsTestObjReadOnlyLongAttr):
(WebCore::jsTestObjReadOnlyStringAttr):
(WebCore::jsTestObjReadOnlyTestObjAttr):
(WebCore::jsTestObjConstructorTestSubObj):
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::jsTestObjEnumAttr):
(WebCore::jsTestObjByteAttr):
(WebCore::jsTestObjOctetAttr):
(WebCore::jsTestObjShortAttr):
(WebCore::jsTestObjUnsignedShortAttr):
(WebCore::jsTestObjLongAttr):
(WebCore::jsTestObjLongLongAttr):
(WebCore::jsTestObjUnsignedLongLongAttr):
(WebCore::jsTestObjStringAttr):
(WebCore::jsTestObjTestObjAttr):
(WebCore::jsTestObjXMLObjAttr):
(WebCore::jsTestObjCreate):
(WebCore::jsTestObjReflectedStringAttr):
(WebCore::jsTestObjReflectedIntegralAttr):
(WebCore::jsTestObjReflectedUnsignedIntegralAttr):
(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedURLAttr):
(WebCore::jsTestObjReflectedCustomIntegralAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):
(WebCore::jsTestObjReflectedCustomURLAttr):
(WebCore::jsTestObjTypedArrayAttr):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithSetterException):
(WebCore::jsTestObjCustomAttr):
(WebCore::jsTestObjWithScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAttribute):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::jsTestObjConditionalAttr4Constructor):
(WebCore::jsTestObjConditionalAttr5Constructor):
(WebCore::jsTestObjConditionalAttr6Constructor):
(WebCore::jsTestObjCachedAttribute1):
(WebCore::jsTestObjCachedAttribute2):
(WebCore::jsTestObjAnyAttribute):
(WebCore::jsTestObjContentDocument):
(WebCore::jsTestObjMutablePoint):
(WebCore::jsTestObjImmutablePoint):
(WebCore::jsTestObjStrawberry):
(WebCore::jsTestObjStrictFloat):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::jsTestObjReplaceableAttribute):
(WebCore::jsTestObjNullableDoubleAttribute):
(WebCore::jsTestObjNullableLongAttribute):
(WebCore::jsTestObjNullableBooleanAttribute):
(WebCore::jsTestObjNullableStringAttribute):
(WebCore::jsTestObjNullableLongSettableAttribute):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjAttribute):
(WebCore::jsTestObjAttributeWithReservedEnumType):
(WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
(WebCore::setJSTestObjEnumAttr):
(WebCore::setJSTestObjByteAttr):
(WebCore::setJSTestObjOctetAttr):
(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::setJSTestObjCustomAttr):
(WebCore::setJSTestObjWithScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAttribute):
(WebCore::setJSTestObjWithScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
(WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr4Constructor):
(WebCore::setJSTestObjConditionalAttr5Constructor):
(WebCore::setJSTestObjConditionalAttr6Constructor):
(WebCore::setJSTestObjAnyAttribute):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):
(WebCore::setJSTestObjStrawberry):
(WebCore::setJSTestObjStrictFloat):
(WebCore::setJSTestObjId):
(WebCore::setJSTestObjReplaceableAttribute):
(WebCore::setJSTestObjNullableLongSettableAttribute):
(WebCore::setJSTestObjNullableStringValue):
(WebCore::setJSTestObjAttributeWithReservedEnumType):
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionCustomMethod):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
(WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
(WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionOrange):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
(WebCore::jsTestObjPrototypeFunctionAny):
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::jsTestSerializedScriptValueInterfaceValue):
(WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
(WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
(WebCore::jsTestSerializedScriptValueInterfacePorts):
(WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
(WebCore::setJSTestSerializedScriptValueInterfaceValue):
(WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
(WebCore::jsTestTypedefsUnsignedLongLongAttr):
(WebCore::jsTestTypedefsImmutableSerializedScriptValue):
(WebCore::jsTestTypedefsConstructorTestSubObj):
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsAttrWithSetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithSetterException):
(WebCore::setJSTestTypedefsUnsignedLongLongAttr):
(WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
(WebCore::setJSTestTypedefsAttrWithGetterException):
(WebCore::setJSTestTypedefsAttrWithSetterException):
(WebCore::setJSTestTypedefsStringAttrWithGetterException):
(WebCore::setJSTestTypedefsStringAttrWithSetterException):
(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::jsattributeReadonly):
2014-03-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] polygon default fill-rule should be omitted from the serialization
https://bugs.webkit.org/show_bug.cgi?id=129840
Reviewed by Dirk Schulze.
Modifying the default polygon string opening to be "polygon(" rather than
"polygon(nonzero".
Updated existing parsing tests.
* css/CSSBasicShapes.cpp:
(WebCore::buildPolygonString):
2014-03-14 Brent Fulgham <bfulgham@apple.com>
Crash when using a mixture of In-Band and Out-of-Band Tracks
https://bugs.webkit.org/show_bug.cgi?id=130247
Reviewed by Eric Carlson.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks): Do not include
the new Out-of-Band placeholder tracks in our counts of in-band tracks.
2014-03-13 Ryosuke Niwa <rniwa@webkit.org>
[Mac] Avoid creating DOMCSSStyleDeclaration in WebHTMLConverter
https://bugs.webkit.org/show_bug.cgi?id=130226
Reviewed by Andreas Kling.
Extracted HTMLConverterCaches in C++ that directly calls getPropertyCSSValue on computed style
and inline style to avoid creating Objective-C wrappers for CSSComputedStyleDeclaration.
This improves the runtime of PerformanceTests/Interactive/CopyAll.html from 31-32s to 25-26s (20%).
* platform/mac/HTMLConverter.h:
* platform/mac/HTMLConverter.mm:
(HTMLConverterCaches::computedStylePropertyForElement):
(HTMLConverterCaches::inlineStylePropertyForElement):
(stringFromCSSValue):
(-[WebHTMLConverter _computedStringForNode:property:]):
(floatValueFromPrimitiveValue):
(_getFloat):
(-[WebHTMLConverter _getComputedFloat:forNode:property:]):
(-[WebHTMLConverter _computedColorForNode:property:]):
(-[WebHTMLConverter dealloc]):
(-[WebHTMLConverter init]):
2014-03-14 James Craig <jcraig@apple.com>
Web Inspector: AXI: Include Role as an extra attribute in the page overlay.
https://bugs.webkit.org/show_bug.cgi?id=130214
Reviewed by Timothy Hatcher.
Adding Role to the Web Inspector element overlay.
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* inspector/InspectorOverlayPage.js:
(_createElementTitle):
2014-03-14 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
https://bugs.webkit.org/show_bug.cgi?id=129943
Reviewed by Timothy Hatcher.
Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
Web Accessibility Node Inspector now displays a link to the AX parent node,
because it's not a 1:1 match with the DOMNode parent.
* inspector/InspectorDOMAgent.cpp: Support for DOMNode.role and AccessibilityProperties.axParentNodeId.
(WebCore::InspectorDOMAgent::buildObjectForNode): Support for role.
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): Support for axParentNodeId.
* inspector/protocol/DOM.json: Added axParentNodeId on AccessibilityProperties, and role on DOMNode.
2014-03-14 Andreas Kling <akling@apple.com>
[Mac] Remove NSURLCache logic from WebCore pressure relief code.
<https://webkit.org/b/130248>
The NSURLCache lives in the networking process and should be cleared
on that end. Furthermore, this code doesn't really do what we thought
it was doing; it merely sets and and resets the limits. No truncation
ever occurred. The intended functionality was implemented in r165342.
Reviewed by Anders Carlsson.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
2014-03-14 Andreas Kling <akling@apple.com>
Simplify jettisoning of style resolvers on memory pressure.
<https://webkit.org/b/129644>
Now that we have Document::allDocuments(), we can jettison all the
style resolvers by walking the set of live documents and calling
clearStyleResolver() on each one, instead of having a function on
Page that walks the frame tree of every living page, etc.
Reviewed by Antti Koivisto.
* page/Page.cpp:
* page/Page.h:
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::releaseMemory):
2014-03-07 Jer Noble <jer.noble@apple.com>
Add Remote Control command support to HTLMediaElement
https://bugs.webkit.org/show_bug.cgi?id=129926
Reviewed by Eric Carlson.
Support the new MediaSession remote control commands by pulling in code from
MediaControlElementTypes to control scanning.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
* html/HTMLMediaElement.h:
* html/MediaController.cpp:
(MediaController::beginScanning): Moved from MediaControlElementTypes.
(MediaController::endScanning): Ditto.
* html/MediaController.h:
* html/MediaControllerInterface.h:
Remove all the scanning code from MediaControlSeekButtonElement.
* html/shadow/MediaControlElementTypes.cpp:
(WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
(WebCore::MediaControlSeekButtonElement::setActive):
* html/shadow/MediaControlElementTypes.h:
2014-03-14 Krzysztof Czech <k.czech@samsung.com>
Move WebSpeech code to use std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=130231
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in WebSpeech code with std::unique_ptr.
No new tests. Covered by existing ones.
* Modules/speech/SpeechRecognitionController.cpp:
* Modules/speech/SpeechRecognitionController.h:
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::setPlatformSynthesizer):
(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
* Modules/speech/SpeechSynthesis.h:
* WebCore.exp.in:
* platform/PlatformSpeechSynthesizer.cpp:
* platform/PlatformSpeechSynthesizer.h:
* platform/mock/PlatformSpeechSynthesizerMock.cpp:
* platform/mock/PlatformSpeechSynthesizerMock.h:
* testing/Internals.cpp:
(WebCore::Internals::enableMockSpeechSynthesizer):
2014-03-13 Anders Carlsson <andersca@apple.com>
Move visited link handling to VisitedLinkTableController and VisitedLinkProvider
https://bugs.webkit.org/show_bug.cgi?id=130223
<rdar://problem/16315792>
Reviewed by Dan Bernstein.
Export symbols needed by WebKit2.
* WebCore.exp.in:
2014-03-12 Martin Robinson <mrobinson@igalia.com>
[GTK] Fix unused parameter warnings in the GObject WebKitDOM bindings
https://bugs.webkit.org/show_bug.cgi?id=130174
Reviewed by Daniel Bates.
* bindings/gobject/DOMObjectCache.cpp:
(WebKit::weakRefNotify): Fix unused parameters.
* bindings/gobject/WebKitDOMDeprecated.cpp: Ditto.
* bindings/gobject/WebKitDOMObject.cpp: Ditto.
* bindings/scripts/CodeGeneratorGObject.pm: Generate UNUSED_PARAM when appropriate and clean
up the getter and setter code generation a little to make it easier to read.
2014-03-14 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Build fix with SUBPIXEL_LAYOUT disabled
https://bugs.webkit.org/show_bug.cgi?id=130210
Reviewed by Daniel Bates.
Use pre-incremeent operator for LayoutUnit instead of post-increment operator as LayoutUnit doesn't support the
latter and we don't make use of the return value.
* dom/Element.cpp:
(WebCore::adjustForLocalZoom):
2014-03-14 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Inline-block child of content node incorrectly clipped
https://bugs.webkit.org/show_bug.cgi?id=130229
Reviewed by Andrei Bucur.
Constrain the target box rect to the region box rect only if we are able
to determine the region range for box. If we cannot do that, getRegionRangeForBox
returns null values for start and end region and we should not perform the clamping.
Test: fast/regions/inlineblock-child-inlineblock-contentnode-in-region.html
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::rectFlowPortionForBox):
2014-03-14 Zan Dobersek <zdobersek@igalia.com>
Unnecessary ImplementationLacksVTable IDL attribute used for RTCConfiguration, RTCIceServer
https://bugs.webkit.org/show_bug.cgi?id=130230
Reviewed by Philippe Normand.
The RTCConfiguration and RTCIceServer classes do not own virtual tables, so using the
ImplementationLacksVTable attribute in the IDL interface leads to a compile-time assertion
failure in the generates JSC wrappers because none of the classes is polymorphic.
* Modules/mediastream/RTCConfiguration.idl:
* Modules/mediastream/RTCIceServer.idl:
2014-03-14 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] the "grid-template-areas" is not identified as computable property.
https://bugs.webkit.org/show_bug.cgi?id=130073
Reviewed by Sergio Villar Senin.
The "grid-template-areas" property is a computable CSS property, so it should be
handled accordingly by the Web Inspector.
No new tests.
* css/CSSComputedStyleDeclaration.cpp:
CSSPropertyWebkitGridTemplateAreas added to the computedProperties array.
2014-03-14 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid layout] Initial position in span not correctly computed sometimes
https://bugs.webkit.org/show_bug.cgi?id=130124
Reviewed by Darin Adler.
The code uses std::lower_bound() to get the first grid line
position before a given resolved position in a Vector. That
function returns an iterator pointing to the first value not
"strictly less" than the given one. Consequently, the returned
position might be actually located after the resolved final
position. In those cases we need to select the previous position
in the Vector (which is guaranted to be "< resolved position" due
to how std::lower_bound() works).
For example, if we have vector=[2,5,8] as grid positions, and we
need the first position before 7, std::lower_bound(vector, 7) will
point to 8 (first value not < 7). It's obvious that we should
select 5 instead. Should the pointed value be equal, then we
should do nothing, because the indexes mean tracks, so the item
will be placed in just one cell of the grid.
* rendering/RenderGrid.cpp:
(WebCore::firstNamedGridLineBeforePosition):
(WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
2014-03-14 Zsolt Borbely <borbezs@inf.u-szeged.hu>
Fix the !ENABLE(SVG_FONTS) build
https://bugs.webkit.org/show_bug.cgi?id=130193
Reviewed by Dirk Schulze.
Add missing ENABLE(SVG_FONTS) guards for createGlyphToPathTranslator() function
in SVGTextRunRenderingContext.h and TextRun.h, because when the SVG_FONTS are
disabled the function is not implemented.
* platform/graphics/TextRun.h:
* rendering/svg/SVGTextRunRenderingContext.h:
2014-03-14 Sergio Villar Senin <svillar@igalia.com>
Unreviewed build fix after r165607. There were two missing replaces.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* dom/Element.cpp:
(WebCore::attrNodeListMap):
2014-03-14 Frédéric Wang <fred.wang@free.fr>
Migrate the MathML stretchy code from UChar to Glyph.
https://bugs.webkit.org/show_bug.cgi?id=128907
Reviewed by Chris Fleizach.
This prepares the MathML stretchy code for future support for the MATH
table. In particular, this uses the glyph index for measuring and
drawing instead of Unicode code point since the MATH table uses glyph
indices. Also, this merges the preferred width and stretchy character
selection into one common path since they will also have to share the
size variants measuring/selection. Finally, we expose a drawGlyphs()
method so that we can draw a glyph by index.
No new tests. This should not change the behavior of the stretchy code.
* platform/graphics/Font.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawGlyphs):
* platform/graphics/GraphicsContext.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::boundsForGlyph):
(WebCore::RenderMathMLOperator::heightForGlyph):
(WebCore::RenderMathMLOperator::advanceForGlyph):
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::findStretchyData):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::computeLogicalHeight):
(WebCore::RenderMathMLOperator::paintGlyph):
(WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
(WebCore::RenderMathMLOperator::paint):
(WebCore::RenderMathMLOperator::paintChildren):
* rendering/mathml/RenderMathMLOperator.h:
2014-03-12 Sergio Villar Senin <svillar@igalia.com>
Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
https://bugs.webkit.org/show_bug.cgi?id=129612
Reviewed by Darin Adler.
For new code use static NeverDestroyed<T> instead.
Removed the list of changed files as it was huge.
2014-03-14 Gavin Barraclough <barraclough@apple.com>
Reduce memory use for static property maps
https://bugs.webkit.org/show_bug.cgi?id=129986
Unreviewed Windows build fix / update bindings test results following r165603.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHashTable):
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestNode.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
2014-03-14 Jinwoo Song <jinwoo7.song@samsung.com>
Use override keyword in BatteryManager
https://bugs.webkit.org/show_bug.cgi?id=130225
Reviewed by Daniel Bates.
* Modules/battery/BatteryManager.h:
2014-03-12 Gavin Barraclough <barraclough@apple.com>
Reduce memory use for static property maps
https://bugs.webkit.org/show_bug.cgi?id=129986
Reviewed by Andreas Kling.
Static property tables are currently duplicated on first use from read-only memory into dirty memory
in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
(we use a custom hash table without a rehash) a lot of memory may be wasted.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching):
(WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
- HashEntry -> HashTableValue.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- HashEntry -> HashTableValue.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::getOwnPropertySlotDelegate):
- HashEntry -> HashTableValue.
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
(WebCore::JSLocation::putDelegate):
- HashEntry -> HashTableValue.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
- HashEntry -> HashTableValue.
(GenerateHashTable):
- emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).
2014-03-13 Manish R Gurnaney <m.gurnaney@samsung.com>
Scroll size is not recalculated when absolute left of child is updated
https://bugs.webkit.org/show_bug.cgi?id=123958
Reviewed by Simon Fraser.
Test: fast/css/display-inline-block-scrollbar.html
Actual issue was that whenever there is the content change in the
RenderBlock having inline-block children, The InlineFlowBox while
computing overflow never resets previous value.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::computeOverflow):
Added code to clear overflow when we start computing overflow for
InlineFlowBox. So as to ScrollSize can be recalculated properly.
2014-03-13 Zalan Bujtas <zalan@apple.com>
Pass const RenderStyle& to box decoration functions.
https://bugs.webkit.org/show_bug.cgi?id=130201
Reviewed by Andreas Goran Kling.
No change in functionality.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintBoxShadow):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMaskImages):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintNinePieceImage):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::getBorderEdgeInfo):
(WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
(WebCore::RenderBoxModelObject::borderObscuresBackground):
(WebCore::RenderBoxModelObject::paintBoxShadow):
* rendering/RenderBoxModelObject.h:
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintBoxDecorations):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paintBoxDecorations):
2014-03-13 Jinwoo Jeong <jw00.jeong@samsung.com>
Refactor Vibration algorithm to use only one timer.
https://bugs.webkit.org/show_bug.cgi?id=130059
Reviewed by Darin Adler.
Currently Vibration is using two timers,
one is to start a vibration and another is to check termination of a vibration.
But they do not work in same time, if one of them is fired, then anothor will start.
Thus this patch removes one of them, and manages vibration states by enumeration.
Also, this patch implement the missing part of the algorithm,
which check the maximum length of the vibration pattern and the maximum duration of the vibration.
Lastly, this patch removes unused methods from Vibration.
* Modules/vibration/Vibration.cpp:
(WebCore::Vibration::Vibration):
(WebCore::Vibration::vibrate):
(WebCore::Vibration::cancelVibration):
Removed stopVibration() and its contents moved to cancelVibration().
(WebCore::Vibration::timerFired): Combined timerStartFired() and timerStopFired().
Removed suspendVibration() and resumeVibration(), which is never called since r.
* Modules/vibration/Vibration.h: Added new enumertaion to specify states of Vibration.
(WebCore::Vibration::isVibrating):
2014-03-13 James Craig <jcraig@apple.com>
Web Inspector: AXI: Use loc strings for known aria-invalid types
https://bugs.webkit.org/show_bug.cgi?id=129952
Reviewed by Joseph Pecoraro.
Updating inspector-protocol enum and UI display values for @aria-invalid.
Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* inspector/InspectorDOMAgent.cpp: Enum for DOM.AccessibilityPropertiesInvalid
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json: Enum for DOM.AccessibilityPropertiesInvalid
2014-03-13 Dirk Schulze <krit@webkit.org>
[SVG2] support paint-order presentation attribute
https://bugs.webkit.org/show_bug.cgi?id=129373
Reviewed by Dean Jackson.
Add support for the paint-order property from SVG2. The presentation
attribute/CSS property allows to paint fill, stroke and markers in any order
the author desires.
Firefox supports this but behind a runtime flag. It is just activated in
nightly builds by default.
Chromium supports it behind a runtime flag as well but is going to ship it
pretty soon.
Tests: svg/paint-order/paint-order-fill-expected.svg
svg/paint-order/paint-order-fill-markers-expected.svg
svg/paint-order/paint-order-fill-markers.svg
svg/paint-order/paint-order-fill.svg
svg/paint-order/paint-order-markers-expected.svg
svg/paint-order/paint-order-markers-stroke-expected.svg
svg/paint-order/paint-order-markers-stroke.svg
svg/paint-order/paint-order-markers.svg
svg/paint-order/paint-order-normal-expected.svg
svg/paint-order/paint-order-normal.svg
svg/paint-order/paint-order-stroke-expected.svg
svg/paint-order/paint-order-stroke-marker-expected.svg
svg/paint-order/paint-order-stroke-marker.svg
svg/paint-order/paint-order-stroke.svg
svg/paint-order/paint-order-text-markers-expected.svg
svg/paint-order/paint-order-text-markers.svg
svg/paint-order/paint-order-text-normal-expected.svg
svg/paint-order/paint-order-text-normal.svg
svg/paint-order/paint-order-text-stroke-expected.svg
svg/paint-order/paint-order-text-stroke.svg
svg/paint-order/paint-order-text-tspan-001-expected.svg
svg/paint-order/paint-order-text-tspan-001.svg
svg/paint-order/paint-order-text-tspan-002-expected.svg
svg/paint-order/paint-order-text-tspan-002.svg
svg/paint-order/parsing-paint-order.html
* css/CSSComputedStyleDeclaration.cpp: Computed style for paint-order.
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.h:
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::svgPropertyValue):
* css/SVGCSSParser.cpp: Parse paint-order. Take care of serialization
at this point already to get element style correct.
(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parsePaintOrder):
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::paintTypesForPaintOrder):
(WebCore::SVGRenderStyle::diff): Repaint on change.
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialPaintOrder):
(WebCore::SVGRenderStyle::setPaintOrder):
(WebCore::SVGRenderStyle::paintOrder):
(WebCore::SVGRenderStyle::InheritedFlags::operator==):
(WebCore::SVGRenderStyle::setBitDefaults):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/svg/RenderSVGShape.cpp: Change order of painting based on paint-order.
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::fillStrokeMarkers):
(WebCore::RenderSVGShape::paint):
(WebCore::RenderSVGShape::addFocusRingRects):
* rendering/svg/RenderSVGShape.h:
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paint): Ditto.
* svg/SVGElement.cpp: Make property a presentation attribute.
(WebCore::populateAttributeNameToCSSPropertyIDMap):
(WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
* svg/svgattrs.in: Add paint-order attribute.
2014-03-13 Andreas Kling <akling@apple.com>
Network process instantiates JSC::VM under fake memory pressure.
<https://webkit.org/b/130143>
Stop calling GCController::garbageCollectSoon() in the fake memory
pressure callback. The pressure relief code already schedules GC
by way of discardAllCode() which does reportAbandonedObjectGraph().
This way we don't accidentally instantiate a VM in the networking
process for no reason.
Reviewed by Geoffrey Garen.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::install):
2014-03-13 Diego Pino Garcia <dpino@igalia.com>
Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
https://bugs.webkit.org/show_bug.cgi?id=129779
Reviewed by Timothy Hatcher.
* inspector/InspectorDOMAgent.cpp: Set property "focused".
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json: Add property "focused" to
AccessibilityProperties.
2014-03-12 Jae Hyun Park <jaepark@webkit.org>
Remove remaining Nix port related files
https://bugs.webkit.org/show_bug.cgi?id=130179
Reviewed by Csaba Osztrogonác.
GLContextFromCurrentEGL was added in r155360 as a part of nix
upstreaming. As Nix port is removed from the source tree, these files
are in no use.
* platform/graphics/egl/GLContextFromCurrentEGL.cpp: Removed.
* platform/graphics/egl/GLContextFromCurrentEGL.h: Removed.
2014-03-13 Daniel Bates <dabates@apple.com>
REGRESSION (r160806): Incorrect cascade order of prefixed and non-prefixed variants of
CSS properties box-shadow and background-{clip, origin, size}
https://bugs.webkit.org/show_bug.cgi?id=130102
<rdar://problem/16187037>
Reviewed by Andreas Kling.
Fixes an issues in the computation of the final value for the CSS properties
box-shadow and background-{clip, origin, size} when the definition of a selector
uses both the prefixed and non-prefixed variants (in order) of these properties.
Tests: fast/css/cascade/background-clip-and-webkit-background-clip-cascade-order.html
fast/css/cascade/background-origin-and-webkit-background-origin-cascade-order.html
fast/css/cascade/background-size-and-webkit-background-size-cascade-order.html
fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html
* css/CSSPropertyNames.in: Add a comment to explain the difference between property
-webkit-box-shadow and property box-shadow.
* css/StyleResolver.cpp:
(WebCore::shouldApplyPropertyInParseOrder): Add prefixed and non-prefixed variants
of box-shadow and background-{clip, origin, size} to the list of properties that need
to be applied in the same order as they were parsed from the stylesheet.
2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
https://bugs.webkit.org/show_bug.cgi?id=130217
Reviewed by Timothy Hatcher.
This has been replaced by NetworkAgent.loadResource,
which loads asynchronously through the backend.
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network.loadResource should include the response status code
https://bugs.webkit.org/show_bug.cgi?id=130216
Reviewed by Timothy Hatcher.
* inspector/InspectorResourceAgent.cpp:
Record and send the http status code.
* inspector/protocol/Network.json:
Include status code property in the success callback.
2014-03-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network.loadResource XHR crash if page reloaded while request is ongoing
https://bugs.webkit.org/show_bug.cgi?id=130211
Reviewed by Timothy Hatcher.
Merged from Blink with changes, (patch by vsevik@chromium.org):
http://src.chromium.org/viewvc/blink?view=revision&revision=152712
Using an XMLHttpRequest to download resources had a few issues. Being an
Active DOM Object the load could be paused. Without an extra retain,
when the load was cancelled (e.g. a page reload) the XHR would get
destructed and could cause a crash if the list of active DOM objects
was actively being iterated.
Switch to a DocumentThreadableLoader to manage the load ourselves.
This still uses the Memory cache, but we have a little more control.
* inspector/InspectorResourceAgent.h:
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::InspectorResourceAgent):
(WebCore::InspectorResourceAgent::loadResource):
Switch from XHR to DocumentThreadableLoader.
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::sendForInspector):
Remove the now unnecessary XHR sendForInspector path.
2014-03-13 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165540.
https://bugs.webkit.org/show_bug.cgi?id=130199
caused 1 hidpi test fail (Requested by zalan on #webkit).
Reverted changeset:
"Subpixel rendering: Nested layers with subpixel accumulation
paint to wrong position."
https://bugs.webkit.org/show_bug.cgi?id=130153
http://trac.webkit.org/changeset/165540
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Fix a bunch of mistakes in the parsing of ::cue( and ::cue
https://bugs.webkit.org/show_bug.cgi?id=130113
Reviewed by Andreas Kling.
* css/CSSGrammar.y.in:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::setPseudoTypeValue):
The ::cue() pseudo element "function" was passed as a PseudoClass.
The type was then parsed and considered as a compatibility type to flip
the match type back to PseudoElement.
Instead of all that jazz, just pass the right type from the grammar.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::parsePseudoType):
The non-function ::cue pseudo element use shadow pseudo ID for matching the element.
Since it is unprefixed, it needs to map to one of the Custom types. The previous code
was using String::startsWith() for some reason, change that to a simple equality.
2014-03-13 Benjamin Poulain <benjamin@webkit.org>
Clean up RenderStyle creation
https://bugs.webkit.org/show_bug.cgi?id=130180
Reviewed by Andreas Kling.
Use the copy constructor with the default style instead of having a special
constructor for that.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::create):
(WebCore::RenderStyle::RenderStyle):
* rendering/style/RenderStyle.h:
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
The viewport code should not depend on WebKitSystemInterface
https://bugs.webkit.org/show_bug.cgi?id=130218
Reviewed by Tim Horton.
The viewport code cannot be generalized to other ports because it relies
on WebKit system interface to get the device screen size.
This patch fixes that by going through ChromeClient to get the data.
* dom/Document.cpp:
(WebCore::Document::processViewport):
Get the screensize from chrome client.
* dom/ViewportArguments.cpp:
(WebCore::computeViewportAttributes):
This is dead code. Nothing should ever use computeViewportAttributes().
(WebCore::finalizeViewportArguments):
* dom/ViewportArguments.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::viewportScreenSize):
2014-03-07 Jer Noble <jer.noble@apple.com>
Add remote control command support to MediaSession.
https://bugs.webkit.org/show_bug.cgi?id=129903
Reviewed by Eric Carlson.
Add the capability to receive remote control commands (currently iOS only) and to
pass those commands through the MediaSessionManager.
Add a new platform class which can listen for remote control commands:
* platform/RemoteCommandListener.cpp: Added.
(WebCore::RemoteCommandListener::create):
* platform/RemoteCommandListener.h: Added.
(WebCore::RemoteCommandListenerClient::~RemoteCommandListenerClient):
(WebCore::RemoteCommandListener::~RemoteCommandListener):
(WebCore::RemoteCommandListener::RemoteCommandListener):
* platform/ios/RemoteCommandListenerIOS.h: Added.
* platform/ios/RemoteCommandListenerIOS.mm: Added.
(WebCore::RemoteCommandListener::create):
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS):
Handle remote control command events in HTMLMediaElement and AudioDestinationMac:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* html/HTMLMediaElement.h:
* platform/audio/mac/AudioDestinationMac.h:
(WebCore::AudioDestinationMac::canReceiveRemoteControlCommands):
(WebCore::AudioDestinationMac::didReceiveRemoteControlCommand):
Pipe command events through MediaSessionManager:
* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::canReceiveRemoteControlCommands):
(WebCore::MediaSession::didReceivRemoteControlCommand):
* platform/audio/MediaSession.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::removeSession):
(WebCore::MediaSessionManager::sessionWillBeginPlayback):
(WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::MediaSessionManager::addClient):
(WebCore::MediaSessionManager::removeClient):
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManagerClient::~MediaSessionManagerClient):
(WebCore::MediaSessionManagerClient::MediaSessionManagerClient):
Make sessionWillBegin/EndPlayback() methods take non-const parameters:
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::sessionWillEndPlayback):
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManagerIOS::sessionWillBeginPlayaback):
(WebCore::MediaSessionManagerIOS::sessionWillEndPlayaback):
Add new files and export new symbols:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2014-03-13 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed, rolling out r165544 and r165560.
It broke EFL/GTK/Windows build
Reverted changesets:
"Optimize hasTagName when called on an HTMLElement"
https://bugs.webkit.org/show_bug.cgi?id=130090
http://trac.webkit.org/changeset/165544
http://trac.webkit.org/changeset/165560
2014-03-13 Antti Koivisto <antti@apple.com>
Try to stop asserts in debug build.
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches):
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Update the build fix for r165544
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
Fix typo :(
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Update the build fix for r165544
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper isSVGGroupElement]):
Use the SVG version since the name being tested is a SVG name.
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Attempt to fix the build after r165542
* dom/NodeRenderStyle.h:
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Update WebAccessibilityObjectWrapperIOS after r165544
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper isSVGGroupElement]):
2014-03-13 Antti Koivisto <antti@apple.com>
REGRESSION(r165542): printing/page-rule-selection.html failing
https://bugs.webkit.org/show_bug.cgi?id=130205
Reviewed by Andreas Kling.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::styleForPage):
Use Document style as parent when resolving page style.
(WebCore::StyleResolver::applyPropertyToStyle):
* css/StyleResolver.h:
Get rid of the default null parameter.
2014-03-13 Benjamin Poulain <bpoulain@apple.com>
Remove INPUT_LIST_BUTTON from the PseudoIds
https://bugs.webkit.org/show_bug.cgi?id=130108
Reviewed by Andreas Kling.
* rendering/style/RenderStyleConstants.h:
It is unused.
2014-03-12 Eric Carlson <eric.carlson@apple.com>
[iOS] Sync media playback with now playing
https://bugs.webkit.org/show_bug.cgi?id=130172
Reviewed by Jer Noble.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::play): Move clientWillBeginPlayback to
playInternal so it is called every time playback begins.
(WebCore::HTMLMediaElement::playInternal): Call clientWillBeginPlayback.
(WebCore::HTMLMediaElement::pause): Move clientWillPausePlayback to
playInternal so it is called every time playback begins.
(WebCore::HTMLMediaElement::playInternal): Call clientWillPausePlayback.
(WebCore::HTMLMediaElement::mediaSessionTitle): New. Return the 'title' attribute,
or currenSrc if that is empty.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::mediaSessionDuration): Return duration.
(WebCore::HTMLMediaElement::mediaSessionCurrentTime): Return current time.
* platform/audio/MediaSession.cpp:
(WebCore::MediaSession::clientWillPausePlayback): New, passthrough to the
media element.
(WebCore::MediaSession::title): Ditto.
(WebCore::MediaSession::duration): Ditto.
(WebCore::MediaSession::currentTime): Ditto.
* platform/audio/MediaSession.h:
(WebCore::MediaSessionClient::mediaSessionTitle):
(WebCore::MediaSessionClient::mediaSessionDuration):
(WebCore::MediaSessionClient::mediaSessionCurrentTime):
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::MediaSessionManager): Initialize m_activeSession.
(WebCore::MediaSessionManager::removeSession): Set m_activeSession if the session
being removed is currently active.
(WebCore::MediaSessionManager::sessionWillBeginPlayback): Set m_activeSession.
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::sessionWillEndPlayback):
(WebCore::MediaSessionManager::setCurrentSession):
(WebCore::MediaSessionManager::currentSession):
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Call updateNowPlayingInfo.
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Ditto.
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Update MPNowPlayingInfoCenter
with the current media item's title, duration, and current time.
(-[WebMediaSessionHelper initWithCallback:]): Turn on deliver of remote control
events, even though we don't respond to them yet, or Now Playing won't work.
2014-03-13 Radu Stavila <stavila@adobe.com>
Webkit not building on XCode 5.1 due to garbage collection no longer being supported
https://bugs.webkit.org/show_bug.cgi?id=130087
Reviewed by Mark Rowe.
Disable garbage collection on macosx when not using internal SDK.
No new tests required.
* Configurations/Base.xcconfig:
2014-03-13 Andreas Kling <akling@apple.com>
Don't send synchronous resize events when FrameView has auto-sizing enabled.
<https://webkit.org/b/130198>
<rdar://problem/15991333>
Reviewed by Dan Bernstein.
* page/FrameView.cpp:
(WebCore::FrameView::sendResizeEventIfNeeded):
2014-03-13 Antti Koivisto <antti@apple.com>
Try to fix release build.
* css/MediaQueryMatcher.cpp:
* css/StyleMedia.cpp:
* html/HTMLTitleElement.cpp:
2014-03-11 Darin Adler <darin@apple.com>
Avoid copy-prone idiom "for (auto item : collection)"
https://bugs.webkit.org/show_bug.cgi?id=129990
Reviewed by Geoffrey Garen.
Most of these changes have no effect. A few of them get rid of unwanted
copying of the items as we iterate them. Found these with the command
'git grep "for (auto .*:"' or the equivalent.
* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::IDBKeyData): Use auto& to avoid copying the keys.
(WebCore::IDBKeyData::maybeCreateIDBKey): Ditto.
(WebCore::IDBKeyData::isolatedCopy): Ditto.
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches): Use auto*
to make explicit the fact that these are pointers. Stop using "it" for
a variable that is not an iterator. Get rid of unneeded local variables
for the collections themselves.
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument): Use auto& to make sure we
don't do any unnecessary copying. Stop using "it" for a variable that
is not an iterator.
* html/HTMLTableRowsCollection.cpp:
(WebCore::HTMLTableRowsCollection::lastRow): Use auto* to be explicit
that these are pointers.
* inspector/InspectorNodeFinder.cpp:
(WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal): Ditto.
* page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot): Ditto. Also got rid of
an unnecessary local variable.
* platform/FileChooser.cpp:
(WebCore::FileChooser::chooseFiles): Use auto&. Also fix a FIXME.
(WebCore::FileChooser::chooseMediaFiles): Ditto.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::naturalSize): Use auto&.
* rendering/RenderIterator.h: Changed include from RenderObject.h to
RenderElement.h; iterators are based on RenderElement now.
* rendering/svg/RenderSVGResource.cpp:
(WebCore::removeFromCacheAndInvalidateDependencies): Use auto*.
* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): Use auto*.
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation): Ditto.
(WebCore::RenderSVGResourceContainer::registerResource): Ditto.
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren): Updated to use a more specific
type, to use auto* instead of of auto, and to eliminate the slightly sloppily
capitalized and not-so-slightly ungrammatical notlayoutedObjects.
(WebCore::SVGRenderSupport::applyStrokeStyleToContext): Use auto&.
(WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending): Use auto*.
* rendering/svg/SVGResourcesCycleSolver.cpp:
(WebCore::SVGResourcesCycleSolver::resourceContainsCycles): Use auto*.
(WebCore::SVGResourcesCycleSolver::resolveCycles): Ditto. Also lineageOfType.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyResultsToTarget): Use auto*.
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::invalidateMPathDependencies): Ditto.
2014-03-13 Brian Burg <bburg@apple.com>
Web Inspector: Remove unused callId parameter from evaluateInWebInspector
https://bugs.webkit.org/show_bug.cgi?id=129744
Reviewed by Timothy Hatcher.
* WebCore.exp.in:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::evaluateForTestInFrontend):
* inspector/InspectorController.h:
2014-03-13 Darin Adler <darin@apple.com>
Optimize hasTagName when called on an HTMLElement
https://bugs.webkit.org/show_bug.cgi?id=130090
Reviewed by Antti Koivisto.
Added new hasTagName functions that have the efficiency of hasLocalName.
but are safe.
Now we can always use hasTagName, and we'll get a compile time error if
we try to use an SVG tag name with an HTML element. All call sites that
use the more specific tag name types are more efficient, and call sites
that have a specific pointer type will get even more efficient checking
that is exactly what we used to get by calling hasLocalName.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
since Node::hasTagName no longer works on a general QualifiedName.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
more specific type, RenderElement, so we can call hasTagName on Element
instead of Node; eliminates an unnecessary branch.
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
new for loop and full words for variable names. Also use nullptr instead
of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
since it's already checking isHTMLElement and isSVGElement.
* dom/Element.cpp:
(WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
the map rather than putting pointers to a vector into the map.
(WebCore::attrNodeListForElement): Take a reference rather than a pointer,
and update for the change above.
(WebCore::ensureAttrNodeListForElement): Ditto.
(WebCore::removeAttrNodeListForElement): Ditto.
(WebCore::findAttrNodeInList): Ditto.
(WebCore::Element::isFocusable): Use ancestorsOfType<HTMLCanvasElement>
to fine the canvas rather than a hand-written loop.
(WebCore::Element::attrNodeList): Update for above changes.
(WebCore::Element::setAttributeNode): Ditto.
(WebCore::Element::attrIfExists): Ditto.
(WebCore::Element::ensureAttr): Ditto.
(WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
(WebCore::Element::detachAllAttrNodesFromElement): Ditto.
* dom/Element.h: Removed the overload of hasLocalName that takes a
QualifiedName and ignores the non-local-name parts of it. Callers should
use hasTagName instead, now that it's optimized appropriately. Added
overloads of hasTagName for all the specific qualified name types. It's
more efficient to use the Node versions of these functions rather than
using QualifiedName::matches to do the check. Removed the hasTagName and
hasLocalName functions from the Node class; the only convenience functions
needed in Node are the specific checks for tags from HTML, MathML, and SVG,
not the general purpose ones.
* dom/Node.h: Removed hasLocalName and replaced the single hasTagName
that takes a QualifiedName with three faster ones that take HTML, MathML,
and SVG qualified names instead. Also updated to use nullptr instead of 0.
* dom/PositionIterator.cpp: Added now-needed include.
* dom/Text.cpp: Ditto.
* dom/make_names.pl:
(printHeaderHead): Renamed an argument for clarity and added a definitions
argument, which is where we insert the classes derived from QualifiedName.
(printCppHead): Renamed an argument for clarity.
(printTypeHelpers): Use hasTagName rather than hasLocalName, since the
former is now optimized to be the same as what the latter was.
(printNamesHeaderFile): Define a class derived from QualifiedName that can
be used at compile time to avoid having to check the namespace.
(printNamesCppFile): Use the new more-specific type as needed.
* editing/ApplyStyleCommand.cpp:
(WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
and references instead of pointers.
(WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
construction of a smart pointer.
(WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
the enclosingElementWithTag function by its new name.
* editing/Editor.cpp:
(WebCore::Editor::selectionUnorderedListState): Updated to use the
enclosingElementWithTag function by its new name.
(WebCore::Editor::selectionOrderedListState): Ditto.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
(WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
* editing/InsertListCommand.h: Ditto.
* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
cast to Element in the loop that is already guarded by an isElementNode check.
Also use a modern C++ for loop.
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
Updated to use the enclosingElementWithTag function by its new name.
(WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
(WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.
* editing/TypingCommand.cpp: Added now-needed includes.
* editing/VisibleUnits.cpp: Ditto.
* editing/htmlediting.cpp:
(WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
since nodes other than elements do not have tags.
* editing/htmlediting.h: Ditto.
* editing/mac/EditorMac.mm:
(WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
function by its new name.
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendText): Ditto.
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
(WebCore::highestAncestorToWrapMarkup): Ditto.
(WebCore::createMarkupInternal): Ditto.
(WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
since the former is now optimized to be the same as the latter was before.
* html/HTMLCollection.cpp:
(WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
since the former is now optimized to be the same as the latter was before.
(WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
(WebCore::unicodeBidiAttributeForDirAuto): Ditto.
(WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
(WebCore::HTMLElement::setInnerHTML): Ditto.
(WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
setInnerText and setOuterText.
(WebCore::HTMLElement::setInnerText): Ditto.
(WebCore::HTMLElement::setOuterText): Ditto.
(WebCore::HTMLElement::rendererIsNeeded): Ditto.
(WebCore::HTMLElement::createElementRenderer): Ditto.
* html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific HTMLQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for HTMLQualifiedName into this header.
* html/HTMLObjectElement.cpp:
(WebCore::isRecognizedTagName): Updated for change in return type of
HTMLNames::getHTMLTags.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
(WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
Also use a new style for loop and emptyString() instead of "".
(WebCore::HTMLSelectElement::setValue): Ditto.
(WebCore::HTMLSelectElement::setLength): Ditto.
(WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
(WebCore::HTMLSelectElement::restoreFormControlState): Ditto.
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
instead of hasLocalName.
* html/HTMLTableRowsCollection.cpp:
(WebCore::isInSection): Updated to use hasTagName and take a reference.
(WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.
* html/parser/HTMLConstructionSite.cpp: Added now-needed include.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
be flxible about the type of the table being used.
(WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
(WebCore::adjustAttributes): Added new helper so we can share more code. Updated
template argument names for clarity.
(WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
calls a single non-inline function.
(WebCore::adjustMathMLAttributes): Ditto.
(WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
(WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
function below.
(WebCore::adjustForeignAttributes): Updated for above changes.
(WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
(WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.
* inspector/InspectorStyleSheet.cpp: Added now-needed include.
* mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific MathMLQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for MathMLQualifiedName into this header.
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
(WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
(WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
(WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::createElementRenderer): Ditto.
(WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.
* platform/mac/HTMLConverter.mm: Added now-needed include.
* rendering/RenderBlockFlow.cpp: Ditto.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::rendererForRootBackground): Ditto.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.
* rendering/RenderReplaced.cpp: Added now-needed include.
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
* rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.
* svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
and takes the more-specific SVGQualifiedName type. This means we don't need to check
the namespace at runtime because it's known at compile time. Also put the
implementation of Node::hasTagName for SVGQualifiedName into this header.
* svg/SVGFontFaceSrcElement.cpp:
(WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
of calling hasTagName.
* svg/SVGUseElement.cpp:
(WebCore::isDirectReference): Changed to take a reference and a more specific type.
(WebCore::SVGUseElement::toClipPath): Added a type cast.
(WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
need a type cast.
* xml/parser/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
unusual call site that has a good reason to use hasLocalName instead of hasTagName.
2014-03-13 Antti Koivisto <antti@apple.com>
Try to fix iOS build.
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
2014-03-13 Antti Koivisto <antti@apple.com>
Remove StyleResolver::State::m_parentNode
https://bugs.webkit.org/show_bug.cgi?id=130194
Reviewed by Andreas Kling.
This variable was the "parent" node where the style was being inherited from, not the actual parent.
The code would also recompute it even though the call sites generally know the rendering parent already.
If we consistently pass parent style to StyleResolver::styleForElement we won't need the variable and
the associated code. We also get rid of one more client of NodeRenderingTraversal.
* css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::prepareEvaluator):
* css/SVGCSSStyleSelector.cpp:
(WebCore::StyleResolver::applySVGProperty):
* css/StyleMedia.cpp:
(WebCore::StyleMedia::matchMedium):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::applyProperty):
* css/StyleResolver.h:
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::State::State):
* dom/Element.cpp:
(WebCore::Element::customStyleForRenderer):
Add parentStyle parameter.
* dom/Element.h:
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::customStyleForRenderer):
* dom/PseudoElement.h:
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::didAttachRenderers):
(WebCore::HTMLOptGroupElement::updateNonRenderStyle):
(WebCore::HTMLOptGroupElement::customStyleForRenderer):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::didAttachRenderers):
(WebCore::HTMLOptionElement::updateNonRenderStyle):
(WebCore::HTMLOptionElement::customStyleForRenderer):
* html/HTMLOptionElement.h:
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::textWithDirection):
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::customStyleForRenderer):
(WebCore::TextControlInnerTextElement::customStyleForRenderer):
* html/shadow/TextControlInnerElements.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::computeStyleInRegion):
(WebCore::RenderNamedFlowFragment::computeChildrenStyleInRegion):
(WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
* rendering/RenderNamedFlowFragment.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::styleForElement):
This used to be Element::styleForRenderer. It is now a standalone static.
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::resolveLocal):
* svg/SVGElement.cpp:
(WebCore::SVGElement::customStyleForRenderer):
* svg/SVGElement.h:
2014-03-13 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=130153
Reviewed by Simon Fraser.
Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
need to be propagated through the layer tree so that painting coordinates match layout coordinates.
Compositing case: (absolute positioning, 2x display)
parent layer pos(0.3, 0.3) -> floored painting position (0, 0)
child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2),
but the actual painting offset is (10.5, 10.5) as the result of parent flooring.
Non-compositing case: (absolute positioning, 2x display)
parent layer pos(0.3, 0.3) -> GraphicsContext is translated to (0, 0).
child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2)
but the GraphicsContext's offset is (10.5, 10.5) as the result of the parent's translate.
In both cases, without the subpixel adjustment, we'd paint the current layer at (10.0, 10.0)
after flooring, while its painting position is actually (10.5, 10.5).
Subpixels do accumulate through nested layers.
Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerByApplyingTransform):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):
2014-03-13 Radu Stavila <stavila@adobe.com>
The scrolledContentOffset method should handle the hasOverflowClip check
https://bugs.webkit.org/show_bug.cgi?id=130028
Reviewed by Antti Koivisto.
Before this patch, every call to RenderBox::scrolledContentOffset was guarded by the
hasOverflowClip check, because the scrolledContentOffset method would ASSERT(hasOverflowClip()).
This was simplified by moving the hasOverflowClip check inside the scrolledContentOffset method
and returning (0, 0) for elements that do not clip the overflow.
No new tests needed, just a refactor.
* editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::selectionGapRectsForRepaint):
(WebCore::RenderBlock::paintSelection):
(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::offsetForContents):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scrolledContentOffset):
(WebCore::RenderBox::offsetFromContainer):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::offsetFromContainer):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::mapLocalToContainer):
(WebCore::RenderObject::pushMappingToContainer):
(WebCore::RenderObject::mapAbsoluteToLocalPoint):
(WebCore::RenderObject::offsetFromContainer):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::hitInnerTextElement):
2014-03-13 Chris Fleizach <cfleizach@apple.com>
AX: accessibility data table heuristics fail on this jQuery table
https://bugs.webkit.org/show_bug.cgi?id=129369
Reviewed by Mario Sanchez Prada.
Updated accessibility/table-detection.html
If a table uses display style of table-row-group, the RenderTable gets disassociated from the HTMLTableElement.
We can find that element in a different way by asking for the parent of the first table section.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::activeDescendant):
This method was accessing an object's element unsafely and this table change exposed the issue.
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::tableElement):
(WebCore::AccessibilityTable::isDataTable):
* accessibility/AccessibilityTable.h:
2014-03-13 Antti Koivisto <antti@apple.com>
Ensure that layout milestones complete in all cases
https://bugs.webkit.org/show_bug.cgi?id=130101
Reviewed by Darin Adler.
Milestones fail to complete in some testing scenarios.
* dom/Document.cpp:
(WebCore::Document::setParsing):
Check if we need to fire layout milestones if parsing finishes without pending layout.
Parsing status affects whether the document is considered non-empty and that affects
layout milestones.
Remove explicit layout scheduling here, layout timer will be active already if there
is a layout pending
* page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
(WebCore::FrameView::firePaintRelatedMilestonesIfNeeded):
Renamed for consistency
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
Factor layout milestone firing into a function.
* page/FrameView.h:
2014-03-12 Brian Burg <bburg@apple.com>
Web Replay: add infrastructure for memoizing nondeterministic DOM APIs
https://bugs.webkit.org/show_bug.cgi?id=129445
Reviewed by Timothy Hatcher.
Add two pieces of infrastructure to support memoization of selected DOM APIs.
The first piece is MemoizedDOMResult, a templated replay input class that knows
how to serialize a DOM API's return value, ctype, and exception code.
The second piece is the addition of a new IDL attribute called `Nondeterministic`.
When placed on a DOM function or attribute, the code generator will emit code
to save the DOM API's return value or use a memoized return value instead,
depending on the current replay state. This new emitted code path is behind
a feature flag.
No new tests, as no new inputs are addressed by this change. Per-DOM API replay
regression tests will be added when those APIs are marked as nondeterministic.
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm: Add support of the `Nondeterministic` attribute.
(GenerateImplementation): Handle cases for attributes and getters with exceptions.
(GenerateImplementationFunctionCall): Handle function calls with and without exceptions.
(GetNativeTypeForMemoization): Added. Converts DOMString to WTF::String.
* bindings/scripts/IDLAttributes.txt: Add new `Nondeterministic` attribute.
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::jsTestObjStringAttrWithGetterException):
(WebCore::jsTestObjWithScriptStateAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
(WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
(WebCore::jsTestObjNullableStringValue):
(WebCore::jsTestObjPrototypeFunctionByteMethod):
(WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionOctetMethod):
(WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionLongMethod):
(WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
(WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
(WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
(WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsAttrWithGetterException):
(WebCore::jsTestTypedefsStringAttrWithGetterException):
(WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
* replay/AllReplayInputs.h:
* replay/MemoizedDOMResult.cpp: Added.
(WebCore::MemoizedDOMResultBase::type):
(WebCore::MemoizedDOMResultBase::createFromEncodedResult):
(InputTraits<MemoizedDOMResultBase>::type):
(InputTraits<MemoizedDOMResultBase>::encode):
(InputTraits<MemoizedDOMResultBase>::decode):
* replay/MemoizedDOMResult.h: Added. Every specialization of MemoizedDOMResult<T>
stores a binding name, ctype, result value of type T, and optional exception code.
The ctype-specific code uses the CTypeTraits struct to abstract over enum names and
compiler types. The actual encode/decode methods just use methods from EncodingTraits<T>.
(WebCore::MemoizedDOMResultBase::MemoizedDOMResultBase):
(WebCore::MemoizedDOMResultBase::~MemoizedDOMResultBase):
(WebCore::MemoizedDOMResultBase::attribute):
(WebCore::MemoizedDOMResultBase::ctype):
(WebCore::MemoizedDOMResultBase::exceptionCode):
(WebCore::CTypeTraits::decode):
(WebCore::MemoizedDOMResultBase::convertTo):
(JSC::InputTraits<MemoizedDOMResultBase>::queue):
* replay/ReplayInputTypes.cpp: See below.
(WebCore::ReplayInputTypes::ReplayInputTypes):
* replay/ReplayInputTypes.h: See below.
* replay/SerializationMethods.cpp: We need to special-case the encoding
and decoding of MemoizedDOMResult inputs because the input is not part of
the generated per-framework replay inputs enum.
(JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
(JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
* replay/WebInputs.json: Add the EncodedCType enum as an external enum type,
so that we can use a generated EncodingTraits specialization to encode the enum.
2014-03-11 Jae Hyun Park <jaepark@webkit.org>
Make HTMLCanvasElement::is3D private
https://bugs.webkit.org/show_bug.cgi?id=130117
Reviewed by Anders Carlsson.
HTMLCanvasElement::is3D is not used anywhere except HTMLCanvasElement.
So, make HTMLCanvasElement::is3D a private method. Also, make more use
of is3D method.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reset):
(WebCore::HTMLCanvasElement::getImageData):
* html/HTMLCanvasElement.h:
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: OS X View Indication
https://bugs.webkit.org/show_bug.cgi?id=130119
Reviewed by Timothy Hatcher.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::setIndicating):
OS X will handles this in the InspectorOverlay. iOS does not use the
overlay, so it handles this in the client (already implemented).
* inspector/InspectorOverlay.h:
Remove unused m_size, and add a boolean for the indicating state.
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::InspectorOverlay):
(WebCore::InspectorOverlay::shouldShowOverlay):
Helper for determining if we should show the overlay or not.
(WebCore::InspectorOverlay::setIndicating):
Set the state and trigger an overlay update.
(WebCore::InspectorOverlay::paint):
(WebCore::InspectorOverlay::update):
(WebCore::InspectorOverlay::drawGutter):
(WebCore::InspectorOverlay::evaluateInOverlay):
Simplification of existing methods.
* inspector/InspectorOverlayPage.css:
(.indicate):
Give the page a blue tint, matching the node highlight color.
* inspector/InspectorOverlayPage.js:
(showPageIndication):
(hidePageIndication):
Add / remove a body style class.
(drawNodeHighlight):
Remove unused parameters.
2014-03-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
https://bugs.webkit.org/show_bug.cgi?id=130118
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
2014-03-12 Tim Horton <timothy_horton@apple.com>
Build fix for ENABLE(IMAGE_CONTROLS) after 165479
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::servicesRolloverButtonCell):
(WebCore::RenderThemeMac::paintImageControlsButton):
(WebCore::RenderThemeMac::imageControlsButtonSize):
Don't try to use the AppKit methods that are only available on 64-bit.
2014-03-12 Brent Fulgham <bfulgham@apple.com>
[WebVTT] HTML5 "space" cahracters around "-->" are not required
https://bugs.webkit.org/show_bug.cgi?id=117421
Reviewed by Eric Carlson.
Merged from Blink (patch by caitpotter88@gmail.com):
https://chromium.googlesource.com/chromium/blink/+/4ef469cd627a13696b88e285ae28a60e38f9c286
http://crbug.com/242158
New tests: media/track/track-webvtt-tc029-timings-whitespace.html
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::collectTimingsAndSettings): Make whitespace around cue-timings optional.
2014-03-12 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165482.
https://bugs.webkit.org/show_bug.cgi?id=130157
Broke the windows build; "error C2466: cannot allocate an
array of constant size 0" (Requested by jernoble on #webkit).
Reverted changeset:
"Reduce memory use for static property maps"
https://bugs.webkit.org/show_bug.cgi?id=129986
http://trac.webkit.org/changeset/165482
2014-03-12 Brian Burg <bburg@apple.com>
Web Inspector receives spurious setScriptEnabled instrumentation calls
https://bugs.webkit.org/show_bug.cgi?id=130147
Reviewed by Timothy Hatcher.
When page settings change, inspector instrumentation should only fire if
the scriptsEnabled setting actually changes from the previous setting. But
due to an unnecessary PLATFORM(IOS) guard, the inspector was being notified
on every settings update even if nothing changed.
This manifested as lots of Page.scriptsEnabled messages being sent to
the inspector frontend as the Inspector window is dragged.
* page/Settings.cpp:
(WebCore::Settings::setScriptEnabled): Remove PLATFORM(IOS) from early return.
2014-03-12 Simon Fraser <simon.fraser@apple.com>
Have the scrolling tree track the viewport size, not the viewport rect
https://bugs.webkit.org/show_bug.cgi?id=130141
Reviewed by Beth Dakin.
The scrolling tree only needs to know the size of the viewport, not its
origin, since the origin is deduced from the updated scroll position.
* WebCore.exp.in:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
* page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setViewportSize):
(WebCore::ScrollingStateScrollingNode::dumpProperties):
* page/scrolling/ScrollingStateScrollingNode.h:
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::viewportSize):
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
2014-03-12 Simon Fraser <simon.fraser@apple.com>
Spelling is hard
https://bugs.webkit.org/show_bug.cgi?id=130146
Reviewed by Beth Dakin.
Fix spelling (constained -> constrained).
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleDidChange):
2014-03-12 Simon Fraser <simon.fraser@apple.com>
Change scrollOffsetForFixedPosition() to do LayoutUnit math
https://bugs.webkit.org/show_bug.cgi?id=129981
Reviewed by Beth Dakin.
FrameView::scrollOffsetForFixedPosition() returned an IntSize,
but to allow subpixel scroll offsets, we need it to return a LayoutSize.
Fix code that calls this to use more LayoutUnit math.
This progresses fixed background images on zoom, which cam now be subpixel
positioned.
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::viewportConstrainedVisibleContentRect):
(WebCore::FrameView::scrollOffsetForFixedPosition):
* page/FrameView.h:
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
* platform/ScrollableArea.cpp:
(WebCore::ScrollableArea::constrainScrollPositionForOverhang):
* platform/ScrollableArea.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollLayerPosition):
2014-03-12 Gavin Barraclough <barraclough@apple.com>
Reduce memory use for static property maps
https://bugs.webkit.org/show_bug.cgi?id=129986
Reviewed by Andreas Kling.
Static property tables are currently duplicated on first use from read-only memory into dirty memory
in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
(we use a custom hash table without a rehash) a lot of memory may be wasted.
* bindings/js/JSDOMBinding.h:
(WebCore::getStaticValueSlotEntryWithoutCaching):
(WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
- HashEntry -> HashTableValue.
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):
- HashEntry -> HashTableValue.
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::getOwnPropertySlotDelegate):
- HashEntry -> HashTableValue.
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::getOwnPropertySlotDelegate):
(WebCore::JSLocation::putDelegate):
- HashEntry -> HashTableValue.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateGetOwnPropertySlotBody):
- HashEntry -> HashTableValue.
(GenerateHashTable):
- emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).
2014-03-12 Tim Horton <timothy_horton@apple.com>
Hook up image controls for WebKit1
https://bugs.webkit.org/show_bug.cgi?id=130062
<rdar://problem/15964809>
Reviewed by Brady Eidson.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSPrimitiveValueMappings.h:
Fix some header ordering.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
Handle mapping ImageControlsButtonPart to the -webkit-appearance value CSSValueImageControlsButton.
* css/CSSValueKeywords.in:
* platform/ThemeTypes.h:
Add a -webkit-appearance value image-controls-button, and an associated control part.
* dom/Node.h:
(WebCore::Node::isImageControlsButtonElement): Added.
* html/shadow/mac/ImageControlsButtonElementMac.cpp: Added.
(WebCore::RenderImageControlsButton::RenderImageControlsButton):
(WebCore::RenderImageControlsButton::~RenderImageControlsButton):
(WebCore::RenderImageControlsButton::updateLogicalWidth):
(WebCore::RenderImageControlsButton::computeLogicalHeight):
(WebCore::ImageControlsButtonElementMac::ImageControlsButtonElementMac):
(WebCore::ImageControlsButtonElementMac::~ImageControlsButtonElementMac):
(WebCore::ImageControlsButtonElementMac::maybeCreate):
(WebCore::ImageControlsButtonElementMac::defaultEventHandler):
(WebCore::ImageControlsButtonElementMac::createElementRenderer):
* html/shadow/mac/ImageControlsButtonElementMac.h: Added.
Add a new element/renderer pair for the single button that comprises image controls on Mac.
RenderImageControlsButton gets its size from the theme's imageControlsButtonSize.
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::RenderImageControls::RenderImageControls):
(WebCore::RenderImageControls::~RenderImageControls):
(WebCore::RenderImageControls::updateLogicalWidth):
(WebCore::RenderImageControls::computeLogicalHeight):
(WebCore::ImageControlsRootElement::maybeCreate):
(WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
(WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
(WebCore::ImageControlsRootElementMac::createElementRenderer):
* html/shadow/mac/ImageControlsRootElementMac.h:
Add a custom renderer for the root image controls element on Mac, which inherits
its size from the <img> that it is shadowing.
Add a ImageControlsButtonElementMac as the sole child of the root element.
* html/shadow/mac/imageControlsMac.css:
(.x-webkit-image-controls):
(.x-webkit-image-controls-button):
(.x-webkit-image-controls:hover .x-webkit-image-controls-button):
The button should become opaque whenever *any* part of the image is hovered,
not just the button itself. Also, use the new image-controls-button -webkit-appearance
value to get the appropriate appearance from the theme.
* page/ContextMenuContext.cpp:
(WebCore::ContextMenuContext::ContextMenuContext):
* page/ContextMenuContext.h:
(WebCore::ContextMenuContext::setControlledImage):
(WebCore::ContextMenuContext::controlledImage):
Store an image on the ContextMenuContext instead of just whether we hit an image.
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::handleContextMenuEvent):
(WebCore::ContextMenuController::showContextMenu):
(WebCore::imageFromImageElementNode):
(WebCore::ContextMenuController::maybeCreateContextMenu):
(WebCore::ContextMenuController::populate):
Keep track of the hit image in the ContextMenuContext.
(WebCore::ContextMenuController::replaceControlledImage):
Replace the hit image with a new one.
* page/ContextMenuController.h:
* rendering/RenderReplaced.h:
Fix a double-space typo.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
Handle ImageControlsButtonPart in RenderTheme's switches.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::imageControlsButtonSize):
(WebCore::RenderTheme::paintImageControlsButton):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::servicesRolloverButtonCell):
(WebCore::RenderThemeMac::paintImageControlsButton):
(WebCore::RenderThemeMac::imageControlsButtonSize):
Paint the image controls button.
* editing/ios/EditorIOS.mm:
(WebCore::Editor::WebContentReader::readImage):
(WebCore::Editor::WebContentReader::readURL):
* editing/mac/EditorMac.mm:
(WebCore::Editor::WebContentReader::readImage):
* platform/URL.cpp:
(WebCore::URL::fakeURLWithRelativePart):
* platform/URL.h:
Factor out code to create a "fake" URL (with a UUID "hostname" and the
webkit-fake-url protocol), and make use of it where we construct such URLs.
2014-03-12 Jer Noble <jer.noble@apple.com>
[Mac] Crash when running media/fallback.html test in MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification()
https://bugs.webkit.org/show_bug.cgi?id=130136
Reviewed by Eric Carlson.
MediaPlayerPrivateAVFoundation is trying to lock its m_queueMutex from an async thread after
while being destroyed in the main thread. To resolve this race condition, redispatch from
the async thread to the main thread, and use a WeakPtr to determine whether the object has
been destroyed or not.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability):
2014-03-12 Brent Fulgham <bfulgham@apple.com>
[Win] Remove use of QTSDK
https://bugs.webkit.org/show_bug.cgi?id=130049
Reviewed by Darin Adler.
Media testing already covers this functionality.
* WebCore.vcxproj/WebCore.vcxproj: Remove QuickTime files.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* platform/graphics/MediaPlayer.h: Remove QuickTime and Chromium
media references.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Removed.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: Removed.
* platform/graphics/win/QTCFDictionary.cpp: Removed.
* platform/graphics/win/QTCFDictionary.h: Removed.
* platform/graphics/win/QTDecompressionSession.cpp: Removed.
* platform/graphics/win/QTDecompressionSession.h: Removed.
* platform/graphics/win/QTMovie.cpp: Removed.
* platform/graphics/win/QTMovie.h: Removed.
* platform/graphics/win/QTMovieGWorld.cpp: Removed.
* platform/graphics/win/QTMovieGWorld.h: Removed.
* platform/graphics/win/QTMovieTask.cpp: Removed.
* platform/graphics/win/QTMovieTask.h: Removed.
* platform/graphics/win/QTMovieVisualContext.cpp: Removed.
* platform/graphics/win/QTMovieVisualContext.h: Removed.
* platform/graphics/win/QTMovieWinTimer.cpp: Removed.
* platform/graphics/win/QTMovieWinTimer.h: Removed.
* platform/graphics/win/QTPixelBuffer.cpp: Removed.
* platform/graphics/win/QTPixelBuffer.h: Removed.
* platform/graphics/win/QTTrack.cpp: Removed.
* platform/graphics/win/QTTrack.h: Removed.
* plugins/win/PluginDatabaseWin.cpp:
(WebCore::PluginDatabase::defaultPluginDirectories): Don't look
for the QuickTime plugin anymore.
2014-03-12 David Kilzer <ddkilzer@apple.com>
Fix build after r165472
Fixes the following build failure:
WebCore/rendering/shapes/Shape.cpp:97:20: error: unused function 'ensureRadiiDoNotOverlap' [-Werror,-Wunused-function]
static inline void ensureRadiiDoNotOverlap(FloatRect& bounds, FloatSize& radii)
^
1 error generated.
* rendering/shapes/Shape.cpp:
(ensureRadiiDoNotOverlap): Remove unused function.
2014-03-12 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] Remove deprecated shapes
https://bugs.webkit.org/show_bug.cgi?id=125235
Reviewed by Dirk Schulze.
Remove support for deprecated shape types and syntax. These have
already been removed from the CSS Shapes specification, so this aligns
the implementation with the specification.
The "new" tests below were simply moved from the old csswg directory,
as they were the only tests there that applied to the current syntax.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-polygon-000.html
fast/shapes/shape-outside-floats/shape-outside-floats-polygon-001.html
fast/shapes/shape-outside-floats/shape-outside-floats-polygon-002.html
* css/BasicShapeFunctions.cpp:
(WebCore::valueForBasicShape):
(WebCore::basicShapeForValue):
* css/BasicShapeFunctions.h:
* css/CSSBasicShapes.cpp:
* css/CSSBasicShapes.h:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseBasicShape):
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor):
* rendering/style/BasicShapes.cpp:
* rendering/style/BasicShapes.h:
2014-03-12 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] [Stable] deadlock in gobject introspection
https://bugs.webkit.org/show_bug.cgi?id=125651
Reviewed by Sergio Villar Senin.
Make the default SoupNetworkSession a destroyable object to ensure
the wrapped SoupSession is finalized when the process finishes. This
is important because soup cancels any ongoing connection when finalized.
* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::defaultSession): Do not use NeverDestroyed.
* platform/network/soup/SoupNetworkSession.h:
2014-03-12 Antti Koivisto <antti@apple.com>
Don't use NodeRenderingTraversal for pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=130091
Reviewed by Andreas Kling.
Make traversing during style resolve more comprehensible by handling before/after pseudo elements explicitly.
With this patch NodeRenderingTraversal is only needed for InsertionPoints (which are nothing but an implementation
detail of the <details> element at this point).
* dom/Element.cpp:
(WebCore::shouldUseNodeRenderingTraversalSlowPath):
PseudoElements don't need the slow path anymore.
(WebCore::Element::setBeforePseudoElement):
(WebCore::Element::setAfterPseudoElement):
(WebCore::Element::clearBeforePseudoElement):
(WebCore::Element::clearAfterPseudoElement):
* dom/NodeRenderingTraversal.cpp:
(WebCore::NodeRenderingTraversal::traverseParent):
(WebCore::NodeRenderingTraversal::firstChildSlow):
(WebCore::NodeRenderingTraversal::nextSiblingSlow):
(WebCore::NodeRenderingTraversal::previousSiblingSlow):
* dom/NodeRenderingTraversal.h:
(WebCore::NodeRenderingTraversal::firstChild):
* style/StyleResolveTree.cpp:
(WebCore::Style::nextSiblingRenderer):
Add ::before/::after pseudo element handling here.
(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::previousSiblingRenderer):
Add ::before pseudo element handling here (text node can't be ::after).
(WebCore::Style::reattachTextRenderersForWhitespaceOnlySiblingsAfterAttachIfNeeded):
(WebCore::Style::textRendererIsNeeded):
(WebCore::Style::createTextRendererIfNeeded):
(WebCore::Style::attachTextRenderer):
(WebCore::Style::updateTextRendererAfterContentChange):
(WebCore::Style::attachChildren):
(WebCore::Style::attachDistributedChildren):
Handle InsertionPoints in one place.
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
(WebCore::Style::attachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::updateTextStyle):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::updateBeforeOrAfterPseudoElement):
(WebCore::Style::resolveTree):
Pass the rendering parent around to various functions instead of determining it repeatedly by calling
NodeRenderingTraversal::parent. It is always the same for all direct children being resolved and generally just
the parent element.
2014-03-12 Frédéric Wang <fred.wang@free.fr>
Invisible Operators should not add space.
https://bugs.webkit.org/show_bug.cgi?id=115786
Reviewed by Chris Fleizach.
This change adds special handling for invisible operator to ensure they really behave as empty box. We now ignore their glyph widths and do not paint them.
Test: mathml/presentation/mo-invisible.html
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::paint):
* rendering/mathml/RenderMathMLOperator.h:
2014-03-11 Frédéric Wang <fred.wang@free.fr>
Implement MathML spacing around operators .
https://bugs.webkit.org/show_bug.cgi?id=115787
Reviewed by Chris Fleizach.
This makes the <mo> operators use the lspace/rspace properties to
determine their spacing. The spacing is now consistent with the one
of <mfenced> and as a consequence bug 118843 is fixed. This also ensures
that the rendering of <mo> elements is updated when the form or
attributes are changed.
Tests: mathml/presentation/dir-mo.html
mathml/presentation/mo-form-dynamic.html
mathml/presentation/mo-form-minus-plus.html
mathml/presentation/mo-form.html
mathml/presentation/mo-lspace-rspace-dynamic.html
mathml/presentation/mo-lspace-rspace.html
mathml/presentation/mo-whitespaces.html
* css/mathml.css:
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::childrenChanged):
* mathml/MathMLInlineContainerElement.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::updateOperatorProperties):
(WebCore::RenderMathMLOperator::updateStyle):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::updateOperatorProperties):
* rendering/mathml/RenderMathMLRow.h:
* rendering/mathml/RenderMathMLToken.h:
2014-03-11 Brent Fulgham <bfulgham@apple.com>
Get the incomplete WebVTT Regions code to build again.
https://bugs.webkit.org/show_bug.cgi?id=130094
Reviewed by Eric Carlson.
The feature is not being turned on here, so there are no new tests.
* DerivedSources.make: Add missing IDL files for Regions.
* WebCore.xcodeproj/project.pbxproj: Add Regions-related files.
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newRegionsParsed): Add stub implementation.
* html/track/LoadableTextTrack.cpp: Add missing include file.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::TextTrack): Correct ordering of construction
to avoid compiler warning.
2014-03-11 Ryuan Choi <ryuan.choi@samsung.com>
Remove unused method from BatteryController
https://bugs.webkit.org/show_bug.cgi?id=130063
Reviewed by Darin Adler.
* Modules/battery/BatteryController.h: Removed client() which is not used.
2014-03-11 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose aria-posinset and aria-setsize through object attributes
https://bugs.webkit.org/show_bug.cgi?id=130011
Reviewed by Chris Fleizach.
Based on http://www.w3.org/TR/2014/PR-wai-aria-implementation-20140206/
aria-poinset and aria-setsize can be exposed as object attributes.
Test: accessibility/aria-setsize-posinset.html
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
2014-03-10 Frédéric Wang <fred.wang@free.fr>
Improve renderer classes for MathML Token elements.
https://bugs.webkit.org/show_bug.cgi?id=124838
Reviewed by Chris Fleizach.
This patch continues the refactoring of token elements that has been
started in bug 44208. The <mo> element now derives from the
RenderMathMLToken class, which was already used for the <mi> element.
The behavior of anonymous <mo> elements created by the <mfenced> element
is now more consistent with the one of "standard" <mo> elements and the
spacing around them is now handled in RenderMathMLOperator. This is a
first step towards fixing bugs 115787 and 118843. The only visible
rendering change is how <mfenced> open/close attributes handle
whitespace and multiple characters and some tests are added for that.
Other features are already covered by other tests. Finally, this also
removes some code from AccessibilityRenderObject that was used to
workaround issues with <mo> elements.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::startOfContinuations):
(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::isMathOperator):
(WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::didAttachRenderers):
(WebCore::MathMLTextElement::childrenChanged):
* rendering/mathml/RenderMathMLBlock.cpp:
(WebCore::RenderMathMLBlock::RenderMathMLBlock):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLFenced.cpp:
(WebCore::RenderMathMLFenced::RenderMathMLFenced):
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):
* rendering/mathml/RenderMathMLFenced.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
(WebCore::RenderMathMLOperator::rebuildTokenContent):
(WebCore::RenderMathMLOperator::updateTokenContent):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::paint):
(WebCore::RenderMathMLOperator::paintChildren):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLToken.cpp:
(WebCore::RenderMathMLToken::createWrapperIfNeeded):
2014-03-10 James Craig <jcraig@apple.com>
Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
https://bugs.webkit.org/show_bug.cgi?id=129781
Reviewed by Joseph Pecoraro.
Enabling several more properties to be exposed in the Accessibility Node Inspector.
Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsChecked):
* accessibility/AccessibilityObject.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
* inspector/protocol/DOM.json:
2014-03-10 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] inset corner radii are not flipped for vertical writing modes
https://bugs.webkit.org/show_bug.cgi?id=129918
Reviewed by Dean Jackson.
When creating an inset shape, convert the radii to logical coordinates
as well as the box.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html
fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Convert the radii to logical
coordinates.
2014-03-10 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Frontend loaded resources from cache are not hidden as expected
https://bugs.webkit.org/show_bug.cgi?id=130044
Reviewed by Timothy Hatcher.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
Use the new request that was passed in. Assume it is filled in appropriately.
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
Carry over the hidden from inspector state if the passed in request had it,
and create the request that loadedResourceFromMemoryCache will use.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
Add missing ifdefs for INSPECTOR only function.
2014-03-10 Jinwoo Song <jinwoo7.song@samsung.com>
Remove 'visibilitychange' attribute event listener from document
https://bugs.webkit.org/show_bug.cgi?id=129794
Reviewed by Simon Fraser.
Remove the unused attribute event listener which is not defined in Page Visibility API spec.
http://www.w3.org/TR/page-visibility/#sec-document-interface
* dom/Document.h:
2014-03-10 Benjamin Poulain <bpoulain@apple.com>
[iOS][WebKit 2] Wire the unobscured rect in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=130058
Reviewed by Simon Fraser.
* WebCore.exp.in:
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unobscuredContentRect):
(WebCore::ScrollView::setUnobscuredContentRect):
2014-03-10 Benjamin Poulain <bpoulain@apple.com>
makeSelectorPseudoTypeMap.py should not be copied in the WebCore bundle
* WebCore.xcodeproj/project.pbxproj:
2014-03-10 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Add support for Geoclue2
https://bugs.webkit.org/show_bug.cgi?id=120185
Reviewed by Carlos Garcia Campos.
Patch by Anton Obzhirov <a.obzhirov@samsung.com> and Mario Sanchez Prada <mario.prada@samsung.com>
Implement a new geolocation provider based on Geoclue2, which will only
be used if a good enough version of Geoclue2 is found at configure time.
* GNUmakefile.am: Generate C-API for accessing the D-Bus API
provided by Geoclue2, and place it in DerivedSources.
* GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and
include the generated proxy files when using Geoclue2.
* PlatformGTK.cmake: Likewise, for CMake based builds.
* platform/geoclue/GeolocationProviderGeoclue.h: Modified to
accomodate the needs both for Geoclue and Geoclue2 providers.
* platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp.
(GeolocationProviderGeoclue::getPositionCallback):
(GeolocationProviderGeoclue::positionChangedCallback):
(GeolocationProviderGeoclue::createGeocluePositionCallback):
(GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback):
(GeolocationProviderGeoclue::createGeoclueClientCallback):
(GeolocationProviderGeoclue::GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::startUpdating):
(GeolocationProviderGeoclue::stopUpdating):
(GeolocationProviderGeoclue::setEnableHighAccuracy):
(GeolocationProviderGeoclue::initializeGeoclueClient):
(GeolocationProviderGeoclue::initializeGeocluePosition):
(GeolocationProviderGeoclue::updateClientRequirements):
(GeolocationProviderGeoclue::positionChanged):
(GeolocationProviderGeoclue::errorOccurred):
* platform/geoclue/GeolocationProviderGeoclue2.cpp: Added.
(GeolocationProviderGeoclue::GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
(GeolocationProviderGeoclue::startUpdating):
(GeolocationProviderGeoclue::stopUpdating):
(GeolocationProviderGeoclue::setEnableHighAccuracy):
(GeolocationProviderGeoclue::createGeoclueManagerProxyCallback):
(GeolocationProviderGeoclue::getGeoclueClientCallback):
(GeolocationProviderGeoclue::createGeoclueClientProxyCallback):
(GeolocationProviderGeoclue::startClientCallback):
(GeolocationProviderGeoclue::locationUpdatedCallback):
(GeolocationProviderGeoclue::createLocationProxyCallback):
(GeolocationProviderGeoclue::startGeoclueClient):
(GeolocationProviderGeoclue::updateLocation):
(GeolocationProviderGeoclue::errorOccurred):
(GeolocationProviderGeoclue::updateClientRequirements):
2014-03-10 Brent Fulgham <bfulgham@apple.com>
Unreviewed Windows Build Fix.
* WebCore.vcxproj/WebCore.vcxproj: Don't build cURL files for Apple Windows port.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents): Correct
method signature to match base class.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::loadInternal): Use proper character encoding.
2014-03-10 Simon Fraser <simon.fraser@apple.com>
Fix three leaks
https://bugs.webkit.org/show_bug.cgi?id=130048
Reviewed by Anders Carlsson.
The NSDictionary was leaked.
* page/ios/UserAgentIOS.mm:
(WebCore::osMarketingVersion):
2014-03-10 Beth Dakin <bdakin@apple.com>
Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
https://bugs.webkit.org/show_bug.cgi?id=129919
Reviewed by Benjamin Poulain.
WK2 needs to be able to ask for the pageExtendedBackgroundColor, so this patch
adds a function to Page that will return it
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::pageExtendedBackgroundColor):
* page/Page.h:
* rendering/RenderLayerCompositor.h:
(WebCore::RenderLayerCompositor::rootExtendedBackgroundColor):
2014-03-10 Benjamin Poulain <bpoulain@apple.com>
Generalize unobscured rect to all ports
https://bugs.webkit.org/show_bug.cgi?id=130036
Reviewed by Simon Fraser.
iOS differentiates visible content and unobscured content. This patch moves the concept to all
ports to remove the #ifdefs from the call sites.
On everything but iOS, unobscuredRect and visibleRect are the same.
* WebCore.exp.in:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight):
(WebCore::DOMWindow::innerWidth):
* page/SpatialNavigation.cpp:
(WebCore::canScrollInDirection):
* platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):
(WebCore::ScrollView::paint):
* platform/ScrollView.h:
(WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
(WebCore::ScrollView::unobscuredContentRect):
* rendering/RenderView.cpp:
(WebCore::RenderView::viewportSize):
2014-03-10 Benjamin Poulain <benjamin@webkit.org>
Start splitting CSS Selectors's pseudo types
https://bugs.webkit.org/show_bug.cgi?id=130003
Reviewed by Andreas Kling.
CSS Selectors pseudo types come in 3 flavors: page, pseudo class, pseudo elements.
The three types are mixed together in a single enum list named PseudoType. Only some combinations
of match type + pseudo type are valid, but this is implicitly defined from the code.
This patch is the beginning of a refactoring to add more clear boundaries between
valid and invalid combinations.
First, the handling of page pseudo types is completely split from the other values.
The parser use a different method for handling the value CSSParserSelector::parsePagePseudoSelector().
PagePseudo types no longer store their string in the CSSSelector either to reduce the redundancy
with m_pseudoType.
When we need to generate the string for those CSSSelector, we recreate the string as needed in
CSSSelector::selectorText().
The remaining two types are not yet split in this patch but this introduce the preliminary clean up
toward that goal.
The list of parsed pseudo types is now generated at compile time from the source in SelectorPseudoTypeMap.in.
* DerivedSources.make:
The mapping of strings to pseudo types is generated from SelectorPseudoTypeMap.in
by the new script makeSelectorPseudoTypeMap.py.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSGrammar.y.in:
Split the parsing of Pseudo Types. Pseudo page get its own method. The others will need some work.
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::parsePagePseudoSelector):
(WebCore::CSSParserSelector::setPseudoTypeValue):
* css/CSSParserValues.h:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::specificityForPage):
This is an example of invalid combination that is hidden by the current code.
First, Left and Right could never appear in a pseudo class match.
(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::parsePseudoType):
(WebCore::appendPseudoTypeTailIfNecessary):
(WebCore::CSSSelector::selectorText):
* css/CSSSelector.h:
(WebCore::CSSSelector::pseudoType):
(WebCore::CSSSelector::matchesPseudoElement):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
* css/PageRuleCollector.cpp:
(WebCore::checkPageSelectorComponents):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* css/SelectorPseudoTypeMap.h: Added.
* css/SelectorPseudoTypeMap.in: Added.
* css/makeSelectorPseudoTypeMap.py: Added.
(enumerablePseudoType):
(expand_ifdef_condition):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoType):
2014-03-10 Enrica Casucci <enrica@apple.com>
iOS build fix after http://trac.webkit.org/changeset/165385
Unreviewed.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
2014-03-10 Daniel Bates <dabates@apple.com>
REGRESSION (r159218): FrameView::layout() should destroy TemporaryChange<LayoutPhase>
before destroying Ref<FrameView>
https://bugs.webkit.org/show_bug.cgi?id=130034
<rdar://problem/15664288>
Reviewed by Alexey Proskuryakov.
We should always destroy TemporaryChange<LayoutPhase> before destroying Ref<FrameView>
in FrameView::layout() so as to ensure that the FrameView exists when we restore the
original layout phase value.
The existing test fast/frames/crash-remove-iframe-during-object-beforeload.html covers
this change. Although you must run the test with Guard Malloc enabled (i.e. run-webkit-tests -r).
* page/FrameView.cpp:
(WebCore::FrameView::layout): Move construction of variable protect before the construction of
variable layoutPhaseRestorer. Additionally, add a period to the end of the comment associated
with variable protect.
2014-03-10 Zsolt Borbely <borbezs@inf.u-szeged.hu>
ASSERTION FAILED: span >= 1
https://bugs.webkit.org/show_bug.cgi?id=129148
Reviewed by Andreas Kling.
Set the value of span to 1 if the given number is too big or zero.
Test: fast/table/incorrect-colgroup-span-values.html
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::parseAttribute):
2014-03-10 Brent Fulgham <bfulgham@apple.com>
[Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
https://bugs.webkit.org/show_bug.cgi?id=130023.
Reviewed by Dean Jackson.
* WebCore.vcxproj/WebCore.proj: Avoid trailing slashes in path values to
prevent escaping during later string substitution.
2014-03-10 Radu Stavila <stavila@adobe.com>
[CSS Regions] Hit-testing is not working properly inside scrollable regions
https://bugs.webkit.org/show_bug.cgi?id=130015
Reviewed by Antti Koivisto.
When hit-testing inside the flow thread's layer, the scrolled offset
of the current region must be taken into consideration.
Test: fast/regions/scrollable-regions-hit-testing-inside.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
2014-03-10 Hans Muller <hmuller@adobe.com>
[CSS Shapes] SVG Image valued shape fails if root element's size is relative
https://bugs.webkit.org/show_bug.cgi?id=128983
Reviewed by Simon Fraser.
When creating a shape based on an Image, compute its dimensions using
RenderBoxModelObject::calculateImageIntrinsicDimensions(), then set the
ImageResource's containerSize, and then use imageForRenderer() to get the
image to be drawn. The first step resolves SVG Image relative sizes, the
second step creates and caches an SVGImageForContainer with the correct
containerSize, and the last step retrieves the SVGImageForContainer.
Test: fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html
* rendering/RenderBoxModelObject.h: Publicized calculateImageIntrinsicDimensions() and its enum.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::getShapeImageAndRect):
(WebCore::ShapeInfo<RenderType>::computedShape):
2014-03-10 Darin Adler <darin@apple.com>
TextIterator: Use StringView and references rather than pointers
https://bugs.webkit.org/show_bug.cgi?id=129975
Reviewed by Anders Carlsson.
TextIterator refinements:
- Use StringView instead of deprecatedCharacters to point to characters within strings.
- Added TextIteratorCopyableText, a safe way to copy the current text of a TextIterator,
for use by WordAwareIterator.
- Removed m_shouldStop; iterators stop by setting m_positionNode to null, and there is no
need for a separate boolean to do the same thing.
- Got rid of all the boolean data members set based on the text iterator behavior; instead
store the behavior in a data member and check it directly.
- Changed most functions to use references rather than pointers.
- Small micro-optimizations, such as using fastGetAttribute rather than getAttribute.
- Switched to nullptr instead of 0 where appropriate.
- Removed unused functions.
- Cut down on use of abbreviations instead of words.
- Renamed data members and argument names for clarity.
- Split up assertions that needlessly asserted more than one thing in a single expression.
- Treat CDATASection just like other Text, since its text will be visible.
* editing/Editor.cpp:
(WebCore::Editor::advanceToNextMisspelling): Pass reference rather than pointer.
(WebCore::Editor::rangeOfString): Ditto.
(WebCore::Editor::countMatchesForText): Ditto.
* editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.
* editing/TextIterator.cpp:
(WebCore::depthCrossingShadowBoundaries): Take a reference rather than a pointer.
(WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
(WebCore::fullyClipsContents): Ditto.
(WebCore::ignoresContainerClip): Ditto.
(WebCore::pushFullyClippedState): Ditto.
(WebCore::setUpFullyClippedStack): Ditto.
(WebCore::isRendererReplacedElement): Use references rather than pointers in the
implementation. Also use fastGetAttribute instead of getAttribute.
(WebCore::TextIteratorCopyableText::reset): Added.
(WebCore::TextIteratorCopyableText::set): Added.
(WebCore::TextIteratorCopyableText::appendToStringBuilder): Added.
(WebCore::TextIterator::TextIterator): Use more initialization rather than assignment.
Got rid of some local variables.
(WebCore::TextIterator::advance): Removed the m_shouldStop boolean, uneeded.
Many other improvements. Use isTextNode instead of nodeType.
(WebCore::hasVisibleTextNode): Changed this into a file-private helper function
instead of a member function.
(WebCore::TextIterator::handleTextNode): Used references and cut down on type casts.
Gave local variables clearer names.
(WebCore::TextIterator::handleTextBox): More of the same.
(WebCore::TextIterator::handleTextNodeFirstLetter): Ditto.
(WebCore::TextIterator::handleReplacedElement): Ditto.
(WebCore::shouldEmitTabBeforeNode): Ditto.
(WebCore::hasHeaderTag): Added.
(WebCore::shouldEmitNewlinesBeforeAndAfterNode): More of the same.
(WebCore::shouldEmitNewlineAfterNode): Ditto.
(WebCore::shouldEmitNewlineBeforeNode): Ditto.
(WebCore::shouldEmitExtraNewlineForNode): Ditto.
(WebCore::collapsedSpaceLength): Use StringImpl directly instead of using the
deprecatedCharacters function.
(WebCore::TextIterator::shouldRepresentNodeOffsetZero): More like above.
(WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): Ditto.
(WebCore::TextIterator::representNodeOffsetZero): Ditto.
(WebCore::TextIterator::handleNonTextNode): Ditto.
(WebCore::TextIterator::exitNode): Ditto.
(WebCore::TextIterator::emitCharacter): Changed to use the new copyable text class
instead of managing the single character buffer directly here.
(WebCore::TextIterator::emitText): Changed to take a Text& and use the copyable text
class. Added a FIXME about a mistake I noticed.
(WebCore::TextIterator::range): Streamlined and simplified a bit. Updated data
member names to be a bit clearer. This function never returned null before, but there
was a code path that looked like it would; I removed that.
(WebCore::TextIterator::node): Removed unneeded null checks; the range function will
never return a range of null or one with null for a start container.
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): More
like above.
(WebCore::SimplifiedBackwardsTextIterator::advance): Reorganized a bit and removed
m_shouldStop.
(WebCore::SimplifiedBackwardsTextIterator::handleTextNode): More of the same.
(WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): Ditto.
(WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
(WebCore::CharacterIterator::CharacterIterator): Ditto.
(WebCore::CharacterIterator::range): Ditto. No need for ASSERT_NO_EXCEPTION.
(WebCore::CharacterIterator::advance): Ditto.
(WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
(WebCore::BackwardsCharacterIterator::range): Ditto.
(WebCore::BackwardsCharacterIterator::advance): Ditto.
(WebCore::WordAwareIterator::WordAwareIterator): Ditto.
(WebCore::WordAwareIterator::advance): Use copyableText for m_previousText, fixing
the FIXME that I wrote in here before.
(WebCore::WordAwareIterator::text): Ditto.
(WebCore::containsKanaLetters): Changed to quickly return false when the pattern
is all Latin-1 rather than expanding to 16-bit just to check.
(WebCore::SearchBuffer::SearchBuffer): Iterate the target using the string operator[]
instead of using deprecatedCharacters.
(WebCore::SearchBuffer::append): Do the folding of quote marks and hyphens one character
at a time as we move characters into the buffer instead of in a separate loop.
(WebCore::TextIterator::rangeLength): Updated for changes eslwehere.
(WebCore::TextIterator::subrange): Ditto.
(WebCore::isInsideReplacedElement): Ditto. Also streamlined and removed unneeded null check.
(WebCore::TextIterator::rangeFromLocationAndLength): Updated for changes elsewhere and
removed unneeded ASSERT_NO_EXCEPTION.
(WebCore::plainText): Ditto.
(WebCore::collapsedToBoundary): Ditto.
(WebCore::findPlainText): Ditto.
* editing/TextIterator.h: Changed many functions to take references instead of pointers.
Added TextIteratorCopyableText, to represent the current text in a TextIterator in a form
that can be safely copied and used after further iteration. Reorganized member functions so
they are in the same order in all the classes. Changed TextIterator to use
TextIteratorCopyableText. Removed many unused functions, including:
- TextIterator::length
- TextIterator::deprecatedTextIteratorCharacters
- TextIterator::characterAt
- SimplifiedBackwardsTextIterator::length
- CharacterIterator::length
- CharacterIterator::string
- WordAwareIterator::length
- WordAwareIterator::range
* editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::appendTrailingWhitespace): Pass reference rather than pointer.
Use text().length() instead of length(). Check atEnd() before using CharacterIterator, since
iterator member functions don't work when at the end.
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary): Ditto.
(WebCore::nextBoundary): Ditto.
* editing/htmlediting.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
* page/ios/FrameIOS.mm:
(WebCore::Frame::indexCountOfWordPrecedingSelection): Ditto.
(WebCore::Frame::wordsInCurrentParagraph): Ditto.
2014-03-10 Martin Robinson <mrobinson@igalia.com>
[GTK] [CMake] Clean up library linking
https://bugs.webkit.org/show_bug.cgi?id=129782
Reviewed by Philippe Normand.
* PlatformGTK.cmake: Some files are duplicated on the source list of two convenience
libraries. Ensure that they are all compiled into WebCore instead of WebCorePlatformGTK.
Some simply need to be moved to WebCore from WebCorePlatformGTK. Don't try to link
WebCorePlatformGTK against WebCore -- convenience libraries should be able to save
their symbol resolution for the final linking step.
2014-03-10 Radu Stavila <stavila@adobe.com>
[CSS Regions] Scrolling regions with the mouse wheel only works properly if hovering over the region's padding
https://bugs.webkit.org/show_bug.cgi?id=129485
Reviewed by Andrei Bucur.
When searching for the region under the mouse pointer (to identify which region to scroll),
the localToAbsolute method must be called on the region container, not the region itself.
Also, when calling the offsetFromContainer method on a named flow fragment,
it must only take into consideration the border and padding of the fragment container,
not its scrolled offset.
Test: fast/regions/wheel-scrollable-single-region.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::scroll):
* rendering/RenderFlowThread.cpp:
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::offsetFromContainer):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
* rendering/RenderNamedFlowThread.h:
2014-03-10 Jinwoo Song <jinwoo7.song@samsung.com>
Remove unused dispatchStorageEvent() from StorageAreaSync
https://bugs.webkit.org/show_bug.cgi?id=129999
Reviewed by Andreas Kling.
dispatchStorageEvent() is not used anywhere.
* storage/StorageAreaSync.h: Remove dispatchStorageEvent().
2014-03-09 Alexey Proskuryakov <ap@apple.com>
iOS build fix.
* dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent):
2014-03-06 Alexey Proskuryakov <ap@apple.com>
[Mac] Don't perform a round-trip through WebProcess before interpreting key events
https://bugs.webkit.org/show_bug.cgi?id=129812
Reviewed by Darin Adler.
No significant behavior changes expected, except for Esc key processing, which now
dispatches a keypress before executing its default action.
* platform/KeypressCommand.h: Added.
(WebCore::KeypressCommand::KeypressCommand):
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
Moved KeypressCommand from dom/KeyboardEvent.h to its own header, as it needed
in platform/ directory now.
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
(WebCore::KeyboardEvent::handledByInputMethod):
(WebCore::KeyboardEvent::keypressCommands):
* platform/PlatformKeyboardEvent.h:
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
(WebCore::PlatformKeyboardEvent::handledByInputMethod):
(WebCore::PlatformKeyboardEvent::commands):
PlatformKeyboardEvent now carries results of interpreting the event by AppKit. This
is logically not much different from carrying charcode, and is similar to what Gtk
does for input methods.
KeyboardEvent already had keypress commands, which were added to it after construction.
It's still possible for WebKit1, while with WebKit2, they are provided at construction
time. The event now also has a boolean for whether IM handled it already.
2014-03-09 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
https://bugs.webkit.org/show_bug.cgi?id=129985
Reviewed by Simon Fraser.
This is in preparation to stop passing integral positioned boxes to transform animations.
No change in behavior.
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::addAnimation):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::getTransformFunctionValue):
(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startTransition):
2014-03-08 Simon Fraser <simon.fraser@apple.com>
[iOS Wk2] Can't scroll after going back to page in page cache
https://bugs.webkit.org/show_bug.cgi?id=129989
<rdar://problem/16217588>
Reviewed by Dan Bernstein.
iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
function that is called instead of FrameView::forceLayout(). This was unimplemented
for the WK2 FrameLoaderClient, so no layout was forced, with the result
that the contentSize was never updated and scrolling was broken.
Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
and having it return a bool to say whether the default forceLayout()
should be done. WK1 can then continue to have its custom behavior,
and Wk2 will simply do a forceLayout().
Also remove FrameLaoderClient::forceLayout(), which was never called.
* loader/EmptyClients.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
* loader/FrameLoaderClient.h:
2014-03-08 Simon Fraser <simon.fraser@apple.com>
[iOS WK2] Get position:fixed working slighlty better
https://bugs.webkit.org/show_bug.cgi?id=129988
Reviewed by Dan Bernstein.
On iOS we want to use the viewport-constrained visible rect, not
just the visible rect.
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
2014-03-07 Simon Fraser <simon.fraser@apple.com>
[iOS] Don't call scrollOffsetForFixedPosition a second time if we have no header and footer layers
https://bugs.webkit.org/show_bug.cgi?id=129912
Reviewed by Tim Horton.
Avoid extra work if we have no header or footer layers.
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
(WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
2014-03-08 Zalan Bujtas <zalan@apple.com>
RenderElement::valueForLength() callers misuse bool parameter.
https://bugs.webkit.org/show_bug.cgi?id=129982
Reviewed by Andreas Kling.
Remove bogus RenderView* parameter.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePercentageLogicalHeight):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
2014-03-08 Jeremy Jones <jeremyj@apple.com>
Allow media element to supply the video layer after fullscreen transition has already begun.
https://bugs.webkit.org/show_bug.cgi?id=129870
Reviewed by Eric Carlson.
Instead of borrowing the videolayer from the HTMLMediaElement, WebVideoFullscreen now supplies a layer to HTMLMediaElement to fill in as needed and at the appropriate time.
This allows fullscreen even if the video layer hasn't yet been created. And in the future it allows MediaPlayer to supply other layers such as closed captions.
* WebCore.exp.in:
Remove exports related to borrowing and lend the video layer.
Add exports for supplying a layer to fullscreen and keepying the frame and gravity properties in sync.
* html/HTMLMediaElement.cpp:
Remove the concept of borrowing the platform layer.
Add the concept of a supplied m_videoFullscreenLayer, into which the media player can add layers.
When the m_videoFullscreenFrame is supplied, don't show the video layer inline any more.
Stash video layer properties in case the media player is not yet created.
(WebCore::HTMLMediaElement::HTMLMediaElement):
Initialize gravity to the default. Remove m_platformLayerBorrowed.
(WebCore::HTMLMediaElement::platformLayer):
When we have a m_videoFullscreenLayer, don't show video inline.
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):
Pass along the m_videoFullscreenLayer to the MediaPlayer if available or just stash it for later.
(WebCore::HTMLMediaElement::createMediaPlayer):
Pass along video fullscreen properties that we may have accumulated before the MediaPlayer was created.
(WebCore::HTMLMediaElement::setVideoFullscreenGravity):
Stash the gravity property, pass it along to the media player if possible.
* html/HTMLMediaElement.h:
Remove concept of borrowing the video layer. Add properties for a supplied videoFullscreenLayer.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::setVideoFullscreenLayer):
Forward on to internal implementation.
(WebCore::MediaPlayer::setVideoFullscreenFrame):
Forward on to internal implementation.
(WebCore::MediaPlayer::setVideoFullscreenGravity):
Forward on to internal implementation.
* platform/graphics/MediaPlayer.h:
Add methods for video fullscreen Layer, Frame and Gravity.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):
Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenFrame):
Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setVideoFullscreenGravity):
Add default implementation.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
Add support for fullscreen video layer, frame and gravity.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
Init m_videoFullscreenGravity.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
Apply cached properties once video layer is created and add to the fullscreen layer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
Cache the property value. Add video layer right away available.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
Cache the property value. Apply to video layer right away if available.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
Cache the property value. Apply to video layer right away if available.
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
(-[WebVideoFullscreenController enterFullscreen:]):
Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.
(-[WebVideoFullscreenController didExitFullscreen]):
Clean up the videoFullscreenLayer.
* platform/ios/WebVideoFullscreenInterface.h:
Remove methods related to lending the video layer.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
Remove functions related to lending the video layer.
Supply a layer directly to enterFullscreen.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(+[WebAVVideoLayer videoLayer]):
Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
(-[WebAVVideoLayer setPlayerController:]):
Store the AVPlayerController to prevent AVKit's default behavior.
(-[WebAVVideoLayer setBounds:]):
Forward this onto the WebVideoFullscreenModel
(-[WebAVVideoLayer setVideoLayerGravity:]):
Forward this onto the WebVideoFullscreenModel
(-[WebAVVideoLayer videoLayerGravity]):
Forward this onto the WebVideoFullscreenModel
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
Supply a video layer directly instead of relying on one being previously loaned.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
Clean-up now assumes there is a video layer.
* platform/ios/WebVideoFullscreenModel.h:
Remove methods for borrowing and returning video layers.
Add methods for keeping video layer state in sync.
* platform/ios/WebVideoFullscreenModelMediaElement.h:
Remove methods for borrowing and returning video layers.
Add method for supplying a video fullscreen layer.
Add methods for keeping video layer state in sync.
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setMediaElement):
Handle audio element case by setting hasVideo to false.
(WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer):
Pass along the video fullscreen layer to the media element.
(WebVideoFullscreenModelMediaElement::setVideoLayerFrame):
Pass along the video layer frame to the media element.
(WebVideoFullscreenModelMediaElement::setVideoLayerGravity):
Pass along the video layer gravity to the media element.
2014-03-08 Jae Hyun Park <jaepark@webkit.org>
Clean up PlatformLayer.h
https://bugs.webkit.org/show_bug.cgi?id=129967
Reviewed by Martin Robinson.
* platform/graphics/PlatformLayer.h:
Remove duplicated declaration of PlatformLayer when using TextureMapper.
2014-03-08 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Simple compositing container layer (isSimpleContainerCompositingLayer) paints to wrong position.
https://bugs.webkit.org/show_bug.cgi?id=129861
Reviewed by Simon Fraser.
This patch ensures that both the simple and non-simple cases paint to the same position.
Simple compositing container layer codepath needs to take the fractional device pixel offset
into account when painting. Without the fractional value, the final paint rounding could push the
paint offset to a different position.
retina example:
compositing top-left: 0px 0px.
fractional offset: 0.3px 0.3px
painting coords without offseting: 0px 0px
with offseting: 0.5px 0.5px
Tests: compositing/hidpi-simple-container-layer-on-device-pixel.html
* WebCore.exp.in:
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsRect):
(WebCore::GraphicsLayer::setContentsRect):
(WebCore::GraphicsLayer::contentsClippingRect):
(WebCore::GraphicsLayer::setContentsClippingRect):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsRect):
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::updateContentsRects):
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
(WebCore::RenderLayerBacking::backgroundBoxForPainting):
* rendering/RenderLayerBacking.h:
2014-03-08 Oliver Hunt <oliver@apple.com>
SerializedScriptValue may move Identifiers between worlds
https://bugs.webkit.org/show_bug.cgi?id=129979
Reviewed by Andreas Kling.
Test: fast/workers/worker-copy-shared-blob-url.html
Don't use Strings to store blob URLs as String's may be Identifiers
and they can only exist in one world/thread at a time.
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::put):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserializeString):
(WebCore::SerializedScriptValue::addBlobURL):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/js/SerializedScriptValue.h:
2014-03-07 Timothy Hatcher <timothy@apple.com>
Load source maps and their resources asynchronously.
https://bugs.webkit.org/show_bug.cgi?id=112071
Reviewed by Joseph Pecoraro.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
Honor the hiddenFromInspector flag.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::willSendRequest):
(WebCore::InspectorResourceAgent::markResourceAsCached):
(WebCore::InspectorResourceAgent::didReceiveResponse):
(WebCore::InspectorResourceAgent::didReceiveData):
(WebCore::InspectorResourceAgent::didFinishLoading):
(WebCore::InspectorResourceAgent::didFailLoading):
(WebCore::InspectorResourceAgent::replayXHR):
(WebCore::InspectorResourceAgent::loadResource):
* inspector/InspectorResourceAgent.h:
Honor the hiddenFromInspector flag by keeping track of
hidden identifiers in a HashSet.
* inspector/protocol/Network.json:
(Network.loadResource): Added.
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::hiddenFromInspector): Added.
(WebCore::ResourceRequestBase::setHiddenFromInspector): Added.
(WebCore::ResourceRequestBase::ResourceRequestBase):
Add a flag to hide the request from the Inspector.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::sendForInspector): Added.
(WebCore::XMLHttpRequest::sendForInspectorXHRReplay): Renamed.
(WebCore::XMLHttpRequest::createRequest):
* xml/XMLHttpRequest.h:
Make Inspector loads allow cross-origins and hide their request
from the Inspector itself.
2014-03-07 Tim Horton <timothy_horton@apple.com>
[WebKit2][iOS] PDF
https://bugs.webkit.org/show_bug.cgi?id=129600
<rdar://problem/15260216>
Reviewed by Anders Carlsson.
* WebCore.exp.in:
* platform/MIMETypeRegistry.cpp:
(WebCore::initializeSupportedImageMIMETypes):
(WebCore::initializePDFMIMETypes):
(WebCore::initializePostScriptMIMETypes):
(WebCore::initializeMIMETypeRegistry):
(WebCore::MIMETypeRegistry::getPDFMIMETypes):
* platform/MIMETypeRegistry.h:
Split PDF and PostScript MIME types, so WebKit2 can retrieve just the PDF ones
without PostScript included.
2014-03-07 Myles C. Maxfield <mmaxfield@apple.com>
Comment in RenderStyle is no longer accurate
https://bugs.webkit.org/show_bug.cgi?id=129956
Reviewed by Simon Fraser.
RenderStyle::createStyleInheritingFromPseudoStyle was moved from RenderImage. Before it
was moved, there was an image-specific comment in the function. However, that comment
is both irrelevant to RenderStyle, and incorrect as the function is necessary for
RenderQuotes as well.
No new tests are necessary because there is no behavior change.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):
2014-03-07 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Throw SYNTAX_ERROR when maxRetransmits and maxRetransmitTime are both set in RTCDataChannelInit
https://bugs.webkit.org/show_bug.cgi?id=129894
Reviewed by Eric Carlson.
Existing test was updated.
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::create):
2014-03-07 Benjamin Poulain <bpoulain@apple.com>
Fix the regression introduced by r165288
https://bugs.webkit.org/show_bug.cgi?id=129934
Reviewed by Ryosuke Niwa.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):
We need to return the new value after layout, not the value from the dirty tree.
2014-03-07 Benjamin Poulain <benjamin@webkit.org>
Traversal failure in a direct adjacent chain with tail backtracking lacks the path to clear the tail
https://bugs.webkit.org/show_bug.cgi?id=129863
Reviewed by Gavin Barraclough.
Direct adjacent backtracking use the stack to push the backtracking entry point and recover from there.
In case of traversal failure, their is no point in recovering from the indirect adjancent entry point and
we should clear entry point from the stack (which is the purpose of the tail).
The adjancent tail was missing the part for clearing the stack in one case.
The case with adjancent backtracking inside descendant backtracing was doing everything right. This patch
generalize this code and the correct tail is fully generated by generateAdjacentBacktrackingTail().
JumpToClearAdjacentDescendantTail becomes JumpToClearAdjacentTail, and this new backtracking state is added
to the missing traversal action.
Test: fast/selectors/long-adjacent-backtracking.html
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::solveBacktrackingAction):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
2014-03-07 Andreas Kling <akling@apple.com>
[Mac] Notify system malloc of fake memory pressure.
<https://webkit.org/b/129908>
After fixing the leak in r165252, I was surprised to find that it didn't
show up on memory test bots. It turns out that while the memory is now
getting freed, the system malloc implementation doesn't actually release
pages back to the OS until there is memory pressure.
Since we are just faking the memory pressure on bots, we have to let
system malloc in on the fun, so we can get representative numbers.
With this change, we should finally see the effect of not leaking the
URLRequest object tree.
Reviewed by Anders Carlsson.
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::install):
Tell system malloc that we are under fake memory pressure.
2014-03-07 Benjamin Poulain <bpoulain@apple.com>
[iOS] WebKit1 scroll position is incorrect
https://bugs.webkit.org/show_bug.cgi?id=129905
Reviewed by Simon Fraser.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::scrollX):
(WebCore::DOMWindow::scrollY):
A new optimization was avoiding layout if the position is zero. This was using the scrollX/Y instead
of actualScrollX/Y which caused us to always bail out instead of returning the value to JavaScript.
* platform/ScrollView.h:
(WebCore::ScrollView::actualScrollX):
(WebCore::ScrollView::actualScrollY):
(WebCore::ScrollView::actualScrollPosition):
This was accidentally changed to the iOS compat document visible rect at some point.
2014-03-07 Adenilson Cavalcanti <cavalcantii@gmail.com>
Remove unused StdDeviation from Drop shadow effect
https://bugs.webkit.org/show_bug.cgi?id=129891
Reviewed by Dirk Schulze.
No new tests, no change on behavior.
* platform/graphics/filters/FEDropShadow.h:
2014-03-07 Brent Fulgham <bfulgham@apple.com>
Correct out-of-band track selection logic.
https://bugs.webkit.org/show_bug.cgi?id=129900
Reviewed by Jer Noble.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Correct test to
use inequality.
2014-03-07 Bear Travis <betravis@adobe.com>
[CSS Shapes] Correctly serialize ellipse positions
https://bugs.webkit.org/show_bug.cgi?id=129700
Reviewed by Dirk Schulze.
Updating ellipse serialization to be in line with
the CSS Shapes spec. Positions should serialize as
2 or 4-value positions, converting keywords to
percentages where possible. This uses the same method
as circle position serialization (bug 129404).
Updated existing parsing tests.
* css/CSSBasicShapes.cpp:
(WebCore::CSSBasicShapeEllipse::cssText): Use the
normalization / serialization helpers for shape position.
2014-03-07 Brian Burg <bburg@apple.com>
Unreviewed, rebaseline run-binding-tests results after r165242.
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
2014-03-07 Darin Adler <darin@apple.com>
Remove non-working optimization that was attempted on iOS only
https://bugs.webkit.org/show_bug.cgi?id=129595
<rdar://problem/15798825>
Reviewed by Sam Weinig.
Code in GCController tried to optimize cases where the controller
was used, but no JavaScript had been run in the current process.
The code was never effective, and was iOS-only. Another way to fix
the problem would be to change the code so it works, and if we do
that we should do it for all platforms, not just iOS.
* bindings/js/GCController.cpp:
(WebCore::GCController::garbageCollectNow): Remove check of
JSDOMWindow::commonVMExists, since it's called just after a call
to JSDOMWindow::commonVM, which will create it as a side effect.
(WebCore::GCController::releaseExecutableMemory): Ditto.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM): Removed iOS-specific code
that pulled the commonVM global out into another function so we
can check for its existence without creating it as a side effect.
* bindings/js/JSDOMWindowBase.h: Ditto.
2014-03-07 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] inset does not properly clamp large corner radii
https://bugs.webkit.org/show_bug.cgi?id=129726
Reviewed by Dirk Schulze.
Make sure that radii that are larger than 50% of the associated shape
dimension (height or width) are properly reduced the same way as
border-radius radii are.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html
* rendering/shapes/Shape.cpp:
(WebCore::ensureRadiiDoNotOverlap): Drive by style fix.
(WebCore::Shape::createShape): Scale radii the same way as border
radii are scaled.
* platform/graphics/FloatRoundedRect.h:
(WebCore::calcBorderRadiiConstraintScaleFor): Move border radii
constraint calculation function out so that it can be shared by
the shape code.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::getRoundedBorderFor): Call renamed scale function.
2014-03-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GST] Set name to several timeout sources
https://bugs.webkit.org/show_bug.cgi?id=129878
Reviewed by Philippe Normand.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::videoChanged):
(WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
(WebCore::MediaPlayerPrivateGStreamer::audioChanged):
(WebCore::MediaPlayerPrivateGStreamer::textChanged):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
2014-03-07 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Timeout sources not correctly removed
https://bugs.webkit.org/show_bug.cgi?id=129877
Reviewed by Philippe Normand.
Set source ID variables to 0 after removing the sources from the
context. Also give a name to the sources.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::disconnect):
(WebCore::TrackPrivateBaseGStreamer::activeChanged):
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):
2014-03-07 Gergo Balogh <gbalogh.u-szeged@partner.samsung.com>
Remove FFTFrameMKL.
https://bugs.webkit.org/show_bug.cgi?id=129866
Reviewed by Csaba Osztrogonác.
* platform/audio/FFTFrame.h:
* platform/audio/FFTFrameStub.cpp:
* platform/audio/mkl/FFTFrameMKL.cpp: Removed, it is never used.
2014-03-07 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Adding getConfiguration method to RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=129845
Reviewed by Eric Carlson.
Test: fast/mediastream/RTCPeerConnection-getConfiguration.html
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/mediastream/RTCConfiguration.idl: Added.
* Modules/mediastream/RTCIceServer.idl: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::getConfiguration):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
2014-03-07 Jinwoo Song <jinwoo7.song@samsung.com>
Optimize collectionLast() and collectionTraverseBackward() in LiveNodeList
https://bugs.webkit.org/show_bug.cgi?id=129775
Reviewed by Ryosuke Niwa.
Check the LiveNodeList type if it is HTMLTagNodeListType and ClassNodeListType then
apply inlined matching methods for each type.
* dom/LiveNodeList.cpp:
(WebCore::lastMatchingElement): Added.
(WebCore::previousMatchingElement): Added.
(WebCore::traverseMatchingElementsBackward): Added.
(WebCore::LiveNodeList::collectionLast): Apply lastMatchingElement() with LiveNodeList type.
(WebCore::LiveNodeList::collectionTraverseBackward): Apply traverseMatchingElementsBackward()
with LiveNodeList type.
2014-03-06 Andreas Kling <akling@apple.com>
WebCoreResourceHandleAsOperationQueueDelegate over-retains NSURLRequest.
<https://webkit.org/b/129862>
Don't retain the pointer before assigning it to a RetainPtr, since that
will cause the object to leak.
Reviewed by Alexey Proskuryakov.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]):
2014-03-06 Dan Bernstein <mitz@apple.com>
Don’t copy WebInputs.json into the framework.
* WebCore.xcodeproj/project.pbxproj: Removed WebInputs.json from the Copy Bundle Resources
build phase of the WebCore target.
2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Updating RTCPeerConnection.idl
https://bugs.webkit.org/show_bug.cgi?id=129804
Reviewed by Eric Carlson.
Some methods signatures were wrong, marking some arguments as optional when they are mandatory.
Existing tests were updated.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::getStats):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCStatsRequestImpl.cpp:
(WebCore::RTCStatsRequestImpl::create):
(WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
(WebCore::RTCStatsRequestImpl::requestFailed):
* Modules/mediastream/RTCStatsRequestImpl.h:
* platform/mediastream/RTCStatsRequest.h:
2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Updating RTCIceServer to match spec
https://bugs.webkit.org/show_bug.cgi?id=129844
Reviewed by Eric Carlson.
Move RTCIceServer from RTCConfiguration to its own file.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::validateIceServerURL):
(WebCore::processIceServer):
* platform/mediastream/RTCConfiguration.h:
(WebCore::RTCConfiguration::iceServers):
* platform/mediastream/RTCIceServer.h: Added.
2014-03-06 Hyowon Kim <hw1008.kim@samsung.com>
[EFL] Move EvasGL classes from WebKit to WebCore namespace.
https://bugs.webkit.org/show_bug.cgi?id=129797
Reviewed by Gyuyoung Kim.
Though EvasGLContext and EvasGLSurface files were moved from WebKit2/UIProcess/API/efl/
to WebCore/platform/graphics/efl/, they are still in WebKit namespace.
Patch for namespace changes.
* platform/graphics/efl/EvasGLContext.cpp:
* platform/graphics/efl/EvasGLContext.h:
* platform/graphics/efl/EvasGLSurface.cpp:
* platform/graphics/efl/EvasGLSurface.h:
2014-03-06 Brian Burg <bburg@apple.com>
CodeGeneratorJS.pm doesn't need to add spaces between consecutive closing template brackets
https://bugs.webkit.org/show_bug.cgi?id=129836
Reviewed by Andreas Kling.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
(GetNativeVectorInnerType):
(GetSVGPropertyTypes):
2014-03-06 Jinwoo Song <jinwoo7.song@samsung.com>
Remove unused method from BatteryController
https://bugs.webkit.org/show_bug.cgi?id=129850
Reviewed by Gyuyoung Kim.
isActive() method is never called anywhere.
* Modules/battery/BatteryController.cpp:
* Modules/battery/BatteryController.h:
2014-03-06 Pratik Solanki <psolanki@apple.com>
[iOS] Crash on launch with website restrictions enabled
https://bugs.webkit.org/show_bug.cgi?id=129854
<rdar://problem/16207016>
Reviewed by Simon Fraser.
* platform/mac/ContentFilterMac.mm:
(WebCore::ContentFilter::ContentFilter): Initialize m_neFilterSourceQueue so that we don't
crash in the dtor due to garbage value in the field.
2014-03-06 Simon Fraser <simon.fraser@apple.com>
Minor optimization in ScrollingTreeScrollingNodeMac
https://bugs.webkit.org/show_bug.cgi?id=129848
Reviewed by Dean Jackson.
No need to call scrollOffsetForFixedPosition() again if we don't have header
and footer layers.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
2014-03-06 Mark Lam <mark.lam@apple.com>
XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
https://bugs.webkit.org/show_bug.cgi?id=45994
Not reviewed.
Re-landing r161051 (originally by Ryosuke Niwa, reviewed by Alexey Proskuryakov)
since https://bugs.webkit.org/show_bug.cgi?id=126219 is no longer an issue.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::status):
(WebCore::XMLHttpRequest::statusText):
* xml/XMLHttpRequest.h:
* xml/XMLHttpRequest.idl:
2014-03-06 Brent Fulgham <bfulgham@apple.com>
Revise Out-of-band VTT support for better integration with AVFoundation engine
https://bugs.webkit.org/show_bug.cgi?id=129749
<rdar://problem/16215701>
Reviewed by Eric Carlson.
Revise the platform handling of out-of-band text tracks so that we can keep AVFoundation
informed of track selections we make. Use a dummy out-of-band child of the existing text
track classes to avoid code duplication.
* WebCore.xcodeproj/project.pbxproj: Add new OutOfBandTextTrackPrivateAVF.h file.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Notify player when OOB tracks change.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Also pass track mode to platform backend.
* html/track/TextTrack.cpp:
(WebCore::TextTrack::platformTextTrack): Also pass track mode to constructor.
* html/track/TrackBase.cpp:
(WebCore::TrackBase::TrackBase): Move ownership of track unique identifier to this base class.
* html/track/TrackBase.h:
(WebCore::TrackBase::uniqueId): Ditto.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::notifyTrackModeChanged): Added stub to pass message to platform player.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::notifyTrackModeChanged): Stub for most platforms.
* platform/graphics/PlatformTextTrack.h:
(WebCore::PlatformTextTrack::create): Update for revised constructor (with 'mode' argument).
(WebCore::PlatformTextTrack::createOutOfBand): Ditto.
(WebCore::PlatformTextTrack::mode): Added.
(WebCore::PlatformTextTrack::captionMenuOffItem): Use revised constructor arguments.
(WebCore::PlatformTextTrack::captionMenuAutomaticItem): Ditto.
(WebCore::PlatformTextTrack::PlatformTextTrack): Ditto.
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Change predicate to return enum indicating the category
of track (out-of-band, legacy closed caption, or in band).
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::notifyTrackModeChanged): Added.
* platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: Override predicate to return category enum.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Revise to use new category enum.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Override predicate to return category enum.
that this is NOT an out-of-band track.
* platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::notifyTrackModeChanged): Added implementation.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Revise to handle out-of-band
track placeholders.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Modify to inform AVFoundation about any
out-of-band tracks we've selected.
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Added.
* platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: Added.
(WebCore::OutOfBandTextTrackPrivateAVF::create):
(WebCore::OutOfBandTextTrackPrivateAVF::processCue):
(WebCore::OutOfBandTextTrackPrivateAVF::resetCueValues):
(WebCore::OutOfBandTextTrackPrivateAVF::mediaSelectionOption):
(WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):
(WebCore::OutOfBandTextTrackPrivateAVF::processCueAttributes):
* platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Override predicate to indicate
that this is NOT an out-of-band track.
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::setSelectedTextTrack): Correct typo in logging text.
2014-03-06 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Updating createOffer and createAnswer methods to match WebRTC editor's draft of 01/27/2014
https://bugs.webkit.org/show_bug.cgi?id=129484
Reviewed by Eric Carlson.
According to the spec, createOffer and createAnswer will no longer have MediaConstraints as an argument,
instead they will have RTCOfferOptions and RTCOfferAnswerOptions, respectively.
Existing tests were updated.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/mediastream/RTCOfferAnswerOptions.cpp: Added.
* Modules/mediastream/RTCOfferAnswerOptions.h: Added.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::createOffer):
(WebCore::RTCPeerConnection::createAnswer):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createOffer):
(WebCore::RTCPeerConnectionHandlerMock::createAnswer):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2014-03-06 Brian Burg <bburg@apple.com>
Web Replay: premature release() of PassRefPtr in InspectorReplayAgent
https://bugs.webkit.org/show_bug.cgi?id=129827
Reviewed by Timothy Hatcher.
* inspector/InspectorReplayAgent.cpp:
(WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
2014-03-06 Benjamin Poulain <bpoulain@apple.com>
[iOS] Do not compile fake mouse event handling when iOS Touch Events are enabled
https://bugs.webkit.org/show_bug.cgi?id=129725
Reviewed by Dan Bernstein.
Bug <rdar://problem/16218636>. The code is #ifdef'ed out to avoid setting up useless objects
and to avoid future mistake.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::~EventHandler):
(WebCore::EventHandler::clear):
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::startAutoHideCursorTimer):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
* page/EventHandler.h:
2014-03-06 Pratik Solanki <psolanki@apple.com>
Unreviewed. iOS build fix after r165199.
* rendering/RootInlineBox.cpp:
2014-03-06 Benjamin Poulain <bpoulain@apple.com>
[iOS] Rename the actualVisibleXXXRect to unobscuredContentRect for consistency
https://bugs.webkit.org/show_bug.cgi?id=129773
Reviewed by Simon Fraser.
* dom/TreeScope.cpp:
(WebCore::nodeFromPoint):
* platform/ScrollView.cpp:
(WebCore::ScrollView::visibleContentRectInternal):
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::unoscuredContentRect):
* platform/ios/wak/WAKScrollView.h:
* platform/ios/wak/WAKScrollView.mm:
(-[WAKScrollView unoscuredContentRect]):
(-[WAKScrollView description]):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
2014-03-05 Oliver Hunt <oliver@apple.com>
Support caching of custom setters
https://bugs.webkit.org/show_bug.cgi?id=129519
Reviewed by Filip Pizlo.
Add forwarding header
Tests: js/regress/assign-custom-setter-polymorphic.html
js/regress/assign-custom-setter.html
* ForwardingHeaders/jit/SpillRegistersMode.h: Added.
2014-03-05 Jon Honeycutt <jhoneycutt@apple.com>
Invalid cast in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients()
<https://bugs.webkit.org/show_bug.cgi?id=121887>
<rdar://problem/15073043>
Clang appears to be optimizing out a branch in RenderObject::node()
when compiling RenderLayer::FilterInfo::updateReferenceFilterClients().
We'll work around this by factoring out the code in question into a
separate member function marked NEVER_INLINE.
No test possible due to <https://bugs.webkit.org/show_bug.cgi?id=129757>.
Reviewed by David Kilzer.
* rendering/RenderLayerFilterInfo.cpp:
(WebCore::RenderLayer::FilterInfo::layerElement):
Code moved from updateReferenceFilterClients(). Returns the Element*
for m_layer.
(WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
Use layerElement().
* rendering/RenderLayerFilterInfo.h:
Declared layerElement().
2014-03-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=127944
Reviewed by Geoffrey Garen.
Covered by existing tests.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* ForwardingHeaders/runtime/ConsoleClient.h: Added.
* ForwardingHeaders/runtime/ConsoleTypes.h: Renamed from Source/WebCore/ForwardingHeaders/inspector/ConsoleTypes.h.
* GNUmakefile.list.am:
* PlatformGTK.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/gobject/GNUmakefile.am:
Update build systems.
* page/Console.cpp: Removed.
* page/Console.h: Removed.
* page/Console.idl: Removed.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::resetDOMWindowProperties):
* page/DOMWindow.h:
(WebCore::DOMWindow::defaultStatus):
* page/DOMWindow.idl:
Removed the old IDL generated Console object on window.
* page/PageConsole.cpp:
(WebCore::PageConsole::shouldPrintExceptions):
(WebCore::PageConsole::setShouldPrintExceptions):
(WebCore::PageConsole::mute):
(WebCore::PageConsole::unmute):
(WebCore::PageConsole::messageWithTypeAndLevel):
(WebCore::PageConsole::count):
(WebCore::PageConsole::profile):
(WebCore::PageConsole::profileEnd):
(WebCore::PageConsole::time):
(WebCore::PageConsole::timeEnd):
(WebCore::PageConsole::timeStamp):
(WebCore::PageConsole::group):
(WebCore::PageConsole::groupCollapsed):
(WebCore::PageConsole::groupEnd):
(WebCore::PageConsole::clearProfiles):
* page/PageConsole.h:
Move the handling of Console object into PageConsole.
* bindings/js/ScriptCachedFrameData.cpp:
(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
Set the PageConsole as the ConsoleClient of the JSGlobalObject
so that WebCore may handle console messages directly. For instance
it may pass messages on to the ChromeClient.
* testing/Internals.cpp:
(WebCore::Internals::consoleProfiles):
To access profiles, go through PageConsole now instead of Console.
* bindings/js/JSDOMWindowBase.cpp:
* bindings/objc/WebScriptObject.mm:
* css/MediaList.cpp:
* dom/ScriptExecutionContext.h:
* dom/UIEvent.cpp:
* dom/ViewportArguments.cpp:
* html/parser/XSSAuditorDelegate.cpp:
* inspector/CommandLineAPIHost.h:
* inspector/InspectorInstrumentation.cpp:
* inspector/InspectorInstrumentation.h:
* inspector/InspectorProfilerAgent.cpp:
* inspector/WebConsoleAgent.cpp:
* loader/FrameLoader.cpp:
* loader/MixedContentChecker.cpp:
* loader/appcache/ApplicationCacheGroup.cpp:
* loader/cache/CachedResourceLoader.cpp:
* page/ChromeClient.h:
* page/ContentSecurityPolicy.cpp:
* page/Page.cpp:
* page/Page.h:
* svg/SVGDocumentExtensions.cpp:
* workers/WorkerMessagingProxy.cpp:
* workers/WorkerReportingProxy.h:
Update includes.
2014-03-06 Zsolt Borbely <borbezs@inf.u-szeged.hu>
Fix the !ENABLE(CSS_STICKY_POSITION) build
https://bugs.webkit.org/show_bug.cgi?id=129793
Reviewed by Simon Fraser.
Add missing ENABLE(CSS_STICKY_POSITION) guard to EditingStyle::convertPositionStyle().
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::convertPositionStyle):
2014-03-06 Joseph Pecoraro <pecoraro@apple.com>
[Mac] Leak: dispatch_semaphore leak allocated in MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
https://bugs.webkit.org/show_bug.cgi?id=129792
Reviewed by Anders Carlsson.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
2014-03-06 Brendan Long <b.long@cablelabs.com>
Implement VideoTrackList.selectedIndex
https://bugs.webkit.org/show_bug.cgi?id=129770
Reviewed by Eric Carlson.
Tests: media/track/video/video-track-mkv-theora-selected.html
* html/track/VideoTrackList.idl:
2014-03-06 Lorenzo Tilve <ltilve@igalia.com>
[GTK][CMake] Fix the GTK+ CMake build
https://bugs.webkit.org/show_bug.cgi?id=129801
Reviewed by Martin Robinson.
Include missing files for CMake build
* CMakeLists.txt: Add a missing references to DOMURLMediaStream
2014-03-06 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Setting content to opaque on m_graphicsLayer depends on subpixel accumulation.
https://bugs.webkit.org/show_bug.cgi?id=129776
Reviewed by Simon Fraser.
isEmpty() returns true when any of the dimensions is <= 0. Subpixel accumulation could happen
in one direction only. Use isZero() instead().
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2014-03-06 Gurpreet Kaur <k.gurpreet@samsung.com>
REGRESSION (r158254): Rubber-banding at Bing image search causes the toolbar to move up and away
https://bugs.webkit.org/show_bug.cgi?id=128873
Reviewed by Antonio Gomes.
This regression is caused by http://trac.webkit.org/changeset/154614
and http://trac.webkit.org/changeset/156605. So reverting the changes
to make it Web compatible as earlier.
* dom/Element.cpp:
(WebCore::Element::scrollLeft):
(WebCore::Element::scrollTop):
(WebCore::Element::setScrollLeft):
(WebCore::Element::setScrollTop):
Reverting changes as it caused regression.
2014-03-06 Zan Dobersek <zdobersek@igalia.com>
Move Source/WebCore/html/canvas/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129668
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/canvas/ to std::unique_ptr.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::~HTMLCanvasElement):
(WebCore::HTMLCanvasElement::getContext):
* html/HTMLCanvasElement.h:
* html/canvas/ANGLEInstancedArrays.cpp:
* html/canvas/ANGLEInstancedArrays.h:
* html/canvas/CanvasRenderingContext2D.h:
* html/canvas/EXTTextureFilterAnisotropic.cpp:
* html/canvas/EXTTextureFilterAnisotropic.h:
* html/canvas/OESElementIndexUint.cpp:
* html/canvas/OESElementIndexUint.h:
* html/canvas/OESStandardDerivatives.cpp:
* html/canvas/OESStandardDerivatives.h:
* html/canvas/OESTextureFloat.cpp:
* html/canvas/OESTextureFloat.h:
* html/canvas/OESTextureFloatLinear.cpp:
* html/canvas/OESTextureFloatLinear.h:
* html/canvas/OESTextureHalfFloat.cpp:
* html/canvas/OESTextureHalfFloat.h:
* html/canvas/OESTextureHalfFloatLinear.cpp:
* html/canvas/OESTextureHalfFloatLinear.h:
* html/canvas/OESVertexArrayObject.cpp:
* html/canvas/OESVertexArrayObject.h:
* html/canvas/WebGLCompressedTextureATC.cpp:
* html/canvas/WebGLCompressedTextureATC.h:
* html/canvas/WebGLCompressedTexturePVRTC.cpp:
* html/canvas/WebGLCompressedTexturePVRTC.h:
* html/canvas/WebGLCompressedTextureS3TC.cpp:
* html/canvas/WebGLCompressedTextureS3TC.h:
* html/canvas/WebGLDebugRendererInfo.cpp:
* html/canvas/WebGLDebugRendererInfo.h:
* html/canvas/WebGLDebugShaders.cpp:
* html/canvas/WebGLDebugShaders.h:
* html/canvas/WebGLDepthTexture.cpp:
* html/canvas/WebGLDepthTexture.h:
* html/canvas/WebGLDrawBuffers.cpp:
* html/canvas/WebGLDrawBuffers.h:
* html/canvas/WebGLLoseContext.cpp:
* html/canvas/WebGLLoseContext.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create):
(WebCore::WebGLRenderingContext::getExtension):
* html/canvas/WebGLRenderingContext.h:
2014-03-06 Zan Dobersek <zdobersek@igalia.com>
Move Source/WebCore/editing/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129665
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/editing/ with std::unique_ptr.
* editing/EditingStyle.cpp:
(WebCore::htmlElementEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
(WebCore::htmlAttributeEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
* editing/Editor.cpp:
(WebCore::Editor::Editor):
(WebCore::Editor::clear):
* editing/Editor.h:
* page/Frame.cpp:
(WebCore::Frame::Frame):
* page/Frame.h:
2014-03-06 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for KeyboardEvent, ScriptExecutionContext::PendingException
https://bugs.webkit.org/show_bug.cgi?id=129061
Reviewed by Eric Carlson.
Replace uses of OwnPtr and PassOwnPtr for KeyboardEvent and ScriptExecutionContext::PendingException
classes with std::unique_ptr. ScriptExecutionContext::Task objects are still handled through OwnPtr,
but this will be addressed later.
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/KeyboardEvent.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
* dom/ScriptExecutionContext.h:
* dom/ScriptRunner.h: Remove an unnecessary PassOwnPtr header inclusion.
2014-03-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165175.
http://trac.webkit.org/changeset/165175
https://bugs.webkit.org/show_bug.cgi?id=129788
Linking failures on GTK, EFL due to missing gstreamer-tag-1.0
dependency (Requested by zdobersek on #webkit).
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):
2014-03-05 Brendan Long <b.long@cablelabs.com>
[GStreamer] human readable language code for tracks
https://bugs.webkit.org/show_bug.cgi?id=124514
Reviewed by Philippe Normand.
* platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
2014-03-05 Ryuan Choi <ryuan.choi@samsung.com>
Remove unused method from Vibration
https://bugs.webkit.org/show_bug.cgi?id=129732
Reviewed by Gyuyoung Kim.
* Modules/vibration/Vibration.cpp:
Removed isActive(), which is never called since r152441.
* Modules/vibration/Vibration.h: Ditto.
2014-03-05 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165141, r165157, and r165158.
http://trac.webkit.org/changeset/165141
http://trac.webkit.org/changeset/165157
http://trac.webkit.org/changeset/165158
https://bugs.webkit.org/show_bug.cgi?id=129772
"broke ftl" (Requested by olliej_ on #webkit).
* ForwardingHeaders/jit/SpillRegistersMode.h: Removed.
2014-03-05 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] The GObject DOM bindings should always be built
https://bugs.webkit.org/show_bug.cgi?id=127963
Reviewed by Ryosuke Niwa.
* PlatformGTK.cmake: Make compilation of the WebKitGTK+ GObject DOM bindings
unconditional, instead of conditional on the WebKit2 build.
2014-03-05 Jer Noble <jer.noble@apple.com>
[MSE] Crash in SourceBuffer::sourceBufferPrivateDidReceiveSample() - received samples after SourceBuffer was removed.
https://bugs.webkit.org/show_bug.cgi?id=129761
Reviewed by Eric Carlson.
Guard against the possibility that SourceBufferPrivates will continue to generate samples even after
a parse error. Bail out early from sourceBufferPrivateDidReceiveInitializationSegment and
sourceBufferPrivateDidReceiveSample if the SourceBuffer has been removed.
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
2014-03-05 Enrica Casucci <enrica@apple.com>
Build fix, take 2.
* platform/mac/HTMLConverter.mm:
2014-03-05 Enrica Casucci <enrica@apple.com>
Build fix.
* platform/mac/HTMLConverter.mm:
2014-03-05 Enrica Casucci <enrica@apple.com>
Crash when copying content that contains <sup>.
https://bugs.webkit.org/show_bug.cgi?id=129765
<rdar://problem/16139498>
Reviewed by Benjamin Poulain.
Adding static definition of NSAttributeSuperscriptName.
* platform/mac/HTMLConverter.mm:
2014-03-05 Gavin Barraclough <barraclough@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=128625
Add fast mapping from StringImpl to JSString
Unreviewed roll-out.
Reverting r164347, r165054, r165066 - not clear the performance tradeoff was right.
* bindings/js/DOMWrapperWorld.cpp:
(WebCore::DOMWrapperWorld::clearWrappers):
* bindings/js/DOMWrapperWorld.h:
* bindings/js/JSDOMBinding.h:
(WebCore::jsStringWithCache):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
* bindings/scripts/StaticString.pm:
(GenerateStrings):
2014-03-05 Daniel Bates <dabates@apple.com>
And Alexey Proskuryakov <ap@apple.com>
ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
https://bugs.webkit.org/show_bug.cgi?id=129753
<rdar://problem/12069835>
Reviewed by Alexey Proskuryakov.
Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
app cache doesn't contain a manifest resource.
For some reason an app cache for a web site may be partially written to disk. In particular, the
app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
and hence have been unable to create such an app cache. We were able to reproduce this issue using
an app cache database file that was provided by a person that was affected by this issue.
No test included because it's not straightforward to write a test for this change.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
expression into two assertion expressions to make it straightforward to identify the failing sub-expression
on failure.
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
(WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
have a manifest resource.
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
(WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
ApplicationCacheStorage::deleteCacheGroupRecord().
* loader/appcache/ApplicationCacheStorage.h:
2014-03-05 Oliver Hunt <oliver@apple.com>
Support caching of custom setters
https://bugs.webkit.org/show_bug.cgi?id=129519
Reviewed by Filip Pizlo.
Add forwarding header
Tests: js/regress/assign-custom-setter-polymorphic.html
js/regress/assign-custom-setter.html
* ForwardingHeaders/jit/SpillRegistersMode.h: Added.
2014-03-05 David Kilzer <ddkilzer@apple.com>
Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
<http://webkit.org/b/129751>
<rdar://problem/16237965>
Reviewed by Jon Honeycutt.
Merged from Blink (patch by Yuta Kitamura):
https://src.chromium.org/viewvc/blink?revision=168160&view=revision
http://crbug.com/345005
The root cause is CompositeEditCommand::moveParagraphWithClones() passing
two positions |start| and |end| which do not follow the document order,
i.e. in some situations |start| is located after |end| because of
the difference in affinity.
This patch fixes this crash by normalizing |end| to |start| in such situations.
It also adds an ASSERT that checks the relationship between |start| and |end|.
Test: editing/execCommand/format-block-crash.html
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphWithClones):
* editing/CompositeEditCommand.h:
2014-03-05 Radu Stavila <stavila@adobe.com>
[CSS Regions] Scrollable regions
https://bugs.webkit.org/show_bug.cgi?id=129301
Reviewed by David Hyatt.
Named flow fragments do not inherit the overflow property from the fragment container.
When asked if the flow thread content should be clipped, the named flow fragments
will respond using the overflow property of the named flow fragment container.
When painting the flow thread layer inside the region, the scrolled content offset of
the region must be used to offset the flow thread's layer.
Tests: fast/regions/scrollable-last-region.html
fast/regions/scrollable-single-region-bt.html
fast/regions/scrollable-single-region-lr.html
fast/regions/scrollable-single-region-relative-element.html
fast/regions/scrollable-single-region-rl.html
fast/regions/scrollable-single-region.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::createStyle):
(WebCore::RenderNamedFlowFragment::shouldClipFlowThreadContent):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::shouldClipFlowThreadContent):
* rendering/RenderRegion.h:
2014-03-05 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Device pixel round accumulated subpixel value when the RenderLayer with transform paints its content.
https://bugs.webkit.org/show_bug.cgi?id=129079
Reviewed by Simon Fraser.
Snap the content to the device pixel position (as opposed to integral position) before
applying the transform. Recalculate the remaining subpixels that need offsetting at painting time.
Test: compositing/hidpi-absolute-subpixel-positioned-transformed-elements.html
* platform/graphics/LayoutPoint.h:
(WebCore::roundedForPainting):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerByApplyingTransform):
2014-03-05 Eric Carlson <eric.carlson@apple.com>
[iOS] Show external device name/type in placeholder
https://bugs.webkit.org/show_bug.cgi?id=129723
Reviewed by Jer Noble.
Make the name and type of the external device available to the JS based controls.
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::externalDeviceDisplayName):
(WebCore::MediaControlsHost::externalDeviceType):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediacontrols/MediaControlsHost.idl:
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.updateWirelessPlaybackStatus): Display device type-specific infomation
in the placeholder image.
* WebCore.exp.in: Export new WebKitSystemInterface functions.
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::wirelessPlaybackTargetName): Added.
(WebCore::MediaPlayer::wirelessPlaybackTargetType): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto.
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
2014-03-05 Benjamin Poulain <bpoulain@apple.com>
[iOS] Rename the various VisibleExtent variations to exposedContentRect
https://bugs.webkit.org/show_bug.cgi?id=129728
Reviewed by Simon Fraser.
Rename DocumentVisibleExtent and VisibleExtentContentRect to ExposedContentRect in a desperate
attempt to make things a tiny little bit less confusing.
The name is ExposedContentRect and not ExposedRect as that rect is exposed on ScrollView, while the
rect is in document coordinates (which does not make any difference on WebKit1...).
* WebCore.exp.in:
* platform/ScrollView.h:
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::exposedContentRect):
(WebCore::ScrollView::setExposedContentRect):
* platform/ios/wak/WAKScrollView.h:
* platform/ios/wak/WAKScrollView.mm:
(-[WAKScrollView exposedContentRect]):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didChangeVisibleRect):
2014-03-05 Simon Fraser <simon.fraser@apple.com>
ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
https://bugs.webkit.org/show_bug.cgi?id=129752
Reviewed by Enrica Casucci.
Add C functions for NSURL-related functionality required by WebKit2
* WebCore.exp.in:
* platform/mac/WebCoreNSURLExtras.h:
* platform/mac/WebCoreNSURLExtras.mm:
(WebCore::URLByCanonicalizingURL):
(WebCore::rangeOfURLScheme):
(WebCore::looksLikeAbsoluteURL):
2014-03-05 Martin Hock <mhock@apple.com>
Add support for sessions to MemoryCache.
https://bugs.webkit.org/show_bug.cgi?id=127794
Reviewed by Sam Weinig.
* WebCore.exp.in:
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR): Ditto.
* loader/DocumentLoader.cpp:
(WebCore::areAllLoadersPageCacheAcceptable): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.cpp: Ditto.
(WebCore::CachedFont::CachedFont):
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp: Ditto.
(WebCore::CachedImage::CachedImage):
* loader/cache/CachedImage.h:
* loader/cache/CachedRawResource.cpp: Ditto.
(WebCore::CachedRawResource::CachedRawResource):
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.cpp: Ditto.
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
* loader/cache/CachedResource.h:
(WebCore::CachedResource::sessionID):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource): Constructors take sessionID.
(WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
(WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
(WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
(WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
(WebCore::CachedSVGDocument::CachedSVGDocument):
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedScript.cpp: Ditto.
(WebCore::CachedScript::CachedScript):
* loader/cache/CachedScript.h:
* loader/cache/CachedTextTrack.cpp: Ditto.
(WebCore::CachedTextTrack::CachedTextTrack):
* loader/cache/CachedTextTrack.h:
* loader/cache/CachedXSLStyleSheet.cpp: Ditto.
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/cache/CachedXSLStyleSheet.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
(WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
(WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
(WebCore::MemoryCache::resourceForURL): Ditto.
(WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
(WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
(WebCore::MemoryCache::addImageToCache): Use default sessionID.
(WebCore::MemoryCache::removeImageFromCache): Ditto.
(WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
(WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::getOriginsWithCache): Ditto.
(WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
(WebCore::MemoryCache::removeRequestFromCache): Ditto.
(WebCore::MemoryCache::removeRequestFromSessionCaches): Remove request from all CachedResourceMaps, with multithread support.
(WebCore::MemoryCache::removeRequestFromCacheImpl): Add sessionID parameter.
(WebCore::MemoryCache::removeRequestFromSessionCachesImpl): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
(WebCore::MemoryCache::crossThreadRemoveRequestFromSessionCaches): Pass on request to removeRequestFromSessionCachesImpl.
(WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::setDisabled): Ditto.
* loader/cache/MemoryCache.h: Create another level for cache.
* platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
(WebCore::SessionID>::copy):
* platform/CrossThreadCopier.h:
* platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.
2014-03-03 Martin Robinson <mrobinson@igalia.com>
[GTK][CMake] Generate documentation for the DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=126211
Reviewed by Carlos Garcia Campos.
* PlatformGTK.cmake: Add some files to the GObjectDOMBindings build, so that the
doc generation succeeds. Have the GObjectDOMBindings_INSTALLED_HEADERS variable contain
all installed headers and use another variable for GIR generation. Create the configuration
file for the gtkdoc generation.
2014-03-05 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Wrong cliprect on absolute positioned elements.
https://bugs.webkit.org/show_bug.cgi?id=129656
Reviewed by Simon Fraser.
outlineBoundsForRepaint() is expected to return the outline repaint rect. Using enclosingIntRect()
to calculate the outline boundaries breaks repaint logic in RenderElement::repaintAfterLayoutIfNeeded().
Since enclosingIntRect() can return bigger rect than repaint rect, the old/new bounds' dimensions could end up
being different which triggers the size change repaint code path.
Test: fast/repaint/hidpi-absolute-positioned-element-wrong-cliprect-after-move.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::outlineBoundsForRepaint):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::repaintAfterLayoutIfNeeded):
* rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
2014-03-05 Krzysztof Czech <k.czech@samsung.com>
[ATK] Expose missing functionalities of AtkTableCell to AT.
https://bugs.webkit.org/show_bug.cgi?id=129492
Reviewed by Mario Sanchez Prada.
Implemented missing API of AtkTableCell.
No new tests. Covered by existing ones.
* accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
(webkitAccessibleTableCellGetColumnSpan):
(webkitAccessibleTableCellGetRowSpan):
(webkitAccessibleTableCellGetPosition):
(webkitAccessibleTableCellGetTable):
(webkitAccessibleTableCellInterfaceInit):
2014-03-05 Andres Gomez <agomez@igalia.com>
[GStreamer] WebSource doesn't need the "iradio-mode" property
https://bugs.webkit.org/show_bug.cgi?id=129685
Reviewed by Philippe Normand.
Removed the "iradio-mode" property from the WK source element
since this was only available for its modification from
playbin/uridecodebin and, as discussed in GStreamer bug #725383,
it was not being set and now is going to be removed.
It is safe just to send always the "icy-metadata" header set and
deal with returning "icy" headers as we were already doing.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcStart):
2014-03-05 Chang Shu <cshu@webkit.org>
Copying wrapping text results in multiple spaces between wrapped lines stripped.
https://bugs.webkit.org/show_bug.cgi?id=129609.
Reviewed by Ryosuke Niwa.
While checking the condition of restoring the missing space, the collapsed spaces
may not be exactly one.
editing/pasteboard/copy-text-with-wrapped-tag.html is enhanced to test this case.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextBox):
2014-03-05 Ryosuke Niwa <rniwa@webkit.org>
appendChild shouldn't invalidate LiveNodeLists and HTMLCollections if they don't have valid caches
https://bugs.webkit.org/show_bug.cgi?id=129727
Reviewed by Andreas Kling.
Before this patch, invalidateNodeListAndCollectionCachesInAncestors invalidated node lists and HTML
collections on ancestors of a node whenever we're inserting or removing a child node. This patch
makes HTMLCollections and LiveNodeLists register themselves with Document only when they have valid
caches.
Each user of CollectionIndexCache now implements willValidateIndexCache member function that gets
called when CollectionIndexCache caches any state and necessitates the registration with document.
* dom/ChildNodeList.h: Added an empty willValidateIndexCache since child node lists are never
registered with document.
* dom/CollectionIndexCache.h:
(WebCore::CollectionIndexCache::hasValidCache): Added.
(WebCore::CollectionIndexCache::nodeCount): Calls willValidateIndexCache when caching node count.
(WebCore::CollectionIndexCache::nodeAfterCached): Ditto. Also assert that hasValidCache() true in
the cases where we're simply updating our caches or adding more caches.
(WebCore::CollectionIndexCache::nodeAt): Ditto. Also added a code to set the length cache when
we've reached the end of the list. This should be a slight speed up on some cases.
* dom/Document.cpp:
(WebCore::Document::Document): Initializes a variable used by assertions.
(WebCore::Document::unregisterNodeList): Added an early exit for when m_listsInvalidatedAtDocument
is empty since invalidateNodeListAndCollectionCaches swaps out the list.
(WebCore::Document::registerCollection): Removed the boolean hasIdNameMap since we now explicitly
call collectionCachedIdNameMap in HTMLCollection.
(WebCore::Document::unregisterCollection): Ditto. Exit early if m_collectionsInvalidatedAtDocument
is empty since invalidateNodeListAndCollectionCaches swaps out the list.
* dom/Document.h:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::invalidateCache): Unregister the node list with document if we had caches.
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
(WebCore::LiveNodeList::~LiveNodeList): Ditto.
(WebCore::LiveNodeList::invalidateCache): Pass around document. This is necessary since document()
had already moved to the new document inside NodeListsNodeData::invalidateCaches.
(WebCore::LiveNodeList::willValidateIndexCache): Added. Registers itself with document.
* dom/Node.cpp:
(WebCore::Document::invalidateNodeListAndCollectionCaches): Swap the lists since invalidateCache
tries to unregister node lists and HTML collections with document. Since this is the only case in
which node lists and HTML collections being removed may not be in the lists in unregisterNodeList
and unregisterCollection, assert this condition via m_inInvalidateNodeListAndCollectionCaches.
(WebCore::NodeListsNodeData::invalidateCaches):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument): Unregister node lists and HTML collections from old
document via invalidateCache. We need to explicitly pass in oldDocument here since owner node's
document had already been changed to newDocument at this point. Since we're invalidating caches,
there is no need to register node lists and HTML collections with newDocument.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection): Unregister the node list with document if we had caches.
(WebCore::HTMLCollection::invalidateCache): Ditto.
(WebCore::HTMLCollection::invalidateNamedElementCache):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::invalidateCache): Pass around document as done in LiveNodeList.
(WebCore::HTMLCollection::willValidateIndexCache): Ditto.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::invalidateCache): Ditto.
* html/HTMLFormControlsCollection.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::invalidateSelectedItems): Ditto.
(WebCore::HTMLSelectElement::setRecalcListItems): Ditto.
2014-03-05 Jon Lee <jonlee@apple.com>
Fix linker error after r165087
https://bugs.webkit.org/show_bug.cgi?id=129730
Reviewed by Csaba Osztrogonác.
* WebCore.exp.in: Remove undefined symbol __ZN7WebCore32WebVideoFullscreenChangeObserverD2Ev.
2014-03-04 Zalan Bujtas <zalan@apple.com>
Enable device pixel repaint rect tracking.
https://bugs.webkit.org/show_bug.cgi?id=129712
Reviewed by Simon Fraser.
Tracked repaint rects are device pixel snapped now to support hiDPI test cases.
Test: fast/repaint/hidpi-device-pixel-based-repaint-rect-tracking.html
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::addTrackedRepaintRect):
(WebCore::FrameView::trackedRepaintRectsAsText): Print them as LayoutUnits to get
trailing zeros cut off.
* page/FrameView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplay):
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
https://bugs.webkit.org/show_bug.cgi?id=129724
Reviewed by Sam Weinig.
Call setScrollPositionWithoutContentEdgeConstraints() from
ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
layers are not clamped during rubber-banding.
This requires making setScrollPositionWithoutContentEdgeConstraints()
a pure virtual function on the base class.
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTreeScrollingNode.h:
* page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
2014-03-04 Jeremy Jones <jeremyj@apple.com>
WebVideoFullscreen, should make the hand off of the video layer explicit.
https://bugs.webkit.org/show_bug.cgi?id=128844
Reviewed by Simon Fraser.
This change introduces a more explicit hand-off of the video layer.
This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
WebVideoFullscreenModel <-> WebVideoFullscreenInterface
enterFullScreen(*) ->
<- borrowVideoLayer
willLendVideoLayer ->
didLendVideoLayer ->
<- didEnterFullscreen
...
<- requestExitFullscreen
exitFullscreen ->
<- returnVideoLayer
<- didExitFullscreen
(*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.
* WebCore.exp.in:
Export new functions in WebVideoFullscreenInterfaceAVKit, WebVideoFullscreenModelMediaElement, etc.
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
Add WebVideoFullscreenControllerChangeObserver to forward fullscreen callbacks to WebVideoFullscreenController
(WebVideoFullscreenControllerChangeObserver::setTarget):
Sets obj-c target of fullscreen change callbacks.
(-[WebVideoFullscreenController init]):
Point _changeObserver's target at self.
(-[WebVideoFullscreenController dealloc]):
Clear _changeObserver's target.
(-[WebVideoFullscreenController enterFullscreen:]):
Retain self to prevent dealloc during animation or while fullscreen.
Connect _interface to _changeObserver.
(-[WebVideoFullscreenController exitFullscreen]):
Remove use of completion move cleanup to -didExitFullscreen.
(-[WebVideoFullscreenController didEnterFullscreen]):
Nothing to see here.
(-[WebVideoFullscreenController didExitFullscreen]):
Move clean up code that was in a completion to here.
* platform/ios/WebVideoFullscreenInterface.h:
Add delarations for more explicit hand-off of video layer.
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
Add WebVideoFullscreenChangeObserver to notify when fullscreen animations complete.
Add declarations for more explicit hand-off of video layer.
Add WebAVPlayerLayer now always wraps the m_videoLayer to prevent default behavior
of AVPlayerLayer.
(WebCore::WebVideoFullscreenChangeObserver::~WebVideoFullscreenChangeObserver):
Add empty virtual destructor.
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
Include AVKit headers instead of declaring everything locally.
AVPlayerLayer protocol renamed to AVVideoLayer per AVKit.
(-[WebAVPlayerController dealloc]):
Don't refer to self.
(-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
Pause before requesting exit fullscreen.
(-[WebAVPlayerLayer setPlayerController:]):
This is required by AVVideoLayer, but we don't need it.
(WebVideoFullscreenInterfaceAVKit::playerController):
White space.
(WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver):
Set observer to forward fullscreen changes to.
(WebVideoFullscreenInterfaceAVKit::enterFullscreen):
Use more explicit video layer hand-off.
(WebVideoFullscreenInterfaceAVKit::doEnterFullscreen):
Move enterFullscreen logic here.
AVPlayerViewController now takes the video layer at init time.
Always provide a video layer wrapped in a WebAVPlayerLayer.
(WebVideoFullscreenInterfaceAVKit::willLendVideoLayer):
Use more explicit video layer hand-off.
(WebVideoFullscreenInterfaceAVKit::didLendVideoLayer):
Use more explicit video layer hand-off.
(WebVideoFullscreenInterfaceAVKit::exitFullscreen):
Use more explicit video layer hand-off.
* platform/ios/WebVideoFullscreenModel.h:
Add functions for more explicit video layer hand-off.
* platform/ios/WebVideoFullscreenModelMediaElement.h:
Mark virtual functions as virtual.
Add changes for WebVideoFullscreenModel.
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
Use more explicit video layer hand-off.
(WebVideoFullscreenModelMediaElement::setMediaElement):
Don't push the video layer. Wait for a request for it.
(WebVideoFullscreenModelMediaElement::handleEvent):
Make sure m_videoFullscreenInterface is valid.
(WebVideoFullscreenModelMediaElement::borrowVideoLayer):
Use more explicit video layer hand-off.
Lend videoLayer in request to a request to borrow the videoLayer.
Make sure to retain the video layer before it is removed from the layer tree.
(WebVideoFullscreenModelMediaElement::returnVideoLayer):
Use more explicit video layer hand-off.
(WebVideoFullscreenModelMediaElement::requestExitFullscreen):
Don't clear the mediaElement reference until completely exited from fullscreen.
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Get position:fixed working slightly better on iOS
https://bugs.webkit.org/show_bug.cgi?id=129714
Reviewed by Benjamin Poulain.
Send the scroll position as a FloatPoint, rather than an IntPoint.
* WebCore.exp.in:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
* page/scrolling/ScrollingTree.h:
2014-03-04 Alex Christensen <achristensen@webkit.org>
Fixed Windows build without MEDIA_CONTROLS_SCRIPT enabled.
https://bugs.webkit.org/show_bug.cgi?id=129701
Reviewed by Jer Noble.
* WebCore.vcxproj/WebCore.vcxproj:
* DerivedSources.cpp:
Moved UserAgentScriptsData.cpp to DerivedSources.cpp to only be built if MEDIA_CONTROLS_SCRIPT is enabled.
* DerivedSources.make:
Only generate UserAgentScripts.cpp/h when USER_AGENT_SCRIPTS is non-empty.
* rendering/RenderThemeWin.cpp:
Only include UserAgentScripts.h when MEDIA_CONTROLS_SCRIPT is enabled.
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Allow iOS DumpRenderTree crashes to show application-specific information
https://bugs.webkit.org/show_bug.cgi?id=129705
Reviewed by David Kilzer.
Make the WKSI function SetCrashReportApplicationSpecificInformation available
in iOS simulator builds.
* WebCore.exp.in:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
2014-03-04 Andreas Kling <akling@apple.com>
Spam static branch prediction hints on JS bindings.
<https://webkit.org/b/129703>
Add UNLIKELY hints to all !castedThis and exec->hadException() paths
in the JS bindings since they are almost always going to get skipped.
Reviewed by Geoff Garen.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
(GenerateParametersCheck):
(GenerateImplementationFunctionCall):
(GenerateConstructorDefinition):
2014-03-04 Adenilson Cavalcanti <cavalcantii@gmail.com>
Remove unused StdDeviation from Gaussian Blur effect
https://bugs.webkit.org/show_bug.cgi?id=129693
Reviewed by Simon Fraser.
No new tests, no change on behavior.
* platform/graphics/filters/FEGaussianBlur.cpp:
* platform/graphics/filters/FEGaussianBlur.h:
2014-03-04 Andreas Kling <akling@apple.com>
Add a Document::updateStyleIfNeededForNode(Node&).
<https://webkit.org/b/129689>
Generalize the mechanism that computed style uses to avoid doing full
style updates when the node we're interested in isn't actually dirty.
Reviewed by Antti Koivisto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* dom/Document.cpp:
(WebCore::nodeOrItsAncestorNeedsStyleRecalc):
(WebCore::Document::updateStyleIfNeededForNode):
* dom/Document.h:
* editing/htmlediting.cpp:
(WebCore::isEditablePosition):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
2014-03-04 Mark Hahnenberg <mhahnenberg@apple.com>
Merge API shims and JSLock
https://bugs.webkit.org/show_bug.cgi?id=129650
Reviewed by Mark Lam.
No new tests.
JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason
to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.
* bindings/js/DOMRequestState.h:
(WebCore::DOMRequestState::Scope::Scope):
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):
2014-03-04 Beth Dakin <bdakin@apple.com>
REGRESSION: Overlay scrollbars that have grown are sometimes askew in the track
https://bugs.webkit.org/show_bug.cgi?id=129691
-and corresponding-
<rdar://problem/15666846>
Reviewed by Simon Fraser.
This regression started happening after we adopted the setPresentationValue
ScrollbarPainter API which allows us to update the position of the scrollbar knob
from our secondary scrolling thread. The bug occurs when the scrollbar grows while
it still thinks it is in presentation-value mode. Whenever the scrollbar grows, it
should be in non-presentation value mode.
If the wheel event has ended or been cancelled, we can switch out of presentation
value mode.
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
Sometimes we will grow the scrollbar before we have received a wheel event with
the end or cancelled phase, and so automatically switch out of presentation-value
mode whenever we start one of these animations.
* platform/mac/ScrollAnimatorMac.mm:
(-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):
2014-03-04 Zan Dobersek <zdobersek@igalia.com>
Move Source/WebCore/html/track/ code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129666
Reviewed by Eric Carlson.
Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/track/ with std::unique_ptr.
* html/track/AudioTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):
* html/track/InbandWebVTTTextTrack.h:
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::loadTimerFired):
(WebCore::LoadableTextTrack::newCuesAvailable):
(WebCore::LoadableTextTrack::cueLoadingCompleted):
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/LoadableTextTrack.h:
* html/track/TextTrack.h:
* html/track/TextTrackCue.h:
* html/track/TextTrackRegion.h:
* html/track/VTTCue.cpp:
(WebCore::VTTCue::createWebVTTNodeTree):
(WebCore::VTTCue::markFutureAndPastNodes):
* html/track/VTTCue.h:
* html/track/VideoTrack.h:
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::WebVTTParser):
* html/track/WebVTTParser.h:
* html/track/WebVTTTokenizer.h:
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::processNewCueData):
* loader/TextTrackLoader.h:
2014-03-04 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make border-radius painting device pixel aware.
https://bugs.webkit.org/show_bug.cgi?id=129558
Reviewed by Simon Fraser.
Snap rounded rects to device pixels right before passing them to GraphicsContext.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::clipRoundedInnerRect):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::paintBorder):
* rendering/RenderBoxModelObject.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::paint):
2014-03-04 Simon Fraser <simon.fraser@apple.com>
Crashes and assertions running iOS compositing tests
https://bugs.webkit.org/show_bug.cgi?id=129688
Reviewed by Dean Jackson.
When a layer is no longer composited, we need to unregister it
from the scrolling coordinator, and remove it from m_scrollCoordinatedLayers.
Tested by compositing tests on iOS.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateBacking):
2014-03-04 Antti Koivisto <antti@apple.com>
Update bindings test results after r165046.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_set_reflected_string_attr):
(webkit_dom_test_obj_set_reflected_url_attr):
(webkit_dom_test_obj_set_reflected_custom_url_attr):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::setJSTestObjReflectedStringAttr):
(WebCore::setJSTestObjReflectedURLAttr):
(WebCore::setJSTestObjReflectedCustomURLAttr):
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj setReflectedStringAttr:]):
(-[DOMTestObj setReflectedURLAttr:]):
(-[DOMTestObj setReflectedCustomURLAttr:]):
2014-03-04 Martin Robinson <mrobinson@igalia.com>
[GTK] Simplify the GObject DOM bindings API break check into one step
https://bugs.webkit.org/show_bug.cgi?id=129571
Reviewed by Carlos Garcia Campos.
* bindings/gobject/GNUmakefile.am: We no longer generate the webkitdom.symbols file in the
DerivedSources directory. All the logic is handled internally in the script now.
* bindings/scripts/gobject-run-api-break-test: Removed.
2014-03-04 Zalan Bujtas <zalan@apple.com>
Build fix for iOS.
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::addRoundedBorderClip):
(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
2014-03-04 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Make GraphicsLayer::fillRect FloatRoundedRect based and cleanup dependencies.
https://bugs.webkit.org/show_bug.cgi?id=129557
Reviewed by Simon Fraser.
This is the preparation for snapping rounded rects to device pixel position. It enables
device pixel aware border-radius painting.
No change in functionality.
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintMediaSliderThumb):
* platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::FloatRoundedRect):
(WebCore::FloatRoundedRect::isRenderable):
* platform/graphics/FloatRoundedRect.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::clipRoundedRect):
(WebCore::GraphicsContext::clipOutRoundedRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/GraphicsContext.h:
* platform/graphics/Path.cpp:
(WebCore::Path::addRoundedRect):
* platform/graphics/Path.h:
* platform/graphics/RoundedRect.cpp:
(WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
* platform/graphics/RoundedRect.h:
* platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::drawRectShadow):
(WebCore::ShadowBlur::drawInsetShadow):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
* platform/graphics/ShadowBlur.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::borderRadiiFromStyle):
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaSliderThumb):
(WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
* platform/win/DragImageWin.cpp:
(WebCore::createDragImageForLink):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::pushContentsClip):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::clipRoundedInnerRect):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
(WebCore::RenderBoxModelObject::paintBoxShadow):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
* rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintTextFieldDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::paintProgressBar):
(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMenuListButtonGradients):
(WebCore::RenderThemeMac::paintSliderTrack):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintMenuListButtonGradients):
(WebCore::RenderThemeSafari::paintSliderTrack):
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::buildDisplayPaths):
* rendering/style/BasicShapes.cpp:
(WebCore::BasicShapeInset::path):
2014-03-04 Andreas Kling <akling@apple.com>
Micro-optimize Strings in JS bindings.
<https://webkit.org/b/129673>
Tweaked for new jsStringWithWeakOwner signature. This patch removes
36 bytes of code from every wrapper getter that returns a DOMString.
Reviewed by Ryosuke Niwa.
* bindings/js/JSDOMBinding.h:
(WebCore::jsStringWithCache):
2014-03-03 David Kilzer <ddkilzer@apple.com>
SVGPropertyTearOffs should detachChildren before deleting its value.
<http://webkit.org/b/129618>
<rdar://problem/15661617>
Reviewed by Maciej Stachowiak.
Merged from Blink (patch by kouhei@chromium.org):
https://src.chromium.org/viewvc/blink?revision=158563&view=revision
http://crbug.com/296276
Test: svg/transforms/svg-matrix-tearoff-crash.html
NOTE: The test does not reproduce a crash on WebKit using
JavaScriptCore.
* svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::setValue):
(WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):
- Call detachChildren() if m_value is a copy. The original
Blink patch did not modify the destructor code path, although
that seems obvious via code inspection.
2014-03-04 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Incorrect repaint rect cuts off content's right edge after move.
https://bugs.webkit.org/show_bug.cgi?id=129652
Reviewed by Simon Fraser.
When repaint rect is adjusted in order to take the distance from renderer into account,
the accumulated fraction value need to be added too. This is always a positive value.
Test: fast/borders/hidpi-border-clipping-right-after-move.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
2014-03-04 Ryuan Choi <ryuan.choi@samsung.com>
Remove unused member variable of NetworkInfoController
https://bugs.webkit.org/show_bug.cgi?id=129674
Reviewed by Gyuyoung Kim.
* Modules/networkinfo/NetworkInfoController.cpp:
(WebCore::NetworkInfoController::NetworkInfoController):
(WebCore::NetworkInfoController::create):
(WebCore::provideNetworkInfoTo):
* Modules/networkinfo/NetworkInfoController.h: Removed m_page which is not really used.
2014-02-07 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Percentages of indefinite sizes should compute to auto
https://bugs.webkit.org/show_bug.cgi?id=128173
Reviewed by Darin Adler.
We should treat percentages of indefinite sizes as auto as
mandated by the spec. Otherwise we would end up calculating a
percentage of -1, the value we use to represent infinite.
Added some test cases to the current tests.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::gridTrackSize):
* rendering/style/GridTrackSize.h:
(WebCore::GridTrackSize::isPercentage):
2014-03-04 Ryosuke Niwa <rniwa@webkit.org>
Don't synchronize attributes in reflect setters when we don't need to
https://bugs.webkit.org/show_bug.cgi?id=129662
Reviewed by Andreas Kling.
The vast majority of attributes don't need synchronization. Avoid calling synchronizeAttribute in setters
for those content attributes generated by "Reflect" keyword in IDL.
* bindings/scripts/CodeGenerator.pm:
(SetterExpression):
* dom/Element.cpp:
(WebCore::Element::setAttributeWithoutSynchronization): Added.
* dom/Element.h:
2014-03-04 Andreas Kling <akling@apple.com>
Remove Document::idAttributeName().
<https://webkit.org/b/129663>
Reviewed by Ryosuke "DYEB" Niwa.
This abstraction is not actually used and causes unnecessary indirection
in some pretty hot code paths.
Replace it with hard-coded HTMLNames::idAttr instead which is a compile
time constant pointer. We can revisit this in the future if we wish to
implement support for custom id attributes.
* dom/Attr.cpp:
(WebCore::Attr::isId):
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::attributeChanged):
(WebCore::Element::willModifyAttribute):
* dom/Element.h:
(WebCore::Element::getIdAttribute):
(WebCore::Element::getNameAttribute):
(WebCore::Element::setIdAttribute):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseAttribute):
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
(WebCore::SVGElement::isKnownAttribute):
(WebCore::SVGElement::svgAttributeChanged):
2014-03-04 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r164856): Use after free in WebCore::QualifiedName::operator== / WebCore::StyledElement::attributeChanged
https://bugs.webkit.org/show_bug.cgi?id=129550
Reviewed by Andreas Kling.
We can't store a reference to QualifiedName here because ensureUniqueElementData could delete QualifiedName inside Attribute.
Test: fast/dom/uniquing-attributes-via-setAttribute.html
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
2014-03-04 Hyowon Kim <hw1008.kim@samsung.com>
Move EvasGLContext and EvasGLSurface files into the efl common directory.
https://bugs.webkit.org/show_bug.cgi?id=129603
Reviewed by Gyuyoung Kim.
EFL port will use EvasGLContext and EvasGLSurface files in both WK1 and WK2.
No new tests, just refactorings.
* PlatformEfl.cmake:
* platform/graphics/efl/EvasGLContext.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.cpp.
(WebKit::EvasGLContext::EvasGLContext):
(WebKit::EvasGLContext::~EvasGLContext):
* platform/graphics/efl/EvasGLContext.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.h.
(WebKit::EvasGLContext::create):
(WebKit::EvasGLContext::context):
* platform/graphics/efl/EvasGLSurface.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.cpp.
(WebKit::EvasGLSurface::EvasGLSurface):
(WebKit::EvasGLSurface::~EvasGLSurface):
* platform/graphics/efl/EvasGLSurface.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.h.
(WebKit::EvasGLSurface::create):
(WebKit::EvasGLSurface::surface):
2014-03-03 Martin Robinson <mrobinson@igalia.com>
Fix the GTK+ CMake build
* PlatformGTK.cmake: Add a missing file to the source list.
2014-03-03 Sanghyup Lee <sh53.lee@samsung.com>
:active style is not cleared when its display property is set to none before mouse released.
https://bugs.webkit.org/show_bug.cgi?id=129465
Reviewed by Antonio Gomes.
Source/WebCore:
We currently clearing the :active style when element has a renderer.
This patch makes elements clear its active style regardless of renderer.
* dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
LayoutTests:
* fast/css/active-display-none-expected.txt: Added.
* fast/css/active-display-none.html: Added.
2014-03-03 Andreas Kling <akling@apple.com>
Remove 2 unnecessary includes from JSDOMBinding.h
<https://webkit.org/b/129619>
Reviewed by Antti Koivisto.
* bindings/js/JSDOMBinding.h:
2014-03-03 Myles C. Maxfield <mmaxfield@apple.com>
GraphicsContext::drawLineForText needs to be exported from WebCore.dylib for iOS builds
https://bugs.webkit.org/show_bug.cgi?id=129647
Reviewed by NOBODY (This is a build fix).
Fixing after r165025 and r165016.
No new tests as this is a build fix.
* WebCore.exp.in:
2014-03-03 Jer Noble <jer.noble@apple.com>
[iOS] Start playback button misplaced
https://bugs.webkit.org/show_bug.cgi?id=129628
Reviewed by Simon Fraser.
On YouTube embeds, while the video is loading it is placed into the DOM with a 0x0 size.
This causes the start playback button to be visible in the upper-left corner of the embed
area. The button wasn't visible previously (in plugin mode) because the plugin clipped its
drawing to its bounds, and so the <video> shadow should do the same.
* Modules/mediacontrols/mediaControlsiOS.css:
(::-webkit-media-controls):
2014-03-03 Enrica Casucci <enrica@apple.com>
Build fix for iOS simulator.
* WebCore.exp.in:
2014-03-03 Jeremy Jones <jeremyj@apple.com>
Forward application suspend resume notifications to the web process.
https://bugs.webkit.org/show_bug.cgi?id=129356
Reviewed by Eric Carlson.
* platform/audio/ios/MediaSessionManagerIOS.mm:
(-[WebMediaSessionHelper initWithCallback:]):
Observe UIApplicationDidBecomeActiveNotification,
WebUIApplicationDidBecomeActiveNotification,
WebUIApplicationWillEnterForegroundNotification, and
WebUIApplicationWillResignActiveNotification
(-[WebMediaSessionHelper applicationDidBecomeActive:]):
Resume session.
2014-03-03 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r165013.
http://trac.webkit.org/changeset/165013
https://bugs.webkit.org/show_bug.cgi?id=129646
New code is not thread safe, asserting on a worker test
(Requested by ap on #webkit).
* WebCore.exp.in:
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI):
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR):
* loader/DocumentLoader.cpp:
(WebCore::areAllLoadersPageCacheAcceptable):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.cpp:
(WebCore::CachedFont::CachedFont):
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
* loader/cache/CachedImage.h:
* loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::CachedRawResource):
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource):
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedSVGDocument.cpp:
(WebCore::CachedSVGDocument::CachedSVGDocument):
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
* loader/cache/CachedScript.h:
* loader/cache/CachedTextTrack.cpp:
(WebCore::CachedTextTrack::CachedTextTrack):
* loader/cache/CachedTextTrack.h:
* loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/cache/CachedXSLStyleSheet.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::add):
(WebCore::MemoryCache::revalidationSucceeded):
(WebCore::MemoryCache::resourceForURL):
(WebCore::MemoryCache::resourceForRequest):
(WebCore::MemoryCache::addImageToCache):
(WebCore::MemoryCache::removeImageFromCache):
(WebCore::MemoryCache::evict):
(WebCore::MemoryCache::removeResourcesWithOrigin):
(WebCore::MemoryCache::getOriginsWithCache):
(WebCore::MemoryCache::removeUrlFromCache):
(WebCore::MemoryCache::removeRequestFromCache):
(WebCore::MemoryCache::removeRequestFromCacheImpl):
(WebCore::MemoryCache::crossThreadRemoveRequestFromCache):
(WebCore::MemoryCache::getStatistics):
(WebCore::MemoryCache::setDisabled):
* loader/cache/MemoryCache.h:
* platform/CrossThreadCopier.cpp:
* platform/CrossThreadCopier.h:
* platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::updateSnapshot):
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
2014-03-03 Sam Weinig <sam@webkit.org>
Fix the iOS Simulator build.
* WebCore.exp.in:
2014-03-03 Myles C. Maxfield <mmaxfield@apple.com>
Space between double underlines does not scale with font size
https://bugs.webkit.org/show_bug.cgi?id=129521
Reviewed by Simon Fraser.
This patch moves the logic about how far to draw the second underline (when text-decoration-style: double
is specified) from InlineTextBox to GraphicsContext, because GraphicsContext is the authoritative source
about how thick underlines should be. The space between the two underlines is set to the thickness of
each of the underlines.
This patch also deletes some unused code in InlineTextBox that was never getting triggered, in addition
to unifying drawLineForText with drawLinesForText. This didn't have any performance impact in my testing.
Test: fast/css3-text/css3-text-decoration/text-decoration-style-double-space-scales.html
* platform/graphics/GraphicsContext.h: drawLineForText takes a boolean for if we should draw double
underlines.
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText):
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawLineForText):
* rendering/InlineTextBox.cpp: Use new boolean argument
(WebCore::drawSkipInkUnderline):
(WebCore::InlineTextBox::paintDecoration):
2014-02-28 Chris Fleizach <cfleizach@apple.com>
AX: Support IOS Accessibility in WK2
https://bugs.webkit.org/show_bug.cgi?id=129527
Reviewed by Sam Weinig.
Update the iOS wrapper so that it can convert points to screen space in WebKit2.
* accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
2014-03-03 Martin Hock <mhock@apple.com>
Add support for sessions to MemoryCache.
https://bugs.webkit.org/show_bug.cgi?id=127794
Reviewed by Sam Weinig.
* WebCore.exp.in:
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::replayXHR): Ditto.
* loader/DocumentLoader.cpp:
(WebCore::areAllLoadersPageCacheAcceptable): Ditto.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
* loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
* loader/cache/CachedCSSStyleSheet.h:
* loader/cache/CachedFont.cpp: Ditto.
(WebCore::CachedFont::CachedFont):
* loader/cache/CachedFont.h:
* loader/cache/CachedImage.cpp: Ditto.
(WebCore::CachedImage::CachedImage):
* loader/cache/CachedImage.h:
* loader/cache/CachedRawResource.cpp: Ditto.
(WebCore::CachedRawResource::CachedRawResource):
* loader/cache/CachedRawResource.h:
* loader/cache/CachedResource.cpp: Ditto.
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
* loader/cache/CachedResource.h:
(WebCore::CachedResource::sessionID):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::createResource): Constructors take sessionID.
(WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
(WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
(WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
(WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
* loader/cache/CachedResourceLoader.h:
* loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
(WebCore::CachedSVGDocument::CachedSVGDocument):
* loader/cache/CachedSVGDocument.h:
* loader/cache/CachedScript.cpp: Ditto.
(WebCore::CachedScript::CachedScript):
* loader/cache/CachedScript.h:
* loader/cache/CachedTextTrack.cpp: Ditto.
(WebCore::CachedTextTrack::CachedTextTrack):
* loader/cache/CachedTextTrack.h:
* loader/cache/CachedXSLStyleSheet.cpp: Ditto.
(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
* loader/cache/CachedXSLStyleSheet.h:
* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
(WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
(WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
(WebCore::MemoryCache::resourceForURL): Ditto.
(WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
(WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
(WebCore::MemoryCache::addImageToCache): Use default sessionID.
(WebCore::MemoryCache::removeImageFromCache): Ditto.
(WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
(WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::getOriginsWithCache): Ditto.
(WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
(WebCore::MemoryCache::removeRequestFromCache): Ditto.
(WebCore::MemoryCache::removeRequestFromCacheImpl): Ditto.
(WebCore::MemoryCache::removeRequestFromSessionCaches): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
(WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
(WebCore::MemoryCache::setDisabled): Ditto.
* loader/cache/MemoryCache.h: Create another level for cache.
* platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
(WebCore::SessionID>::copy):
* platform/CrossThreadCopier.h:
* platform/network/cf/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.
2014-03-03 Andreas Kling <akling@apple.com>
Remove unused DataView code from JSDOMBinding.h
<https://webkit.org/b/129616>
Reviewed by Antti Koivisto.
* bindings/js/JSDOMBinding.h:
2014-03-03 Simon Fraser <simon.fraser@apple.com>
Allow overflow-scroll to be one-finger scrolled until we hook up UIScrollViews
https://bugs.webkit.org/show_bug.cgi?id=129621
Reviewed by Benjamin Poulain.
Temporary change to allow overflow:scroll to be scrolled in iOS WK2.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hasAcceleratedTouchScrolling):
2014-03-03 Antti Koivisto <antti@apple.com>
Find results on simple lines are not marked correctly
https://bugs.webkit.org/show_bug.cgi?id=129586
Reviewed by Andreas Kling.
Tests: editing/text-iterator/count-mark-lineboxes.html
editing/text-iterator/count-mark-simple-lines.html
TextIterator operating on simple lines failed to take the end of the range into account.
This also causes performance issues on long documents as range traversals would miss the end
node and end up going through the entire document.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
Stop when hitting the range end on simple text nodes.
(WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
Use hasRenderedText test instead of linebox-only firstTextBox.
* testing/Internals.cpp:
(WebCore::Internals::countMatchesForText):
* testing/Internals.h:
* testing/Internals.idl:
Add testing interface for counting and marking matches.
2014-03-03 Benjamin Poulain <benjamin@webkit.org>
SelectorQuery failing RightMostWithIdMatch are compiling their selectors for each execution
https://bugs.webkit.org/show_bug.cgi?id=129601
Reviewed by Andreas Kling.
This caused a regression after r164924 for documents in quirks mode. Since those always fail
selectorForIdLookup(), they ended up compiling the selector every time they were called.
* dom/SelectorQuery.cpp:
(WebCore::SelectorDataList::execute):
2014-03-01 Jer Noble <jer.noble@apple.com>
[Mac] Crash in MediaPlayer::rateChanged()
https://bugs.webkit.org/show_bug.cgi?id=129548
Reviewed by Darin Adler.
WTF::bind will automatically ref the parameters added to it. But MediaPlayerPrivate-
AVFoundation and -MediaSOurceAVFObjC are not RefCounted, so by the time the bound
function is called, the underlying objects may have been freed.
Replace or augment callOnMainThread arguments with lambdas and weakPtrs so that
if the argument has been destroyed, its methods will not be called.
Make the MediaPlayerPrivateAVFoundation::Notification function type a std::function:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
(WebCore::MediaPlayerPrivateAVFoundation::Notification::function):
Make createWeakPtr() public so that it can be called from non-class methods:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr):
Use a weakPtr to abort callOnMainThread() if the object has been destroyed:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::CMTimebaseEffectiveRateChangedCallback):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
2014-02-28 Jer Noble <jer.noble@apple.com>
[MSE] YouTube videos fail to play
https://bugs.webkit.org/show_bug.cgi?id=129525
Reviewed by Darin Adler.
Test: media/media-source/media-source-fudge-factor.html
Add a very simple playability metric to SourceBuffer. Track the number of seconds buffered
and use that metric to determine whether the MediaSource has buffered enough data to play
through.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::currentTime): Added simple accessor.
(WebCore::MediaSource::monitorSourceBuffers): Replace the functor-based iterators with lambdas.
(WebCore::MediaSource::addSourceBuffer): Drive-by fix; only add new source buffers to the
activeSourceBuffers list if those buffers are actually active.
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Initialize new ivars.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Measure the number of seconds buffered.
(WebCore::SourceBuffer::monitorBufferingRate): Use a simple Exponential moving average to
track the buffering rate.
(WebCore::SourceBuffer::hasCurrentTime): Return true if the current time is within 1/24 s
of a buffered range.
(WebCore::SourceBuffer::hasFutureTime): Moved from MediaSource.
(WebCore::SourceBuffer::canPlayThrough): Return true if the buffering rate is > 1s per
second, or if the rate is sufficient to keep up over the remaining time.
* Modules/mediasource/SourceBuffer.h:
2014-03-03 Bear Travis <betravis@adobe.com>
[CSS Shapes] Serialize circle positions
https://bugs.webkit.org/show_bug.cgi?id=129404
Reviewed by Dirk Schulze.
Circle positions should always be present when serialized, and should
only have the 2 or 4-valued form. Keywords are converted to percentages
and simplified where possible. This patch adds some additional processing
that converts the parsed position into the serialized format, before
converting it to text. See http://dev.w3.org/csswg/css-shapes/#basic-shape-serialization.
Updated existing parsing tests.
* css/CSSBasicShapes.cpp:
(WebCore::serializePositionOffset): Convert a position offset to a serialized string.
The offset must be a pair, as generated by buildSerializablePositionOffset.
(WebCore::buildSerializablePositionOffset): Generates a keyword + offset pair for each
position offset. The keywords may later be dropped during serialization.
(WebCore::CSSBasicShapeCircle::cssText): Use the new serialization methods.
2014-03-03 Lorenzo Tilve <ltilve@igalia.com>
Optimize StylePropertiesSet::findPropertyIndex() to improve CSS properties performance
https://bugs.webkit.org/show_bug.cgi?id=129605
Reviewed by Andreas Kling.
Merged from Blink (patch by Mikhail Pozdnyakov):
https://src.chromium.org/viewvc/blink?view=revision&revision=167325
Avoid checking whether 'StylePropertiesSet' is mutable and accesing directly to its
data members to achieve performance improvements
Before the optimization applied:
mean: 3064.8337171934063 runs/s
median: 3097.5899379343855 runs/s
stdev: 66.89274074044187 runs/s
min: 2891.7479324362585 runs/s
max: 3113.288683440125 runs/s
After the optimization applied:
mean: 3343.8356114138105 runs/s
median: 3356.25682957446 runs/s
stdev: 36.297533087489036 runs/s
min: 3238.5468032264243 runs/s
max: 3368.664837531425 runs/s
Performance gain for the average value is approx. 9.1%, in the
range of the 10% - 8.2% for the min and max measured
values (Linux desktop x64).
* css/StyleProperties.cpp:
(WebCore::ImmutableStyleProperties::findPropertyIndex):
(WebCore::MutableStyleProperties::findPropertyIndex):
* css/StyleProperties.h:
(WebCore::toMutableStyleProperties):
(WebCore::toImmutableStyleProperties):
(WebCore::StyleProperties::findPropertyIndex):
2014-03-03 Brian Burg <bburg@apple.com>
Unreviewed build fix for Windows after r164986.
* WebCore.vcxproj/build-generated-files.sh: Export WebReplayScripts
so that the build system knows how to find CodeGeneratorReplayInputs.py.
2014-03-03 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Overset computation is incorrect in some cases
https://bugs.webkit.org/show_bug.cgi?id=129032
Reviewed by Mihnea Ovidenie.
This patch reworks the way overset is computed for regions and named flows.
1. Regions overflow no longer trigger an overset changed event. This is because
the overflow of a box is contained within the region range of the box. The content
edge should be considered the logical bottom position of the content inside the
flow thread.
2. The regions events logic was moved from RenderFlowThread to RenderNamedFlowThread
and from RenderRegion to RenderNamedFlowFragment (including the regionOverset property).
3. The overset value of the named flow is no longer stored in the named flow. It is
extracted from the overset of the last region in the chain.
4. The regions overset is not computed every time the flow thread is laid out which
should improve performance for flows with many regions. With the patch, each region
computes the overset value during its layout when the flow thread is in the overflow
or the final layout phase.
5. The overset changed event is dispatched only at the end of the layout of the named flows,
after all the region overset changes have been considered. This means that the overset
event can't be dispatched in the middle of the auto-height processing algorithm that
requires multiple layout passes for the flow threads.
However, the region layout update event dispatch timing was not changed, it is dispatched
every time the flow thread has a layout. This preserves the current behavior of the event.
Tests: The old tests were modified to take into account the change.
* dom/Element.cpp:
(WebCore::Element::webkitRegionOverset):
* dom/WebKitNamedFlow.cpp:
(WebCore::WebKitNamedFlow::overset):
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForRegions):
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeOverflow):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::layout):
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::layoutBlock):
(WebCore::RenderNamedFlowFragment::setRegionOversetState):
(WebCore::RenderNamedFlowFragment::regionOversetState):
(WebCore::RenderNamedFlowFragment::updateOversetState):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::computeOverflow):
(WebCore::RenderNamedFlowThread::layout):
(WebCore::RenderNamedFlowThread::dispatchNamedFlowEvents):
(WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded):
(WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded):
* rendering/RenderNamedFlowThread.h:
There's a new field called m_flowContentBottom that tracks the content bottom of the flow thread
after layout. This value is used to compute the overset value of the regions because it's not
affected by relative positioning or visual overflow such as shadows.
* rendering/RenderRegion.cpp:
* rendering/RenderRegion.h:
2014-03-03 Tomas Popela <tpopela@redhat.com>
[GTK] CodeGeneratorGObject.pm remove usage of undefined variable
https://bugs.webkit.org/show_bug.cgi?id=129602
Reviewed by Martin Robinson.
Remove usage of undefined variable hdrPropIncludes in CodeGeneratorGObject.pm
* bindings/scripts/CodeGeneratorGObject.pm:
(WriteData):
2014-03-03 Brian Burg <bburg@apple.com>
Web Replay: upstream input storage, capture/replay machinery, and inspector domain
https://bugs.webkit.org/show_bug.cgi?id=128782
Reviewed by Timothy Hatcher, Joseph Pecoraro, and Andreas Kling.
No new tests yet, as they rely on infrastructure tracked in https://webkit.org/b/129190.
Replayable executions are organized into ReplaySessions, which can
contain several ReplaySessionSegments that divide overall execution
at main frame navigation boundaries. NondeterministicInput subclasses
are stored in SegmentedInputStorage according to the input's InputQueue.
Capture and playback are controlled at the page granularity by the Page's
ReplayController. The controller knows how to create new segments, replay to
arbitrary positions in the ReplaySession, and track the active InputCursor.
The capturing and replaying input cursor subclasses encapsulate state for
storing new inputs and loading/dispatching saved inputs, respectively.
The ReplayAgent and associated inspector protocol domain is the friendly
public API for programmatically capturing and replaying sessions.
* DerivedSources.make: Add replay inputs code generation target. Add the
replay domain specification to the list of inspector domains.
* ForwardingHeaders/replay/EncodedValue.h: Added.
* WebCore.xcodeproj/project.pbxproj: Add many files, and export
`WebReplayScripts` environment variable to DerivedSources.make.
* inspector/InspectorController.cpp: Add the replay agent.
(WebCore::InspectorController::InspectorController):
* inspector/InspectorInstrumentation.cpp:
Add events for segment lifecycle events, and loading/unloading of sessions
and segments, and capture/replay progress events. The replay controller
also needs to know about detached and committed frames.
(WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::sessionCreatedImpl):
(WebCore::InspectorInstrumentation::sessionLoadedImpl):
(WebCore::InspectorInstrumentation::sessionModifiedImpl):
(WebCore::InspectorInstrumentation::segmentCreatedImpl):
(WebCore::InspectorInstrumentation::segmentCompletedImpl):
(WebCore::InspectorInstrumentation::segmentLoadedImpl):
(WebCore::InspectorInstrumentation::segmentUnloadedImpl):
(WebCore::InspectorInstrumentation::captureStartedImpl):
(WebCore::InspectorInstrumentation::captureStoppedImpl):
(WebCore::InspectorInstrumentation::playbackStartedImpl):
(WebCore::InspectorInstrumentation::playbackPausedImpl):
(WebCore::InspectorInstrumentation::playbackHitPositionImpl):
(WebCore::InspectorInstrumentation::replayAgentEnabled):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::replayAgentEnabled):
(WebCore::InspectorInstrumentation::sessionCreated):
(WebCore::InspectorInstrumentation::sessionLoaded):
(WebCore::InspectorInstrumentation::sessionModified):
(WebCore::InspectorInstrumentation::segmentCreated):
(WebCore::InspectorInstrumentation::segmentCompleted):
(WebCore::InspectorInstrumentation::segmentLoaded):
(WebCore::InspectorInstrumentation::segmentUnloaded):
(WebCore::InspectorInstrumentation::captureStarted):
(WebCore::InspectorInstrumentation::captureStopped):
(WebCore::InspectorInstrumentation::playbackStarted):
(WebCore::InspectorInstrumentation::playbackPaused):
(WebCore::InspectorInstrumentation::playbackHitPosition):
* inspector/InspectorReplayAgent.cpp: Added.
(WebCore::buildInspectorObjectForPosition):
(WebCore::buildInspectorObjectForInput):
(WebCore::buildInspectorObjectForSession):
(WebCore::SerializeInputToJSONFunctor::SerializeInputToJSONFunctor):
(WebCore::SerializeInputToJSONFunctor::~SerializeInputToJSONFunctor):
(WebCore::SerializeInputToJSONFunctor::operator()):
(WebCore::SerializeInputToJSONFunctor::returnValue):
(WebCore::buildInspectorObjectForSegment):
(WebCore::InspectorReplayAgent::InspectorReplayAgent):
(WebCore::InspectorReplayAgent::~InspectorReplayAgent):
(WebCore::InspectorReplayAgent::sessionState):
(WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
(WebCore::InspectorReplayAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorReplayAgent::frameNavigated):
(WebCore::InspectorReplayAgent::frameDetached):
(WebCore::InspectorReplayAgent::sessionCreated):
(WebCore::InspectorReplayAgent::sessionModified):
(WebCore::InspectorReplayAgent::sessionLoaded):
(WebCore::InspectorReplayAgent::segmentCreated):
(WebCore::InspectorReplayAgent::segmentCompleted):
(WebCore::InspectorReplayAgent::segmentLoaded):
(WebCore::InspectorReplayAgent::segmentUnloaded):
(WebCore::InspectorReplayAgent::captureStarted):
(WebCore::InspectorReplayAgent::captureStopped):
(WebCore::InspectorReplayAgent::playbackStarted):
(WebCore::InspectorReplayAgent::playbackPaused):
(WebCore::InspectorReplayAgent::playbackHitPosition):
(WebCore::InspectorReplayAgent::startCapturing):
(WebCore::InspectorReplayAgent::stopCapturing):
(WebCore::InspectorReplayAgent::replayToPosition):
(WebCore::InspectorReplayAgent::replayToCompletion):
(WebCore::InspectorReplayAgent::pausePlayback):
(WebCore::InspectorReplayAgent::cancelPlayback):
(WebCore::InspectorReplayAgent::switchSession):
(WebCore::InspectorReplayAgent::insertSessionSegment):
(WebCore::InspectorReplayAgent::removeSessionSegment):
Provide a public API for modifying sessions. This is the backend support
for user editing of replay sessions to add/remove specific segments.
(WebCore::InspectorReplayAgent::findSession):
(WebCore::InspectorReplayAgent::findSegment):
(WebCore::InspectorReplayAgent::getAvailableSessions):
(WebCore::InspectorReplayAgent::getSerializedSession):
(WebCore::InspectorReplayAgent::getSerializedSegment):
Most of the replay protocol domain speaks in terms of sesssion and
segment identifiers. These functions return the actual data associated
with these identifiers.
* inspector/InspectorReplayAgent.h: Added.
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorReplayAgent): Added.
(WebCore::InstrumentingAgents::setInspectorReplayAgent): Added.
* inspector/protocol/Replay.json: Added.
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::replayController): Added.
* platform/Logging.h: Add WebReplay logging channel.
* replay/AllReplayInputs.h: Added. Simplifies importing all input definitions.
* replay/CapturingInputCursor.cpp: Added.
(WebCore::CapturingInputCursor::CapturingInputCursor):
(WebCore::CapturingInputCursor::~CapturingInputCursor):
(WebCore::CapturingInputCursor::create):
(WebCore::CapturingInputCursor::storeInput):
(WebCore::CapturingInputCursor::loadInput):
(WebCore::CapturingInputCursor::uncheckedLoadInput):
* replay/CapturingInputCursor.h: Added.
* replay/EventLoopInput.h:
(WebCore::EventLoopInputBase::EventLoopInputBase):
(WebCore::EventLoopInputBase::timestamp):
(WebCore::EventLoopInputBase::setTimestamp): Support deserialization.
* replay/EventLoopInputDispatcher.cpp: Added. This class encapsulates the timers
and measurements used to dispatch event loop inputs during replay.
(WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
(WebCore::EventLoopInputDispatcher::run):
(WebCore::EventLoopInputDispatcher::pause):
(WebCore::EventLoopInputDispatcher::timerFired):
(WebCore::EventLoopInputDispatcher::dispatchInputSoon):
(WebCore::EventLoopInputDispatcher::dispatchInput):
* replay/EventLoopInputDispatcher.h: Added.
(WebCore::EventLoopInputDispatcherClient::EventLoopInputDispatcherClient):
(WebCore::EventLoopInputDispatcherClient::~EventLoopInputDispatcherClient):
* replay/FunctorInputCursor.h: Added.
(WebCore::FunctorInputCursor::~FunctorInputCursor):
(WebCore::FunctorInputCursor::forEachInputInQueue):
(WebCore::FunctorInputCursor::FunctorInputCursor):
(WebCore::FunctorInputCursor::storeInput):
(WebCore::FunctorInputCursor::loadInput):
(WebCore::FunctorInputCursor::uncheckedLoadInput):
* replay/ReplayController.cpp: Added.
(WebCore::ReplayController::ReplayController):
(WebCore::ReplayController::switchSession):
(WebCore::ReplayController::createSegment):
(WebCore::ReplayController::completeSegment):
(WebCore::ReplayController::loadSegment):
(WebCore::ReplayController::unloadSegment):
(WebCore::ReplayController::startCapturing):
(WebCore::ReplayController::stopCapturing):
(WebCore::ReplayController::startPlayback):
(WebCore::ReplayController::pausePlayback):
(WebCore::ReplayController::cancelPlayback):
(WebCore::ReplayController::replayToPosition):
(WebCore::ReplayController::frameDetached):
(WebCore::ReplayController::frameNavigated):
(WebCore::ReplayController::loadedSession):
(WebCore::ReplayController::loadedSegment):
(WebCore::ReplayController::activeInputCursor):
(WebCore::ReplayController::dispatcher):
(WebCore::ReplayController::willDispatchInput):
(WebCore::ReplayController::didDispatchInput):
(WebCore::ReplayController::didDispatchFinalInput):
* replay/ReplayController.h: Added.
(WebCore::ReplayPosition::ReplayPosition):
(WebCore::ReplayPosition::operator<):
(WebCore::ReplayPosition::operator==):
* replay/ReplayInputCreationMethods.cpp: Added.
Static factory implementations for inputs belong here.
(WebCore::InitialNavigation::createFromPage):
* replay/ReplayInputDispatchMethods.cpp: Added.
All dispatch() implementations for generated replay inputs belong here.
(WebCore::BeginSegmentSentinel::dispatch):
(WebCore::EndSegmentSentinel::dispatch):
(WebCore::InitialNavigation::dispatch):
* replay/ReplayInputTypes.cpp:
(WebCore::ReplayInputTypes::ReplayInputTypes):
* replay/ReplayInputTypes.h: Define strings for WebCore inputs.
* replay/ReplaySession.cpp: Added.
(WebCore::ReplaySession::create):
(WebCore::ReplaySession::ReplaySession):
(WebCore::ReplaySession::~ReplaySession):
(WebCore::ReplaySession::appendSegment):
(WebCore::ReplaySession::insertSegment):
(WebCore::ReplaySession::removeSegment):
* replay/ReplaySession.h: Added.
(WebCore::ReplaySession::identifier):
(WebCore::ReplaySession::timestamp):
(WebCore::ReplaySession::size):
(WebCore::ReplaySession::at):
(WebCore::ReplaySession::begin):
(WebCore::ReplaySession::end):
* replay/ReplaySessionSegment.cpp: Added.
(WebCore::ReplaySessionSegment::create):
(WebCore::ReplaySessionSegment::ReplaySessionSegment):
(WebCore::ReplaySessionSegment::~ReplaySessionSegment):
(WebCore::ReplaySessionSegment::createCapturingCursor):
(WebCore::ReplaySessionSegment::createReplayingCursor):
(WebCore::ReplaySessionSegment::createFunctorCursor):
* replay/ReplaySessionSegment.h: Added.
(WebCore::ReplaySessionSegment::identifier):
(WebCore::ReplaySessionSegment::timestamp):
* replay/ReplayingInputCursor.cpp: Added.
(WebCore::ReplayingInputCursor::ReplayingInputCursor):
(WebCore::ReplayingInputCursor::~ReplayingInputCursor):
(WebCore::ReplayingInputCursor::create):
(WebCore::ReplayingInputCursor::storeInput):
(WebCore::ReplayingInputCursor::loadInput):
(WebCore::ReplayingInputCursor::uncheckedLoadInput):
* replay/ReplayingInputCursor.h: Added.
* replay/SegmentedInputStorage.cpp: Added.
(WebCore::queueTypeToLogPrefix):
(WebCore::jsonStringForInput):
(WebCore::offsetForInputQueue):
(WebCore::SegmentedInputStorage::SegmentedInputStorage):
(WebCore::SegmentedInputStorage::~SegmentedInputStorage):
(WebCore::SegmentedInputStorage::load):
(WebCore::SegmentedInputStorage::store):
(WebCore::SegmentedInputStorage::queueSize):
* replay/SegmentedInputStorage.h: Added.
* replay/SerializationMethods.cpp: Added.
Specializations of EncodingTraits for WebCore types belong here.
(JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
(JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
(JSC::EncodingTraits<SecurityOrigin>::encodeValue):
(JSC::EncodingTraits<SecurityOrigin>::decodeValue):
(JSC::EncodingTraits<URL>::encodeValue):
(JSC::EncodingTraits<URL>::decodeValue):
* replay/SerializationMethods.h: Added.
* replay/WebInputs.json: Added.
In this inital patch, we define BeginSegmentSentinel,
EndSegmentSentinel, and InitialNavigation inputs.
2014-03-03 Antoine Quint <graouts@webkit.org>
Respect SVG fragment identifiers in <img> src attribute
https://bugs.webkit.org/show_bug.cgi?id=129387
Reviewed by Dirk Schulze.
Following Dirk Schulze's suggestion, we set the URL on the SVGImage itself and handle the URL's
fragment identifier at draw time in the SVGImage itself, which will provide a sounder base for
handling of fragment identifier in SVG resource URLs in CSS properties, and should also deal
with the crasher reported in http://webkit.org/b/129498 since there is a guaranteed Frame at the
time we call SVGImage::draw().
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
* svg/graphics/SVGImageForContainer.h:
2014-03-03 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
Move function calls outside loop in dom
https://bugs.webkit.org/show_bug.cgi?id=126525
Reviewed by Csaba Osztrogonác.
Store the result of length() in a local variable and use it in each iteration.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::isXMLMIMEType):
* dom/ElementData.cpp:
(WebCore::UniqueElementData::UniqueElementData):
* dom/EventContext.cpp:
(WebCore::TouchEventContext::checkReachability):
2014-03-03 Tomas Popela <tpopela@redhat.com>
[GTK] webkit_dom_range_compare_boundary_points fails when 0 is passed as how parameter
https://bugs.webkit.org/show_bug.cgi?id=129145
Reviewed by Carlos Garcia Campos.
While generating GObject DOM API the generator should skip non pointer
types while generating the g_return_val_if_fail macro.
This will avoid the situation when Range.START_TO_START is defined as 0,
thus the webkit_dom_range_compare_boundary_points function will fail
everytime it is called with 0 as how value.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction):
2014-03-03 Jozsef Berta <jberta.u-szeged@partner.samsung.com>
[cmake] *Names.cpp file should be regenerated after touching StaticString.pm
https://bugs.webkit.org/show_bug.cgi?id=129031
Reviewed by Csaba Osztrogonác.
* CMakeLists.txt: Added make_names.pl dependencies: bindings/scripts/Hasher.pm and bindings/scripts/StaticString.pm
2014-03-03 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Multimedia controls captions icon needs its own metaphor
https://bugs.webkit.org/show_bug.cgi?id=129091
Reviewed by Martin Robinson.
As we got the new icon created, we used it with a fallback to the
old icon to keep run-time compatibility.
No new tests, current ones suffice.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
Replicated RenderThemeGtk::paintMediaButton to check for the
necessary icon first and do the fallback to the old and stock
icons.
* platform/gtk/RenderThemeGtk2.cpp:
(WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
icon name.
(WebCore::getStockSymbolicIconForWidgetType): Check for non empty
icon name before calling getStockIconForWidgetType. Fixed coding
style.
* platform/gtk/RenderThemeGtk3.cpp:
(WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
icon name.
(WebCore::getStockSymbolicIconForWidgetType): Check for non empty
icon name before calling getStockIconForWidgetType. Fixed coding
style.
2014-03-02 Benjamin Poulain <benjamin@webkit.org>
Add a fallback path for compiling the remaining attribute checkers
https://bugs.webkit.org/show_bug.cgi?id=129580
Reviewed by Darin Adler.
The remaining attribute checkers appear to be less common than the simple value match.
This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
they all default to function calls.
If the assumption that those selectors are not common turn out to be incorrect, we should see
the function calls in profiles and optimize them as needed.
* css/SelectorChecker.cpp:
(WebCore::attributeValueMatches):
If we get anything but attribute match here, something has gone horribly wrong. Update the code
to fail if that were to happen.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Add the missing match type to the selector fragment.
Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings
List has the extra requirement that a value containing a space does not match anything. It also cannot
match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation
(WebCore::SelectorCompiler::attributeValueBeginsWith):
(WebCore::SelectorCompiler::attributeValueContains):
(WebCore::SelectorCompiler::attributeValueEndsWith):
(WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
(WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
The slow fallbacks.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
A generic code generator making function call to match an attribute value.
2014-02-25 Andreas Kling <akling@apple.com>
JSDOMWindow::commonVM() should return a reference.
<https://webkit.org/b/129293>
Since this function always returns a VM and never null, make it
return a reference instead. There are more VM getters that never
return null, but I tried to keep the patch from snowballing.
Reviewed by Geoff Garen.
2014-03-02 Timothy Hatcher <timothy@apple.com>
Remove ASSERT in ~IDBRequest since it is firing during legitimate uses in Web Inspector.
Adding the ASSERT back is tracked by https://webkit.org/b/129593.
https://bugs.webkit.org/show_bug.cgi?id=129328
Reviewed by Sam Weinig.
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::~IDBRequest):
2014-03-02 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164961.
http://trac.webkit.org/changeset/164961
https://bugs.webkit.org/show_bug.cgi?id=129596
Caused many assertion failures (Requested by ap on #webkit).
* css/SelectorChecker.cpp:
(WebCore::attributeValueMatches):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
2014-03-02 Darin Adler <darin@apple.com>
Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
https://bugs.webkit.org/show_bug.cgi?id=129592
Reviewed by Sam Weinig.
* WebCore.exp.in: Re-sorted this file. Not sure how it got unsorted.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Call TextIterator::text
instead of TextIterator::length. Also removed unneeded special case for empty string
and exception code.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange): Ditto.
* accessibility/AccessibilityObject.h: Include TextIteratorBehavior.h instead of
TextIterator.h.
* accessibility/AccessibilityRenderObject.cpp: Include TextIterator.h.
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Removed unneeded
TextIterator.h include.
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Call
TextIterator::text instead of TextIterator::length.
* dom/Element.cpp: Include TextIterator.h.
* dom/Node.cpp: Include Range.h.
* dom/Position.cpp:
(WebCore::Position::isCandidate): Cast to RenderBlockFlow since that's what the
type check above does. Use a return statement instead of an else for better flow.
(WebCore::Position::leadingWhitespacePosition): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
(WebCore::Position::trailingWhitespacePosition): Ditto.
* dom/Range.cpp:
(WebCore::Range::firstNode): Added a FIXME about code that clearly does not
belong. This is something we really need to fix.
* editing/AlternativeTextController.cpp: Include TextIterator.h.
* editing/ApplyStyleCommand.cpp: Ditto.
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
* editing/Editor.h: Include TextIteratorBehavior.h instead of TextIterator.h.
* editing/HTMLInterchange.cpp:
(WebCore::convertHTMLTextToInterchangeFormat): Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
* editing/SpellingCorrectionCommand.cpp: Include TextIterator.h.
* editing/TextIterator.h: Moved isCollapsibleWhitespace from here into
htmlediting.h and renamed it deprecatedIsCollapsibleWhitespace.
* editing/TextIterator.cpp: Call
deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
* editing/TypingCommand.cpp: Include TextIterator.h.
* editing/VisibleUnits.cpp:
(WebCore::previousBoundary): Call TextIterator::text instead of
TextIterator::length.
(WebCore::nextBoundary): Ditto.
* editing/htmlediting.cpp: Include TextIterator.h.
* editing/htmlediting.h: Removed non-helpful section comments.
Added FIXME about isWhitespace. Added deprecatedIsCollapsibleWhitespace,
formerly not deprecated and in TextIterator.h.
* editing/markup.cpp: Include TextIterator.h.
* html/HTMLTextAreaElement.cpp: Include TextIterator.h.
* page/ContextMenuController.cpp:
(WebCore::selectionContainsPossibleWord): Call TextIterator::text
instead of TextIterator::length and TextIterator::characterAt.
* page/EventHandler.cpp: Sorted conditional includes alphabetically by condition.
* platform/mac/HTMLConverter.mm:
(+[WebHTMLConverter editingAttributedStringFromRange:]): Call TextIterator::text
instead of TextIterator::length.
2014-03-02 Benjamin Poulain <benjamin@webkit.org>
Add a fallback path for compiling the remaining attribute checkers
https://bugs.webkit.org/show_bug.cgi?id=129580
Reviewed by Darin Adler.
The remaining attribute checkers appear to be less common than the simple value match.
This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
they all default to function calls.
If the assumption that those selectors are not common turn out to be incorrect, we should see
the function calls in profiles and optimize them as needed.
* css/SelectorChecker.cpp:
(WebCore::attributeValueMatches):
If we get anything but attribute match here, something has gone horribly wrong. Update the code
to fail if that were to happen.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Add the missing match type to the selector fragment.
Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings
List has the extra requirement that a value containing a space does not match anything. It also cannot
match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation
(WebCore::SelectorCompiler::attributeValueBeginsWith):
(WebCore::SelectorCompiler::attributeValueContains):
(WebCore::SelectorCompiler::attributeValueEndsWith):
(WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
(WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
The slow fallbacks.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
A generic code generator making function call to match an attribute value.
2014-03-02 Darin Adler <darin@apple.com>
Fix build for case-sensitive file systems.
* platform/UserActivity.h: Runloop -> RunLoop.
2014-03-02 Gavin Barraclough <barraclough@apple.com>
HysteresisTimer should use WebCore::Timer
https://bugs.webkit.org/show_bug.cgi?id=129587
Reviewed by Sam Weinig.
* platform/HysteresisActivity.h:
(WebCore::HysteresisActivity::HysteresisActivity):
(WebCore::HysteresisActivity::hysteresisTimerFired):
- RunLoop::Timer -> WebCore::Timer.
* platform/UserActivity.h:
2014-03-02 Darin Adler <darin@apple.com>
Split TextIteratorBehavior into a separate header
https://bugs.webkit.org/show_bug.cgi?id=129578
Reviewed by Sam Weinig.
This is in preparation to greatly cut down on includes of TextIterator.h.
* GNUmakefile.list.am: Added new header.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* editing/FindOptions.h: Changed typedef to unsigned char;
there is no reason to store these in a 32-bit integer.
* editing/TextIterator.h: Added include of TextIteratorBehavior.h
and moved comments about the meanings of flag bits to their definition.
* editing/TextIteratorBehavior.h: Added.
* WebCore.exp.in: Updated for type changes.
2014-03-02 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Form controls handling
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>
Reviewed by Simon Fraser.
Updates localizable strings and adds some exports.
* English.lproj/Localizable.strings:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2014-03-02 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
https://bugs.webkit.org/show_bug.cgi?id=129471
Reviewed by Simon Fraser.
A few issues with TileController were causing sublayers of the root layers
to tile incorrect surfaces on zoom.
First, the exposedRect API was not updating the sublayers. The layers go correctly
into tiling mode, but the tiles cover the full document instead of the visible area.
The other major issue was the margins being applied to the coverage size in document
coordinates. Since each margin is 512px, the total coverage size after zoom was
gigantic.
To solve this, this patch switch from the exposedRect API to the generic concept
of VisibleExtentContentRect introduced for iOS WebKit1.
* WebCore.exp.in:
* platform/ScrollView.h:
Define a VisibleExtentContentRect on the scrollview itself when there is no
platformWidget().
The case with inside frame is untested due to stability issues :(.
(see <rdar://problem/16199219>)
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::computeTileCoverageRect):
Remove the margin from the tile coverage.
On iOS, m_tileCoverage is always zero at the moment. Previously, the tile coverage
was artificially extended by the margins. With the margins removed, I temporarily added
a factor of 1.5.
ViewUpdateDispatcher has all the information to compute a great tile coverage, I will need
a follow up patch to fix that.
* platform/ios/ScrollViewIOS.mm:
(WebCore::ScrollView::visibleExtentContentRect):
(WebCore::ScrollView::setVisibleExtentContentRect):
2014-03-02 Darin Adler <darin@apple.com>
Sort Mac platform export files so they merge better
https://bugs.webkit.org/show_bug.cgi?id=129581
Reviewed by Sam Weinig.
* WebCore.exp.in: Ran the new sort-export-file on this.
2014-03-02 Dean Jackson <dino@apple.com>
Add protected casting to FilterOperation classes.
https://bugs.webkit.org/show_bug.cgi?id=124062
Reviewed by Sam Weinig.
Use the type cast macro generators to produce some toFilterOperation-style
functions, and then use them in our PlatformCA filter code.
Test: css3/filters/animation-from-initial-values-with-color-matrix.html
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Use the toFilterOperation methods, in
some cases removing the unnecessary double cast.
(PlatformCAFilters::filterValueForOperation):
(PlatformCAFilters::colorMatrixValueForFilter):
* platform/graphics/filters/FilterOperation.cpp:
(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicColorMatrixFilterOperation::operator==): Move this to the .cpp file so it can use the casting methods.
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::operator==): Ditto.
* platform/graphics/filters/FilterOperation.h: Add the casting macros.
2014-03-02 Yoav Weiss <yoav@yoav.ws>
Fix srcset related bugs
https://bugs.webkit.org/show_bug.cgi?id=129539
Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.
Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.
Reviewed by Andreas Kling.
Tests: fast/hidpi/image-srcset-invalid-descriptor.html
fast/hidpi/image-srcset-src-selection-1x-both.html
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):
2014-03-01 Gavin Barraclough <barraclough@apple.com>
Split UserActivity, simplify PageThrottler
https://bugs.webkit.org/show_bug.cgi?id=129551
Reviewed by Darin Adler.
The class UserActivity currently implements two things – a hysteresis mechanism, and
an abstraction of NSActivity controlled by that mechanism. PageThrottler implements
its own hysteresis mechanism, which directly controls DOM timer throttling and also
controls a couple of UserActivities, giving a total of 3 separate hysteresis mechanisms,
layered two deep.
Split UserActivity into three, with HysteresisActivity implementing an abstract hysteresis
mechanism, UserActivity::Impl controlling the NSActivity, and then UserActivity combining
these two back together. The interface to UserActivity is unchanged.
Remove PageThrottler's bespoke hysteresis, replacing it with a use of HysteresisActivity.
Replace the two UserActivities with a single UserActivity::Impl, so there are no longer
layered hysteresis mechanisms.
* WebCore.exp.in:
- exports changed.
* WebCore.xcodeproj/project.pbxproj:
- added HysteresisActivity.h.
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- if the page starts visible, begin activity. If it starts hidden throttle DOM timers.
(WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):
- when the DOM timer throttling setting changes, make sure we update.
(WebCore::PageThrottler::incrementActivityCount):
(WebCore::PageThrottler::decrementActivityCount):
- when m_activityCount changes update the hysteresis state.
(WebCore::PageThrottler::updateHysteresis):
(WebCore::PageThrottler::setViewState):
- when IsVisuallyIdle changes update the hysteresis state.
(WebCore::PageThrottler::started):
(WebCore::PageThrottler::stopped):
- callbacks from HysteresisActivity, these control m_activity and DOM timer throttling.
* page/PageThrottler.h:
(WebCore::PageThrottler::didReceiveUserInput):
(WebCore::PageThrottler::pluginDidEvaluate):
- call impulse to temporarily enable the activity.
* platform/HysteresisActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
(WebCore::HysteresisActivity::HysteresisActivity):
- constructor takes a delegate optionally a timeout.
(WebCore::HysteresisActivity::start):
- start activity immediately. If stopped, call started method on delegate. If in timeout period, cancel the timer.
(WebCore::HysteresisActivity::stop):
- stop activity after hysteresis. If started, initiate timeout period.
(WebCore::HysteresisActivity::impulse):
- ensure activity for at least the timeout period.
(WebCore::HysteresisActivity::hysteresisTimerFired):
- delayed stop - when the timer fires call stopped on the delegate.
* platform/UserActivity.cpp:
(WebCore::UserActivity::Impl::Impl):
(WebCore::UserActivity::Impl::beginActivity):
(WebCore::UserActivity::Impl::endActivity):
- nop implementation.
(WebCore::UserActivity::UserActivity):
- UserActivity maintains existing interface with hysteresis.
(WebCore::UserActivity::started):
(WebCore::UserActivity::stopped):
- callbacks from HysteresisTimer; forward to Impl.
* platform/UserActivity.h:
* platform/mac/UserActivityMac.mm:
(WebCore::UserActivity::Impl::Impl):
- UserActivity::Impl, abstraction for NSActivity without added hysteresis.
(WebCore::UserActivity::Impl::beginActivity):
- allocate NSActivity.
(WebCore::UserActivity::Impl::endActivity):
- release NSActivity.
2014-03-02 Brian Burg <bburg@apple.com>
DocumentLoader should keep maps of ResourceLoaders instead of sets
https://bugs.webkit.org/show_bug.cgi?id=129388
Reviewed by Darin Adler.
For web replay, we need to be able to pull a ResourceLoader instance by
identifier from the DocumentLoader. This is easy to do if we convert
ResourceLoaderSet to ResourceLoaderMap, keyed by the loader's identifier.
Added assertions whenever adding or removing from the map to ensure
that we don't try to add duplicates or resources with zero identifiers.
No new tests required. No functionality was added.
* loader/DocumentLoader.cpp:
(WebCore::cancelAll):
(WebCore::setAllDefersLoading):
(WebCore::areAllLoadersPageCacheAcceptable):
(WebCore::DocumentLoader::addSubresourceLoader):
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::addPlugInStreamLoader):
(WebCore::DocumentLoader::removePlugInStreamLoader):
(WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
* loader/DocumentLoader.h:
* loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::create): Only add the loader
to the document loader's map if it initialized successfully.
The old code was probably leaking resource loaders that failed to
initialize.
* loader/mac/DocumentLoaderMac.cpp:
(WebCore::scheduleAll):
(WebCore::unscheduleAll):
2014-03-02 Dirkjan Ochtman <d.ochtman@activevideo.com>
Support ENABLE_ENCRYPTED_MEDIA in cmake builds
https://bugs.webkit.org/show_bug.cgi?id=129575
Reviewed by Philippe Normand.
No new tests, only fixes the build.
* CMakeLists.txt:
Add support for ENABLE_ENCRYPTED_MEDIA.
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::close):
Assign nullptr instead of 0 to OwnPtr to appease gcc-4.7.
2014-03-01 Tim Horton <timothy_horton@apple.com>
WebKit2 View Gestures (Smart Magnification): Support for iOS
https://bugs.webkit.org/show_bug.cgi?id=129146
<rdar://problem/16032668>
Reviewed by Benjamin Poulain.
* WebCore.exp.in:
Add an export.
2014-03-01 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164929 and r164934.
http://trac.webkit.org/changeset/164929
http://trac.webkit.org/changeset/164934
https://bugs.webkit.org/show_bug.cgi?id=129570
Caused assertions on two srcset tests (Requested by ap on
#webkit).
* html/parser/HTMLParserIdioms.cpp:
(WebCore::isHTMLSpaceOrComma):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):
2014-03-01 Dan Bernstein <mitz@apple.com>
Build fix.
* html/parser/HTMLParserIdioms.cpp: Removed an unused function.
2014-03-01 David Kilzer <ddkilzer@apple.com>
Ensure keySplines is valid in SMIL animations
<http://webkit.org/b/129547>
<rdar://problem/15676128>
Reviewed by Darin Adler.
Merged from Blink (patch by Philip Rogers):
https://src.chromium.org/viewvc/blink?revision=156452&view=revision
http://crbug.com/276111
This patch fixes a crash in SMIL animations when keySplines are not
specified. The SMIL spec is clear on this:
http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
"If there are any errors in the keyTimes specification (bad values,
too many or too few values), the animation will have no effect."
This patch simply checks that keyTimes is not empty. Previously,
splinesCount was set to be m_keySplines.size() + 1 in
SVGAnimationElement.cpp; this patch changes splinesCount to be equal
to m_keySplines.size() to make the logic easier to follow and to
match other checks in SVGAnimationElement::startedActiveInterval.
Test: svg/animations/animate-keysplines-crash.html
* svg/SVGAnimationElement.cpp:
(WebCore::SVGAnimationElement::startedActiveInterval):
2014-03-01 Benjamin Poulain <benjamin@webkit.org>
Tighten minimumRegisterRequirements()
https://bugs.webkit.org/show_bug.cgi?id=129538
Reviewed by Andreas Kling.
Fix small things that made minimumRegisterRequirements() a little optimistic
when dealing with attributes.
Test: fast/selectors/adjacent-descendant-tail-register-requirement.html
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
Attribute Set does not do value matching, the case sensitive value matching is irrelevant
The problem is that flag is also used by minimumRegisterRequirements()
to find if one more register is needed.
Set the flag to case sensitive to avoid reserving one extra register.
(WebCore::SelectorCompiler::minimumRegisterRequirements):
Use a new backtrackingFlag to know if there is a descendant tail, thus a backtracking register
reserved.
This is better than using the backtracking action because the backtracking chain could be
an adjacent chain inside a descendant chain.
The flags are designed for that, just set one for minimumRegisterRequirements().
The 2 extra registers for the attribute count and address become limited to all attributes
except the last one. We don't keep a copy for the last matching, those registers were not needed.
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
2014-03-01 Pratik Solanki <psolanki@apple.com>
[iOS] selectionImageForcingBlackText should return autoreleased object
https://bugs.webkit.org/show_bug.cgi?id=129437
<rdar://problem/15810384>
Reviewed by Darin Adler.
* bindings/objc/DOM.mm:
(-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
2014-03-01 Yoav Weiss <yoav@yoav.ws>
Fix srcset related bugs
https://bugs.webkit.org/show_bug.cgi?id=129539
Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.
Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.
Reviewed by Andreas Kling.
Tests: fast/hidpi/image-srcset-invalid-descriptor.html
fast/hidpi/image-srcset-src-selection-1x-both.html
* html/parser/HTMLParserIdioms.cpp:
(WebCore::parseDescriptors):
(WebCore::parseImagesWithScaleFromSrcsetAttribute):
(WebCore::bestFitSourceForImageAttributes):
2014-03-01 Darin Adler <darin@apple.com>
Improve "bad parent" and "bad child list" assertions in line boxes
https://bugs.webkit.org/show_bug.cgi?id=125656
Reviewed by Sam Weinig.
My previous fix for this problem was incomplete. This continuation of that fix addresses
the flaw in the original and adds additional lifetime checking so problems can be seen in
debug builds without a memory debugger.
* rendering/InlineBox.cpp:
(WebCore::InlineBox::assertNotDeleted): Added. Poor man's memory debugging helper.
(WebCore::InlineBox::~InlineBox): Refactored body into a new function named
invalidateParentChildList. Added code to update the deletion sentinel to record
that this object is deleted.
(WebCore::InlineBox::setHasBadParent): Moved here from header since this debug-only
feature does not need to be inlined. Added a call to assertNotDeleted.
(WebCore::InlineBox::invalidateParentChildList): Added. Refactored from the destructor,
this is used by RenderTextLineBoxes.
* rendering/InlineBox.h: Added the deletion sentinel, and called it in the parent
function. Also changed the expansion/setExpansion functions to use the type name "int",
since we don't use the type name "signed" in the WebKit coding style.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::~InlineFlowBox): Call setHasBadChildList rather than doing the
setHasBadParent work on children directly, to avoid code duplication.
(WebCore::InlineFlowBox::setHasBadChildList): Moved here from header. Added code to set
"has bad parent" on all children, something we previously did only on destruction. Also
added assertNotDeleted.
(WebCore::InlineFlowBox::checkConsistency): Added call to assertNotDeleted. Also tweaked
code style and variable names a little bit.
* rendering/InlineFlowBox.h: Moved setHasBadChildList out of the header when it's on.
The empty version for ASSERT_WITH_SECURITY_IMPLICATION_DISABLED is still in the header.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::invalidateParentChildLists): Call the new
InlineBox::invalidateParentChildList function instead of calling setHasBadChildList directly.
The new function checks m_hasBadParent, something we couldn't do here.
2014-03-01 Benjamin Poulain <benjamin@webkit.org>
Optimized querySelector(All) when selector contains #id
https://bugs.webkit.org/show_bug.cgi?id=116502
Reviewed by Andreas Kling.
Test: fast/selectors/querySelector-id-filtering.html
The idea of this patch is to perform querySelector on a subtree
rooted at the last element with #id matching. For example, if we have the selector
"#foobar div a", we start by looking for the element with ID foobar in the TreeScope
cache, and start matching the children from there.
The idea comes from Rune for
https://chromium.googlesource.com/chromium/blink/+/1cd83d3588973a02ab15d94b1b05a28620853624
but the code as diverged too much so it had to be reimplemented specifically for WebKit.
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::operator=):
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::~CSSSelectorList):
* css/StyleRule.h:
(WebCore::StyleRule::wrapperAdoptSelectorList):
(WebCore::StyleRulePage::wrapperAdoptSelectorList):
* dom/SelectorQuery.cpp:
(WebCore::isSingleTagNameSelector):
(WebCore::isSingleClassNameSelector):
(WebCore::findIdMatchingType):
(WebCore::SelectorDataList::SelectorDataList):
(WebCore::filterRootById):
(WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
(WebCore::SelectorDataList::execute):
(WebCore::SelectorQuery::SelectorQuery):
(WebCore::SelectorQueryCache::add):
* dom/SelectorQuery.h:
(WebCore::SelectorDataList::SelectorData::SelectorData):
2014-02-28 Alexey Proskuryakov <ap@apple.com>
Node::compareDocumentPosition leaks memory structure
https://bugs.webkit.org/show_bug.cgi?id=120244
Reviewed by Ryosuke Niwa.
* dom/Node.cpp: (WebCore::Node::compareDocumentPosition): Don't do it.
2014-03-01 David Kilzer <ddkilzer@apple.com>
Fix lifetime handling of SVGPropertyTearOffs
<http://webkit.org/b/129211>
<rdar://problem/15696025>
Reviewed by Maciej Stachowiak.
Merged from Blink (patch by Ojan Vafai):
https://src.chromium.org/viewvc/blink?revision=157801&view=revision
http://crbug.com/288771
-Replace SVGStaticPropertyWithParentTearOff with SVGMatrixTearOff
since it's only used in that one place. This means we can get rid
of the templatizing and the method pointer.
-Change SVGPropertyTearOff to keep track of it's child tearoffs
and call detachWrapper on its child tearoffs when it's destroyed
or when it's wrapper is detached.
-Have SVGPropertyTearOff hold WeakPtrs to the child tearoffs
to avoid having a cycle.
Test: svg/transforms/svg-matrix-tearoff-crash.html
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm:
(NativeToJSValue):
* svg/properties/SVGMatrixTearOff.h: Renamed from Source/WebCore/svg/properties/SVGStaticPropertyWithParentTearOff.h.
(WebCore::SVGMatrixTearOff::create):
(WebCore::SVGMatrixTearOff::commitChange):
(WebCore::SVGMatrixTearOff::SVGMatrixTearOff):
* svg/properties/SVGPropertyTearOff.h:
(WebCore::SVGPropertyTearOff::addChild):
(WebCore::SVGPropertyTearOff::detachChildren):
2014-03-01 Zan Dobersek <zdobersek@igalia.com>
Unreviewed build fix after r164913.
* platform/CountedUserActivity.h: Some ports don't (yet) support forwarding headers for WebCore,
so UserActivity.h should be included as non-forwarding.
2014-03-01 Gavin Barraclough <barraclough@apple.com>
Change PageActivityAssertionToken to use a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=129526
Reviewed by Sam Weinig.
PageThrottler effectively implements a bespoke weak pointer mechanism; remove this & just use WeakPtr.
* page/PageActivityAssertionToken.cpp:
(WebCore::PageActivityAssertionToken::PageActivityAssertionToken):
(WebCore::PageActivityAssertionToken::~PageActivityAssertionToken):
- addActivityToken->incrementActivityCount, removeActivityToken->decrementActivityCount
* page/PageActivityAssertionToken.h:
- removed invalidate, made m_throttler a WeakPtr
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
- initialize m_weakPtrFactory, m_activityCount.
(WebCore::PageThrottler::~PageThrottler):
- removed called to invalidate.
(WebCore::PageThrottler::startThrottleHysteresisTimer):
- m_activityTokens.size()->m_activityCount
(WebCore::PageThrottler::throttleHysteresisTimerFired):
- m_activityTokens.size()->m_activityCount
(WebCore::PageThrottler::incrementActivityCount):
- m_activityTokens.add->++
(WebCore::PageThrottler::decrementActivityCount):
- m_activityTokens.remove->--
* page/PageThrottler.h:
(WebCore::PageThrottler::weakPtr):
- replaced HashSet with WeakPtrFactory & count.
2014-03-01 Gavin Barraclough <barraclough@apple.com>
Split UserActivity/CountedUserActivity
https://bugs.webkit.org/show_bug.cgi?id=129520
Reviewed by Sam Weinig.
UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.
* WebCore.exp.in:
- beginActivity->start, endActivity->stop.
* WebCore.xcodeproj/project.pbxproj:
* page/PageThrottler.cpp:
(WebCore::PageThrottler::PageThrottler):
(WebCore::PageThrottler::~PageThrottler):
(WebCore::PageThrottler::throttlePage):
(WebCore::PageThrottler::unthrottlePage):
(WebCore::PageThrottler::setIsVisuallyIdle):
- beginActivity->increment, endActivity->decrement.
* page/PageThrottler.h:
- UserActivity->CountedUserActivity for m_pageActivity
* platform/CountedUserActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
(WebCore::CountedUserActivity::CountedUserActivity):
(WebCore::CountedUserActivity::increment):
(WebCore::CountedUserActivity::decrement):
- Added, provides counted interface to UserActivity.
* platform/UserActivity.cpp:
(WebCore::UserActivity::UserActivity):
- m_count removed
(WebCore::UserActivity::start):
(WebCore::UserActivity::stop):
- beginActivity->start, endActivity->stop, implentation now empty.
* platform/UserActivity.h:
- beginActivity->start, endActivity->stop, m_count moved to HAVE(NS_ACTIVITY)
* platform/mac/UserActivityMac.mm:
(WebCore::UserActivity::UserActivity):
- m_count->m_started
(WebCore::UserActivity::isValid):
- m_count->m_started
(WebCore::UserActivity::start):
(WebCore::UserActivity::stop):
- beginActivity->start, endActivity->stop, no longer nest
2014-02-28 Benjamin Poulain <benjamin@webkit.org>
Caller saved registers can be accidentally discarded when clearing the local stack
https://bugs.webkit.org/show_bug.cgi?id=129532
Reviewed by Andreas Kling.
Tests: fast/selectors/tree-modifying-case-insensitive-selectors.html
fast/selectors/tree-modifying-selectors.html
StackAllocator::discard() no longer make sense now that we can use caller saved regsiter.
We should instead discard everything up to the beginning of the local stack.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
* cssjit/StackAllocator.h:
(WebCore::StackAllocator::popAndDiscardUpTo):
2014-02-28 Andy Estes <aestes@apple.com>
[iOS] FrameLoader has a NULL m_progressTracker when initialized with initForSynthesizedDocument()
https://bugs.webkit.org/show_bug.cgi?id=129534
Reviewed by Simon Fraser.
No new tests because TestWebKitAPI does not yet support iOS. See <http://webkit.org/b/129535>.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::initForSynthesizedDocument): Create a FrameProgressTracker.
2014-02-28 Sam Weinig <sam@webkit.org>
ASSERT(isMainThread()) hit under platformUserPreferredLanguages() with WebKit1 and WebKit2 in the same process
https://bugs.webkit.org/show_bug.cgi?id=129528
Reviewed by Andreas Kling.
* platform/mac/Language.mm:
(WebCore::preferredLanguagesMutex):
(WebCore::preferredLanguages):
(+[WebLanguageChangeObserver languagePreferencesDidChange:]):
(WebCore::httpStyleLanguageCode):
(WebCore::platformUserPreferredLanguages):
Add a mutex and do an isolated copy of the strings to allow this function to be called from multiple threads.
2014-02-28 Dean Jackson <dino@apple.com>
Crash at ebay.com when viewing auction items at com.apple.WebCore: WebCore::GraphicsContext3D::getExtensions + 10
https://bugs.webkit.org/show_bug.cgi?id=129523
Reviewed by Simon Fraser.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getSupportedExtensions): Early return if the
context is pending policy resolution.
2014-02-28 Andreas Kling <akling@apple.com>
Micro-optimize JSNodeOwner::isReachableFromOpaqueRoots().
<https://webkit.org/b/129518>
Only do image and audio element specific checks for element nodes.
Time spent in here goes from 0.8% to 0.5% on DYEB.
Reviewed by Benjamin Poulain.
* bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
2014-02-28 Geoffrey Garen <ggaren@apple.com>
JSC Assertion failure every time I start Safari (r164846)
https://bugs.webkit.org/show_bug.cgi?id=129510
Reviewed by Mark Hahnenberg.
Take the lock before allocating objects because afterward is too late.
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
2014-02-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: ASSERT in WebCore::JSDOMWindowBase::supportsRichSourceInfo inspecting iOS
https://bugs.webkit.org/show_bug.cgi?id=129512
Reviewed by Simon Fraser.
* page/PageDebuggable.cpp:
(WebCore::PageDebuggable::connect):
(WebCore::PageDebuggable::disconnect):
2014-02-28 Anders Carlsson <andersca@apple.com>
VisitedLinkStore should be able to invalidate link styles for associated pages
https://bugs.webkit.org/show_bug.cgi?id=129515
Reviewed by Dan Bernstein.
* page/Page.cpp:
(WebCore::Page::Page):
Add the VisitedLinkStore if we have one.
(WebCore::Page::~Page):
Remove the VisitedLinkStore if we have one.
* page/VisitedLinkStore.cpp:
(WebCore::VisitedLinkStore::~VisitedLinkStore):
Assert that we don't have any pages.
(WebCore::VisitedLinkStore::addPage):
Add the page to the set.
(WebCore::VisitedLinkStore::removePage):
Remove the page from the set.
(WebCore::VisitedLinkStore::invalidateStylesForAllLinks):
Traverse all the pages and invalidate the style for all links.
(WebCore::VisitedLinkStore::invalidateStylesForLink):
Traverse all the pages and invalidate the style for a given link.
* page/VisitedLinkStore.h:
Add new members.
2014-02-28 Benjamin Poulain <bpoulain@apple.com>
[iOS][WK2] highlight rects should never big bigger than the view
https://bugs.webkit.org/show_bug.cgi?id=129472
Reviewed by Enrica Casucci.
* WebCore.exp.in:
2014-02-28 Beth Dakin <bdakin@apple.com>
Turn off margin tiles on iOS
https://bugs.webkit.org/show_bug.cgi?id=129509
-and corresponding-
<rdar://problem/16200383>
Reviewed by Simon Fraser.
* page/FrameView.cpp:
(WebCore::FrameView::needsExtendedBackgroundRectForPainting):
2014-02-28 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Add subpixel support to border type of double, groove, ridge, inset and outset.
https://bugs.webkit.org/show_bug.cgi?id=129226
Reviewed by Simon Fraser.
This is the conversion of double, inset, outset, groove and ridge border type
painting to support device pixel precision width/height.
Regression is covered by existing tests.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
* rendering/RenderObject.h:
2014-02-28 Adenilson Cavalcanti <cavalcantii@gmail.com>
Filters should test for area instead of single dimension
https://bugs.webkit.org/show_bug.cgi?id=123716
Reviewed by Dirk Schulze.
A filtered SVG element with a sigle dimension bigger than 5000
(counting the margin/border) will fail to render. So an element
with 4000x4000 will render fine, while another with 5000x10
won't. This patch instead tests against the total element area,
which fixes such cases.
It also fixes some layer violations where FilterEffectRenderer and
RenderSVGResourceFilter were directly accessing the maximum filter
size in FilterEffect. Since before a somewhat bigger filter would
be aborted, it required to change the maximum kernel size
for blur filter (some filters are slower to run than others for
bigger SVGs).
Tests: svg/filters/big-height-filter-expected.svg
svg/filters/big-height-filter.svg
svg/filters/big-width-filter-expected.svg
svg/filters/big-width-filter.svg
* platform/graphics/filters/FEGaussianBlur.cpp:
* platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::maxFilterArea): New function, returns the
maximum allowed element area (currently is 4096 x 4096).
(WebCore::FilterEffect::isFilterSizeValid): Now it tests for
element area instead of a single dimension. This code is reused by
FilterEffectRenderer.
* platform/graphics/filters/FilterEffect.h:
* rendering/FilterEffectRenderer.cpp:
(WebCore::FilterEffectRenderer::updateBackingStoreRect): Uses the
new function in FilterEffect to test for valid sizes.
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Same case.
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Test
for maximum area and properly changes the scale of transformed
element to fit.
2014-02-28 Brent Fulgham <bfulgham@apple.com>
[Mac, iOS] Incorrect ordering of construction arguments for out-of-band text elements
https://bugs.webkit.org/show_bug.cgi?id=129501
<rdar://problem/16198587>
Reviewed by Eric Carlson.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Correct order of arguments
to PlatformTextTrack.
2014-02-28 Bem Jones-Bey <bjonesbe@adobe.com>
Properly clear m_logicallyLastRun to remove use-after-free possibility
https://bugs.webkit.org/show_bug.cgi?id=129489
Reviewed by David Hyatt.
A use-after-free issue was caught in Blink because m_logicallyLastRun
is not cleared when the item it points to is deleted. Clearing it
turns the use-after-free into a segfault, and prevents any future
use-after-frees from happening.
* platform/text/BidiRunList.h:
(WebCore::BidiRunList<Run>::deleteRuns):
2014-02-28 Jer Noble <jer.noble@apple.com>
[Mac] Disambiguate calls to [[window contentView] layer] and [... setLayer:]
https://bugs.webkit.org/show_bug.cgi?id=129491
Reviewed by Alexey Proskuryakov.
-[NSWindow contentView] returns a bare id, leading to ambiguity when calling
certain methods, including -layer and -setLayer:. Resolve the ambiguity by
explicitly casting the -contentView call to a NSView*.
* platform/mac/WebVideoFullscreenController.mm:
(-[WebVideoFullscreenController setupVideoOverlay:]):
(-[WebVideoFullscreenController windowDidLoad]):
(-[WebVideoFullscreenController windowDidExitFullscreen]):
2014-02-28 Andreas Kling <akling@apple.com>
MouseEvent.offsetX/Y should just return 0,0 for simulated clicks.
<https://webkit.org/b/129477>
There's no need to compute the exact target-relative coordinates for
simulated mouse events, e.g those fired by HTMLElement.click().
The offsetX/Y properties are not supported by Firefox.
Test: fast/events/relative-offset-of-simulated-click.html
Reviewed by Alexey Proskuryakov.
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::offsetX):
(WebCore::MouseRelatedEvent::offsetY):
2014-02-27 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Fix positioning grid items using named grid lines/areas
https://bugs.webkit.org/show_bug.cgi?id=129372
Reviewed by Darin Adler.
Our code was assuming that a <custom-ident> in
-webkit-grid-{column|row}-{start|end} and
-webkit-grid-{column|row} was always a grid area name. That's
wrong because the <custom-ident> could be also a explicitly named
grid line or the an implicitly named grid line created by a grid
area definition.
The style resolution code was not correct either. This patch fixes
it so it now matches the spec, which means that:
- first we try to match any existing grid area.
- then if there is a named grid line with the name
<custom-ident>-{start|end} for -webkit-grid-{column|row}-{start|end}
defined before the grid area then we use it instead of the grid
area.
- otherwise if there is a named grid line we resolve to the first such line.
- otherwise we treat it as 'auto'.
Fixing this uncovered a bug in GridPosition, we were not using the
name of the stored grid area to check if two GridPositions were
the same.
Tests: fast/css-grid-layout/grid-item-position-changed-dynamic.html
fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html
* css/StyleResolver.cpp:
(WebCore::gridLineDefinedBeforeGridArea): New function to check if
a given named grid line was defined before an implicit named grid
line created by a grid area definition.
(WebCore::StyleResolver::adjustNamedGridItemPosition): New
function that adjusts the position of a GridPosition parsed as a
grid area.
(WebCore::StyleResolver::adjustGridItemPosition): Use the new
function adjustNamedGridItemPosition to adjust the positions of
named grid lines.
* css/StyleResolver.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Use GridPosition:: namespace.
(WebCore::RenderGrid::resolveGridPositionFromStyle): Ditto.
(WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.
* rendering/RenderGrid.h:
* rendering/style/GridPosition.h:
(WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Moved from RenderGrid.cpp.
(WebCore::GridPosition::adjustGridPositionForSide): Ditto.
(WebCore::GridPosition::operator==): Use the named grid line to check equality.
2014-02-28 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
https://bugs.webkit.org/show_bug.cgi?id=129461
Reviewed by David Hyatt.
Shape-inside can make a line only narrower than the original line width, thus we don't need
to update the line/shape segments in fitBelowFloats for every single line inside shape-inside.
This patch adds a helper function, which updates the line segments, furthermore it updates the
line segments only when the content would fit without the shape.
No new tests, no behavior change.
* rendering/line/BreakingContextInlineHeaders.h: Use new helper.
(WebCore::updateSegmentsForShapes):
* rendering/line/LineWidth.cpp: Use new helper.
(WebCore::LineWidth::updateLineSegment): Add new helper.
(WebCore::LineWidth::fitBelowFloats):
2014-02-28 Mario Sanchez Prada <mario.prada@samsung.com>
paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
https://bugs.webkit.org/show_bug.cgi?id=71194
Reviewed by David Hyatt.
Merged from Blink r157263 by <igor.o@sisa.samsung.com>
<https://src.chromium.org/viewvc/blink?revision=157263&view=revision>
In the css3-text spec (http://www.w3.org/TR/css3-text/#bidi-linebox):
The start and end edges of a line box are determined by the inline
base direction of the line box. In most cases, this is given by
its containing block's computed ‘direction’. However if its
containing block has ‘unicode-bidi: plaintext’, the inline base
direction the line box must be determined by the base direction of
the bidi paragraph to which it belongs: that is, the bidi
paragraph for which the line box holds content.
This patch just implements the behavior described above modifying
updateLogicalWidthForAlignment and setting the bidi level of the
RootInlineBox.
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
(WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
(WebCore::RenderBlockFlow::checkLinesForTextOverflow):
(WebCore::RenderBlockFlow::startAlignedOffsetForLine):
2014-02-28 Jochen Eisinger <jochen@chromium.org>
Update meta-referrer behavior for invalid policies
https://bugs.webkit.org/show_bug.cgi?id=129475
This patch aligns the behavior with the CSP 1.1 referrer directive,
where the fallback for an invalid value is the "never" policy.
Original patch from Mike West: https://src.chromium.org/viewvc/blink?view=rev&revision=165627
Reviewed by Alexey Proskuryakov.
Test: http/tests/security/referrer-policy-invalid.html
* dom/Document.cpp:
(WebCore::Document::processReferrerPolicy):
2014-02-28 Daniel Bates <dabates@apple.com>
SubresourceLoader::didFinishLoading() should not assert when a decode error occurs
https://bugs.webkit.org/show_bug.cgi?id=127029
Reviewed by Darin Adler.
SubresourceLoader::didFinishLoading() can be called for a resource (e.g. an image) that
failed to be decoded or, in the case of an image, whose estimated decoded size exceeds
the maximum decoded size (Settings::maximumDecodedImageSize()).
Test: fast/images/decoded-size-exceeds-max-decoded-size.html
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
2014-02-28 Martin Hodovan <mhodovan@inf.u-szeged.hu>
ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in WebCore::RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=119626
SVGRenderSupport::mapLocalToContainer() was trying to apply transforms
in the incorrect order. Specifically, it would attempt to apply its
localToParentTransform before its localToBorderBoxTransform. This
was causing an ASSERT to fail when the computed transforms didn't
match up to those computed by RenderGeometryMap.
Backported from Blink: https://codereview.chromium.org/143363004
Reviewed by Simon Fraser.
Test: svg/transforms/svg-geometry-crash.html
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::mapLocalToContainer):
2014-02-28 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlockOffset
https://bugs.webkit.org/show_bug.cgi?id=129371
Reviewed by Andrei Bucur.
regionAtBlockOffset method is meant to be used after the flow thread validated
its region chain, otherwise we cannot rely on regionAtBlockOffset to determine correctly
the target region based on the offset in flow thread coordinates.
When the video element is collected in a named flow and displayed in a region, we ensure
that the region's decorations are taken into account to properly position the video.
However, we have to do that only if the named flow regions are validated.
I changed the method cachedRegionForCompositedLayer to check only the "cached" region
for a layer and not update the layer to region mappings before returning the region.
Because method cachedRegionForCompositedLayer does not update the region - layer mappings,
the code does not call regionAtBlockOffset in situations where the region chain is not validated yet.
Test: compositing/regions/video-in-overflow-region.html
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::getLayerListForRegion): Make it a getter that relies on
cached information and refrain from updating the mappings. Make it const too.
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
* rendering/RenderFlowThread.h:
2014-02-28 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Finetune captions menu as per design team
https://bugs.webkit.org/show_bug.cgi?id=129432
Reviewed by Eric Carlson.
Some design fine tuning of the captions dialog was required.
No new tests, current suffice.
* Modules/mediacontrols/mediaControlsApple.js:
Added out class.
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.buildCaptionMenu): Setting out class when
menu is going to show overlap the panel right border.
* css/mediaControlsGtk.css:
(video::-webkit-media-controls-closed-captions-container.out):
Setting all borders to 5px;
(video::-webkit-media-controls-closed-captions-container h3):
Reduced font size and increasing top padding.
(video::-webkit-media-controls-closed-captions-container ul):
Increased top padding.
2014-02-27 Ryosuke Niwa <rniwa@webkit.org>
Element::attributeChanged shouldn't do any work when attribute value didn't change
https://bugs.webkit.org/show_bug.cgi?id=129467
Reviewed by Geoffrey Garen.
Exit early in childrenChanged when the attribute value didn't change.
* dom/Attr.cpp:
(WebCore::Attr::setValue):
(WebCore::Attr::childrenChanged):
* dom/Element.cpp:
(WebCore::Element::setAttributeInternal):
(WebCore::Element::attributeChanged):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didModifyAttribute):
(WebCore::Element::didRemoveAttribute):
(WebCore::Element::cloneAttributesFromElement):
* dom/Element.h:
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged):
* dom/StyledElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::attributeChanged):
* mathml/MathMLElement.h:
* mathml/MathMLSelectElement.cpp:
(WebCore::MathMLSelectElement::attributeChanged):
* mathml/MathMLSelectElement.h:
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
* svg/SVGElement.h:
2014-02-27 Jinwoo Song <jinwoo7.song@samsung.com>
[EFL] Remove duplicated keyboard string key from keyMap
https://bugs.webkit.org/show_bug.cgi?id=129469
Reviewed by Gyuyoung Kim.
"Down" key is duplicated in keyMap().
* platform/efl/EflKeyboardUtilities.cpp:
(WebCore::createKeyMap):
2014-02-27 Benjamin Poulain <benjamin@webkit.org>
Unify the three call sites of SelectorQueryCache
https://bugs.webkit.org/show_bug.cgi?id=129249
Reviewed by Andreas Kling.
The three call sites of SelectorQueryCache were doing the exact same thing.
That code is mvoed to a new function Document::selectorQueryForString().
Also use String instead of AtomicString for querySelector() and querySelectorAll().
This prevent the call sites from creating AtomicString just for the time of the call.
This causes a tiny slow down on microbenchmarks that continuously query the same string
but has no negative impact on realistic/good test cases (and the bindings are simplified).
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::querySelector):
(WebCore::ContainerNode::querySelectorAll):
* dom/ContainerNode.h:
* dom/Document.cpp:
(WebCore::Document::selectorQueryForString):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::webkitMatchesSelector):
* dom/SelectorQuery.cpp:
(WebCore::SelectorQueryCache::add):
* dom/SelectorQuery.h:
2014-02-27 Ryosuke Niwa <rniwa@webkit.org>
JSC ignores the extra memory cost of HTMLCollection after a major GC
https://bugs.webkit.org/show_bug.cgi?id=129450
Reviewed by Andreas Kling.
Report the extra memory cost of HTMLCollection to JSC.
Unfortunately, the existing mechanism to report the extra memory cost in toJS is insufficient for
HTMLCollection since collection caches are populated later when HTMLCollection is accessed. Also,
the extra memory cost reported by Heap::reportExtraMemoryCost will be thrown away after a major GC.
To work around this limitation, added a visitor.reportExtraMemoryUsage call inside visitChildren
for interfaces with a newly added ReportExtraMemoryCost IDL extension flag to report the extra cost.
Since we may need to generate visitChildren when this flag is set, we can't automatically detect
and generate calls using C++ template as done in r148648.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/webaudio/AudioBuffer.idl:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMBinding.h:
* bindings/scripts/CodeGeneratorJS.pm:
(InstanceNeedsVisitChildren):
(GenerateHeader):
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* 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/JSTestGenerateIsReachable.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):
* bindings/scripts/test/JS/JSattribute.cpp:
(WebCore::toJS):
* bindings/scripts/test/JS/JSreadonly.cpp:
(WebCore::toJS):
* dom/ChildNodeList.h:
* dom/CollectionIndexCache.cpp: Added.
(WebCore::reportExtraMemoryCostForCollectionIndexCache):
* dom/CollectionIndexCache.h:
(WebCore::CollectionIndexCache::memoryCost):
(WebCore::NodeType>::CollectionIndexCache):
(WebCore::NodeType>::nodeCount):
(WebCore::NodeType>::computeNodeCountUpdatingListCache):
(WebCore::NodeType>::nodeAt):
(WebCore::NodeType>::invalidate):
* dom/DOMAllInOne.cpp:
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::memoryCost):
* dom/LiveNodeList.h:
* dom/NodeList.h:
(WebCore::NodeList::memoryCost):
* dom/NodeList.idl:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::updateNamedElementCache):
* html/HTMLCollection.h:
(WebCore::CollectionNamedElementCache::didPopulate):
(WebCore::CollectionNamedElementCache::memoryCost):
(WebCore::CollectionNamedElementCache::find):
(WebCore::HTMLCollection::memoryCost):
* html/HTMLCollection.idl:
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache):
2014-02-27 Benjamin Poulain <benjamin@webkit.org>
Compile attribute value matching
https://bugs.webkit.org/show_bug.cgi?id=129228
Reviewed by Geoffrey Garen.
Add support for compiling value matching when matching attributes in Selector.
This patch only adds exact matching, the other cases will follow.
There is a little infrastructure changes since FunctionCall now needs to support
calls taking 2 arguments. The fun begins when the arguments are not in the right
registers and need to be moved to the right place. Otherwise the code is straightforward.
In SelectorCompiler, it is necessary to handle two different cases of matching: case sensitive
and case insensitive. The choice is done in part at compilation time by asking HTMLDocument
if the name filter can include case insensitive attribute. The other part is done at runtime
by querying the element for its type and document.
Test: fast/selectors/case-insensitive-value-matching.html
* css/SelectorChecker.cpp:
(WebCore::attributeValueMatches): Null values matching should never happen, when an attribute
has no value, its value is empty.
* cssjit/FunctionCall.h:
(WebCore::FunctionCall::FunctionCall):
Add support for calls with two arguments.
(WebCore::FunctionCall::setOneArgument):
(WebCore::FunctionCall::setTwoArguments):
(WebCore::FunctionCall::swapArguments):
Here we need to swap two registers, but we cannot allocate a new register (because the context
of the function call may have taken all the available registers already).
On x86, the solution is simple, we can swap the two registers without side effects.
On other platforms, it is a little more complex. If there is any available register, we can just
use it as a temporary to make the swap.
If there are no available registers, we know that all the registers are taken. Since swapArguments()
was called after pushing all the arguments on the stack, we can safely trash the value of any of those.
We take the first available register that is not a function argument and use it as a temporary.
(WebCore::FunctionCall::prepareAndCall):
This is the fun part, we have two registers where the values must go before the function call. The values
can be in any combination of the allocated registers. The code here needs to move the two values to
their target register while avoiding conflicts.
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
(WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch):
(WebCore::SelectorCompiler::AttributeMatchingInfo::selector):
The value of HTMLDocument::isCaseSensitiveAttribute is needed at compilation time to compute the number
of required registers. As a result, we need to keep it along in the selector fragment.
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
(WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
(WebCore::SelectorCompiler::minimumRegisterRequirements):
(WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
(WebCore::SelectorCompiler::canMatchStyleAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
(WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
The matching code is moved in a local scope. This is done to recover the register of qualifiedNameImpl
before doing any value matching. That register can then be used to store the expected value when matching
an attribute value.
It is unfortunate there is so much register pressure in this part.
Value matching is done outside the loop. The idea is to keep the loop really small since in the vast majority
of cases, name matching fails.
If the value matching fails, we jump back into the tight loop.
This is not ideal in all situation. For example trivial name matching with trivial value matching should
be done in loop. There is a FIXME to improve those cases later.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
(WebCore::SelectorCompiler::testIsHTMLClassOnDocument):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
In the case sensitive branch, things are really simple. We have to AtomicStringImpl pointers, if they
don't match, it is a failure.
The case sensitive branch start by comparing the pointers in case the values are equal. This is a common
case and it simplifies the cases for SVG, XHTML, etc.
If the two values are not equal, we must first find if the context requires case insensitive comparison
(HTMLElement in HTMLDocument). If the conditions require case insensitive matching, we then fall back
to a function call.
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
* dom/Attribute.h:
(WebCore::Attribute::valueMemoryOffset):
* dom/Document.h:
(WebCore::Document::documentClassesMemoryOffset):
(WebCore::Document::isHTMLDocumentClassFlag):
* dom/Node.h:
(WebCore::Node::treeScopeMemoryOffset):
* dom/TreeScope.h:
(WebCore::TreeScope::documentScopeMemoryOffset):
2014-02-27 Ryuan Choi <ryuan.choi@samsung.com>
Build break when disabled CSS_GRID_LAYOUT
https://bugs.webkit.org/show_bug.cgi?id=129459
Reviewed by Gyuyoung Kim.
* css/CSSValue.h: Added guards of CSS_GRID_LAYOUT for GridTemplateAreasClass.
2014-02-17 Myles C. Maxfield <mmaxfield@apple.com>
text-decoration-skip: ink does not skip over SVG fonts
https://bugs.webkit.org/show_bug.cgi?id=128936
Reviewed by Darin Adler.
When drawing glyphs in an SVG font, the glyphs are converted to paths and then filled. This patch moves
the glyph -> path conversion into a helper class, GlyphToPathTranslator, and creates an implementation
for the SVG drawing code. Once this helper class is created, it can be used to trace paths in order
to make underlines skip over SVG glyphs. This helper class also has an implementation for non-SVG glyphs,
which allows for the glyph tracing code to be paramaterized over the implementation of the helper class
rather than if the FontData itself is SVG or not.
Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html
* platform/graphics/Font.h:
(WebCore::GlyphToPathTranslator::~GlyphToPathTranslator): Virtual implementation of helper class
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::Path): Created constructor that takes a RefPtr<CGMutablePathRef>
* platform/graphics/Path.h:
* platform/graphics/TextRun.h: Give RenderingContext a factory function to create the helper class
instance
* platform/graphics/mac/FontMac.mm: Implementation of helper class used for skipping underlines on
regular (CoreText) glyphs
(WebCore::MacGlyphToPathTranslator::MacGlyphToPathTranslator):
(WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::MacGlyphToPathTranslator::incrementIndex):
(WebCore::Font::dashesForIntersectionsWithRect): Call the relevant factory function, and use it
to successively generate Paths
* rendering/svg/SVGTextRunRenderingContext.cpp: Implementation of helper class used for SVG fonts
(WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
(WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
(WebCore::SVGGlyphToPathTranslator::incrementIndex):
(WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
(WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Use the above implementation
* rendering/svg/SVGTextRunRenderingContext.h: Factory function declaration
2014-02-27 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateIce methods and constructor
https://bugs.webkit.org/show_bug.cgi?id=129449
Reviewed by Eric Carlson.
According to WebRTC editor's draft, MediaConstraints will no longer be an argument of those methods and
constructor.
Existing tests were updated.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::updateIce):
(WebCore::RTCPeerConnection::addStream):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* bindings/js/JSRTCPeerConnectionCustom.cpp:
(WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::initialize):
(WebCore::RTCPeerConnectionHandlerMock::updateIce):
(WebCore::RTCPeerConnectionHandlerMock::addStream):
* platform/mock/RTCPeerConnectionHandlerMock.h:
2014-02-27 Radu Stavila <stavila@adobe.com>
[CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to RenderNamedFlowThread
https://bugs.webkit.org/show_bug.cgi?id=129428
Reviewed by Andreas Kling.
Since the decorationsClipRectForBoxInRegion method is a named flow specific method, it makes
sense to be in the named flow specific class, RenderNamedFlowThread, instead of the more
generic RenderFlowThread.
No new tests required. No new functionality.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
* rendering/RenderFlowThread.cpp:
* rendering/RenderFlowThread.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderNamedFlowThread.h:
2014-02-27 Zoltan Horvath <zoltan@webkit.org>
Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
https://bugs.webkit.org/show_bug.cgi?id=129433
Reviewed by Darin Adler.
This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.
No new tests, no behavior change.
* rendering/line/LineWidth.cpp:
(WebCore::availableWidthAtOffset):
(WebCore::LineWidth::updateLineDimension):
(WebCore::LineWidth::wrapNextToShapeOutside):
(WebCore::LineWidth::fitBelowFloats):
* rendering/line/LineWidth.h:
2014-02-27 Andreas Kling <akling@apple.com>
Micro-optimize elementAffectsDirectionality().
<https://webkit.org/b/129444>
Tweak this function to skip an unnecessary bit check and use
fastHasAttribute() instead of hasAttribute() for looking up dirAttr.
~1% speedup on DYEB/AngularJS.
Reviewed by Ryosuke Niwa.
* html/HTMLElement.cpp:
(WebCore::elementAffectsDirectionality):
2014-02-27 Brian Burg <bburg@apple.com>
Web Inspector: model tests should use a special Test.html inspector page
https://bugs.webkit.org/show_bug.cgi?id=129190
Reviewed by Timothy Hatcher.
Convert InspectorController::isUnderTest() into a flag, and expose an
Internals method so it can be set by the test before opening the inspector.
Test: inspector/test-harness-trivially-works.html
* inspector/InspectorController.cpp:
(WebCore::InspectorController::evaluateForTestInFrontend):
* inspector/InspectorController.h:
* testing/Internals.cpp:
(WebCore::Internals::setInspectorIsUnderTest): Added.
* testing/Internals.h:
* testing/Internals.idl:
2014-02-27 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed build fix after r164824.
Accidentally re-added some code that was removed.
* page/ContentSecurityPolicy.cpp:
2014-02-26 Alex Christensen <achristensen@webkit.org>
Compile fix when not using TEXTURE_MAPPER_GL.
https://bugs.webkit.org/show_bug.cgi?id=129417
Reviewed by Darin Adler.
* platform/graphics/texmap/TextureMapperGL.cpp:
Protect platformCreateAccelerated with USE(TEXTURE_MAPPER_GL).
2014-02-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
Include some clean up of ConsoleMessage and ScriptCallStack construction.
Covered by existing tests.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
Simplify code now that createStackTraceFromException handles it.
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
ScriptCallStack can give us the first non-native callframe.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
2014-02-27 Andreas Kling <akling@apple.com>
Remove FeatureObserver.
<https://webkit.org/b/129439>
This code was only used by the Chromium port and nobody else is
making use of it.
Reviewed by Anders Carlsson.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/EventTarget.h:
* html/ColorInputType.cpp:
* html/ColorInputType.h:
* html/DateInputType.cpp:
* html/DateInputType.h:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
* html/DateTimeLocalInputType.cpp:
* html/DateTimeLocalInputType.h:
* html/EmailInputType.cpp:
* html/EmailInputType.h:
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::create):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseAttribute):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::parseAttribute):
* html/InputType.cpp:
* html/InputType.h:
* html/MonthInputType.cpp:
* html/MonthInputType.h:
* html/NumberInputType.cpp:
* html/NumberInputType.h:
* html/RangeInputType.cpp:
* html/RangeInputType.h:
* html/SearchInputType.cpp:
* html/SearchInputType.h:
* html/TelephoneInputType.cpp:
* html/TelephoneInputType.h:
* html/TextInputType.cpp:
* html/TextInputType.h:
* html/TimeInputType.cpp:
* html/TimeInputType.h:
* html/URLInputType.cpp:
* html/URLInputType.h:
* html/WeekInputType.cpp:
* html/WeekInputType.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
(WebCore::FrameLoader::dispatchDidCommitLoad):
* page/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::didReceiveHeader):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectCursor):
* page/FeatureObserver.cpp: Removed.
* page/FeatureObserver.h: Removed.
* page/Page.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::create):
* workers/Worker.cpp:
(WebCore::Worker::create):
2014-02-27 Chris Fleizach <cfleizach@apple.com>
speechSynthesis.speak of a zero length utterance kills future speech
https://bugs.webkit.org/show_bug.cgi?id=129403
Reviewed by Mario Sanchez Prada.
Empty length strings may choke a synthesizer and result in didFinishSpeaking not being called.
The WebKit code should be proactive about screening out empty length strings.
Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::startSpeakingImmediately):
2014-02-27 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164783.
http://trac.webkit.org/changeset/164783
https://bugs.webkit.org/show_bug.cgi?id=129425
Broke number of multicol tests (Requested by anttik on
#webkit).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):
2014-02-27 Antoine Quint <graouts@webkit.org>
Respect SVG fragment identifiers in <img> src attribute
https://bugs.webkit.org/show_bug.cgi?id=129387
Reviewed by Antti Koivisto.
Test: svg/css/svg-resource-fragment-identifier-img-src.html
When providing an SVG image for a given renderer, check that the URL used to load
that image is taken into account in case it featured a fragment identifier, ensuring
that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
is specific to <img> elements, specific support will also need to be added for various
CSS properties that support SVG images.
* svg/graphics/SVGImageCache.cpp:
(WebCore::SVGImageCache::imageForRenderer):
Check if the provided renderer is attached to an <img> element and, if so, pass the
resolved <img> source URL, taking into account srcset, to the SVGImageForContainer.
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::setURL):
Trigger the FrameView machinery to ensure that the :target pseudo-class is respected
should the provided URL feature a fragment identifier.
* svg/graphics/SVGImageForContainer.h:
Declare the new setURL() method.
2014-02-27 Krzysztof Czech <k.czech@samsung.com>
[ATK] Fix style errors in enum members
https://bugs.webkit.org/show_bug.cgi?id=129421
Reviewed by Mario Sanchez Prada.
No new tests. No new functionality.
Enum members should use InterCaps with an initial capital letter.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getInterfaceMaskFromObject):
2014-02-27 Mihai Tica <mitica@adobe.com>
[CSS Blending] Parse and implement the -webkit-isolation CSS property.
https://bugs.webkit.org/show_bug.cgi?id=128958
Reviewed by Dirk Schulze.
Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec.
This patch adds functionality for HTML and SVG.
-webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element.
Tests: css3/compositing/isolation-isolate-blended-child.html
css3/compositing/isolation-parsing.html
css3/compositing/svg-isolation-default.html
css3/compositing/svg-isolation-isolated-group.html
css3/compositing/svg-isolation-simple.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Isolation):
* css/CSSPropertyNames.in: Add -webkit-isolation.
* css/CSSValueKeywords.in: Add the isolate value.
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint.
* rendering/style/RenderStyle.h: Setters and getters for isolation.
* rendering/style/RenderStyleConstants.h: Add Isolation enum.
* rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation.
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer.
2014-02-27 Krzysztof Czech <k.czech@samsung.com>
[ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
https://bugs.webkit.org/show_bug.cgi?id=129250
Reviewed by Mario Sanchez Prada.
Test: accessibility/table-scope.html
Exposing AtkTableCell to AT. Implementing possibility to get column headers and row headers
as an array of cells.
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Added.
(convertToGPtrArray):
(core):
(webkitAccessibleTableCellGetColumnHeaderCells):
(webkitAccessibleTableCellGetRowHeaderCells):
(webkitAccessibleTableCellInterfaceInit):
* accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Added.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(getInterfaceMaskFromObject):
2014-02-27 Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
Improving containing column block determination
https://bugs.webkit.org/show_bug.cgi?id=125449
Reviewed by Darin Adler.
Making sure that the containing column block of any elements
can not be oneself.
Test: fast/css/crash-on-column-splitting.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::splitFlow):
2014-02-27 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Improve JavaScript multimedia controls
https://bugs.webkit.org/show_bug.cgi?id=129044
Reviewed by Jer Noble.
After webkit.org/b/123097 a follow up was needed to improve
accessibily and some other cosmetic problems, like cleaner CSS and
new missing baselines.
No new tests because of no new functionality.
* Modules/mediacontrols/mediaControlsApple.js:
Added hiding class name.
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.createControls): Set remaining time as
hidden by default and turned volumebox hidden into hiding.
(ControllerGtk.prototype.updateTime): Simplified the hiding and
showing by removing the show class and using hidden only.
(ControllerGtk.prototype.handleMuteButtonMouseOver):
(ControllerGtk.prototype.handleVolumeBoxMouseOut): Turned hidden
into hiding.
(ControllerGtk.prototype.updateReadyState): Changed coding style
and added down class for the panel too.
(ControllerGtk.prototype.updatePlaying): Change for coding style
coherence.
(ControllerGtk.prototype.handleCaptionButtonClicked): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonMouseOver): Call
handleCaptionButtonShowMenu.
(ControllerGtk.prototype.handleCaptionButtonShowMenu): Created
with the former behavior of handleCaptionButtonMouseOver.
* css/mediaControlsGtk.css:
(.hidden): Set display none for all objects with hidden class.
(audio::-webkit-media-controls-panel *:focus):
(audio::-webkit-media-controls-panel.down *:focus): Added gradient
for the active and focus status.
(audio::-webkit-media-controls-time-remaining-display)
(video::-webkit-media-controls-time-remaining-display): Set
display block.
(audio::-webkit-media-controls-volume-slider-container)
(video::-webkit-media-controls-volume-slider-container): Set
display flex.
(video::-webkit-media-controls-volume-slider-container.hiding):
Changed from hidden.
(video::-webkit-media-controls-panel .hiding.down): Changed from
hidden.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaButton): Returning true to
allow CSS painting the gradient.
2014-02-27 Zan Dobersek <zdobersek@igalia.com>
Unreviewed. Fixing the GTK build fix after r164757.
* platform/network/NetworkStateNotifier.cpp: r164757 introduced a layering violation by including
the Settings.h header. The use of that class is guarded by PLATFORM(IOS), so the header inclusion
should be guarded as well.
2014-02-26 Ryosuke Niwa <rniwa@webkit.org>
Extract named items caches in HTMLCollection as a class
https://bugs.webkit.org/show_bug.cgi?id=129365
Reviewed by Antti Koivisto.
Extracted CollectionNamedElementCache, like CollectionIndexCache, out of HTMLCollection.
We can move more named item related functions into this class in the future.
HTMLCollection's member variables m_isNameCacheValid, m_idCache, and m_nameCache were replaced by
a single unique_ptr that holds an instance of CollectionNamedElementCache since this object rarely
exists in most HTMLCollections.
Also removed m_isItemRefElementsCacheValid since it was only used by Microdata API removed in r153772
and renamed a whole bunch of member functions and variables for consistency.
* dom/Document.cpp:
(WebCore::Document::collectionCachedIdNameMap):
(WebCore::Document::collectionWillClearIdNameMap):
* dom/Document.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::namedItemWithIndex):
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateNamedElementCache): Renamed from invalidateIdNameCacheMaps.
(WebCore::HTMLCollection::namedItem):
(WebCore::HTMLCollection::updateNamedElementCache): Renamed from updateNameCache.
(WebCore::HTMLCollection::namedItems):
* html/HTMLCollection.h:
(WebCore::CollectionNamedElementCache::findElementsWithId): Renamed from HTMLCollection::idCache.
(WebCore::CollectionNamedElementCache::findElementsWithName): Renamed from HTMLCollection::nameCache.
(WebCore::CollectionNamedElementCache::appendIdCache): Moved from HTMLCollection.
(WebCore::CollectionNamedElementCache::appendNameCache): Ditto.
(WebCore::CollectionNamedElementCache::find): Ditto.
(WebCore::CollectionNamedElementCache::append): Ditto.
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasNamedElementCache): Renamed from hasIdNameCache.
(WebCore::HTMLCollection::createNameItemCache): Added.
(WebCore::HTMLCollection::namedItemCaches): Added.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNamedElementCache):
* html/HTMLFormControlsCollection.h:
2014-02-26 Ryosuke Niwa <rniwa@webkit.org>
Indenting an indented image element resulted in an extra indentation
https://bugs.webkit.org/show_bug.cgi?id=129201
Reviewed by Enrica Casucci.
The bug was caused by endOfParagraph returning a position at the beginning of a block when the position
passed into the function was at the beginning of the block. Consider the following DOM:
<blockquote><img></blockquote>
When endOfParagraph is called on (blockquote, 0), the condition r->isBR() || isBlock(n) in endOfParagraph
matches immediately on startNode and it returns (blockquote, 0) again.
This resulted in moveParagraphWithClones invoked by indentIntoBlockquote to erroneously clone the inner
blockquote. Worked around this bug in ApplyBlockElementCommand::formatSelection by checking this specific
condition and moving the position to the end of the block. Unfortunately, a lot of existing code depends
on the current behavior of endOfParagraph so fixing the function itself was not possible.
There was another bug in indentIntoBlockquote to incorrectly insert a new blockquote into the existing
blockquote due to the code introduced in r99594 to avoid inserting before the root editable element.
Since this happens only if outerBlock is the root editable element, which is nodeToSplitTo or an ancestor
of nodeToSplitTo, explicitly look for this condition.
Test: editing/execCommand/indent-img-twice.html
* editing/ApplyBlockElementCommand.cpp:
(WebCore::ApplyBlockElementCommand::formatSelection):
(WebCore::isNewLineAtPosition):
* editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentIntoBlockquote):
* editing/VisibleUnits.cpp:
(WebCore::endOfParagraph): Added a FIXME.
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Fix two assertions/crashes in compositing code
https://bugs.webkit.org/show_bug.cgi?id=129414
Reviewed by Dean Jackson.
Fix two issues introduced in r164759.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers): Don't call
ourselves recursively!
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): We call this
function unconditionally on layer teardown, so this assertion is bogus.
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Fix the build with some compiler configurations.
* platform/mac/ScrollAnimatorMac.mm:
(WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
(WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):
2014-02-26 Myles C. Maxfield <mmaxfield@apple.com>
Ranges given to createMarkupInternal might not be canonicalized
https://bugs.webkit.org/show_bug.cgi?id=129408
Reviewed by Ryosuke Niwa.
When WebKit clients (such as Mail) call WKWebArchiveCreateFromRange() with a range,
that range is not necessarily canonicalized. Therefore, comparing it for equality
with a canonicalized range might return a false negative. Instead, we should compare
canonicalized ranges.
No new tests because this codepath will only be reached via SPI.
* editing/markup.cpp:
(WebCore::createMarkupInternal):
2014-02-26 Enrica Casucci <enrica@apple.com>
[iOS WebKit2] Form controls handling: implement date and time controls.
https://bugs.webkit.org/show_bug.cgi?id=129344
Reviewed by Simon Fraser and Joseph Pecoraro.
Adding one localizable string.
* English.lproj/Localizable.strings:
2014-02-26 Simon Fraser <simon.fraser@apple.com>
Prepare for overflow scrolling nodes in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=129398
Reviewed by Tim Horton.
Lay some groundwork for overflow:scrolling nodes in the scrolling tree.
Change terminology to refer to "scroll-coordinatored" layers now, not just viewport-constrained
layers.
A given layer can be both viewport-constrained and overflow-scrolling (e.g. position:fixed,
overflow:scroll), so handle that in RenderLayerBacking, and use some "reason" flags
in RenderLayerCompositor.
* page/FrameView.cpp:
(WebCore::FrameView::scrollLayerID): Rename
* page/scrolling/ScrollingStateTree.cpp:
(WebCore::ScrollingStateTree::attachNode): Remove invalid assertion.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::RenderLayerBacking):
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::RenderLayerBacking::updateScrollingLayers): Simplify the logic with
an early return.
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
Allow a layer to play both viewport-constrained and scrolling roles
in the scrolling tree.
* rendering/RenderLayerBacking.h:
(WebCore::RenderLayerBacking::viewportConstrainedNodeID):
(WebCore::RenderLayerBacking::setViewportConstrainedNodeID):
(WebCore::RenderLayerBacking::scrollingNodeID):
(WebCore::RenderLayerBacking::setScrollingNodeID):
(WebCore::RenderLayerBacking::scrollingNodeIDForChildren):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didFlushChangesForLayer):
(WebCore::RenderLayerCompositor::updateBacking):
(WebCore::RenderLayerCompositor::layerWillBeRemoved):
(WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
(WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore):
(WebCore::RenderLayerCompositor::reasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForScrolling):
(WebCore::isViewportConstrainedFixedOrStickyLayer):
(WebCore::isMainFrameScrollingOrOverflowScrolling):
(WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
(WebCore::nearestScrollCoordinatedAncestor):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
(WebCore::RenderLayerCompositor::willRemoveScrollingLayer):
(WebCore::RenderLayerCompositor::didAddScrollingLayer):
* rendering/RenderLayerCompositor.h:
2014-02-26 Andy Estes <aestes@apple.com>
[iOS] Support network state notification using CPNetworkObserver
https://bugs.webkit.org/show_bug.cgi?id=129358
Reviewed by Dan Bernstein.
Add iOS support for navigator.onLine and online/offline events. Since
it can be expensive to query CPNetworkObserver, wait to do so until
someone calls NetworkStateObserver::onLine() or
NetworkStateObserver::addNetworkStateChangeListener(). For clients that
don't wish to observe network reachability at all, add a global opt-out.
These clients will only pay the cost of CPNetworkObserver if they load
a page that explicitly accesses navigator.onLine.
No new tests. Covered by existing tests.
* WebCore.exp.in: Stopped exporting NetworkStateNotifier::setIsOnLine()
and started exporting Settings::gShouldOptOutOfNetworkStateObservation.
* WebCore.xcodeproj/project.pbxproj: Renamed NetworkStateNotifierIOS.cpp
to NetworkStateNotifierIOS.mm.
* page/Settings.cpp: Defaulted gShouldOptOutOfNetworkStateObservation
to false.
* page/Settings.h:
(WebCore::Settings::setShouldOptOutOfNetworkStateObservation):
(WebCore::Settings::shouldOptOutOfNetworkStateObservation):
* platform/network/NetworkStateNotifier.cpp:
(WebCore::NetworkStateNotifier::addNetworkStateChangeListener): Ignored
the listener if Settings::shouldOptOutOfNetworkStateObservation().
Called registerObserverIfNecessary() and added the listener otherwise.
(WebCore::NetworkStateNotifier::notifyNetworkStateChange): Const qualified.
* platform/network/NetworkStateNotifier.h
(NetworkStateNotifier::onLine):
* platform/network/ios/NetworkStateNotifierIOS.cpp: Removed.
* platform/network/ios/NetworkStateNotifierIOS.mm: Added.
(-[NetworkStateObserver initWithNotifier:WebCore::]): Registered self
as a network reachable observer on CPNetworkObserver.
(-[NetworkStateObserver dealloc]): Removed self as a network reachable
observer.
(-[NetworkStateObserver networkStateChanged:]): Called setOnLine() on
the web thread, passing the reachability value from the notification.
(WebCore::NetworkStateNotifier::NetworkStateNotifier):
(WebCore::NetworkStateNotifier::~NetworkStateNotifier): Cleared
m_observer's pointer back to us.
(WebCore::NetworkStateNotifier::registerObserverIfNecessary): Initialized
m_observer if necessary.
(WebCore::NetworkStateNotifier::onLine): Called
registerObserverIfNecessary() and set an initial value for m_isOnLine
if m_isOnLineInitialized is false. Returned m_isOnLine.
(WebCore::setOnLine): Set m_isOnLine and called
notifyNetworkStateChange() if needed. Unconditionally set
m_isOnLineInitialized to true.
2014-02-26 Brian Burg <bburg@apple.com>
Unreviewed build fix for !ENABLE(CONTEXT_MENUS).
I forgot to add guards to handleContextMenuEvent().
* replay/UserInputBridge.cpp:
* replay/UserInputBridge.h:
2014-02-26 Dean Jackson <dino@apple.com>
[WebGL] Only skip context error retrieval if a pending context
https://bugs.webkit.org/show_bug.cgi?id=129397
Reviewed by Tim Horton.
A lost context should still ask the GC3D what the error is. Only
a pending context should return early.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getError):
2014-02-26 Brian Burg <bburg@apple.com>
Web Replay: route through UserInputBridge when delivering user inputs to WebCore
https://bugs.webkit.org/show_bug.cgi?id=128150
Reviewed by Timothy Hatcher.
Add an UserInputBridge instance to each Page. WebKit2 routes a page's user inputs through
the WebCore page's user input bridge so that the inputs can be selectively captured, filtered,
and replayed using instrumentation inside the UserInputBridge.
For now, the routing methods of UserInputBridge have no replay-specific code paths, and just
put the input delivery code inside WebCore rather than its external clients. Replay-specific
code paths will be added once https://bugs.webkit.org/show_bug.cgi?id=128782 is fixed. However,
once complete the code will work as follows:
- When neither capturing or replaying, behavior is unchanged.
- When capturing user inputs, each external input is saved into a replay log as it crosses
the bridge from outside WebCore.
- When replaying, the bridge closes and user inputs from WebKit2 are not accepted. Instead,
the saved inputs from the replay log are re-dispatched as if they had crossed the bridge.
* CMakeLists.txt:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.exp.in: Add symbols for input routing methods.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp:
(WebCore::Page::Page): Initialize the owned UserInputBridge in the Page constructor.
* page/Page.h:
(WebCore::Page::inputBridge): Added a by-reference getter.
* replay/UserInputBridge.cpp: Added.
(WebCore::UserInputBridge::UserInputBridge):
(WebCore::UserInputBridge::~UserInputBridge):
(WebCore::UserInputBridge::handleContextMenuEvent):
(WebCore::UserInputBridge::handleMousePressEvent):
(WebCore::UserInputBridge::handleMouseReleaseEvent):
(WebCore::UserInputBridge::handleMouseMoveEvent):
(WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
(WebCore::UserInputBridge::handleKeyEvent):
(WebCore::UserInputBridge::handleAccessKeyEvent):
(WebCore::UserInputBridge::handleWheelEvent):
(WebCore::UserInputBridge::focusSetActive):
(WebCore::UserInputBridge::focusSetFocused):
(WebCore::UserInputBridge::scrollRecursively):
(WebCore::UserInputBridge::logicalScrollRecursively):
(WebCore::UserInputBridge::loadRequest):
(WebCore::UserInputBridge::reloadFrame):
(WebCore::UserInputBridge::stopLoadingFrame):
(WebCore::UserInputBridge::tryClosePage):
* replay/UserInputBridge.h: Added.
2014-02-26 Dean Jackson <dino@apple.com>
[WebGL] Protect more WebGL entry points for pending contexts
https://bugs.webkit.org/show_bug.cgi?id=129386
Reviewed by Tim Horton.
There are entry points into a WebGLRenderingContext that don't
come from the web-exposed API directly, such as drawImage with
the WebGL canvas. Protect these by returning early if we're
a pending context.
Also a bunch of drive-by 0 -> nullptr changes.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markLayerComposited):
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
(WebCore::WebGLRenderingContext::paintRenderingResultsToImageData):
(WebCore::WebGLRenderingContext::reshape):
(WebCore::WebGLRenderingContext::createBuffer):
(WebCore::WebGLRenderingContext::createFramebuffer):
(WebCore::WebGLRenderingContext::createTexture):
(WebCore::WebGLRenderingContext::createProgram):
(WebCore::WebGLRenderingContext::createRenderbuffer):
(WebCore::WebGLRenderingContext::createShader):
(WebCore::WebGLRenderingContext::getActiveAttrib):
(WebCore::WebGLRenderingContext::getActiveUniform):
(WebCore::WebGLRenderingContext::getContextAttributes):
(WebCore::WebGLRenderingContext::getError):
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
(WebCore::WebGLRenderingContext::getUniformLocation):
(WebCore::WebGLRenderingContext::drawImageIntoBuffer):
(WebCore::WebGLRenderingContext::videoFrameToImage):
(WebCore::WebGLRenderingContext::validateBufferDataParameters):
(WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):
2014-02-26 Bem Jones-Bey <bjonesbe@adobe.com>
[CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large percentage dimension
https://bugs.webkit.org/show_bug.cgi?id=129060
Reviewed by Simon Fraser.
A bounds check was omitted when computing the width and height for inset
rectangles, making it possible for the width or height to end up being
negative. This patch adds in that check for both. It seems that only
replaced elements like iframe and img trigger this problem.
Tests: fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html
fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape):
2014-02-26 Myles C. Maxfield <mmaxfield@apple.com>
Underlines are too thick when zoomed in
https://bugs.webkit.org/show_bug.cgi?id=129352
Reviewed by Dean Jackson.
The input to the underline drawing code is in user-space, not device-space.
The underlines were getting scaled twice, once in InlineTextBox and the other
in GraphicsContext.
Test: fast/css3-text/css3-text-decoration/text-decoration-scaled.html
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintDecoration):
2014-02-26 Andreas Kling <akling@apple.com>
Remove unused InspectorCounters.
<https://webkit.org/b/129367>
The InspectorCounters code was only used to implement two layout test
APIs (window.internals.numberOfLive{Nodes,Documents}) yet it had hooks
in crazy places like Node construction and destruction.
Rewrote the internals APIs to iterate over all live Documents instead,
totaling up their referencing Node count. Added a process-global
Document::allDocuments() HashSet to make this whole thing possible.
Reviewed by Sam Weinig.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSEventListener.cpp:
* dom/Document.cpp:
(WebCore::Document::allDocuments):
(WebCore::Document::Document):
(WebCore::Document::~Document):
* dom/Document.h:
(WebCore::Node::Node):
* dom/Node.cpp:
(WebCore::Node::~Node):
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorCounters.cpp: Removed.
* inspector/InspectorCounters.h: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/protocol/Timeline.json:
* platform/ThreadGlobalData.cpp:
* testing/Internals.cpp:
(WebCore::Internals::numberOfLiveNodes):
(WebCore::Internals::numberOfLiveDocuments):
* testing/Internals.h:
* testing/Internals.idl:
2014-02-26 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove console.profiles from window.console API
https://bugs.webkit.org/show_bug.cgi?id=116883
Reviewed by Timothy Hatcher.
console.profiles has been removed or never implemented by other
browsers. We should remove it as well. However, since tests
rely on it, keep it as window.internals.consoleProfiles.
* WebCore.exp.in:
* page/Console.idl:
* testing/Internals.cpp:
(WebCore::Internals::consoleProfiles):
* testing/Internals.h:
* testing/Internals.idl:
2014-02-26 Martin Hock <mhock@apple.com>
Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141
Reviewed by Sam Weinig.
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp: Add SessionID member.
(WebCore::Page::Page):
(WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
* page/Page.h:
(WebCore::Page::isSessionIDSet):
(WebCore::Page::setSessionID):
* page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
(WebCore::SessionID::SessionID):
(WebCore::SessionID::isValid): Not empty.
(WebCore::SessionID::isEphemeral):
(WebCore::SessionID::sessionID):
(WebCore::SessionID::operator==): Value-based equality.
(WebCore::SessionID::operator!=):
(WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
(WebCore::SessionID::defaultSessionID):
(WebCore::SessionID::legacyPrivateSessionID):
* page/SessionIDHash.h:
(WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
(WTF::SessionIDHash::equal):
(WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
(WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
(WTF::HashTraits<WebCore::SessionID>::isDeletedValue):
2014-02-26 Eric Carlson <eric.carlson@apple.com>
Fix builds that don't define IMAGE_CONTROLS.
* page/ContextMenuContext.cpp:
(WebCore::ContextMenuContext::ContextMenuContext):
2014-02-26 Eric Carlson <eric.carlson@apple.com>
Build fix for OS X after r164720.
* page/ContextMenuContext.cpp:
2014-02-26 Brady Eidson <beidson@apple.com>
Pipe experimental image controls menu up to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=129339
Reviewed by Simon Fraser.
Handle events for the image control, starting down the context menu code path if appropriate:
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElementMac::defaultEventHandler):
* html/shadow/mac/ImageControlsRootElementMac.h:
Add a class to hold a HitTestResult and addition info about the current ContextMenu invocation:
* page/ContextMenuContext.cpp: Added.
(WebCore::ContextMenuContext::ContextMenuContext):
* page/ContextMenuContext.h: Added.
(WebCore::ContextMenuContext::hitTestResult):
(WebCore::ContextMenuContext::isImageControl):
Update ContextMenuController to work with ContextMenuContext instead of HitTestResult directly:
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::showContextMenu):
(WebCore::ContextMenuController::createContextMenu):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::addInspectElementItem):
(WebCore::ContextMenuController::checkOrEnableIfNeeded):
(WebCore::ContextMenuController::showImageControlsMenu):
* page/ContextMenuController.h:
(WebCore::ContextMenuController::contextMenu):
(WebCore::ContextMenuController::setContextMenuContext):
(WebCore::ContextMenuController::context):
(WebCore::ContextMenuController::hitTestResult):
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
2014-02-26 Zan Dobersek <zdobersek@igalia.com>
REGRESSION(r162947): Document::topDocument() returns an incorrect reference for cached Documents
https://bugs.webkit.org/show_bug.cgi?id=128175
Reviewed by Antti Koivisto.
* dom/Document.cpp:
(WebCore::Document::topDocument): Fall back to pre-r162947 way of determining the top document
when the Document is in page cache or is in the middle of having its render tree destroyed.
In the first case, the determined top document is actually the document currently loaded in the
Frame to which the cached document is still connected, which is obviously not desired. In the
second case the top document is similarly incorrectly deduced, leading to non-deletion of the
proper top document's AXObjectCache. Because of this AccessibilityRenderObjects are not detached
which results in assertions in RenderObject destructor where the objects are found to be still
flagged as in use by the AX cache.
2014-02-26 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
https://bugs.webkit.org/show_bug.cgi?id=129368
Reviewed by Andrei Bucur.
Remove unused code, no new tests.
* rendering/RenderFlowThread.h:
2014-02-26 Xabier Rodriguez Calvar <calvaris@igalia.com>
[GTK] Regression when showing the captions menu
https://bugs.webkit.org/show_bug.cgi?id=129106
Reviewed by Martin Robinson.
In some cases, when clicking the captions button the menu was not
shown.
Updated test: media/video-controls-captions-trackmenu.html
* Modules/mediacontrols/mediaControlsGtk.js:
(ControllerGtk.prototype.buildCaptionMenu):
(ControllerGtk.prototype.showCaptionMenu): Specify sizes in
pixels.
2014-02-26 Ryosuke Niwa <rniwa@webkit.org>
Avoid unnecessary HTML Collection invalidations for id and name attribute changes
https://bugs.webkit.org/show_bug.cgi?id=129361
Reviewed by Benjamin Poulain.
Before this patch, setting id and name attributes resulted in traversing all the ancestors to invalidate
HTML collections on those nodes whenever we had more than one HTMLCollection alive.
Avoid the traversal when HTMLCollections don't have any valid id and name map caches by making each
HTMLCollection explicitly call collectionCachedIdNameMap and collectionWillClearIdNameMap when it caches
or clears the id and name map.
Inspired by https://chromium.googlesource.com/chromium/blink/+/5b06b91b79098f7d42e480f85be32198315d2440
* dom/Document.cpp:
(WebCore::Document::registerCollection): Takes a boolean to indicate whether collection has a valid cache
for the id and name map.
(WebCore::Document::unregisterCollection): Ditto.
(WebCore::Document::collectionCachedIdNameMap): Added.
(WebCore::Document::collectionWillClearIdNameMap): Added.
* dom/Document.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument): Call invalidateCache on HTML collections after, not before,
calling unregisterCollection and registerCollection since collections' owner nodes have already been
moved to the new document here and invalidateCache uses owner node's document to call
collectionWillClearIdNameMap. So calling invalidateCache before calling unregister/registerCollection
would result in collectionWillClearIdNameMap getting called on a wrong document.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::HTMLCollection):
(WebCore::HTMLCollection::~HTMLCollection):
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::invalidateIdNameCacheMaps): Added the code to uncount itself from the number
of live node lists and HTML collections that need to be invalidated upon id and name attribute changes.
(WebCore::HTMLCollection::updateNameCache):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::invalidateCache):
(WebCore::HTMLCollection::hasIdNameCache): Renamed from hasNameCache.
(WebCore::HTMLCollection::setHasIdNameCache): Renamed from setHasIdNameCache.
* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::updateNameCache):
2014-02-25 Frédéric Wang <fred.wang@free.fr>
Add support for minsize/maxsize attributes.
https://bugs.webkit.org/show_bug.cgi?id=122567
Reviewed by Chris Fleizach.
This change implements the minsize/maxsize attributes of the mo element.
We also switch stretch sizes from int to LayoutUnit to improve accuracy.
Tests: mathml/presentation/stretchy-minsize-maxsize-dynamic.html
mathml/presentation/stretchy-minsize-maxsize.html
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::SetOperatorProperties):
(WebCore::RenderMathMLOperator::stretchTo):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
2014-02-25 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Small clean-up of flow threads accelerated compositing code
https://bugs.webkit.org/show_bug.cgi?id=129312
Reviewed by Andrei Bucur.
Some clean-up for the code used for regions in accelerated compositing functionality:
1. Rename updateRenderFlowThreadLayersIfNeeded -> updateFlowThreadsLayerToRegionMappingsIfNeeded
as the function updates the mapping between the flow threads layers and their corresponding regions
2. Remove RenderLayerCompositor::updateRenderFlowThreadLayersIfNeeded and move the code in place
at call site since the function body does not require a dedicated function.
No new functionality, no new tests.
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateFlowThreadsLayerToRegionMappingsIfNeeded):
Now that the regions are always layers, we do not need to iterate backwards.
* rendering/FlowThreadController.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):
* rendering/RenderLayerCompositor.h:
2014-02-25 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Ensure consistent border painting width.
https://bugs.webkit.org/show_bug.cgi?id=129259
Reviewed by Simon Fraser.
Border edges are painted as (semi)independent rectangles. When snapping an edge rectangle
to device pixels, its painted dimensions depend on its size and its fractional position.
Specific combination of position and border width can result in painting edges sized differently.
Using device snapped border width to calculate inner/outer rectangles helps to maintain
uniform border width.
Currently not testable.
* rendering/RenderBoxModelObject.cpp:
(WebCore::BorderEdge::BorderEdge):
(WebCore::BorderEdge::shouldRender):
(WebCore::BorderEdge::presentButInvisible):
(WebCore::BorderEdge::widthForPainting):
(WebCore::BorderEdge::getDoubleBorderStripeWidths):
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::calculateSideRect):
(WebCore::RenderBoxModelObject::paintBorderSides):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::calculateSideRectIncludingInner):
2014-02-25 Zalan Bujtas <zalan@apple.com>
Subpixel layout: Remove explicit static_cast<LayoutUnit> conversions.
https://bugs.webkit.org/show_bug.cgi?id=129359
Reviewed by Simon Fraser.
No testable change in behavior.
* css/LengthFunctions.cpp:
(WebCore::minimumValueForLength):
* page/FrameView.cpp:
(WebCore::FrameView::forceLayoutForPagination):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paintFillLayer):
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::logicalLeftVisualOverflow):
(WebCore::InlineFlowBox::logicalRightVisualOverflow):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::isSelected):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeColumnCountAndWidth):
(WebCore::getBPMWidth):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustForBorderFit):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderTable.h:
(WebCore::RenderTable::borderSpacingInRowDirection):
* rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::beforeAnnotationsAdjustment):
(WebCore::RootInlineBox::ascentAndDescentForBox):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::resolveLengthAttributeForSVG):
2014-02-25 Anders Carlsson <andersca@apple.com>
Build fixes.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2014-02-25 Benjamin Poulain <bpoulain@apple.com>
Build fix for OS X after r164690
* WebCore.exp.in:
2014-02-25 Anders Carlsson <andersca@apple.com>
Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
https://bugs.webkit.org/show_bug.cgi?id=129357
Reviewed by Sam Weinig.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
* page/DefaultVisitedLinkStore.cpp: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.cpp.
(WebCore::DefaultVisitedLinkStore::create):
(WebCore::DefaultVisitedLinkStore::DefaultVisitedLinkStore):
(WebCore::DefaultVisitedLinkStore::~DefaultVisitedLinkStore):
(WebCore::DefaultVisitedLinkStore::isLinkVisited):
(WebCore::DefaultVisitedLinkStore::addVisitedLink):
* page/DefaultVisitedLinkStore.h: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.h.
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::visitedLinkStore):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::visitedLinkStore):
* page/PageGroup.h:
* page/VisitedLinkStore.cpp: Renamed from Source/WebCore/page/VisitedLinkProvider.cpp.
(WebCore::VisitedLinkStore::VisitedLinkStore):
(WebCore::VisitedLinkStore::~VisitedLinkStore):
* page/VisitedLinkStore.h: Renamed from Source/WebCore/page/VisitedLinkProvider.h.
2014-02-25 Enrica Casucci <enrica@apple.com>
[WebKit2] Form controls handling.
https://bugs.webkit.org/show_bug.cgi?id=129344
<rdar://problem/16053643>
Reviewed by Simon Fraser and Joseph Pecoraro.
Adding some exports.
* WebCore.exp.in:
2014-02-25 Samuel White <samuel_white@apple.com>
Add accessibility search predicate support for AXOutlines
https://bugs.webkit.org/show_bug.cgi?id=123748
Reviewed by Chris Fleizach.
Added new AXOutlineSearchKey to support finding elements with aria role=tree.
No new tests, updated existing search-predicate.html test to cover AXOutlineSearchKey.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
* accessibility/AccessibilityObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilitySearchKeyMap):
2014-02-25 Mark Lam <mark.lam@apple.com>
Need to initialize VM stack data even when the VM is on an exclusive thread.
<https://webkit.org/b/129265>
Not reviewed.
No new tests.
Relanding r164627 now that <https://webkit.org/b/129341> is fixed.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
2014-02-25 Mark Lam <mark.lam@apple.com>
JSDOMPromise methods should acquire VM lock before calling into JS.
<https://webkit.org/b/129341>
Reviewed by Geoffrey Garen.
No new tests.
* bindings/js/JSDOMPromise.h:
(WebCore::DeferredWrapper::resolve):
(WebCore::DeferredWrapper::reject):
(WebCore::DeferredWrapper::resolve<String>):
(WebCore::DeferredWrapper::resolve<bool>):
(WebCore::char>>):
(WebCore::DeferredWrapper::reject<String>):
2014-02-25 Anders Carlsson <andersca@apple.com>
Simplify visited link style invalidation
https://bugs.webkit.org/show_bug.cgi?id=129340
Reviewed by Dan Bernstein.
Get rid of the static Page::allVisitedStateChanged and Page::visitedStateChanged
member functions and add functions to invalidate all styles on a single page or the style
for a single link hash on a single page.
* WebCore.exp.in:
* page/Page.cpp:
(WebCore::Page::invalidateStylesForAllLinks):
(WebCore::Page::invalidateStylesForLink):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::addVisitedLink):
(WebCore::PageGroup::removeVisitedLink):
(WebCore::PageGroup::removeVisitedLinks):
2014-02-25 Andreas Kling <akling@apple.com>
Remove unused ThreadSpecificInspectorCounters.
<https://webkit.org/b/129337>
We were keeping count of all the JS event listeners in every thread
to support an old Chromium feature that's no longer relevant.
Removing this gets rid of expensive thread-local storage lookups.
Reviewed by Anders Carlsson.
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::~JSEventListener):
* inspector/InspectorCounters.cpp:
* inspector/InspectorCounters.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::setDOMCounters):
* inspector/protocol/Timeline.json:
* platform/ThreadGlobalData.cpp:
(WebCore::ThreadGlobalData::ThreadGlobalData):
(WebCore::ThreadGlobalData::destroy):
* platform/ThreadGlobalData.h:
2014-02-25 Laszlo Vidacs <lvidacs.u-szeged@partner.samsung.com>
display:table with padding and/or borders in border-box calculates height incorrectly
https://bugs.webkit.org/show_bug.cgi?id=126576
Reviewed by David Hyatt.
Based on blink issue https://codereview.chromium.org/25206002/
Tests: fast/box-sizing/css-table-collapse.html
fast/box-sizing/css-table-no-collapse.html
fast/box-sizing/table-collapse.html
fast/box-sizing/table-no-collapse.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::computePositionedLogicalHeightUsing):
2014-02-25 Anders Carlsson <andersca@apple.com>
Get rid of VisitedLinkStrategy
https://bugs.webkit.org/show_bug.cgi?id=129324
Reviewed by Dan Bernstein.
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::PlatformStrategies):
* platform/VisitedLinkStrategy.h: Removed.
2014-02-25 Alexey Proskuryakov <ap@apple.com>
Rolling out http://trac.webkit.org/changeset/164611, because it broke
WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test
The change was for:
https://bugs.webkit.org/show_bug.cgi?id=129141
Create SessionID class
2014-02-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164627.
http://trac.webkit.org/changeset/164627
https://bugs.webkit.org/show_bug.cgi?id=129325
Broke SubtleCrypto tests (Requested by ap on #webkit).
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
2014-02-25 Anders Carlsson <andersca@apple.com>
DefaultVisitedLinkProvider can just call into the page group directly
https://bugs.webkit.org/show_bug.cgi?id=129320
Reviewed by Andreas Kling.
* page/DefaultVisitedLinkProvider.cpp:
(WebCore::DefaultVisitedLinkProvider::isLinkVisited):
(WebCore::DefaultVisitedLinkProvider::addVisitedLink):
2014-02-25 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r164638.
http://trac.webkit.org/changeset/164638
https://bugs.webkit.org/show_bug.cgi?id=129321
Broke Windows build. (Requested by bfulgham on #webkit).
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):
* dom/Element.cpp:
(WebCore::ensureAttrNodeListForElement):
(WebCore::Element::attributes):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
(WebCore::ElementRareData::create):
(WebCore::ElementRareData::setAttributeMap):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::create):
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/MutationObserverRegistration.h:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::create):
(WebCore::NamedNodeMap::NamedNodeMap):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::create):
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeMutationObserverData::create):
(WebCore::NodeMutationObserverData::NodeMutationObserverData):
(WebCore::NodeRareData::create):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
(WebCore::NodeRareData::NodeRareData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
2014-02-25 Eric Carlson <eric.carlson@apple.com>
[iOS] Show status image when playing video to external device
https://bugs.webkit.org/show_bug.cgi?id=129277
Reviewed by Jer Noble.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleEvent): Restructure the code so it is possible to handle events
that target the video element which aren't in the HandledVideoEvents array.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.currentPlaybackTargetIsWireless): webkitCurrentPlaybackTargetIsWireless
is an attribute, not a function.
(ControllerIOS.prototype.updateWirelessPlaybackStatus): Fix style.
(ControllerIOS.prototype.updateWirelessTargetAvailable): Ditto.
(ControllerIOS.prototype.updateProgress): Ditto.
(ControllerIOS.prototype.handleWrapperTouchStart): Show the controls if the wireless status
display is touched.
(ControllerIOS.prototype.handleFullscreenButtonClicked): Fix style
(ControllerIOS.prototype.handleWirelessPlaybackChange): Ditto.
(ControllerIOS.prototype.handleWirelessTargetAvailableChange):
(ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto. Stop even propagation.
Move "playback target" logic into HTMLMediaSession.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::~HTMLMediaElement): Call media session.
(WebCore::HTMLMediaElement::loadResource): Tell media session to apply media player
restrictions now that it has a url.
(WebCore::HTMLMediaElement::invalidateCachedTime): Only log when cached time is not
already invalie.
(WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Call media session.
(WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
(WebCore::HTMLMediaElement::addEventListener): Ditto.
(WebCore::HTMLMediaElement::removeEventListen): Ditto.
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
(WebCore::HTMLMediaElement::createMediaPlayer): Ditto.
* html/HTMLMediaSession.cpp:
(WebCore::restrictionName): Log new WirelessVideoPlaybackDisabled restriction.
(WebCore::HTMLMediaSession::showingPlaybackTargetPickerPermitted): Return false if there
is no page, or if wireless playback is disabled.
(WebCore::HTMLMediaSession::currentPlaybackTargetIsWireless): New, logic from HTMLMediaElement.
(WebCore::HTMLMediaSession::showPlaybackTargetPicker): Ditto.
(WebCore::HTMLMediaSession::hasWirelessPlaybackTargets): Ditto.
(WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Ditto.
(WebCore::HTMLMediaSession::setWirelessVideoPlaybackDisabled): Ditto.
(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners): Ditto.
(WebCore::HTMLMediaSession::applyMediaPlayerRestrictions): New, apply media player specific
restriction.
* html/HTMLMediaSession.h:
Move "playback target" logic into HTMLMediaSession.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseAttribute): Call media session.
(WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Call media session.
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::showPlaybackTargetPicker): New method, does nothing in base class.
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::showPlaybackTargetPicker): Add non-functional stub.
Implement wireless playback control and status API.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Dispatch TargetIsWirelessChanged.
(WebCore::MediaPlayerPrivateAVFoundation::playbackTargetIsWirelessChanged): Pass through to
media element.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
m_allowsWirelessVideoPlayback.
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "externalPlaybackActive" observer.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Fix broken logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Add "externalPlaybackActive" observer,
set initial wireless playback.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Fix broken logging.
(WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled): New.
(WebCore::MediaPlayerPrivateAVFoundationObjC::playbackTargetIsWirelessDidChange): New.
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Deal with
externalPlaybackActive.
2014-02-24 Brent Fulgham <bfulgham@apple.com>
[Win] Gracefully recover from missing 'naturalSize' parameter for media
https://bugs.webkit.org/show_bug.cgi?id=129278
Reviewed by Eric Carlson.
* platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add declaration for
missing function call.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::assetStatus): Don't treat missing 'naturalSize'
as a fatal error.
(WebCore::MediaPlayerPrivateAVFoundationCF::tracksChanged): Handle case of asset track
not being available yet.
(WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): If the 'naturalSize' is empty,
use the Player Item's 'presentationSize' instead.
(WebCore::AVFWrapper::processNotification): Add missing handler for duration changed.
2014-02-25 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Add ENABLE flag
https://bugs.webkit.org/show_bug.cgi?id=129153
Reviewed by Simon Fraser.
Added ENABLE_CSS_GRID_LAYOUT feature flag.
* Configurations/FeatureDefines.xcconfig:
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::isLayoutDependent):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSGridTemplateAreasValue.cpp:
* css/CSSGridTemplateAreasValue.h:
* css/CSSParser.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSParser.h:
* css/CSSParserMode.h:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSPropertyNames.in:
* css/CSSValue.cpp:
(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue):
* css/StylePropertyShorthand.cpp:
(WebCore::shorthandForProperty):
(WebCore::matchingShorthandsForLonghand):
* css/StyleResolver.cpp:
(WebCore::equivalentBlockDisplay):
(WebCore::StyleResolver::adjustRenderStyle):
(WebCore::StyleResolver::applyProperty):
* css/StyleResolver.h:
* dom/Document.cpp:
* dom/Document.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/RenderGrid.cpp:
* rendering/RenderGrid.h:
* rendering/style/GridCoordinate.h:
* rendering/style/GridLength.h:
* rendering/style/GridPosition.h:
* rendering/style/GridTrackSize.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleAllInOne.cpp:
* rendering/style/StyleGridData.cpp:
* rendering/style/StyleGridData.h:
* rendering/style/StyleGridItemData.cpp:
* rendering/style/StyleGridItemData.h:
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
2014-02-25 Jer Noble <jer.noble@apple.com>
[EME][Mac] Fix a few issues in CDMSessionMediaSourceAVFObjC.
https://bugs.webkit.org/show_bug.cgi?id=129310
Reviewed by Eric Carlson.
Only send a 'keyerror' event if an actual error code was returned, not just
when no key was added:
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::addKeyTimerFired):
The 'length' parameter to a typed ArrayBufferView is the number of entries
in the array, not the byte length:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):
The return value of streamingContentKeyRequestDataForApp:contentIdentifier:trackId:options:error
is autoreleased; do not wrap it in an adoptNS:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::update):
2014-02-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[MediaStream] Adding mock implementation of UserMediaClient
https://bugs.webkit.org/show_bug.cgi?id=129274
Reviewed by Eric Carlson.
* platform/mock/UserMediaClientMock.h: Added.
(WebCore::UserMediaClientRequestNotifier::UserMediaClientRequestNotifier):
* testing/Internals.cpp:
(WebCore::Internals::Internals):
2014-02-25 Ryosuke Niwa <rniwa@webkit.org>
Tighten bitfields in live NodeLists and HTMLCollections
https://bugs.webkit.org/show_bug.cgi?id=129300
Reviewed by Geoffrey Garen.
Reduce the number of bits used for m_rootType and m_type in LiveNodeList.
Also use enum class for LiveNodeList types. We keep "Type" suffix not to
confuse old-ish compilers.
* dom/ClassNodeList.cpp:
(WebCore::ClassNodeList::ClassNodeList):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByName):
(WebCore::ContainerNode::getElementsByClassName):
(WebCore::ContainerNode::radioNodeList):
* dom/LiveNodeList.cpp:
(WebCore::LiveNodeList::collectionFirst):
(WebCore::LiveNodeList::collectionTraverseForward):
* dom/LiveNodeList.h:
(WebCore::LiveNodeList::LiveNodeList):
* dom/NameNodeList.cpp:
(WebCore::NameNodeList::NameNodeList):
* dom/NameNodeList.h:
(WebCore::NameNodeList::create):
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::namedNodeListKey):
* dom/TagNodeList.cpp:
(WebCore::HTMLTagNodeList::HTMLTagNodeList):
* dom/TagNodeList.h:
(WebCore::TagNodeList::create):
(WebCore::HTMLTagNodeList::create):
* html/HTMLCollection.h:
* html/LabelableElement.cpp:
(WebCore::LabelableElement::labels):
* html/LabelsNodeList.cpp:
(WebCore::LabelsNodeList::LabelsNodeList):
* html/LabelsNodeList.h:
* html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
* html/RadioNodeList.h:
(WebCore::RadioNodeList::create):
2014-02-24 Anders Carlsson <andersca@apple.com>
Make it possible to set the visited link provider on a per page basis
https://bugs.webkit.org/show_bug.cgi?id=129288
Reviewed by Andreas Kling.
* WebCore.exp.in:
Export symbols needed by WebKit2.
* WebCore.xcodeproj/project.pbxproj:
Make VisitedLinkProvider a private header.
* page/Page.cpp:
(WebCore::Page::Page):
Take the visited link provider from the PageClients object.
(WebCore::Page::visitedLinkProvider):
If the page has a visited link provider set, return it.
* page/Page.h:
Add VisitedLinkProvider to Page and PageClients.
2014-02-25 Morten Stenshorne <mstensho@opera.com>
[New Multicolumn] -webkit-column-break-inside:avoid doesn't work
https://bugs.webkit.org/show_bug.cgi?id=129299
Reviewed by Andrei Bucur.
adjustForUnsplittableChild() simply forgot to check whether we
were inside flow thread based multicol.
Test: fast/multicol/newmulticol/avoid-column-break-inside.html
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::adjustForUnsplittableChild):
2014-02-25 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Remove unused function RenderFlowThread::regionForCompositedLayer
https://bugs.webkit.org/show_bug.cgi?id=129303
Reviewed by Andrei Bucur.
Cleanup, no funtionality change, no new tests.
* rendering/RenderFlowThread.h:
2014-02-25 Mihai Tica <mitica@adobe.com>
[CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
https://bugs.webkit.org/show_bug.cgi?id=126158
Reviewed by Mihnea Ovidenie.
As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
should force transform-style: flat.
Test: css3/compositing/blend-mode-transform-style.html
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.
2014-02-25 Zan Dobersek <zdobersek@igalia.com>
Move to using std::unique_ptr for Element, Node and related classes
https://bugs.webkit.org/show_bug.cgi?id=129058
Reviewed by Anders Carlsson.
Replace uses of OwnPtr and PassOwnPtr in Element, Node and the related
classes with std::unique_ptr and move semantics.
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
(WebCore::ChildNodesLazySnapshot::hasSnapshot):
* dom/Element.cpp:
(WebCore::ensureAttrNodeListForElement):
(WebCore::Element::attributes):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
(WebCore::ElementRareData::setAttributeMap):
* dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
(WebCore::MutationObserverRegistration::clearTransientRegistrations):
(WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
* dom/MutationObserverRegistration.h:
* dom/NamedNodeMap.h:
(WebCore::NamedNodeMap::NamedNodeMap):
* dom/Node.cpp:
(WebCore::Node::ensureRareData):
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::ensureEventTargetData):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeRareData::NodeRareData):
(WebCore::NodeRareData::clearNodeLists):
(WebCore::NodeRareData::ensureNodeLists):
(WebCore::NodeRareData::ensureMutationObserverData):
* dom/StyledElement.cpp:
(WebCore::StyledElement::rebuildPresentationAttributeStyle):
2014-02-25 Andreas Kling <akling@apple.com>
Prune dead code for Web Inspector memory instrumentation.
<https://webkit.org/b/129286>
This was leftover code from Chromium's inspector. It's not used by
today's WebKit inspector.
Reviewed by Sam Weinig.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorController.h:
* inspector/InspectorMemoryAgent.cpp: Removed.
* inspector/InspectorMemoryAgent.h: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
* inspector/InspectorTimelineAgent.h:
* inspector/WorkerInspectorController.cpp:
(WebCore::WorkerInspectorController::WorkerInspectorController):
* inspector/protocol/Memory.json: Removed.
2014-02-24 Chris Fleizach <cfleizach@apple.com>
AX: Support abbr, acronym
https://bugs.webkit.org/show_bug.cgi?id=128860
Reviewed by Mario Sanchez Prada.
Expose the data in <abbr>, <acronym> and <th abbr=""> as an
alternateTextValue() parameter.
Test: platform/mac/accessibility/abbr-acronym-tags.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::hasTagName):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::alternateTextValue):
(WebCore::AccessibilityObject::supportsAlternateTextValue):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::alternateTextValue):
(WebCore::AccessibilityRenderObject::supportsAlternateTextValue):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::alternateTextValue):
(WebCore::AccessibilityTableCell::supportsAlternateTextValue):
* accessibility/AccessibilityTableCell.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(AXAttributeStringSetAlternateTextValue):
(AXAttributedStringAppendText):
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
2014-02-24 Martin Robinson <mrobinson@igalia.com>
[GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
https://bugs.webkit.org/show_bug.cgi?id=128417
Reviewed by Carlos Garcia Campos.
* bindings/gobject/GNUmakefile.am: Generate a config file for webkitdom documentation generation.
2014-02-24 Mark Lam <mark.lam@apple.com>
Need to initialize VM stack data even when the VM is on an exclusive thread.
<https://webkit.org/b/129265>
Reviewed by Geoffrey Garen.
No new tests.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
- Added an assertion to ensure that we are holding the JSLock.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::commonVM):
- Updated to use the new VM::setExclusiveThread().
2014-02-24 Anders Carlsson <andersca@apple.com>
Add a DefaultVisitedLinkProvider and route visited link actions through it
https://bugs.webkit.org/show_bug.cgi?id=129285
Reviewed by Dan Bernstein.
DefaultVisitedLinkProvider currently just forwards everything to the visited link strategy,
but will soon take over the responsibilities of visited link handling from PageGroup.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* dom/VisitedLinkState.cpp:
(WebCore::VisitedLinkState::determineLinkStateSlowCase):
* loader/HistoryController.cpp:
(WebCore::addVisitedLink):
(WebCore::HistoryController::updateForStandardLoad):
(WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
(WebCore::HistoryController::updateForClientRedirect):
(WebCore::HistoryController::updateForSameDocumentNavigation):
(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):
* page/DefaultVisitedLinkProvider.cpp: Copied from Source/WebCore/page/VisitedLinkProvider.h.
(WebCore::DefaultVisitedLinkProvider::create):
(WebCore::DefaultVisitedLinkProvider::DefaultVisitedLinkProvider):
(WebCore::DefaultVisitedLinkProvider::~DefaultVisitedLinkProvider):
(WebCore::DefaultVisitedLinkProvider::isLinkVisited):
(WebCore::DefaultVisitedLinkProvider::addVisitedLink):
* page/DefaultVisitedLinkProvider.h: Copied from Source/WebCore/page/VisitedLinkProvider.h.
* page/Page.cpp:
(WebCore::Page::visitedLinkProvider):
* page/Page.h:
* page/PageGroup.cpp:
(WebCore::PageGroup::PageGroup):
(WebCore::PageGroup::visitedLinkProvider):
* page/PageGroup.h:
* page/VisitedLinkProvider.h:
2014-02-24 Jeremy Jones <jeremyj@apple.com>
WK2 AVKit fullscreen doesn't display video.
https://bugs.webkit.org/show_bug.cgi?id=128564
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export WebCore::PlatformCALayer::platformCALayer()
* platform/ios/WebVideoFullscreenInterface.h:
* platform/ios/WebVideoFullscreenInterfaceAVKit.h:
Remove SetVideoLayerID().
* platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebVideoFullscreenInterfaceAVKit::setVideoLayer):
Wrap make video layer look like an AVAVPlayerLayer with WebAVPlayerLayer
* platform/ios/WebVideoFullscreenModelMediaElement.mm:
(WebVideoFullscreenModelMediaElement::setMediaElement):
Pass along the videoLayer before borrowing it so the interface will be ready to
catch the transaction that removes it.
2014-02-24 Samuel White <samuel_white@apple.com>
AX: AccessibilityObject::findMatchingObjects should never include 'this' in results.
https://bugs.webkit.org/show_bug.cgi?id=129243
Reviewed by Chris Fleizach.
Fix removes the container object from the search results when searching backwards. This
makes backwards & forwards search results consistent with each other.
Test: platform/mac/accessibility/search-predicate-container-not-included.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::findMatchingObjects):
2014-02-24 Samuel White <samuel_white@apple.com>
AX: findMatchingObjects backwards start position inconsistent with forwards start position when startObject == nullptr.
https://bugs.webkit.org/show_bug.cgi?id=129266
Reviewed by Chris Fleizach.
When searching forward with no start object, the first thing considered is the first child of
the container. However, when searching backwards with no start object nothing in the container
is considered; this basically negates the search. This patch makes backwards searching without
a start object start from the last child of the container to match forward search expectations.
Test: platform/mac/accessibility/search-predicate-start-not-specified.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::findMatchingObjects):
2014-02-24 Andreas Kling <akling@apple.com>
Prune dead code for Web Inspector canvas instrumentation.
<https://webkit.org/b/129269>
This was leftover code from Chromium's inspector. It's not used by
today's WebKit inspector.
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* inspector/InjectedScriptCanvasModule.cpp: Removed.
* inspector/InjectedScriptCanvasModule.h: Removed.
* inspector/InspectorAllInOne.cpp:
* inspector/InspectorCanvasAgent.cpp: Removed.
* inspector/InspectorCanvasAgent.h: Removed.
* inspector/InspectorCanvasInstrumentation.h: Removed.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::didBeginFrame):
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
* inspector/InspectorInstrumentation.h:
* inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::InstrumentingAgents):
(WebCore::InstrumentingAgents::reset):
* inspector/InstrumentingAgents.h:
2014-02-24 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Adjust lineTop position to the next available wrapping location at shape-outsides
https://bugs.webkit.org/show_bug.cgi?id=128693
Reviewed by David Hyatt.
When we don't have space next to the floating container, but we have space inside the floating-container next
to the defined shape-outside, we should wrap around the shape-outside. This patch fixes the behavior both for
cases when there is no space to fit at the first line, and for the additional lines cases.
Test: fast/shapes/shape-outside-floats/shape-outside-floats-linetop-adjustment.html
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::BreakingContext::handleText):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
* rendering/line/LineWidth.cpp:
(WebCore::availableWidthAtOffset):
(WebCore::LineWidth::updateLineDimension): Added new helper.
(WebCore::isWholeLineFit): Added new helper.
(WebCore::LineWidth::wrapNextToShapeOutside): Added new helper.
(WebCore::LineWidth::fitBelowFloats): Add optional parameter for the function.
* rendering/line/LineWidth.h:
2014-02-24 Martin Hock <mhock@apple.com>
Create SessionID value-style class for session IDs.
https://bugs.webkit.org/show_bug.cgi?id=129141
Reviewed by Brady Eidson.
* GNUmakefile.list.am:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp: Add SessionID member.
(WebCore::Page::Page):
(WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
* page/Page.h:
(WebCore::Page::setSessionID):
* page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
(WebCore::SessionID::SessionID):
(WebCore::SessionID::isValid): Not empty.
(WebCore::SessionID::isEphemeral):
(WebCore::SessionID::sessionID):
(WebCore::SessionID::operator==): Value-based equality.
(WebCore::SessionID::operator!=):
(WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
(WebCore::SessionID::defaultSessionID):
(WebCore::SessionID::legacyPrivateSessionID):
* page/SessionIDHash.h:
(WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
(WTF::SessionIDHash::equal):
(WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
(WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
(WTF::HashTraits<WebCore::SessionID>::isDeletedValue):
2014-02-24 Javier Fernandez <jfernandez@igalia.com>
[CSS Grid Layout] handle undefined RemainingSpace in computeUsedBreadthOfGridTracks algorithm
https://bugs.webkit.org/show_bug.cgi?id=128372
Reviewed by David Hyatt.
From Blink r165692 by <svillar@igalia.com>
The spec defines a different code path for the computeUsedBreadthOfGridTracks algorithm
http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfGridTracks.
Basically the track breadth is different when the available size is undefined and thus,
cannot be taken into account during the computations.
The available size is undefined whenever the height is auto or the grid element has a
shrink-to-fit behavior.
It was also renamed the function to match the specs so the function name starts with
'compute' instead of 'computed'.
No new tests, but added new cases to some of them.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::gridElementIsShrinkToFit):
(WebCore::RenderGrid::computeNormalizedFractionBreadth):
(WebCore::RenderGrid::layoutGridItems):
* rendering/RenderGrid.h:
2014-02-24 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed pre-emptive build fix.
* WebCore.vcxproj/WebCoreCommon.props: Add replay directory to include path.
2014-02-24 Brady Eidson <beidson@apple.com>
Break out ImageControls style into an external stylesheet
https://bugs.webkit.org/show_bug.cgi?id=129273
Reviewed by Jer Noble.
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
* css/CSSDefaultStyleSheets.h:
* html/shadow/mac/ImageControlsRootElementMac.cpp:
(WebCore::ImageControlsRootElementMac::maybeCreate):
* html/shadow/mac/imageControlsMac.css:
(.x-webkit-imagemenu):
(.x-webkit-imagemenu:hover):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::mediaControlsScript):
(WebCore::RenderTheme::imageControlsStyleSheet):
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::imageControlsStyleSheet):
2014-02-24 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[WebRTC] Validating RTCConfiguration according to the spec
https://bugs.webkit.org/show_bug.cgi?id=129182
Reviewed by Eric Carlson.
Spec states that:
- iceServers should not be an empty list
- the entry in the configuration dictionary is "urls", instead of "url"
- urls can be either a list or a string
Fixing all that in RTCConfiguration validation when creating a RTCPeerConnection
Existing tests were updated.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::appendIceServer): Added.
(WebCore::processIceServer): Added.
(WebCore::RTCPeerConnection::parseConfiguration):
2014-02-24 Radu Stavila <stavila@adobe.com>
[CSS Regions] Relative positioned elements overflowing the region do not get painted into the next tile
https://bugs.webkit.org/show_bug.cgi?id=129254
Reviewed by Antti Koivisto.
The painting of the region's layer should not be aborted so early if the region's fragment shouldn't be painted
because that would prevent all the layer's children from being painted.
Another problem this patch addresses is that clipping should also be performed when the clip rect is empty,
which is what happens when painting in a tile in which the flowed element would normally be painted
if it wasn't clipped by the region.
Test: fast/regions/content-relative-next-tile.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
2014-02-24 Renata Hodovan <rhodovan.u-szeged@partner.samsung.com>
Get rid of the unused 'immediate' parameters from repaint related functions
https://bugs.webkit.org/show_bug.cgi?id=129111
Reviewed by Simon Fraser.
Removing the 'immediate' parameters from repaint related functions - accoring
to the FIXME in RenderView::repaintViewRectangle() - since they have no effect.
No new tests are necessary because there is no behavior change
* dom/Element.cpp:
(WebCore::Element::setActive):
* loader/EmptyClients.h:
* page/Chrome.cpp:
(WebCore::Chrome::invalidateRootView):
(WebCore::Chrome::invalidateContentsAndRootView):
(WebCore::Chrome::invalidateContentsForSlowScroll):
* page/Chrome.h:
* page/ChromeClient.h:
* page/Frame.cpp:
(WebCore::Frame::tiledBackingStorePaintEnd):
* page/FrameView.cpp:
(WebCore::FrameView::invalidateRect):
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::shouldUpdate):
* page/FrameView.h:
* platform/HostWindow.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
(WebCore::ScrollView::scrollContentsSlowPath):
(WebCore::ScrollView::repaintContentRectangle):
(WebCore::ScrollView::updateOverhangAreas):
(WebCore::ScrollView::addPanScrollIcon):
(WebCore::ScrollView::removePanScrollIcon):
(WebCore::ScrollView::platformRepaintContentRectangle):
* platform/ScrollView.h:
* rendering/RenderBox.cpp:
(WebCore::RenderBox::repaintLayerRectsForImage):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::repaintRectangleInRegions):
* rendering/RenderFlowThread.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
* rendering/RenderLayer.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
(WebCore::RenderObject::repaint):
(WebCore::RenderObject::repaintRectangle):
(WebCore::RenderObject::repaintSlowRepaintObject):
* rendering/RenderObject.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::repaintFlowThreadContent):
(WebCore::RenderRegion::repaintFlowThreadContentRectangle):
* rendering/RenderRegion.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::repaintViewRectangle):
(WebCore::RenderView::flushAccumulatedRepaintRegion):
(WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
* rendering/RenderView.h:
* svg/graphics/SVGImageChromeClient.h:
2014-02-24 Tamas Gergely <tgergely.u-szeged@partner.samsung.com>
Code cleanup: remove leftover ENABLE(WORKERS) macros and support.
https://bugs.webkit.org/show_bug.cgi?id=129255
Reviewed by Csaba Osztrogonác.
ENABLE_WORKERS macro was removed in r159679, but r161589 added back some occurrences.
Support is now also removed from xcconfig files.
No new tests needed.
* Configurations/FeatureDefines.xcconfig:
* platform/ThreadGlobalData.cpp:
* platform/ThreadGlobalData.h:
* platform/Timer.h:
(WebCore::TimerBase::isActive):
* platform/ios/wak/WebCoreThread.mm:
(RunWebThread):
(StartWebThread):
2014-02-24 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
[CMake] Get rid of "FIXME: The Blackberry port ..." from WebCore/CmakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=129152
Reviewed by Gyuyoung Kim.
* CMakeLists.txt:
2014-02-24 David Kilzer <ddkilzer@apple.com>
Remove redundant setting in FeatureDefines.xcconfig
* Configurations/FeatureDefines.xcconfig:
2014-02-24 Mihai Tica <mitica@adobe.com>
[CSS Blending] An element having -webkit-mix-blend-mode should only blend with the contents of the parent stacking context
https://bugs.webkit.org/show_bug.cgi?id=129154
Reviewed by Dean Jackson.
The blending operation of an element having -webkit-mix-blend-mode should be restricted to the parent stacking context.
This change isolates blending, preventing it from blending with other underlying elements besides the parent stacking context.
Tests: css3/compositing/blend-mode-isolated-group-1.html
css3/compositing/blend-mode-isolated-group-2.html
css3/compositing/blend-mode-isolated-group-3.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer): Initialize added members to false.
(WebCore::RenderLayer::updateBlendMode): Check if a blend mode was set or unset. If so, set the m_updateParentStackingContextShouldIsolateBlendingDirty to true.
(WebCore::RenderLayer::updateParentStackingContextShouldIsolateBlending): Traverse to the parent stacking context and update the
m_isolatesBlending member accordingly.
* rendering/RenderLayer.h:
- Add isolatesBlending() as a condition for creating a transparency layer in the paintsWithTransparency method.
- Add m_updateParentStackingContextShouldIsolateBlendingDirty member.
- Add m_isolatesBlending member and getter.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Call updateParentStackingContextShouldIsolateBlending.
2014-02-24 Krzysztof Czech <k.czech@samsung.com>
[ATK] Wrong selected element at a given index in a list box.
https://bugs.webkit.org/show_bug.cgi?id=129039
Reviewed by Chris Fleizach.
Test: accessibility/select-element-at-index.html
The selected element at a given index was wrong. One should be considered among the
all children of a list box, not only selected ones.
* accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(core):
(listObjectForSelection):
(optionFromList):
(optionFromSelection):
(webkitAccessibleSelectionRefSelection):
2014-02-23 Dean Jackson <dino@apple.com>
[WebGL] Allow ANGLE to initialize unused varyings
https://bugs.webkit.org/show_bug.cgi?id=129240
<rdar://problem/15203342>
Reviewed by Sam Weinig.
Covered by: conformance/glsl/misc/shaders-with-varyings.html
* platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
Add SH_INIT_VARYINGS_WITHOUT_STATIC_USE to compiler flags.
2014-02-23 Sam Weinig <sam@webkit.org>
Update FeatureDefines.xcconfig
Rubber-stamped by Anders Carlsson.
* Configurations/FeatureDefines.xcconfig:
2014-02-23 Dean Jackson <dino@apple.com>
Sort the project file with sort-Xcode-project-file.
Rubber-stamped by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj:
2014-02-23 Sam Weinig <sam@webkit.org>
Fix incorrectly commented out code.
* platform/TelephoneNumberDetector.h:
2014-02-23 Sam Weinig <sam@webkit.org>
Extract platform specific parts of telephone number detection
https://bugs.webkit.org/show_bug.cgi?id=129238
Reviewed by Dean Jackson.
* WebCore.xcodeproj/project.pbxproj:
Add new files.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
(WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
* platform/TelephoneNumberDetector.h: Added.
* platform/cocoa/TelephoneNumberDetectorCocoa.cpp: Added.
(WebCore::TelephoneNumberDetector::phoneNumbersScanner):
(WebCore::TelephoneNumberDetector::isSupported):
(WebCore::TelephoneNumberDetector::find):
Move code to TelephoneNumberDetector.
2014-02-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Change a url parameter type with URL in NavigatorContentUtils
https://bugs.webkit.org/show_bug.cgi?id=129202
Reviewed by Sam Weinig.
It would be good if we use *URL* for url parameters instead of using String.
Merge from blink. https://src.chromium.org/viewvc/blink?view=rev&revision=165458.
* Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
(WebCore::verifyCustomHandlerURL):
(WebCore::NavigatorContentUtils::registerProtocolHandler):
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
(WebCore::NavigatorContentUtils::unregisterProtocolHandler):
* Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:
2014-02-23 Dean Jackson <dino@apple.com>
Update ANGLE to 836bd2176e5607b14846cf1fbc5932dbc91318f4
https://bugs.webkit.org/show_bug.cgi?id=129232
Reviewed by Brent Fulgham.
New files added, derived sources compiled directly, and generated
steps removed for both EFL and GTK, with much-needed help from
Sergio Correia.
* CMakeLists.txt:
* GNUMakefile.am:
2014-02-23 Sam Weinig <sam@webkit.org>
Move RenderMathMLMenclose.h/cpp to the right place in the Xcode project and sort.
Rubber-stamped by Anders Carlsson.
* WebCore.xcodeproj/project.pbxproj:
2014-02-23 Sam Weinig <sam@webkit.org>
Move telephone number detection behind its own ENABLE macro
https://bugs.webkit.org/show_bug.cgi?id=129236
Reviewed by Dean Jackson.
* Configurations/FeatureDefines.xcconfig:
Add ENABLE_TELEPHONE_NUMBER_DETECTION.
* dom/Document.cpp:
(WebCore::Document::Document):
* dom/Document.h:
* html/parser/HTMLConstructionSite.h:
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
* html/parser/HTMLTreeBuilder.h:
Use ENABLE(TELEPHONE_NUMBER_DETECTION).
* platform/mac/SoftLinking.h:
Remove PLATOFORM(IOS) from SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL, it is not iOS specific.
2014-02-23 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Fix bleed avoidance subpixel calculation.
https://bugs.webkit.org/show_bug.cgi?id=129225
Reviewed by Simon Fraser.
static_cast<LayoutUnit>(int value) only produces the desired result when subpixel is off.
Currently not testable.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
(WebCore::shrinkRectByOneDevicePixel):
(WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
(WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
2014-02-23 Zalan Bujtas <zalan@apple.com>
Subpixel rendering: Add devicepixel based computation to BorderEdge class.
https://bugs.webkit.org/show_bug.cgi?id=129224
Reviewed by Simon Fraser.
To produce correct width (and type) results, BorderEdge class needs to take device pixel ratio into account.
Currently not testable.
* rendering/RenderBoxModelObject.cpp:
(WebCore::BorderEdge::BorderEdge):
(WebCore::BorderEdge::obscuresBackgroundEdge):
(WebCore::BorderEdge::getDoubleBorderStripeWidths): this does not always produce the same
result as before, but the sum of inner and outer is not different.
(WebCore::BorderEdge::borderWidthInDevicePixel):
(WebCore::RenderBoxModelObject::getBorderEdgeInfo):
2014-02-22 Dan Bernstein <mitz@apple.com>
REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
https://bugs.webkit.org/show_bug.cgi?id=129227
Reviewed by Eric Carlson.
Reverted r164507.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
2014-02-22 Joseph Pecoraro <pecoraro@apple.com>
Remove some unreachable code (-Wunreachable-code)
https://bugs.webkit.org/show_bug.cgi?id=129220
Reviewed by Eric Carlson.
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndTag):
The only tricky case. Here there was a break inside the
#if, but not the #else, and a break after the #endif.
Remove the break inside the #if, and always use the
break after the #endif.
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::modeToString):
* bindings/js/JSTrackCustom.cpp:
(WebCore::toJS):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::functionForUniform):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionDisplayMode):
2014-02-22 Dean Jackson <dino@apple.com>
Letterpress effect disabled for synthetic italic
https://bugs.webkit.org/show_bug.cgi?id=129218
<rdar://problem/15997846>
Reviewed by Dan Bernstein.
There was no need to guard against synthetic italics and letterpress.
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs): Remove !useLetterpressEffect from conditional.
2014-02-21 Sam Weinig <sam@webkit.org>
Expose phase and momentum phase as SPI on DOMWheelEvent
<rdar://problem/16110871>
https://bugs.webkit.org/show_bug.cgi?id=129184
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export core(DOMWheelEvent).
* WebCore.xcodeproj/project.pbxproj:
Make DOMWheelEventInternal.h available in WebKit.
* dom/Element.cpp:
(WebCore::Element::dispatchWheelEvent):
* dom/WheelEvent.cpp:
(WebCore::determineDeltaMode):
(WebCore::WheelEvent::WheelEvent):
(WebCore::WheelEvent::initWheelEvent):
(WebCore::WheelEvent::initWebKitWheelEvent):
Move PlatformWheelEvent -> DOMWheelEvent conversion to DOMWheelEvent.
* dom/WheelEvent.h:
(WebCore::WheelEvent::create):
(WebCore::WheelEvent::phase):
(WebCore::WheelEvent::momentumPhase):
Store phase and momentumPhase on the WheelEvent.
2014-02-22 Alexey Proskuryakov <ap@apple.com>
Rename JWK key_ops values from wrap/unwrap to wrapKey/unwrapKey
https://bugs.webkit.org/show_bug.cgi?id=129121
Reviewed by Sam Weinig.
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated to newer names.
(WebCore::addUsagesToJSON): Ditto.
(WebCore::JSCryptoKeySerializationJWK::serialize): rsa-oaep-key-manipulation test
started ot fail, because RSA-OAEP with 2048 bit key and sha-1 can only encrypt
214 bytes, and the new longer names made JSON serialization slightly longer.
Compensate by not doing any indentation in JSON.
2014-02-22 Frédéric Wang <fred.wang@free.fr>
Only skip stretchy operators when determining the stretch height.
https://bugs.webkit.org/show_bug.cgi?id=126842
Reviewed by Chris Fleizach.
The MathML code only takes into account non-mo children for the computation of the stretch size. This change includes non-stretchy mo in that computation. A new test is added into mathml/presentation/stretchy-depth-height.html.
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
2014-02-22 Frédéric Wang <fred.wang@free.fr>
Implement asymmetric/symmetric stretching of vertical operators.
https://bugs.webkit.org/show_bug.cgi?id=124827.
Reviewed by Chris Fleizach.
The MathML code stretches vertical operators asymmetrically by default. This patch takes into account the symmetric attribute or the symmetric property of the operator dictionary to stretch operators symmetrically.
Test: mathml/presentation/stretchy-depth-height-symmetric.html
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::stretchTo):
(WebCore::RenderMathMLOperator::updateFromElement):
(WebCore::RenderMathMLOperator::updateStyle):
2014-02-22 Frédéric Wang <fred.wang@free.fr>
Bug 119043 - Large stretch size error for MathML operators.
https://bugs.webkit.org/show_bug.cgi?id=119043
Reviewed by Chris Fleizach.
The MathML code used some arbitrary gOperatorExpansion factor for the
stretch size and 2/3 1/2 constants for the baseline. This change tries
to consider height/depth of siblings of the stretchy operator so that
the stretchy operator now matches its target.
Test: mathml/presentation/stretchy-depth-height.html
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLTable):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::stretchTo):
(WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::computeLogicalHeight):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
2014-02-22 Frédéric Wang <fred.wang@free.fr>
Unreviewed, rolling out r164534.
http://trac.webkit.org/changeset/164534
https://bugs.webkit.org/show_bug.cgi?id=119043
missing tests
* rendering/RenderObject.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::expandedStretchHeight):
(WebCore::RenderMathMLOperator::stretchToHeight):
(WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::computeLogicalHeight):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
2014-02-22 Frédéric Wang <fred.wang@free.fr>
Bug 119043 - Large stretch size error for MathML operators.
https://bugs.webkit.org/show_bug.cgi?id=119043
Reviewed by Chris Fleizach.
The MathML code used some arbitrary gOperatorExpansion factor for the
stretch size and 2/3 1/2 constants for the baseline. This change tries
to consider height/depth of siblings of the stretchy operator so that
the stretchy operator now matches its target.
Test: mathml/presentation/stretchy-depth-height.html
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderMathMLTable):
* rendering/mathml/RenderMathMLBlock.h:
* rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::RenderMathMLOperator):
(WebCore::RenderMathMLOperator::stretchTo):
(WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
(WebCore::RenderMathMLOperator::updateStyle):
(WebCore::RenderMathMLOperator::firstLineBaseline):
(WebCore::RenderMathMLOperator::computeLogicalHeight):
* rendering/mathml/RenderMathMLOperator.h:
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
2014-02-21 Zalan Bujtas <zalan@apple.com>
REGRESSION(r164412): Pixel cracks when zooming in to any web content.
https://bugs.webkit.org/show_bug.cgi?id=129195
Reviewed by Simon Fraser.
Integral clipping of the repaint rect was prematurely removed in RenderLayerBacking::paintContents().
Repaint rects needs a uniform, device pixel precise clipping across the painting flow including RenderLayer,
RenderView and TileController.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintContents):
(WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):
2014-02-21 Jer Noble <jer.noble@apple.com>
Unreviewed Mac build fix after r164529.
Replace the string-to-array algorithm with a archictecture-independant
one.
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):
2014-02-21 Jer Noble <jer.noble@apple.com>
[EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=129166
Reviewed by Eric Carlson.
Add a new CDMSession, cerated by MediaPlayerPrivateMediaSourceAVFObjC allowing
media-source-backed media elements to play protected content.
Add a new CDMSessionMediaSourceAVFObjC class:
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Added.
(WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):
* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Added.
(WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Do not actually generate a
key request until the certificate data has been added via update();
(WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): No-op.
(WebCore::CDMSessionMediaSourceAVFObjC::update): If no certificate data has yet been
added, assume the incoming message contains it.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Add supportsKeySystem.
(WebCore::keySystemIsSupported): Use "com.apple.fps.2_0" to distinguish from the not-media-source scheme.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Check the keySystem type.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Added.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createSession): Added, pass through to MediaSourcePrivate.
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::createSession): Added.
(WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded): Pass through to MediaPlayer.
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
Added, pass through to SourceBufferPrivate.
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Remember
which track is requesting the key, and pass the request to MediaSourcePrivate.
Add new files to the project.
* WebCore.xcodeproj/project.pbxproj:
2014-02-21 Alexey Proskuryakov <ap@apple.com>
CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify contains seemingly accidental unreachable code
https://bugs.webkit.org/show_bug.cgi?id=129193
Reviewed by Joseph Pecoraro.
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Fix the accidental code.
2014-02-21 Brent Fulgham <bfulgham@apple.com>
Extend media support for WebVTT sources
https://bugs.webkit.org/show_bug.cgi?id=129156
Reviewed by Eric Carlson.
* Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::outOfBandTrackSources): Added.
* html/HTMLMediaElement.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::outOfBandTrackSources): Added.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::outOfBandTrackSources): Added.
* platform/graphics/PlatformTextTrack.h:
(WebCore::PlatformTextTrack::create): Update for new constructor signature.
(WebCore::PlatformTextTrack::createOutOfBand): Added.
(WebCore::PlatformTextTrack::url): Added.
(WebCore::PlatformTextTrack::isDefault): Added.
(WebCore::PlatformTextTrack::PlatformTextTrack): Revised to take new URL and
'isDefault' arguments.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::mediaDescriptionForKind): Added.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation about any
WebVTT tracks supplied by the web page.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Filter out any out-of-band
WebVTT tracks returned by the media engine to avoid double-counting tracks.
2014-02-21 Ryosuke Niwa <rniwa@webkit.org>
Inner text element should not use -webkit-user-modify
https://bugs.webkit.org/show_bug.cgi?id=129035
Reviewed by Andreas Kling.
To eliminate the internal use of -webkit-user-modify, use contenteditable attribute in the inner text elements
instead of manually inspecting disabled-ness and readonly-ness in RenderTextControl.
Unfortunately, we still have to manually set UserModify value in RenderTextControl::adjustInnerTextStyle since
RenderTextControl::styleDidChange creates RenderStyle for its inner text from scratch via createInnerTextStyle.
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::disabledStateChanged): Don't use childrenOfType iterator which asserts that DOM
isn't mutated during the traversal since we now set contenteditable attribute inside disabledStateChanged via
updateFromControlElementsAncestorDisabledStateUnder.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::parseAttribute): Extracted readOnlyAttributeChanged out of this function so
that HTMLTextFormControl could override it to call updateInnerTextElementEditability.
(WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
* html/HTMLFormControlElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability after creating
shadow DOM for the current input type.
(WebCore::HTMLInputElement::updateType): Ditto.
(WebCore::HTMLInputElement::parseAttribute): Ditto.
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability.
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::disabledStateChanged): Added to update contenteditable attribute since
the editability of the inner text element depends on disabled-ness of the element.
(WebCore::HTMLTextFormControlElement::readOnlyAttributeChanged): Ditto for the readonly-ness of the element.
(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability): Added.
* html/HTMLTextFormControlElement.h:
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::adjustInnerTextStyle): Use the inner text element's presentationAttributeStyle() to
compute the appropriate EUserModify value instead of hard-coding it here.
* rendering/RenderTextControl.h:
2014-02-21 ChangSeok Oh <changseok.oh@collabora.com>
[GTK] Support WEBGL_draw_buffers extension.
https://bugs.webkit.org/show_bug.cgi?id=129143
Reviewed by Dean Jackson.
Support the WEBGL_draw_buffers WebGL extension for gtk port. Relevant opengl APIs
are exposed for WebGLRenderingContext to access them properly.
Covered by fast/canvas/webgl/webgl-draw-buffers.html
* platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
* platform/graphics/OpenGLShims.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::supportsExtension):
(WebCore::Extensions3DOpenGL::drawBuffersEXT):
2014-02-21 ChangSeok Oh <changseok.oh@collabora.com>
Mac port uses ANGLE_instanced_arrays related apis through those in GraphicsContext3DCommon.cpp
https://bugs.webkit.org/show_bug.cgi?id=128803
Reviewed by Dean Jackson.
Merge mac port implementation of ANGLE_instanced_arrays into common code.
No new tests, no functionality changed.
* platform/graphics/mac/GraphicsContext3DMac.mm:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
(WebCore::Extensions3DOpenGL::drawArraysInstanced):
(WebCore::Extensions3DOpenGL::drawElementsInstanced):
(WebCore::Extensions3DOpenGL::vertexAttribDivisor):
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::vertexAttribDivisor):
2014-02-21 Myles C. Maxfield <mmaxfield@apple.com>
After copy and paste, cursor may appear to be above the bottom of content
https://bugs.webkit.org/show_bug.cgi?id=129167
Reviewed by Ryosuke Niwa.
Adding a clear:both to the end of content.
I can't handle the case of the cursor appearing above the bottom of
absolutely positioned divs (of the case of floats inside absolutely
positioned divs) because you can't know where the bottom of a div
will end up being rendered (it is affected by things like browser
window width and text size settings). Therefore, the only case I
can handle is the case where there is a floating div in the same
level as the document itself.
Test: editing/pasteboard/copy-paste-inserts-clearing-div.html
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::isFloating):
* editing/EditingStyle.h:
* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::appendElement):
(WebCore::createMarkupInternal):
2014-02-21 Dean Jackson <dino@apple.com>
[iOS Media] Wireless target UI
https://bugs.webkit.org/show_bug.cgi?id=129189
<rdar://problem/15349928>
<rdar://problem/16100060>
Reviewed by Eric Carlson.
Implement a prototype UI for wireless playback targets. The UI
doesn't currently work, but can be simulated via a class variable
in ControllerIOS.
* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-panel button): Reset the default style of
button elements, to avoid getting a border.
(audio::-webkit-media-controls-wireless-playback-status): Holds the UI showing
the user that the media is playing on another target.
(audio::-webkit-media-controls-wireless-playback-status.hidden):
(audio::-webkit-media-controls-wireless-playback-picker-button): The button to
trigger selection of targets.
(audio::-webkit-media-controls-wireless-playback-picker-button.active):
(audio::-webkit-media-controls-panel): This needs to be position absolute for
the wireless playback status to fill the viewport.
* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS): Check for targets.
(ControllerIOS.prototype.addVideoListeners):
(ControllerIOS.prototype.removeVideoListeners):
(ControllerIOS.prototype.UIString): New method to return localized strings (with
a FIXME).
(ControllerIOS.prototype.shouldHaveAnyUI): Needs to display if there is a wireless
target.
(ControllerIOS.prototype.currentPlaybackTargetIsWireless):
(ControllerIOS.prototype.updateWirelessPlaybackStatus): Create the status content,
replacing the device name if it is available.
(ControllerIOS.prototype.updateWirelessTargetAvailable):
(ControllerIOS.prototype.createControls):
(ControllerIOS.prototype.configureInlineControls):
(ControllerIOS.prototype.handleWirelessPlaybackChange):
(ControllerIOS.prototype.handleWirelessTargetAvailableChange):
(ControllerIOS.prototype.handleWirelessPickerButtonClicked):
2014-02-21 Jer Noble <jer.noble@apple.com>
Make a generic CDMPrivateMediaPlayer and move its CDMSession into platform/.
https://bugs.webkit.org/show_bug.cgi?id=129164
Reviewed by Eric Carlson.
Move the session created by CDMPrivateAVFoundation into platform, and rename
CDMPrivateAVFoundation to CDMPrivateMediaPlayer. Future media engines who want
to support a keysystem from within the media engine can create their own
CDMSession as part of the MediaPlayerPrivate interface.
* Modules/encryptedmedia/CDM.cpp:
(WebCore::installedCDMFactories):
(WebCore::CDM::createSession):
* Modules/encryptedmedia/CDM.h:
* Modules/encryptedmedia/CDMPrivate.h:
* Modules/encryptedmedia/MediaKeySession.cpp:
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Removed.
* Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.cpp.
(WebCore::CDMPrivateMediaPlayer::supportsKeySystem):
(WebCore::CDMPrivateMediaPlayer::supportsKeySystemAndMimeType):
(WebCore::CDMPrivateMediaPlayer::supportsMIMEType):
(WebCore::CDMPrivateMediaPlayer::createSession):
* Modules/encryptedmedia/CDMPrivateMediaPlayer.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
(WebCore::CDMPrivateMediaPlayer::create):
(WebCore::CDMPrivateMediaPlayer::~CDMPrivateMediaPlayer):
(WebCore::CDMPrivateMediaPlayer::cdm):
(WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/CDMSession.h: Extracted from CDMPrivateAVFoundation.h.
(WebCore::CDMSessionClient::~CDMSessionClient):
(WebCore::CDMSession::CDMSession):
(WebCore::CDMSession::~CDMSession):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::createSession):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::createSession):
* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
(WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
* platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.mm.
(WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
(WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
(WebCore::CDMSessionAVFoundationObjC::releaseKeys):
(WebCore::CDMSessionAVFoundationObjC::update):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
* testing/MockCDM.cpp:
(WebCore::MockCDMSession::setClient):
(WebCore::MockCDM::createSession):
* testing/MockCDM.h:
2014-02-21 Jer Noble <jer.noble@apple.com>
Add a supportsKeySystem media engine factory parameter.
https://bugs.webkit.org/show_bug.cgi?id=129161
Reviewed by Eric Carlson.
Add a new parameter to the MediaPlayerFactory to allow registered media
engines to be queried for keySystem support:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayerFactory::MediaPlayerFactory):
(WebCore::MediaPlayer::supportsKeySystem):
* platform/graphics/MediaPlayer.h:
Support this new field in MediaPlayerPrivateAVFoundationObjC:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::keySystemIsSupported):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
Add an empty field for SupportsKeySystem to the remaining media engines:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::registerMediaEngine):
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::registerMediaEngine):
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::registerMediaEngine):
2014-02-21 Benjamin Poulain <bpoulain@apple.com>
Fix WebCore's internals after r164505
* testing/Internals.cpp:
(WebCore::Internals::findEditingDeleteButton): The call became ambiguous after r164505.
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
Include some clean up of ConsoleMessage and ScriptCallStack construction.
Covered by existing tests.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
Simplify code now that createStackTraceFromException handles it.
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
ScriptCallStack can give us the first non-native callframe.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
2014-02-21 Benjamin Poulain <benjamin@webkit.org>
jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
https://bugs.webkit.org/show_bug.cgi?id=128893
Reviewed by Darin Adler.
The declaration of TreeScope::getElementById() was taking an AtomicString as the parameter.
Because of this, all the call sites manipulating String were creating and keeping alive an AtomicString
to make the call.
This had two negative consequences:
-The call sites were ref-ing the ID's atomic string for no reason.
-When there is no ID associated with the input string, an atomic string was created for the sole
purpose of failing the query. Since IDs are stored as AtomicString, if there is not an existing
AtomicString for the input, there is no reason to query anything.
* WebCore.exp.in:
* bindings/js/JSDOMBinding.cpp:
(WebCore::findAtomicString): Update this after the rename.
* bindings/scripts/CodeGeneratorObjC.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
Now that there are two overloads for TreeScope::getElementById(), the conversion from NSString*
is ambiguous. I add the keyword ObjCExplicitAtomicString to force an explicit conversion to AtomicString.
* dom/Document.idl:
* dom/TreeScope.cpp:
(WebCore::TreeScope::getElementById):
When getting an AtomicString, the case of a empty string is not important, use isNull() instead.
When getting a String, get the corresponding AtomicString if any and use that for getting the element.
* dom/TreeScope.h:
* html/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
Solve the ambiguous call.
* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
This is a wonderful candidate for substringSharingImpl. The substring does not survive the call since
the new getElementById never create any AtomicString.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
It looks like there are opportunities to get faster here, Ryosuke should have a look.
* svg/SVGSVGElement.h:
* xml/XMLTreeViewer.cpp:
(WebCore::XMLTreeViewer::transformDocumentToTreeView):
Unrelated cleanup: noStyleMessage was useless.
2014-02-21 Daniel Bates <dabates@apple.com>
COL element in table has 0 for offsetWidth
https://bugs.webkit.org/show_bug.cgi?id=15277
Reviewed by David Hyatt.
Implements offset{Left, Top, Width, Height} for table columns and column groups
per section Extensions to the HTMLElement Interface of the CSSOM View spec,
<http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface> (Draft 17 December 2013).
For now, we fail almost all of the offset{Height, Top} sub-tests in the included test
for the separate border model as we need to fix <https://bugs.webkit.org/show_bug.cgi?id=128988>.
Test: fast/table/col-and-colgroup-offsets.html
* rendering/RenderTable.cpp:
(WebCore::RenderTable::RenderTable): Initialize cached column offset top and offset height.
We cache these offsets since they are the same for all columns in the table.
(WebCore::RenderTable::invalidateCachedColumns): Clear cached effective column index map.
(WebCore::RenderTable::invalidateCachedColumnOffsets): Added.
(WebCore::RenderTable::layout): Invalidate cached column offsets as the location or height
of one or more sections may have changed.
(WebCore::RenderTable::updateColumnCache): Modified to build effective column index map.
(WebCore::RenderTable::effectiveIndexOfColumn): Added.
(WebCore::RenderTable::offsetTopForColumn): Added.
(WebCore::RenderTable::offsetLeftForColumn): Added.
(WebCore::RenderTable::offsetWidthForColumn): Added.
(WebCore::RenderTable::offsetHeightForColumn): Added.
* rendering/RenderTable.h: Make isTableColumnGroupWithColumnChildren() const.
* rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::offsetLeft): Added; turns around and calls RenderTable::offsetLeftForColumn().
(WebCore::RenderTableCol::offsetTop): Added; turns around and calls RenderTable::offsetTopForColumn().
(WebCore::RenderTableCol::offsetWidth): Added; turns around and calls RenderTable::offsetWidthForColumn().
(WebCore::RenderTableCol::offsetHeight): Added; turns around and calls RenderTable::offsetHeightForColumn().
* rendering/RenderTableCol.h:
2014-02-21 Enrica Casucci <enrica@apple.com>
Build fix for iOS after r164498.
Unreviewed.
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::buffered):
2014-02-21 Ryosuke Niwa <rniwa@webkit.org>
Disallow the use of -webkit-user-modify on shadow pseudo elements
https://bugs.webkit.org/show_bug.cgi?id=129144
Reviewed by Geoffrey Garen.
Completely disallow -webkit-user-modify on user agent (builtin) pseudo elements.
We've already had rules to do this in html.css but just hard code it into the engine
in order to eliminate the all uses of -webkit-user-modify in html.css.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* css/html.css:
(input::-webkit-textfield-decoration-container):
(input::-webkit-clear-button):
(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):
(input::-webkit-input-placeholder, isindex::-webkit-input-placeholder):
(input[type="file"]::-webkit-file-upload-button):
(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):
(input[type="color"]::-webkit-color-swatch-wrapper):
(input[type="color"]::-webkit-color-swatch):
(::-webkit-validation-bubble):
(::-webkit-validation-bubble-message):
(::-webkit-validation-bubble-text-block):
(::-webkit-validation-bubble-heading):
(::-webkit-validation-bubble-arrow):
(::-webkit-validation-bubble-arrow-clipper):
(meter::-webkit-meter-inner-element):
(meter::-webkit-meter-bar):
(meter::-webkit-meter-optimum-value):
(meter::-webkit-meter-suboptimum-value):
(meter::-webkit-meter-even-less-good-value):
(progress::-webkit-progress-inner-element):
(progress::-webkit-progress-bar):
(progress::-webkit-progress-value):
2014-02-21 Eric Carlson <eric.carlson@apple.com>
Fix TimeRanges layering violations
https://bugs.webkit.org/show_bug.cgi?id=128717
Reviewed by Jer Noble.
No new tests, no functionality changed.
* CMakeLists.txt:
* GNUmakefile.list.am: Add PlatformTimeRanges.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::buffered): TimeRanges -> PlatformTimeRanges.
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): TimeRanges* -> TimeRanges&.
* WebCore.exp.in: Update for signature changes.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj: Add PlatformTimeRanges.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::percentLoaded): Create TimeRanges from PlatformTimeRanges.
(WebCore::HTMLMediaElement::buffered): Ditto.
(WebCore::HTMLMediaElement::seekable): Ditto.
* html/MediaController.cpp:
(MediaController::buffered): TimeRanges* -> TimeRanges&.
(MediaController::seekable): Ditto.
(MediaController::played): Ditto.
Move all of the logic into PlatformTimeRanges. Change API to take TimeRanges& instead of TimeRanges*.
* html/TimeRanges.cpp:
(WebCore::TimeRanges::create): Move to .cpp from .h.
(WebCore::TimeRanges::TimeRanges): Initialize the PlatformTimeRanges member variable.
(WebCore::TimeRanges::start): Passthrough to PlatformTimeRanges.
(WebCore::TimeRanges::end): Ditto.
(WebCore::TimeRanges::invert): Ditto.
(WebCore::TimeRanges::copy): Ditto.
(WebCore::TimeRanges::intersectWith): Ditto.
(WebCore::TimeRanges::unionWith): Ditto.
(WebCore::TimeRanges::length): Ditto.
(WebCore::TimeRanges::add): Ditto.
(WebCore::TimeRanges::contain): Ditto.
(WebCore::TimeRanges::find): Ditto.
(WebCore::TimeRanges::nearest): Ditto.
(WebCore::TimeRanges::totalDuration): Ditto.
* html/TimeRanges.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::buffered): TimeRanges -> PlatformTimeRanges.
(WebCore::MediaPlayer::buffered): Ditto.
(WebCore::MediaPlayer::seekable): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
* platform/graphics/MediaSourcePrivateClient.h:
* platform/graphics/PlatformTimeRanges.cpp: Added.
* platform/graphics/PlatformTimeRanges.h: Added.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::buffered): TimeRanges -> PlatformTimeRanges.
(WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Drive-by fix to log
FunctionType notifications. ASSERT when passed an unknown notification.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges): TimeRanges -> PlatformTimeRanges.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.h:
* platform/graphics/ios/MediaPlayerPrivateIOS.mm:
(WebCore::MediaPlayerPrivateIOS::buffered): Ditto.
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::buffered): Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::buffered): Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/wince/MediaPlayerPrivateWinCE.h:
* platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::buffered): Ditto.
(WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
* platform/mock/mediasource/MockMediaPlayerMediaSource.h:
2014-02-21 Enrica Casucci <enrica@apple.com>
Support WebSelections in WK2 on iOS.
https://bugs.webkit.org/show_bug.cgi?id=127015
<rdar://problem/15211964>
Reviewed by Benjamin Poulain.
Adding some exports.
* WebCore.exp.in:
2014-02-21 Benjamin Poulain <bpoulain@apple.com>
'mouseenter' mouse compat event not fired when listeners for touch events
https://bugs.webkit.org/show_bug.cgi?id=128534
Reviewed by Andreas Kling.
The code dispatching mouseenter and mouseleave events was making the assumption that
only mouse move would cause Document::updateHoverActiveState.
This is not true in some cases. In the case of this bug, the first touch handler sets
the hover state. From there, the code handling enter/leave is in an inconsistent state.
This patch changes the delivery of mouse enter/leave events to be done through the regular
processing of mouse events. The update is done with the mouseover and mouseout events.
* dom/Document.cpp:
(WebCore::Document::prepareMouseEvent):
(WebCore::Document::updateHoverActiveState):
* dom/Document.h:
* page/EventHandler.cpp:
(WebCore::nearestCommonHoverAncestor):
(WebCore::hierarchyHasCapturingEventListeners):
(WebCore::EventHandler::updateMouseEventTargetNode):
2014-02-21 Jon Honeycutt <jhoneycutt@apple.com>
Crash reloading page with position: fixed content
https://bugs.webkit.org/show_bug.cgi?id=129119
<rdar://problem/16127090>
Reviewed by Brent Fulgham.
Test: platform/mac-wk2/tiled-drawing/crash-reloading-with-position-fixed-content.html
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::removeDestroyedNodes):
Check the node's ID against the latched node's ID before the node is
removed from the tree.
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Revert r164486, causing a number of test failures.
Unreviewed rollout.
2014-02-21 David Kilzer <ddkilzer@apple.com>
StyleResolver::loadPendingImage() should take a reference to StylePendingImage
<http://webkit.org/b/129021>
Reviewed by Brent Fulgham.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.
(WebCore::StyleResolver::loadPendingShapeImage): Update to use
references.
(WebCore::StyleResolver::loadPendingImages): Ditto.
* css/StyleResolver.h:
(WebCore::StyleResolver::loadPendingImage): Change pendingImage
parameter to a reference.
2014-02-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: JSContext inspection should report exceptions in the console
https://bugs.webkit.org/show_bug.cgi?id=128776
Reviewed by Timothy Hatcher.
Include some clean up of ConsoleMessage and ScriptCallStack construction.
Covered by existing tests.
* bindings/js/JSDOMBinding.cpp:
(WebCore::reportException):
Simplify code now that createStackTraceFromException handles it.
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
ScriptCallStack can give us the first non-native callframe.
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::buildInitiatorObject):
* inspector/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::breakpointActionLog):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
* page/Console.cpp:
(WebCore::internalAddMessage):
(WebCore::Console::profile):
(WebCore::Console::profileEnd):
(WebCore::Console::timeEnd):
* page/ContentSecurityPolicy.cpp:
(WebCore::gatherSecurityPolicyViolationEventData):
(WebCore::ContentSecurityPolicy::reportViolation):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::postMessage):
2014-02-21 Martin Hodovan <mhodovan@inf.u-szeged.hu>
Fixing the !ENABLE(SVG_FONTS) build
https://bugs.webkit.org/show_bug.cgi?id=129150
Reviewed by Anders Carlsson.
No new tests required.
* svg/SVGAltGlyphElement.cpp:
* svg/SVGAltGlyphElement.h:
* svg/svgtags.in:
2014-02-21 Radu Stavila <stavila@adobe.com>
[CSS Regions] Use the named-flow-specific object RenderNamedFlowFragment instead of the generic RenderRegion whenever possible
https://bugs.webkit.org/show_bug.cgi?id=128599
Reviewed by Andrei Bucur.
Use the named flow specific RenderNamedFlowFragment instead of the generic RenderRegion, whenever possible.
Move named flow specific methods from RenderRegion to RenderNamedFlowFragment.
No new tests required.
* dom/Element.cpp:
(WebCore::Element::renderNamedFlowFragment):
(WebCore::Element::webkitRegionOverset):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/Element.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::buildArrayForRegions):
* rendering/PaintInfo.h:
(WebCore::PaintInfo::PaintInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::paintObject):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::pushContentsClip):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
* rendering/RenderBoxModelObject.h:
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
(WebCore::RenderLayer::updatePaintingInfoForFragments):
(WebCore::RenderLayer::paintTransformedLayerIntoFragments):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLayer.h:
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::getRanges):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::updateWritingMode):
(WebCore::compareRenderNamedFlowFragments):
(WebCore::addFragmentToList):
(WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):
(WebCore::RenderNamedFlowThread::addRegionToThread):
(WebCore::RenderNamedFlowThread::removeRegionFromThread):
(WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
(WebCore::RenderNamedFlowThread::checkInvalidRegions):
(WebCore::RenderNamedFlowThread::getRanges):
(WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
(WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegion.cpp:
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldPaint):
* rendering/RenderReplica.cpp:
(WebCore::RenderReplica::paint):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paint):
* rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):
2014-02-21 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Regions don't paint correctly in new-multicol elements
https://bugs.webkit.org/show_bug.cgi?id=120711
Reviewed by David Hyatt.
This patch implements basic support for regions inside multi-column elements.
Currently, the painting and hit-testing logic of CSS Regions is not aware of
enclosing multi-column elements. The change is integrated at a layer level by
making use of the pre-computed layer fragments during the painting and hit-testing
phases for regions.
There are limitations such that self painting layers found inside the named flow
thread layer will not be correctly processed because they don't go through the
layer fragment collection step. This is not trivial to implement because the enclosing
pagination layer provided by the multi-column element is not visibile from inside
the named flow thread layer and they reside in different coordinate systems.
A side effect of this patch is the fix of regions incorrect clipping in certain
cases (when both a region and its container clip their overflow, the region's
content is visible outside the container).
Tests: fast/regions/region-clipping.html
fast/regions/regions-in-multicol-bt.html
fast/regions/regions-in-multicol-hover-overflow.html
fast/regions/regions-in-multicol-hover.html
fast/regions/regions-in-multicol-lr.html
fast/regions/regions-in-multicol-rl.html
fast/regions/regions-in-multicol.html
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
(WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
* rendering/RenderLayer.h:
2014-02-21 Mihai Tica <mitica@adobe.com>
[CSS Blending] Refactor -webkit-blend-mode to -webkit-mix-blend-mode
https://bugs.webkit.org/show_bug.cgi?id=128805
Reviewed by Dean Jackson.
The spec defines the mix-blend-mode property. This means that the
prefixed version should be -webkit-mix-blend-mode, instead of
-webkit-blend-mode.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
2014-02-21 Ryosuke Niwa <rniwa@webkit.org>
Bindings tests rebaseline after r164473.
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj mutablePoint]):
(-[DOMTestObj immutablePoint]):
(-[DOMTestObj mutablePointFunction]):
(-[DOMTestObj immutablePointFunction]):
* bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
(-[DOMTestTypedefs immutablePointFunction]):
2014-02-21 Tim Horton <timothy_horton@apple.com>
Remove removed symbol from exports list.
* WebCore.exp.in:
2014-02-20 ChangSeok Oh <changseok.oh@collabora.com>
Rename EXT_draw_buffers to WEBGL_draw_buffers
https://bugs.webkit.org/show_bug.cgi?id=128894
Reviewed by Dean Jackson.
I noticed the related spec has changed. Accordingly chromium also changed its implementation
to meet the spec. So here I'd like to apply it to webkit as well.
Merged from Blink (patch by bajones):
https://src.chromium.org/viewvc/blink?revision=152065&view=revision
Test: fast/canvas/webgl/webgl-draw-buffers.html
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::toJS):
* html/canvas/EXTDrawBuffers.idl: Removed.
* html/canvas/WebGLDrawBuffers.cpp: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.cpp.
(WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::~WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::getName):
(WebCore::WebGLDrawBuffers::create):
(WebCore::WebGLDrawBuffers::supported):
(WebCore::WebGLDrawBuffers::drawBuffersWEBGL):
(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
* html/canvas/WebGLDrawBuffers.h: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.h.
* html/canvas/WebGLDrawBuffers.idl: Added.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
(WebCore::WebGLRenderingContext::supportsDrawBuffers):
* html/canvas/WebGLRenderingContext.h:
2014-02-20 Ryosuke Niwa <rniwa@webkit.org>
m_ancestorDisabledState should never be unknown
https://bugs.webkit.org/show_bug.cgi?id=129084
Reviewed by Benjamin Poulain.
In order to resolve the bug 129035, a text form control elements needs to synchronously change
its inner text element's editability by setting or unsetting contenteditable content attribute.
Before this patch, we could not do this because editability of a text form control dependent on
its disabled-ness which was only computed lazily via updateAncestorDisabledState().
This patch makes HTMLFieldSetElement and HTMLFormControlElement update this state synchronously.
To avoid O(k) DOM traversal, where k is the depth of the tree, in insertedInto and removedFrom of
HTMLFormControlElement on most pages, a new document-level flag, m_disabledFieldsetElementsCount,
has been added to indicate whether the document contains any disabled fieldset or not.
Also renamed the misleadingly named disabledAttributeChanged to disabledStateChanged, and added
new function of the same name (disabledAttributeChanged) to be used by HTMLFieldSetElement
for keeping the document-level flag up-to-date upon disabled attribute changes.
Tests: fast/forms/fieldset/fieldset-disabled-2.html
* dom/Document.cpp:
(WebCore::Document::Document): Initializes newly added m_disabledFieldsetElementsCount.
(WebCore::Document::~Document): Assert that we've done house keeping right.
* dom/Document.h:
(WebCore::Document::hasDisabledFieldsetElement): Added.
(WebCore::Document::addDisabledFieldsetElement): Added.
(WebCore::Document::removeDisabledFieldsetElement): Added.
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Removes itself from the owner document.
(WebCore::updateFromControlElementsAncestorDisabledStateUnder): Added. Updates startNode and
its descendants' ancestor disabled flag. We don't update controls under another disabled
fieldset element since disabled-ness of those controls aren't affected by startNode.
(WebCore::HTMLFieldSetElement::disabledAttributeChanged): Call addDisabledFieldsetElement and
removeDisabledFieldsetElement to update the owner document's flag.
(WebCore::HTMLFieldSetElement::disabledStateChanged): Renamed from disabledAttributeChanged.
Enable form control elements under the first legend element and disable or enable other
descendent form controls in accordance with the presence of disabled content attribute.
(WebCore::HTMLFieldSetElement::childrenChanged): Update disabled-ness of form controls under
child legend elements because controls aren't disabled in the first legend element, and adding
or removing child elements may have changed the first legend element.
(WebCore::HTMLFieldSetElement::didMoveToNewDocument): Update the flag on the owner document.
* html/HTMLFieldSetElement.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor): Returns boolean instead of
updating m_ancestorDisabledState internally. Also renamed from updateAncestorDisabledState.
(WebCore::HTMLFormControlElement::setAncestorDisabled): Replaced ancestorDisabledStateWasChanged.
This function updates m_disabledByAncestorFieldset and calls disabledAttributeChanged as needed.
(WebCore::HTMLFormControlElement::disabledAttributeChanged): Added. Calls disabledStateChanged.
(WebCore::HTMLFormControlElement::disabledStateChanged): Renamed from disabledAttributeChanged.
(WebCore::HTMLFormControlElement::insertedInto): Update m_disabledByAncestorFieldset if there is
a possibility (i.e. the document contains any disabled fieldset element) that this form control
is inserted under a disabled fieldset element.
(WebCore::HTMLFormControlElement::removedFrom): If this form control element is not disabled by
a fieldset ancestor, then there is nothing to do. If it is, then check to see if the element is
still disabled now that we've lost some ancestors.
(WebCore::HTMLFormControlElement::isDisabledFormControl): No longer updates m_ancestorDisabledState
lazily since m_disabledByAncestorFieldset is never ambiguous now.
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::disabledByAncestorFieldset): Added.
2014-02-20 Zalan Bujtas <zalan@apple.com>
Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
https://bugs.webkit.org/show_bug.cgi?id=129137
Reviewed by Simon Fraser.
No change in behavior.
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI):
* page/Page.cpp:
* page/Page.h:
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::GraphicsContext):
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::platformInit):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageSizeForError):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::drawPlatformResizerImage):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawLineForBoxSide):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
* rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):
2014-02-20 David Kilzer <ddkilzer@apple.com>
Stop generating Objective-C bindings for the SVG DOM
<http://webkit.org/b/129107>
Reviewed by Timothy Hatcher.
Bug 114076 stopped compiling the Objective-C bindings for the
SVG DOM, but we continued to generate the header and source
files after that landed in r147822. This patch also stops
generating the unused header and source files.
* DerivedSources.make:
- Split BINDING_IDLS into NON_SVG_BINDING_IDLS and
SVG_BINDING_IDLS so that they may operated on separately.
- Define BINDING_IDLS again as the full list of IDL files.
- Rename DOM_CLASSES to JS_DOM_CLASSES so that JavaScript
bindings are still generated for all IDL files.
- Add OBJC_DOM_CLASSES so that Objective-C bindings are only
generated for non-SVG IDL files.
* bindings/scripts/CodeGeneratorObjC.pm:
(GetBaseClass):
(GetPropertyAttributes):
(AddIncludesForType):
(GenerateHeader):
(GenerateImplementation):
- Remove support for SVG classes.
2014-02-20 Simon Fraser <simon.fraser@apple.com>
RenderBox::updateShapeOutsideInfoAfterStyleChange shows up on profiles
https://bugs.webkit.org/show_bug.cgi?id=129075
Reviewed by Dean Jackson.
updateShapeOutsideInfoAfterStyleChange() showed up on profiles in content
with no shapes. Avoid calling this if no style has shapeOutside().
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
2014-02-20 ChangSeok Oh <changseok.oh@collabora.com>
Remove unused chromium stuff in Extensions3D
https://bugs.webkit.org/show_bug.cgi?id=129086
Reviewed by Anders Carlsson.
Remove GL_CHROMIUM_copy_texture and GL_CHROMIUM_flipy interfaces since they are used nowhere.
No new tests since no functionality changed.
* platform/graphics/Extensions3D.h:
* platform/graphics/opengl/Extensions3DOpenGL.cpp:
* platform/graphics/opengl/Extensions3DOpenGL.h:
* platform/graphics/opengl/Extensions3DOpenGLES.cpp:
* platform/graphics/opengl/Extensions3DOpenGLES.h:
2014-02-20 Joseph Pecoraro <pecoraro@apple.com>
[iOS] Assert / crash trying to draw empty checked input
https://bugs.webkit.org/show_bug.cgi?id=129138
Reviewed by Simon Fraser.
Test: fast/forms/checkbox-empty-size.html
* rendering/RenderThemeIOS.mm:
(WebCore::shortened):
Avoid a divide by 0, but checking for the condition upfront.
2014-02-20 Benjamin Poulain <bpoulain@apple.com>
Start fixing the view states driven by the WKScrollView
https://bugs.webkit.org/show_bug.cgi?id=129140
Reviewed by Tim Horton and Simon Fraser.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::scaledExposedRect):
That comment was more confusing than helping. FrameView-relative coordinates should not need
scaling.
2014-02-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Start to use std::unique_ptr for DragImageLoader
https://bugs.webkit.org/show_bug.cgi?id=129078
Reviewed by Ryosuke Niwa.
As a step to use std::unique_ptr, this patch replace uses of OwnPtr and PassOwnPtr
in the DragImageLoader class with std::unique_ptr. Besides DragImageLoader is set to
non-copyable class.
* dom/Clipboard.cpp:
(WebCore::Clipboard::setDragImage):
* dom/Clipboard.h:
2014-02-20 Brady Eidson <beidson@apple.com>
Move the image controls setting to Settings.in
https://bugs.webkit.org/show_bug.cgi?id=129126
Reviewed by Tim Horton.
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
* page/Settings.in:
2014-02-20 Brady Eidson <beidson@apple.com>
Add very basic image control rendering
https://bugs.webkit.org/show_bug.cgi?id=129080
Reviewed by Tim Horton.
Test: fast/images/image-controls-basic.html
This patch is groundwork that adds a very basic image control that can render on top of images.
* dom/Node.h:
(WebCore::Node:: isImageControlsRootElement): Returns false, unless you are an ImageControls object.
* html/HTMLAttributeNames.in:
Teach HTMLImageElement how to understand an experimental attribute to install controls,
how to actually build the DOM to attach to the shadow root, how to tear that DOM down,
and how to make sure that Renderers are created for that DOM:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::didAttachRenderers):
(WebCore::HTMLImageElement::updateImageControls):
(WebCore::HTMLImageElement::createImageControls):
(WebCore::HTMLImageElement::destroyImageControls):
(WebCore::HTMLImageElement::hasImageControls):
(WebCore::HTMLImageElement::childShouldCreateRenderer):
* html/HTMLImageElement.h:
(WebCore::HTMLImageElement::hasShadowControls): For RenderImage to query when it is constructed.
Add a generic, platform independent ImageControls root element that does nothing:
* html/shadow/ImageControlsRootElement.cpp: Added.
(WebCore::ImageControlsRootElement::maybeCreate):
(WebCore::ImageControlsRootElement::ImageControlsRootElement):
(WebCore::ImageControlsRootElement::~ImageControlsRootElement):
* html/shadow/ImageControlsRootElement.h: Added.
Add a Mac-specific ImageControls root element that renders a 20x20 red box (for now):
* html/shadow/mac/ImageControlsRootElementMac.cpp: Added.
(WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
(WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
(WebCore::ImageControlsRootElement::maybeCreate):
(WebCore::ImageControlsRootElementMac::maybeCreate):
* html/shadow/mac/ImageControlsRootElementMac.h: Added.
Since much of the RenderMedia::layout() method is now required for RenderImage as well,
move the logic to RenderImage. The extra work is controlled by a bool flag that will always
be set for RenderMedias but will only be set for certain RenderImages:
* rendering/RenderImage.cpp:
(WebCore::RenderImage::RenderImage):
(WebCore::RenderImage::canHaveChildren):
(WebCore::RenderImage::layout):
(WebCore::RenderImage::layoutShadowControls):
* rendering/RenderImage.h:
(WebCore::RenderImage::setHasShadowControls):
(WebCore::RenderImage::shadowControlsNeedCustomLayoutMetrics):
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::RenderMedia):
* rendering/RenderMedia.h:
(WebCore::RenderMedia::shadowControlsNeedCustomLayoutMetrics):
* WebCore.xcodeproj/project.pbxproj:
== Rolled over to ChangeLog-2014-02-20 ==