Timeline
Mar 15, 2015:
- 11:51 PM Changeset in webkit [181525] by
-
- 14 edits6 adds in trunk
CSS: fix the case-insensitive matching of the attribute selectors Begin, End and Hyphen
https://bugs.webkit.org/show_bug.cgi?id=142715
Reviewed by Brent Fulgham.
Source/WebCore:
Fix attribute matching with:
-Begin: [a=b].
-End: [a$=b].
-Hyphen: [a|=b].
Tests: fast/selectors/attribute-endswith-value-matching-is-ascii-case-insensitive.html
fast/selectors/attribute-hyphen-value-matching-is-ascii-case-insensitive.html
fast/selectors/attribute-startswith-value-matching-is-ascii-case-insensitive.html
- css/SelectorChecker.cpp:
(WebCore::attributeValueMatches):
I forgot to change CSSSelector::Exact in my last patch.
The tests could not catch that since we use the CSS JIT almost everywhere.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::attributeValueBeginsWith):
(WebCore::SelectorCompiler::attributeValueEndsWith):
(WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
Source/WTF:
Add the necessary infrastructure to test startsWith() and endsWith() with
ASCII case-insentive comparisons.
- wtf/text/AtomicString.h:
(WTF::AtomicString::startsWith):
(WTF::AtomicString::startsWithIgnoringASCIICase):
(WTF::AtomicString::endsWith):
(WTF::AtomicString::endsWithIgnoringASCIICase):
- wtf/text/StringCommon.h:
(WTF::loadUnaligned):
(WTF::equal):
I moved the low level equal() code from StringImpl to StringCommon
since it is used by both StringImpl and StringView.
(WTF::equalCommon):
(WTF::equalIgnoringASCIICaseCommon):
Ideally we should drop the "Common" part of the name but StringView
wants this inline for some reason. I prefered keeping the current behavior
since I don't know how StringView's matching performance was evaluated.
(WTF::startsWith):
(WTF::startsWithIgnoringASCIICase):
(WTF::endsWith):
(WTF::endsWithIgnoringASCIICase):
Make all that code shared between StringView and Stringimpl.
- wtf/text/StringImpl.cpp:
(WTF::StringImpl::startsWith):
(WTF::StringImpl::startsWithIgnoringASCIICase):
(WTF::StringImpl::endsWith):
(WTF::StringImpl::endsWithIgnoringASCIICase):
(WTF::equal):
(WTF::stringImplContentEqual): Deleted.
- wtf/text/StringImpl.h:
(WTF::loadUnaligned): Deleted.
(WTF::equal): Deleted.
- wtf/text/StringView.cpp:
(WTF::StringView::startsWith):
(WTF::StringView::startsWithIgnoringASCIICase):
(WTF::StringView::endsWith):
(WTF::StringView::endsWithIgnoringASCIICase):
- wtf/text/StringView.h:
Since those are new, we can safely make them out-of-line and
evaluate the inlining impact as needed.
- wtf/text/WTFString.h:
(WTF::String::startsWithIgnoringASCIICase):
(WTF::String::endsWith):
(WTF::String::endsWithIgnoringASCIICase):
Tools:
- TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST):
LayoutTests:
- fast/selectors/attribute-endswith-value-matching-is-ascii-case-insensitive-expected.txt: Added.
- fast/selectors/attribute-endswith-value-matching-is-ascii-case-insensitive.html: Added.
- fast/selectors/attribute-hyphen-value-matching-is-ascii-case-insensitive-expected.txt: Added.
- fast/selectors/attribute-hyphen-value-matching-is-ascii-case-insensitive.html: Added.
- fast/selectors/attribute-startswith-value-matching-is-ascii-case-insensitive-expected.txt: Added.
- fast/selectors/attribute-startswith-value-matching-is-ascii-case-insensitive.html: Added.
- 11:28 PM Changeset in webkit [181524] by
-
- 2 edits in trunk/Source/WebCore
Fixed the iOS build after r181522.
- page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks):
- 10:44 PM Changeset in webkit [181523] by
-
- 5 edits in trunk/Source/WebCore
[Content Filtering] Adopt new NEFilterSource SPI
https://bugs.webkit.org/show_bug.cgi?id=142710
rdar://problem/19023855
Reviewed by Dan Bernstein.
Teach NetworkExtensionContentFilter to use a new, alternate NEFilterSource SPI on platforms where it is available.
- platform/ContentFilter.cpp:
(WebCore::ContentFilter::types): Renamed HAVE(NE_FILTER_SOURCE) to HAVE(NETWORK_EXTENSION).
- platform/cocoa/NetworkExtensionContentFilter.h: Renamed member variables to remove redundancy, forward-declared NEFilterSourceStatus,
added a dispatch_semaphore member variable to avoid creating and destroying multiple semaphores, and made m_originalData a SharedBuffer.
- platform/cocoa/NetworkExtensionContentFilter.mm:
(decisionInfoReplacementData): Returned the replacement data from a decision handler info dictionary.
(WebCore::createNEFilterSource): Created either an old-style or new-style NEFilterSource object.
(WebCore::NetworkExtensionContentFilter::NetworkExtensionContentFilter): Called receivedResponse:decisionHandler: when using the new SPI.
(WebCore::NetworkExtensionContentFilter::~NetworkExtensionContentFilter): Released the dispatch_semaphore.
(WebCore::NetworkExtensionContentFilter::addData): Appended the copied NSData to m_originalData, avoiding an additional copy previously
being made by NSMutableData. Used the new receivedData:decisionHandler: SPI when appropriate.
(WebCore::NetworkExtensionContentFilter::finishedAddingData): Used the new finishedLoadingWithDecisionHandler: SPI when appropriate.
(WebCore::NetworkExtensionContentFilter::needsMoreData): Changed m_neFilterSourceStatus to m_status.
(WebCore::NetworkExtensionContentFilter::didBlockData): Ditto.
(WebCore::NetworkExtensionContentFilter::getReplacementData): Returned the replacement data from NEFilterSource if the load was blocked.
Otherwise, returned the original data.
(WebCore::NetworkExtensionContentFilter::handleDecision): Added a helper to set m_status and m_replacementData, and to signal m_semaphore.
- platform/spi/cocoa/NEFilterSourceSPI.h: Declared the new NEFilterSource SPI on platforms that support it.
- 10:34 PM Changeset in webkit [181522] by
-
- 3 edits4 adds in trunk
Scroll snap points are not supported on iframe content
https://bugs.webkit.org/show_bug.cgi?id=142582
<rdar://problem/20121319>
Source/WebCore:
Tested by css3/scroll-snap/scroll-snap-iframe.html
Reviewed by Simon Fraser.
The scroll snap points were not being applied to the iframe contents because the code
that sets up the scroll snap point content is not called for iframes.
To correct this, we need to make sure the snap offsets are set during post-frame layout
for iframes. We also need to make sure (on Mac) that the scroll animator and timers are updated.
- page/FrameView.cpp:
(WebCore::FrameView::performPostLayoutTasks): Call 'updateSnapOffsets' if the frame is not a
MainFrame. Also notify scroll animators they need to update their snap point settings.
LayoutTests:
Reviewed by Simon Fraser.
- css3/scroll-snap/resources: Added.
- css3/scroll-snap/resources/iframe-content.html: Added.
- css3/scroll-snap/scroll-snap-iframe-expected.txt: Added.
- css3/scroll-snap/scroll-snap-iframe.html: Added.
- 10:31 PM Changeset in webkit [181521] by
-
- 3 edits in trunk/Source/WebCore
Add the same is<RenderBox> test to KeyframeAnimation::computeExtentOfTransformAnimation()
that ImplicitAnimation::computeExtentOfTransformAnimation() has, and change the latter
to the more canonical is<RenderBox>() form.
Fixes an assertion in animations/animation-on-inline-crash.html
- page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::computeExtentOfTransformAnimation):
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation):
- 7:26 PM Changeset in webkit [181520] by
-
- 2 edits in trunk/Source/WebCore
And another fix. Thanks to Hunseop Jeong for the fix.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::didMoveToNewDocument):
- 7:24 PM Changeset in webkit [181519] by
-
- 2 edits in trunk/Source/WebCore
Fix the touch-event build.
- dom/Document.cpp:
(WebCore::Document::didAddTouchEventHandler):
(WebCore::Document::didRemoveTouchEventHandler):
- 5:40 PM Changeset in webkit [181518] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Console Scrolls Unexpectedly when Clicking inside un-selected Expanding Object
https://bugs.webkit.org/show_bug.cgi?id=142655
Don't scroll when selection change is triggered by clicking, e.g.
only scroll on arrow up and down key press events.
Reviewed by Joseph Pecoraro.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._mousemove):
(WebInspector.LogContentView.prototype._updateMessagesSelection):
(WebInspector.LogContentView.prototype._upArrowWasPressed):
(WebInspector.LogContentView.prototype._downArrowWasPressed):
- 5:19 PM Changeset in webkit [181517] by
-
- 10 edits2 moves in trunk/Source/WebInspectorUI
Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
https://bugs.webkit.org/show_bug.cgi?id=142712
As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
- Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
- Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
- Rename ConsoleMessage.js file to LegacyConsoleMessage.js
- Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
Reviewed by Joseph Pecoraro.
- UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
- UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
- UserInterface/Main.html:
- UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
- UserInterface/Views/ConsoleCommandResult.js:
(WebInspector.ConsoleCommandResult):
(WebInspector.ConsoleCommandResult.prototype.toMessageElement):
- UserInterface/Views/ConsoleGroup.js:
(WebInspector.ConsoleGroup.prototype.render):
- UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
(WebInspector.LegacyConsoleMessage):
(WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessage.prototype.clone):
(WebInspector.LegacyConsoleMessage.create):
- UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
(WebInspector.LegacyConsoleMessageImpl):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
(WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.get message):
(WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
(WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
(WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
(WebInspector.LegacyConsoleMessageImpl.prototype._format):
(WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
(WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
(WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
(WebInspector.LegacyConsoleMessageImpl.prototype.):
(WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
(WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
(WebInspector.LegacyConsoleMessageImpl.prototype.append):
(WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
(WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
(WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
(WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
(WebInspector.LegacyConsoleMessageImpl.prototype.toString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get text):
(WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
(WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
(WebInspector.LegacyConsoleMessageImpl.prototype.clone):
(WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
(WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
(WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessage):
(WebInspector.LogContentView.prototype._messageAdded):
(WebInspector.LogContentView.prototype._filterMessages):
(WebInspector.LogContentView.prototype._reappendProvisionalMessages):
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
- WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
- 5:16 PM Changeset in webkit [181516] by
-
- 5 edits in trunk
Web Inspector: Better handle displaying -0
https://bugs.webkit.org/show_bug.cgi?id=142708
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-03-15
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Modeled after a blink change:
Patch by <aandrey@chromium.org>
DevTools: DevTools: Show -0 for negative zero in console
https://src.chromium.org/viewvc/blink?revision=162605&view=revision
- inspector/InjectedScriptSource.js:
When creating a description string, or preview value string
for -0, be sure the string is "-0" and not "0".
LayoutTests:
Add tests for -0 in different places.
I don't understand yet why the test says "0" for
the property previews of "-0". Everything behaves
correctly, but I can't see to make the test show
the right value appear in the test. That is worth
investigating separately though.
- inspector/model/remote-object-expected.txt:
- inspector/model/remote-object.html:
- 4:07 PM Changeset in webkit [181515] by
-
- 33 edits20 adds in trunk
Reduce the side-effects of animations turning off overlap testing
https://bugs.webkit.org/show_bug.cgi?id=92791
Reviewed by Dean Jackson.
Source/WebCore:
When a layer is running a transition or animation of the transform property,
we would simply disable overlap testing for later layers, which had the side-effect
of promoting lots of unrelated elements into layers temporarily.
Fix by maintaining overlap, but computing an overlap extent that takes the animation
into account.
Rotations are currently treated as full rotations. If an extent for the overlap is
hard to compute (e.g. 3d transforms, or matrix animations with a rotation component),
then we fall back to the current behavior.
Tests: compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html
compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html
compositing/layer-creation/mismatched-transform-transition-overlap.html
compositing/layer-creation/multiple-keyframes-animation-overlap.html
compositing/layer-creation/scale-rotation-animation-overlap.html
compositing/layer-creation/scale-rotation-transition-overlap.html
compositing/layer-creation/translate-animation-overlap.html
compositing/layer-creation/translate-scale-animation-overlap.html
compositing/layer-creation/translate-scale-transition-overlap.html
compositing/layer-creation/translate-transition-overlap.html
- page/animation/AnimationBase.cpp:
(WebCore::containsRotation):
(WebCore::AnimationBase::computeTransformedExtentViaTransformList): When we have matched
transform lists, we can map a rectangle through the various operations. Transform-origin
is used to shift the origin of the box first, and then unshift after. If we encounter
a rotation, for now assume it's a full rotation (a future patch could tighten this up).
(WebCore::AnimationBase::computeTransformedExtentViaMatrix): If we're using matrix
interpolation, we have to decompose the matrix to see if there's any rotation component,
and, if there is, fall back to current behavior.
- page/animation/AnimationBase.h:
- page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::computeExtentOfAnimation):
(WebCore::AnimationController::computeExtentOfAnimation):
- page/animation/AnimationController.h:
- page/animation/AnimationControllerPrivate.h:
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::computeExtentOfTransformAnimation): Ask active keyframe
animations and transitions to compute the bounds extent.
- page/animation/CompositeAnimation.h:
- page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::computeExtentOfTransformAnimation): Compute the extent
of the start and end transforms, and union them.
- page/animation/ImplicitAnimation.h:
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle): Some nullptr goodness.
(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation): Compute an extent
for each keyframe, and take their union.
- page/animation/KeyframeAnimation.h:
- platform/graphics/GeometryUtilities.cpp:
(WebCore::euclidianDistance): Use Pythagoras to compute a distance.
(WebCore::boundsOfRotatingRect): Given a rect whose location is relative
to the rotation origin, compute a bounds for the rotated rect by computing
the furthest corner from the origin, and sweeping out a circle.
- platform/graphics/GeometryUtilities.h:
- platform/graphics/transforms/Matrix3DTransformOperation.h:
- platform/graphics/transforms/MatrixTransformOperation.h:
- platform/graphics/transforms/PerspectiveTransformOperation.h:
- platform/graphics/transforms/RotateTransformOperation.h:
- platform/graphics/transforms/ScaleTransformOperation.h:
- platform/graphics/transforms/SkewTransformOperation.h:
- platform/graphics/transforms/TransformOperation.h:
(WebCore::TransformOperation::isAffectedByTransformOrigin):
- platform/graphics/transforms/TransformOperations.cpp:
(WebCore::TransformOperations::affectedByTransformOrigin): Ask all the operations if
they are affected by transform-origin.
(WebCore::TransformOperations::blendByMatchingOperations): nullptr.
- platform/graphics/transforms/TransformOperations.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::pushMappingToContainer): Comment fix. Only take transforms into account
if the geometry map says so (which is most of the time).
- rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::mapToContainer): RenderLayerCompositor is now using the
geometry map in a way that is incompatible with this assertion; it deliberately ignores
transforms sometimes, so we can't easily verify that the mapping matches mapping through
renderers.
(WebCore::RenderGeometryMap::pushMappingsToAncestor): Save and restore the UseTransforms
bit.
- rendering/RenderGeometryMap.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::boundingBox): Whitespace.
(WebCore::RenderLayer::getOverlapBoundsIncludingChildrenAccountingForTransformAnimations): Helper
function to get the bounds of a layer, including descendants, when a transform animation is running.
- rendering/RenderLayer.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::CompositingState::CompositingState): Add a ancestorHasTransformAnimation
flag to detect nested animated transforms.
(WebCore::RenderLayerCompositor::OverlapExtent::knownToBeHaveExtentUncertainty): This returns true when
the layer is animating transform, and the transition/animation is such that we can't easily compute the
bounds of the animation.
(WebCore::RenderLayerCompositor::computeExtent): const RenderLayer&.
Compute the animated bounds if there's a transform animation running.
(WebCore::RenderLayerCompositor::addToOverlapMap): const RenderLayer&
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive): const RenderLayer&
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Delay the call to pushMappingsToAncestor() until knowing if there's a transform animation running, and
if there is, push the mapping while ignoring transforms (since the transform is implicitly taken into account
for overlap via the computed animated bounds).
If this layer is running a transform animation, set the childState.ancestorHasTransformAnimation flag so
that descendants will know (nested transform animations fall back to current behavior).
The if (.... && isRunningAcceleratedTransformAnimation()) is what previously caused us to turn off overlap
testing in the face of animations. That now only happens if we were unable to easily compute the animation bounds.
(WebCore::RenderLayerCompositor::isRunningTransformAnimation): This previously tested whether an accelerated animation
was running, but that's timing sensitive; AnimationController can start the transform animation, but it's not yet
considered accelerated until we get an async callback from GraphicsLayer, yet this code needed to know if the
animation was running.
Since transform animations are always accelerated, we can just test for a running transform animation.
(WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation): Deleted.
- rendering/RenderLayerCompositor.h:
- rendering/style/RenderStyle.cpp:
(WebCore::requireTransformOrigin): Some FIXME comments.
LayoutTests:
These test overlay an animated element with a grid of position: relative squares.
These reveal the overlap area by selectively getting composited.
- compositing/layer-creation/animation-overlap-with-children-expected.txt:
- compositing/layer-creation/mismatched-rotated-transform-animation-overlap-expected.txt: Added.
- compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html: Added.
- compositing/layer-creation/mismatched-rotated-transform-transition-overlap-expected.txt: Added.
- compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html: Added.
- compositing/layer-creation/mismatched-transform-transition-overlap-expected.txt: Added.
- compositing/layer-creation/mismatched-transform-transition-overlap.html: Added.
- compositing/layer-creation/multiple-keyframes-animation-overlap-expected.txt: Added.
- compositing/layer-creation/multiple-keyframes-animation-overlap.html: Added.
- compositing/layer-creation/scale-rotation-animation-overlap-expected.txt: Added.
- compositing/layer-creation/scale-rotation-animation-overlap.html: Added.
- compositing/layer-creation/scale-rotation-transition-overlap-expected.txt: Added.
- compositing/layer-creation/scale-rotation-transition-overlap.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt: Added.
- compositing/layer-creation/translate-animation-overlap.html: Added.
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt: Added.
- compositing/layer-creation/translate-scale-animation-overlap.html: Added.
- compositing/layer-creation/translate-scale-transition-overlap-expected.txt: Added.
- compositing/layer-creation/translate-scale-transition-overlap.html: Added.
- compositing/layer-creation/translate-transition-overlap-expected.txt: Added.
- compositing/layer-creation/translate-transition-overlap.html: Added.
- 3:47 PM Changeset in webkit [181514] by
-
- 11 edits in trunk/Source
Clean up related to wheelEvent names
https://bugs.webkit.org/show_bug.cgi?id=142713
Reviewed by Anders Carlsson.
Add EventNames::isWheelEventType() and use it in places that test for the
two wheel event names.
Source/WebCore:
- dom/Document.cpp:
(WebCore::Document::didAddWheelEventHandler):
(WebCore::Document::didRemoveWheelEventHandler):
- dom/Document.h: No need for exports (I grepped). Pass the Node*, which
will be used in a later patch.
- dom/EventNames.h:
(WebCore::EventNames::isWheelEventType):
- dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::defaultEventHandler):
- html/shadow/MediaControlsApple.cpp:
(WebCore::MediaControlsAppleEventListener::handleEvent):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
- page/ios/FrameIOS.mm:
(WebCore::ancestorRespondingToScrollWheelEvents): Remove dead code.
Source/WebKit2:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::handleEvent):
- 1:42 PM Changeset in webkit [181513] by
-
- 2 edits in trunk/Source/WebCore
Remove a redundant repaint when a layer becomes composited
https://bugs.webkit.org/show_bug.cgi?id=142711
Reviewed by Anders Carlsson.
RenderLayerCompositor::computeCompositingRequirements() doesn't need to call
repaintOnCompositingChange() when a layer is going to become composited,
because updateBacking() does exactly the same thing. I used an assertion
and ran the tests to ensure this wasn't a behavior change.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
- 12:43 PM Changeset in webkit [181512] by
-
- 19 edits3 adds in trunk
Change the exact attribute matching to be ASCII case-insensitive
https://bugs.webkit.org/show_bug.cgi?id=142609
Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-03-15
Reviewed by Darin Adler.
Source/WebCore:
In CSS, testing attribute values should be ASCII case-insensitive,
previously we were using full unicode case conversion.
Test: fast/selectors/attribute-exact-value-match-is-ascii-case-insensitive.html
- css/CSSParser.cpp:
(WebCore::CSSParser::parseKeyframeSelector):
The CSS parser has its own fast version for ASCII case insensitive.
This code was using the general equalIgnoringASCIICase() which was causing name conflicts,
change that to the normal CSS parser version.
- css/SelectorCheckerTestFunctions.h:
(WebCore::equalIgnoringASCIICase): Deleted.
- cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
Source/WTF:
Add support for ASCII case insensitive comparisons to all the string
classes.
The new file StringCommon.h has the common algorithm to avoid repeating
the same code with different types.
- WTF.vcxproj/WTF.vcxproj:
- WTF.vcxproj/WTF.vcxproj.filters:
- wtf/ASCIICType.h:
(WTF::toASCIILower):
- wtf/CMakeLists.txt:
- wtf/text/AtomicString.h:
(WTF::equalIgnoringASCIICase):
- wtf/text/StringCommon.h: Added.
(WTF::equalIgnoringASCIICase):
(WTF::equalIgnoringASCIICaseCommon):
- wtf/text/StringImpl.cpp:
(WTF::equalIgnoringASCIICase):
(WTF::equalIgnoringASCIICaseNonNull):
(WTF::StringImpl::utf8Impl):
(WTF::StringImpl::defaultWritingDirection): Deleted.
(WTF::StringImpl::adopt): Deleted.
(WTF::StringImpl::sizeInBytes): Deleted.
(WTF::putUTF8Triple): Deleted.
(WTF::StringImpl::utf8): Deleted.
- wtf/text/StringImpl.h:
(WTF::StringImpl::isSubString): Deleted.
(WTF::find): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/StringImpl.cpp:
- TestWebKitAPI/Tests/WTF/StringView.cpp:
LayoutTests:
- fast/selectors/attribute-exact-value-match-is-ascii-case-insensitive-expected.txt: Added.
- fast/selectors/attribute-exact-value-match-is-ascii-case-insensitive.html: Added.
- 12:30 PM Changeset in webkit [181511] by
-
- 6 edits in trunk/Source/WebKit2
[iOS] Presenting a modal sheet on top of a WKWebView causes it to lose focused, active state
https://bugs.webkit.org/show_bug.cgi?id=142702
Reviewed by Anders Carlsson.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView becomeFirstResponder]): Override to delegate first responder status to the
WKContentView if possible.
(-[WKWebView _retainActiveFocusedState]): New SPI that prevents view hierarchy changes from
affecting the active and focused state of the view. Increments a counter ivar and returns a
completion block (which callers must call when they’re done) that decrements it back.
- UIProcess/API/Cocoa/WKWebViewInternal.h: Declared new _activeFocusedStateRetainCount ivar
with @package access.
- UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared new method.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isViewWindowActive): Return true if active/focused state is to be
maintained despite not being visible.
(WebKit::PageClientImpl::isViewFocused): Return true if active/focused state is to be
maintained despite not being active.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView resignFirstResponder]): Don’t blur the assisted node if active/focused
state is to be maintained.
- 12:13 PM Changeset in webkit [181510] by
-
- 5 edits in trunk/Source/WebCore
scroll snap points do not properly account for zoomed pages
https://bugs.webkit.org/show_bug.cgi?id=142706
<rdar://problem/20165771>
Reviewed by Anders Carlsson.
When a WebView is zoomed (such that it has a non-unity pageScaleFactor), we need to account for this
scaling value when selecting our correct scroll snap point target, as well as when specifying the
pixel location for our animation to target.
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::pageScaleFactor): Added new delegate method.
- platform/cocoa/ScrollController.h:
(WebCore::ScrollControllerClient::pageScaleFactor): Added new default delegate.
- platform/cocoa/ScrollController.mm:
(WebCore::ScrollController::beginScrollSnapAnimation): Calculate the correct scroll target
based on the page scale factor.
- 11:16 AM WebKitGTK/2.6.x edited by
- (diff)
- 10:52 AM Changeset in webkit [181509] by
-
- 2 edits in trunk/LayoutTests
[Win] Document more debug assertions for later review.
- platform/win/TestExpectations:
- 10:45 AM Changeset in webkit [181508] by
-
- 41 edits in trunk/Source/WebCore
Fix run-bindings-tests on the WinCairo bot
https://bugs.webkit.org/show_bug.cgi?id=142588
Reviewed by Alex Christensen.
- bindings/scripts/test/JS/JSFloat64Array.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSFloat64Array.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestActiveDOMObject.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestCallback.cpp: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestCallback.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestCustomNamedGetter.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestEventConstructor.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestEventConstructor.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestEventTarget.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestEventTarget.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestException.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestException.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestGenerateIsReachable.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestImplements.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestImplements.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestInterface.cpp: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestInterface.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestMediaQueryListListener.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestNamedConstructor.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestNondeterministic.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestNondeterministic.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestObj.cpp: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestObj.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: Modified property svn:eol-style.
- bindings/scripts/test/JS/JSTestSupplemental.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestSupplemental.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestTypedefs.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSTestTypedefs.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSattribute.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSattribute.h: Added property svn:eol-style.
- bindings/scripts/test/JS/JSreadonly.cpp: Added property svn:eol-style.
- bindings/scripts/test/JS/JSreadonly.h: Added property svn:eol-style.
- 10:00 AM Changeset in webkit [181507] by
-
- 74 edits in trunk
More event handler improvements
https://bugs.webkit.org/show_bug.cgi?id=142701
Reviewed by Anders Carlsson.
Source/WebCore:
These are the improvements:
- Use EventHandler rather than EventListener as the the type for event handler attributes. This matches the HTML specification, and also makes sense, since EventListener means something else (and we use it to mean that!). Also renamed JSWindowEventListener to WindowEventHandler. Even though this only affects the JavaScript code generated, it's not really a JavaScript-specific flag.
- Tweak formatting on addEventListener/removeEventListener/dispatchEvent in all the IDL files where the appear. This includes changing the spelling from "evt" to "event". Some day we should fix this so these functions only need to appear in EventTarget.idl.
- Tweak formatting a bit on the IDL files we had to modify anyway.
- Use [Conditional] more often and #if less often in IDL files.
- Added a new [DocumentEventHandler] attribute for the selectionchange event. This involved adding new event handler attribute functions to JSEventListener.h for use by the JavaScript bindings.
- Removed a little unused code from the JavaScript code bindings generator.
- Improved the mechanism used by HTMLElement and SVGElement to share the list of content attributes that are event handlers so there is only one map rather than two. Made a similar mechanism so that HTMLBodyElement and HTMLFrameSetElement can share the list of window event handlers.
- Followed the HTML specification by putting all the event handler support in the HTMLElement class rather than having event handlers apply only a the particular element that uses those events. We already did this for most of our event handlers, but we are now doing it for all of them.
- Modules/battery/BatteryManager.idl: Use EventHandler instead of EventListener
as appropriate. Also reformatted addEventListener/removeEventListener/dispatchEvent.
- Modules/encryptedmedia/MediaKeySession.idl: Ditto.
- Modules/indexeddb/IDBDatabase.idl: Ditto.
- Modules/indexeddb/IDBOpenDBRequest.idl: Ditto.
- Modules/indexeddb/IDBRequest.idl: Ditto.
- Modules/indexeddb/IDBTransaction.idl: Ditto.
- Modules/mediastream/MediaStream.idl: Ditto.
- Modules/mediastream/MediaStreamTrack.idl: Ditto.
- Modules/mediastream/RTCDTMFSender.idl: Ditto.
- Modules/mediastream/RTCDataChannel.idl: Ditto.
- Modules/mediastream/RTCPeerConnection.idl: Ditto.
- Modules/speech/SpeechSynthesisUtterance.idl: Ditto.
- Modules/webaudio/AudioBufferSourceNode.idl: Ditto.
- Modules/webaudio/AudioContext.idl: Ditto.
- Modules/webaudio/OscillatorNode.idl: Ditto.
- Modules/webaudio/ScriptProcessorNode.idl: Ditto.
- Modules/websockets/WebSocket.idl: Ditto.
- css/FontLoader.idl: Ditto.
- dom/EventListener.idl: Ditto.
- dom/EventTarget.idl: Ditto.
- dom/MessagePort.idl: Ditto.
- dom/Node.idl: Ditto.
- dom/WebKitNamedFlow.idl: Ditto.
- fileapi/FileReader.idl: Ditto.
- html/MediaController.idl: Ditto.
- html/track/AudioTrackList.idl: Ditto.
- html/track/TextTrackCue.idl: Ditto.
- html/track/TextTrackList.idl: Ditto.
- html/track/VideoTrackList.idl: Ditto.
- loader/appcache/DOMApplicationCache.idl: Ditto.
- page/EventSource.idl: Ditto.
- page/Performance.idl: Ditto.
- workers/AbstractWorker.idl: Ditto.
- workers/DedicatedWorkerGlobalScope.idl: Ditto.
- workers/Worker.idl: Ditto.
- workers/WorkerGlobalScope.idl: Ditto.
- xml/XMLHttpRequest.idl: Ditto.
- xml/XMLHttpRequestUpload.idl: Ditto.
- Modules/notifications/Notification.idl: Did the above, but also used
[Conditional] instead of #if throughout.
- html/track/TextTrack.idl: Ditto.
- Modules/webaudio/AudioNode.idl: Tweaked paragraphing of this file.
- bindings/js/JSEventListener.cpp:
(WebCore::windowEventHandlerAttribute): Renamed to take the word "forwarded"
out of this. More closely matches the terminology used in IDL files and the
HTML specification.
(WebCore::setWindowEventHandlerAttribute): Ditto.
(WebCore::documentEventHandlerAttribute): Added.
(WebCore::setDocumentEventHandlerAttribute): Added.
- bindings/js/JSEventListener.h: Updated for above changes.
- bindings/objc/PublicDOMInterfaces.h: Renamed argument from "evt" to "event".
- bindings/scripts/CodeGeneratorGObject.pm:
(SkipAttribute): Skip attributes of type "EventHandler" rather than attributes
of type "EventListener".
- bindings/scripts/CodeGeneratorObjC.pm:
(SkipAttribute): Ditto.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation): Look for the type EventHandler instead of the type
EventListener for event handler attributes. Also added code to handle the new
DocumentEventHandler, and use the name WindowEventHandler instead of the name
JSWindowEventListener. Removed unneeded preflight check to see if we have
writable attributes; it was not doing us any good. (That caused a lot of code
to be un-indented and makes the diff hard to read.)
- bindings/scripts/IDLAttributes.txt: Removed JSWindowEventListener, and added
WindowEventHandler and DocumentEventHandler.
- bindings/scripts/test/TestObj.idl: Use the type EventHandler instead of the
type EventListener. The test output is unchanged, though.
- dom/Document.idl: Got rid of the conditionals and merged all the event handler
attributes into a single sorted, unconditional list. Added some that were missing,
as detected by the event-handler-attributes.html test.
- dom/Element.idl: Ditto. This includes moving attributes here that were formerly
only in certain element classes. Note that the script event handler attribute
support is still here, even though it should be in HTMLElement and SVGElement
instead. There's a FIXME about that, but no real urgency in fixing it.
- html/HTMLAttributeNames.in: Added onmessage. Previously, the support for this
was from the script attribute only, not the content attribute.
- html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::createWindowEventHandlerNameMap): Added. This
contains the list of all the window event handlers that can be set on a body
or frameset element and which are triggered by events on the window.
(WebCore::HTMLBodyElement::eventNameForWindowEventHandlerAttribute): Added.
This is the function to call to use the map above. Given an attribute, it
returns either null if it is not a window event handler attribute, or the
event type if it is one.
(WebCore::HTMLBodyElement::parseAttribute): Updated to use the new
functions above. Handling of these attributes is now unconditional, but
also we don't have to keep the nested if statements here up to date, just
the list of event handler attributes names in the map create function above.
- html/HTMLBodyElement.h: Added public eventNameForWindowEventHandlerAttribute
and private createWindowEventHandlerNameMap functions.
- html/HTMLBodyElement.idl: Updated to use WindowEventHandler, DocumentEventHandler,
and EventHandler. Also made everything unconditional. Also filled out the list here
to match the list handled as content attributes. All covered by the test.
- html/HTMLElement.cpp:
(WebCore::HTMLElement::createEventHandlerNameMap): Added. Replaces the old
populate function. Changed the list of event handler attributes to be a bit more
complete, and to be entirely unconditional. Also refactored this function to use
a new populateEventHandlerNameMap helper, shared with HTMLBodyElement.
(WebCore::HTMLElement::populateEventHandlerNameMap): Added. Factors out the code
that both this class and HTMLBodyElement use to build event handler name maps.
(WebCore::HTMLElement::eventNameForEventHandlerAttribute): Added. This is the
function that call to use the map above. Given an attribute it returns either
null if it is not an event handler attribute, or the event type if it is one.
This is actually two functions. One is a protected function for use by both this
class and HTMLBodyElement so they can share things like the optimization to look
for the "on" prefix. The other is the public function that we actually use in
HTMLElement and SVGElement.
(WebCore::HTMLElement::editabilityFromContentEditableAttr): Tweaked and refactored
to use lineageOfType. Would have been even simpler if this took an element instead
of a node. Unrelated to the event handler changes.
(WebCore::HTMLElement::parseAttribute): Removed long-obsolete code that decided
whether to call through to the base class. The base class function is empty and
never needs to be called, and in any case there is no value in doing work to
decide whether to call through to an empty function. Changed the style of the
function to use early return instead of else. Worth considering whether we want
to return early or call through to base class in this family of functions. It's
more efficient to return early, but doesn't work well if both the derived class
and base class want to respond to changes to the same attribute. The new logic
for event handler attributes is more straightforward than the old, since the
eventNameForEventHandlerAttribute has the logic.
(WebCore::HTMLElement::textToFragment): Tweaked and refactored a bit, and also
changed to return a Ref since this never fails and needs to return null.
- html/HTMLElement.h: Updated for above changes. This includes a template version
of populateEventHandlerNameMap that extracts the array size at compile time and
passes it to the non-template function that does the work.
- html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseAttribute): Removed unneeded code to handle
event handler attributes handled by HTMLElement.
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute): Ditto.
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::parseAttribute): Ditto.
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseAttribute): Ditto.
- html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseAttribute): Ditto.
- html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseAttribute): Changed function to early return
style, and added FIXMEs about the many problems in the attribute handling code.
Replaced all the code to handle window event handlers with a new bit of code that
calls HTMLBodyElement::eventNameForWindowEventHandlerAttribute.
- html/HTMLFrameSetElement.idl: Changed to match the list of window event handlers
in HTMLBodyElement.idl, although I did not add the document event handler here.
As in the various other cases, having some extra event handlers does not seem to
do harm and this is covered by the event-handler-attributes.html test.
- html/HTMLMarqueeElement.idl: Renamed EventListener to EventHandler in comment.
- page/DOMWindow.idl: As with Element and Document, removed conditionals, and
filled out the list of event handlers so all the tests in
event-handler-attributes.html will pass.
- svg/SVGElement.cpp:
(WebCore::SVGElement::parseAttribute): Changed code to the early return style,
and replaced the event handler attribute code with new much simpler code that
uses the new HTMLElement::eventNameForEventHandlerAttribute. Also changed the
way we call through to base classes. Just call through to the
SVGLangSpace::parseAttribute function unconditionally, and don't try to use
early return style to arbitrate among base classes. We should make this
simplification throughout the SVG code; there's no need for the complexity
that was there before just to cut down slightly on calls through to base
class parseAttribute functions.
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseAttribute): Changed some of this code to the
early return style and corrected some comments about the window event handler
attributes here. These could use some further testing and might later need to be
properly supported when the attributes are set in script, not just in content.
- svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::isSupportedAttribute): Deleted.
(WebCore::SVGScriptElement::parseAttribute): Changed this function to use the
early return style and also to call through to all three base classes. This is
a pattern we should follow elsewhere in SVG to simplify the code. There is no
need for the supportedAttributes sets like the one in this calass, and the code
is unnecessarily complex, perhaps in an attempt to optimize performance. I'm
pretty sure the old code was slower than this new code will be. No need for the
extra hash table lookup every time. Also removed handling of event handler
attribute which is taken care of by SVGElement now.
(WebCore::SVGScriptElement::svgAttributeChanged): Made similar changes for
the same reason as in parseAttribute. This function really needs a new name:
It's the same as parseAttribute, except it's also used when implementing
changes due to SVG animation.
- svg/SVGScriptElement.h: Removed isSupportedAttribute.
LayoutTests:
- fast/dom/event-handler-attributes-expected.txt: Updated to expect more passing tests,
and to accomodate some changes to what's tested and expected.
- fast/dom/event-handler-attributes.html: Update test to cover more events since we
no longer compile the event handlers conditionally; it's OK to have some handlers for
events even if the features in question aren't turned on.
- 8:05 AM Changeset in webkit [181506] by
-
- 1 edit1 add in trunk/LayoutTests
[iOS] REGRESSION (r181191): Add results for css3/blending/svg-blend-plus-lighter.html
Regressed with:
Support "plus-lighter" in mix-blend mode
<https://bugs.webkit.org/show_bug.cgi?id=142416>
<rdar://problem/19993979>
- platform/ios-simulator/css3/blending/svg-blend-plus-lighter-expected.txt: Add.
Mar 14, 2015:
- 10:32 PM Changeset in webkit [181505] by
-
- 28 edits in trunk/Source
Clean up use of flags in localToContainer-type functions
https://bugs.webkit.org/show_bug.cgi?id=142704
Reviewed by Alexey Proskuryakov.
Source/WebCore:
RenderObject::localToContainerQuad() had the questionable behavior of always
enforcing UseTransforms in the flags. However, a future patch will need to call
localToContainerQuad() without this flag.
Fix by requiring callers of localToAbsoluteQuad(), localToContainerQuad(), localToContainerPoint(),
and absoluteToLocalQuad() to pass the UseTransforms flag in, providing it as a default argument.
The default value of the MapCoordinatesFlags parameter to mapLocalToContainer(),
a lower-level function, is removed.
Sprinkle a few more nullptrs around.
No behavior change.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::selectionGapRectsForRepaint): call the higher-level localToContainerPoint()
instead of mapLocalToContainer().
(WebCore::RenderBlock::absoluteQuads): Pass UseTransforms.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::absoluteQuads): Ditto.
- rendering/RenderBox.h:
- rendering/RenderFlowThread.h:
- rendering/RenderGeometryMap.h:
(WebCore::RenderGeometryMap::absolutePoint):
(WebCore::RenderGeometryMap::absoluteRect):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::collectSelectionRects): This function was erroneously passing
'false' as flags. Pass UseTransforms instead (but no behavior change since
UseTransforms was forced on lower down).
- rendering/RenderInline.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible): UseTransforms is the parameter default, remove it.
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::absoluteQuads):
(WebCore::RenderLineBreak::collectSelectionRects): Another erroneous 'false'.
- rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::localToContainerQuad): Here's where we no longer force
the UseTransforms bit.
(WebCore::RenderObject::localToContainerPoint): Also here.
- rendering/RenderObject.h: I prefer bit flags lined up. Makes it easier to spot errors.
(WebCore::RenderObject::localToAbsoluteQuad):
- rendering/RenderText.cpp:
(WebCore::RenderText::collectSelectionRects): Another bad 'false'.
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::absoluteRectsForRange):
(WebCore::RenderTextLineBoxes::absoluteQuads):
(WebCore::RenderTextLineBoxes::absoluteQuadsForRange):
- rendering/RenderView.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectAbsoluteQuads):
- rendering/svg/RenderSVGForeignObject.h:
- rendering/svg/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::absoluteQuads): Another bad 'false'.
- rendering/svg/RenderSVGInline.h:
- rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::absoluteQuads):
- rendering/svg/RenderSVGModelObject.h:
- rendering/svg/RenderSVGRoot.h:
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::absoluteQuads):
- rendering/svg/RenderSVGText.h:
- rendering/svg/SVGRenderSupport.h:
Source/WebKit2:
Pass UseTransforms explicitly to localToContainerPoint()
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):
- 10:11 PM Changeset in webkit [181504] by
-
- 5 edits in trunk/Source
Source/WebCore:
[iOS] scroll snap points are animating to the wrong positions...
https://bugs.webkit.org/show_bug.cgi?id=142705
<rdar://problem/20136946>
Reviewed by Simon Fraser.
Avoid adding an extra '0' snap point to our set. We always start with one zero; this
extra append just forces us to do more steps in our search for nearest snap point.
- page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::updateFromStyle): Remove extra '0' appended to offsets.
Source/WebKit2:
[iOS] scroll snap points are animating to the wrong positions.
https://bugs.webkit.org/show_bug.cgi?id=142705
<rdar://problem/20136946>
Reviewed by Simon Fraser.
Scroll snapping was landing in the wrong place on iOS because of two problems:
(1) It was searching for the closest snap offset point using unscaled 'screen' pixels,
which caused it to always choose one of the earliest snap point options.
(2) It was then selecting a scaled snap point coordinate and passing it back to UIKit
to animate the snap. This caused it to select a target point beyond the 'screen' pixel
we want to hit.
The solution to both problems are to scale the scroll destination UIKit suggests so that
we search among the scaled points with a valid value. Then, we need to scale the returned
value back to screen units before handing it back to UIKit to process.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]): Drive-by fix. Get rid of extra ';' at
the end of the line.
- UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::closestSnapOffsetForMainFrameScrolling):
- 9:58 PM Changeset in webkit [181503] by
-
- 4 edits3 adds in trunk
parseClass should popScope after pushScope
https://bugs.webkit.org/show_bug.cgi?id=142689
Reviewed by Benjamin Poulain.
Source/JavaScriptCore:
Pop the parser scope as needed.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):
LayoutTests:
Added a regression test for the test case that caught this bug.
- TestExpectations: Skipped the test since ES6 class syntax isn't enabled by default.
- js/class-syntax-scoping-expected.txt: Added.
- js/class-syntax-scoping.html: Added.
- js/script-tests/class-syntax-scoping.js: Added.
(test):
- 3:54 PM Changeset in webkit [181502] by
-
- 10 edits in trunk/Source
Feature flag for Animations Level 2
https://bugs.webkit.org/show_bug.cgi?id=142699
<rdar://problem/20165097>
Reviewed by Brent Fulgham.
Add ENABLE_CSS_ANIMATIONS_LEVEL_2 and a runtime flag animationTriggersEnabled.
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
- bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setAnimationTriggersEnabled):
(WebCore::RuntimeEnabledFeatures::animationTriggersEnabled):
- 2:42 PM Changeset in webkit [181501] by
-
- 2 edits in trunk/Source/WTF
Disable Yarr JIT for ARMv7k
https://bugs.webkit.org/show_bug.cgi?id=142645
Rubber stamped by Geoffrey Garen.
Changed the setting of ENABLE_YARR_JIT to be predicated on ENABLED_JIT.
- wtf/Platform.h:
- 1:49 PM Changeset in webkit [181500] by
-
- 3 edits in trunk/Source/WebCore
RenderBlock::imageChange() calling const methods on exit
https://bugs.webkit.org/show_bug.cgi?id=142648
Reviewed by Brent Fulgham.
No new tests, no change on behavior.
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::imageChanged): Deleted.
- rendering/RenderBlock.h:
- 11:25 AM Changeset in webkit [181499] by
-
- 9 edits in trunk
[GStreamer] share GL context in pipeline
https://bugs.webkit.org/show_bug.cgi?id=142693
Reviewed by Philippe Normand.
.:
Add search of gstreamer-gl library in the GStreamer installation. If
it is found, WTF_USE_GSTREAMER_GL macro is defined.
- Source/cmake/FindGStreamer.cmake:
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
GstGL elements in a pipeline need to be aware of the application's
display and its GL context. This information is shared through context
messages between the pipeline and the browser.
This patch shares this context through a GStreamer's synchronous
message, using the GL information held in the web process.
This patch is based on the work of Philippe Normand for Bug 138562.
No new tests because this is platform specific and it depends in the
run-time availability and configurations of GstGL elements.
- PlatformGTK.cmake: appends the GstGL header files in the include
directories. Also its library directory is appended.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::mediaPlayerPrivateSyncMessageCallback): New callback function.
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
Initialize the new class attributes.
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage): New method
for handling synchronous messages from the pipeline. This method
currently only handles the GL context sharing.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Configures
the pipeline's bus to handle the synchronous messages.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Add new
class methods and attributes.
Source/WebKit2:
- WebProcess/gtk/WebProcessMainGtk.cpp: Enable XInitThreads() if
GSTREAMER_GL is used, since GstGL elements use another thread for
queuing GL operations.
- 10:45 AM Changeset in webkit [181498] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r181487.
https://bugs.webkit.org/show_bug.cgi?id=142695
Caused Speedometer/Full.html to fail (Requested by smfr on
#webkit).
Reverted changeset:
"DFG::PutStackSinkingPhase should eliminate GetStacks that
have an obviously known source"
https://bugs.webkit.org/show_bug.cgi?id=141624
http://trac.webkit.org/changeset/181487
- 9:29 AM Changeset in webkit [181497] by
-
- 8 edits6 adds in trunk
ES6: Add binary and octal literal support
https://bugs.webkit.org/show_bug.cgi?id=142681
Reviewed by Ryosuke Niwa.
Source/JavaScriptCore:
Added a binary literal parser function, parseBinary(), to Lexer patterned after the octal parser.
Refactored the parseBinary, parseOctal and parseDecimal to use a constant size for the number of
characters to try and handle directly. Factored out the shifting past any prefix to be handled by
the caller. Added binary and octal parsing to toDouble() via helper functions.
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseHex):
(JSC::Lexer<T>::parseBinary):
(JSC::Lexer<T>::parseOctal):
(JSC::Lexer<T>::parseDecimal):
(JSC::Lexer<T>::lex):
- parser/Lexer.h:
- parser/ParserTokens.h:
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::jsBinaryIntegerLiteral):
(JSC::jsOctalIntegerLiteral):
(JSC::toDouble):
Source/WTF:
- wtf/ASCIICType.h:
(WTF::isASCIIBinaryDigit): New support function.
(WTF::isASCIIOctalDigit): Updated to use logical and (&&) instead of binary and (&).
LayoutTests:
New tests.
- js/binary-literals-expected.txt: Added.
- js/binary-literals.html: Added.
- js/octal-literals-expected.txt: Added.
- js/octal-literals.html: Added.
- js/script-tests/binary-literals.js: Added.
- js/script-tests/octal-literals.js: Added.