Timeline



Oct 27, 2016:

11:27 PM Changeset in webkit [208039] by commit-queue@webkit.org
  • 4 edits in trunk

[Fetch API] Fetch ReadableStream should only clone the second branch
https://bugs.webkit.org/show_bug.cgi?id=164058

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-27
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-clone-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/streams/ReadableStreamInternals.js:

(readableStreamTeePullFunction):

11:12 PM Changeset in webkit [208038] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip media test for a while

Unreviewed EFL gardening.

  • platform/efl/TestExpectations:
11:10 PM Changeset in webkit [208037] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix Windows WebGL build after r208036
https://bugs.webkit.org/show_bug.cgi?id=164101

  • CMakeLists.txt:

Add new files, remove deleted files.

11:00 PM Changeset in webkit [208036] by achristensen@apple.com
  • 436 edits
    537 adds
    53 deletes in trunk/Source

Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=164101

Reviewed by Darin Adler.

Source/ThirdParty/ANGLE:

Updated to f01731530e7f754e5ebaf32d00f3e23b62376424
Differences between upstream ANGLE and WebKit's copy of ANGLE are in changes.diff

Source/WebCore:

ShCheckVariablesWithinPackingLimits has changed signatures from taking a ShVariableInfo* and length
to taking a std::vector<sh::ShaderVariable> which requires more information about the shader variables
than we kept in GraphicsContext3D::SymbolInfo. I removed the SymbolInfo class because it was redundant
with ANGLE's sh::ShaderVariable and now unused.

Covered by existing WebGL tests.

  • CMakeLists.txt:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • platform/graphics/ANGLEWebKitBridge.cpp:

(WebCore::appendSymbol):
(WebCore::getStructInfo):
(WebCore::getSymbolInfo):
(WebCore::ANGLEWebKitBridge::compileShaderSource):

  • platform/graphics/ANGLEWebKitBridge.h:

(WebCore::ANGLEShaderSymbol::isSampler): Deleted.

  • platform/graphics/GraphicsContext3D.h:

(WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): Deleted.
(WebCore::GraphicsContext3D::SymbolInfo::operator==): Deleted.

  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:

(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::checkVaryingsPacking):
(WebCore::GraphicsContext3D::precisionsMatch):
(WebCore::GraphicsContext3D::mappedSymbolName):
(WebCore::GraphicsContext3D::originalSymbolName):

10:59 PM Changeset in webkit [208035] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

[GTK] New stable DOM API headers should be included from webkitdom.h
https://bugs.webkit.org/show_bug.cgi?id=164069

Reviewed by Carlos Garcia Campos.

  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h:
10:53 PM Changeset in webkit [208034] by Carlos Garcia Campos
  • 1 edit
    1 delete in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r205894 - Remove a .rej file.

  • animation/DocumentTimeline.h.rej: Removed.
10:51 PM WebKitGTK/2.14.x edited by Carlos Garcia Campos
(diff)
10:34 PM Changeset in webkit [208033] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Remove RenderStyle::isRunningAcceleratedAnimation()
https://bugs.webkit.org/show_bug.cgi?id=164109

Reviewed by David Hyatt.

RenderStyle::isRunningAcceleratedAnimation() was added in r40876 to handle interrupted
accelerated transitions, and to allow RenderLayer::currentTransform() to know when it
has to manually get the animated style.

The latter can now use isRunningAcceleratedAnimationOnRenderer(), and interrupting
accelerated transitions seems to work fine without it, so remove it.

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::animate):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isRunningAcceleratedAnimation): Deleted.
(WebCore::RenderStyle::setIsRunningAcceleratedAnimation): Deleted.

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:
10:28 PM Changeset in webkit [208032] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

Teach WebGL code about new buffer targets in WebGL2
https://bugs.webkit.org/show_bug.cgi?id=163924

Reviewed by Dean Jackson.

Source/WebCore:

WebGL 2 adds new buffer targets. Instead of completely reimplementing
the functions again for WebGL 2, we can simply check if we are using
a new kind of context to conditionally enable support.

Test: fast/canvas/webgl/webgl2-buffer-targets.html

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLBuffer.cpp:

(WebCore::WebGLBuffer::associateBufferDataImpl):
(WebCore::WebGLBuffer::associateBufferSubDataImpl):
(WebCore::WebGLBuffer::setTarget):

  • html/canvas/WebGLBuffer.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::getBufferParameter):
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters):

  • html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

  • fast/canvas/webgl/bufferData-offset-length.html:
  • fast/canvas/webgl/webgl2-buffer-targets-expected.txt: Added.
  • fast/canvas/webgl/webgl2-buffer-targets.html: Added.
9:30 PM Changeset in webkit [208031] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Enhance grid-auto-flow parsing to allow dense first.
https://bugs.webkit.org/show_bug.cgi?id=164110

Reviewed by Simon Fraser.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertGridAutoFlow):

9:18 PM Changeset in webkit [208030] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

constify the CSSValue arguments to StyleBuilderConverter functions
https://bugs.webkit.org/show_bug.cgi?id=164106

Reviewed by Zalan Bujtas.

Make almost all the CSSValue& arguments const (this makes it clear that they
are in params, not out params). Only a few that are CSSImageValues are non-const,
because they fall into a non-const code path.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertLengthOrAuto):
(WebCore::StyleBuilderConverter::convertLengthSizing):
(WebCore::StyleBuilderConverter::convertLengthMaxSizing):
(WebCore::StyleBuilderConverter::convertComputedLength):
(WebCore::StyleBuilderConverter::convertLineWidth):
(WebCore::StyleBuilderConverter::convertSpacing):
(WebCore::StyleBuilderConverter::convertToRadiusLength):
(WebCore::StyleBuilderConverter::convertRadius):
(WebCore::StyleBuilderConverter::convertObjectPosition):
(WebCore::StyleBuilderConverter::convertTextDecoration):
(WebCore::StyleBuilderConverter::convertNumber):
(WebCore::StyleBuilderConverter::convertNumberOrAuto):
(WebCore::StyleBuilderConverter::convertWebkitHyphenateLimitLines):
(WebCore::StyleBuilderConverter::convertTransform):
(WebCore::StyleBuilderConverter::convertString):
(WebCore::StyleBuilderConverter::convertStringOrAuto):
(WebCore::StyleBuilderConverter::convertStringOrNone):
(WebCore::StyleBuilderConverter::valueToEmphasisPosition):
(WebCore::StyleBuilderConverter::convertTextEmphasisPosition):
(WebCore::StyleBuilderConverter::convertTextAlign):
(WebCore::StyleBuilderConverter::convertClipPath):
(WebCore::StyleBuilderConverter::convertResize):
(WebCore::StyleBuilderConverter::convertMarqueeRepetition):
(WebCore::StyleBuilderConverter::convertMarqueeSpeed):
(WebCore::StyleBuilderConverter::convertQuotes):
(WebCore::StyleBuilderConverter::convertTextUnderlinePosition):
(WebCore::StyleBuilderConverter::convertReflection):
(WebCore::StyleBuilderConverter::convertInitialLetter):
(WebCore::StyleBuilderConverter::convertTextStrokeWidth):
(WebCore::StyleBuilderConverter::convertLineBoxContain):
(WebCore::StyleBuilderConverter::convertTextDecorationSkip):
(WebCore::StyleBuilderConverter::convertScrollSnapPoints):
(WebCore::StyleBuilderConverter::convertSnapCoordinatePair):
(WebCore::StyleBuilderConverter::convertScrollSnapCoordinates):
(WebCore::StyleBuilderConverter::createGridTrackBreadth):
(WebCore::StyleBuilderConverter::createGridTrackSize):
(WebCore::StyleBuilderConverter::createGridTrackList):
(WebCore::StyleBuilderConverter::createGridPosition):
(WebCore::StyleBuilderConverter::convertGridTrackSizeList):
(WebCore::StyleBuilderConverter::convertGridTrackSize):
(WebCore::StyleBuilderConverter::convertGridPosition):
(WebCore::StyleBuilderConverter::convertGridAutoFlow):
(WebCore::StyleBuilderConverter::convertWordSpacing):
(WebCore::StyleBuilderConverter::convertPerspective):
(WebCore::StyleBuilderConverter::convertMarqueeIncrement):
(WebCore::StyleBuilderConverter::convertFilterOperations):
(WebCore::StyleBuilderConverter::convertFontFeatureSettings):
(WebCore::StyleBuilderConverter::convertFontVariationSettings):
(WebCore::StyleBuilderConverter::convertTouchCallout):
(WebCore::StyleBuilderConverter::convertTapHighlightColor):
(WebCore::StyleBuilderConverter::convertOverflowScrolling):
(WebCore::StyleBuilderConverter::convertSVGLength):
(WebCore::StyleBuilderConverter::convertSVGLengthVector):
(WebCore::StyleBuilderConverter::convertStrokeDashArray):
(WebCore::StyleBuilderConverter::convertPaintOrder):
(WebCore::StyleBuilderConverter::convertOpacity):
(WebCore::StyleBuilderConverter::convertSVGURIReference):
(WebCore::StyleBuilderConverter::convertSVGColor):
(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData):
(WebCore::StyleBuilderConverter::convertContentAlignmentData):
(WebCore::StyleBuilderConverter::convertGlyphOrientation):
(WebCore::StyleBuilderConverter::convertGlyphOrientationOrAuto):
(WebCore::StyleBuilderConverter::convertLineHeight):
(WebCore::StyleBuilderConverter::convertFontSynthesis):
(WebCore::StyleBuilderConverter::convertPageBreakBetween):
(WebCore::StyleBuilderConverter::convertPageBreakInside):
(WebCore::StyleBuilderConverter::convertColumnBreakBetween):
(WebCore::StyleBuilderConverter::convertColumnBreakInside):
(WebCore::StyleBuilderConverter::convertRegionBreakBetween):
(WebCore::StyleBuilderConverter::convertRegionBreakInside):
(WebCore::StyleBuilderConverter::convertHangingPunctuation):

9:11 PM Changeset in webkit [208029] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add support for a reference box to -webkit-clip-path
https://bugs.webkit.org/show_bug.cgi?id=164107

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBasicShape):
(WebCore::consumeBasicShapeOrBox):
(WebCore::consumeWebkitClipPath):

8:56 PM Changeset in webkit [208028] by Yusuke Suzuki
  • 7 edits
    1 add in trunk/Source/WebCore

[DOM] Add JSEventType
https://bugs.webkit.org/show_bug.cgi?id=164096

Reviewed by Darin Adler.

Event is inherited by many Event classes. But, Event's accessors and interfaces are
frequently called. For example, event.{type, target, srcElement} for accessors. And
event.stopPropagation() and event.preventDefault() functions.

However, since the user-visible event instance is typically the instance of the subclass,
jsDynamicCast<JSEvent*>() walks several classes before it succeeds. It is costly.

In this patch, we add a new WebCore JSType JSEventType for JSEvent and add a new
function jsEventCast. That supports a super fast cast operation. And it paves the way
for implementing DOM accessors of Event in DOMJIT.

No behavior change.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMWrapper.h:
  • bindings/js/JSEventCustom.h: Added.

(WebCore::jsEventCast):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetJSTypeForNode):
(GenerateHeader):
(GetCastingHelperForThisObject):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::createStructure):

  • dom/Event.idl:
  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::branchIfEvent):
(WebCore::DOMJIT::branchIfNotEvent):

8:55 PM Changeset in webkit [208027] by Chris Dumez
  • 4 edits
    1 add in trunk

Regression(r203601): Caused crashes in iBooks
https://bugs.webkit.org/show_bug.cgi?id=164093
<rdar://problem/28745634>

Reviewed by Darin Adler.

Source/WebKit/mac:

Restore pre-r203601 behavior when calling [DOMNode compareDocumentPosition:nil],
which was to return Node::DOCUMENT_POSITION_DISCONNECTED.

  • DOM/DOMNode.mm:

(-[DOMNode compareDocumentPosition:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/DOMNode.mm: Added.

(-[DOMNodeTest webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

8:21 PM Changeset in webkit [208026] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Rename StyleRareNonInheritedData::opacity to m_opacity
https://bugs.webkit.org/show_bug.cgi?id=164104

Reviewed by Dave Hyatt.

Pure rename.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayerRepaint):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::opacity):
(WebCore::RenderStyle::setOpacity):

  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

(WebCore::StyleRareNonInheritedData::hasOpacity):

8:20 PM Changeset in webkit [208025] by Simon Fraser
  • 10 edits
    6 adds in trunk

If an animation's keyframes affect stacking context properties, create stacking context while the animation is running
https://bugs.webkit.org/show_bug.cgi?id=164094

Reviewed by Dean Jackson.

Source/WebCore:

The CSS animations spec <https://drafts.csswg.org/css-animations-1/> now makes it
clear that a keyframe animation animating properties which can affect stacking context
should establish stacking context while it's running, or filling-forwards. This is part
of the "the user agent must act as if the will-change property...includes all the properties
animated by the animation" clause.

Implement by having CompositeAnimation::animate() track whether running animations should
create stacking context, replacing existing code in AnimationController::updateAnimations()
which only looked at opacity and transform. Transitions are also checked to see if they need
to trigger stacking context.

This allows for the removal of a 0.9999 hack when blending opacity.

Tests: animations/stacking-context-fill-forwards.html

animations/stacking-context-not-fill-forwards.html
animations/stacking-context-unchanged-while-running.html

  • page/animation/AnimationController.cpp:

(WebCore::AnimationController::updateAnimations):

  • page/animation/CSSPropertyAnimation.cpp:
  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::animate):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::KeyframeAnimation):
(WebCore::KeyframeAnimation::computeStackingContextImpact):
(WebCore::KeyframeAnimation::animate):

  • page/animation/KeyframeAnimation.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::currentTransform):

  • rendering/style/WillChangeData.cpp:

(WebCore::WillChangeData::propertyCreatesStackingContext):
(WebCore::propertyCreatesStackingContext): Deleted.

  • rendering/style/WillChangeData.h:

LayoutTests:

  • animations/stacking-context-fill-forwards-expected.html: Added.
  • animations/stacking-context-fill-forwards.html: Added.
  • animations/stacking-context-not-fill-forwards-expected.html: Added.
  • animations/stacking-context-not-fill-forwards.html: Added.
  • animations/stacking-context-unchanged-while-running-expected.html: Added.
  • animations/stacking-context-unchanged-while-running.html: Added.
7:26 PM Changeset in webkit [208024] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix when building against the MacOSX10.12.sdk where "macos" is not recognized
in the availability macros.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
7:03 PM Changeset in webkit [208023] by commit-queue@webkit.org
  • 20 edits in trunk

[WebIDL] Move code generators off of domSignature::type and onto domSignature::idlType
https://bugs.webkit.org/show_bug.cgi?id=164089

Patch by Sam Weinig <sam@webkit.org> on 2016-10-27
Reviewed by Alex Christensen.

Source/WebCore:

Make more IDLParser structures contain domTypes for type descriptions, rather than strings:

  • domInterface gains type and parentType.
  • domConstant gains type.
  • domEnum gains type.
  • domDictionary gains type and parentType.

With these structs now containing domTypes, we can update the CodeGenerators to operate on
domTypes exclusively, rather than types as strings. This allows us to consistently have access
to information such as subtypes and nullability.

  • bindings/scripts/CodeGenerator.pm:

Update helpers to operate of domTypes. The one exception is SkipIncludeHeader, which
still operates on a type name, since it is called late in code generation on the textual
form of type names in the include list.

  • bindings/scripts/CodeGeneratorJS.pm:

Update to use domTypes.

  • bindings/scripts/IDLParser.pm:
  • Add domType accessors to domInterface, domConstant, domEnum, and domDictionary and populate them.
  • Remove type accessors from domSignature (domType is accessible from idlType).
  • Remove special cases for sequence and FrozenArray, now that they are always accessed as domTypes.
  • html/HTMLEmbedElement.idl:
  • html/HTMLFrameElement.idl:
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::getSVGDocument):

  • html/HTMLFrameOwnerElement.h:
  • html/HTMLIFrameElement.idl:
  • html/HTMLObjectElement.idl:

Fix interfaces declaring getSVGDocument() to correctly have it return
a Document, rather than an SVGDocument, which does exist anymore. To
make the bindings happy, also change the signature of HTMLFrameOwnerElement::getSVGDocument
to return a Document.

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

Update test results to remove some redundant headers (Already included JSFoo.h, so no need for Foo.h).

Tools:

  • DumpRenderTree/Bindings/CodeGeneratorDumpRenderTree.pm:
  • WebKitTestRunner/InjectedBundle/Bindings/CodeGeneratorTestRunner.pm:

Update for the removal of domSignature::type, and new signatures of helper predicates.

6:45 PM Changeset in webkit [208022] by mmaxfield@apple.com
  • 12 edits
    2 adds in trunk

[macOS] [WebGL2] Temporarily upgrade WebGL 2's internal OpenGL context from version 2.1 to 3.2
https://bugs.webkit.org/show_bug.cgi?id=164091

Reviewed by Dean Jackson.

Source/WebCore:

In order to test WebGL2 correctly, I had to upgrade the macOS's OpenGL
context to a 3.2-compatible context to make sure the new symbols are
accepted. Eventually, this 3.2-compatible context will have to be
reverted and replaced with an ANGLE context. The current 3.2-compatible
context is just for testing.

Test: fast/canvas/webgl/webgl2-context-creation.html

  • html/canvas/WebGLBuffer.cpp: Use "nullptr" instead of 0.

(WebCore::WebGLBuffer::associateBufferData):

  • html/canvas/WebGLRenderingContextBase.cpp: Use make_unique() instead

of the unique_ptr constructor.
(WebCore::WebGLRenderingContextBase::create):

  • platform/graphics/GraphicsContext3D.h: GraphicsContext should know

if it is using a 3.2-compatible context because some parts of 2.1 are
removed in these contexts, and replaced with new things which aren't
in 2.1.

  • platform/graphics/mac/GraphicsContext3DMac.mm:

(WebCore::setPixelFormat): Use kCGLPFAOpenGLProfile to specify an
OpenGL 3.2 context.
(WebCore::GraphicsContext3D::GraphicsContext3D): GL_CLAMP is deprecated
in OpenGL 3.2. Fortunately, GL_CLAMP_TO_EDGE isn't deprecated and does
exactly what we want. In OpenGL3.2, point sprites are always enabled,
so there's no need to enable them in those contexts.
(WebCore::GraphicsContext3D::isGLES2Compliant):

  • platform/graphics/opengl/Extensions3DOpenGL.cpp: In OpenGL 3.2,

glGetString() no longer accepts GL_EXTENSIONS. Instead, glGetStringi()
is used instead. Unfortunately, glGetString() is not available in
OpenGL 2.1 contexts, so we need to use one or the other based on the
version of the context we're using.
(WebCore::Extensions3DOpenGL::Extensions3DOpenGL):
(WebCore::Extensions3DOpenGL::getExtensions):

  • platform/graphics/opengl/Extensions3DOpenGL.h:
  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:

(WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
(WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions):
Instead of modifying getExtensions() to use glGetStringi(), it makes
better sense to modify this function because getExtensions() returns
a string. Building up a string just to split it up again is silly, so
modifying this function instead makes more sense.

  • platform/graphics/opengl/Extensions3DOpenGLCommon.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::getIntegerv): GL_MAX_VARYING_FLOATS is
removed in OpenGL 3.2 contexts. However, it is replaced by
GL_MAX_VARYING_COMPONENTS, though this is deprecated but not removed.
In the more recent OpenGL context versions, GL_MAX_VARYING_VECTORS is
recommended instead, but that isn't available in OpenGL 3.2.
(WebCore::GraphicsContext3D::getExtensions):

LayoutTests:

  • TestExpectations:
  • fast/canvas/webgl/webgl2-context-creation-expected.txt: Added.
  • fast/canvas/webgl/webgl2-context-creation.html: Added.
5:52 PM Changeset in webkit [208021] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

Unreviewed build fix.

  • WebView.cpp:

(WebView::paintWithDirect2D): Correct merge error.

5:50 PM Changeset in webkit [208020] by commit-queue@webkit.org
  • 8 edits in trunk/Source

Add support for wide gamut for ShareableBitmap for image popovers
https://bugs.webkit.org/show_bug.cgi?id=164001

Patch by Megan Gardner <Megan Gardner> on 2016-10-27
Reviewed by Simon Fraser.

Source/WebCore:

Add a function to return a CGColorSpaceRef for extended sRGB.

This is currently untestable, so no tests added.

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::extendedSRGBColorSpaceRef):

Source/WebKit2:

Added suppport for wide gamut in ShareableBitmap. SharableBitmaps now know the size of their pixels,
and that data is passed back and forth between the processes. The callers of SharedBitmap will determine
if their image should support wide gamut, but ShareableBitmap will override a set flag on a device that
is incapbable of supporting a wide gamut image.
This makes it possible to show wide gamut images in image popovers on iOS.
This is currently untestable, so no tests added.

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::decode):

  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.cpp:

(IPC::Encoder::encode):

  • Platform/IPC/Encoder.h:
  • Shared/ShareableBitmap.cpp:

(WebKit::bytesPerPixel):
(WebKit::ShareableBitmap::Handle::encode):
(WebKit::ShareableBitmap::Handle::decode):
(WebKit::ShareableBitmap::Handle::clear):
(WebKit::ShareableBitmap::create):
(WebKit::ShareableBitmap::createShareable):
(WebKit::ShareableBitmap::createHandle):
(WebKit::ShareableBitmap::ShareableBitmap):

  • Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::numBytesForSize):
(WebKit::ShareableBitmap::sizeInBytes):

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::bitmapInfo):
(WebKit::ShareableBitmap::createGraphicsContext):
(WebKit::ShareableBitmap::createCGImage):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

5:21 PM Changeset in webkit [208019] by Brent Fulgham
  • 11 edits
    1 add in trunk

[Win][Direct2D] Create a RAII Helper Class for the Render Target
https://bugs.webkit.org/show_bug.cgi?id=164005

Reviewed by Alex Christensen.

Source/WebCore:

Tested by existing SVG, image, and Canvas layout tests.

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::fill): Use new convenience helper class.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::didBeginDraw):
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate): Add an
assertion that we are in a valid state when cleaning up the graphics context.
(WebCore::GraphicsContextPlatformPrivate::clip): Clipping can only happen in a Draw operation.
Open a new BeginDraw if asked to Clip. The Begin must stay active when this method returns,
as the Clip layer is only valid during a Draw operation.
(WebCore::GraphicsContextPlatformPrivate::beginDraw): Added.
(WebCore::GraphicsContextPlatformPrivate::endDraw): Added.
(WebCore::GraphicsContext::beginDrawIfNeeded): Added.
(WebCore::GraphicsContext::endDraw): Added.
(WebCore::GraphicsContext::drawWithoutShadow): Revise to use new RenderTargetHelper class.
(WebCore::GraphicsContext::drawWithShadow): Ditto.
(WebCore::GraphicsContext::platformFillRoundedRect): Ditto.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Ditto.
(WebCore::GraphicsContext::setDidBeginDraw): Deleted.

  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:

(WebCore::GraphicsContextPlatformPrivate::didBeginDraw): Revise to use count instead of
a separate boolean.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData): Revise to use new RenderTargetHelper class.

  • platform/graphics/win/NativeImageDirect2D.cpp:

(WebCore::drawNativeImage): Ditto.

  • platform/graphics/win/RenderTargetHelper.h: Added.

(WebCore::RenderTargetHelper::RenderTargetHelper):
(WebCore::RenderTargetHelper::~RenderTargetHelper):
(WebCore::RenderTargetHelper::endDraw):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage): Revise to use new RenderTargetHelper class.

Source/WebKit/win:

  • WebView.cpp:

(WebView::sizeChanged): Construct RenderTarget with higher-resolution display timer.
(WebView::paintWithDirect2D): Revise to use new RenderTargetHelper class.

4:46 PM Changeset in webkit [208018] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

JSFunction::put() should not allow caching of lazily reified properties.
https://bugs.webkit.org/show_bug.cgi?id=164081

Reviewed by Geoffrey Garen.

It is incorrect for JSFunction::put() to return PutPropertySlots that indicates
that its lazily reified properties (e.g. .caller, and .arguments) are cacheable.
The reason for this is:

  1. Currently, a cacheable put may only consist of the following types of put operations:
    1. putting a new property at an offset in the object storage.
    2. changing the value of an existing property at an offset in the object storage.
    3. invoking the setter for a property at an offset in the object storage.

Returning a PutPropertySlot that indicates the property is cacheable means that
the property put must be one of the above operations.

For lazily reified properties, JSFunction::put() implements complex conditional
behavior that is different than the set of cacheable put operations above.
Hence, it should not claim that the property put is cacheable.


  1. Cacheable puts are cached on the original structure of the object before the put operation.

Reifying a lazy property will trigger a structure transition. Even though
subsequent puts to such a property may be cacheable after the structure
transition, it is incorrect to indicate that the property put is cacheable
because the caching is on the original structure, not the new transitioned
structure.

Also fixed some missing exception checks.

  • jit/JITOperations.cpp:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyBoundNameIfNeeded):

  • runtime/JSFunction.h:
4:38 PM Changeset in webkit [208017] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

4:20 PM Changeset in webkit [208016] by caitp@igalia.com
  • 7 edits in trunk

[JSC] forbid lexical redeclaration of generator formal parameters
https://bugs.webkit.org/show_bug.cgi?id=163930

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/async-await-syntax.js:
  • stress/generator-syntax.js:

(testSyntaxError.gen):
(testSyntaxError.arguments):
(testSyntaxError.eval):

  • test262.yaml:

Source/JavaScriptCore:

Also forbids "arguments" and "eval" as generator argument names in strict mode.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::declareRestOrNormalParameter):

  • parser/Parser.h:

(JSC::Parser::declareVariable):
(JSC::Parser::hasDeclaredParameter):
(JSC::Parser::isValidStrictMode):

3:57 PM Changeset in webkit [208015] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/security/svg-image-with-css-cross-domain.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=163922

Unreviewed test gardening.

3:46 PM Changeset in webkit [208014] by Wenson Hsieh
  • 18 edits
    6 adds in trunk

Support "insertFromDrop" and "deleteByDrag" for the InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163948
<rdar://problem/28921433>

Reviewed by Darin Adler.

Source/WebCore:

Implements support for "insertFromDrop" and "deleteByDrag" inputTypes. These are fired when dragging and
dropping text in editable areas. To do this, we introduce EditActionInsertFromDrop and EditActionDeleteByDrag
(renamed from EditActionDrag, which is no longer necessary after this patch).

When moving text from an editable element to another, we will use a DeleteSelectionCommand to delete the text
from the source element and a ReplaceSelectionCommand to insert the text into the destination element. This
means that we currently fire two input events on the source and destination elements (i.e. given by the start
and end selections) after both child editing commands of the MoveSelectionCommand have been applied. Instead, we
need to fire events in this order:

  1. beforeinput ("deleteByDrag") on the source
  2. Update DOM
  3. input ("deleteByDrag") on the source
  1. beforeinput ("insertFromDrop") on the destination
  2. Update DOM
  3. input ("insertFromDrop") on the destination

To accomplish this, we allow an edit command to defer dispatching input events to its child commands via
CompositeEditCommand::shouldDispatchInputEvents, which the MoveSelectionCommand overrides. Additionally,
when applying the MoveSelectionCommand, we now apply() the child DeleteSelectionCommand and
ReplaceSelectionCommand instead of using doApply(). This allows these children to separately dispatch input
events, and also handle preventDefault() separately.

Tests: fast/events/before-input-events-prevent-drag-and-drop.html

fast/events/input-events-drag-and-drop.html
fast/events/input-events-insert-by-drop.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::apply):
(WebCore::CompositeEditCommand::composition):

Searches for the top-level command and returns its composition. Also ASSERTs that the m_command of all child
commands along the way is null. In places where we used to ASSERT that command.composition() should be null, we
now perform the assertion here instead.

  • editing/CompositeEditCommand.h:

(WebCore::CompositeEditCommand::shouldDispatchInputEvents):

This is true by default, which means that if apply() is called for a composite edit command that does not
override this to return false, it will try to dispatch input events. In most cases, the parent command will call
on the child command to doApply(), bypassing this check.

(WebCore::CompositeEditCommand::composition): Deleted.

  • editing/EditAction.h:
  • editing/EditCommand.cpp:

(WebCore::inputTypeNameForEditingAction):
(WebCore::EditCommand::isEditingTextAreaOrTextInput):
(WebCore::EditCommand::setStartingSelection):
(WebCore::EditCommand::setEndingSelection):
(WebCore::EditCommand::setParent):

  • editing/Editor.cpp:

(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):

After applying editing, only adjust the current selection and notify clients of selection change if the applied
command was a top-level command; otherwise, these actions should wait until all child commands of the top-level
command have been applied. In particular, we should not register the applied command as an undo step.

  • editing/MoveSelectionCommand.cpp:

(WebCore::MoveSelectionCommand::doApply):
(WebCore::MoveSelectionCommand::editingAction):

  • editing/MoveSelectionCommand.h:
  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

For the cases where we're not deleting text from the drag source (i.e. we're just applying a
ReplaceSelectionCommand) pass in EditActionInsertFromDrop as the EditAction when creating the command.

Source/WebKit/mac:

Add support for new drag and drop-related EditAction enum values.

  • WebCoreSupport/WebEditorClient.mm:

(undoNameForEditAction):

Source/WebKit/win:

Add support for new drag and drop-related EditAction enum values.

  • WebCoreSupport/WebEditorClient.cpp:

(undoNameForEditAction):

Source/WebKit2:

Add support for new drag and drop-related EditAction enum values.

  • UIProcess/WebEditCommandProxy.cpp:

(WebKit::WebEditCommandProxy::nameForEditAction):

LayoutTests:

Adds 3 new layout tests verifying that when dragging and dropping (both from a contenteditable to another
contenteditable and from non-editable content into a contenteditable) beforeinput and input events are fired in
the right order with the right data and inputTypes, and that undoing/redoing still considers the drag and drop
command as a single unit. Also tests that both deleting text by dragging and inserting text by dropping are
preventable.

  • fast/events/before-input-events-prevent-drag-and-drop-expected.txt: Added.
  • fast/events/before-input-events-prevent-drag-and-drop.html: Added.
  • fast/events/input-events-drag-and-drop-expected.txt: Added.
  • fast/events/input-events-drag-and-drop.html: Added.
  • fast/events/input-events-insert-by-drop-expected.txt: Added.
  • fast/events/input-events-insert-by-drop.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk2/TestExpectations:
3:37 PM Changeset in webkit [208013] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win][Direct2D] Implement GraphicsContext::releaseWindowsContext.
https://bugs.webkit.org/show_bug.cgi?id=163988

Reviewed by Brent Fulgham.

This method is needed to draw native controls.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::releaseWindowsContext):

3:25 PM Changeset in webkit [208012] by commit-queue@webkit.org
  • 11 edits
    5 adds in trunk

Web Inspector: Create general model object Collection class
https://bugs.webkit.org/show_bug.cgi?id=163995

Patch by Devin Rousso <Devin Rousso> on 2016-10-27
Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Models/Collection.js: Added.

(WebInspector.Collection):
(WebInspector.Collection.prototype.get items):
(WebInspector.Collection.prototype.get typeVerifier):
(WebInspector.Collection.prototype.add):
(WebInspector.Collection.prototype.remove):
(WebInspector.Collection.prototype.clear):
(WebInspector.Collection.prototype.toArray):
(WebInspector.Collection.prototype.toJSON):
(WebInspector.Collection.prototype.itemAdded):
(WebInspector.Collection.prototype.itemRemoved):
(WebInspector.Collection.prototype.itemsCleared):
Class that holds multiple model objects. It can be limited to a specific type by supplying
a "typeVerifier", which is a function that accepts a single argument (the model object) and
returns true/false depending on if that argument matches the "type" of the collection.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Models/Frame.js:
  • UserInterface/Views/CookieStorageContentView.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:
  • UserInterface/Views/FrameTreeElement.js:
  • UserInterface/Views/OpenResourceDialog.js:

Add support for WebInspector.Collection.

  • UserInterface/Models/ResourceCollection.js:

(WebInspector.ResourceCollection):
(WebInspector.ResourceCollection.verifierForType):
(WebInspector.ResourceCollection.prototype.resourceCollectionForType):
(WebInspector.ResourceCollection.prototype.clear):
(WebInspector.ResourceCollection.prototype.itemAdded):
(WebInspector.ResourceCollection.prototype.itemRemoved):
(WebInspector.ResourceCollection.prototype.itemsCleared):
(WebInspector.ResourceCollection.prototype._associateWithResource):
(WebInspector.ResourceCollection.prototype._disassociateWithResource):
(WebInspector.ResourceCollection.prototype._resourceURLDidChange):
(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
(WebInspector.ResourceCollection.prototype.get resources): Deleted.
(WebInspector.ResourceCollection.prototype.resourcesWithType): Deleted.
(WebInspector.ResourceCollection.prototype.addResource): Deleted.
(WebInspector.ResourceCollection.prototype.removeResource): Deleted.
(WebInspector.ResourceCollection.prototype.removeAllResources): Deleted.
Now a subclass of WebInspector.Collection. Retrieving WebInspector.Resource objects by type
and URL is still supported, but requesting by type now returns another instance of
WebInspector.ResourceCollection that is configured to only accept the requested type.

LayoutTests:

  • inspector/debugger/resources/log-pause-location.js:

(TestPage.registerInitializer.window.findScript):
Change name of getter to support WebInspector.Collection.

  • inspector/unit-tests/collection-expected.txt: Added.
  • inspector/unit-tests/collection.html: Added.
  • inspector/unit-tests/resource-collection-expected.txt: Added.
  • inspector/unit-tests/resource-collection.html: Added.

Created tests for WebInspector.Collection and WebInspector.ResourceCollection.

3:19 PM Changeset in webkit [208011] by Joseph Pecoraro
  • 3 edits
    2 adds in trunk

Web Inspector: Worker should recover if Inspector is closed and never sent Worker.initialized command
https://bugs.webkit.org/show_bug.cgi?id=164073

Reviewed by Brian Burg.

Source/WebCore:

Test: inspector/worker/worker-recover-if-inspector-close.html

  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::disconnectFromWorkerInspectorController):
Ensure we stop the debugger only task loop if needed when the last debugger
message comes in.

LayoutTests:

  • inspector/worker/worker-recover-if-inspector-close-expected.txt: Added.
  • inspector/worker/worker-recover-if-inspector-close.html: Added.

Test to ensure a Worker recovers when it is paused on opening waiting for
Inspector messages and the Inspector disconnects.

3:19 PM Changeset in webkit [208010] by Joseph Pecoraro
  • 53 edits
    2 copies
    3 adds
    4 deletes in trunk

Web Inspector: Include ConsoleAgent in Workers - real console.log support
https://bugs.webkit.org/show_bug.cgi?id=163844
<rdar://problem/28903328>

Reviewed by Brian Burg.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/policies/csp-blocked-worker-expected.txt:
  • web-platform-tests/streams/readable-streams/garbage-collection.https-expected.txt:

Source/JavaScriptCore:

  • inspector/protocol/Worker.json:

Source/WebCore:

Test: inspector/worker/console-basic.html

This introduces a real ConsoleAgent in the Worker InspectorController.
We no longer need to pass partial ConsoleMessage objects to be logged
through the Page, we can just send the full ConsoleMessages to a
frontend once it connects to the Worker.

In order to guarantee that the Worker InspectorController is properly
all Workers will start paused if there is an Inspector attached to
the Page. The frontend _must_ call the new Worker.initialized method
after sending its setup commands to the Worker. This ensures we get
handle all initialization commands (like Agent.enable(), and
setting state like breakpoints) before any script executes in the
Worker. This mirrors the Inspector.initialized method that does the
same thing for JSContext auto-attach of the Main target.

In the backend, the wait until initialized state is just running
the WorkerThread's RunLoop in a special debugger mode to only process
debugger commands until we are ready. This will effectively be
the same as pausing so it is generalized into WorkerThread.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

New files.

  • inspector/InspectorWorkerAgent.cpp:

(WebCore::InspectorWorkerAgent::initialized):
(WebCore::InspectorWorkerAgent::shouldWaitForDebuggerOnStart):

  • inspector/InspectorWorkerAgent.h:

Add the new initialized method. This just uses the proxy to send
a message to be handled on the Worker Thread and unpause.

  • inspector/WorkerConsoleAgent.cpp:

(WebCore::WorkerConsoleAgent::WorkerConsoleAgent):
(WebCore::WorkerConsoleAgent::addInspectedNode):

  • inspector/WorkerConsoleAgent.h:
  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):
Add a ConsoleAgent to WorkerInspectorController.

  • workers/WorkerInspectorProxy.h:
  • workers/WorkerInspectorProxy.cpp:

(WebCore::WorkerInspectorProxy::workerStartMode):
(WebCore::WorkerInspectorProxy::resumeWorkerIfPaused):
(WebCore::WorkerInspectorProxy::connectToWorkerInspector):
(WebCore::WorkerInspectorProxy::disconnectFromWorkerInspector):
(WebCore::WorkerInspectorProxy::sendMessageToWorkerInspector):
Use the debugger mode when sending messages to the WorkerThread.

  • workers/Worker.cpp:

(WebCore::Worker::notifyFinished):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerReportingProxy.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScopeProxy.h:

Remove legacy partial console support.

  • workers/WorkerRunLoop.h:
  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::debuggerMode):

  • workers/WorkerThread.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):
(WebCore::WorkerThread::startRunningDebuggerTasks):
(WebCore::WorkerThread::stopRunningDebuggerTasks):
General code for spinning the WorkerThread and only processing debugger
(Inspector) commands. Use this when starting the thread to ensure the
frontend initializes the Worker's Agents before any JavaScript executes.

  • page/PageConsoleClient.cpp:
  • workers/WorkerConsoleClient.cpp:

(WebCore::WorkerConsoleClient::count):
(WebCore::WorkerConsoleClient::time):
(WebCore::WorkerConsoleClient::timeEnd):

  • inspector/InspectorConsoleInstrumentation.h: Removed.
  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
(WebCore::InspectorInstrumentation::shouldWaitForDebuggerOnStartImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::shouldWaitForDebuggerOnStart):
(WebCore::InspectorInstrumentation::addMessageToConsole):
(WebCore::InspectorInstrumentation::consoleCount):
(WebCore::InspectorInstrumentation::takeHeapSnapshot):
(WebCore::InspectorInstrumentation::startConsoleTiming):
(WebCore::InspectorInstrumentation::stopConsoleTiming):
(WebCore::InspectorInstrumentation::consoleTimeStamp):
(WebCore::InspectorInstrumentation::startProfiling):
(WebCore::InspectorInstrumentation::stopProfiling):
Implement a few more basic console APIs that required ConsoleAgent.

Source/WebInspectorUI:

  • UserInterface/Protocol/Target.js:

(WebInspector.Target.prototype.get ConsoleAgent):
(WebInspector.Target.prototype._initializeNonMainTarget):

  • UserInterface/Protocol/Connection.js:

(InspectorBackend.WorkerConnection):
Add ConsoleAgent.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager.prototype.messageWasAdded):
(WebInspector.LogManager.prototype.requestClearMessages):
Handle ConsoleAgent calls with multiple targets.

  • UserInterface/Protocol/ConsoleObserver.js:

(WebInspector.ConsoleObserver.prototype.messageAdded):
Dispatch with the target in case we create Model objects.

  • UserInterface/Controllers/WorkerManager.js:

(WebInspector.WorkerManager.prototype.workerCreated):
The frontend must now call "initialized" on Workers after
sending our setup messages (enable, set breakpoints, etc).

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.prototype.get target):
Expose an accessor for tests.

  • UserInterface/Protocol/LoggingProtocolTracer.js:

(WebInspector.LoggingProtocolTracer.prototype._processEntry):
Actually output the Exception, useful when debugging failures in tests.

LayoutTests:

  • inspector/console/messageAdded-from-worker-expected.txt: Removed.
  • inspector/console/messageAdded-from-worker.html: Removed.
  • inspector/console/resources/worker-console-log.js: Removed.

Remove the old partial console in Worker test.

  • inspector/worker/console-basic-expected.txt: Added.
  • inspector/worker/console-basic.html: Added.
  • inspector/worker/resources/worker-console.js: Added.

New console in Worker test.

  • inspector/worker/worker-create-and-terminate.html:

The frontend must call initialize on Workers, otherwise they
are paused forever.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-connect-src-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-multiple-csp-headers-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-set-timeout-blocked-expected.txt:
  • http/tests/websocket/tests/hybi/workers/close-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
  • security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt:

Rebaseline. We no longer send Worker console messages through the Page, and likewise
we don't send them to the WebKit client, so they will no longer appear in test output.

3:19 PM Changeset in webkit [208009] by Joseph Pecoraro
  • 42 edits
    1 copy
    8 adds in trunk

Web Inspector: Include RuntimeAgent in Workers - evaluate in Worker context
https://bugs.webkit.org/show_bug.cgi?id=163835
<rdar://problem/28901465>

Reviewed by Brian Burg.

Source/WebCore:

Tests: inspector/unit-tests/target-manager.html

inspector/worker/runtime-basic.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

New file.

  • inspector/InspectorWebAgentBase.h:

(WebCore::WorkerAgentContext::WorkerAgentContext):
New agent context creation struct for Workers.

  • inspector/WorkerInspectorController.cpp:

(WebCore::WorkerInspectorController::WorkerInspectorController):
Create a RuntimeAgent for Workers.

  • inspector/WorkerRuntimeAgent.cpp: Added.

(WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
(WebCore::WorkerRuntimeAgent::didCreateFrontendAndBackend):
(WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):
(WebCore::WorkerRuntimeAgent::injectedScriptForEval):

  • inspector/WorkerRuntimeAgent.h: Added.

Workers currently only ever have a single execution context.

Source/WebInspectorUI:

This introduces the idea that the frontend may communication with multiple
backend "Targets" which each have their own set of Agents.

  • WebInspector.Target
    • has its own list of Agents
    • has a InspectorBackend.Connection to communicate with the backend
  • WebInspector.mainTarget
    • always exists and represents the thing we are debugging (Page or JSContext)

This also slowly introduces the concept that Model objects may be tied to
a specific Target:

  • WebInspector.RemoteObject
    • in order to evaluate JS and interact with this object we must know the target (Page or Worker)
    • when fetching PropertyDescriptors and other RemoteObjects we must continue to pass on the target

Finally this makes the QuickConsole list Worker execution contexts in
the context picker so that users can choose a Worker context and
evaluate JavaScript in that context using the console.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WebInspector.loaded):

  • UserInterface/Test.html:
  • UserInterface/Test/Test.js:

(WebInspector.loaded):
New files, strings, and managers.
New global WebInspector.mainTarget.
New convenience WebInspector.targets.

  • UserInterface/Protocol/Target.js: Added.

(WebInspector.Target):
(WebInspector.Target.prototype.get RuntimeAgent):
(WebInspector.Target.prototype.get name):
(WebInspector.Target.prototype.get type):
(WebInspector.Target.prototype.get connection):
(WebInspector.Target.prototype.get executionContext):
(WebInspector.Target.prototype.get displayName):
(WebInspector.Target.prototype._intializeMainTarget):
(WebInspector.Target.prototype._initializeNonMainTarget):
Target has some basic properties.

  • UserInterface/Controllers/TargetManager.js:

(WebInspector.TargetManager):
(WebInspector.TargetManager.prototype.get targets):
(WebInspector.TargetManager.prototype.addTarget):
(WebInspector.TargetManager.prototype.removeTarget):
Holds the list of Targets and events when created / removed.
Each target with a RuntimeAgent has an ExecutionContext.

  • UserInterface/Controllers/WorkerManager.js:

(WebInspector.WorkerManager):
(WebInspector.WorkerManager.prototype.workerCreated):
(WebInspector.WorkerManager.prototype.workerTerminated):
(WebInspector.WorkerManager.prototype.dispatchMessageFromWorker):
Create / remove / dispatch on a Worker Target.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._agentForDomain):
Keep the original implementations and just dispatch to the main connection.

(InspectorBackend.Agent):
(InspectorBackend.Agent.prototype.get connection):
(InspectorBackend.Agent.prototype.set connection):
(InspectorBackend.Agent.prototype.get dispatcher):
We will share Agent implementations but just give new "copies" a different
connection and dispatcher.

(InspectorBackend.Command):
(InspectorBackend.Command.create):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype.supports):
We continue to have a single Command instance on the Agent. However instead
of using the hardcoded Agent on the Instance when evaluated as a function
it uses the this object which should be an agent. This way:

target1.RuntimeAgent.evaluate

  • this is target1 and we use the connection for that target

target2.RuntimeAgent.evaluate

  • this is target2 and we use the connection for that target

Unfortunately this breaks RuntimeAgent.evaluate.invoke. Currently this
is solved by providing an extra parameter. In the case where we need to
invoke on a particular agent we must provide the agent.

target.RuntimeAgent.evaluate.invoke({options}, target.RuntimeAgent)

This is unfortunate but only needed in a handful of places right now.

(InspectorBackendClass.prototype._sendCommandToBackendWithCallback): Deleted.
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise): Deleted.
(InspectorBackendClass.prototype._sendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._dispatchResponse): Deleted.
(InspectorBackendClass.prototype._dispatchResponseToCallback): Deleted.
(InspectorBackendClass.prototype._dispatchResponseToPromise): Deleted.
(InspectorBackendClass.prototype._dispatchEvent): Deleted.
(InspectorBackendClass.prototype._flushPendingScripts): Deleted.
(InspectorBackend.Agent.prototype.get currentDispatchState): Deleted.
(InspectorBackend.Command.prototype.deliverFailure): Deleted.

  • UserInterface/Protocol/Connection.js: Added.

(InspectorBackend.Connection):
(InspectorBackend.Connection.prototype.get target):
(InspectorBackend.Connection.prototype.set target):
(InspectorBackend.Connection.prototype.dispatch):
(InspectorBackend.Connection.prototype.runAfterPendingDispatches):
(InspectorBackend.Connection.prototype.sendMessageToBackend):
(InspectorBackend.Connection.prototype._dispatchResponse):
(InspectorBackend.Connection.prototype._dispatchResponseToCallback):
(InspectorBackend.Connection.prototype._dispatchResponseToPromise):
(InspectorBackend.Connection.prototype._dispatchEvent):
(InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
(InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
(InspectorBackend.Connection.prototype._sendMessageToBackend):
(InspectorBackend.Connection.prototype._flushPendingScripts):
This extracts the Connection details into its own class.
Although we make it appear as though a Target has a list of
Agents, we actually have the Connection hold the list of Agents.
Instead of cloning the entire Agent we just create a new object
extended from the original Agent instance. This allows us to keep
the same interface but just change the connection / dispatcher
properties within the Agent.

(InspectorBackend.MainConnection):
(InspectorBackend.MainConnection.prototype.sendMessageToBackend):
(InspectorBackend.WorkerConnection):
(InspectorBackend.WorkerConnection.sendMessageToBackend):
Two different kinds of connections. One for the Main connection
and one for Workers. Currently the list of agents we expose
on a Worker Target/Connection is hardcoded.

  • UserInterface/Models/ExecutionContext.js:

(WebInspector.ExecutionContext):
(WebInspector.ExecutionContext.prototype.get target):
We may now have ExecutionContexts that mean a Page, Frames, and Workers.
To do this we include the (target, executionContextId) tuple in this object.
With this we have everything we need to evaluate JavaScript.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager):
(WebInspector.RuntimeManager.prototype.get activeExecutionContext):
(WebInspector.RuntimeManager.prototype.set activeExecutionContext):
(WebInspector.RuntimeManager.prototype.get defaultExecutionContextIdentifier): Deleted.
(WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier): Deleted.
Update from contextId to a full ExecutionContext object.

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype.saveResult):
(WebInspector.RuntimeManager.prototype.getPropertiesForRemoteObject):
(WebInspector.RuntimeManager.prototype._frameExecutionContextsCleared):

  • UserInterface/Controllers/FrameResourceManager.js:

(WebInspector.FrameResourceManager.prototype.executionContextCreated):

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.consolePromptShouldCommitText):

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

Anywhere that wants to use the "activeExecutionContext" must use the
specific RuntimeAgent tied to that ExecutionContext's Target.

  • UserInterface/Models/PropertyDescriptor.js:

(WebInspector.PropertyDescriptor.fromPayload):

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.createFakeRemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
(WebInspector.RemoteObject.prototype.setPropertyValue):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.callFunctionJSON):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor.wrappedCallback):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
(WebInspector.RemoteObject.prototype.release):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype._getPropertyDescriptorsResolver):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
RemoteObject and related Model Objects now must be tied to a specific
Target, because we need to know which Target it belongs to in order to
interact with it further.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype.get selectedExecutionContext):
(WebInspector.QuickConsole.prototype.set selectedExecutionContext):
(WebInspector.QuickConsole.prototype._executionContextPathComponentsToDisplay):
(WebInspector.QuickConsole.prototype._rebuildExecutionContextPathComponents):
(WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
(WebInspector.QuickConsole.prototype._frameExecutionContextsCleared):
(WebInspector.QuickConsole.prototype._createExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
(WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):
(WebInspector.QuickConsole.prototype._insertOtherExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._removeOtherExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._targetAdded):
(WebInspector.QuickConsole.prototype._targetRemoved):
(WebInspector.QuickConsole.prototype._pathComponentSelected):
(WebInspector.QuickConsole.prototype.get selectedExecutionContextIdentifier): Deleted.
(WebInspector.QuickConsole.prototype.set selectedExecutionContextIdentifier): Deleted.
(WebInspector.QuickConsole.prototype._defaultExecutionContextChanged): Deleted.
Update the code from executionContextId to ExecutionContext objects.
Update the picker with ExecutionContextPathComponent for Workers (new Targets).
Generalize and cleanup the code to make it easier to follow.

LayoutTests:

  • inspector/unit-tests/target-manager-expected.txt: Added.
  • inspector/unit-tests/target-manager.html: Added.

Unit test for TargetManager and its events with Worker creation.

  • inspector/worker/resources/worker-1.js:
  • inspector/worker/runtime-basic-expected.txt: Added.
  • inspector/worker/runtime-basic.html: Added.

Test comparing RuntimeAgent between Main target and Worker target.

  • inspector/runtime/change-execution-context-identifier-expected.txt:
  • inspector/runtime/change-execution-context-identifier.html:

RuntimeManager has been updated to have a full ExecutionContext object
containing a Target + ContextId instead of just a ContextId.

  • inspector/console/console-api-expected.txt:
  • inspector/console/console-api.html:
  • inspector/console/console-table-expected.txt:
  • inspector/console/console-table.html:
  • inspector/debugger/tail-deleted-frames-from-vm-entry.html:
  • inspector/debugger/tail-deleted-frames.html:
  • inspector/debugger/tail-recursion.html:
  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object-weak-collection-expected.txt:
  • inspector/model/remote-object-weak-collection.html:
  • inspector/model/remote-object.html:
  • platform/mac/inspector/model/remote-object-expected.txt:

Introduce a better JSON Filter for RemoteObject in more tests.
It is important that we filter the _target, because otherwise
JSON.stringify would throw an error about cycles.

3:18 PM Changeset in webkit [208008] by Joseph Pecoraro
  • 27 edits
    2 copies
    17 adds in trunk

Web Inspector: Introduce Page WorkerAgent and Worker InspectorController
https://bugs.webkit.org/show_bug.cgi?id=163817
<rdar://problem/28899063>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • DerivedSources.make:
  • inspector/protocol/Worker.json: Added.

New Worker domain.

Source/WebCore:

Test: inspector/worker/worker-create-and-terminate.html

From the perspective of an Inspector frontend, Workers are
like a special JavaScript context, separate from the page, that
may have its own set of Agents. This patch adds the necessary
backend infrastructure to provide WorkerGlobalObject with an
InspectorController and the means to communicate with a frontend
through a Page's WorkerAgent.

Pages now get a WorkerAgent. This informs the frontend about
created and terminated Workers. It also provides a communication
channel to dispatch and return inspector protocol messages to
each of the Workers. The Page side always interacts with the
WorkerInspectorProxy on the main thread. The Page's Worker Agent
can sends and receives messages to WorkerInspectorControllers.

WorkerGlobalScopes now get a WorkerInspectorController which
will eventually contain its own set of agents. There are no
agents yet, but they will be added individually in follow-up
patches. The Worker side always interacts with the
WorkerGlobalScope on the worker thread. WorkerInspectorController
dispatches messages on its agents.

All communication with Worker agents goes through Worker.sendMessageToWorker,
which tunnels the command request to the Worker's InspectorController
and agents. At the protocol level, worker agent command responses and
worker agent events are sent as events through Worker.dispatchMessageFromWorker.
On the frontend, the message dispatcher code will pair up replies with
their commands, and no-reply messages as events, like normal. So calling
worker agent methods in the frontend will be no different from the
existing callback/promise-based ways.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

Add new files.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::WorkerScriptController):
(WebCore::WorkerScriptController::initScript):

  • bindings/js/WorkerScriptController.h:

Some cleanup.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):

  • inspector/InspectorController.h:
  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::inspectorWorkerAgent):
(WebCore::InstrumentingAgents::setInspectorWorkerAgent):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::workerStartedImpl):
(WebCore::InspectorInstrumentation::workerTerminatedImpl):
(WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::workerStarted):
(WebCore::InspectorInstrumentation::workerTerminated):
(WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
Give the Page a WorkerAgent and Instrumentation methods for
Worker creation and termination.

  • inspector/InspectorWorkerAgent.h: Added.
  • inspector/InspectorWorkerAgent.cpp: Added.

(WebCore::InspectorWorkerAgent::InspectorWorkerAgent):
(WebCore::InspectorWorkerAgent::didCreateFrontendAndBackend):
(WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorWorkerAgent::enable):
(WebCore::InspectorWorkerAgent::disable):
(WebCore::InspectorWorkerAgent::workerStarted):
(WebCore::InspectorWorkerAgent::workerTerminated):
(WebCore::InspectorWorkerAgent::connectToAllWorkerInspectorProxiesForPage):
(WebCore::InspectorWorkerAgent::disconnectFromAllWorkerInspectorProxies):
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):
(WebCore::InspectorWorkerAgent::disconnectFromWorkerInspectorProxy):
Handle connecting to Workers. This performs the "connectFrontend"
and "disconnectFrontend" dance with each Worker's InspectorController.
We only connect to workers when the Worker domain is enabled.

(WebCore::InspectorWorkerAgent::sendMessageToWorker):
(WebCore::InspectorWorkerAgent::sendMessageFromWorkerToFrontend):
Proxying messages to individual messages happens through the
WorkerInspectorProxy. That takes care of passing messages
across threads for us.

  • workers/WorkerInspectorProxy.cpp: Added.

(WebCore::WorkerInspectorProxy::allWorkerInspectorProxies):
(WebCore::WorkerInspectorProxy::WorkerInspectorProxy):
(WebCore::WorkerInspectorProxy::~WorkerInspectorProxy):
(WebCore::WorkerInspectorProxy::workerStarted):
(WebCore::WorkerInspectorProxy::workerTerminated):
(WebCore::WorkerInspectorProxy::connectToWorkerInspector):
(WebCore::WorkerInspectorProxy::disconnectFromWorkerInspector):
(WebCore::WorkerInspectorProxy::sendMessageToWorkerInspector):
(WebCore::WorkerInspectorProxy::sendMessageFromWorkerToFrontend):

  • workers/WorkerInspectorProxy.h: Added.

(WebCore::WorkerInspectorProxy::PageChannel::~PageChannel):
(WebCore::WorkerInspectorProxy::url):
(WebCore::WorkerInspectorProxy::identifier):
(WebCore::WorkerInspectorProxy::scriptExecutionContext):
The WorkerInspectorProxy simplifies the cross thread communication
between the Page Inspector and Worker Inspector. It also provides
a clean interface between the two sides.

  • inspector/WorkerToPageFrontendChannel.h: Added.
  • inspector/WorkerInspectorController.h: Added.
  • inspector/WorkerInspectorController.cpp: Added.

(WebCore::WorkerInspectorController::WorkerInspectorController):
(WebCore::WorkerInspectorController::~WorkerInspectorController):
(WebCore::WorkerInspectorController::workerTerminating):
(WebCore::WorkerInspectorController::connectFrontend):
(WebCore::WorkerInspectorController::disconnectFrontend):
(WebCore::WorkerInspectorController::dispatchMessageFromFrontend):
(WebCore::WorkerInspectorController::functionCallHandler):
(WebCore::WorkerInspectorController::evaluateHandler):
(WebCore::WorkerInspectorController::vm):
A basic InspectorController for a WorkerGlobalScope.
No agents yet, they will come soon.

  • inspector/WorkerScriptDebugServer.h:
  • inspector/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
(WebCore::WorkerScriptDebugServer::attachDebugger):
(WebCore::WorkerScriptDebugServer::detachDebugger):
(WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):
(WebCore::WorkerScriptDebugServer::interruptAndRunTask):
A basic WorkerScriptDebug server for a WorkerGlobalScope.
Not really used until we implement DebuggerAgent, but needed for InspectorEnvironment.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::inspectorController):
Give the WorkerGlobalScope an InspectorController.

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):
Ensure the Worker InspectorController is immediately on
the WorkerThread when it is about to be closed.

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal):
(WebCore::WorkerMessagingProxy::terminateWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerReportingProxy.h:

Call into the WorkerInspectorProxy for any inspector related logic,
such as creation, termination, and messages received from the Worker.

Source/WebInspectorUI:

  • UserInterface/Main.html:
  • UserInterface/Test.html:

New files.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):

  • UserInterface/Test/Test.js:

(WebInspector.loaded):
New Observers and Managers.

  • UserInterface/Protocol/WorkerObserver.js: Added.

(WebInspector.WorkerObserver.prototype.workerCreated):
(WebInspector.WorkerObserver.prototype.workerTerminated):
(WebInspector.WorkerObserver.prototype.dispatchMessageFromWorker):
(WebInspector.WorkerObserver):

  • UserInterface/Controllers/WorkerManager.js: Added.

(WebInspector.WorkerManager):
(WebInspector.WorkerManager.prototype.workerCreated):
(WebInspector.WorkerManager.prototype.workerTerminated):
(WebInspector.WorkerManager.prototype.dispatchMessageFromWorker):
To be implemented with the first Worker agent implementation
when there is actually something we can do with the Worker.

LayoutTests:

  • inspector/worker/resources/worker-1.js: Added.
  • inspector/worker/resources/worker-2.js: Added.
  • inspector/worker/resources/worker-3.js: Added.
  • inspector/worker/worker-create-and-terminate-expected.txt: Added.
  • inspector/worker/worker-create-and-terminate.html: Added.

Tests for the new Worker domain events.
The rest of the Worker domain will be tested as soon as
we add the first Agent in Workers.

3:18 PM Changeset in webkit [208007] by jmarcell@apple.com
  • 1 copy in tags/Safari-602.3.5

New tag.

3:05 PM Changeset in webkit [208006] by hyatt@apple.com
  • 24 edits
    1 add in trunk/Source/WebCore

[CSS Parser] Implement CSS variables
https://bugs.webkit.org/show_bug.cgi?id=164075

Reviewed by Dean Jackson.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add CSSCustomPropertyValue.cpp to the project.

  • css/CSSCustomPropertyValue.cpp: Added.

(WebCore::CSSCustomPropertyValue::checkVariablesForCycles):
(WebCore::CSSCustomPropertyValue::resolveVariableReferences):

  • css/CSSCustomPropertyValue.h:

These functions abstract the old and new implementations of CSS
variables so that the callers don't have to worry about it.

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
Make sure CSSVariableReferenceValue and CSSPendingSubstitutionValue
have equals implemented.

(WebCore::CSSValue::isInvalidCustomPropertyValue): Deleted.
This code was dead and never called.

  • css/CSSValue.h:

(WebCore::CSSValue::isCustomPropertyValue):
(WebCore::CSSValue::hasVariableReferences):
Add a helper function for asking if a CSSValue has variable references.
This abstracts the old and new implementations so that callers can
ask if the value has variables without caring which implementation is
being used.

  • css/CSSValueList.cpp:

(WebCore::CSSValueList::checkVariablesForCycles):

  • css/CSSValueList.h:

In order to abstract the old and new variables implementations, custom
properties now store CSSCustomPropertyValue as their values instead of
raw values. The old implementation needs to be patched to deal with this
wrapper being present now.

  • css/CSSVariableData.cpp:

(WebCore::CSSVariableData::checkVariablesForCycles):
(WebCore::CSSVariableData::checkVariablesForCyclesWithRange):
(WebCore::CSSVariableData::resolveVariableFallback):
(WebCore::CSSVariableData::resolveVariableReference):
(WebCore::CSSVariableData::resolveVariableReferences):
(WebCore::CSSVariableData::resolveTokenRange):

  • css/CSSVariableData.h:

Implementation of cycle checking and variable resolution. The logic of
this implementation is the same as the old. It walks CSSParserTokens
instead of the old CSSParser structures.

  • css/CSSVariableReferenceValue.cpp:

(WebCore::CSSVariableReferenceValue::customCSSText):
Add support for serialization caching, just like the old implementation
had in CSSVariableDependentValue.

(WebCore::CSSVariableReferenceValue::checkVariablesForCycles):

  • css/CSSVariableReferenceValue.h:

Add cycle checking and variable resolution helper functions.

  • css/CSSVariableValue.cpp:

(WebCore::CSSVariableValue::buildParserValueListSubstitutingVariables):
Patched to account for the change in storage of custom properties to
have custom property value wrappers.

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue):
(WebCore::StyleProperties::borderSpacingValue):
(WebCore::StyleProperties::getLayeredShorthandValue):
(WebCore::StyleProperties::getShorthandValue):
(WebCore::StyleProperties::getCommonValue):
(WebCore::StyleProperties::getPropertyCSSValue):
(WebCore::StyleProperties::asText):
Clean up the resolution of pending substitution values. Instead of hacking
it into every possible StyleShorthandProperty crawling function, obtain
the shorthand for the property up front, access the first longhand, and
if we see a pending substitution value, perform the substitution.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::resolvedVariableValue):

  • css/StyleResolver.h:

Add support for the new implementation in all the same places as the old.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseInlineStyleDeclaration):
(WebCore::CSSParser::parseValueWithVariableReferences):
(WebCore::CSSParser::parseVariableDependentValue): Deleted.

  • css/parser/CSSParser.h:

Rename parseVariableDependentValue to parseValueWithVariableReferences,
since it is operating on three distinct value types now. Turn on new
parser support for parseInlineStyleDeclaration.

  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
(WebCore::CSSParserImpl::parseVariableValue): Deleted.
(WebCore::CSSParserImpl::parseCustomPropertySet): Deleted.

  • css/parser/CSSParserImpl.h:

Remove parser functions that aren't relevant to our implementation
of CSS variables.

  • css/parser/CSSVariableParser.cpp:

(WebCore::classifyVariableRange):
Add support for the CSS4 'revert' keyword to the new variable parser.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::checkVariablesInCustomProperties):
Modified to store CSSCustomPropertyValues as the values always now and
to use the method abstractions on CSSCustomPropertyValue to resolve
cycles and perform substitutions.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setCustomPropertyValue):
(WebCore::RenderStyle::getCustomPropertyValue):

  • rendering/style/StyleCustomPropertyData.h:

(WebCore::StyleCustomPropertyData::operator==):
(WebCore::StyleCustomPropertyData::setCustomPropertyValue):
(WebCore::StyleCustomPropertyData::getCustomPropertyValue):
Tighten up the map to store CSSCustomPropertyValue instead of just
CSSValue.

2:38 PM October 2016 Meeting edited by Jon Davis
(diff)
2:37 PM SecurityIssuesinWebKit2016 created by Jon Davis
2:19 PM Changeset in webkit [208005] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

RenderMultiColumnFlowThread::processPossibleSpannerDescendant should take RenderObject& instead of RenderObject*
https://bugs.webkit.org/show_bug.cgi?id=164072

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderFlowThread.h:
  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::findSetRendering):
(WebCore::isValidColumnSpanner):
(WebCore::RenderMultiColumnFlowThread::processPossibleSpannerDescendant):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
(WebCore::RenderMultiColumnFlowThread::findSetRendering): Deleted.

  • rendering/RenderMultiColumnFlowThread.h:
  • rendering/RenderMultiColumnSet.cpp:

(WebCore::precedesRenderer):
(WebCore::RenderMultiColumnSet::containsRendererInFlowThread):

  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:

(WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):

  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree):

2:14 PM Changeset in webkit [208004] by Chris Dumez
  • 16 edits in trunk/LayoutTests

Sync up all copies of testharnessreport.js
https://bugs.webkit.org/show_bug.cgi?id=164071

Reviewed by Youenn Fablet.

Sync up all copies of testharnessreport.js for consistency.

  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-1-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-2-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-3-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-4-expected.txt:
  • http/tests/security/same-origin-css-1-expected.txt:
  • http/tests/security/same-origin-css-2-expected.txt:
  • http/tests/security/same-origin-css-3-expected.txt:
  • http/tests/security/same-origin-css-in-quirks-expected.txt:
  • http/tests/w3c/resources/testharnessreport.js:

(convertResult):
(self.testRunner.add_completion_callback.):
(self.testRunner.add_completion_callback):
(add_completion_callback.sanitize): Deleted.
(add_completion_callback): Deleted.

  • imported/blink/http/tests/resources/testharnessreport.js:

(convertResult):
(self.testRunner.add_completion_callback.):
(self.testRunner.add_completion_callback):
(isCSSWGTest): Deleted.
(isJSTest): Deleted.
(add_completion_callback.sanitize): Deleted.
(add_completion_callback.done): Deleted.
(add_completion_callback): Deleted.

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback.):
(self.testRunner.add_completion_callback):

1:56 PM Changeset in webkit [208003] by Brent Fulgham
  • 11 edits
    2 adds in trunk

Prevent hit tests from being performed on an invalid render tree
https://bugs.webkit.org/show_bug.cgi?id=163877
<rdar://problem/28675761>

Reviewed by Simon Fraser.

Source/WebCore:

Changeset r200971 added code to ensure that layout is up-to-date before hit testing, but did
so only for the main frame. It was still possible to enter cross-frame hit testing with a
subframe needing style recalc. In that situation, the subframe's updateLayout() would get
called, which could trigger a compositing change that marked the parent frame as needing style
recalc. A subsequent layout on the parent frame (for example by hit testing traversing into
a second subframe) could then mutate the parent frame's layer tree while hit testing was
traversing it.

This patch modifies the hit test logic to ensure that a recursive layout is performed so that
we always perform hit tests on a clean set of frames. It also adds some assertions to warn
us if we encounter this invalid state.

Tested by fast/layers/prevent-hit-test-during-layout.html.

  • dom/Document.cpp:

(WebCore::Document::scheduleStyleRecalc): Assert that we are not hit testing
during style recalculation.

  • page/EventHandler.cpp:

(WebCore::EventHandler::hitTestResultAtPoint): Ensure that we have a clean render tree
when hit testing.

  • page/FrameView.cpp:

(WebCore::FrameView::setNeedsLayout): Assert that we are not in the process of hit testing
when we schedule a layout.

  • rendering/RenderView.cpp:

(WebCore::RenderView::hitTest): Mark RenderView as in an active hit test.

  • rendering/RenderView.h:

LayoutTests:

  • fast/layers/prevent-hit-test-during-layout-expected.txt: Added.
  • fast/layers/prevent-hit-test-during-layout.html: Added.
  • platform/efl/TestExpectations: Skip on this platform.
  • platform/gtk/TestExpectations: Skip on this platform.
  • platform/ios-simulator/TestExpectations: Skip on this platform.
  • platform/win/TestExpectations: Skip on this platform.
1:47 PM October 2016 Meeting edited by Jon Davis
(diff)
1:46 PM VariableFonts2016 created by Jon Davis
1:45 PM October 2016 Meeting edited by Jon Davis
(diff)
1:44 PM URLsCMakeNetworking2016 created by Jon Davis
1:42 PM Direct2DWebKit2016 created by Jon Davis
1:41 PM DOMInputEvents2016 created by Jon Davis
1:36 PM Changeset in webkit [208002] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

BufferSource should behave as an union
https://bugs.webkit.org/show_bug.cgi?id=164056

Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-10-27
Reviewed by Chris Dumez.

WebIDL typedefs BufferSource as (ArrayBufferView or ArrayBuffer).
To follow that definition, IDLBufferSource is now type-aliased
to IDLUnion<IDLInterface<ArrayBufferView>, IDLInterface<ArrayBuffer>>.

Converter<IDLBufferSource> template specialization can now be
removed since the default specialization for IDLUnion will be
used.

C++ implementations still work through a BufferSource object.
That class now has an implicit constructor that consumes the
Variant object. The data() and length() methods on the class
now iterate the variant to find an existing object that can
provide a pointer to the data or the length of it.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBuffer):

  • bindings/generic/IDLTypes.h:
  • bindings/js/BufferSource.h:

(WebCore::BufferSource::BufferSource):
(WebCore::BufferSource::data):
(WebCore::BufferSource::length):

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<IDLBufferSource>::convert): Deleted.

1:29 PM October 2016 Meeting edited by Jon Davis
Added WebGL New Extension Proposal notes (diff)
1:27 PM WebGLExtensionProposal2016 created by Jon Davis
1:23 PM Changeset in webkit [208001] by Chris Dumez
  • 25 edits
    1 copy
    1 add in trunk/Source/WebCore

Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations
https://bugs.webkit.org/show_bug.cgi?id=164063

Reviewed by Sam Weinig.

Merge Element::ShadowRootMode and ShadowRoot::Mode enumerations now
that we support having IDL string enumerations in their own IDL file.

No new tests, no Web-exposed behavior change.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::collectMatchingRules):
(WebCore::ElementRuleCollector::matchAuthorShadowPseudoElementRules):
(WebCore::ElementRuleCollector::collectMatchingShadowPseudoElementRules):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):

  • dom/CustomElementRegistry.cpp:

(WebCore::enqueueUpgradeInShadowIncludingTreeOrder):

  • dom/Element.cpp:

(WebCore::Element::bindingsOffsetParent):
(WebCore::Element::addShadowRoot):
(WebCore::Element::attachShadow):
(WebCore::Element::shadowRootForBindings):
(WebCore::Element::userAgentShadowRoot):
(WebCore::Element::ensureUserAgentShadowRoot):

  • dom/Element.h:
  • dom/Element.idl:
  • dom/InlineStyleSheetOwner.cpp:

(WebCore::parserContextForElement):

  • dom/Node.cpp:

(WebCore::Node::isUnclosedNode):
(WebCore::Node::assignedSlotForBindings):
(WebCore::Node::isInUserAgentShadowTree):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::ShadowRoot):

  • dom/ShadowRoot.h:
  • dom/ShadowRoot.idl:
  • dom/ShadowRootMode.h: Added.
  • dom/ShadowRootMode.idl: Copied from Source/WebCore/dom/ShadowRoot.idl.
  • dom/SlotAssignment.cpp:

(WebCore::SlotAssignment::didChangeSlot):

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::create):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::shadowRootType):

  • rendering/HitTestResult.cpp:

(WebCore::moveOutOfUserAgentShadowTree):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionPseudoStyle):

  • rendering/RenderLayer.cpp:

(WebCore::rendererForScrollbar):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::shouldUseSharedUserAgentShadowTreeStyleResolver):
(WebCore::Style::Scope::didChangeStyleSheetEnvironment):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::correspondingUseElement):

  • testing/Internals.cpp:

(WebCore::Internals::shadowRootType):

1:08 PM Changeset in webkit [208000] by Chris Dumez
  • 5 edits
    2 adds in trunk

Element parameter to CanvasRenderingContext2D.drawFocusIfNeeded() should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=164062

Reviewed by Darin Adler.

Source/WebCore:

Element parameter to CanvasRenderingContext2D.drawFocusIfNeeded() should not be nullable:

Firefox and Chrome agree with the specification.

Test: fast/canvas/draw-focus-if-needed-null-element.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
(WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasRenderingContext2D.idl:

LayoutTests:

Add layout test coverage.

  • fast/canvas/draw-focus-if-needed-null-element-expected.txt: Added.
  • fast/canvas/draw-focus-if-needed-null-element.html: Added.
1:00 PM Changeset in webkit [207999] by Yusuke Suzuki
  • 4 edits in trunk/Source/WebCore

[DOMJIT][CSSJIT] Share code with DOMJIT
https://bugs.webkit.org/show_bug.cgi?id=164006

Reviewed by Mark Lam.

Move CSSJIT's getDocument function to DOMJIT and share it with DOMJIT.
And rename it to "loadDocument", it is closer name to the JSC's convention.

No behavior change.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsRoot):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):
(WebCore::SelectorCompiler::getDocument): Deleted.

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::loadDocument):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::NodeOwnerDocumentDOMJIT::callDOM):

12:49 PM Changeset in webkit [207998] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Tools

Unreviewed, rolling out r207992.
https://bugs.webkit.org/show_bug.cgi?id=164070

triggered aclocal version conflict (Requested by mcatanzaro on
#webkit).

Reverted changeset:

"[GTK] Bump glib to 2.50.1 (or find alternative solution to
Gtk+ CUPS build issue)"
https://bugs.webkit.org/show_bug.cgi?id=163689
http://trac.webkit.org/changeset/207992

12:41 PM Changeset in webkit [207997] by mark.lam@apple.com
  • 16 edits
    1 add in branches/safari-602-branch

Merge r207518. rdar://problem/28216050, rdar://problem/28216232

2016-10-18 Mark Lam <mark.lam@apple.com>

Invoking Object.prototype.proto accessors directly should throw a TypeError.
https://bugs.webkit.org/show_bug.cgi?id=154377
<rdar://problem/27330808>

Reviewed by Filip Pizlo and Saam Barati.

JSTests:

  • stress/object-prototype-proto-accessors-should-throw-on-undefined-this.js: Added.

Source/JavaScriptCore:

In a scenario where we cache the proto accessors in global variables, and
later explicitly invoke those accessors as functions, the spec for Function Calls
(see https://tc39.github.io/ecma262/#sec-function-calls) states that the function
ref value is of type Reference, and base of ref is an Environment Record. Then,
it follows that the thisValue should be set to refEnv.WithBaseObject()
(see section 4.b.ii of 12.3.4.1 at
https://tc39.github.io/ecma262/#sec-function-calls-runtime-semantics-evaluation).

refEnv in this case is the environment record that the cached accessors were
found in i.e. the global object. The WithBaseObject() of the global object is
undefined (see details about WithBaseObject at
https://tc39.github.io/ecma262/#sec-environment-records).

Hence, the proto accessors should see a thisValue of undefined, and throw
TypeErrors. See https://tc39.github.io/ecma262/#sec-get-object.prototype.__proto,
https://tc39.github.io/ecma262/#sec-set-object.prototype.__proto
,
https://tc39.github.io/ecma262/#sec-toobject, and
https://tc39.github.io/ecma262/#sec-requireobjectcoercible.

In JSC's implementation, the callee needs to do a ToThis operation on the
incoming "this" argument in order to get the specified thisValue. The
implementations of the proto accessors were not doing this correctly. This
has now been fixed.

  • runtime/JSGlobalObjectFunctions.cpp: (JSC::globalFuncProtoGetter): (JSC::globalFuncProtoSetter):

LayoutTests:

  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-non-shadowable-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-regular-propterty-with-iframe-proto.html:
  • js/dom/activation-proto-expected.txt:
  • js/dom/script-tests/activation-proto.js:
  • js/object-literal-shorthand-construction-expected.txt:
  • js/script-tests/object-literal-shorthand-construction.js:
  • js/script-tests/sloppy-getter-setter-global-object.js:
  • js/sloppy-getter-setter-global-object-expected.txt:
12:38 PM Changeset in webkit [207996] by matthew_hanson@apple.com
  • 1 delete in tags/Safari-602.3.5

Remove tag.

12:08 PM October 2016 Meeting edited by Jon Davis
Added Sony WebKit Work transcript (diff)
12:07 PM SonyWebKitWork2016 created by Jon Davis
11:48 AM Changeset in webkit [207995] by Chris Dumez
  • 13 edits in trunk/LayoutTests

testharnessreport.js should sanitize the results before printing them
https://bugs.webkit.org/show_bug.cgi?id=164064

Reviewed by Youenn Fablet.

testharnessreport.js should sanitize the results before printing them. We
currently have 3 copies of this script and only 1 does the sanitization.
Short term, let do the sanitization in all of them. Longer term, we should
merge these and have a way to keep them in sync.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:
  • web-platform-tests/url/url-setters-expected.txt:

LayoutTests:

  • fast/media/w3c/test_media_queries-expected.txt:
  • fetch/fetch-url-serialization-expected.txt:
  • http/tests/w3c/resources/testharnessreport.js:

(add_completion_callback.sanitize):
(add_completion_callback):

  • resources/testharnessreport.js:

(self.testRunner.add_completion_callback.):
(self.testRunner.add_completion_callback):

11:26 AM Changeset in webkit [207994] by matthew_hanson@apple.com
  • 11 edits
    110 deletes in branches/safari-602-branch

Merge r206119. rdar://problem/28964589

11:16 AM Changeset in webkit [207993] by matthew_hanson@apple.com
  • 8 edits in branches/safari-602-branch/Source/WebKit2

Merge r206684. rdar://problem/28545011

11:14 AM Changeset in webkit [207992] by jdiggs@igalia.com
  • 2 edits
    1 add in trunk/Tools

[GTK] Bump glib to 2.50.1 (or find alternative solution to Gtk+ CUPS build issue)
https://bugs.webkit.org/show_bug.cgi?id=163689

Reviewed by Michael Catanzaro.

In order to fix bug #163591, we need to apply an upstream patch to GTK+.
But GTK+ won't build with that patch due to the following error:

m4_copy: won't overwrite defined macro: glib_DEFUN

There is an upstream GLib patch which solves that issue. We should apply
that patch as well, until we bump GLib to 2.50.1 or later.

  • gtk/jhbuild.modules: Apply upstream GLib patch.
  • gtk/patches/glib-deprecate-am-glib-gnu-gettext.patch: Added.
9:09 AM Changeset in webkit [207991] by dbates@webkit.org
  • 5 edits
    7 adds in branches/safari-602-branch

Merge r207848. rdar://problem/28216276

7:10 AM Changeset in webkit [207990] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Reapplied the configuration changes from r207934 without breaking iOS builds.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
5:20 AM Changeset in webkit [207989] by calvaris@igalia.com
  • 5 edits in trunk

Unreviewed fix of GTK and EFL test bots.

Tools:

  • Scripts/webkitperl/FeatureList.pm: Deactivated media-source and

legacy-encrypted-media by default for GTK and EFL.

LayoutTests:

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations: Skip media-source tests
4:18 AM Changeset in webkit [207988] by ddkilzer@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebCore

Fix merge r207708. rdar://problem/28962914

4:01 AM Changeset in webkit [207987] by Carlos Garcia Campos
  • 5 edits
    7 adds in releases/WebKitGTK/webkit-2.14

Merge r207848 - REGRESSION (r178265): XSS Auditor fails to block document.write() of incomplete tag
https://bugs.webkit.org/show_bug.cgi?id=163978
<rdar://problem/25962131>

Reviewed by Darin Adler.

Source/WebCore:

During the tokenization process of an HTML tag the start and end positions of each of its
attributes is tracked so that the XSS Auditor can request a snippet around a suspected
injected attribute. We need to take care to consider document.write() boundaries when
tracking the start and end positions of each HTML tag and attribute so that the XSS Auditor
receives the correct snippet. Following r178265 we no longer consider document.write()
boundaries when tracking the start and end positions of attributes. So, the substring
represented by the start and end positions of an attribute may correspond to some other
attribute in the tag. Therefore the XSS Auditor may fail to block an injection because the
snippet it requested may not be the snippet that it intended to request.

Tests: http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html

http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html
http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html

  • html/parser/HTMLSourceTracker.cpp:

(WebCore::HTMLSourceTracker::startToken): Set the attribute base offset to be the token
start position.
(WebCore::HTMLSourceTracker::source): Use the specified attribute start position as-is. We no
longer adjust it here because it was adjusted with respect to the attribute base offset, which
takes into account document.write() boundaries.

  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::setAttributeBaseOffset): Added.
(WebCore::HTMLToken::beginAttribute): Subtract attribute base offset from the specified offset.
(WebCore::HTMLToken::endAttribute): Ditto.

  • html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::setTokenAttributeBaseOffset): Added.

LayoutTests:

Add tests to ensure that the XSS Auditor blocks a document.write() of an incomplete HTML image tag.

  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/resources/echo-nested-dom-write-location.html: Added.
3:59 AM Changeset in webkit [207986] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r207842 - jsc.cpp is leaking memory allocated by readline in runInteractive
https://bugs.webkit.org/show_bug.cgi?id=163958

According to http://web.mit.edu/gnu/doc/html/rlman_2.html,
"The line readline returns is allocated with malloc ();
you should free () the line when you are done with it."
The memory allocated by readline is not being freed when it should.

Patch by Christopher Reid <Christopher.Reid@am.sony.com> on 2016-10-25
Reviewed by Mark Lam.

  • jsc.cpp:
3:56 AM Changeset in webkit [207985] by Carlos Garcia Campos
  • 11 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207804 - Do not update selection rect on dirty lineboxes.
https://bugs.webkit.org/show_bug.cgi?id=163862
<rdar://problem/28813156>

Reviewed by Simon Fraser.

Source/WebCore:

In certain cases RenderBlock::updateFirstLetter() triggers
unwanted render tree mutation while the caller assumes intact renderers.
This patch ensures that no renderers gets destroyed while computing the preferred widths
when we are outside of layout context.

Test: fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):
(WebCore::RenderBlock::updateFirstLetter):

  • rendering/RenderBlock.h:
  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::updateFirstLetter):

  • rendering/RenderRubyRun.h:
  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateFirstLetter):

  • rendering/RenderTable.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::updateFirstLetter):

  • rendering/svg/RenderSVGText.h:

LayoutTests:

  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash-expected.txt: Added.
  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html: Added.
3:45 AM Changeset in webkit [207984] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207683 - Do not mutate the render tree while collecting selection repaint rects.
https://bugs.webkit.org/show_bug.cgi?id=163800
<rdar://problem/28806886>

Reviewed by David Hyatt.

Source/WebCore:

RenderListItem not only mutates the tree while in layout but it also uses
the old descendant context to find the insertion point.
This patch strictly ensures that we only do it while in layout and never
in other cases such as collecting repaint rects.
This gets redundant when webkit.org/b/163789 is fixed.

Test: fast/lists/crash-when-list-marker-is-moved-during-selection.html

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

LayoutTests:

  • fast/lists/crash-when-list-marker-is-moved-during-selection-expected.txt: Added.
  • fast/lists/crash-when-list-marker-is-moved-during-selection.html: Added.
3:43 AM Changeset in webkit [207983] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source/JavaScriptCore

Merge r207659 - Fix JSC cast-align compiler warnings on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=163744

Reviewed by Mark Lam.

Use the reinterpret_cast_ptr workaround in a few places where
the cast alignment warning is being thrown by the GCC compiler
when compiling for the ARMv7 architecture.

  • heap/Heap.cpp:

(JSC::Zombify::visit):

  • heap/HeapCell.h:

(JSC::HeapCell::zap):
(JSC::HeapCell::isZapped):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::specializedSweep):

3:24 AM Changeset in webkit [207982] by Carlos Garcia Campos
  • 21 edits in releases/WebKitGTK/webkit-2.14

Merge r207658 - [GTK] Configures but fails to link with ENABLE_OPENGL=OFF
https://bugs.webkit.org/show_bug.cgi?id=163449

Reviewed by Michael Catanzaro.

.:

Remove wrong dependency of Wayland on OpenGL introduced in r190615, it should be possible to build for Wayland
without GL.

  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Only define sharingGLContext in PlatformDisplay if EGL or GLX are enabled.

  • platform/graphics/PlatformDisplay.cpp:
  • platform/graphics/PlatformDisplay.h:
  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::initialize):

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Check TEXTURE_MAPPER_GL instead of TEXTURE_MAPPER and also ensure the current
display is X11.
(webkitWebViewBaseUnrealize): Ditto.
(webkitWebViewBaseDidRelaunchWebProcess): Check TEXTURE_MAPPER_GL instead of TEXTURE_MAPPER.
(webkitWebViewBasePageClosed): Ditto.

  • UIProcess/AcceleratedDrawingAreaProxy.cpp:

(WebKit::AcceleratedDrawingAreaProxy::didUpdateBackingStoreState): Ditto.
(WebKit::AcceleratedDrawingAreaProxy::waitForAndDispatchDidUpdateBackingStoreState): Check EGL is enabled before
trying to use the WaylandCompositor.

  • UIProcess/AcceleratedDrawingAreaProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess): Ditto.

  • UIProcess/gtk/AcceleratedBackingStore.cpp:

(WebKit::AcceleratedBackingStore::create): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
  • UIProcess/gtk/WaylandCompositor.cpp:
  • UIProcess/gtk/WaylandCompositor.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Check TEXTURE_MAPPER_GL instead of TEXTURE_MAPPER.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/LayerTreeHost.h:
3:22 AM Changeset in webkit [207981] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/bmalloc

Merge r207646 - bmalloc api should crash on failure to allocate when !isBmallocEnabled.
https://bugs.webkit.org/show_bug.cgi?id=163766

Reviewed by Keith Miller and Filip Pizlo.

We want to crash in bmalloc on failure to allocate even when !isBmallocEnabled.
This is so that failures to allocate memory will manifest as crashes with a
unique signature (i.e. as a SIGTRAP on release builds, or as a write to illegal
address 0xbbadbeef on debug builds) and the crash will manifest inside bmalloc.
This distinguishes allocation failures from other crashing bugs that manifest as
SIGSEGVs due to random pointer dereferences in the clients of bmalloc.

  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::allocateSlowCase):

3:19 AM Changeset in webkit [207980] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207631 - Stop searching for first-letter containers at multi-column boundary.
https://bugs.webkit.org/show_bug.cgi?id=163739
<rdar://problem/28810750>

Source/WebCore:

We should not cross the multi-column boundary while searching for the first-letter container.
While moving first-letter renderers to a multi-column parent, it could result in finding the wrong
container and end up adding a new wrapper under the original container (from where we are moving the renderers).

Reviewed by David Hyatt.

Test: fast/css-generated-content/first-letter-move-to-multicolumn-crash.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildrenTo):

  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::blockForAccompanyingFirstLetter):

LayoutTests:

Reviewed by David Hyatt.

  • fast/css-generated-content/first-letter-move-to-multicolumn-crash-expected.txt: Added.
  • fast/css-generated-content/first-letter-move-to-multicolumn-crash.html: Added.
3:17 AM Changeset in webkit [207979] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207619 - [GTK] Build fix after r207616
https://bugs.webkit.org/show_bug.cgi?id=163333

Reviewed by Carlos Garcia Campos.

EGL_PLATFORM_X11_KHR and EGL_PLATFORM_WAYLAND_KHR are not defined
on the EGL headers shipped by Mesa 10.3 (shipped by Debian 8)

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::initialize):

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::initializeEGLDisplay):

3:16 AM Changeset in webkit [207978] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207616 - Prefer eglGetPlatformDisplay to eglGetDisplay
https://bugs.webkit.org/show_bug.cgi?id=163333

Patch by Adam Jackson <ajax@redhat.com> on 2016-10-20
Reviewed by Carlos Garcia Campos.

eglGetDisplay forces the implementation to guess what kind of void* it's been handed. Different implementations
do different things, in particular glvnd and Mesa behave differently. Fortunately there exists API to tell EGL
what kind of display it is, so let's use it.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::initialize):

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::initializeEGLDisplay):

3:15 AM Changeset in webkit [207977] by Carlos Garcia Campos
  • 10 edits
    2 adds in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207615 - [GTK] Avoid including egl.h headers in internal headers
https://bugs.webkit.org/show_bug.cgi?id=163722

Reviewed by Žan Doberšek.

egl.h includes eglplatform.h that decides the native types for the platform at compile time. However, we support
to build with X11 and Wayland at the same time and decide what to use at runtime. Currently GLContext.h includes
eglplatform.h after wayland-egl.h if Wayland is enabled. That means that the wayland native types are used by
default from all cpp files including GLContext.h. It currently works in X11 because we cast the value anyway and
for example EGLNativeWindowType is a pointer in Wayland that can be casted to unsigned long in X11 to represent
the X Window. This is very fragile in any case, we should avoid adding egl headers in our headers and only
include it in cpp files. But we also need to ensure we don't use X11 and Wayland in the same cpp file.

  • PlatformGTK.cmake:
  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::createContextForWindow):

  • platform/graphics/GLContext.h:
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createWindowContext):
(WebCore::GLContextEGL::createContext):
(WebCore::GLContextEGL::~GLContextEGL):

  • platform/graphics/egl/GLContextEGL.h:
  • platform/graphics/egl/GLContextEGLWayland.cpp: Added.

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWindowSurfaceWayland):
(WebCore::GLContextEGL::createWaylandContext):
(WebCore::GLContextEGL::destroyWaylandWindow):

  • platform/graphics/egl/GLContextEGLX11.cpp: Added.

(WebCore::GLContextEGL::GLContextEGL):
(WebCore::GLContextEGL::createWindowSurfaceX11):
(WebCore::GLContextEGL::createPixmapContext):

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createWindowContext):
(WebCore::GLContextGLX::createContext):
(WebCore::GLContextGLX::GLContextGLX):

  • platform/graphics/glx/GLContextGLX.h:
  • platform/graphics/wayland/PlatformDisplayWayland.cpp:
  • platform/graphics/x11/PlatformDisplayX11.cpp:
3:13 AM Changeset in webkit [207976] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r207614 - [GTK] Avoid strstr() when checking (E)GL extensions
https://bugs.webkit.org/show_bug.cgi?id=161958

Reviewed by Žan Doberšek.

Source/WebCore:

Add static method GLContext::isExtensionSupported() to properly search extenstions in the given extension
list, and use it instead of strstr().

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::isExtensionSupported):

  • platform/graphics/GLContext.h:
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createSurfacelessContext):

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::hasSGISwapControlExtension):

Source/WebKit2:

Use GLContext::isExtensionSupported() instead of strstr().

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::initializeEGL):

3:12 AM Changeset in webkit [207975] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.14/Source

Merge r207590 - Wrong use of EGL_DEPTH_SIZE
https://bugs.webkit.org/show_bug.cgi?id=155536

Reviewed by Michael Catanzaro.

Source/WebCore:

What happens here is that the driver doesn't implement EGL_DEPTH_SIZE and the default value, which is 0, is
returned. Then XCreatePixmap fails because 0 is not a valid depth. The thing is that even if EGL_DEPTH_SIZE or
EGL_BUFFER_SIZE returned a valid depth, it still might not be supported by the default screen and XCreatePixmap
can fail. What we need to ensure is that the depth we pass is compatible with the X display, not only with the
EGL config, to avoid failures when creating the pixmap. So, we can use EGL_NATIVE_VISUAL_ID instead, and
then ask X for the visual info for that id. If it isn't found then we just return before creating the pixmap,
but if the visual is found then we can be sure that the depth of the visual will not make the pixmap creation
fail. However, with the driver I'm using it doesn't matter how we create the pixmap that eglCreatePixmapSurface
always fails, again with X errors that are fatal by default. Since the driver is not free, I assume it doesn't
support eglCreatePixmapSurface or it's just buggy, so the only option we have here is trap the x errors and
ignore them. It turns out that the X errors are not fatal in this case, because eglCreatePixmapSurface ends up
returning a surface, and since these are offscreen contexts, it doesn't really matter if they contain an
invalid pixmap, because we never do swap buffer on them, so just ignoring the X errors fixes the crashes and
makes everythig work. This patch adds a helper class XErrorTrapper that allows to trap XErrors and decide what
to do with them (ignore, warn or crash) or even not consider a particular set of errors as errors.

  • PlatformEfl.cmake: Add new file to compilation.
  • PlatformGTK.cmake: Ditto.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::createPixmapContext): Use EGL_NATIVE_VISUAL_ID instead of EGL_DEPTH_SIZE to figure out
the depth to be passed to XCreatePixmap. Also use the XErrorTrapper class to ignore all BadDrawable errors
produced by eglCreatePixmapSurface() and only show a warning about all other X errors.

  • platform/graphics/x11/XErrorTrapper.cpp: Added.

(WebCore::xErrorTrappersMap):
(WebCore::XErrorTrapper::XErrorTrapper):
(WebCore::XErrorTrapper::~XErrorTrapper):
(WebCore::XErrorTrapper::errorCode):
(WebCore::XErrorTrapper::errorEvent):

  • platform/graphics/x11/XErrorTrapper.h: Added.

(WebCore::XErrorTrapper::XErrorTrapper):

Source/WebKit2:

Use XErrorTrapper class instead of the custom XErrorHandler.

  • PluginProcess/unix/PluginProcessMainUnix.cpp:

(WebKit::PluginProcessMainUnix):

3:06 AM Changeset in webkit [207974] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207547 - Use anonymous table row for new child at RenderTableRow::addChild() if available.
https://bugs.webkit.org/show_bug.cgi?id=163651
<rdar://problem/28705022>

Reviewed by David Hyatt.

Source/WebCore:

We should try to prevent the continuation siblings from getting separated and inserted into
wrapper renderers. It makes finding these continuation siblings difficult.
This patch adds a checks for anonymous table rows so that we could find a closer common ancestor of
beforeChild/new child.

Test: fast/table/crash-when-table-has-continuation-and-content-inserted.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::showRenderObject): Add continuation information.

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::addChild):

LayoutTests:

  • fast/table/crash-when-table-has-continuation-and-content-inserted-expected.txt: Added.
  • fast/table/crash-when-table-has-continuation-and-content-inserted.html: Added.
3:01 AM Changeset in webkit [207973] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore/platform/gtk/po

Merge r207534 - [GTK] [L10n] Updated Hungarian translation
https://bugs.webkit.org/show_bug.cgi?id=163650

Patch by Gabor Kelemen <kelemeng@ubuntu.com> on 2016-10-19
Rubber-stamped by Michael Catanzaro.

  • hu.po:
2:56 AM Changeset in webkit [207972] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207477 - Correct Document::removeAllEventListeners
https://bugs.webkit.org/show_bug.cgi?id=163558
<rdar://problem/28716840>

Reviewed by Chris Dumez.

Tested by fast/dom/node-move-to-new-document-crash-main.html.

  • dom/Document.cpp:

(WebCore::Document::removeAllEventListeners): Clear out the wheel and
touch event targets when clearing all data.

2:54 AM Changeset in webkit [207971] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207471 - SVGCSSParser: m_implicitShorthand value is not reset after adding the shorthand property
https://bugs.webkit.org/show_bug.cgi?id=116470

Reviewed by Simon Fraser.

Source/WebCore:

When we encounter a shorthand css property, we set m_implicitShorthand
to true to tell addProperty() later that the individual properties are
all set through a short hand one. We need to make sure that setting
m_implicitShorthand to true will not be leaked after finishing parsing
the short hand property.

Test: fast/css/implicit-property-restore.html

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseFillShorthand):
(WebCore::CSSParser::parseShorthand):
(WebCore::CSSParser::parse4Values):
(WebCore::CSSParser::parseBorderRadius):
(WTF::ImplicitScope::ImplicitScope): Deleted.
(WTF::ImplicitScope::~ImplicitScope): Deleted.
Get rid of ImplicitScope and replace its calls by TemporaryChange<bool>.

  • css/parser/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):
Restore m_implicitShorthand value after setting it temporarily to true.

Source/WTF:

  • wtf/TemporaryChange.h:

(WTF::TemporaryChange::TemporaryChange):
Add a new constructor to make TemporaryChange work as a restorer. The
temporary change will happen after we construct the object.

LayoutTests:

  • fast/css/implicit-property-restore-expected.txt: Added.
  • fast/css/implicit-property-restore.html: Added.
  • fast/css/remove-shorthand-expected.txt:

Rebase-line the test expected results because of fixing the leak of
m_implicitShorthand. The bug was happening because "background: ..." property
comes immediately before the "list-style: ...." property.

2:45 AM Changeset in webkit [207970] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r207441 - [WK2][NetworkCache] PendingFrameLoad objects are sometimes leaked
https://bugs.webkit.org/show_bug.cgi?id=163569
<rdar://problem/28810836>

Reviewed by Antti Koivisto.

PendingFrameLoad objects are created to track frame loads and added to
the m_pendingFrameLoads hash map. These objects are supposed to remove
themselves from the hash map once they detect that the page load has
finished by calling PendingFrameLoad::m_loadCompletionHandler().

PendingFrameLoad::m_loadCompletionHandler() is called from
markLoadAsCompleted() when we detect that the page load has finished
via the m_loadHysteresisActivity HysteresisActivity. We call impulse()
on the HysteresisActivity every time a subresource is loaded in the
frame. The issue is that if no subresource is ever loaded, then we
never call impulse() on the HysteresisActivity, which is therefore
never started. If it nevers starts, then it nevers stops and never
calls markLoadAsCompleted(). To address the problem, we now call
impulse() on the HysteresisActivity as soon as we construct it.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
2:35 AM Changeset in webkit [207969] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207403 - [GTK] gobject-introspection on package build with webkit2gtk fails without active X session
https://bugs.webkit.org/show_bug.cgi?id=163105

Reviewed by Carlos Garcia Campos.

Don't call XCompositeQueryExtension() or XDamageQueryExtension()
if m_display is NULL.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsXComposite):
(WebCore::PlatformDisplayX11::supportsXDamage):

2:34 AM Changeset in webkit [207968] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r207402 - [css-grid] Disable CSS Grid Layout runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=163432

Reviewed by Darin Adler.

It was enabled in r201042, but now Safari Technology Preview
has a UI to switch runtime flags so it doesn't need to be enabled
by default anymore.

  • Shared/WebPreferencesDefinitions.h: Disable grid layout runtime flag

by default.

2:26 AM Changeset in webkit [207967] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

REGRESSION(r207753-207755): ASSERTION FAILED: m_parsedStyleSheetCache->isInMemoryCache()
https://bugs.webkit.org/show_bug.cgi?id=163905

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-27
Reviewed by Antti Koivisto.

Source/WebCore:

Covered by existing tests and http/tests/security/cached-cross-origin-shared-css-stylesheet.html

Small refactoring to do more member fields initialization in StyleSheetContents header.
Refactored StyleSheetContents::m_isInMemoryCache to be a counter instead of a boolean.
This allows StyleSheetContents to be linked to several CachedCSSStyleSheets.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::addedToMemoryCache):
(WebCore::StyleSheetContents::removedFromMemoryCache):

  • css/StyleSheetContents.h:
  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::setBodyDataFrom): Making reuse of saveParsedStyleSheet to handle update of StyleSheetContents cache count.

LayoutTests:

  • http/tests/security/cached-cross-origin-shared-css-stylesheet-expected.txt: Added.
  • http/tests/security/cached-cross-origin-shared-css-stylesheet.html: Added.
2:26 AM Changeset in webkit [207966] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r207391 - [GTK] Default WebKitWebsiteDataManager is always leaked in WebKitWebContext
https://bugs.webkit.org/show_bug.cgi?id=163443

Reviewed by Michael Catanzaro.

Adopt the reference returned by webkitWebsiteDataManagerCreate().

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):

2:25 AM Changeset in webkit [207965] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14

Merge r207389 - [GTK] WebKitWebPage URI not updated after URI is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
https://bugs.webkit.org/show_bug.cgi?id=163389

Reviewed by Michael Catanzaro.

Source/WebKit2:

Update the page URI also when the load is committed.

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

(getDocumentLoaderURL):
(didStartProvisionalLoadForFrame):
(didReceiveServerRedirectForProvisionalLoadForFrame):
(didCommitLoadForFrame):
(webkitWebPageCreate):
(getProvisionalURLForFrame): Deleted.

Tools:

Update /webkit2/WebKitWebPage/get-uri test to check that web view and page uri always match even when request is
modified by WebKitWebPage::send-request signal.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:

(testWebPageURI):

2:24 AM Changeset in webkit [207964] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.14

Merge r207388 - Document request not updated after willSendRequest is called for a redirect
https://bugs.webkit.org/show_bug.cgi?id=163436

Reviewed by Michael Catanzaro.

Source/WebCore:

The first willSendRequest happens before DocumentLoader::startLoadingMainResource(), that calls setRequest, but
the second one happens after DocumentLoader::redirectReceived() and then the request is never updated again.

Covered by GTK+ unit tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willContinueMainResourceLoadAfterRedirect): Set the new request.

  • loader/DocumentLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Notify the document loader when loading the main resource
and called for a redirection.

Tools:

Update /webkit2/WebKitWebView/active-uri test to check the active URI also when modified by
WebKitPage::send-request signal in a web extension.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:

(testWebViewActiveURI):
(serverCallback):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(sendRequestCallback):

  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp:

(loadChangedCallback):

1:56 AM Changeset in webkit [207963] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207376 - [GTK] Restore user agent quirk for Yahoo
https://bugs.webkit.org/show_bug.cgi?id=163481

Reviewed by Carlos Garcia Campos.

finance.yahoo.com is sending a mobile version in response to our standard user agent.

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::urlRequiresMacintoshPlatform):

1:55 AM Changeset in webkit [207962] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207374 - CounterNode::resetRenderers is so inefficient.
https://bugs.webkit.org/show_bug.cgi?id=163480

Reviewed by Simon Fraser.

CounterNode::resetRenderers() removes all the associated renderers from this CounterNode
and sets the dirty bit on them.
This patch does all that in a loop, instead of traversing the linked tree on each removal.

No change in functionality.

  • rendering/CounterNode.cpp:

(WebCore::CounterNode::CounterNode):
(WebCore::CounterNode::~CounterNode):
(WebCore::CounterNode::nextInPreOrderAfterChildren):
(WebCore::CounterNode::lastDescendant):
(WebCore::CounterNode::addRenderer): These assertions do not seem super useful.
(WebCore::CounterNode::removeRenderer):
(WebCore::CounterNode::resetRenderers):
(WebCore::CounterNode::insertAfter):
(WebCore::CounterNode::removeChild):

  • rendering/CounterNode.h:
  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):
(WebCore::RenderCounter::RenderCounter):
(WebCore::RenderCounter::~RenderCounter):
(WebCore::RenderCounter::originalText):
(WebCore::updateCounters):
(WebCore::RenderCounter::invalidate): Deleted.

  • rendering/RenderCounter.h:
1:54 AM Changeset in webkit [207961] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207372 - 100% CPU on homedepot.com page
https://bugs.webkit.org/show_bug.cgi?id=163452
<rdar://problem/28730708>

Reviewed by Simon Fraser.

Source/WebCore:

The site has a keyframe animation on body. Currently this causes the animation to invalidate the
style of the entire document.

Animations use SyntheticStyleChange to invalidate elements when animation progresses and currently
that causes full subtree invalidation. However animation only ever affect individual elements and
the normal style resolution mechanism should be able to deal with things like inheritance as needed.

Test: fast/animation/animation-style-update-size.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • dom/Document.h:

(WebCore::Document::lastStyleUpdateSizeForTesting):

Testing support.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Don't force subtree style resolution for SyntheticStyleChange.

  • style/StyleUpdate.h:

(WebCore::Style::Update::size):

  • testing/Internals.cpp:

(WebCore::Internals::lastStyleUpdateSize):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/animation/animation-style-update-size-expected.txt: Added.
  • fast/animation/animation-style-update-size.html: Added.
1:49 AM Changeset in webkit [207960] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.3.5

New tag.

1:30 AM Changeset in webkit [207959] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14

Merge r207351 - [CMake] Private/unsupported build options should be marked as advanced
https://bugs.webkit.org/show_bug.cgi?id=163451

Reviewed by Carlos Garcia Campos.

When checking to decide whether to mark an option as advanced, the conditional checks
whether _WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_${_name} is defined. It is always defined. We
need to check its value instead.

  • Source/cmake/WebKitFeatures.cmake:
1:27 AM Changeset in webkit [207958] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r207325 - WebView and WebPage URLs not updated after URL is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
https://bugs.webkit.org/show_bug.cgi?id=146306

Reviewed by Darin Adler.

Source/WebCore:

Notify about the provisional URL change when new request set for main resource load in DocumentLoader has a
different URL than the previous one.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setRequest):

Tools:

Add unit test to check that the committed URL is updated when changed in willSendRequest callback.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback.cpp: Added.

(TestWebKitAPI::didCommitLoadForFrame):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp: Added.

(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::ProvisionalURLAfterWillSendRequestCallbackTest):
(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::willSendRequestForFrame):
(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::didCommitLoadForFrame):

1:25 AM Changeset in webkit [207957] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r207310 - [Clean RenderTree] LayoutTests/imported/blink/fast/table/crash-bad-child-table-continuation.html fails.
https://bugs.webkit.org/show_bug.cgi?id=163399

Reviewed by David Hyatt.

When we try to insert a renderer before a child whose direct parent is a (anonymus) RenderTable, continuation logic
should dismiss the RenderTable as the parent and find a more appropriate ancestor.
RenderTables assumes a certain descendant tree structure which might not be available in the continuation.

Will be testable with webkit.org/b/162834

  • rendering/RenderInline.cpp:

(WebCore::canUseAsParentForContinuation):
(WebCore::RenderInline::addChildToContinuation):

1:22 AM Changeset in webkit [207956] by svillar@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Build fix for gcc.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::maxTimeSeekable):

1:00 AM WebGL OES_EGL_image_external Extension Specification.pdf attached to October 2016 Meeting by sun.shin@webkit.org
12:57 AM Changeset in webkit [207955] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207930. rdar://problem/28811881

12:56 AM OES_EGL_image_external_r3.html attached to October 2016 Meeting by sun.shin@webkit.org
12:45 AM Changeset in webkit [207954] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r206975 - REGRESSION(r165103): labels list doesn't get invalidated when other lists are invalidated at document level
https://bugs.webkit.org/show_bug.cgi?id=163145

Reviewed by Darin Adler.

Source/WebCore:

The bug was caused by Document::invalidateNodeListAndCollectionCaches removing all node lists regardless
of whether they have been invalidated or not.

Fixed the bug by removing only those node lists that got invalidated via LiveNodeList::invalidateCache.

Test: fast/dom/NodeList/form-labels-length.html

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::unregisterNodeListForInvalidation): Removed the conditional which allowed removal to
happen while m_listsInvalidatedAtDocument is empty inside invalidateNodeListAndCollectionCaches.

  • dom/Document.h:
  • dom/Node.cpp:

(WebCore::Document::invalidateNodeListAndCollectionCaches): Just remove the node lists being invalidated via
LiveNodeList's invalidateCache, which calls unregisterNodeListForInvalidation, instead of removing them all.
We make a copy of the list of node lists into a local vector because mutating HashMap while iterating over it
is not a safe operation.

LayoutTests:

Added a regression test.

  • fast/dom/NodeList/form-labels-length-expected.txt: Added.
  • fast/dom/NodeList/form-labels-length.html: Added.
12:34 AM Changeset in webkit [207953] by matthew_hanson@apple.com
  • 21 edits in branches/safari-602-branch/Source

Merge r207708. rdar://problem/28962914

12:31 AM Changeset in webkit [207952] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

MediaPayload does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=164015

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-27
Reviewed by Eric Carlson.

No change of behavior.
Making MediaPayload a struct and no-longer ref-counted.
Small performance improvements in MediaEndpointOwr.

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/SDPProcessor.cpp:

(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):

  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/MediaPayload.h:

(WebCore::MediaPayload::addParameter):
(WebCore::MediaPayload::create): Deleted.
(WebCore::MediaPayload::~MediaPayload): Deleted.
(WebCore::MediaPayload::type): Deleted.
(WebCore::MediaPayload::setType): Deleted.
(WebCore::MediaPayload::encodingName): Deleted.
(WebCore::MediaPayload::setEncodingName): Deleted.
(WebCore::MediaPayload::clockRate): Deleted.
(WebCore::MediaPayload::setClockRate): Deleted.
(WebCore::MediaPayload::channels): Deleted.
(WebCore::MediaPayload::setChannels): Deleted.
(WebCore::MediaPayload::ccmfir): Deleted.
(WebCore::MediaPayload::setCcmfir): Deleted.
(WebCore::MediaPayload::nackpli): Deleted.
(WebCore::MediaPayload::setNackpli): Deleted.
(WebCore::MediaPayload::nack): Deleted.
(WebCore::MediaPayload::setNack): Deleted.
(WebCore::MediaPayload::parameters): Deleted.
(WebCore::MediaPayload::clone): Deleted.
(WebCore::MediaPayload::MediaPayload): Deleted.

  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::payloads):
(WebCore::PeerMediaDescription::addPayload):
(WebCore::PeerMediaDescription::setPayloads):
(WebCore::PeerMediaDescription::clone):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::getDefaultAudioPayloads):
(WebCore::MediaEndpointOwr::getDefaultVideoPayloads):
(WebCore::MediaEndpointOwr::filterPayloads):

  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::getDefaultAudioPayloads):
(WebCore::MockMediaEndpoint::getDefaultVideoPayloads):
(WebCore::MockMediaEndpoint::filterPayloads):

12:28 AM Changeset in webkit [207951] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Reverted the configuration changes from r207934 because they broke iOS builds not using the Apple-internal SDK.

  • Configurations/Base.xcconfig:
  • Configurations/WebKitLegacy.xcconfig:
12:22 AM Changeset in webkit [207950] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source/WebKit2

Merge r206961 - [GTK] Drop redundant wl_display_flush_clients() call
https://bugs.webkit.org/show_bug.cgi?id=161904

Patch by Emanuele Aina <Emanuele Aina> on 2016-10-08
Reviewed by Michael Catanzaro.

The Wayland GSource::prepare() function already calls
wl_display_flush_clients() at every mainloop iteration, so there's no
need to further call it on Surface::commit().

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::Surface::commit):

  • UIProcess/gtk/WaylandCompositor.h:
12:20 AM Changeset in webkit [207949] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r206941 - EventHandler functions that need to guarantee event handler lifetime need to use Ref<Frame>
https://bugs.webkit.org/show_bug.cgi?id=98617
<rdar://problem/12778649>

Reviewed by Daniel Bates.

Improve stability by ensuring that the Frame holding an active EventHandler is kept
alive while in the process of handling events and executing JavaScript.

No new tests since there is no change in behavior.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEventSingleClick): Protect the Frame with a Ref<>.
(WebCore::EventHandler::handleMousePressEvent): Ditto.
(WebCore::EventHandler::handleMouseDraggedEvent): Ditto.
(WebCore::EventHandler::eventMayStartDrag): Ditto.
(WebCore::EventHandler::handleMouseReleaseEvent): Ditto.
(WebCore::EventHandler::hitTestResultAtPoint): Ditto.
(WebCore::EventHandler::scrollRecursively): Ditto.
(WebCore::EventHandler::logicalScrollRecursively): Ditto.
(WebCore::EventHandler::selectCursor): Ditto.
(WebCore::EventHandler::handleMouseDoubleClickEvent): Ditto.
(WebCore::EventHandler::mouseMoved): Ditto.
(WebCore::EventHandler::handleMouseMoveEvent): Ditto.
(WebCore::EventHandler::handleMouseForceEvent): Ditto.
(WebCore::EventHandler::dispatchDragEvent): Ditto.
(WebCore::EventHandler::updateDragAndDrop): Ditto.
(WebCore::EventHandler::cancelDragAndDrop): Ditto.
(WebCore::EventHandler::performDragAndDrop): Ditto.
(WebCore::EventHandler::prepareMouseEvent): Ditto.
(WebCore::EventHandler::updateMouseEventTargetNode): Ditto.
(WebCore::EventHandler::dispatchMouseEvent): Ditto.
(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.
(WebCore::EventHandler::handleWheelEvent): Ditto.
(WebCore::EventHandler::defaultWheelEventHandler): Ditto.
(WebCore::EventHandler::sendContextMenuEvent): Ditto.
(WebCore::EventHandler::sendContextMenuEventForKey): Ditto.
(WebCore::EventHandler::hoverTimerFired): Ditto.
(WebCore::EventHandler::keyEvent): Ditto.
(WebCore::EventHandler::defaultKeyboardEventHandler): Ditto.
(WebCore::EventHandler::handleDrag): Ditto.
(WebCore::EventHandler::handleTextInputEvent): Ditto.
(WebCore::EventHandler::defaultSpaceEventHandler): Ditto.
(WebCore::EventHandler::defaultTabEventHandler): Ditto.
(WebCore::EventHandler::sendScrollEvent): Ditto.
(WebCore::EventHandler::handleTouchEvent): Ditto.

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::focusDocumentView): Ditto.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::platformCompleteWheelEvent): Ditto.

12:18 AM Changeset in webkit [207948] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.14

Merge r206922 - [WK2] didRemoveFrameFromHierarchy callback doesn't fire for subframes when evicting from PageCache.
<https://webkit.org/b/163098>
<rdar://problem/28663488>

Reviewed by Antti Koivisto.

Source/WebCore:

Fix a bug where WK2 didRemoveFrameFromHierarchy callbacks wouldn't fire for subframes that were getting
kicked out of PageCache. The problem was happening because CachedFrame would disconnect the Frame from
its Page just before calling FrameLoader::detachViewsAndDocumentLoader() where the callbacks are fired.
Without a Page, the WebFrame on WK2 side can't find its WebPage, and so it can't fire its callbacks.

The fix is just to switch the order of those two lines.

This bug was causing frequent DOM and window object leaks in some clients *cough* Safari *cough* that
were relying on didRemoveFrameFromHierarchy to release their isolated worlds.

Test: WebKit2.DidRemoveFrameFromHiearchyInPageCache

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::destroy):

Tools:

Add an API test that puts a 10-subframe page into the page cache, then loads other pages
until the first page gets kicked out. The test succeeds if we receive didRemoveFrameFromHierarchy
callbacks for all the subframes.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::didReceivePageMessageFromInjectedBundle):
(TestWebKitAPI::setInjectedBundleClient):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/DidRemoveFrameFromHiearchyInPageCache_Bundle.cpp: Added.

(TestWebKitAPI::didRemoveFrameFromHierarchyCallback):
(TestWebKitAPI::DidRemoveFrameFromHiearchyInPageCacheTest::DidRemoveFrameFromHiearchyInPageCacheTest):
(TestWebKitAPI::DidRemoveFrameFromHiearchyInPageCacheTest::didCreatePage):

  • TestWebKitAPI/Tests/WebKit2/many-iframes.html: Added.
12:16 AM Changeset in webkit [207947] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r206916 - https://vuldb.com/?cvssv3.2012 takes long time to load.
https://bugs.webkit.org/show_bug.cgi?id=162994
<rdar://problem/28593746>

Reviewed by Darin Adler.

Source/WebCore:

Stop visiting cousins when we hit the style sharing search threshold.

In addition to mistakenly ignoring the threshold at SharingResolver::findSibling(), we
continued on searching for cousin elements.

Test: fast/selectors/slow-style-sharing-with-long-cousin-list.html

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::resolve):
(WebCore::Style::SharingResolver::findSibling):
(WebCore::Style::SharingResolver::locateCousinList):

LayoutTests:

It takes ~100 seconds to run this test case without the fix (300ms with the fix).
Surely it will timeout if it gets regressed.

  • fast/selectors/slow-style-sharing-with-long-cousin-list-expected.txt: Added.
  • fast/selectors/slow-style-sharing-with-long-cousin-list.html: Added.
  • platform/mac/TestExpectations: Skip perf test in debug.
12:15 AM Changeset in webkit [207946] by matthew_hanson@apple.com
  • 7 edits
    2 adds in branches/safari-602-branch

Merge r207523. rdar://problem/28718748

12:15 AM Changeset in webkit [207945] by matthew_hanson@apple.com
  • 14 edits
    2 adds in branches/safari-602-branch

Merge r207229. rdar://problem/28718809

12:12 AM Changeset in webkit [207944] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r206907 - [GTK] Remove unneeded creation of TextureMapperPlatformLayerProxy
https://bugs.webkit.org/show_bug.cgi?id=163101

Reviewed by Žan Doberšek.

Covered by existing tests.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::ImageBufferData): Modified not to create
TextureMapperPlatformLayerProxy if it is not created for the
accelerated 2d canvas.

Oct 26, 2016:

11:49 PM Changeset in webkit [207943] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.14

Merge r206855 - [WK2] 304 revalidation on the network process does not update the validated response
https://bugs.webkit.org/show_bug.cgi?id=162973

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-06
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/conditional-get-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/conditional-get.html: Added.
  • web-platform-tests/fetch/api/resources/cache.py: Added.

Source/WebKit2:

  • NetworkProcess/NetworkResourceLoader.cpp: Updating cache entry with the revalidated one.

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-revalidation-new-expire-header-expected.txt:

Rebasing expectation as memory cache revalidation is no longer needed now that the disk cache is updating the response passed to the memory cache.
The disk cache is doing revalidation on the second load. It receives the updated response with longer validity.
As the extended validity response is now passed to the memory cache, the memory cache revalidation no longer happens.

11:46 PM Changeset in webkit [207942] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.14

Merge r206821 - Missing quotation mark when <q> gets reparented.
https://bugs.webkit.org/show_bug.cgi?id=162940

Reviewed by Darin Adler.

Source/WebCore:

When an opening RenderQuote gets removed due to some change in the render tree,
we notify the closing RenderQuote so that it can update its content (") accordingly (and vice versa).
However when the same RenderQuote is added back to the render tree (aka reparenting), we fail to
let the other RenderQuote know about it and its content becomes stale.
This patch ensures that when either the opening or closing part of the quotation mark gets reparented,
we inform the other, corresponding opening/closing renderer about it.

Test: fast/css-generated-content/missing-quotes-with-dynamic-content.html

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::didAttachRenderers):

  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::insertedIntoTree):

  • rendering/RenderQuote.h:

LayoutTests:

The position of the closing quotation mark is driven by the multicolumn code hence the cover div.

  • fast/css-generated-content/missing-quotes-with-dynamic-content-expected.html: Added.
  • fast/css-generated-content/missing-quotes-with-dynamic-content.html: Added.
11:40 PM Changeset in webkit [207941] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.14/Source/WebCore

Merge r206765 - [ListItems] Render tree should be all clean by the end of FrameView::layout().
https://bugs.webkit.org/show_bug.cgi?id=162832

Reviewed by Simon Fraser.

List item markers are inserted into the tree during layout, right before laying out
the list item (that's a big FIXME). At this point we already know what part of the tree
needs to be laid out. Inserting a list item marker does not expand this dirty area.
However whenever we insert a new renderer into the tree, we call setNeedsLayout on the contining block chain.
In certain cases (floating renderers), it could potentially trigger some unintentional markings
and we return from FrameView::layout() with a dirty subtree.

This patch preemptively marks the list item and its marker dirty so that
when the marker is getting inserted into the tree, we stop the marking at the parent.

Not testable.

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

11:37 PM Changeset in webkit [207940] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.14/Source

Merge r206906 - [GTK] Expose WebKitDOMHTMLInputElement APIs for form autofill
https://bugs.webkit.org/show_bug.cgi?id=163082

Reviewed by Darin Adler.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:

(webkit_dom_html_input_element_get_auto_filled): Added.
(webkit_dom_html_input_element_set_auto_filled): Added.
(webkit_dom_html_input_element_set_editing_value): Added.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
11:33 PM Changeset in webkit [207939] by commit-queue@webkit.org
  • 102 edits
    9 copies
    127 adds in trunk/LayoutTests

Refresh WPT tests up to 0acd8f6
https://bugs.webkit.org/show_bug.cgi?id=164009

Patch by Youenn Fablet <youennf@gmail.com> on 2016-10-26
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/resource-files.json:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/WebIDL/current-realm-expected.txt: Added.
  • web-platform-tests/WebIDL/current-realm.html: Added.
  • web-platform-tests/WebIDL/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-during-open.js:

(test.async_test.test.step):

  • web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-event-abort.htm:
  • web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm: Added.
  • web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-during-abort.htm:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html:
  • web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring.htm:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.htm: Added.
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/check_stability.py: Added.
  • web-platform-tests/ci_lint.sh: Added.
  • web-platform-tests/ci_stability.sh: Added.
  • web-platform-tests/config.json: Added.
  • web-platform-tests/dom/events/Event-dispatch-click-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-click.html: Added.
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/nodes/Node-contains-expected.txt:
  • web-platform-tests/dom/nodes/Node-contains.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-appendData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-dataChange-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-dataChange.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-deleteData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-deleteData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-insertData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-removeChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-removeChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceData-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-replaceData.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations-splitText-expected.txt: Added.
  • web-platform-tests/dom/ranges/Range-mutations-splitText.html: Added.
  • web-platform-tests/dom/ranges/Range-mutations.js: Added.
  • web-platform-tests/dom/ranges/w3c-import.log:
  • web-platform-tests/encrypted-media/content/video_512x288_h264-360k_multikey_key1_dashinit.mp4: Added.
  • web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.html:
  • web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.html:
  • web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html:
  • web-platform-tests/encrypted-media/scripts/clearkey-update-non-ascii-input.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/generate-request-disallowed-input.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/invalid-license.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/onencrypted.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-destroy-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-license-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-persistent-usage-record.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-license.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-retrieve-persistent-usage-record.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-encrypted-clear-sources.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-events.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-expired.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-multikey-sequential.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-multisession.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-setMediaKeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-two-videos.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary-waitingforkey.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/playback-temporary.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/requestmediakeysystemaccess.js:

(expect_error):

  • web-platform-tests/encrypted-media/scripts/setmediakeys-multiple-times-with-different-mediakeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/setmediakeys.js:

(runTest):

  • web-platform-tests/encrypted-media/scripts/syntax-mediakeysession.js:

(runTest.test_generateRequest):
(runTest.create_remove_exception_test):

  • web-platform-tests/encrypted-media/scripts/syntax-mediakeysystemaccess.js:

(runTest.func):

  • web-platform-tests/encrypted-media/scripts/update-disallowed-input.js:

(runTest.):
(runTest):

  • web-platform-tests/encrypted-media/scripts/w3c-import.log:
  • web-platform-tests/encrypted-media/util/drm-messagehandler.js:
  • web-platform-tests/encrypted-media/util/testmediasource.js:

(testmediasource.):
(testmediasource):

  • web-platform-tests/encrypted-media/util/utils.js:
  • web-platform-tests/fetch/api/basic/error-after-response.html:
  • web-platform-tests/fetch/api/basic/scheme-data-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/scheme-data.js:

(checkFetchResponse):

  • web-platform-tests/fetch/api/basic/text-utf8.html:
  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/cors-redirect.js:

(corsRedirect):

  • web-platform-tests/fetch/api/headers/headers-basic.html:
  • web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count.js:

(redirectCount):

  • web-platform-tests/fetch/api/request/multi-globals/current/current.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/multi-globals/incumbent/incumbent.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/multi-globals/url-parsing-expected.txt: Added.
  • web-platform-tests/fetch/api/request/multi-globals/url-parsing.html: Added.
  • web-platform-tests/fetch/api/request/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/request/request-consume-empty.html:
  • web-platform-tests/fetch/api/request/w3c-import.log:
  • web-platform-tests/fetch/api/resources/bad-chunk-encoding.py:

(main):

  • web-platform-tests/fetch/api/resources/utils.js:

(encode_utf8):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/multi-globals/current/current.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/current/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/incumbent/incumbent.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/incumbent/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/relevant/relevant.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/relevant/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/multi-globals/url-parsing-expected.txt: Added.
  • web-platform-tests/fetch/api/response/multi-globals/url-parsing.html: Added.
  • web-platform-tests/fetch/api/response/multi-globals/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log.
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-stream.html:
  • web-platform-tests/fetch/api/response/response-consume.html:
  • web-platform-tests/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
  • web-platform-tests/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/fraction-rulethickness10000.woff: Added.
  • web-platform-tests/fonts/math/largeop-displayoperatorminheight5000.woff: Added.
  • web-platform-tests/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
  • web-platform-tests/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
  • web-platform-tests/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
  • web-platform-tests/fonts/math/limits-upperlimitgapmin7000.woff: Added.
  • web-platform-tests/fonts/math/lineheight5000-typolineheight2300.woff: Added.
  • web-platform-tests/fonts/math/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-extraascender3000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/radical-rulethickness8000.woff: Added.
  • web-platform-tests/fonts/math/radical-verticalgap6000-rulethickness1000.woff: Added.
  • web-platform-tests/fonts/math/scripts-spaceafterscript3000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscriptbaselinedropmin9000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscriptshiftdown6000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subscripttopmax4000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000-superscriptbottommaxwithsubscript3000.woff: Added.
  • web-platform-tests/fonts/math/scripts-subsuperscriptgapmin11000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptbaselinedropmax10000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptbottommin8000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptshiftup7000.woff: Added.
  • web-platform-tests/fonts/math/scripts-superscriptshiftupcramped5000.woff: Added.
  • web-platform-tests/fonts/math/stack-axisheight7000.woff: Added.
  • web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
  • web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff: Added.
  • web-platform-tests/fonts/math/stack-displaystylegapmin4000.woff: Added.
  • web-platform-tests/fonts/math/stack-gapmin8000.woff: Added.
  • web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
  • web-platform-tests/fonts/math/stack-topshiftup9000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-gapabovemin7000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
  • web-platform-tests/fonts/math/stretchstack-topshiftup5000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
  • web-platform-tests/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
  • web-platform-tests/fonts/math/w3c-import.log: Added.
  • web-platform-tests/fonts/math/xheight500.woff: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/security_location_0-expected.txt: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/security_location_0.htm: Added.
  • web-platform-tests/html/browsers/history/the-location-interface/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/security-window/w3c-import.log:
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security-expected.txt: Added.
  • web-platform-tests/html/browsers/the-window-object/security-window/window-security.html: Added.
  • web-platform-tests/html/browsers/windows/nested-browsing-contexts/w3c-import.log:
  • web-platform-tests/html/browsers/windows/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript.html: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_specified.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/data-url-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/data-url.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/usemap-casing.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/usemap-casing.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-object-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/radio-groupname-case.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/grouping-ol.html:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2-expected.txt:
  • web-platform-tests/html/semantics/grouping-content/the-ol-element/ol.start-reflection-2.html:
  • web-platform-tests/html/semantics/interactive-elements/the-details-element/w3c-import.log:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/data-url-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/data-url.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor-expected.txt: Added.
  • web-platform-tests/html/webappapis/scripting/events/messageevent-constructor.html: Added.
  • web-platform-tests/html/webappapis/scripting/events/w3c-import.log:
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID-expected.txt:
  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/NavigatorID.js:

(run_test):

  • web-platform-tests/lint.whitelist:
  • web-platform-tests/url/setters_tests.json:
  • web-platform-tests/url/url-setters-expected.txt:
  • web-platform-tests/url/url-setters.html:
  • web-platform-tests/w3c-import.log:
  • web-platform-tests/webrtc/OWNERS: Added.
  • web-platform-tests/webrtc/datachannel-emptystring.html: Added.
  • web-platform-tests/webrtc/no-media-call.html: Added.
  • web-platform-tests/webrtc/promises-call.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl.html: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.
  • web-platform-tests/webrtc/simplecall.html: Added.
  • web-platform-tests/webrtc/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/WebIDL/w3c-import.log.

LayoutTests:

11:01 PM Changeset in webkit [207938] by mitz@apple.com
  • 3 edits in trunk/Source/WebCore

Improved the last build fix.

Darin pointed out I could have kept the function inline and just removed the WEBCORE_EXPORT.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::document): Deleted.

  • Modules/mediastream/UserMediaRequest.h:

(WebCore::UserMediaRequest::document):

11:00 PM Changeset in webkit [207937] by Chris Dumez
  • 35 edits
    2 copies
    3 adds in trunk

[Web IDL] Add support for having string enumerations in their own IDL file
https://bugs.webkit.org/show_bug.cgi?id=164025

Reviewed by Darin Adler.

Source/WebCore:

Add support for having string enumerations in their own IDL file to facilitate
sharing them. Use this new support to implement IDBTransactionMode enumeration
for IndexedDB:

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::startVersionChangeTransaction):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::onUpgradeNeeded):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::IDBTransaction):

  • Modules/indexeddb/IDBTransaction.h:

(WebCore::IDBTransaction::mode):
(WebCore::IDBTransaction::isVersionChange):
(WebCore::IDBTransaction::isReadOnly):

  • Modules/indexeddb/IDBTransaction.idl:
  • Modules/indexeddb/IDBTransactionMode.h: Added.
  • Modules/indexeddb/IDBTransactionMode.idl: Copied from Source/WebCore/Modules/indexeddb/IDBTransaction.idl.
  • Modules/indexeddb/IndexedDB.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::MemoryBackingStoreTransaction):
(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreRenamed):
(WebCore::IDBServer::MemoryBackingStoreTransaction::indexRenamed):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:

(WebCore::IDBServer::MemoryBackingStoreTransaction::isVersionChange):
(WebCore::IDBServer::MemoryBackingStoreTransaction::isWriting):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::beginTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::abortTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::commitTransaction):
(WebCore::IDBServer::SQLiteIDBBackingStore::createObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::clearObjectStore):
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::deleteRange):
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::generateKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::revertGeneratedKeyNumber):
(WebCore::IDBServer::SQLiteIDBBackingStore::maybeUpdateKeyGeneratorNumber):

  • Modules/indexeddb/server/SQLiteIDBTransaction.cpp:

(WebCore::IDBServer::SQLiteIDBTransaction::begin):

  • Modules/indexeddb/server/SQLiteIDBTransaction.h:

(WebCore::IDBServer::SQLiteIDBTransaction::mode):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::enqueueTransaction):
(WebCore::IDBServer::UniqueIDBDatabase::takeNextRunnableTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::originalDatabaseInfo):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::isVersionChange):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::isReadOnly):

  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:

(WebCore::IDBTransactionInfo::clientTransaction):
(WebCore::IDBTransactionInfo::versionChange):
(WebCore::IDBTransactionInfo::loggingString):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::mode):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):
(IsEnumType):
(GetEnumByName):
(IsExternalEnumType):
(ValidEnumValues):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEnumeration):
(AddToImplIncludesForIDLType):
(GetEnumerationClassName):
(GenerateEnumerationHeader):
(GenerateEnumerationImplementation):
(GenerateEnumerationImplementationContent):
(GenerateEnumerationsImplementationContent):
(GenerateEnumerationHeaderContent):
(GenerateEnumerationsHeaderContent):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithEnumArgCaller):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithStandaloneEnumArgCaller):

  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.cpp: Added.

(WebCore::convertEnumerationToJS):
(WebCore::parseEnumeration<TestStandaloneEnumeration>):
(WebCore::convertEnumeration<TestStandaloneEnumeration>):
(WebCore::expectedEnumerationValues<TestStandaloneEnumeration>):

  • bindings/scripts/test/JS/JSTestStandaloneEnumeration.h: Added.
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestStandaloneEnumeration.idl: Copied from Source/WebCore/Modules/indexeddb/IDBTransaction.idl.
  • inspector/InspectorIndexedDBAgent.cpp:

LayoutTests:

Rebaseline existign tests as the exception messages differ slightly.

  • storage/indexeddb/exceptions-expected.txt:
  • storage/indexeddb/exceptions-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
  • storage/indexeddb/transaction-basics-expected.txt:
  • storage/indexeddb/transaction-basics-private-expected.txt:
10:51 PM Changeset in webkit [207936] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source

Merge r207171. rdar://problem/28857503

10:46 PM Changeset in webkit [207935] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit/ios

Tried to fix the iOS build after r207934.

  • WebCoreSupport/WebFrameIOS.mm:

(-[WebFrame closestCaretRectInMarkedTextRangeForPoint:]): Removed commented-out code and

a comment that had a typo in it and looked like a bad Doxygen trailing comment.

10:17 PM Changeset in webkit [207934] by mitz@apple.com
  • 16 edits in trunk/Source/WebKit/mac

[Xcode] WebKit fails to build when CLANG_WARN_DOCUMENTATION_COMMENTS is enabled
https://bugs.webkit.org/show_bug.cgi?id=164048

Reviewed by Tim Horton.

  • Configurations/Base.xcconfig: Enabled CLANG_WARN_DOCUMENTATION_COMMENTS.
  • Configurations/WebKitLegacy.xcconfig: Made the compiler treat the icu headers as system headers.
  • History/WebBackForwardList.h: Fixed parameter name in @param entry.
  • Misc/WebDownload.h: Removed empty entries.
  • Misc/WebIconDatabase.h: Remove incorrect @param entries.
  • Misc/WebQuotaManager.h: Added missing parameter names in @param entries.
  • WebView/WebFrameLoadDelegate.h: Corrected parameter names in @param entries.
  • WebView/WebFrameViewPrivate.h: Changed incorrect @result to @abstract.
  • WebView/WebPolicyDelegate.h: Fixed parameter name and removed incorrect @param entries.
  • WebView/WebPreferences.h: Changed @method to @property in a couple of places.
  • WebView/WebResourceLoadDelegate.h: Fixed parameter names.
  • WebView/WebUIDelegate.h: Filled in two empty @param entries. Added missing parameter name, Fixed a typo and removed empty @discussion entry. Fixed some parameter names.
  • WebView/WebUIDelegatePrivate.h: Fixed parameter names.
  • WebView/WebView.h: Changed @method to @property in a couple of places.
  • WebView/WebViewPrivate.h: Fixed parameter names, changed incorrect @result to @abstract.
9:54 PM Changeset in webkit [207933] by mitz@apple.com
  • 3 edits in trunk/Source/WebCore

Fixed the WebKit2 build.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::document): Moved the definition of this function to here from…

  • Modules/mediastream/UserMediaRequest.h:

(WebCore::UserMediaRequest::document): …here, so that the WebKit2 build doesn’t encounter an

exported inline function.

8:42 PM Changeset in webkit [207932] by Yusuke Suzuki
  • 5 edits
    2 adds in trunk

[DOMJIT] Implement Node::ownerDocument
https://bugs.webkit.org/show_bug.cgi?id=164004

Reviewed by Darin Adler.

Source/WebCore:

Test: js/dom/domjit-accessor-owner-document.html

Implement Node.ownerDocument DOMJIT accessor.
According to the result of the profiler, jQuery's prop()
function is frequently called in Ember.js SpeedoMeter.
And this function calls jQuery.isXMLDoc(). And this isXMLDoc()
function calls element.ownerDocument accessor. And our WebKit
inspector also uses ownerDocument accessor frequently.

Interesting thing is this ownerDocument functionality is used
in CSSJIT, so CSSJIT has similar helper function to look up the
owner document of the element. As a result, all the necessary
functionality is already implemented, DOMJIT just utilizes it.
For example, Node::treeScopeMemoryOffset() and
TreeScope::documentScopeMemoryOffset() is implemented before this
patch.

In the future, we will convert CSSJIT's Assembler& to CCallHelpers&
and share the code with DOMJIT[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=164006

  • dom/Node.idl:
  • domjit/DOMJITAbstractHeapRepository.h:
  • domjit/JSNodeDOMJIT.cpp:

(WebCore::NodeOwnerDocumentDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::callDOM):

LayoutTests:

  • js/dom/domjit-accessor-owner-document-expected.txt: Added.
  • js/dom/domjit-accessor-owner-document.html: Added.
8:13 PM Changeset in webkit [207931] by Chris Dumez
  • 29 edits in trunk

Replace IDBKeyPath with a WTF::Variant
https://bugs.webkit.org/show_bug.cgi?id=163909

Reviewed by Darin Adler.

Source/WebCore:

Replace IDBKeyPath class with the IDBKeyPathVariant type entirely
and rename IDBKeyPathVariant to IDBKeyPath.

Unfortunately, IDBKeyPath still needs some special handling when
returned to the JavaScript because we do not have a toJS() accepting
a WTF::Variant as input yet.

There should be no significant behavior change except that
IDBIndex.keyPath / IDBObjectStore.keyPath now returns an array of
Strings instead of a DOMStringList object when the IDBKeyPath
contains a vector. This is a progression and matches the
specification:

No new tests, rebaselined existing tests.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::update):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBGetResult.cpp:

(WebCore::IDBGetResult::isolatedCopy):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isIDBKeyPathValid):
(WebCore::IDBKeyPathIsolatedCopy):

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::IDBKeyPathIsolatedCopy):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::keyPath):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::createIndex):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/server/IDBSerialization.cpp:

(WebCore::serializeIDBKeyPath):
(WebCore::deserializeIDBKeyPath):

  • Modules/indexeddb/server/IDBSerialization.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::extractExistingDatabaseInfo):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:

(WebCore::IDBDatabaseInfo::createNewObjectStore):

  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBIndexInfo.cpp:

(WebCore::IDBIndexInfo::IDBIndexInfo):
(WebCore::IDBIndexInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::IDBObjectStoreInfo):
(WebCore::IDBObjectStoreInfo::createNewIndex):
(WebCore::IDBObjectStoreInfo::isolatedCopy):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:

(WebCore::IDBObjectStoreInfo::keyPath):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::injectIDBKeyIntoScriptValue):
(WebCore::maybeCreateIDBKeyFromScriptValueAndKeyPath):
(WebCore::canInjectIDBKeyIntoScriptValue):
(WebCore::createKeyPathArray):
(WebCore::toJS):

  • bindings/js/IDBBindingUtilities.h:
  • inspector/InspectorIndexedDBAgent.cpp:

Source/WebKit2:

Add coders to encode / decode IDBKeyPath type for IPC.

  • Shared/Databases/IndexedDB/WebIDBResult.cpp:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<IDBKeyPath>::encode):
(IPC::ArgumentCoder<IDBKeyPath>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

LayoutTests:

Rebaseline a few tests now that IDBIndex.keyPath / IDBObjectStore.keyPath
no longer incorrectly return DOMStringList objects and return regular
arrays instead.

  • storage/indexeddb/modern/idbindex-properties-basic-expected.txt:
  • storage/indexeddb/modern/idbindex-properties-basic-private-expected.txt:
7:49 PM Changeset in webkit [207930] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Ignore out-of-flow siblings when searching for a spanner candidate.
https://bugs.webkit.org/show_bug.cgi?id=164042.
<rdar://problem/28758456>

Reviewed by Simon Fraser.

Source/WebCore:

While searching for the spanner candidates in a flow thread, we have to take into account
whether renderers are in- or out-of-flow.
What it means is that while traversing the renderer tree to find the the candidate
renderer (next sibling/ancestor's next child in pre-order traversal), we have to check if the candidate
is in the same layout context too.

Test: fast/multicol/crash-when-spanner-candidate-is-out-of-flow.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::spannerPlacehoderCandidate):
(WebCore::RenderMultiColumnFlowThread::processPossibleSpannerDescendant):

LayoutTests:

  • fast/multicol/crash-when-spanner-candidate-is-out-of-flow-expected.txt: Added.
  • fast/multicol/crash-when-spanner-candidate-is-out-of-flow.html: Added.
7:18 PM Changeset in webkit [207929] by jfbastien@apple.com
  • 10 edits
    1 add in trunk

WebAssembly API: implement Instance

As described in: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblyinstance-objects

  • Take ownership of Wasm::Plan's compilation result when successfully creating a JSWebAssemblyModule object.
  • Construct a basic Instance with a Module.
  • Handle second argument (importObject) of WebAssembly.Instance.
  • Add reference text from the spec to WebAssembly.Module's code.
  • Expose and test an empty 'exports' ModuleNamespaceObject on WebAssembly.Instance.

The implementation isn't complete yet: it relies on further work for which I've filed bugs.

WebAssembly API: implement Instance
https://bugs.webkit.org/show_bug.cgi?id=163998

Reviewed by Keith Miller.

JSTests:

  • wasm/js-api/test_Instance.js: Added.

(EmptyModule): use the Builder, create the simplest Module possible, and create an Instance from it

  • wasm/js-api/test_basic_api.js:

(const.c.in.constructorProperties.switch): basic tests of the API

Source/JavaScriptCore:

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::getFunctions): allow transfering state out
(JSC::Wasm::Plan::getMemory): allow transfering state out

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::create):
(JSC::JSWebAssemblyInstance::finishCreation): set the ModuleNamespaceObject, and expose it as "exports"
(JSC::JSWebAssemblyInstance::visitChildren): visit the ModuleNamespaceObject child

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::create):
(JSC::JSWebAssemblyModule::JSWebAssemblyModule): move in the compiled functions and the memory

  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance): take the Module, extract the Plan's results, and create the (empty for now) ModuleNamespaceObject

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule): add a few comments from the spec, and pass out the Plan's results

5:17 PM Changeset in webkit [207928] by BJ Burg
  • 17 edits in trunk/Source

Web Inspector: remove unused bool return value from FrontendChannel::sendMessageToFrontend
https://bugs.webkit.org/show_bug.cgi?id=164046

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/InspectorFrontendChannel.h:
  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/RemoteConnectionToTarget.mm:

(Inspector::RemoteConnectionToTarget::sendMessageToFrontend):

Source/WebCore:

  • inspector/InspectorClient.cpp:

(WebCore::InspectorClient::doDispatchMessageOnFrontendPage):

  • inspector/InspectorClient.h:
  • testing/Internals.cpp:

(WebCore::InspectorStubFrontend::sendMessageToFrontend):

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::sendMessageToFrontend):

Source/WebKit/mac:

  • WebCoreSupport/WebInspectorClient.h:

Source/WebKit/win:

  • WebCoreSupport/WebInspectorClient.h:

Source/WebKit2:

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::sendMessageToFrontend):

  • WebProcess/WebPage/WebInspector.h:
4:57 PM Changeset in webkit [207927] by jfbastien@apple.com
  • 6 edits
    2 deletes in trunk/Source/JavaScriptCore

WebAssembly: remove now-dead JSWasmModule
https://bugs.webkit.org/show_bug.cgi?id=164044

Reviewed by Keith Miller.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/Executable.cpp:

(JSC::WebAssemblyExecutable::WebAssemblyExecutable):
(JSC::WebAssemblyExecutable::visitChildren):

  • runtime/Executable.h:
  • wasm/JSWasmModule.cpp: Removed.
  • wasm/JSWasmModule.h: Removed.
  • wasm/WasmModuleParser.cpp:
4:19 PM Changeset in webkit [207926] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r207547. rdar://problem/28810755

4:18 PM Changeset in webkit [207925] by matthew_hanson@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r207804. rdar://problem/28849628

4:18 PM Changeset in webkit [207924] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r207692. rdar://problem/28810751

4:18 PM Changeset in webkit [207923] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207683. rdar://problem/28849627

4:18 PM Changeset in webkit [207922] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207661. rdar://problem/28857478

4:18 PM Changeset in webkit [207921] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r207631. rdar://problem/28810750

4:18 PM Changeset in webkit [207920] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r207477. rdar://problem/28810756

4:17 PM Changeset in webkit [207919] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r207221. rdar://problem/28894492

4:17 PM Changeset in webkit [207918] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r206190. rdar://problem/28744102

4:17 PM Changeset in webkit [207917] by matthew_hanson@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r206102. rdar://problem/28744106

4:17 PM Changeset in webkit [207916] by matthew_hanson@apple.com
  • 6 edits
    1 add in branches/safari-602-branch

Merge r206281. rdar://problem/28870938

4:17 PM Changeset in webkit [207915] by matthew_hanson@apple.com
  • 3 edits
    1 add in branches/safari-602-branch

Merge r207623. rdar://problem/28857477

4:15 PM Changeset in webkit [207914] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

The URLSearchParams constructor should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163906

Reviewed by Darin Adler.

The URLSearchParams constructor should take a union in parameter:

No new tests, no web-exposed behavior change.

  • html/URLSearchParams.h:

(WebCore::URLSearchParams::create):

  • html/URLSearchParams.idl:
2:09 PM Changeset in webkit [207913] by Yusuke Suzuki
  • 2 edits in trunk/Tools

[GTK] JSC test wasm.yaml/wasm/js-api/test_basic_api.js.default-wasm and wasm.yaml/wasm/js-api/test_Module.js.default-wasm fail with Exception: ReferenceError: Can't find variable: WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=163846

Reviewed by Michael Catanzaro.

WebAssembly is now developed for Darwin right now.
Disable WASM tests in the other platforms.

  • Scripts/run-jsc-stress-tests:
2:05 PM Changeset in webkit [207912] by weinig@apple.com
  • 32 edits in trunk/Source/WebCore

[WebIDL] Move more string conversions over to JSDOMConvert
https://bugs.webkit.org/show_bug.cgi?id=164021

Reviewed by Tim Horton.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::open):
(WebCore::JSDOMWindow::showModalDialog):
(WebCore::handlePostMessage):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::toDataURL):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
Switch to convert functions.

  • bindings/js/JSApplePaySessionCustom.cpp:

(WebCore::JSApplePaySession::completeShippingMethodSelection):
(WebCore::JSApplePaySession::completeShippingContactSelection):

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createAesKeyGenParams):
(WebCore::createRsaKeyGenParams):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::getCSSCanvasContext):

  • bindings/js/JSMockContentFilterSettingsCustom.cpp:

(WebCore::JSMockContentFilterSettings::setDecisionPoint):
(WebCore::toDecision):

  • bindings/js/JSNodeFilterCustom.cpp:

(WebCore::JSNodeFilter::acceptNode):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::toSmallerInt):
(WebCore::toSmallerUInt):
(WebCore::toInt8EnforceRange):
(WebCore::toUInt8EnforceRange):
(WebCore::toInt8Clamp):
(WebCore::toUInt8Clamp):
(WebCore::toInt8):
(WebCore::toUInt8):
(WebCore::toInt16EnforceRange):
(WebCore::toUInt16EnforceRange):
(WebCore::toInt16Clamp):
(WebCore::toUInt16Clamp):
(WebCore::toInt16):
(WebCore::toUInt16):
Use updated IntegerConversionConfiguration naming.

(WebCore::valueToStringTreatingNullAsEmptyString): Deleted.
(WebCore::valueToStringWithUndefinedOrNullCheck): Deleted.
(WebCore::valueToUSVStringTreatingNullAsEmptyString): Deleted.
(WebCore::valueToUSVStringWithUndefinedOrNullCheck): Deleted.

  • bindings/js/JSDOMBinding.h:

Remove unused functions.

  • bindings/js/JSDOMConvert.h:

(WebCore::convert):
Add StringConversionConfiguration, to match IntegerConversionConfiguration which moved here,
and make them both enum classes. Remove SFINAE based overloading of convert<>, which is not
needed if we get rid of the default parameter, which we can, since the two parameter convert
routes to the right place.

(WebCore::Converter<IDLNullable<T>>::convert):
Add overloads converts that take a Integer/String configuration.

(WebCore::Converter<IDLByte>::convert):
(WebCore::Converter<IDLOctet>::convert):
(WebCore::Converter<IDLShort>::convert):
(WebCore::Converter<IDLUnsignedShort>::convert):
(WebCore::Converter<IDLLong>::convert):
(WebCore::Converter<IDLUnsignedLong>::convert):
(WebCore::Converter<IDLLongLong>::convert):
(WebCore::Converter<IDLUnsignedLongLong>::convert):
Use updated IntegerConversionConfiguration naming.

(WebCore::Converter<IDLDOMString>::convert):
(WebCore::Converter<IDLUSVString>::convert):
Add a configuration parameter, similar to the one used for integers
that changes the behavior of string conversions to return an empty
string for null.

  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorCreate):
(WebCore::IteratorTraits>::asJS):
(WebCore::appendForEachArguments):
Simplify a bit by extracting the SFINAE helpers into a EnableIfMap and EnableIfSet.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetIntegerConversionConfiguration):
(GetStringConversionConfiguration):
(JSValueToNativeIsHandledByDOMConvert):
(JSValueToNative):
Add support for converting more string types and passing the StringConversionConfiguration.

2:02 PM Changeset in webkit [207911] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 16

Added a tag for Safari Technology Preview release 16.

1:39 PM Changeset in webkit [207910] by mitz@apple.com
  • 6 edits in trunk

When pasting web archive, width specifiers in srcset attribute change into density specifiers
https://bugs.webkit.org/show_bug.cgi?id=164027
<rdar://problem/28964948>

Reviewed by Tim Horton.

Source/WebCore:

Updated editing/pasteboard/img-srcset-copy-paste-canonicalization.html.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::completeURLsInAttributeValue): Use 'w' when writing out a width

specifier.

LayoutTests:

  • editing/pasteboard/img-srcset-copy-paste-canonicalization-expected.txt: Updated.
  • editing/pasteboard/img-srcset-copy-paste-canonicalization.html: Changed to expect a 200w specifier to round-trip.
  • editing/pasteboard/resources/img-srcset-copy-paste-canonicalization-iframe.html: Changed a 1x specifier to 200w.
1:26 PM Changeset in webkit [207909] by commit-queue@webkit.org
  • 20 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: playback support
https://bugs.webkit.org/show_bug.cgi?id=163678
<rdar://problem/27989479>

Patch by Antoine Quint <Antoine Quint> on 2016-10-26
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the PlaybackSupport class which brings support for playing and pausing
the media by clicking on the play/pause button in the media controls and correctly
reflecting the media's playback state as the media is played or paused via the media API.

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/playback-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.

(PlaybackSupport.prototype.get control):
(PlaybackSupport.prototype.get mediaEvents):
(PlaybackSupport.prototype.buttonWasClicked):
(PlaybackSupport.prototype.syncControl):
(PlaybackSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

New tests for the PlaybackSupport class and adding the new resource to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html:
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-autoplay.html: Copied from LayoutTests/media/modern-media-controls/elapsed-time-support/elapsed-time-support.html.
  • media/modern-media-controls/playback-support/playback-support-button-click-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-button-click.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
  • media/modern-media-controls/playback-support/playback-support-media-api-expected.txt: Added.
  • media/modern-media-controls/playback-support/playback-support-media-api.html: Copied from LayoutTests/media/modern-media-controls/remaining-time-support/remaining-time-support.html.
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
1:20 PM October 2016 Meeting edited by Jon Davis
Added morning transcripts (diff)
1:17 PM WebComponents2016 created by Jon Davis
1:17 PM Changeset in webkit [207908] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Regression(r203848): 百度糯米 app fails to load content due to a JavaScript error
https://bugs.webkit.org/show_bug.cgi?id=163967
<rdar://problem/28707838>

Reviewed by Ryosuke Niwa.

Add quirk for 百度糯米 app making the 2 last parameters to Event.prototype.initEvent()
optional.

No new tests, change only impacts this specific application.

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):

  • dom/Event.cpp:

(WebCore::Event::initEventForBindings):

  • dom/Event.h:
  • dom/Event.idl:
  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isBaiduNuomi):

1:15 PM StateofJSC2016 created by Jon Davis
1:15 PM October 2016 Meeting edited by rniwa@webkit.org
Add web components slides (diff)
1:13 PM StateofWebInspector2016 created by Jon Davis
1:09 PM Web Components - 2016 WebKit Contributors Meeting.key attached to October 2016 Meeting by rniwa@webkit.org
Web Components
1:02 PM October 2016 Meeting edited by Jon Davis
(diff)
12:27 PM Changeset in webkit [207907] by Chris Dumez
  • 9 edits
    2 adds in trunk

First parameter to TextTrack.addCue() / removeCue() should not be nullable
https://bugs.webkit.org/show_bug.cgi?id=164020

Reviewed by Eric Carlson.

Source/WebCore:

First parameter to TextTrack.addCue() / removeCue() should not be nullable:

Firefox and Chrome agree with the specification.

Test: media/track/texttrack-addCue-null.html

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):

  • html/track/InbandDataTextTrack.h:
  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::addGenericCue):
(WebCore::InbandGenericTextTrack::removeGenericCue):
(WebCore::InbandGenericTextTrack::removeCue):

  • html/track/InbandGenericTextTrack.h:
  • html/track/TextTrack.cpp:

(WebCore::TextTrack::addCue):
(WebCore::TextTrack::removeCue):

  • html/track/TextTrack.h:
  • html/track/TextTrack.idl:

LayoutTests:

Add layout test coverage.

  • media/track/texttrack-addCue-null-expected.txt: Added.
  • media/track/texttrack-addCue-null.html: Added.
12:23 PM Changeset in webkit [207906] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSGenericTypedArrayView::set() should check for exceptions.
https://bugs.webkit.org/show_bug.cgi?id=164007
<rdar://problem/28853775>

Reviewed by Filip Pizlo.

JSTests:

  • stress/typed-array-view-set-should-not-crash-on-exception.js: Added.

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

12:07 PM Changeset in webkit [207905] by commit-queue@webkit.org
  • 18 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: elapsed and remaining time support
https://bugs.webkit.org/show_bug.cgi?id=163679
<rdar://problem/28851675>

Patch by Antoine Quint <Antoine Quint> on 2016-10-26
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the ElapsedTimeSupport and RemainingTimeSupport classes which bring
support for displaying the elapsed and remaining time in the time control.

Tests: media/modern-media-controls/elapsed-time-support/elapsed-time-support.html

media/modern-media-controls/remaining-time-support/remaining-time-support.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/elapsed-time-support.js: Added.

(ElapsedTimeSupport.prototype.get control):
(ElapsedTimeSupport.prototype.get mediaEvents):
(ElapsedTimeSupport.prototype.syncControl):
(ElapsedTimeSupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/remaining-time-support.js: Added.

(RemainingTimeSupport.prototype.get control):
(RemainingTimeSupport.prototype.get mediaEvents):
(RemainingTimeSupport.prototype.syncControl):
(RemainingTimeSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

New tests for the ElapsedTimeSupport and RemainingTimeSupport classes and adding the
new resources to other MediaController tests.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support-expected.txt: Added.
  • media/modern-media-controls/elapsed-time-support/elapsed-time-support.html: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support-expected.txt: Added.
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html: Added.
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
11:17 AM October 2016 Meeting edited by Brent Fulgham
(diff)
11:13 AM October 2016 Meeting edited by sun.shin@webkit.org
(diff)
10:45 AM Changeset in webkit [207904] by Michael Catanzaro
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/fast/events/input-events-paste-rich-datatransfer-expected.txt: Added.
10:44 AM Changeset in webkit [207903] by hyatt@apple.com
  • 12 edits
    2 deletes in trunk/Source/WebCore

[CSS Parser] Unify CSSCustomPropertyValue and CSSCustomPropertyDeclaration
https://bugs.webkit.org/show_bug.cgi?id=164019

Reviewed by Zalan Bujtas.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSCustomPropertyDeclaration.cpp: Removed.
  • css/CSSCustomPropertyDeclaration.h: Removed.

Get rid of CSSCustomPropertyDeclaration.

  • css/CSSCustomPropertyValue.h:

Add new constructors to handle the new variable data format (either a CSSValueId or a
CSSVariableData object that holds parser tokens).

  • css/CSSValue.cpp:

(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isCustomPropertyDeclaration): Deleted.
Get rid of CSSCustomPropertyDeclaration cases.

  • css/CSSVariableData.h:

Switch to CSSCustomPropertyValue.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):
We've renamed the old parser variable data to deprecatedValue to make it clear it's going
to be removed eventually.

  • css/parser/CSSParserImpl.cpp:

(WebCore::filterProperties):
(WebCore::CSSParserImpl::consumeVariableValue):

  • css/parser/CSSVariableParser.cpp:

(WebCore::CSSVariableParser::parseDeclarationValue):

  • css/parser/CSSVariableParser.h:

Switch to CSSCustomPropertyValue.

10:43 AM Changeset in webkit [207902] by commit-queue@webkit.org
  • 3 edits
    1 copy
    2 adds in trunk/LayoutTests

[Modern Media Controls] http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=164013

Unreviewed.

Make the test more robust by only responding to "canplaythrough" once, since it might have fired again
after seeking, and registering for "seeked" events only after we've reached "canplaythrough", and accounting
for the first seek to 50s.

Patch by Antoine Quint <Antoine Quint> on 2016-10-26

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • platform/mac-yosemite/http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.
9:46 AM Changeset in webkit [207901] by commit-queue@webkit.org
  • 17 edits
    1 delete in trunk

Enable SDPProcessor for Mac bots
https://bugs.webkit.org/show_bug.cgi?id=163940

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-26
Reviewed by Eric Carlson.

Source/WebCore:

Covered by activated tests.

Activating processing of SDPProcessor scripts for Mac bots.
Moving platform/mediastream/openwebrtc/SDPProcessorScriptResource.cpp to platform/mediastream/SDPProcessorScriptResource.cpp.
This file is not tied to openwebrtc and allows retrieving the SDPProcessor script resource file content.

  • DerivedSources.make:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/SDPProcessorScriptResource.cpp:

(WebCore::SDPProcessorScriptResource::scriptString):

  • platform/mediastream/openwebrtc/SDPProcessorScriptResource.cpp: Removed.

LayoutTests:

This is the first time the tests are activated since a long time.
Further patches should make the tests pass and/or update them according latest spec.

  • fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-localDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-remoteDescription-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
  • platform/mac/TestExpectations:
9:23 AM October 2016 Meeting edited by Jon Davis
(diff)
9:14 AM Changeset in webkit [207900] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Get functional pseudos parsing
https://bugs.webkit.org/show_bug.cgi?id=164018

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoClassSelectorFromStringView):
Remove the ( check so that we can parse strings that end in (.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
Put in a hack that adds a ( to the end of the string so that it will be found in the map.

8:36 AM Changeset in webkit [207899] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fixing compiler warnings in PlaybackPipeline
that are popping up in GTK+ builds.

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):

8:08 AM Changeset in webkit [207898] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit2

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Unreviewed fix after r207839.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setMuted): Take an MutedStateFlags, not a bool.

  • WebProcess/WebPage/WebPage.h:
7:49 AM Changeset in webkit [207897] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

IceCandidate does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=163944

Patch by Youenn Fablet <youennf@gmail.com> on 2016-10-26
Reviewed by Eric Carlson.

No change of behavior.

Simplifying IceCandidate class into a simple structure, no longer refcounted.
Updated call sites accordingly.
Updated SDP parsing of candidates to return a Variant instead of having both a return and an out parameter.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
(WebCore::MediaEndpointPeerConnection::gotIceCandidate):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/SDPProcessor.cpp:

(WebCore::createCandidateObject):
(WebCore::createCandidate):
(WebCore::iceCandidateFromJSON):
(WebCore::configurationToJSON):
(WebCore::SDPProcessor::parseCandidateLine):

  • Modules/mediastream/SDPProcessor.h:

(WebCore::SDPProcessor::ParsingResult::parsingStatus):
(WebCore::SDPProcessor::ParsingResult::candidate):

  • platform/mediastream/IceCandidate.h:
  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::iceCandidates):
(WebCore::PeerMediaDescription::addIceCandidate):
(WebCore::PeerMediaDescription::clone):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::updateSendConfiguration):
(WebCore::MediaEndpointOwr::addRemoteCandidate):
(WebCore::MediaEndpointOwr::dispatchNewIceCandidate):
(WebCore::MediaEndpointOwr::internalAddRemoteCandidate):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::addRemoteCandidate):
(WebCore::MockMediaEndpoint::dispatchFakeIceCandidates):

  • platform/mock/MockMediaEndpoint.h:
6:24 AM Changeset in webkit [207896] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix mach port leak in ResourceUsageThread.
<https://webkit.org/b/164012>

Reviewed by Antti Koivisto.

The threads returned by task_threads() need to be deallocated.

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::cpuUsage):

5:54 AM Changeset in webkit [207895] by nael.ouedraogo@crf.canon.fr
  • 5 edits in trunk

WebRTC: The RTCTrackEventInit dictionary needs required members
https://bugs.webkit.org/show_bug.cgi?id=158536

Source/WebCore:

Reviewed by Chris Dumez.

Update RTCTrackEvent IDL as per specification.

No additional test required, rebase existing tests.

  • Modules/mediastream/RTCTrackEvent.idl:

LayoutTests:

Update RTCTrackEvent IDL as per specification. Rebase existing tests.

Reviewed by Chris Dumez.

  • fast/mediastream/RTCTrackEvent-constructor-expected.txt:
  • fast/mediastream/RTCTrackEvent-constructor.html:
3:09 AM Changeset in webkit [207894] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][GTK+][MSE] Unreviewed debug build fix.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::resetPipeline):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
2:57 AM Changeset in webkit [207893] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.15.1

WebKitGTK+ 2.15.1

2:56 AM Changeset in webkit [207892] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.15.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.15.1.
1:48 AM Changeset in webkit [207891] by eocanha@igalia.com
  • 6 edits
    1 add in trunk

[cmake][GStreamer][MSE][EME] Build MSE and EME code after refactoring
https://bugs.webkit.org/show_bug.cgi?id=162928

Reviewed by Xabier Rodriguez-Calvar.

.:

Consolidate all the source file tree changes after refactoring.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • Source/cmake/FindLibGcrypt.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:

Source/WebCore:

Consolidate all the source file tree changes after refactoring.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • platform/GStreamer.cmake:

Tools:

Explicitly enable MSE and EME on WebKitGTK+ buildbots.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • Scripts/webkitperl/FeatureList.pm:
1:47 AM Changeset in webkit [207890] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Enable QUOTA_EXCEEDED_ERR support for GStreamer
https://bugs.webkit.org/show_bug.cgi?id=162922

Reviewed by Xabier Rodriguez-Calvar.

QUOTA_EXCEEDED_ERR should be reported by SourceBuffer when appropriate, at least on the
GStreamer implementation.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::appendBufferInternal):

1:47 AM Changeset in webkit [207889] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[MSE] Expose additional MediaSource methods to MediaSourcePrivate
https://bugs.webkit.org/show_bug.cgi?id=162920

Reviewed by Xabier Rodriguez-Calvar.

The GStreamer MSE platform implementation needs to report duration changes and trigger
monitorSourceBuffers() calls.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::durationChanged):

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivateClient.h:
1:46 AM Changeset in webkit [207888] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][EME] ClearKey decryption support
https://bugs.webkit.org/show_bug.cgi?id=162918

Reviewed by Xabier Rodriguez-Calvar.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp: Added.

(webkit_media_clear_key_decrypt_class_init):
(webkit_media_clear_key_decrypt_init):
(webKitMediaClearKeyDecryptorFinalize):
(webKitMediaClearKeyDecryptorRequestDecryptionKey):
(webKitMediaClearKeyDecryptorHandleKeyResponse):
(webKitMediaClearKeyDecryptorSetupCipher):
(webKitMediaClearKeyDecryptorDecrypt):
(webKitMediaClearKeyDecryptorReleaseCipher):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h: Added.
1:45 AM Changeset in webkit [207887] by eocanha@igalia.com
  • 1 edit
    3 adds in trunk/Source/WebCore

[GStreamer][EME] Base class for decryption support
https://bugs.webkit.org/show_bug.cgi?id=162915

Reviewed by Xabier Rodriguez-Calvar.

Add common encryption base class.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: Added.

(webkit_media_common_encryption_decrypt_class_init):
(webkit_media_common_encryption_decrypt_init):
(webKitMediaCommonEncryptionDecryptorFinalize):
(webkitMediaCommonEncryptionDecryptTransformCaps):
(webkitMediaCommonEncryptionDecryptTransformInPlace):
(webkitMediaCommonEncryptionDecryptSinkEventHandler):
(webKitMediaCommonEncryptionDecryptorChangeState):
(webKitMediaCommonEncryptionDecryptDefaultSetupCipher):
(webKitMediaCommonEncryptionDecryptDefaultReleaseCipher):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h: Added.
1:45 AM Changeset in webkit [207886] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME] Utility function to create decryptor
https://bugs.webkit.org/show_bug.cgi?id=162914

Reviewed by Xabier Rodriguez-Calvar.

Add a utility function to find a suitable GStreamer decryptor element.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::createGstDecryptor):
(WebCore::gstRegistryHasElementForMediaType): Deleted.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
1:44 AM Changeset in webkit [207885] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][MSE][EME] Remove MSE code from regular player and add EME support
https://bugs.webkit.org/show_bug.cgi?id=162911

Now that the MSE responsibility has been refactored to the dedicated
MediaPlayerPrivateGStreamerMSE subclass, the regular player no longer needs the MSE code,
just to expose some more methods to the subclass. Float timestamps have been migrated to
double. Also, small changes to accomodate the EME support are needed.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support) and
Žan Doberšek <zandobersek@gmail.com> (double timestamps).

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::busMessageCallback):
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::durationMediaTime):
(WebCore::MediaPlayerPrivateGStreamer::currentMediaTime):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::doSeek):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::buffered):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
(WebCore::MediaPlayerPrivateGStreamer::sourceChanged):
(WebCore::MediaPlayerPrivateGStreamer::didEnd):
(WebCore::MediaPlayerPrivateGStreamer::durationChanged):
(WebCore::MediaPlayerPrivateGStreamer::supportsType):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::commitLoad): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::pause): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideoCaps): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::setRate): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::totalBytes): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::loadStateChanged): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::timeChanged): Deleted.
(WebCore::mimeTypeSet): Deleted.
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamer::isMediaSource):
(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Deleted.

1:44 AM Changeset in webkit [207884] by eocanha@igalia.com
  • 3 edits in trunk/Source/WebCore

[GStreamer][EME] Add EME support to base private player
https://bugs.webkit.org/show_bug.cgi?id=162908

Reviewed by Xabier Rodriguez-Calvar.

Add encryption key management support.

This patch is authored by Philippe Normand <philn@igalia.com>.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::registerWebKitGStreamerElements):
(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamerBase::needKey):
(WebCore::MediaPlayerPrivateGStreamerBase::setCDMSession):
(WebCore::MediaPlayerPrivateGStreamerBase::keyAdded):
(WebCore::MediaPlayerPrivateGStreamerBase::createSession):
(WebCore::MediaPlayerPrivateGStreamerBase::dispatchDecryptionKey):
(WebCore::MediaPlayerPrivateGStreamerBase::supportsKeySystem):
(WebCore::MediaPlayerPrivateGStreamerBase::extendedSupportsType):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::setPipeline): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::pipeline):

1:43 AM Changeset in webkit [207883] by eocanha@igalia.com
  • 1 edit
    1 move
    2 adds
    1 delete in trunk/Source/WebCore

[GStreamer][MSE] WebKitMediaSourceGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162902

Reviewed by Xabier Rodriguez-Calvar.

Move WebKitMediaSourceGStreamer to the mse directory, split public and private header
sections, manage stream data throttling and seek synchronization, audio/video/text stream
counting, improve GStreamer duration query, stream initialization, remove
MediaSourceClientGStreamer logic (factored out to its own class in another patch) and
interaction with MediaPlayerPrivateGStreamerMSE, PlaybackPipeline and
SourceBufferPrivateGStreamer.

  • platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Removed.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp: Added.

(disabledAppsrcNeedData):
(disabledAppsrcEnoughData):
(disabledAppsrcSeekData):
(enabledAppsrcEnoughData):
(enabledAppsrcSeekData):
(getStreamByAppsrc):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaSrcDoAsyncStart):
(webKitMediaSrcDoAsyncDone):
(webKitMediaSrcChangeState):
(webKitMediaSrcGetSize):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUpdatePresentationSize):
(webKitMediaSrcLinkStreamToSrcPad):
(webKitMediaSrcLinkParser):
(webKitMediaSrcFreeStream):
(webKitMediaSrcCheckAllTracksConfigured):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(seekNeedsDataMainThread):
(notifyReadyForMoreSamplesMainThread):
(applicationMessageCallback):
(webKitMediaSrcSetMediaPlayerPrivate):
(webKitMediaSrcSetReadyForSamples):
(webKitMediaSrcPrepareSeek):
(WTF::adoptGRef):
(WTF::refGPtr<WebKitMediaSrc>):
(WTF::derefGPtr<WebKitMediaSrc>):

  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/WebKitMediaSourceGStreamer.h.
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Added.
1:42 AM Changeset in webkit [207882] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][MSE] Playback pipeline
https://bugs.webkit.org/show_bug.cgi?id=162901

Reviewed by Xabier Rodriguez-Calvar.

Encapsulate the responsibility to interact with the GStreamer playback pipeline and the
different streams managed by the WebKitMediaSrc element into a new PlaybackPipeline class.

  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Added.

(getStreamByTrackId):
(getStreamBySourceBufferPrivate):
(pushSample):
(WebCore::PlaybackPipeline::create):
(WebCore::PlaybackPipeline::PlaybackPipeline):
(WebCore::PlaybackPipeline::~PlaybackPipeline):
(WebCore::PlaybackPipeline::setWebKitMediaSrc):
(WebCore::PlaybackPipeline::webKitMediaSrc):
(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::removeSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):
(WebCore::PlaybackPipeline::reattachTrack):
(WebCore::PlaybackPipeline::notifyDurationChanged):
(WebCore::PlaybackPipeline::markEndOfStream):
(WebCore::PlaybackPipeline::flushAndEnqueueNonDisplayingSamples):
(WebCore::PlaybackPipeline::enqueueSample):
(WebCore::PlaybackPipeline::pipeline):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.h: Added.
1:41 AM Changeset in webkit [207881] by eocanha@igalia.com
  • 2 edits
    2 adds in trunk/Source/WebCore

[GStreamer][MSE][EME] MSE specialization of Media Player Private for GStreamer
https://bugs.webkit.org/show_bug.cgi?id=162900

Reviewed by Xabier Rodriguez-Calvar.

Refactor MSE-specific logic to its own GStreamer player. This new MSE player coordinates
data appending, media playback and interaction with MediaSource by delegating to
AppendPipeline (one instance per SourceBuffer), PlaybackPipeline and
MediaSourceClientGStreamerMSE/MediaSourcePrivateClient respectively.

This patch is co-authored with Philippe Normand <philn@igalia.com> (EME support).

  • platform/graphics/MediaPlayer.cpp:

(WebCore::buildMediaEnginesVector):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: Added.

(dumpReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::registerMediaEngine):
(WebCore::initializeGStreamerAndRegisterWebKitMSEElement):
(WebCore::MediaPlayerPrivateGStreamerMSE::isAvailable):
(WebCore::MediaPlayerPrivateGStreamerMSE::MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationMediaTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamerMSE::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamerMSE::notifySeekNeedsDataForTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamerMSE::seeking):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::waitForSeekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::setRate):
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::isTimeBuffered):
(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient):
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::mimeTypeCache):
(WebCore::MediaPlayerPrivateGStreamerMSE::getSupportedTypes):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
(WebCore::MediaPlayerPrivateGStreamerMSE::supportsType):
(WebCore::MediaPlayerPrivateGStreamerMSE::dispatchDecryptionKey):
(WebCore::MediaPlayerPrivateGStreamerMSE::markEndOfStream):
(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::maxTimeSeekable):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: Added.

(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourcePrivateClient):

1:41 AM Changeset in webkit [207880] by eocanha@igalia.com
  • 1 edit
    2 moves in trunk/Source/WebCore

[GStreamer][MSE] MediaSourceGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162899

Reviewed by Žan Doberšek.

Move MediaSourceGStreamer to the mse directory, manage SourceBufferPrivates and delegate WebKitMediaSrc operations to the MSE private player.

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp: Renamed from Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.cpp.

(WebCore::MediaSourceGStreamer::open):
(WebCore::MediaSourceGStreamer::MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::~MediaSourceGStreamer):
(WebCore::MediaSourceGStreamer::addSourceBuffer):
(WebCore::MediaSourceGStreamer::removeSourceBuffer):
(WebCore::MediaSourceGStreamer::durationChanged):
(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::readyState):
(WebCore::MediaSourceGStreamer::setReadyState):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):
(WebCore::MediaSourceGStreamer::seekCompleted):
(WebCore::MediaSourceGStreamer::sourceBufferPrivateDidChangeActiveState):
(WebCore::MediaSourceGStreamer::buffered):

  • platform/graphics/gstreamer/mse/MediaSourceGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/MediaSourceGStreamer.h.
1:40 AM Changeset in webkit [207879] by eocanha@igalia.com
  • 1 edit
    2 moves in trunk/Source/WebCore

[GStreamer][MSE] SourceBufferPrivateGStreamer refactoring
https://bugs.webkit.org/show_bug.cgi?id=162898

Reviewed by Xabier Rodriguez-Calvar.

Moved SourceBufferPrivateGStreamer to an mse directory and added unimplemented features (abort, enqueueing and sample flow control).

  • platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp: Removed.
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: Added.

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::~SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::setClient):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::resetParserState):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::readyState):
(WebCore::SourceBufferPrivateGStreamer::setReadyState):
(WebCore::SourceBufferPrivateGStreamer::flushAndEnqueueNonDisplayingSamples):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setActive):
(WebCore::SourceBufferPrivateGStreamer::stopAskingForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
(WebCore::SourceBufferPrivateGStreamer::didReceiveSample):
(WebCore::SourceBufferPrivateGStreamer::didReceiveAllPendingSamples):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h: Renamed from Source/WebCore/platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h.
1:39 AM Changeset in webkit [207878] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer][MSE] MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=162896

Reviewed by Xabier Rodriguez-Calvar.

This class encapsulates the MediaSource interaction responsibility for the
GStreamer platform.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: Added.

(WebCore::MediaSourceClientGStreamerMSE::create):
(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::~MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::duration):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::markEndOfStream):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flushAndEnqueueNonDisplayingSamples):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::webKitMediaSrc):
(WebCore::MediaSourceClientGStreamerMSE::clearPlayerPrivate):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: Added.
1:39 AM Changeset in webkit [207877] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer] GStreamer Media Sample
https://bugs.webkit.org/show_bug.cgi?id=162894

Reviewed by Xabier Rodriguez-Calvar.

Implement the MediaSample interface for the GStreamer platform.

  • platform/graphics/gstreamer/mse/GStreamerMediaSample.cpp: Added.

(WebCore::GStreamerMediaSample::GStreamerMediaSample):
(WebCore::GStreamerMediaSample::create):
(WebCore::GStreamerMediaSample::createFakeSample):
(WebCore::GStreamerMediaSample::applyPtsOffset):
(WebCore::GStreamerMediaSample::offsetTimestampsBy):
(WebCore::GStreamerMediaSample::~GStreamerMediaSample):

  • platform/graphics/gstreamer/mse/GStreamerMediaSample.h: Added.

(WebCore::GStreamerMediaSample::presentationTime):
(WebCore::GStreamerMediaSample::decodeTime):
(WebCore::GStreamerMediaSample::duration):
(WebCore::GStreamerMediaSample::trackID):
(WebCore::GStreamerMediaSample::setTrackID):
(WebCore::GStreamerMediaSample::sizeInBytes):
(WebCore::GStreamerMediaSample::sample):
(WebCore::GStreamerMediaSample::presentationSize):
(WebCore::GStreamerMediaSample::setTimestamps):
(WebCore::GStreamerMediaSample::isDivisable):
(WebCore::GStreamerMediaSample::divide):
(WebCore::GStreamerMediaSample::flags):
(WebCore::GStreamerMediaSample::platformSample):
(WebCore::GStreamerMediaSample::dump):

1:38 AM Changeset in webkit [207876] by eocanha@igalia.com
  • 1 edit
    2 adds in trunk/Source/WebCore

[GStreamer] GStreamer Media Description
https://bugs.webkit.org/show_bug.cgi?id=162893

Reviewed by Xabier Rodriguez-Calvar.

Implement the MediaDescription interface for the GStreamer platform.

  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp: Added.

(WebCore::GStreamerMediaDescription::codec):
(WebCore::GStreamerMediaDescription::isVideo):
(WebCore::GStreamerMediaDescription::isAudio):
(WebCore::GStreamerMediaDescription::isText):

  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.h: Added.

(WebCore::GStreamerMediaDescription::create):
(WebCore::GStreamerMediaDescription::~GStreamerMediaDescription):
(WebCore::GStreamerMediaDescription::GStreamerMediaDescription):

1:37 AM Changeset in webkit [207875] by eocanha@igalia.com
  • 1 edit
    3 adds in trunk/Source/WebCore

[GStreamer][MSE][EME] Append Pipeline
https://bugs.webkit.org/show_bug.cgi?id=162874

Reviewed by Žan Doberšek.

This patch is co-authored with Xabier Rodriguez-Calvar <calvaris@igalia.com> (data starve
and last sample detection, debug features) and Philippe Normand <philn@igalia.com> (EME
support).

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp: Added.

(WebCore::dumpAppendState):
(WebCore::appendPipelineElementMessageCallback):
(WebCore::appendPipelineApplicationMessageCallback):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::clearPlayerPrivate):
(WebCore::AppendPipeline::handleElementMessage):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft):
(WebCore::AppendPipeline::id):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::checkEndOfAppend):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::appsinkEOS):
(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::trackId):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe):
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe):
(WebCore::AppendPipeline::abort):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft):
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived):
(WebCore::AppendPipeline::handleNewAppsinkSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineAppsinkCapsChanged):
(WebCore::appendPipelineAppsrcDataLeaving):
(WebCore::appendPipelinePadProbeDebugInformation):
(WebCore::appendPipelineAppsrcNeedData):
(WebCore::appendPipelineDemuxerPadAdded):
(WebCore::appendPipelineDemuxerPadRemoved):
(WebCore::appendPipelineAppsinkNewSample):
(WebCore::appendPipelineAppsinkEOS):

  • platform/graphics/gstreamer/mse/AppendPipeline.h: Added.

(WebCore::AppendPipeline::appendState):
(WebCore::AppendPipeline::mediaSourceClient):
(WebCore::AppendPipeline::sourceBufferPrivate):
(WebCore::AppendPipeline::bus):
(WebCore::AppendPipeline::pipeline):
(WebCore::AppendPipeline::appsrc):
(WebCore::AppendPipeline::appsink):
(WebCore::AppendPipeline::demuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::track):
(WebCore::AppendPipeline::streamType):

1:37 AM Changeset in webkit [207874] by eocanha@igalia.com
  • 4 edits in trunk/Source/WebCore

[GStreamer] Drain query support
https://bugs.webkit.org/show_bug.cgi?id=162872

Reviewed by Žan Doberšek.

Under some circumstances, GStreamer deadlocks completely during MSE seeks on OpenGL ES
systems. This is because the video sink still holds samples. Proper DRAIN support
fixes this issue and is also good for all the platforms, not only OpenGL ES.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::triggerDrain):
(WebCore::MediaPlayerPrivateGStreamerBase::drainCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::drain):
(webkitVideoSinkQuery):
(webkitVideoSinkEvent):
(webkit_video_sink_class_init):
(VideoRenderRequestScheduler::stop): Deleted.
(webkitVideoSinkProposeAllocation): Deleted.

1:36 AM Changeset in webkit [207873] by eocanha@igalia.com
  • 6 edits in trunk/Source/WebCore

[GStreamer] Track enhancements for MSE support
https://bugs.webkit.org/show_bug.cgi?id=162869

Reviewed by Xabier Rodriguez-Calvar.

Add 'id' field to Audio/VideoTrackPrivateGStreamer. Make TrackPrivateBaseGStreamer
work anyway in cases where the demuxer isn't contained in a GstPlaybin.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
1:35 AM Changeset in webkit [207872] by eocanha@igalia.com
  • 2 edits in trunk

[GTK][GStreamer] Disable MEDIA_SOURCE and ENCRYPTED_MEDIA_V2 by default
https://bugs.webkit.org/show_bug.cgi?id=162623

Reviewed by Xabier Rodriguez-Calvar.

  • Source/cmake/OptionsGTK.cmake:
1:08 AM Changeset in webkit [207871] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Make CachedResourceLoader originsMatch check more efficient
https://bugs.webkit.org/show_bug.cgi?id=163938

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-26
Reviewed by Darin Adler.

No change of behavior.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):
(WebCore::originsMatch): Moved to SecurityOrigin.cpp.

  • page/SecurityOrigin.cpp:

(WebCore::areOriginsMatching): Helper routine to check whether origins are matching.
(WebCore::originsMatch): Ensuring string comparison provides the same result as this function.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::protocol):
(WebCore::SecurityOrigin::host):
(WebCore::SecurityOrigin::domain):

12:45 AM Changeset in webkit [207870] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r206505) [GTK] Build broken with GTK+ 3.14
https://bugs.webkit.org/show_bug.cgi?id=162776

Reviewed by Xabier Rodriguez-Calvar.

Do not use gtk_widget_get_action_group() when GTK+ < 3.16, use g_object_set instead to attach the action group
to the menu widget.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):

Oct 25, 2016:

10:43 PM Changeset in webkit [207869] by Yusuke Suzuki
  • 6 edits
    3 adds in trunk/Source

[DOMJIT] Tell IDL result type to DFG to drop type checks in AI
https://bugs.webkit.org/show_bug.cgi?id=163900

Reviewed by Sam Weinig.

Source/JavaScriptCore:

The IDL tells the conservative result type. While we use the heap prediction
for prediction propagation phase in DOMJIT getter (it is offered by get_by_id!),
we leverage the type told by IDL to produce the abstract value with the proven type
in AI. It effectively drops unnecessary type checks followed by CallDOM operations.

For example, when you write the code like,

if (node.nodeType === 9) {

document.

}

Previously, we inserted a Int32 check for the result of node.nodeType.
It is dropped now.

We annotate the DOMJIT getter in jsc.cpp to ensure that the unnecessary type checks
are correctly dropped when executing JSTests/stress/domjit-getter.js.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • domjit/DOMJITGetterSetter.h:

(JSC::DOMJIT::GetterSetter::GetterSetter):
(JSC::DOMJIT::GetterSetter::resultType):

  • jsc.cpp:

(WTF::DOMJITGetter::DOMJITNodeDOMJIT::DOMJITNodeDOMJIT):
(WTF::DOMJITGetterComplex::DOMJITNodeDOMJIT::DOMJITNodeDOMJIT):

Source/WebCore:

Add TestDOMJIT.idl for bindings generation tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GetResultTypeFilter):
(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestDOMJIT.cpp: Added.

(WebCore::JSTestDOMJITPrototype::create):
(WebCore::JSTestDOMJITPrototype::createStructure):
(WebCore::JSTestDOMJITPrototype::JSTestDOMJITPrototype):
(WebCore::JSTestDOMJITConstructor::prototypeForStructure):
(WebCore::JSTestDOMJITConstructor::initializeProperties):
(WebCore::JSTestDOMJITPrototype::finishCreation):
(WebCore::JSTestDOMJIT::JSTestDOMJIT):
(WebCore::JSTestDOMJIT::createPrototype):
(WebCore::JSTestDOMJIT::prototype):
(WebCore::BindingCaller<JSTestDOMJIT>::castForAttribute):
(WebCore::jsTestDOMJITAnyAttr):
(WebCore::jsTestDOMJITAnyAttrGetter):
(WebCore::TestDOMJITAnyAttrDOMJIT::TestDOMJITAnyAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITAnyAttr):
(WebCore::jsTestDOMJITBooleanAttr):
(WebCore::jsTestDOMJITBooleanAttrGetter):
(WebCore::TestDOMJITBooleanAttrDOMJIT::TestDOMJITBooleanAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITBooleanAttr):
(WebCore::jsTestDOMJITByteAttr):
(WebCore::jsTestDOMJITByteAttrGetter):
(WebCore::TestDOMJITByteAttrDOMJIT::TestDOMJITByteAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteAttr):
(WebCore::jsTestDOMJITOctetAttr):
(WebCore::jsTestDOMJITOctetAttrGetter):
(WebCore::TestDOMJITOctetAttrDOMJIT::TestDOMJITOctetAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITOctetAttr):
(WebCore::jsTestDOMJITShortAttr):
(WebCore::jsTestDOMJITShortAttrGetter):
(WebCore::TestDOMJITShortAttrDOMJIT::TestDOMJITShortAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITShortAttr):
(WebCore::jsTestDOMJITUnsignedShortAttr):
(WebCore::jsTestDOMJITUnsignedShortAttrGetter):
(WebCore::TestDOMJITUnsignedShortAttrDOMJIT::TestDOMJITUnsignedShortAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedShortAttr):
(WebCore::jsTestDOMJITLongAttr):
(WebCore::jsTestDOMJITLongAttrGetter):
(WebCore::TestDOMJITLongAttrDOMJIT::TestDOMJITLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongAttr):
(WebCore::jsTestDOMJITUnsignedLongAttr):
(WebCore::jsTestDOMJITUnsignedLongAttrGetter):
(WebCore::TestDOMJITUnsignedLongAttrDOMJIT::TestDOMJITUnsignedLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongAttr):
(WebCore::jsTestDOMJITLongLongAttr):
(WebCore::jsTestDOMJITLongLongAttrGetter):
(WebCore::TestDOMJITLongLongAttrDOMJIT::TestDOMJITLongLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongLongAttr):
(WebCore::jsTestDOMJITUnsignedLongLongAttr):
(WebCore::jsTestDOMJITUnsignedLongLongAttrGetter):
(WebCore::TestDOMJITUnsignedLongLongAttrDOMJIT::TestDOMJITUnsignedLongLongAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongLongAttr):
(WebCore::jsTestDOMJITFloatAttr):
(WebCore::jsTestDOMJITFloatAttrGetter):
(WebCore::TestDOMJITFloatAttrDOMJIT::TestDOMJITFloatAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITFloatAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatAttrGetter):
(WebCore::TestDOMJITUnrestrictedFloatAttrDOMJIT::TestDOMJITUnrestrictedFloatAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedFloatAttr):
(WebCore::jsTestDOMJITDoubleAttr):
(WebCore::jsTestDOMJITDoubleAttrGetter):
(WebCore::TestDOMJITDoubleAttrDOMJIT::TestDOMJITDoubleAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDoubleAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleAttrGetter):
(WebCore::TestDOMJITUnrestrictedDoubleAttrDOMJIT::TestDOMJITUnrestrictedDoubleAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedDoubleAttr):
(WebCore::jsTestDOMJITDomStringAttr):
(WebCore::jsTestDOMJITDomStringAttrGetter):
(WebCore::TestDOMJITDomStringAttrDOMJIT::TestDOMJITDomStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDomStringAttr):
(WebCore::jsTestDOMJITByteStringAttr):
(WebCore::jsTestDOMJITByteStringAttrGetter):
(WebCore::TestDOMJITByteStringAttrDOMJIT::TestDOMJITByteStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteStringAttr):
(WebCore::jsTestDOMJITUsvStringAttr):
(WebCore::jsTestDOMJITUsvStringAttrGetter):
(WebCore::TestDOMJITUsvStringAttrDOMJIT::TestDOMJITUsvStringAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUsvStringAttr):
(WebCore::jsTestDOMJITNodeAttr):
(WebCore::jsTestDOMJITNodeAttrGetter):
(WebCore::TestDOMJITNodeAttrDOMJIT::TestDOMJITNodeAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITNodeAttr):
(WebCore::jsTestDOMJITBooleanNullableAttr):
(WebCore::jsTestDOMJITBooleanNullableAttrGetter):
(WebCore::TestDOMJITBooleanNullableAttrDOMJIT::TestDOMJITBooleanNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITBooleanNullableAttr):
(WebCore::jsTestDOMJITByteNullableAttr):
(WebCore::jsTestDOMJITByteNullableAttrGetter):
(WebCore::TestDOMJITByteNullableAttrDOMJIT::TestDOMJITByteNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteNullableAttr):
(WebCore::jsTestDOMJITOctetNullableAttr):
(WebCore::jsTestDOMJITOctetNullableAttrGetter):
(WebCore::TestDOMJITOctetNullableAttrDOMJIT::TestDOMJITOctetNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITOctetNullableAttr):
(WebCore::jsTestDOMJITShortNullableAttr):
(WebCore::jsTestDOMJITShortNullableAttrGetter):
(WebCore::TestDOMJITShortNullableAttrDOMJIT::TestDOMJITShortNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITShortNullableAttr):
(WebCore::jsTestDOMJITUnsignedShortNullableAttr):
(WebCore::jsTestDOMJITUnsignedShortNullableAttrGetter):
(WebCore::TestDOMJITUnsignedShortNullableAttrDOMJIT::TestDOMJITUnsignedShortNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedShortNullableAttr):
(WebCore::jsTestDOMJITLongNullableAttr):
(WebCore::jsTestDOMJITLongNullableAttrGetter):
(WebCore::TestDOMJITLongNullableAttrDOMJIT::TestDOMJITLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongNullableAttrGetter):
(WebCore::TestDOMJITUnsignedLongNullableAttrDOMJIT::TestDOMJITUnsignedLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongNullableAttr):
(WebCore::jsTestDOMJITLongLongNullableAttr):
(WebCore::jsTestDOMJITLongLongNullableAttrGetter):
(WebCore::TestDOMJITLongLongNullableAttrDOMJIT::TestDOMJITLongLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITLongLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttr):
(WebCore::jsTestDOMJITUnsignedLongLongNullableAttrGetter):
(WebCore::TestDOMJITUnsignedLongLongNullableAttrDOMJIT::TestDOMJITUnsignedLongLongNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnsignedLongLongNullableAttr):
(WebCore::jsTestDOMJITFloatNullableAttr):
(WebCore::jsTestDOMJITFloatNullableAttrGetter):
(WebCore::TestDOMJITFloatNullableAttrDOMJIT::TestDOMJITFloatNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITFloatNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedFloatNullableAttrGetter):
(WebCore::TestDOMJITUnrestrictedFloatNullableAttrDOMJIT::TestDOMJITUnrestrictedFloatNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedFloatNullableAttr):
(WebCore::jsTestDOMJITDoubleNullableAttr):
(WebCore::jsTestDOMJITDoubleNullableAttrGetter):
(WebCore::TestDOMJITDoubleNullableAttrDOMJIT::TestDOMJITDoubleNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDoubleNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttr):
(WebCore::jsTestDOMJITUnrestrictedDoubleNullableAttrGetter):
(WebCore::TestDOMJITUnrestrictedDoubleNullableAttrDOMJIT::TestDOMJITUnrestrictedDoubleNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUnrestrictedDoubleNullableAttr):
(WebCore::jsTestDOMJITDomStringNullableAttr):
(WebCore::jsTestDOMJITDomStringNullableAttrGetter):
(WebCore::TestDOMJITDomStringNullableAttrDOMJIT::TestDOMJITDomStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITDomStringNullableAttr):
(WebCore::jsTestDOMJITByteStringNullableAttr):
(WebCore::jsTestDOMJITByteStringNullableAttrGetter):
(WebCore::TestDOMJITByteStringNullableAttrDOMJIT::TestDOMJITByteStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITByteStringNullableAttr):
(WebCore::jsTestDOMJITUsvStringNullableAttr):
(WebCore::jsTestDOMJITUsvStringNullableAttrGetter):
(WebCore::TestDOMJITUsvStringNullableAttrDOMJIT::TestDOMJITUsvStringNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITUsvStringNullableAttr):
(WebCore::jsTestDOMJITNodeNullableAttr):
(WebCore::jsTestDOMJITNodeNullableAttrGetter):
(WebCore::TestDOMJITNodeNullableAttrDOMJIT::TestDOMJITNodeNullableAttrDOMJIT):
(WebCore::domJITGetterSetterForTestDOMJITNodeNullableAttr):
(WebCore::jsTestDOMJITConstructor):
(WebCore::setJSTestDOMJITConstructor):
(WebCore::JSTestDOMJIT::getConstructor):
(WebCore::JSTestDOMJIT::visitChildren):

  • bindings/scripts/test/JS/JSTestDOMJIT.h: Added.

(WebCore::JSTestDOMJIT::create):
(WebCore::JSTestDOMJIT::createStructure):
(WebCore::JSTestDOMJIT::wrapped):
(WebCore::JSTestDOMJIT::finishCreation):

  • bindings/scripts/test/TestDOMJIT.idl: Added.
10:12 PM Changeset in webkit [207868] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win] Unreviewed build fix.

  • platform/graphics/GraphicsContext.h: Add missing declaration.
10:11 PM Changeset in webkit [207867] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.10.0.2/Source/WebCore

Merged r207712. rdar://problem/28187870

10:10 PM Changeset in webkit [207866] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.10.0.2/Source

Versioning.

9:53 PM Changeset in webkit [207865] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.10.0.2

New tag.

9:45 PM Changeset in webkit [207864] by rniwa@webkit.org
  • 6 edits
    2 adds in trunk

Updating attribute by textContent must create a single mutation record and custom element reaction
https://bugs.webkit.org/show_bug.cgi?id=164003

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases are passing.

  • web-platform-tests/custom-elements/reactions/Node-expected.txt:

Source/WebCore:

The bug was caused by setTextContent not invoking setNodeValue for Attr nodes.
Use setNodeValue to match the specification: https://dom.spec.whatwg.org/#dom-node-textcontent

Test: fast/dom/MutationObserver/text-content-on-attr.html

  • dom/Node.cpp:

(WebCore::Node::setTextContent):

LayoutTests:

Added a test for ensuring mutating the attribute by nodeValue and textContent creates exactly one mutation record.

  • fast/custom-elements/reactions-for-webkit-extensions.html: Updated the description.
  • fast/dom/MutationObserver/text-content-on-attr-expected.txt: Added.
  • fast/dom/MutationObserver/text-content-on-attr.html: Added.
6:57 PM Changeset in webkit [207863] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Win][Direct2D] Use smart pointers for Direct2D Path types
https://bugs.webkit.org/show_bug.cgi?id=163994

Reviewed by Alex Christensen.

Tested by existing path tests.

  • platform/graphics/Path.h:

(WebCore::Path::platformPath): Use a COMPtr for m_path.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::systemFactory): Present better D2D debug output
when running a debug build.
(WebCore::GraphicsContext::platformInit): Initialize a D2D device from a
native GDI device context.
(WebCore::GraphicsContext::platformStrokeStyle): Added.
(WebCore::GraphicsContext::clipBounds): Simplify clip boundary calculations and
avoid doing math on infinities.

  • platform/graphics/win/PathDirect2D.cpp:

(WebCore::scratchRenderTarget): Added.
(WebCore::Path::~Path): Switch to COMPtr implementation.
(WebCore::Path::ensurePlatformPath): Ditto.
(WebCore::Path::appendGeometry): Ditto.
(WebCore::Path::operator=): Ditto.
(WebCore::Path::initializePathState): Ditto.
(WebCore::Path::strokeContains): Provide an implementation.
(WebCore::Path::transform): Ditto.
(WebCore::Path::addEllipse): No need for explicit construction of the
D2D1::Point2F object.
(WebCore::Path::clear): Switch to COMPtr implementation.

6:28 PM Changeset in webkit [207862] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, fix duplicate GTK expectations

  • platform/gtk/TestExpectations:
6:25 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:15 PM Changeset in webkit [207861] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

String.prototype.replace() should throw an OutOfMemoryError when using too much memory.
https://bugs.webkit.org/show_bug.cgi?id=163996
<rdar://problem/28263117>

Reviewed by Geoffrey Garen.

JSTests:

  • stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js: Added.

Source/JavaScriptCore:

String.prototype.replace() uses a Vector internally for bookkeeping work.
Currently, if this vector gets too big, we just crash on allocation failure.
While this is correct behavior, it is not too friendly.

We now detect the imminent failure, and throw a OutOfMemoryError instead.

  • runtime/StringPrototype.cpp:

(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::stringProtoFuncReplaceUsingRegExp):

Source/WTF:

  • wtf/Vector.h:

(WTF::minCapacity>::tryConstructAndAppend):
(WTF::minCapacity>::tryConstructAndAppendSlowCase):

  • Added try versions of constructAndAppend() so that we can handle the failure to allocate more gracefully.
6:15 PM Changeset in webkit [207860] by n_wang@apple.com
  • 5 edits in trunk

LayoutTest accessibility/mac/meter-gauge-value-description.html failing
https://bugs.webkit.org/show_bug.cgi?id=163997
<rdar://problem/28948637>

Reviewed by Chris Fleizach.

Source/WebCore:

I hand-edited the Localizable.strings file in a previous patch and my changes
were replaced by running update-webkit-localizable-strings script. Changed the
key to be the same as the value to keep consistency with other entries.

Re-enabled the failing test.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::AXMeterGaugeRegionOptimumText):
(WebCore::AXMeterGaugeRegionSuboptimalText):
(WebCore::AXMeterGaugeRegionLessGoodText):

LayoutTests:

  • platform/mac/TestExpectations:
6:10 PM Changeset in webkit [207859] by mark.lam@apple.com
  • 18 edits
    1 move in trunk/Source/JavaScriptCore

Rename the reject() helper function to something more meaningful.
https://bugs.webkit.org/show_bug.cgi?id=163549

Reviewed by Saam Barati.

We'll rename reject() to typeError(). The intuition behind this is that all the
clients that uses this function will return typeError(..., shouldThrow, ...).
In a sense, they are returning a "type" of TypeError (which happened to be the
value false). In addition, it may also throw a JS TypeError if the shouldThrow
parameter is true.

(JSC::callSetter):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::setLengthWithArrayStorage):

  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::put):
(JSC::JSArrayBuffer::defineOwnProperty):

  • runtime/JSArrayBufferView.cpp:
  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSDataView.cpp:

(JSC::JSDataView::put):
(JSC::JSDataView::defineOwnProperty):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::validateAndApplyPropertyDescriptor):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::putInline):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::setPrototype):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::defineOwnProperty):

  • runtime/RegExpObject.h:

(JSC::RegExpObject::setLastIndex):

  • runtime/Reject.h: Removed.
  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayValueMap::putDirect):
(JSC::SparseArrayEntry::put):

  • runtime/StringObject.cpp:

(JSC::StringObject::put):
(JSC::StringObject::putByIndex):

  • runtime/TypeError.h: Copied from Source/JavaScriptCore/runtime/Reject.h.

(JSC::typeError):
(JSC::reject): Deleted.

5:36 PM October 2016 Meeting edited by Jon Davis
(diff)
5:11 PM Changeset in webkit [207858] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking accessibility/mac/meter-gauge-value-description.html as failing on mac.
https://bugs.webkit.org/show_bug.cgi?id=163997

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:59 PM Changeset in webkit [207857] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

CMake build fix.

  • PlatformMac.cmake:
  • Shared/WebHitTestResultData.cpp:

(WebKit::WebHitTestResultData::WebHitTestResultData):
Explicitly call AtomicString::string to make the String constructor no longer ambiguous.
It couldn't decide whether to use operator const String& or operator NSString*.

4:42 PM Changeset in webkit [207856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[SOUP] Network process assertion in NetworkDataTask::continueHTTPRedirection
https://bugs.webkit.org/show_bug.cgi?id=163941

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2016-10-25
Reviewed by Michael Catanzaro.

equalLettersIgnoringASCIICase() expects the second argument to be the letters to compare in lowercase, so use
"get" instead of "GET".

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):

4:22 PM Changeset in webkit [207855] by fpizlo@apple.com
  • 16 edits in trunk/Source

HeapTimer should not hardcode all of its subclasses and USE(CF) shouldn't be a bizarre special case
https://bugs.webkit.org/show_bug.cgi?id=163947

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


I want to introduce another HeapTimer. Prior to this change, that would have meant writing
exact copies of that timer's logic for each platform that has a HeapTimer (CF, GLIB, and
EFL). That logic would in turn be a duplicate of the logic already present in
IncrementalSweeper and GCActivityCallback: all of the subclasses of HeapTimer have their
own code for scheduling timers, so a new subclass would have to duplicate that code. Then,
to add insult to injury, the USE(CF) version of HeapTimer would have to have an extra case
for that new subclass since it doesn't use virtual methods effectively.

This changes HeapTimer on USE(CF) to know to get its runloop from Heap and to use virtual
methods effectively so that it doesn't have to know about all of its subclasses.

This also moves IncrementalSweeper's code for scheduling timers into HeapTimer. This means
that future subclasses of HeapTimer could simply use that logic.

This keeps changes to GCActivityCallback to a minimum. It still has a lot of
platform-specific code and I'm not sure that this code can be trivially deduplicated since
that code has more quirks. That's fine for now, since I mainly just need a sane way of
creating new timers that use IncrementalSweeper-like scheduling logic.

  • heap/EdenGCActivityCallback.cpp:
  • heap/EdenGCActivityCallback.h:
  • heap/FullGCActivityCallback.cpp:
  • heap/FullGCActivityCallback.h:
  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::GCActivityCallback):

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::Heap):

  • heap/Heap.h:

(JSC::Heap::runLoop):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::HeapTimer):
(JSC::HeapTimer::setRunLoop):
(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::timerDidFire):
(JSC::HeapTimer::scheduleTimer):
(JSC::HeapTimer::cancelTimer):
(JSC::retainAPILock): Deleted.
(JSC::releaseAPILock): Deleted.

  • heap/HeapTimer.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::cancelTimer): Deleted.

  • heap/IncrementalSweeper.h:

Source/WebCore:

No new tests because no new behavior.

  • platform/ios/WebSafeGCActivityCallbackIOS.h:
  • platform/ios/WebSafeIncrementalSweeperIOS.h:
4:21 PM Changeset in webkit [207854] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[CSS Parser] Improvements to selector parsing
https://bugs.webkit.org/show_bug.cgi?id=163964

Reviewed by Zalan Bujtas.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::setAttribute):
(WebCore::CSSSelector::setNth):

  • css/CSSSelector.h:

(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::StyleSheetContents::ruleAt):
(WebCore::StyleSheetContents::ruleCount):
(WebCore::StyleSheetContents::clearRules):
(WebCore::StyleSheetContents::wrapperInsertRule):
(WebCore::StyleSheetContents::wrapperDeleteRule):

  • css/StyleSheetContents.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::CSSParser::parseSelector):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::setAttribute):
(WebCore::CSSParserSelector::setArgument):
(WebCore::CSSParserSelector::setNth):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::consumeLangArgumentList):
(WebCore::CSSSelectorParser::consumeCompoundSelector):
(WebCore::CSSSelectorParser::consumeAttribute):
(WebCore::isPseudoClassFunction):
(WebCore::isPseudoElementFunction):
(WebCore::CSSSelectorParser::consumePseudo):
(WebCore::CSSSelectorParser::consumeCombinator):

4:01 PM Changeset in webkit [207853] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Numbered list should be represented without ‘…’
https://bugs.webkit.org/show_bug.cgi?id=163992
-and corresponding-
rdar://problem/28911337

Reviewed by Darin Adler.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::insertListTypeNumbered):

3:41 PM Changeset in webkit [207852] by jfbastien@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Remove redundant argument count check

Indexing argument out of bounds already returns jsUndefined().

Remove redundant argument count check
https://bugs.webkit.org/show_bug.cgi?id=163957

Reviewed by Keith Miller.

  • runtime/ErrorConstructor.cpp:

(JSC::Interpreter::constructWithErrorConstructor):
(JSC::Interpreter::callErrorConstructor):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::constructJSWebAssemblyRuntimeError):

3:30 PM Changeset in webkit [207851] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add ThrowScope::release() calls at all call sites of jsMakeNontrivialString().
https://bugs.webkit.org/show_bug.cgi?id=163990

Reviewed by Geoffrey Garen.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):

  • runtime/ErrorPrototype.cpp:

(JSC::errorProtoFuncToString):

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncToString):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncBig):
(JSC::stringProtoFuncSmall):
(JSC::stringProtoFuncBlink):
(JSC::stringProtoFuncBold):
(JSC::stringProtoFuncFixed):
(JSC::stringProtoFuncItalics):
(JSC::stringProtoFuncStrike):
(JSC::stringProtoFuncSub):
(JSC::stringProtoFuncSup):
(JSC::stringProtoFuncFontcolor):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncAnchor):

3:27 PM Changeset in webkit [207850] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Cmd-+ doesn't "zoom in" to increase text size in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=163961
<rdar://problem/28895308>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-25
Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Add a duplicate set of keyboard shortcuts for the Shift variants.

3:19 PM Changeset in webkit [207849] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

JSStringJoiner::joinedLength() should limit joined string lengths to INT_MAX.
https://bugs.webkit.org/show_bug.cgi?id=163937
<rdar://problem/28642990>

Reviewed by Geoffrey Garen.

JSTests:

  • stress/joined-strings-should-not-exceed-max-string-length.js: Added.

Source/JavaScriptCore:

JSStringJoiner::joinedLength() was previously limiting it to UINT_MAX. This is
inconsistent with other parts of string code which expects a max length of INT_MAX.
This is now fixed.

Also fixed jsMakeNontrivialString() to ensure that the resultant string length
is valid. It was previously allowing lengths greater than INT_MAX. This was
caught by the new assertion in JSString::setLength().

There are already pre-existing assertions in various JSString::finishCreation()
which do RELEASE_ASSERTs on the string length. To be consistent, I'm making the
assertion in JSString::setLength() a RELEASE_ASSERT. If this proves to be a
performance issue, I'll change this to a debug ASSERT later.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeInternal8):
(JSC::JSRopeString::resolveRopeInternal8NoSubstring):
(JSC::JSRopeString::resolveRopeInternal16):
(JSC::JSRopeString::resolveRopeInternal16NoSubstring):
(JSC::JSRopeString::resolveRopeToAtomicString):
(JSC::JSRopeString::resolveRopeToExistingAtomicString):
(JSC::JSRopeString::resolveRope):
(JSC::JSRopeString::resolveRopeSlowCase8):
(JSC::JSRopeString::resolveRopeSlowCase):
(JSC::JSString::getStringPropertyDescriptor):

  • runtime/JSString.h:

(JSC::JSString::finishCreation):
(JSC::JSString::length):
(JSC::JSString::isValidLength):
(JSC::JSString::toBoolean):
(JSC::JSString::canGetIndex):
(JSC::JSString::setLength):
(JSC::JSString::getStringPropertySlot):
(JSC::JSRopeString::unsafeView):
(JSC::JSRopeString::viewWithUnderlyingString):

  • runtime/JSStringBuilder.h:

(JSC::jsMakeNontrivialString):

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::joinedLength):

3:11 PM October 2016 Meeting edited by Simon Fraser
Withdrawing my talks. (diff)
3:07 PM Changeset in webkit [207848] by dbates@webkit.org
  • 5 edits
    7 adds in trunk

REGRESSION (r178265): XSS Auditor fails to block document.write() of incomplete tag
https://bugs.webkit.org/show_bug.cgi?id=163978
<rdar://problem/25962131>

Reviewed by Darin Adler.

Source/WebCore:

During the tokenization process of an HTML tag the start and end positions of each of its
attributes is tracked so that the XSS Auditor can request a snippet around a suspected
injected attribute. We need to take care to consider document.write() boundaries when
tracking the start and end positions of each HTML tag and attribute so that the XSS Auditor
receives the correct snippet. Following r178265 we no longer consider document.write()
boundaries when tracking the start and end positions of attributes. So, the substring
represented by the start and end positions of an attribute may correspond to some other
attribute in the tag. Therefore the XSS Auditor may fail to block an injection because the
snippet it requested may not be the snippet that it intended to request.

Tests: http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html

http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html
http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html

  • html/parser/HTMLSourceTracker.cpp:

(WebCore::HTMLSourceTracker::startToken): Set the attribute base offset to be the token
start position.
(WebCore::HTMLSourceTracker::source): Use the specified attribute start position as-is. We no
longer adjust it here because it was adjusted with respect to the attribute base offset, which
takes into account document.write() boundaries.

  • html/parser/HTMLToken.h:

(WebCore::HTMLToken::setAttributeBaseOffset): Added.
(WebCore::HTMLToken::beginAttribute): Subtract attribute base offset from the specified offset.
(WebCore::HTMLToken::endAttribute): Ditto.

  • html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::setTokenAttributeBaseOffset): Added.

LayoutTests:

Add tests to ensure that the XSS Auditor blocks a document.write() of an incomplete HTML image tag.

  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-dom-write-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror-expected.txt: Added.
  • http/tests/security/xssAuditor/nested-dom-write-location-open-img-onerror.html: Added.
  • http/tests/security/xssAuditor/resources/echo-nested-dom-write-location.html: Added.
3:01 PM Changeset in webkit [207847] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

IDBDatabase.transaction() should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163966

Reviewed by Sam Weinig.

IDBDatabase.transaction() should take a union in parameter:

No new tests, no expected Web-exposed behavior change.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::transaction):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
2:48 PM Changeset in webkit [207846] by jfbastien@apple.com
  • 2 edits
    1 add in trunk/JSTests

WebAssembly JS API: simple Module test
https://bugs.webkit.org/show_bug.cgi?id=163963

Reviewed by Filip Pizlo.

  • wasm/LowLevelBinary.js:

(export.default.LowLevelBinary.prototype.get return): get the ArrayBuffer
(export.default.LowLevelBinary.prototype.hexdump): Deleted.
(export.default.LowLevelBinary.prototype._maybeGrow): Deleted.

  • wasm/js-api/test_Module.js: Added.

(EmptyModule): The most basic module possible

2:42 PM Changeset in webkit [207845] by beidson@apple.com
  • 18 edits in trunk

IndexedDB 2.0: Support IDBObjectStore openKeyCursor.
<rdar://problem/28806930> and https://bugs.webkit.org/show_bug.cgi?id=163954

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbobjectstore_openKeyCursor-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests)

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::openKeyCursor):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::currentData): Only grab the current value

if the cursor is KeyAndValue.

  • Modules/indexeddb/server/SQLiteIDBCursor.cpp:

(WebCore::IDBServer::SQLiteIDBCursor::SQLiteIDBCursor):
(WebCore::IDBServer::SQLiteIDBCursor::internalAdvanceOnce): Only save off the data for an

object store cursor if it's both KeyAndValue.

  • Modules/indexeddb/server/SQLiteIDBCursor.h:
  • Modules/indexeddb/shared/IDBCursorInfo.cpp:

(WebCore::IDBCursorInfo::objectStoreCursor): Allow for a KeyOnly ObjectStoreCursor.

  • Modules/indexeddb/shared/IDBCursorInfo.h:

LayoutTests:

  • storage/indexeddb/modern/cursor-1-expected.txt:
  • storage/indexeddb/modern/cursor-1-private-expected.txt:
  • storage/indexeddb/modern/resources/cursor-1.js:
2:31 PM Changeset in webkit [207844] by Michael Catanzaro
  • 6 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/gtk/fast/css/word-space-extra-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/dom/Window/window-properties-performance-expected.txt:
2:30 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:30 PM October 2016 Meeting edited by Wenson Hsieh
(diff)
2:29 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:29 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
2:10 PM Changeset in webkit [207843] by jfbastien@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

WebAssembly: fix unknown section name handling, and check for section size overflow
https://bugs.webkit.org/show_bug.cgi?id=163959

See: https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md#high-level-structure

Name length and name are already included in the payload length.

Reviewed by Filip Pizlo.

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse):

1:33 PM Changeset in webkit [207842] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

jsc.cpp is leaking memory allocated by readline in runInteractive
https://bugs.webkit.org/show_bug.cgi?id=163958

According to http://web.mit.edu/gnu/doc/html/rlman_2.html,
"The line readline returns is allocated with malloc ();
you should free () the line when you are done with it."
The memory allocated by readline is not being freed when it should.

Patch by Christopher Reid <Christopher.Reid@am.sony.com> on 2016-10-25
Reviewed by Mark Lam.

  • jsc.cpp:
1:23 PM Changeset in webkit [207841] by Wenson Hsieh
  • 30 edits
    1 copy
    5 adds in trunk

Support InputEvent.dataTransfer for the InputEvent spec
https://bugs.webkit.org/show_bug.cgi?id=163213
<rdar://problem/28700407>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds support for the dataTransfer attribute of InputEvent, which contains both HTML and plain text
representations of inserted content corresponding to input types "insertFromPaste", "insertFromDrop" and
"insertReplacementText". The specification calls for the data transfer's drag data item list to contain this
information via two entries with type strings "text/html" and "text/plain". However, WebKit does not yet support
the DataTransfer.items -- in lieu of this, we will provide this information for now via getData("text/plain")
and getData("text/html"), respectively.

To support this attribute, we need a special type of DataTransfer which is readonly and returns canned data
given a type string. To implement this, we introduce StaticPasteboard, a type of Pasteboard which is initialized
with a map of type string to data. When asked for its data via getData, the StaticPasteboard searches its map
for the requested type and returns the result, if any.

An editing command may now create a new DataTransfer via DataTransfer::createForInputEvent from HTML and
plaintext strings, and then vend this information to its dispatched input events by overriding
CompositeEditCommand::inputEventDataTransfer.

Some further work will be needed to ensure that all information exposed via this DataTransfer does not contain
hidden content. To do this, we should create a new Document, "paste" the contents of our copied HTML string into
it, then simulate selecting the content and generating markup from the selection to create a sanitized
DocumentFragment corresponding to the original copied HTML. This will be addressed in a future patch.

Tests: fast/events/input-events-paste-rich-datatransfer.html

fast/events/input-events-spell-checking-datatransfer.html

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWin.cmake:

Add StaticPasteboard.cpp.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::DataTransfer):
(WebCore::DataTransfer::createForInputEvent):

Initializes a new DataTransfer for the purposes of input events. This takes a HTML and plain text
representations of the data being inserted and creates a new readonly DataTransfer backed by a StaticPasteboard
that only knows how to map the "text/plain" data type to the given plaintext string and "text/html" to the
given HTML text.

  • dom/DataTransfer.h:
  • dom/InputEvent.cpp:

(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):
(WebCore::InputEvent::dataTransfer):

  • dom/InputEvent.h:
  • dom/InputEvent.idl:

Add the InputEvent.dataTransfer attribute.

  • dom/Node.cpp:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::inputEventDataTransfer):

Add a new hook for CompositeEditCommands to vend a DataTransfer for the purposes of input events. By default,
this is null.

  • editing/CompositeEditCommand.h:
  • editing/Editor.cpp:

(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::dispatchInputEvents):
(WebCore::Editor::willApplyEditing):
(WebCore::Editor::appliedEditing):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::willApplyCommand):
(WebCore::ReplaceRangeWithTextCommand::doApply):
(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer):

  • editing/ReplaceRangeWithTextCommand.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::willApplyCommand):

Initialize the ReplacementFragment here before applying the command, adjusting the DocumentFragment to be
inserted in the process.

(WebCore::ReplaceSelectionCommand::doApply):
(WebCore::ReplaceSelectionCommand::inputEventDataTransfer):
(WebCore::ReplaceSelectionCommand::ensureReplacementFragment):

Returns the ReplacementFragment used to apply the command, initializing it if necessary and stripping extraneous
nodes off of the document fragment in the process. Since ReplaceSelectionCommand may be used as a top-level
editing command or a child of another CompositeEditCommand such as the ReplaceRangeWithTextCommand, the
ReplacementFragment may be initialized either in willApplyCommand or in doApply.

  • editing/ReplaceSelectionCommand.h:
  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::willApplyCommand):
(WebCore::SpellingCorrectionCommand::doApply):
(WebCore::SpellingCorrectionCommand::inputEventDataTransfer):

  • editing/SpellingCorrectionCommand.h:

Using the replacement text fragment, create and return a DataTransfer for input events.

  • platform/Pasteboard.h:
  • platform/StaticPasteboard.cpp: Added.

(WebCore::StaticPasteboard::create):
(WebCore::StaticPasteboard::StaticPasteboard):
(WebCore::StaticPasteboard::hasData):
(WebCore::StaticPasteboard::types):
(WebCore::StaticPasteboard::readString):

  • platform/StaticPasteboard.h: Copied from Source/WebCore/dom/InputEvent.cpp.
  • platform/efl/PasteboardEfl.cpp:

(WebCore::Pasteboard::writeMarkup):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::writeMarkup):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::writeMarkup):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::writeMarkup):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::write):
(WebCore::Pasteboard::read):

To account for virtual methods on Pasteboard, add implementations for methods that were previously defined but
unimplemented on these platforms.

LayoutTests:

Adds 2 new layout tests verifying that input events dispatched as a result of pasting or spell checking contain
DataTransfers that have rich and plain text representations of the contents being inserted.

  • fast/events/input-events-fired-when-typing-expected.txt:
  • fast/events/input-events-fired-when-typing.html:
  • fast/events/input-events-paste-rich-datatransfer-expected.txt: Added.
  • fast/events/input-events-paste-rich-datatransfer.html: Added.
  • fast/events/input-events-spell-checking-datatransfer-expected.txt: Added.
  • fast/events/input-events-spell-checking-datatransfer.html: Added.
  • platform/ios-simulator/TestExpectations:
1:17 PM Changeset in webkit [207840] by aestes@apple.com
  • 8 edits
    5 adds in trunk

Implement rel=noopener
https://bugs.webkit.org/show_bug.cgi?id=155166
<rdar://problem/25193787>

Reviewed by Brent Fulgham.

Source/WebCore:

Added support for rel=noopener to a and area elements.

Tests: fast/dom/Window/a-rel-noopener.html

fast/dom/Window/area-rel-noopener.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::HTMLAnchorElement): Stopped initializing m_linkRelations to 0.
(WebCore::HTMLAnchorElement::parseAttribute): Declared static AtomicStrings for "noreferrer"
and "noopener", and created a SpaceSplitString from the rel attribute value to test for these
two values.
(WebCore::HTMLAnchorElement::hasRel): Updated to use OptionSet::contains().
(WebCore::HTMLAnchorElement::relList): Added a check for "noopener".
(WebCore::HTMLAnchorElement::handleClick): Passed NewFrameOpenerPolicy::Suppress to
FrameLoader::urlSelected() if rel=noopener was specified.

  • html/HTMLAnchorElement.h: Changed the Relation enum to an enum class, removed unused enum

values, and changed m_linkRelations from a 30-bit unsigned integer to an OptionSet<Relation>
(HTMLAnchorElement is still 128 bytes on 64-bit).

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected): Changed to only compute a NewFrameOpenerPolicy from the
referrer policy if an explicit NewFrameOpenerPolicy isn't specified. Removed the version of
urlSelected() that did not take a downloadAttribute parameter.

  • loader/FrameLoader.h: Added an Optional<NewFrameOpenerPolicy> parameter to urlSelected(),

and set a default argument for downloadAttribute instead of having a second version of
urlSelected().

LayoutTests:

  • fast/dom/DOMTokenList-supports-expected.txt:
  • fast/dom/DOMTokenList-supports.html:
  • fast/dom/Window/a-rel-noopener-expected.txt: Added.
  • fast/dom/Window/a-rel-noopener.html: Added.
  • fast/dom/Window/area-rel-noopener-expected.txt: Added.
  • fast/dom/Window/area-rel-noopener.html: Added.
  • fast/dom/Window/resources/rel-noopener.js: Added.
1:08 PM October 2016 Meeting edited by Jon Davis
(diff)
1:07 PM Changeset in webkit [207839] by eric.carlson@apple.com
  • 16 edits in trunk

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Source/WebCore:

Reviewed by Jer Noble.

No new tests, updated fast/mediastream/MediaStream-page-muted.html, media/muted-video-is-playing-audio.html,
and webaudio/web-audio-is-playing.html.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when

actually producing data.

  • page/MediaProducer.h: Add HasMediaCaptureDevice bit.
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
(WebCore::Internals::isPagePlayingAudio): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): Support MediaProducer::HasMediaCaptureDevice.

  • UIProcess/API/C/WKPagePrivate.h: Define kWKMediaHasCaptureDevice.

LayoutTests:

Reviewed by Jer Noble.

  • fast/mediastream/MediaStream-page-muted-expected.txt:
  • fast/mediastream/MediaStream-page-muted.html:
  • media/muted-video-is-playing-audio-expected.txt:
  • media/muted-video-is-playing-audio.html:
  • webaudio/web-audio-is-playing.html:
  • webaudio/web-audio-is-playing-expected.txt:
1:04 PM Changeset in webkit [207838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove dead code in FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=163914

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-25
Reviewed by Brian Burg.

  • UserInterface/Views/FrameTreeElement.js:
1:00 PM October 2016 Meeting edited by Jon Davis
(diff)
12:37 PM Changeset in webkit [207837] by commit-queue@webkit.org
  • 14 edits in trunk

Unreviewed, rolling out r207827 and r207828.
https://bugs.webkit.org/show_bug.cgi?id=163965

Caused LayoutTest webaudio/web-audio-is-playing.html to time
out on macOS. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[MediaStream] Add "has capture device" bit to media state
flags"
https://bugs.webkit.org/show_bug.cgi?id=163952
http://trac.webkit.org/changeset/207827

"[MediaStream] Add "has capture device" bit to media state
flags"
https://bugs.webkit.org/show_bug.cgi?id=163952
http://trac.webkit.org/changeset/207828

12:25 PM Changeset in webkit [207836] by Konstantin Tokarev
  • 2 edits in trunk

[cmake] Don't enable ld.gold by default on non-ELF platforms
https://bugs.webkit.org/show_bug.cgi?id=163946

Reviewed by Alex Christensen.

For example, MinGW toolchain may be shipped with gold, but it fails to link
WebKit.

  • Source/cmake/OptionsCommon.cmake:
12:22 PM Changeset in webkit [207835] by commit-queue@webkit.org
  • 19 edits
    1 copy
    4 adds in trunk

[Modern Media Controls] Media Controller: skip back support
https://bugs.webkit.org/show_bug.cgi?id=163725
<rdar://problem/27989480>

Patch by Antoine Quint <Antoine Quint> on 2016-10-25
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the SkipBackSupport class which brings support for skipping back
30 seconds into the media by clicking on the skip back button in the media controls.

Test: http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/skip-back-support.js: Copied from Source/WebCore/Modules/modern-media-controls/media/media-controller.js.

(SkipBackSupport.prototype.get control):
(SkipBackSupport.prototype.buttonWasClicked):
(SkipBackSupport):

  • WebCore.xcodeproj/project.pbxproj:

Tools:

  • Scripts/webkitpy/layout_tests/servers/aliases.json: Adding a new alias such that we may

access the modern-media-controls source files through the web server.

LayoutTests:

Added a new test for the SkipBackButton class to ensure that we correctly seek back by 30 seconds when pressed.
Updated the other tests to reflect the addition of the SkipBackSupport class.

  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click-expected.txt: Added.
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor.html:
  • media/modern-media-controls/media-controller/media-controller-resize.html:
  • media/modern-media-controls/mute-support/mute-support-button-click.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/mute-support/mute-support-muted.html:
  • media/modern-media-controls/start-support/start-support-audio.html:
  • media/modern-media-controls/start-support/start-support-autoplay.html:
  • media/modern-media-controls/start-support/start-support-click-to-start.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-fullscreen.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/start-support/start-support-no-source.html:
12:22 PM Changeset in webkit [207834] by commit-queue@webkit.org
  • 19 edits in trunk

Unreviewed, rolling out r207578.
https://bugs.webkit.org/show_bug.cgi?id=163962

Broke quip.com so that user can no longer type a space
(Requested by rniwa on #webkit).

Reverted changeset:

"Add a plain space instead of &nbsp; between text nodes"
https://bugs.webkit.org/show_bug.cgi?id=123163
http://trac.webkit.org/changeset/207578

12:20 PM Changeset in webkit [207833] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

LOG_WITH_STREAM() macro should not have a semi colon at the end
https://bugs.webkit.org/show_bug.cgi?id=163951

Reviewed by Simon Fraser.

  • platform/LogMacros.h:
12:17 PM Changeset in webkit [207832] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

IDBObjectStore.createIndex() should take a union in parameter
https://bugs.webkit.org/show_bug.cgi?id=163935

Reviewed by Darin Adler.

IDBObjectStore.createIndex() should take a union in parameter:

No new tests, no expected Web-exposed behavior change.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::isIDBKeyPathValid):
(WebCore::IDBKeyPath::isValid): Deleted.

  • Modules/indexeddb/IDBKeyPath.h:

(WebCore::IDBKeyPath::isNull):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::createIndex):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
12:14 PM Changeset in webkit [207831] by Konstantin Tokarev
  • 4 edits in trunk/Source

[cmake] Check if jscLib and WebKitGUID targets exist before using them
https://bugs.webkit.org/show_bug.cgi?id=163945

Reviewed by Alex Christensen.

Currently these targets are used under WIN32 condition, however they
are defined in PlatformWin.cmake, causing CMake warnings if port
supports WIN32 but does not use PlatformWin.cmake

Source/JavaScriptCore:

  • shell/CMakeLists.txt:

Source/WebKit:

  • CMakeLists.txt:
11:43 AM Changeset in webkit [207830] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

WebCryptoAPI test gardening after r207809.
https://bugs.webkit.org/show_bug.cgi?id=159638

Unreviewed test gardening.

11:35 AM Changeset in webkit [207829] by weinig@apple.com
  • 15 edits in trunk/Source/WebCore

[WebIDL] Move more types over to the new JSConverter based toJS functions
https://bugs.webkit.org/show_bug.cgi?id=163920

Reviewed by Darin Adler.

  • Adds WebIDL-extension type IDLDate, and use it for Date conversions.
  • Move JSDOMIterator over to using IDLType based conversions. Make them more explicit by adding a traits template argument which describes the iterator.
  • Add correct parsing for WebIDL iterable, parsing the parameter types into domTypes.
  • Support non-Optional nullable types via trait-like functions on IDLTypes.
  • bindings/generic/IDLTypes.h:

(WebCore::IDLType::isNullValue):
(WebCore::IDLType::extractValueFromNullable):
(WebCore::IDLString::isNullValue):
(WebCore::IDLString::extractValueFromNullable):
(WebCore::IDLInterface::isNullValue):
(WebCore::IDLInterface::extractValueFromNullable):
(WebCore::IDLDate::isNullValue):
(WebCore::IDLDate::extractValueFromNullable):
Add isNullValue and extractValueFromNullable functions to allow non-Optional
based nullable types.

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::QuickTimePluginReplacement::installReplacement):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::stylePropertyGetter):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::invokeAttributeChangedCallback):
Switch to IDLType based toJS.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringOrNull): Deleted.
(WebCore::jsDateOrNull): Deleted.

  • bindings/js/JSDOMBinding.h:

(WebCore::jsPair): Deleted.
(WebCore::toJSNullableString): Deleted.
Remove now unusued toJS functions.

  • bindings/js/JSDOMConvert.h:

(WebCore::JSConverter<IDLNullable<T>>::convert):
Use new functions to detect and extract nullable values.

(WebCore::Converter<IDLBufferSource>::convert):
Moved to be with the other converters.

(WebCore::Converter<IDLDate>::convert):
(WebCore::JSConverter<IDLDate>::convert):
Added.

  • bindings/js/JSDOMIterator.h:

(WebCore::jsPair):
(WebCore::iteratorCreate):
(WebCore::IteratorTraits>::asJS):
(WebCore::appendForEachArguments):
(WebCore::iteratorForEach):
(WebCore::IteratorTraits>::destroy):
(WebCore::IteratorTraits>::next):
(WebCore::IteratorTraits>::finishCreation):
(WebCore::IteratorInspector::decltype): Deleted.
(WebCore::IteratorInspector::test): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::asJS): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::destroy): Deleted.
(WebCore::JSDOMIterator<JSWrapper>::next): Deleted.
(WebCore::JSDOMIteratorPrototype<JSWrapper>::next): Deleted.
(WebCore::JSDOMIteratorPrototype<JSWrapper>::finishCreation): Deleted.
Switch to new Traits based model, and have the generated code pass in
the type (map or set) and key/value types. With the explicit types known,
we can use the new toJS functions.

Also, moved the jsPair functions here from JSDOMBinding.h, since this was
the only place it was used.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementationIterableFunctions):
Add iterator trait definition and update for new parameters to JSDOMIterator
and JSDOMIteratorPrototype.

(GetBaseIDLType):
Add IDLDate, and move IDLBufferSource up to the simple path.

(JSValueToNativeIsHandledByDOMConvert):
Allow Date.

(JSValueToNative):
Remove special case for Date.

(NativeToJSValueIsHandledByDOMConvert):
Allow Date and remove restriction of nullable string-like types.

(NativeToJSValueDOMConvertNeedsState):
Add Date to list of types needing state.

(NativeToJSValue):
Remove special cases for Date and nullable-strings.

  • bindings/scripts/IDLParser.pm:

(parseOptionalIterableInterface):
Add correct parsing of iterable.

  • bindings/scripts/test/JS/JSTestIterable.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

Update test results.

11:00 AM Changeset in webkit [207828] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit2

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetMediaState): Support MediaProducer::HasMediaCaptureDevice.

  • UIProcess/API/C/WKPagePrivate.h: Define kWKMediaHasCaptureDevice.
10:34 AM Changeset in webkit [207827] by eric.carlson@apple.com
  • 11 edits in trunk

[MediaStream] Add "has capture device" bit to media state flags
https://bugs.webkit.org/show_bug.cgi?id=163952

Reviewed by Jer Noble.

Source/WebCore:

No new tests, updated fast/mediastream/MediaStream-page-muted.html and media/muted-video-is-playing-audio.html.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::mediaState): Set HasMediaCaptureDevice, only set HasActiveMediaCaptureDevice when

actually producing data.

  • page/MediaProducer.h: Add HasMediaCaptureDevice bit.
  • testing/Internals.cpp:

(WebCore::Internals::pageMediaState): Return a string representing MediaStateFlags.
(WebCore::Internals::isPagePlayingAudio): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/mediastream/MediaStream-page-muted-expected.txt:
  • fast/mediastream/MediaStream-page-muted.html:
  • media/muted-video-is-playing-audio-expected.txt:
  • media/muted-video-is-playing-audio.html:
10:27 AM Changeset in webkit [207826] by Konstantin Tokarev
  • 2 edits in trunk

[cmake] Don't add -fPIC flag when on Windows (MinGW)
https://bugs.webkit.org/show_bug.cgi?id=163949

Reviewed by Michael Catanzaro.

-fPIC flag does not do anything on Windows and produces warning noise
with MinGW. There is no position independent code in Unix sense on
32-bit Windows, and 64-bit Windows code is always relocatable.

For reference see
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00836.html

  • Source/cmake/WebKitHelpers.cmake:
10:23 AM Changeset in webkit [207825] by jfbastien@apple.com
  • 30 edits in trunk

WebAssembly JS API: implement Module

This implementation allows us to:

  • Syncrhonously create a WebAssembly.Module with a typed array.
  • Creates a compilation plan.
  • Parse the Module and creates corresponding code.
  • Throw WebAssembly.CompileError with mildly helpful [*] error messages on failure.

Consult the API documentation for expected behavior: https://github.com/WebAssembly/design/blob/master/JS.md#webassemblymodule-constructor

For now the implementation discards the generated code.

The next steps will be:

  • Expose a Module's exports.
  • Implement WebAssembly.Instance, which allows instantiating and running a compiled Module.
  • Beef up the testing infrastructure under JSTests/wasm so that more complex modules can be created and tested (instead of writing the bits by hand).

This patch also:

  • Adds assert.instanceof in assert.js.
  • Refactors Wasm::Parser and friends to accept const uint8_t* as well as a Vector, to avoid copying when invoked synchronously.
  • Remove useless Structure from some of the wasm constructors: they're already on the JSGlobalObject, visited properly and all.
  • Fix off-by-one error in parsing: Parser::parseUInt32 failed if the integer was exactly at end of file.

[*] On error messages while parsing: I filed https://bugs.webkit.org/show_bug.cgi?id=163919

WebAssembly JS API: implement Module
https://bugs.webkit.org/show_bug.cgi?id=163903

Reviewed by Keith Miller.

JSTests:

  • wasm/assert.js: use underscore in name, and remove when exporting to avoid clasing with builtin names

(const._notUndef):
(const._isUndef):
(const._eq):
(const._ge):
(const._throws):

  • wasm/js-api/test_basic_api.js: test the WebAssembly.Module API

(const.c.in.constructorProperties.switch):

Source/JavaScriptCore:

  • runtime/ExceptionHelpers.cpp:

(JSC::defaultSourceAppender): make this public so that WebAssembly can use it: it generates those fancy (evaluating '...') messages at the end

  • runtime/ExceptionHelpers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): remove the useless Structure from the WebAssembly objects (it's already in this file, no need to hold two references and visit them twice)

  • testWasm.cpp:

(runWasmTests): update API

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::parseAndCompile): use updated API

  • wasm/WasmB3IRGenerator.h:
  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::FunctionParser): use updated API
(JSC::Wasm::FunctionParser<Context>::parseExpression): use updated API

  • wasm/WasmModuleParser.cpp:

(JSC::Wasm::ModuleParser::parse): generate error messages

  • wasm/WasmModuleParser.h:

(JSC::Wasm::ModuleParser::ModuleParser):
(JSC::Wasm::ModuleParser::failed):
(JSC::Wasm::ModuleParser::errorMessage):
(JSC::Wasm::ModuleParser::functionInformation):
(JSC::Wasm::ModuleParser::memory):

  • wasm/WasmParser.h: use update non-public API

(JSC::Wasm::Parser::parseVarUInt32):
(JSC::Wasm::Parser::parseVarUInt64):
(JSC::Wasm::Parser::source):
(JSC::Wasm::Parser::length):
(JSC::Wasm::Parser::Parser):
(JSC::Wasm::Parser::consumeCharacter):
(JSC::Wasm::Parser::consumeString):
(JSC::Wasm::Parser::parseUInt32):
(JSC::Wasm::Parser::parseUInt7):

  • wasm/WasmPlan.cpp:

(JSC::Wasm::Plan::Plan):
(JSC::Wasm::Plan::~Plan):

  • wasm/WasmPlan.h:

(JSC::Wasm::Plan::failed):
(JSC::Wasm::Plan::errorMessage):
(JSC::Wasm::Plan::resultSize):
(JSC::Wasm::Plan::result):
(JSC::Wasm::Plan::memory):

  • wasm/js/JSWebAssemblyCompileError.cpp:

(JSC::createWebAssemblyCompileError): makes it easier to throw a WebAssembly.CompileError from Module

  • wasm/js/JSWebAssemblyCompileError.h:
  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::create):
(JSC::WebAssemblyCompileErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyCompileErrorConstructor.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::create):
(JSC::WebAssemblyInstanceConstructor::finishCreation):
(JSC::WebAssemblyInstanceConstructor::visitChildren):

  • wasm/js/WebAssemblyInstanceConstructor.h:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::create):
(JSC::WebAssemblyMemoryConstructor::finishCreation):
(JSC::WebAssemblyMemoryConstructor::visitChildren):

  • wasm/js/WebAssemblyMemoryConstructor.h:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::constructJSWebAssemblyModule):
(JSC::WebAssemblyModuleConstructor::create):
(JSC::WebAssemblyModuleConstructor::finishCreation):
(JSC::WebAssemblyModuleConstructor::visitChildren):

  • wasm/js/WebAssemblyModuleConstructor.h:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::create):
(JSC::WebAssemblyRuntimeErrorConstructor::finishCreation):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.h:
  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::create):
(JSC::WebAssemblyTableConstructor::finishCreation):
(JSC::WebAssemblyTableConstructor::visitChildren):

  • wasm/js/WebAssemblyTableConstructor.h:
10:12 AM Changeset in webkit [207824] by keith_miller@apple.com
  • 6 edits in trunk

Add trivial Wasm conversion opcodes
https://bugs.webkit.org/show_bug.cgi?id=163950

Reviewed by Filip Pizlo.

This patch differentiates between Wasm opcodes that are trivially mapped to a B3 opcode and
those that are not. Some of the Wasm opcodes that are currently a non-simple opcode will
become simple as we add B3 opcodes for Wasm operations. The remaining opcodes will need to
be added via patchpoints in a later patch.

JSTests:

  • wasm/generate-wasmops-header.js:

(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.Wasm.inline.bool.isSimple):

  • wasm/wasm.json:

Source/JavaScriptCore:

  • wasm/WasmB3IRGenerator.cpp:
  • wasm/WasmOps.h:

(JSC::Wasm::isSimple):

9:34 AM Changeset in webkit [207823] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Unreviewed, rolling out r207494.

iOS SDK has been updated on the bots now so rollout the
rollout

Reverted changeset:

"Unreviewed, rolling out r207413."
https://bugs.webkit.org/show_bug.cgi?id=163547
http://trac.webkit.org/changeset/207494

9:26 AM Changeset in webkit [207822] by Jonathan Bedard
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _fullscreenDelegate]): Removed unneeded parenthesis.

9:25 AM Changeset in webkit [207821] by beidson@apple.com
  • 11 edits
    5 adds in trunk

IndexedDB 2.0: Support new IDBTransaction interfaces.
<rdar://problem/28806928> and https://bugs.webkit.org/show_bug.cgi?id=163927

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbobjectstore-rename-abort-expected.txt:
  • web-platform-tests/IndexedDB/idbobjectstore-rename-store-expected.txt:
  • web-platform-tests/IndexedDB/idbtransaction_objectStoreNames-expected.txt:
  • web-platform-tests/IndexedDB/transaction-abort-multiple-metadata-revert-expected.txt:
  • web-platform-tests/IndexedDB/transaction-abort-object-store-metadata-revert-expected.txt:

Source/WebCore:

Tests: storage/indexeddb/modern/idbtransaction-objectstores-1-private.html

storage/indexeddb/modern/idbtransaction-objectstores-1.html
At least partially passing results on 5 previously failed W3C tests.

The "new IDBTransaction interfaces" really just means adding the property IDBTransaction.objectStoreNames.

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStoreNames):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransaction.idl:

LayoutTests:

  • storage/indexeddb/modern/idbtransaction-objectstores-1-expected.txt: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1-private-expected.txt: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1-private.html: Added.
  • storage/indexeddb/modern/idbtransaction-objectstores-1.html: Added.
  • storage/indexeddb/modern/resources/idbtransaction-objectstores-1.js: Added.
8:52 AM Changeset in webkit [207820] by jer.noble@apple.com
  • 9 edits
    6 adds in trunk

Add WKWebView fullscreen delegate SPI
https://bugs.webkit.org/show_bug.cgi?id=163674

Reviewed by Anders Carlsson.

Source/WebKit2:

Add a new SPI property to WKWebView allowing clients to be notified when fullscreen mode enters and exits.

  • UIProcess/API/APIFullscreenClient.h: Added.

(API::FullscreenClient::~FullscreenClient):
(API::FullscreenClient::willEnterFullscreen):
(API::FullscreenClient::didEnterFullscreen):
(API::FullscreenClient::willExitFullscreen):
(API::FullscreenClient::didExitFullscreen):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):
(-[WKWebView _isInFullscreen]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/_WKFullscreenDelegate.h: Added.
  • UIProcess/Cocoa/FullscreenClient.h: Added.

(WebKit::FullscreenClient::~FullscreenClient):

  • UIProcess/Cocoa/FullscreenClient.mm: Added.

(WebKit::FullscreenClient::FullscreenClient):
(WebKit::FullscreenClient::delegate):
(WebKit::FullscreenClient::setDelegate):
(WebKit::FullscreenClient::willEnterFullscreen):
(WebKit::FullscreenClient::didEnterFullscreen):
(WebKit::FullscreenClient::willExitFullscreen):
(WebKit::FullscreenClient::didExitFullscreen):

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::willEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::willExitFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setFullscreenClient):
(WebKit::WebPageProxy::fullScreenManager): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::fullscreenClient):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Add a new API test which verifies that the fullscreen delegate receives notifications.

  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenDelegate.mm:

(-[FullscreenDelegateMessageHandler userContentController:didReceiveScriptMessage:]):
(-[FullscreenDelegateMessageHandler _webViewWillEnterFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewDidEnterFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewWillExitFullscreen:]):
(-[FullscreenDelegateMessageHandler _webViewDidExitFullscreen:]):
(TestWebKitAPI::TEST):

8:52 AM Changeset in webkit [207819] by Konstantin Tokarev
  • 2 edits in trunk/Source/WTF

Non-specialized version of deleteObject should not have template argument
https://bugs.webkit.org/show_bug.cgi?id=163943

Reviewed by Anders Carlsson.

Fixes compilation of GDIObject.h with MinGW

  • wtf/win/GDIObject.h:

(WTF::deleteObject):

8:02 AM Changeset in webkit [207818] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebCore

MediaEndpointConfiguration does not need to be refcounted
https://bugs.webkit.org/show_bug.cgi?id=163888

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-25
Reviewed by Eric Carlson.

No change of behavior.

Updating MediaEndpoint to take a MediaEndpointConfiguration&& instead of a RefPtr<MediaEndpointConfiguration>&&.
This allows ensuring that the configuration is not null and removes the need to ref-count it.

Removing ref-counting from MediaEndpointConfiguration and its related IceServer that is now a struct.
Updated MediaEndpointOwr and mock implementations accordingly.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setConfiguration):

  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/MediaEndpointConfiguration.cpp:

(WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration):

  • platform/mediastream/MediaEndpointConfiguration.h:

(WebCore::MediaEndpointConfiguration::iceServers):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::setConfiguration):
(WebCore::MediaEndpointOwr::ensureTransportAgentAndTransceivers):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:
  • platform/mock/MockMediaEndpoint.h:
7:16 AM Changeset in webkit [207817] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

CachedResourceLoader should set headers of the HTTP request prior checking for the cache
https://bugs.webkit.org/show_bug.cgi?id=163103

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-25
Reviewed by Darin Adler.

No expected change of behavior.

Moved referrer, user-agent, and origin headers setting to CachedResourceRequest/CachedResourceLoader before checking the cache.
This allows simplifying vary header checks and is more inline with the fetch specification.

To compute the referrer value, we need to know whether the request is cross-origin.
A helper function isRequestCrossOrigin is added for that purpose and is also used in CachedResource to set its initial response tainting.

We should disable setting user-agent and origin headers by FrameLoader for subresources since this is now done in CachedResourceLoader.
This could be done as a follow-up patch.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::varyHeaderValuesMatch):
(WebCore::addAdditionalRequestHeadersToRequest): Deleted.
(WebCore::CachedResource::addAdditionalRequestHeaders): Deleted.

  • loader/cache/CachedResource.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::updateForAccessControl):
(WebCore::CachedResourceRequest::updateReferrerOriginAndUserAgentHeaders):
(WebCore::isRequestCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::setOrigin):

5:16 AM Changeset in webkit [207816] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix timeouts in 12 GTK+ unit tests after r207812.

  • NetworkProcess/NetworkProcessCreationParameters.h: Initialize loadThrottleLatency.
3:36 AM Changeset in webkit [207815] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Soup based ports debug build after r207813.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::requestStartedCallback):

3:27 AM Changeset in webkit [207814] by akling@apple.com
  • 52 edits in trunk/Source

More PassRefPtr purging in WebCore.
<https://webkit.org/b/163895>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove PassRefPtr usage in RenderStyle, RenderTheme and Scrollbar, then fix up all the fallout.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::contentToCSSValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertQuotes):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::usesMenuList):
(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):

  • html/InputType.cpp:

(WebCore::InputType::themeSupportsDataListUI):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldHaveSpinButton):
(WebCore::TextFieldInputType::shouldHaveCapsLockIndicator):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadPlugin):

  • page/FrameView.cpp:

(WebCore::FrameView::createScrollbar):

  • page/FrameView.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
(WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath):
(WebCore::PropertyWrapperShape::PropertyWrapperShape):
(WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):

  • platform/PopupMenuClient.h:
  • platform/ScrollView.cpp:

(WebCore::ScrollView::createScrollbar):

  • platform/ScrollView.h:
  • platform/Scrollbar.cpp:

(WebCore::Scrollbar::createNativeScrollbar):

  • platform/Scrollbar.h:
  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::buildReferenceFilter):

  • rendering/FilterEffectRenderer.h:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar):
(WebCore::RenderLayer::createLocalTransformState):
(WebCore::RenderLayer::hitTestLayerByApplyingTransform):

  • rendering/RenderLayer.h:
  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderListBox.h:
  • rendering/RenderMenuList.cpp:

(RenderMenuList::createScrollbar):

  • rendering/RenderMenuList.h:
  • rendering/RenderScrollbar.cpp:

(WebCore::RenderScrollbar::createCustomScrollbar):

  • rendering/RenderScrollbar.h:
  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::createScrollbar):

  • rendering/RenderSearchField.h:
  • rendering/RenderTheme.h:

(WebCore::RenderTheme::defaultTheme):

  • rendering/RenderThemeEfl.cpp:

(WebCore::RenderThemeEfl::create):
(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeEfl.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderTheme::themeForPage):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::setWidget):

  • rendering/RenderWidget.h:
  • rendering/style/CursorData.h:

(WebCore::CursorData::CursorData):
(WebCore::CursorData::setImage):

  • rendering/style/FillLayer.h:

(WebCore::FillLayer::setImage):

  • rendering/style/QuotesData.cpp:

(WebCore::QuotesData::create):

  • rendering/style/QuotesData.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::addCursor):
(WebCore::RenderStyle::setCursorList):
(WebCore::RenderStyle::setQuotes):
(WebCore::RenderStyle::setWillChange):
(WebCore::RenderStyle::setContent):
(WebCore::RenderStyle::setListStyleImage):
(WebCore::RenderStyle::setBorderImageSource):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setMaskImage):
(WebCore::RenderStyle::setMaskBoxImageSource):
(WebCore::RenderStyle::setBoxReflect):
(WebCore::RenderStyle::setShapeOutside):
(WebCore::RenderStyle::setClipPath):

  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::cssValue):

  • rendering/style/StyleCachedImage.h:
  • rendering/style/StyleGeneratedImage.cpp:

(WebCore::StyleGeneratedImage::cssValue):

  • rendering/style/StyleGeneratedImage.h:
  • rendering/style/StyleImage.h:
  • rendering/style/StyleMultiColData.h:
  • rendering/style/StyleRareInheritedData.h:

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.h:
  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar):

3:25 AM Changeset in webkit [207813] by Carlos Garcia Campos
  • 20 edits
    3 copies
    3 adds in trunk/Source/WebKit2

NetworkSession: switch to use subclasses for NetworkSession and NetworkDataTask implementations
https://bugs.webkit.org/show_bug.cgi?id=163777

Reviewed by Alex Christensen.

The subclass model allows us to choose the implementation at run time, so we could add other implementations
like a mock network class to measure performance, and even one for blobs and finally get rid of ResourceHandle
in WebKit2.

  • CMakeLists.txt: Add new files to compilation.
  • NetworkProcess/NetworkDataTask.cpp: Added.

(WebKit::NetworkDataTask::create): Create a NetworkDataTaskCocoa or NetworkDataTaskSoup.
(WebKit::NetworkDataTask::NetworkDataTask): Move common code from NetworkDataTaskCocoa and NetworkDataTaskSoup
here to handle the early failures.
(WebKit::NetworkDataTask::~NetworkDataTask):
(WebKit::NetworkDataTask::scheduleFailure):
(WebKit::NetworkDataTask::failureTimerFired):

  • NetworkProcess/NetworkDataTask.h: Remove platform specific members.

(WebKit::NetworkDataTask::setPendingDownloadLocation): Make it virtual and set the m_pendingDownloadLocation.
(WebKit::NetworkDataTask::suggestedFilename): Make it virtual and const with a default implementation.
(WebKit::NetworkDataTask::setSuggestedFilename): Ditto.
(WebKit::NetworkDataTask::allowsSpecificHTTPSCertificateForHost): Ditto.

  • NetworkProcess/NetworkLoad.cpp: Include NetworkDataTaskCocoa.h.
  • NetworkProcess/NetworkLoad.h: Include NetworkDataTask.h instead of NetworkSession.h.
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess): Use NetworkSessionCocoa.

  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::create): Create a NetworkSessionCocoa or NetworkSessionSoup.
(WebKit::NetworkSession::defaultSession): In case of cocoa use NetworkSessionCocoa::defaultSession() because of
the custom protocol manager, otherwise simply create a default session.
(WebKit::NetworkSession::networkStorageSession): Move common code from NetworkSessionCocoa and
NetworkSessionSoup here.
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):

  • NetworkProcess/NetworkSession.h: Remove platform specific members.

(WebKit::NetworkSession::invalidateAndCancel): Make it virtual.
(WebKit::NetworkSession::clearCredentials): Ditto.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: Include NetworkSession.h.
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h: Added.
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::didSendData):
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):
(WebKit::NetworkDataTaskCocoa::didCompleteWithError):
(WebKit::NetworkDataTaskCocoa::didReceiveResponse):
(WebKit::NetworkDataTaskCocoa::didReceiveData):
(WebKit::NetworkDataTaskCocoa::didBecomeDownload):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::setPendingDownloadLocation):
(WebKit::NetworkDataTaskCocoa::tryPasswordBasedAuthentication):
(WebKit::NetworkDataTaskCocoa::transferSandboxExtensionToDownload):
(WebKit::NetworkDataTaskCocoa::allowsSpecificHTTPSCertificateForHost):
(WebKit::NetworkDataTaskCocoa::suggestedFilename):
(WebKit::NetworkDataTaskCocoa::cancel):
(WebKit::NetworkDataTaskCocoa::resume):
(WebKit::NetworkDataTaskCocoa::suspend):
(WebKit::NetworkDataTaskCocoa::state):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/cocoa/NetworkSessionCocoa.h: Added.
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate initWithNetworkSession:withCredentials:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::configurationForSessionID):
(WebKit::NetworkSessionCocoa::setCustomProtocolManager):
(WebKit::NetworkSessionCocoa::setSourceApplicationAuditTokenData):
(WebKit::NetworkSessionCocoa::setSourceApplicationBundleIdentifier):
(WebKit::NetworkSessionCocoa::setSourceApplicationSecondaryIdentifier):
(WebKit::NetworkSessionCocoa::setCTDataConnectionServiceType):
(WebKit::NetworkSessionCocoa::create):
(WebKit::NetworkSessionCocoa::defaultSession):
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::~NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::clearCredentials):
(WebKit::NetworkSessionCocoa::dataTaskForIdentifier):
(WebKit::NetworkSessionCocoa::addDownloadID):
(WebKit::NetworkSessionCocoa::downloadID):
(WebKit::NetworkSessionCocoa::takeDownloadID):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession):

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::~NetworkDataTaskSoup):
(WebKit::NetworkDataTaskSoup::suggestedFilename):
(WebKit::NetworkDataTaskSoup::setPendingDownloadLocation):
(WebKit::NetworkDataTaskSoup::createRequest):
(WebKit::NetworkDataTaskSoup::clearRequest):
(WebKit::NetworkDataTaskSoup::resume):
(WebKit::NetworkDataTaskSoup::suspend):
(WebKit::NetworkDataTaskSoup::cancel):
(WebKit::NetworkDataTaskSoup::invalidateAndCancel):
(WebKit::NetworkDataTaskSoup::state):
(WebKit::NetworkDataTaskSoup::timeoutFired):
(WebKit::NetworkDataTaskSoup::startTimeout):
(WebKit::NetworkDataTaskSoup::stopTimeout):
(WebKit::NetworkDataTaskSoup::sendRequestCallback):
(WebKit::NetworkDataTaskSoup::didSendRequest):
(WebKit::NetworkDataTaskSoup::didReceiveResponse):
(WebKit::NetworkDataTaskSoup::tlsErrorsChangedCallback):
(WebKit::NetworkDataTaskSoup::tlsErrorsChanged):
(WebKit::NetworkDataTaskSoup::applyAuthenticationToRequest):
(WebKit::NetworkDataTaskSoup::authenticateCallback):
(WebKit::NetworkDataTaskSoup::authenticate):
(WebKit::NetworkDataTaskSoup::continueAuthenticate):
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirectionCallback):
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirection):
(WebKit::NetworkDataTaskSoup::didFinishSkipInputStreamForRedirection):
(WebKit::NetworkDataTaskSoup::shouldStartHTTPRedirection):
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
(WebKit::NetworkDataTaskSoup::readCallback):
(WebKit::NetworkDataTaskSoup::read):
(WebKit::NetworkDataTaskSoup::didRead):
(WebKit::NetworkDataTaskSoup::didFinishRead):
(WebKit::NetworkDataTaskSoup::requestNextPartCallback):
(WebKit::NetworkDataTaskSoup::requestNextPart):
(WebKit::NetworkDataTaskSoup::didRequestNextPart):
(WebKit::NetworkDataTaskSoup::didFinishRequestNextPart):
(WebKit::NetworkDataTaskSoup::gotHeadersCallback):
(WebKit::NetworkDataTaskSoup::didGetHeaders):
(WebKit::NetworkDataTaskSoup::wroteBodyDataCallback):
(WebKit::NetworkDataTaskSoup::didWriteBodyData):
(WebKit::NetworkDataTaskSoup::download):
(WebKit::NetworkDataTaskSoup::writeDownloadCallback):
(WebKit::NetworkDataTaskSoup::writeDownload):
(WebKit::NetworkDataTaskSoup::didWriteDownload):
(WebKit::NetworkDataTaskSoup::didFinishDownload):
(WebKit::NetworkDataTaskSoup::didFailDownload):
(WebKit::NetworkDataTaskSoup::cleanDownloadFiles):
(WebKit::NetworkDataTaskSoup::didFail):
(WebKit::NetworkDataTaskSoup::networkEventCallback):
(WebKit::NetworkDataTaskSoup::networkEvent):
(WebKit::NetworkDataTaskSoup::startingCallback):
(WebKit::NetworkDataTaskSoup::requestStartedCallback):
(WebKit::NetworkDataTaskSoup::didStartRequest):
(WebKit::NetworkDataTaskSoup::restartedCallback):
(WebKit::NetworkDataTaskSoup::didRestart):

  • NetworkProcess/soup/NetworkDataTaskSoup.h: Added.
  • NetworkProcess/soup/NetworkSessionSoup.cpp:

(WebKit::NetworkSessionSoup::NetworkSessionSoup):
(WebKit::NetworkSessionSoup::~NetworkSessionSoup):
(WebKit::NetworkSessionSoup::soupSession):
(WebKit::NetworkSessionSoup::invalidateAndCancel):

  • NetworkProcess/soup/NetworkSessionSoup.h: Added.
  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:

(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API.

  • PlatformEfl.cmake: Add new files to compilation.
  • PlatformGTK.cmake: Ditto.
  • WebKit2.xcodeproj/project.pbxproj: Ditto.
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Update to new NetworkSession::create() API.

  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:

(WebKit::WebFrameNetworkingContext::ensurePrivateBrowsingSession): Ditto.

1:22 AM Changeset in webkit [207812] by Antti Koivisto
  • 8 edits in trunk/Source/WebKit2

Add support for introducing simulated latency in network process
https://bugs.webkit.org/show_bug.cgi?id=163902

Reviewed by Alex Christensen.

For testing purposes it is useful to have a mechanism for simulating high latency.
This patch adds a basic mechanism that introduces a delay to each response in network
process. In Safari it can be used with

defaults write com.apple.Safari WebKitNetworkLoadThrottleLatencyMilliseconds 200

Setting the delay to 0 disables the feature.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::Throttle::Throttle):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::throttleDelayCompleted):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::loadThrottleLatency):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):

12:01 AM Changeset in webkit [207811] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebase test after r207805
https://bugs.webkit.org/show_bug.cgi?id=163929

  • fetch/fetch-url-serialization-expected.txt:

Oct 24, 2016:

11:18 PM Changeset in webkit [207810] by rniwa@webkit.org
  • 10 edits
    4 adds in trunk

Custom elements reactions should have a queue per element
https://bugs.webkit.org/show_bug.cgi?id=163878

Reviewed by Antti Koivisto.

Source/WebCore:

This patch splits the custom elements reaction queue into per element to match the latest HTML specifications:
https://html.spec.whatwg.org/multipage/scripting.html#custom-element-reaction-queue
and introduces the backup element queue:
https://html.spec.whatwg.org/multipage/scripting.html#backup-element-queue

In terms of code changes, CustomElementReactionStack now holds onto ElementQueue, an ordered list of elements,
and make each ElementRareData keep its own CustomElementReactionQueue. CustomElementReactionQueue is created
for each custom element when it is synchronously constructed or enqueued to upgrade.

Because each reaction queue is now specific to each element, CustomElementReactionQueue instead of
CustomElementReactionQueueItem stores JSCustomElementInterface.

The backup element queue is created as a singleton returned by CustomElementReactionStack's backupElementQueue,
and ensureBackupQueue() schedules a new mirotask to process the backup queue when there isn't already one.

ensureCurrentQueue() now returns a reference to CustomElementReactionQueue instead of a pointer since it can
fallback to the backup queue when the stack is empty as specified:
https://html.spec.whatwg.org/multipage/scripting.html#enqueue-an-element-on-the-appropriate-element-queue

Note that ensureCurrentQueue() may insert the same element multiple times into the element queue for now since
avoiding this duplication would require either doing O(n) iteration on m_elements or adding a HashSet.
We can revisit this in the future if the reaction queue is found to grow beyond a few entries since elements in
the element queue will have duplicates only when each reaction queue has more than one item.

Tests: fast/custom-elements/backup-element-queue.html

fast/custom-elements/custom-element-reaction-queue.html

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::upgradeElement):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueueItem::CustomElementReactionQueueItem):
(WebCore::CustomElementReactionQueueItem::invoke): Removed the check for isFailedCustomElement since the queue
is explicitly cleared in Element::setIsFailedCustomElement.
(WebCore::CustomElementReactionQueue::CustomElementReactionQueue): Now takes JSCustomElementInterface since
each item in the queue no longer stores Element or JSCustomElementInterface.
(WebCore::CustomElementReactionQueue::clear):
(WebCore::CustomElementReactionQueue::enqueueElementUpgrade):
(WebCore::CustomElementReactionQueue::enqueueElementUpgradeIfDefined):
(WebCore::CustomElementReactionQueue::enqueueConnectedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueDisconnectedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueAdoptedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueueAttributeChangedCallbackIfNeeded):
(WebCore::CustomElementReactionQueue::enqueuePostUpgradeReactions):
(WebCore::CustomElementReactionQueue::invokeAll):
(WebCore::CustomElementReactionStack::ElementQueue::add): Added.
(WebCore::CustomElementReactionStack::ElementQueue::invokeAll): Added.
(WebCore::CustomElementReactionStack::ensureCurrentQueue):
(WebCore::BackupElementQueueMicrotask): Added.
(WebCore::CustomElementReactionStack::ensureBackupQueue): Added.
(WebCore::CustomElementReactionStack::processBackupQueue): Added.
(WebCore::CustomElementReactionStack::backupElementQueue): Added.

  • dom/CustomElementReactionQueue.h:
  • dom/CustomElementRegistry.cpp:

(WebCore::enqueueUpgradeInShadowIncludingTreeOrder):

  • dom/Document.cpp:

(WebCore::createFallbackHTMLElement):

  • dom/Element.cpp:

(WebCore::Element::setIsDefinedCustomElement): Create a new reaction queue if there isn't already one; when
this element had been upgraded, the reaction queue have already been created in Element::enqueueToUpgrade.
(WebCore::Element::setIsFailedCustomElement): Clear the reaction queue when the upgrading had failed.
(WebCore::Element::enqueueToUpgrade): Added.
(WebCore::Element::reactionQueue): Added.

  • dom/Element.h:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::customElementReactionQueue): Replaced customElementInterface.
(WebCore::ElementRareData::setCustomElementReactionQueue): Replaced setCustomElementReactionQueue.

LayoutTests:

Added a W3C style testharness.js test for making sure the custom element reaction queue exists per element,
and added a WebKit style test for making sure that the backup element queue exists.

  • fast/custom-elements/backup-element-queue-expected.txt: Added.
  • fast/custom-elements/backup-element-queue.html: Added.
  • fast/custom-elements/custom-element-reaction-queue-expected.txt: Added.
  • fast/custom-elements/custom-element-reaction-queue.html: Added.
11:07 PM Changeset in webkit [207809] by jiewen_tan@apple.com
  • 92 edits
    10 copies
    48 adds in trunk

Update SubtleCrypto::generateKey to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=163718
<rdar://problem/28864380>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • WebCryptoAPI/generateKey/test_aes-cbc-expected.txt:
  • WebCryptoAPI/generateKey/test_aes-cbc.html:
  • WebCryptoAPI/generateKey/test_aes-ctr-expected.txt:
  • WebCryptoAPI/generateKey/test_aes-ctr.html:
  • WebCryptoAPI/generateKey/test_failures-expected.txt:
  • WebCryptoAPI/generateKey/test_failures.html:
  • WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_AES-CBC.html:
  • WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_AES-CTR.html:
  • WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_AES-GCM.html:
  • WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_AES-KW.html:
  • WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_ECDH.html:
  • WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_ECDSA.html:
  • WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_HMAC.html:
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html:
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS.html:
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt:
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html:
  • WebCryptoAPI/generateKey/test_successes-expected.txt:
  • WebCryptoAPI/generateKey/test_successes.html:
  • WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_AES-CBC.html:
  • WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_AES-CTR.html:
  • WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_AES-GCM.html:
  • WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_AES-KW.html:
  • WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_ECDH.html:
  • WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_ECDSA.html:
  • WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_HMAC.html:
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html:
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS.html:
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt:
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html:
  • WebCryptoAPI/idlharness-expected.txt:

Source/WebCore:

This patch does following few things:

  1. It updates the SubtleCrypto::generateKey method to match the latest spec: https://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-generateKey. It also refers to the latest Editor's Draft at a certain degree: https://w3c.github.io/webcrypto/Overview.html#SubtleCrypto-method-generateKey.
  2. It implements generateKey operations of following algorithms: AES-CBC, AES-KW, HMAC, RSAES-PKCS1-V1_5, RSASSA-PKCS1-V1_5, and RSA-OAEP.
  3. It replaces SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS with

SPECIALIZE_TYPE_TRAITS_CRYPTO_ALGORITHM_PARAMETERS_DEPRECATED for deprecated params.

  1. It fixes https://bugs.webkit.org/show_bug.cgi?id=129750 as well.

Tests: crypto/subtle/aes-cbc-generate-key-length-128.html

crypto/subtle/aes-cbc-generate-key-length-192.html
crypto/subtle/aes-cbc-generate-key-length-256.html
crypto/subtle/aes-generate-key-malformed-parameters.html
crypto/subtle/aes-kw-generate-key.html
crypto/subtle/generate-key-malformed-paramters.html
crypto/subtle/hmac-generate-key-customized-length.html
crypto/subtle/hmac-generate-key-hash-object.html
crypto/subtle/hmac-generate-key-malformed-parameters.html
crypto/subtle/hmac-generate-key-sha1.html
crypto/subtle/hmac-generate-key-sha224.html
crypto/subtle/hmac-generate-key-sha256.html
crypto/subtle/hmac-generate-key-sha384.html
crypto/subtle/hmac-generate-key-sha512.html
crypto/subtle/rsa-generate-key-malformed-parameters.html
crypto/subtle/rsa-oaep-generate-key.html
crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html
crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html
crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html
crypto/webkitSubtle/hmac-generate-key.html:
crypto/workers/subtle/aes-generate-key.html
crypto/workers/subtle/hmac-generate-key.html
crypto/workers/subtle/rsa-generate-key.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/encryptedmedia/CDMSessionClearKey.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSSubtleCryptoCustom.cpp: Added.

(WebCore::toHashIdentifier):
(WebCore::normalizeCryptoAlgorithmParameters):
(WebCore::cryptoKeyUsagesFromJSValue):
(WebCore::createAlgorithm):
(WebCore::rejectWithException):
(WebCore::jsSubtleCryptoFunctionGenerateKeyPromise):
(WebCore::JSSubtleCrypto::generateKey):

  • bindings/js/JSWebKitSubtleCryptoCustom.cpp:

(WebCore::JSWebKitSubtleCrypto::generateKey):

  • crypto/CryptoAlgorithm.cpp:

(WebCore::CryptoAlgorithm::generateKey):

  • crypto/CryptoAlgorithm.h:
  • crypto/CryptoAlgorithmParameters.h: Added.

(WebCore::CryptoAlgorithmParameters::CryptoAlgorithmParameters):
(WebCore::CryptoAlgorithmParameters::~CryptoAlgorithmParameters):
(WebCore::CryptoAlgorithmParameters::parametersClass):

  • crypto/CryptoAlgorithmParameters.idl: Added.
  • crypto/CryptoAlgorithmParametersDeprecated.h:
  • crypto/CryptoKey.cpp:

(WebCore::CryptoKey::setUsagesBitmap):

  • crypto/CryptoKey.h:
  • crypto/CryptoKeyPair.idl:
  • crypto/SubtleCrypto.idl:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::generateKey):

  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::generateKey):

  • crypto/algorithms/CryptoAlgorithmAES_KW.h:
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::generateKey):

  • crypto/algorithms/CryptoAlgorithmHMAC.h:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::generateKey):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
  • crypto/gnutls/CryptoKeyRSAGnuTLS.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • crypto/keys/CryptoKeyAES.cpp:

(WebCore::CryptoKeyAES::generate):

  • crypto/keys/CryptoKeyHMAC.cpp:

(WebCore::CryptoKeyHMAC::generate):

  • crypto/keys/CryptoKeyRSA.h:
  • crypto/mac/CryptoKeyRSAMac.cpp:

(WebCore::CryptoKeyRSA::generatePair):

  • crypto/parameters/AesKeyGenParams.idl: Added.
  • crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmAesKeyGenParams.h: Added.
  • crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmHmacKeyGenParams.h: Added.
  • crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h: Added.
  • crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h: Added.

(WebCore::CryptoAlgorithmRsaKeyGenParams::arrayToVector):

  • crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h:
  • crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h:
  • crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h:
  • crypto/parameters/HmacKeyGenParams.idl: Added.
  • crypto/parameters/RsaHashedKeyGenParams.idl: Added.
  • crypto/parameters/RsaKeyGenParams.idl: Added.

LayoutTests:

Besides adding tests for SubtleCrypto::generateKey related stuff and fixing HMAC. This patch also add
shouldReject(_a, _rejectCallback, _resolveCallback, _message) in js-test-pre.js.

  • TestExpectations:
  • crypto/subtle/aes-cbc-generate-key-length-128-expected.txt: Added.
  • crypto/subtle/aes-cbc-generate-key-length-128.html: Added.
  • crypto/subtle/aes-cbc-generate-key-length-192-expected.txt: Added.
  • crypto/subtle/aes-cbc-generate-key-length-192.html: Added.
  • crypto/subtle/aes-cbc-generate-key-length-256-expected.txt: Added.
  • crypto/subtle/aes-cbc-generate-key-length-256.html: Added.
  • crypto/subtle/aes-generate-key-malformed-parameters-expected.txt: Added.
  • crypto/subtle/aes-generate-key-malformed-parameters.html: Added.
  • crypto/subtle/aes-kw-generate-key-expected.txt: Added.
  • crypto/subtle/aes-kw-generate-key.html: Added.
  • crypto/subtle/generate-key-malformed-paramters-expected.txt: Added.
  • crypto/subtle/generate-key-malformed-paramters.html: Added.
  • crypto/subtle/hmac-generate-key-customized-length-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-customized-length.html: Added.
  • crypto/subtle/hmac-generate-key-hash-object-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-hash-object.html: Added.
  • crypto/subtle/hmac-generate-key-malformed-parameters-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-malformed-parameters.html: Added.
  • crypto/subtle/hmac-generate-key-sha1-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-sha1.html: Added.
  • crypto/subtle/hmac-generate-key-sha224-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-sha224.html: Added.
  • crypto/subtle/hmac-generate-key-sha256-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-sha256.html: Added.
  • crypto/subtle/hmac-generate-key-sha384-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-sha384.html: Added.
  • crypto/subtle/hmac-generate-key-sha512-expected.txt: Added.
  • crypto/subtle/hmac-generate-key-sha512.html: Added.
  • crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Added.
  • crypto/subtle/rsa-generate-key-malformed-parameters.html: Added.
  • crypto/subtle/rsa-oaep-generate-key-expected.txt: Added.
  • crypto/subtle/rsa-oaep-generate-key.html: Added.
  • crypto/subtle/rsaes-pkcs1-v1_5-generate-key-expected.txt: Added.
  • crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable-expected.txt: Added.
  • crypto/subtle/rsaes-pkcs1-v1_5-generate-key-extractable.html: Added.
  • crypto/subtle/rsaes-pkcs1-v1_5-generate-key.html: Added.
  • crypto/subtle/rsassa-pkcs1-v1_5-generate-key-expected.txt: Added.
  • crypto/subtle/rsassa-pkcs1-v1_5-generate-key.html: Added.
  • crypto/webkitSubtle/hmac-generate-key-expected.txt:
  • crypto/webkitSubtle/hmac-generate-key.html:
  • crypto/workers/subtle/aes-generate-key-expected.txt: Added.
  • crypto/workers/subtle/aes-generate-key.html: Added.
  • crypto/workers/subtle/hmac-generate-key-expected.txt: Added.
  • crypto/workers/subtle/hmac-generate-key.html: Added.
  • crypto/workers/subtle/resources/aes-generate-key.js: Added.
  • crypto/workers/subtle/resources/hmac-generate-key.js: Added.
  • crypto/workers/subtle/resources/rsa-generate-key.js: Added.
  • crypto/workers/subtle/rsa-generate-key-expected.txt: Added.
  • crypto/workers/subtle/rsa-generate-key.html: Added.
  • resources/js-test-pre.js:
10:26 PM Changeset in webkit [207808] by achristensen@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/ANGLE

Remove unused ANGLE.vcxproj after switching to CMake on Windows

  • ANGLE.vcxproj: Removed.
  • ANGLE.vcxproj/ANGLERelease.props: Removed.
  • ANGLE.vcxproj/DirectX32.props: Removed.
  • ANGLE.vcxproj/DirectX64.props: Removed.
  • ANGLE.vcxproj/libEGL.vcxproj: Removed.
  • ANGLE.vcxproj/libEGL.vcxproj.filters: Removed.
  • ANGLE.vcxproj/libEGLCommon.props: Removed.
  • ANGLE.vcxproj/libGLESv2.vcxproj: Removed.
  • ANGLE.vcxproj/libGLESv2.vcxproj.filters: Removed.
  • ANGLE.vcxproj/libGLESv2Common.props: Removed.
  • ANGLE.vcxproj/preprocessor.vcxproj: Removed.
  • ANGLE.vcxproj/preprocessor.vcxproj.filters: Removed.
  • ANGLE.vcxproj/translatorCommon.props: Removed.
  • ANGLE.vcxproj/translator_common.vcxproj: Removed.
  • ANGLE.vcxproj/translator_common.vcxproj.filters: Removed.
  • ANGLE.vcxproj/translator_glsl.vcxproj: Removed.
  • ANGLE.vcxproj/translator_glsl.vcxproj.filters: Removed.
  • ANGLE.vcxproj/translator_hlsl.vcxproj: Removed.
  • ANGLE.vcxproj/translator_hlsl.vcxproj.filters: Removed.
10:22 PM Changeset in webkit [207807] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r206410): Sandbox violations beneath WebProcessProxy::platformIsBeingDebugged
https://bugs.webkit.org/show_bug.cgi?id=163879
<rdar://problem/28728735>

Reviewed by Darin Adler.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformIsBeingDebugged): Check if the current process, which is

the UI process, is sandboxed before trying to find out if the Web process is being
debugged.

10:16 PM Changeset in webkit [207806] by Chris Dumez
  • 19 edits
    1 delete in trunk

IDBDatabase.createObjectStore() should take a IDBObjectStoreParameters dictionary in parameter
https://bugs.webkit.org/show_bug.cgi?id=163916

Reviewed by Darin Adler.

Source/WebCore:

IDBDatabase.createObjectStore() should take a IDBObjectStoreParameters dictionary in parameter:

Align our IDL with the specification.

No new tests, no expected Web-exposed behavior change.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::createObjectStore):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::IDBKeyPath):

  • Modules/indexeddb/IDBKeyPath.h:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue): Deleted.

  • bindings/js/IDBBindingUtilities.h:
  • bindings/js/JSIDBDatabaseCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(GenerateConstructorDefinition):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):

  • dom/MessageEvent.h:
  • testing/TypeConversions.h:

(WebCore::TypeConversions::setTypeConversionsDictionary):

LayoutTests:

Rebaseline existing tests now that the exception messages differ slightly.

  • storage/indexeddb/create-object-store-options-expected.txt:
  • storage/indexeddb/create-object-store-options-private-expected.txt:
9:40 PM Changeset in webkit [207805] by achristensen@apple.com
  • 11 edits in trunk

URLParser should match old URL::parse with %2E in path
https://bugs.webkit.org/show_bug.cgi?id=163929

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

Covered by updated API tests, which show that URLParser now matches URL::parse in these cases.
Also covered by newly failing web platform tests, which were failing before URLParser was enabled.
If https://github.com/whatwg/url/issues/87 is resolved we can change behavior to match.

  • platform/URLParser.cpp:

(WebCore::URLParser::isSingleDotPathSegment):
(WebCore::URLParser::isDoubleDotPathSegment):
(WebCore::URLParser::consumeSingleDotPathSegment):
(WebCore::URLParser::consumeDoubleDotPathSegment):
(WebCore::URLParser::parse):
(WebCore::URLParser::isPercentEncodedDot): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/path-expected.txt:
  • fast/url/standard-url-expected.txt:
9:19 PM Changeset in webkit [207804] by Alan Bujtas
  • 11 edits
    2 adds in trunk

Do not update selection rect on dirty lineboxes.
https://bugs.webkit.org/show_bug.cgi?id=163862
<rdar://problem/28813156>

Reviewed by Simon Fraser.

Source/WebCore:

In certain cases RenderBlock::updateFirstLetter() triggers
unwanted render tree mutation while the caller assumes intact renderers.
This patch ensures that no renderers gets destroyed while computing the preferred widths
when we are outside of layout context.

Test: fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::computePreferredLogicalWidths):
(WebCore::RenderBlock::updateFirstLetter):

  • rendering/RenderBlock.h:
  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::updateFirstLetter):

  • rendering/RenderRubyRun.h:
  • rendering/RenderTable.cpp:

(WebCore::RenderTable::updateFirstLetter):

  • rendering/RenderTable.h:
  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::updateFirstLetter):

  • rendering/svg/RenderSVGText.h:

LayoutTests:

  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash-expected.txt: Added.
  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html: Added.
8:46 PM Changeset in webkit [207803] by Ryan Haddad
  • 12 edits in trunk

Unreviewed, rolling out r207795.

Introduced API test failures on iOS and macOS.

Reverted changeset:

"URLParser should match old URL::parse with %2E in path"
https://bugs.webkit.org/show_bug.cgi?id=163929
http://trac.webkit.org/changeset/207795

8:23 PM Changeset in webkit [207802] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebKit2

Merge r206762. rdar://problem/28544885

8:23 PM Changeset in webkit [207801] by matthew_hanson@apple.com
  • 23 edits in branches/safari-602-branch/Source

Merge r204472. rdar://problem/28544885

8:23 PM Changeset in webkit [207800] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

7:55 PM Changeset in webkit [207799] by Yusuke Suzuki
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix Windows build after r207787
https://bugs.webkit.org/show_bug.cgi?id=163657

Make the constructor public in DOMJIT::AbstractHeapRepository to make Windows bot green.
It's a bit unfortunate that we need to introduce a workaround here.

  • domjit/DOMJITAbstractHeapRepository.h:
7:35 PM Changeset in webkit [207798] by Yusuke Suzuki
  • 26 edits
    1 add in trunk

Arrow functions with concise bodies cannot return regular expressions
https://bugs.webkit.org/show_bug.cgi?id=163162

Reviewed by Filip Pizlo.

JSTests:

  • ChakraCore/test/Operators/instanceof.baseline-jsc:
  • ChakraCore/test/Regex/nul_character.baseline-jsc:
  • ChakraCore/test/es5/Lex_u3.baseline-jsc:
  • stress/parse-regexp-as-token.js: Added.

(shouldBe):

Source/JavaScriptCore:

When we encounter the RegExp in the parser, we first scan it as / or /=.
And if / or /= is parsed under the primary expression context, we rescan it
as RegExp. However, we did not update the token record information. So the
token record still says "I'm / or /=".

When we parse the string "() => /hello/", the last token becomes "/", which is
the first character of the RegExp, instead of "/hello/". Since the arrow
function parsing utilizes the end offset of the last token, we accidentally
recognize the range of the above arrow function as "() => /".

In this patch, we update the token when rescanning under the RegExp context.
This logic is similar to parsing Tail Template Literal token.

We also refine the error message for regular expression literals. And since
the REGEXP token is now introduced, the other error messages using that token
are improved too.

Currently, unterminated error messages can be seen in Parser.cpp. However,
these messages cannot be shown to users if the lexer has m_error. So these
code is meaningless. I'll move these tokenizing errors to the lexer in the
subsequent patch[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=163928

  • parser/Lexer.cpp:

(JSC::Lexer<T>::fillTokenInfo):
(JSC::Lexer<T>::lex):
(JSC::Lexer<T>::scanRegExp):
(JSC::Lexer<T>::scanTrailingTemplateString):
(JSC::Lexer<T>::skipRegExp): Deleted.

  • parser/Lexer.h:

(JSC::Lexer::getToken):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

  • parser/Parser.h:

(JSC::Parser::getToken):

  • parser/ParserTokens.h:

LayoutTests:

  • fast/regex/dom/non-pattern-characters-expected.txt:
  • js/arrowfunction-syntax-errors-expected.txt:
  • js/regexp-compile-crash-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.4_Comments/S7.4_A4_T4-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.2_T2-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.3_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A1.5_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.2_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.3_T3-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T1-expected.txt:
  • sputnik/Conformance/07_Lexical_Conventions/7.8_Literals/7.8.5_Regular_Expression_Literals/S7.8.5_A2.5_T3-expected.txt:
6:48 PM Changeset in webkit [207797] by Chris Dumez
  • 10 edits in trunk

event.(dataTransfer|clipboardData).getData('text/html') (onpaste, ondrop)
https://bugs.webkit.org/show_bug.cgi?id=19893
<rdar://problem/6055546>

Reviewed by Ryosuke Niwa.

Source/WebCore:

We now write selection as HTML as well to the pasteboard so that
event.(dataTransfer|clipboardData).getData('text/html') now works.

I have verified manually that it is still possible to copy text from
Safari and paste it to Excel 2011 Mac after this change. The text is
now pasted as HTML instead of text, which is fine because Excel can
display HTML.

No new tests, unskipped existing tests.

  • editing/Editor.h:
  • editing/mac/EditorMac.mm:

(WebCore::Editor::selectionInHTMLFormat):
(WebCore::Editor::writeSelectionToPasteboard):

  • platform/Pasteboard.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

LayoutTests:

Unskip corresponding tests on Mac.

  • editing/pasteboard/onpaste-text-html-expected.txt:
  • fast/events/ondrop-text-html-expected.txt:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
6:38 PM Changeset in webkit [207796] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.3.4

New tag.

6:31 PM Changeset in webkit [207795] by achristensen@apple.com
  • 12 edits in trunk

URLParser should match old URL::parse with %2E in path
https://bugs.webkit.org/show_bug.cgi?id=163929

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

Covered by updated API tests, which show that URLParser now matches URL::parse in these cases.
Also covered by newly failing web platform tests, which were failing before URLParser was enabled.
If https://github.com/whatwg/url/issues/87 is resolved we can change behavior to match.

  • platform/URLParser.cpp:

(WebCore::URLParser::isSingleDotPathSegment):
(WebCore::URLParser::isDoubleDotPathSegment):
(WebCore::URLParser::consumeSingleDotPathSegment):
(WebCore::URLParser::consumeDoubleDotPathSegment):
(WebCore::URLParser::parse):
(WebCore::URLParser::isPercentEncodedDot): Deleted.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/path-expected.txt:
  • fast/url/standard-url-expected.txt:
  • fetch/fetch-url-serialization-expected.txt:
5:45 PM Changeset in webkit [207794] by pvollan@apple.com
  • 8 edits in trunk/Source

[Win] CMake build type is not set.
https://bugs.webkit.org/show_bug.cgi?id=163917

Reviewed by Alex Christensen.

The CMAKE_BUILD_TYPE variable should be set to Debug or Release.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.vcxproj/WebCore.proj:

Source/WebKit:

  • WebKit.vcxproj/WebKit.proj:

Source/WTF:

  • WTF.vcxproj/WTF.proj:
5:31 PM Changeset in webkit [207793] by Yusuke Suzuki
  • 4 edits in trunk/Source/WebCore

Unreviewed, attempt to fix Windows build after r207787
https://bugs.webkit.org/show_bug.cgi?id=163657

According to the similar code in WebKit, I guess that
Visual C++ requires friend class declaration is done
in the private section to access private members.

And I also changed ::instance to ::shared to align to
the existing WebCore code.

  • domjit/DOMJITAbstractHeapRepository.cpp:

(WebCore::DOMJIT::AbstractHeapRepository::shared):
(WebCore::DOMJIT::AbstractHeapRepository::instance): Deleted.

  • domjit/DOMJITAbstractHeapRepository.h:
  • domjit/JSNodeDOMJIT.cpp:

(WebCore::NodeFirstChildDOMJIT::callDOM):
(WebCore::NodeLastChildDOMJIT::callDOM):
(WebCore::NodeNextSiblingDOMJIT::callDOM):
(WebCore::NodePreviousSiblingDOMJIT::callDOM):
(WebCore::NodeParentNodeDOMJIT::callDOM):

5:22 PM Changeset in webkit [207792] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix the lifetime of strings used in LOG_WITH_STREAM
https://bugs.webkit.org/show_bug.cgi?id=163923

Reviewed by Brent Fulgham.

Make sure the const char* passed to WTFLog() outlives the call.

Removed logFunctionResult which wasn't used anywhere else, and encourages this bad
pattern.

  • platform/LogMacros.h:
  • platform/Logging.cpp:

(WebCore::logFunctionResult): Deleted.

5:16 PM Changeset in webkit [207791] by Chris Dumez
  • 4 edits in trunk/Source

Reduce special handling for typed arrays in JSDOMConvert.h
https://bugs.webkit.org/show_bug.cgi?id=163907

Reviewed by Sam Weinig.

Reduce special handling for typed arrays in JSDOMConvert.h by adding a toWrapped() static
function on JSGenericTypedArrayView, similarly to other wrapper types.

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::typedImpl):
(JSC::JSGenericTypedArrayView<Adaptor>::toWrapped):

Source/WebCore:

No new tests, no web-exposed behavior change.

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<IDLInterface<JSC::GenericTypedArrayView<Adaptor>>>::convert): Deleted.

5:11 PM Changeset in webkit [207790] by Ryan Haddad
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r207783.

This change appears to have caused fast/selectors/invalid-
functional-pseudo-class.html to crash on iOS and macOS

Reverted changeset:

"[CSS Parser] Fix :lang argument parsing"
https://bugs.webkit.org/show_bug.cgi?id=163913
http://trac.webkit.org/changeset/207783

5:07 PM Changeset in webkit [207789] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[DOMJIT][DFG] CallDOM never writes Stack
https://bugs.webkit.org/show_bug.cgi?id=163926

Reviewed by Filip Pizlo and Saam Barati.

There is no way to write(Stack) in CallDOM.
This worst case (the most clobbering case) scenario
should be aligned to the one of Call, read(World) and write(Heap).

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

5:05 PM Changeset in webkit [207788] by beidson@apple.com
  • 8 edits in trunk

IndexedDB 2.0: Support new IDBKeyRange interfaces.
<rdar://problem/28806929> and https://bugs.webkit.org/show_bug.cgi?id=163910

Reviewed by Andy Estes.

Source/WebCore:

No new tests (Covered by additions to existing test)

The "new IDBKeyRanges interfaces" really just means adding the instance method IDBKeyRange.contains.

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::contains):

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBKeyRange.idl:

LayoutTests:

  • storage/indexeddb/keyrange-expected.txt:
  • storage/indexeddb/keyrange-private-expected.txt:
  • storage/indexeddb/resources/keyrange.js:
4:34 PM Changeset in webkit [207787] by Yusuke Suzuki
  • 30 edits
    9 copies
    11 adds in trunk

[DOMJIT] Add a way for DOMJIT::Patchpoint to express effects
https://bugs.webkit.org/show_bug.cgi?id=163657

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch introduces DOMJIT::Effect. It describes the side effects of
the DOMJIT::CallDOMPatchpoint. DOMJIT::CallDOMPatchpoint can use this
feature to teach the compilers about the effects. And the compilers
will perform CSE based on the reported effects.

As the same to B3's HeapRange, the effects are represented as a pair of
integers. [begin, end) pair will represents the range of the abstract
heap. We encode the abstract heap hierarchy into these pairs. Like,

Root: [0, 32)

Child1: [0, 20) Child2: [20, 32)

Child11: [0, 4) Child12: [4, 20)

This simplifies the representation of the abstract heap. And WebCore
just tells pairs of integers and it does not tell any detailed hierarchy.
So, DFG and FTL can optimize DOM operations without deep knowledge of
the DOM abstract heap hierarchy. For example, WebCore will tell that
firstChild will read Node_firstChild abstract heap. But this information
is encoded to the pair and DFG does not know the details. But still
DFG can understand the abstract heap hierarchy and can query whether the
given abstract heap overlaps with some abstract heap.

The heap range told by the WebCore is represented as DOMJIT::HeapRange.
DFG will handle this under the DOMState abstract heap. DOMJIT::HeapRange
is stored in DFG::AbstractHeap's Payload. We maintain the hierarchy by
DOMJIT::HeapRange in the DOMState abstract heap. We add a necessary
handling in DFG's AbstractHeap and ClobberSet.

And we also introduce DOMStateLoc for HeapLocation. It is combined with
DOMState AbstractHeap with DOMJIT::HeapRange. For example, we can
represent Node.firstChild as read(DOMState:Node_firstChild) and
def(HeapLocation(node, DOMState:Node_firstChild)) thingy. This allows us
to perform CSE onto DOM getters that will read some of DOM heap!

For simplicity, we convert CallDOM from NodeVarArgs to the normal one.
CallDOM is now just used for DOMJIT getter. So its children is at most 2.
It may have either 1 or 2 children. If the global object is required
by CallDOMPatchpoint, it has 2 children. And we changed the order of
the children to further simplify the code. Before this change, the order
is 1: globalObject 2: base. After this patch, the order becomes 1: base,
and 2: globalObject. And the child2 may not exists if the global object
is not required. We changed all the existing DOMJIT patchpoint to this
form.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::emitDOMJITGetter):

  • dfg/DFGAbstractHeap.cpp:

(JSC::DFG::AbstractHeap::dump):

  • dfg/DFGAbstractHeap.h:

(JSC::DFG::AbstractHeap::isStrictSubtypeOf):
(JSC::DFG::AbstractHeap::overlaps):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::blessCallDOM):
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):

  • dfg/DFGClobberSet.cpp:

(JSC::DFG::ClobberSet::overlaps):

  • dfg/DFGClobberSet.h:
  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:
  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCallDOMData):
(JSC::DFG::Node::callDOMData):
(JSC::DFG::Node::hasCallDOMPatchpoint): Deleted.
(JSC::DFG::Node::callDOMPatchpoint): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCallDOM):

  • domjit/DOMJITAbstractHeap.cpp: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::AbstractHeap::compute):
(JSC::DOMJIT::AbstractHeap::dump):
(JSC::DOMJIT::AbstractHeap::shallowDump):
(JSC::DOMJIT::AbstractHeap::deepDump):

  • domjit/DOMJITAbstractHeap.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::AbstractHeap::AbstractHeap):
(JSC::DOMJIT::AbstractHeap::setParent):
(JSC::DOMJIT::AbstractHeap::isRoot):
(JSC::DOMJIT::AbstractHeap::isComputed):
(JSC::DOMJIT::AbstractHeap::range):

  • domjit/DOMJITCallDOMPatchpoint.h:
  • domjit/DOMJITEffect.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::Effect::forReadWrite):
(JSC::DOMJIT::Effect::forPure):
(JSC::DOMJIT::Effect::forDef):
(JSC::DOMJIT::Effect::mustGenerate):

  • domjit/DOMJITHeapRange.cpp: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::HeapRange::dump):

  • domjit/DOMJITHeapRange.h: Added.

(JSC::DOMJIT::HeapRange::HeapRange):
(JSC::DOMJIT::HeapRange::fromRaw):
(JSC::DOMJIT::HeapRange::begin):
(JSC::DOMJIT::HeapRange::end):
(JSC::DOMJIT::HeapRange::rawRepresentation):
(JSC::DOMJIT::HeapRange::operator bool):
(JSC::DOMJIT::HeapRange::operator==):
(JSC::DOMJIT::HeapRange::top):
(JSC::DOMJIT::HeapRange::none):
(JSC::DOMJIT::HeapRange::isStrictSubtypeOf):
(JSC::DOMJIT::HeapRange::isSubtypeOf):
(JSC::DOMJIT::HeapRange::overlaps):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM):

  • jsc.cpp:

Source/WebCore:

CallDOMPatchpoint now has the way to tell its effects to DFG and FTL compilers.
WebCore DOMJIT::AbstractHeapRepository will construct the hierarchy of the abstract
heap. And then it encodes these information into the pairs of the integers.

And this patch also changes the DOMJIT::PatchpointParams' parameter order.
So we change them in all the DOMJIT::CallDOMPatchpoint sites.

  • CMakeLists.txt:
  • ForwardingHeaders/domjit/DOMJITAbstractHeap.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.
  • ForwardingHeaders/domjit/DOMJITEffect.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.
  • ForwardingHeaders/domjit/DOMJITHeapRange.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.
  • WebCore.xcodeproj/project.pbxproj:
  • domjit/DOMJITAbstractHeapRepository.cpp: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(WebCore::DOMJIT::AbstractHeapRepository::AbstractHeapRepository):
(WebCore::DOMJIT::AbstractHeapRepository::instance):

  • domjit/DOMJITAbstractHeapRepository.h: Copied from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.
  • domjit/DOMJITHelpers.h:

(WebCore::DOMJITHelpers::branchIfNotWorldIsNormal): Deleted.
(WebCore::DOMJITHelpers::branchIfNotWeakIsLive): Deleted.
(WebCore::DOMJITHelpers::tryLookUpWrapperCache): Deleted.
(WebCore::DOMJITHelpers::toWrapper): Deleted.
(WebCore::DOMJITHelpers::branchIfDOMWrapper): Deleted.
(WebCore::DOMJITHelpers::branchIfNotDOMWrapper): Deleted.
(WebCore::DOMJITHelpers::branchIfNode): Deleted.
(WebCore::DOMJITHelpers::branchIfNotNode): Deleted.
(WebCore::DOMJITHelpers::branchIfElement): Deleted.
(WebCore::DOMJITHelpers::branchIfNotElement): Deleted.
(WebCore::DOMJITHelpers::branchIfDocumentWrapper): Deleted.
(WebCore::DOMJITHelpers::branchIfNotDocumentWrapper): Deleted.

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMForOffsetAccess):
(WebCore::checkNode):
(WebCore::NodeFirstChildDOMJIT::checkDOM):
(WebCore::NodeFirstChildDOMJIT::callDOM):
(WebCore::NodeLastChildDOMJIT::checkDOM):
(WebCore::NodeLastChildDOMJIT::callDOM):
(WebCore::NodeNextSiblingDOMJIT::checkDOM):
(WebCore::NodeNextSiblingDOMJIT::callDOM):
(WebCore::NodePreviousSiblingDOMJIT::checkDOM):
(WebCore::NodePreviousSiblingDOMJIT::callDOM):
(WebCore::NodeParentNodeDOMJIT::checkDOM):
(WebCore::NodeParentNodeDOMJIT::callDOM):
(WebCore::NodeNodeTypeDOMJIT::checkDOM):
(WebCore::NodeNodeTypeDOMJIT::callDOM):

Source/WTF:

Simplify nonEmptyRangesOverlap.

  • wtf/MathExtras.h:

(WTF::nonEmptyRangesOverlap):

LayoutTests:

  • js/dom/domjit-accessor-different-effect-expected.txt: Added.
  • js/dom/domjit-accessor-different-effect.html: Added.
  • js/dom/domjit-accessor-effect-expected.txt: Added.
  • js/dom/domjit-accessor-effect-should-overlap-with-call-expected.txt: Added.
  • js/dom/domjit-accessor-effect-should-overlap-with-call.html: Added.
  • js/dom/domjit-accessor-effect.html: Added.
  • js/dom/domjit-accessor-licm-expected.txt: Added.
  • js/dom/domjit-accessor-licm.html: Added.
  • js/dom/domjit-accessor-node-type-effect-should-not-overlap-with-call-since-pure-expected.txt: Added.
  • js/dom/domjit-accessor-node-type-effect-should-not-overlap-with-call-since-pure.html: Added.
4:12 PM Changeset in webkit [207786] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Font variations test gardening

Unreviewed.

  • platform/mac/TestExpectations:
3:51 PM Changeset in webkit [207785] by achristensen@apple.com
  • 5 edits
    2 adds in trunk/Source/JavaScriptCore

JSONParse should not crash with null Strings
https://bugs.webkit.org/show_bug.cgi?id=163918
<rdar://problem/28834095>

Reviewed by Michael Saboff.

When JSONParse is called with a null String, it calls String::is8bit, which dereferences a null pointer.
This is happening with new work in the Fetch API, but callers of JSONParse should not have to check
if the String is null.

  • API/tests/JSONParseTest.cpp: Added.

(testJSONParse):

  • API/tests/JSONParseTest.h: Added.
  • API/tests/testapi.c:

(main):
Test parsing null Strings. They should have the same result as parsing empty Strings.

(JSC::JSONParse):
Check for null Strings.

  • shell/PlatformWin.cmake:
3:09 PM Changeset in webkit [207784] by commit-queue@webkit.org
  • 10 edits in trunk

Web Inspector: Scope chain shouldn't show empty Closure sections
https://bugs.webkit.org/show_bug.cgi?id=152348

Patch by Devin Rousso <Devin Rousso> on 2016-10-24
Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(isEmptyObject):
(InjectedScript.CallFrameProxy._createScopeJson):
If the scope object has no properties, set empty to true.

  • inspector/protocol/Debugger.json:

Added empty property to Scope type.

Source/WebInspectorUI:

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):

  • UserInterface/Models/ScopeChainNode.js:

(WebInspector.ScopeChainNode):
(WebInspector.ScopeChainNode.prototype.get empty):
Added support for new empty property.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
Only create and display a DetailsSection if the scope is not empty (via empty).

LayoutTests:

  • inspector/model/scope-chain-node-expected.txt:
  • inspector/model/scope-chain-node.html:

Added "empty" indicators to scopes without any property descriptors.

2:51 PM Changeset in webkit [207783] by hyatt@apple.com
  • 5 edits in trunk/Source/WebCore

[CSS Parser] Fix :lang argument parsing
https://bugs.webkit.org/show_bug.cgi?id=163913

Reviewed by Zalan Bujtas.

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:

Modify the map to support versions of the function pseudos
without the left paren included.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::setLangArgumentList):

  • css/parser/CSSParserValues.h:

Add a helper to just directly pass an AtomicString Vector through.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::consumeLangArgumentList):
(WebCore::CSSSelectorParser::consumePseudo):
Add a new consumeLangArgumentList to collect the languages into
an AtomicString Vector.

2:48 PM Changeset in webkit [207782] by commit-queue@webkit.org
  • 5 edits in trunk

Web Inspector: Improve Quick Open sorting algorithm
https://bugs.webkit.org/show_bug.cgi?id=163705

Patch by Devin Rousso <Devin Rousso> on 2016-10-24
Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • UserInterface/Models/ResourceQueryResult.js:

(WebInspector.ResourceQueryResult.prototype._calculateRank.getMultiplier):
(WebInspector.ResourceQueryResult.prototype._calculateRank):
Added logic to multiply the ranking increment/decrement based on whether the current match
is part of a sequence, whether that sequence began with a special character, and the length
of the current sequence.

LayoutTests:

  • inspector/unit-tests/resource-query-controller-expected.txt:
  • inspector/unit-tests/resource-query-controller.html:

Changed the ExecuteQueryGeneralRankings and ExecuteQueryPositionRankings tests to reflect
the new ranking logic. Added ExecuteQueryConsecutiveRankings to test more realistic
scenarios and ensure better ranking.

2:44 PM Changeset in webkit [207781] by keith_miller@apple.com
  • 9 edits in trunk

Wasm should support floating point operations.
https://bugs.webkit.org/show_bug.cgi?id=163770

Reviewed by Michael Saboff.

JSTests:

Add appropriate b3op names for floating point wasm bytecodes, where they exist.
Also, fix some WASM => Wasm in WasmOps.h generator script that I missed
the first time I made the change.

  • wasm/generate-wasmops-header.js:

(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.template.typename.Int.inline.bool.isValidOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.BinaryOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.UnaryOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType): Deleted.
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.undef.CREATE_ENUM_VALUE.inline.bool.isControlOp): Deleted.

  • wasm/wasm.json:

Source/JavaScriptCore:

Since we now have a Double => Float Trunc in B3, we can now support calls in Wasm
that take floating point arguments. This patch also enables most of the Wasm
floating point operations, as the associated B3 opcode has been linked via wasm.json.
If there is no direct mapping to a B3 opcode the Wasm is not yet implemented. This
patch also fixes a bug in calls where the arguments would be reversed.

  • testWasm.cpp:

(cast):
(invoke):
(boxf):
(boxd):
(runWasmTests):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::createJSWrapper):

  • wasm/WasmCallingConvention.h:

(JSC::Wasm::CallingConvention::loadArguments):
(JSC::Wasm::CallingConvention::setupCall):

  • wasm/WasmFunctionParser.h:

(JSC::Wasm::FunctionParser<Context>::parseExpression):
(JSC::Wasm::FunctionParser<Context>::parseUnreachableExpression):

  • wasm/WasmOps.h:
2:34 PM Changeset in webkit [207780] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix AppleWin build after r207720.

  • html/canvas/OESVertexArrayObject.cpp:
2:17 PM Changeset in webkit [207779] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix AppleWin build after r207720.

  • bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
2:16 PM Changeset in webkit [207778] by Ryan Haddad
  • 6 edits in trunk/LayoutTests

Rebaseline tests for ios-simulator after r207757.
https://bugs.webkit.org/show_bug.cgi?id=163904

Unreviewed test gardening.

  • platform/ios-simulator/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
  • platform/ios-simulator/svg/batik/text/verticalText-expected.txt:
  • platform/ios-simulator/svg/batik/text/verticalTextOnPath-expected.txt:
  • platform/ios-simulator/svg/text/text-align-06-b-expected.txt:
  • platform/ios-simulator/svg/text/text-vkern-expected.txt:
2:01 PM Changeset in webkit [207777] by achristensen@apple.com
  • 8 edits in trunk/LayoutTests

Rebase tests after r207767
https://bugs.webkit.org/show_bug.cgi?id=163891

  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

No more CSSCharsetRule.

1:53 PM Changeset in webkit [207776] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix Windows build after r207767 and r207769

  • css/CSSAllInOne.cpp:
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::getProtectionSpace):

1:47 PM Changeset in webkit [207775] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

[Win] AVCF based media engine does not block cross-site/cross-domain loads.
https://bugs.webkit.org/show_bug.cgi?id=163783

Reviewed by Brent Fulgham.

Prevent cross-site/cross-domain loads by setting appropriate AVCF options.

No new tests; covered by media/video-canvas-source.html. Media tests are
currently skipped on Windows.

  • platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::resolvedURL):
(WebCore::MediaPlayerPrivateAVFoundationCF::hasSingleSecurityOrigin):
(WebCore::AVFWrapper::createAssetForURL):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
1:42 PM Changeset in webkit [207774] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build with newer versions of clang
https://bugs.webkit.org/show_bug.cgi?id=163908
rdar://problem/28852016

Reviewed by Tim Horton.

Use the macros that names the soft-linked functions in such a way that they won't conflict with actual functions.

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSize):
(WebCore::availableScreenSize):
(WebCore::screenScaleFactor):

1:25 PM Changeset in webkit [207773] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove unnecessary unused variable stubs
https://bugs.webkit.org/show_bug.cgi?id=163688

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-24
Reviewed by Simon Fraser.

  • Modules/applepay/cocoa/PaymentCocoa.mm:

(WebCore::toDictionary):

  • Modules/applepay/cocoa/PaymentContactCocoa.mm:

(WebCore::toDictionary):

1:19 PM Changeset in webkit [207772] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix Windows build after r207767
https://bugs.webkit.org/show_bug.cgi?id=163891

  • DerivedSources.cpp:
11:53 AM Changeset in webkit [207771] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/dom/getAccessibilityPropertiesForNode.html
https://bugs.webkit.org/show_bug.cgi?id=163901

Unreviewed test gardening.

  • inspector/dom/getAccessibilityPropertiesForNode-expected.txt:
11:29 AM Changeset in webkit [207770] by zandobersek@gmail.com
  • 4 edits
    3 adds
    4 deletes in trunk/Source/WebCore

[CodeGenerator] Only allow a single interface or standalone dictionary per WebIDL file
https://bugs.webkit.org/show_bug.cgi?id=163889

Reviewed by Chris Dumez.

Assert that there's only one interface or standalone dictionary
per WebIDL input file, and exit from the generator otherwise.

This avoids potential linking issues where multiple enumeration
and dictionary bindings code can be generated if the source
WebIDL for them is specified in a file that contains multiple
interfaces or standalone dictionaries.

Additionally, the generator now also exits if it fails to
generate code for any interface of standalone dictionary. This
should avoid processing WebIDL files that are empty in
substance.

TestException.idl and TestInterface.idl files have their second
interfaces removed. In place of those a new testing IDL file is
added, TestInterfaceLeadingUnderscore.idl. Like the two removed
interfaces, it tests that the leading underscode in the
identifier is removed by the generator.

  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: Added.

(WebCore::JSTestInterfaceLeadingUnderscorePrototype::create):
(WebCore::JSTestInterfaceLeadingUnderscorePrototype::createStructure):
(WebCore::JSTestInterfaceLeadingUnderscorePrototype::JSTestInterfaceLeadingUnderscorePrototype):
(WebCore::JSTestInterfaceLeadingUnderscoreConstructor::prototypeForStructure):
(WebCore::JSTestInterfaceLeadingUnderscoreConstructor::initializeProperties):
(WebCore::JSTestInterfaceLeadingUnderscorePrototype::finishCreation):
(WebCore::JSTestInterfaceLeadingUnderscore::JSTestInterfaceLeadingUnderscore):
(WebCore::JSTestInterfaceLeadingUnderscore::createPrototype):
(WebCore::JSTestInterfaceLeadingUnderscore::prototype):
(WebCore::JSTestInterfaceLeadingUnderscore::destroy):
(WebCore::BindingCaller<JSTestInterfaceLeadingUnderscore>::castForAttribute):
(WebCore::jsTestInterfaceLeadingUnderscoreReadonly):
(WebCore::jsTestInterfaceLeadingUnderscoreReadonlyGetter):
(WebCore::jsTestInterfaceLeadingUnderscoreConstructor):
(WebCore::setJSTestInterfaceLeadingUnderscoreConstructor):
(WebCore::JSTestInterfaceLeadingUnderscore::getConstructor):
(WebCore::JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestInterfaceLeadingUnderscoreOwner::finalize):
(WebCore::toJSNewlyCreated):
(WebCore::toJS):
(WebCore::JSTestInterfaceLeadingUnderscore::toWrapped):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h: Renamed from Source/WebCore/bindings/scripts/test/JS/JSreadonly.h.

(WebCore::JSTestInterfaceLeadingUnderscore::create):
(WebCore::JSTestInterfaceLeadingUnderscore::createStructure):
(WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
(WebCore::wrapperOwner):
(WebCore::wrapperKey):
(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSattribute.cpp: Removed.
  • bindings/scripts/test/JS/JSattribute.h: Removed.
  • bindings/scripts/test/JS/JSreadonly.cpp: Removed.
  • bindings/scripts/test/TestException.idl:
  • bindings/scripts/test/TestInterface.idl:
  • bindings/scripts/test/TestInterfaceLeadingUnderscore.idl: Copied from Source/WebCore/bindings/scripts/test/TestException.idl.
11:25 AM Changeset in webkit [207769] by achristensen@apple.com
  • 56 edits in trunk

URL::port should return Optional<uint16_t>
https://bugs.webkit.org/show_bug.cgi?id=163806

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/url/a-element-expected.txt:
  • web-platform-tests/url/a-element-xhtml-expected.txt:
  • web-platform-tests/url/url-constructor-expected.txt:

Source/WebCore:

A URL without a port is different than a URL with port 0.
This matches the spec, Chrome, and Firefox.

Covered by newly-passing web platform tests.

  • Modules/indexeddb/IDBDatabaseIdentifier.h:

(WebCore::IDBDatabaseIdentifier::IDBDatabaseIdentifier):
(WebCore::IDBDatabaseIdentifier::isHashTableDeletedValue):
(WebCore::IDBDatabaseIdentifier::hash):
(WebCore::IDBDatabaseIdentifier::isValid):
(WebCore::IDBDatabaseIdentifier::isEmpty):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::hostName):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):
(WebCore::ContentExtensions::applyBlockedStatusToRequest):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
(WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):

  • html/URLUtils.h:

(WebCore::URLUtils<T>::protocol):
(WebCore::URLUtils<T>::host):
(WebCore::URLUtils<T>::port):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::isValidCrossOriginRedirectionURL):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):
(WebCore::isRemoteWebArchive):
(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):

  • loader/cache/CachedResource.cpp:

(WebCore::shouldCacheSchemeIndefinitely):
(WebCore::CachedResource::freshnessLifetime):

  • page/Location.cpp:

(WebCore::Location::protocol):
(WebCore::Location::host):
(WebCore::Location::port):

  • page/Page.cpp:

(WebCore::Page::userStyleSheetLocationChanged):

  • page/SecurityOrigin.cpp:

(WebCore::shouldTreatAsUniqueOrigin):
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::isSecure):
(WebCore::SecurityOrigin::canDisplay):
(WebCore::SecurityOrigin::toRawString):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::databaseIdentifier):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::port):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::debugString):

  • page/SecurityOriginData.h:

(): Deleted.

  • page/SecurityOriginHash.h:

(WebCore::SecurityOriginHash::hash):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allowObjectFromSource):
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource):
(WebCore::ContentSecurityPolicy::allowResourceFromSource):
(WebCore::ContentSecurityPolicy::allowConnectToSource):
(WebCore::ContentSecurityPolicy::allowBaseURI):
(WebCore::stripURLForUseInReport):
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded):

  • page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::ContentSecurityPolicySource):
(WebCore::ContentSecurityPolicySource::portMatches):

  • page/csp/ContentSecurityPolicySource.h:
  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parsePort):

  • page/csp/ContentSecurityPolicySourceList.h:
  • platform/SchemeRegistry.h:
  • platform/URL.cpp:

(WebCore::URL::protocol):
(WebCore::URL::port):
(WebCore::URL::serialize):
(WebCore::portAllowed):
(WebCore::defaultPortsMap): Deleted.
(WebCore::defaultPortForProtocol): Deleted.
(WebCore::isDefaultPortForProtocol): Deleted.

  • platform/URL.h:

(WebCore::URL::hasPort): Deleted.

  • platform/URLParser.cpp:

(WebCore::defaultPortForProtocol):
(WebCore::isDefaultPortForProtocol):
(WebCore::URLParser::parsePort):
(WebCore::isDefaultPort): Deleted.

  • platform/network/CredentialStorage.cpp:

(WebCore::originStringFromURL):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::loadResourceSynchronously):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::platformClose):
(WebCore::SocketStreamHandleImpl::port):

  • workers/WorkerLocation.cpp:

(WebCore::WorkerLocation::protocol):
(WebCore::WorkerLocation::host):
(WebCore::WorkerLocation::port):

Source/WebKit/mac:

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin port]):

Source/WebKit2:

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::overrideSystemProxies):

  • Shared/API/APISecurityOrigin.h:

(API::SecurityOrigin::create):

  • Shared/API/APIURL.h:

(API::URL::protocol):

  • Shared/API/c/WKSecurityOriginRef.cpp:

(WKSecurityOriginGetPort):

  • UIProcess/API/Cocoa/WKSecurityOrigin.mm:

(-[WKSecurityOrigin port]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canHandleRequest):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::origin):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::checkURL):
(TestWebKitAPI::checkRelativeURL):
(TestWebKitAPI::checkURLDifferences):
(TestWebKitAPI::checkRelativeURLDifferences):
(TestWebKitAPI::TEST_F):

11:24 AM Changeset in webkit [207768] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebCore

[CodeGeneratorJS] Support enums for standalone dictionaries
https://bugs.webkit.org/show_bug.cgi?id=163885

Reviewed by Youenn Fablet.

Add support for enumerations in WebIDL files that specify
standalone dictionaries. Implementation of this is pretty
straight-forward and mirrors interface and callback generators
by calling GenerateEnumerations{Header,Implementation}Content()
functions in GenerateDictionary{Header,Implementation}().

In GenerateEnumerationsImplementationContent(), the
NeverDestroyed.h header is added to the implementation includes
since that class is used to hold an array of possible enum
values.

A test enum is added to the TestStandaloneDictionary.idl file
and the baselines are updated to reflect the new capability.

  • bindings/scripts/CodeGenerator.pm:

(ProcessDocument):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionary):
(GenerateEnumerationsImplementationContent):
(GenerateDictionaryHeader):
(GenerateDictionaryImplementation):

  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:

(WebCore::convertEnumerationToJS):
(WebCore::parseEnumeration<TestStandaloneDictionary::EnumInStandaloneDictionaryFile>):
(WebCore::convertEnumeration<TestStandaloneDictionary::EnumInStandaloneDictionaryFile>):
(WebCore::expectedEnumerationValues<TestStandaloneDictionary::EnumInStandaloneDictionaryFile>):
(WebCore::convertDictionary<DictionaryImplName>):

  • bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
  • bindings/scripts/test/TestStandaloneDictionary.idl:
11:18 AM Changeset in webkit [207767] by hyatt@apple.com
  • 24 edits
    5 deletes in trunk

Remove CSSCharsetRule from the CSS OM
https://bugs.webkit.org/show_bug.cgi?id=163891

Reviewed by Darin Adler.

Source/WebCore:

Remove CSSCharsetRule from the CSS OM. All other browser engines have made this
change. This eliminates the weird overloading of isCharsetRule to match both
CSSCharsetRule and StyleRuleCharset (only used by the new parser).

Fix the destroy() method in StyleRuleBase to clean up StyleRuleCharsets created
by the new parser properly.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/CSSCharsetRule.cpp: Removed.
  • css/CSSCharsetRule.h: Removed.
  • css/CSSCharsetRule.idl: Removed.
  • css/CSSPropertySourceData.h:
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::item):
(WebCore::CSSStyleSheet::rules):

  • css/CSSStyleSheet.h:
  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::destroy):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::asCSSRuleList):

Source/WebKit/mac:

  • DOM/DOMCSSCharsetRule.mm:

(-[DOMCSSCharsetRule encoding]):

LayoutTests:

  • fast/dom/Window/resources/window-properties.js:
  • fast/dom/dom-constructors-expected.txt:
  • fast/dom/dom-constructors.html:
  • fast/encoding/css-charset-default.xhtml:
  • fast/encoding/css-charset-dom-expected.txt: Removed.
  • fast/encoding/css-charset-dom.html: Removed.
  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt:
11:12 AM Changeset in webkit [207766] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

[CodeGeneratorJS] Standalone dictionaries have misplaced build guards
https://bugs.webkit.org/show_bug.cgi?id=163881

Patch by Zan Dobersek <zdobersek@igalia.com> on 2016-10-24
Reviewed by Chris Dumez.

Build guards that are generated from the Conditional attribute
on WebIDL dictionary declarations properly guard the relevant
convertDictionary() functions for WebIDL files that also specify
interfaces. But for standalone dictionaries these build guards
should guard the complete header and implementation files, much
like this is done for files that originate from interfaces or
callbacks.

Before this patch, guarding a standalone dictionary resulted in
malformed output because GenerateHeaderContentHeader() and
GenerateImplementationContentHeader() functions both generated
the #if macro that would guard the whole file, but
GenerateDictionary{Header,Implementation}() didn't generate the
closing #endif.

CodeGeneratorJS.pm now passes the conditional string, if any,
to GenerateDictionary{Header,Implementation}Content() functions
in case of a non-standalone dictionary. Otherwise, the
conditional string, if any, is used to guard the complete
header and implementation files.

Generator tests are updated to cover various build guard
combinations on dictionaries in TestObj.idl, and the standalone
dictionary WebIDL file now has a Conditional attribute to check
that the build guards cover complete generated header and
implementation files.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryHeaderContent):
(GenerateDictionariesHeaderContent):
(GenerateDictionaryImplementationContent):
(GenerateDictionariesImplementationContent):
(GenerateDictionaryHeader):
(GenerateDictionaryImplementation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
  • bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestStandaloneDictionary.idl:
10:53 AM Changeset in webkit [207765] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Dumping of op_negate bytecode is broken.
https://bugs.webkit.org/show_bug.cgi?id=163896

Reviewed by Darin Adler.

It thinks the bytecode consists of only 3 machine words, when it consists of 4.
This is now fixed.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

10:53 AM Changeset in webkit [207764] by eric.carlson@apple.com
  • 24 edits
    2 adds in trunk

[MediaStream] Separate media capture and audio playback muting
https://bugs.webkit.org/show_bug.cgi?id=163855
<rdar://problem/28827186>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/mediastream/MediaStream-page-muted.html

Change page.muted from a bool to a bitfield so audio and media capture muted are independent.
Fix a couple of bugs in the mock media capture device uncovered by new test case.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::pageMutedStateDidChange): page.isMuted -> page.mutedState.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::pageMutedStateDidChange): Ditto.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateVolume): Ditto.
(WebCore::HTMLMediaElement::effectiveMuted): Ditto.

  • page/MediaProducer.h: Add MutedState enum.
  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::setMuted): Take MutedStateFlags instead of bool. m_muted -> m_mutedState.

  • page/Page.h:
  • platform/mock/MockRealtimeMediaSource.cpp:

(WebCore::MockRealtimeMediaSource::startProducingData): Call setMuted.
(WebCore::MockRealtimeMediaSource::stopProducingData): Ditto.

  • platform/mock/MockRealtimeMediaSource.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::stopProducingData): Call correct base class method.

  • testing/Internals.cpp:

(WebCore::Internals::setPageMuted): Change parameter from a bool to a string.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

  • Shared/WebPageCreationParameters.h: Change 'muted' from bool to MutedStateFlags.
  • UIProcess/API/C/WKPage.cpp: Change parameter from bool to WKMediaMutedState.

(WKPageSetMuted):

  • UIProcess/API/C/WKPagePrivate.h: Define WKMediaMutedState.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setMuted): m_muted -> m_mutedState.
(WebKit::WebPageProxy::creationParameters): Ditto.

  • UIProcess/WebPageProxy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::isMuted): page.isMuted -> page.mutedState.

  • WebProcess/WebPage/WebPage.messages.in: Change SetMuted parameter.

LayoutTests:

  • fast/mediastream/MediaStream-page-muted-expected.txt: Added.
  • fast/mediastream/MediaStream-page-muted.html: Added.
  • media/video-muted-after-setting-page-muted-state.html: Updated.
9:48 AM Changeset in webkit [207763] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Try to fix Windows build.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp: Rearranged includes

so they are inside the conditional as they should be.

9:25 AM Changeset in webkit [207762] by commit-queue@webkit.org
  • 21 edits in trunk

Activate WEB_RTC compilation flags for Mac bots
https://bugs.webkit.org/show_bug.cgi?id=163886

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-24
Reviewed by Eric Carlson.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Covered by existing tests.

Fixing compilation errors due to missing WEBCORE_EXPORT, missing method and missing override keywords.

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/SDPProcessor.cpp:

(WebCore::SDPProcessor::generate):
(WebCore::SDPProcessor::parse):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSource::createMuted):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
9:24 AM Changeset in webkit [207761] by beidson@apple.com
  • 58 edits
    5 adds in trunk

IndexedDB 2.0: Support IDBIndex name assignment.
<rdar://problem/28806932> and https://bugs.webkit.org/show_bug.cgi?id=163805

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/IndexedDB/idbindex-rename-errors-expected.txt:
  • web-platform-tests/IndexedDB/idbindex-rename-expected.txt:

Source/WebCore:

Tests: storage/indexeddb/modern/index-rename-1-private.html

storage/indexeddb/modern/index-rename-1.html

Touches a *lot* of code sites, but none of them are particularly interesting.
They are all just getting the new name spread out to all of the various objects that need it.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::renameIndex):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::setName):
(WebCore::IDBIndex::rollbackInfoForVersionChangeAbort):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
(WebCore::IDBObjectStore::renameReferencedIndex):
(WebCore::IDBObjectStore::rollbackInfoForVersionChangeAbort): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::internalAbort):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::renameIndexOnServer):
(WebCore::IDBTransaction::didRenameIndexOnServer):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::renameIndex):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::renameIndex):
(WebCore::IDBClient::IDBConnectionToServer::didRenameIndex):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::createTransactionOperation):

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didRenameIndex):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::renameIndex):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::indexRenamed):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::renameIndex):

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryIndex.h:

(WebCore::IDBServer::MemoryIndex::rename):

  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::renameIndex):

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::renameIndex):

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::renameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::performRenameIndex):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformRenameIndex):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didRenameIndex):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBIndexInfo.h:

(WebCore::IDBIndexInfo::rename):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:

(WebCore::IDBObjectStoreInfo::infoForExistingIndex):

  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBResultData.cpp:

(WebCore::IDBResultData::renameIndexSuccess):

  • Modules/indexeddb/shared/IDBResultData.h:
  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::didRenameIndex):
(WebCore::InProcessIDBServer::renameIndex):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didRenameIndex):
(WebKit::WebIDBConnectionToClient::renameIndex):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::renameIndex):
(WebKit::WebIDBConnectionToServer::didRenameIndex):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

LayoutTests:

  • storage/indexeddb/modern/index-rename-1-expected.txt: Added.
  • storage/indexeddb/modern/index-rename-1-private-expected.txt: Added.
  • storage/indexeddb/modern/index-rename-1-private.html: Added.
  • storage/indexeddb/modern/index-rename-1.html: Added.
  • storage/indexeddb/modern/resources/index-rename-1.js: Added.
  • storage/indexeddb/readonly-expected.txt:
  • storage/indexeddb/readonly-private-expected.txt:
  • storage/indexeddb/resources/readonly.js: Removed the test that verifies that index names are readonly as they are no longer readonly.
8:53 AM Changeset in webkit [207760] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, add myself as a WebKit reviewer

  • Scripts/webkitpy/common/config/contributors.json:
8:07 AM Changeset in webkit [207759] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix -webkit-box-reflect parsing
https://bugs.webkit.org/show_bug.cgi?id=163890

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeReflect):
Do a WTFMove on the mask instead of a .releaseNonNull(), since mask can be a nullptr.
Exactly matches the old parser.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::CalcParser::consumeValue):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumeUrl):
(WebCore::CSSPropertyParserHelpers::consumeColor):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientPoint):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
Clean up all instances of CSSPrimitiveValue::create to use the CSSValuePool.

7:58 AM Changeset in webkit [207758] by graouts@webkit.org
  • 3 edits
    1 add in trunk/Source/WebCore

[Modern Media Controls] Concatenate JS and CSS files into a single JS and CSS resources
https://bugs.webkit.org/show_bug.cgi?id=163785
<rdar://problem/28890058>

Reviewed by Darin Adler.

Concatenate CSS and JS resources for modern media controls into single JS and CSS files
during build and load these single resources alone at runtime.

  • Modules/modern-media-controls/js-files: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):

7:39 AM Changeset in webkit [207757] by hyatt@apple.com
  • 28 edits in trunk

[CSS Parser] Unprefix -webkit-writing-mode
https://bugs.webkit.org/show_bug.cgi?id=163870

Reviewed by Zalan Bujtas.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):
Change -webkit-writing mode to writing-mode.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::operator WritingMode):
(WebCore::CSSPrimitiveValue::operator SVGWritingMode): Deleted.
Eliminate the SVGWritingMode converters. Add support for the unique SVG-specific
values to the WritingMode converters.

  • css/CSSPropertyNames.in:

Alias -webkit-writing-mode to writing-mode. Move writing-mode up to be
high priority like -webkit-writing mode was. Alias -epub-writing-mode to writing-mode
instead of to -webkit-writing-mode.

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::svgPropertyValue):
Remove writing-mode from SVG computed style, since the base CSSComputedStyleDeclaration handles it.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueWritingMode):
(WebCore::StyleBuilderCustom::applyValueWebkitWritingMode): Deleted.
Renamed applyValueWebkitWritingMode to applyValueWritingMode. Removed the SVG code, since
the underlying converter for WritingMode now handles those values.

  • css/StyleResolver.cpp:

(WebCore::extractDirectionAndWritingMode):
Rename -webkit-writing-mode to writing-mode.

  • css/parser/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
Eliminate -webkit-writing-mode and make sure writing-mode handles both the SVG values
and the normal values.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Same deal here.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
Cue stuff was setting -webkit-writing-mode, so make it set writing-mode instead now.

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::collectSelectionRects):

  • rendering/RenderText.cpp:

(WebCore::RenderText::collectSelectionRects):
Switch the SVG-specific code here over to accessing the RenderStyle writing-mode and not
the SVG-specific one.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::isVerticalWritingMode):
Add a helper function for asking if something is vertical writing mode.

  • rendering/style/SVGRenderStyle.cpp:
  • rendering/style/SVGRenderStyle.h:
  • rendering/style/SVGRenderStyleDefs.h:

(WebCore::SVGRenderStyle::diff):
Remove the SVG writing mode code.

  • rendering/svg/RenderSVGInlineText.cpp:

(WebCore::RenderSVGInlineText::computeNewScaledFontForStyle):
Make sure to force SVG font descriptions to be horizontal, since SVG controls
its own glyph orientation.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGInlineTextBox):

  • rendering/svg/SVGTextChunk.cpp:

(WebCore::SVGTextChunk::SVGTextChunk):

  • rendering/svg/SVGTextLayoutEngine.cpp:

(WebCore::SVGTextLayoutEngine::layoutInlineTextBox):

  • rendering/svg/SVGTextQuery.cpp:

(WebCore::SVGTextQuery::executeQuery):
Changed to access the RenderStyle writing mode instead of the SVG-specific one.

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/text-align-06-b-expected.txt:
  • platform/mac/svg/text/text-align-06-b-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
4:50 AM Changeset in webkit [207756] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

svg/as-image/svg-image-with-data-uri-use-data-uri.svg is flaky after r207754
https://bugs.webkit.org/show_bug.cgi?id=163887

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-24

  • TestExpectations: Marking svg/as-image/svg-image-with-data-uri-use-data-uri.svg as crashing.
2:50 AM Changeset in webkit [207755] by Antti Koivisto
  • 4 edits
    2 adds in trunk

Avoid unnecessary full style resolution in getComputedStyle for non-inherited properties
https://bugs.webkit.org/show_bug.cgi?id=163875

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/css/getComputedStyle/getComputedStyle-style-resolution.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::hasValidStyleForProperty):

For non-inherited properties we don't need to update style even if some ancestor style is invalid
as long as explicit 'inherit' is not being used.
We still need to update if we find out that the whole subtree we are in is invalid.

(WebCore::updateStyleIfNeededForProperty):

Pass the property.

(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::CSSComputedStyleDeclaration::length):
(WebCore::elementOrItsAncestorNeedsStyleRecalc): Deleted.
(WebCore::updateStyleIfNeededForElement): Deleted.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::colorFromPrimitiveValue):

Mark style as using explicit inheritance if 'currentcolor' value is used.

LayoutTests:

  • fast/css/getComputedStyle/getComputedStyle-style-resolution-expected.txt: Added.
  • fast/css/getComputedStyle/getComputedStyle-style-resolution.html: Added.
1:04 AM Changeset in webkit [207754] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

ASSERTION FAILED: canvas()->securityOrigin()->toString() == cachedImage.origin()->toString()
https://bugs.webkit.org/show_bug.cgi?id=163242

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-24
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/cross-origin-cached-images-canvas.html

We were previously on Origin HTTP header to check whether requests were made from different origins.
This is fine for CORS enabled requests but not for GET no CORS requests since they will not have any Origin header.

Now that CachedResource and CachedResourceRequest own their origin, it is best to use these directly.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::isRequestMatchingResourceOrigin):
(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest):

LayoutTests:

  • http/tests/security/cross-origin-cached-images-canvas-expected.txt: Added.
  • http/tests/security/cross-origin-cached-images-canvas.html: Added.
  • http/tests/security/resources/cross-origin-cached-image-canvas-iframe.html: Added.
12:52 AM Changeset in webkit [207753] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove CachedResource::passesSameOriginPolicyCheck
https://bugs.webkit.org/show_bug.cgi?id=163593

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-24
Reviewed by Andreas Kling.

No change of behavior.

Removing no-longer used code.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::redirectReceived):
(WebCore::CachedResource::passesAccessControlCheck): Deleted.
(WebCore::CachedResource::passesSameOriginPolicyCheck): Deleted.
(WebCore::CachedResource::responseForSameOriginPolicyChecks): Deleted.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::response):

12:49 AM Changeset in webkit [207752] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

Redirections should be upgraded if CSP policy says so
https://bugs.webkit.org/show_bug.cgi?id=163544

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-24
Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https.html

Introducing CachedResourceLoader::updateRequestAfterRedirection to do the checks that CachedResourceLoader is doing
to the initial request, but for redirection requests.

Implemented URL upgrade according CSP policy, as specified by fetch algorithm.
Minor refactoring in CachedResourceRequest to share some code.
Fixing some constness issues.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy):
(WebCore::CachedResourceLoader::canRequestAfterRedirection):
(WebCore::CachedResourceLoader::updateRequestAfterRedirection):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedResourceRequest.cpp:

(WebCore::upgradeInsecureResourceRequestIfNeeded):
(WebCore::CachedResourceRequest::upgradeInsecureRequestIfNeeded):

  • loader/cache/CachedResourceRequest.h:

LayoutTests:

  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-after-redirect.https.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html:
  • platform/mac/TestExpectations:
12:19 AM Changeset in webkit [207751] by matthew_hanson@apple.com
  • 7 edits in branches/safari-602-branch

Merge r207220. rdar://problem/28811939

12:19 AM Changeset in webkit [207750] by matthew_hanson@apple.com
  • 17 edits in branches/safari-602-branch

Merge r206771. rdar://problem/28811939

12:18 AM Changeset in webkit [207749] by matthew_hanson@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r206123. rdar://problem/28544885

12:18 AM Changeset in webkit [207748] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r207486. rdar://problem/28409742

12:18 AM Changeset in webkit [207747] by matthew_hanson@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r207275. rdar://problem/28810752

12:18 AM Changeset in webkit [207746] by matthew_hanson@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r207274. rdar://problem/28849629

12:18 AM Changeset in webkit [207745] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit/mac

Merge r207160. rdar://problem/28857480

12:18 AM Changeset in webkit [207744] by matthew_hanson@apple.com
  • 19 edits
    4 adds in branches/safari-602-branch

Merge r207159. rdar://problem/28857481

12:18 AM Changeset in webkit [207743] by matthew_hanson@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r206712. rdar://problem/28216065

12:18 AM Changeset in webkit [207742] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r206706. rdar://problem/28635081

12:18 AM Changeset in webkit [207741] by matthew_hanson@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r206074. rdar://problem/28216061

12:18 AM Changeset in webkit [207740] by matthew_hanson@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebKit2

Merge r203809. rdar://problem/28433607

12:18 AM Changeset in webkit [207739] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

12:05 AM Changeset in webkit [207738] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Build fix for Clang and libstdc++ configurations.

  • b3/testb3.cpp:

(JSC::B3::testAbsArgWithEffectfulDoubleConversion): Explicitly cast the
float-typed return value of fabs(float) to double in order to avoid
ambiguous calls to isIdentical().
(JSC::B3::testSqrtArgWithEffectfulDoubleConversion): Ditto for sqrt(float).

Oct 23, 2016:

10:02 PM Changeset in webkit [207737] by weinig@apple.com
  • 36 edits in trunk

[WebIDL] Add IDLType based toJS conversion
https://bugs.webkit.org/show_bug.cgi?id=163861

Reviewed by Darin Adler.

Source/WebCore:

Adds toJS<IDLType>() functions to be the new way of converting
from implementation types to JS types. These are implemented via
a similar mechanism to the convert<IDL>() functions, though specializations
of a JSConverter struct (rather than the Converter structs). This allows
us to support arbitrarily complex aggregate types easily (e.g. sequence<(Node or DOMString?)>).

  • Modules/geolocation/Geoposition.idl:
  • dom/Event.idl:

Add typedef for DOMTimeStamp. Eventually, our IDLParser should do this for us, but
for now it allows us to simplify the type system.

  • bindings/js/JSDOMBinding.h:

(WebCore::JSValueTraits::arrayJSValue): Deleted.
(WebCore::JSValueTraits<String>::arrayJSValue): Deleted.
(WebCore::JSValueTraits<double>::arrayJSValue): Deleted.
(WebCore::JSValueTraits<float>::arrayJSValue): Deleted.
(WebCore::jsArray): Deleted.
(WebCore::jsFrozenArray): Deleted.
(WebCore::NativeValueTraits<String>::nativeValue): Deleted.
(WebCore::NativeValueTraits<unsigned>::nativeValue): Deleted.
(WebCore::NativeValueTraits<float>::nativeValue): Deleted.
(WebCore::NativeValueTraits<double>::nativeValue): Deleted.
(WebCore::toNullableJSNumber): Deleted.
(WebCore::toJSArray): Deleted.
(WebCore::toJSBoolean): Deleted.
(WebCore::toJSNumber): Deleted.
(WebCore::toJSString): Deleted.
Remove many now-unneeded conversion functions.

  • bindings/js/JSDOMConvert.h:

(WebCore::toJS):
Add 5 primary toJS functions which take combinations of the following
arguments: ExecState, JSDOMGlobalObject, ThrowScope. All take the value
to be converted as well, except in the case of the throwScope ones, where
they take the value in an ExceptionOr<>.

To simplify the implementations of the JSConverter specializations, avoiding
the need for each one to implement their conversion up to 3 times (one for just
the value, one for the value and the ExecState, and one for the value, the ExecState
and the global object), each JSConverter instead specifies whether it's converter
needs an ExecState or global object via a static constexpr. We then use the
JSConverterOverloader template, to call the correct function. This can probably be
improved in the future, by inferring the number of arguments needed via SFINAE, but
this seemed like a more straightforward first cut.

(WebCore::JSConverter<IDLNullable<T>>::convert):
(WebCore::JSConverter<IDLBoolean>::convert):
(WebCore::JSConverter<IDLInterface<T>>::convert):
(WebCore::JSConverter<IDLAny>::convert):
(WebCore::JSConverter<IDLByte>::convert):
(WebCore::JSConverter<IDLOctet>::convert):
(WebCore::JSConverter<IDLShort>::convert):
(WebCore::JSConverter<IDLUnsignedShort>::convert):
(WebCore::JSConverter<IDLLong>::convert):
(WebCore::JSConverter<IDLUnsignedLong>::convert):
(WebCore::JSConverter<IDLLongLong>::convert):
(WebCore::JSConverter<IDLUnsignedLongLong>::convert):
(WebCore::JSConverter<IDLFloat>::convert):
(WebCore::JSConverter<IDLUnrestrictedFloat>::convert):
(WebCore::JSConverter<IDLDouble>::convert):
(WebCore::JSConverter<IDLUnrestrictedDouble>::convert):
(WebCore::JSConverter<IDLDOMString>::convert):
(WebCore::JSConverter<IDLUSVString>::convert):
(WebCore::JSConverter<IDLSequence<T>>::convert):
(WebCore::JSConverter<IDLFrozenArray<T>>::convert):
(WebCore::JSConverter<IDLEnumeration<T>>::convert):
(WebCore::JSConverter<IDLUnion<T...>>::convert):
There is slightly more duplication than I would have liked, for instance we have a
specialization for each numeric type, even though they are all the same, but that is
something that can be improved going forward.

(WebCore::Converter<IDLUnion<T...>>::convert)
Fix the normal IDLUnion converter to work with boolean types. This was caught by the
test case I added via TypeConversions.idl.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):

  • bindings/js/JSDataTransferCustom.cpp:

(WebCore::JSDataTransfer::types):

  • bindings/js/JSMediaStreamTrackCustom.cpp:

(WebCore::JSMediaStreamTrack::getCapabilities):

  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/JSSVGLengthCustom.cpp:

(WebCore::JSSVGLength::value):
Switch to use new toJS<> functions.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddStringifierOperationIfNeeded):
Fix stringifier function signature to contain an idlType.

(GenerateEnumerationsHeaderContent):
Remove now unnecessary JSValueTraits specializations.

(JSValueToNativeIsHandledByDOMConvert):
Renamed from IsHandledByDOMConvert, since that name is now ambiguous.

(JSValueToNative):
Update for new name of IsHandledByDOMConvert.

(NativeToJSValueIsHandledByDOMConvert):
Predicate guarding what types currently work with the new conversion system.

(NativeToJSValueDOMConvertNeedsState):
Predicate for determining if the ExecState is needed in the conversion function.

(NativeToJSValueDOMConvertNeedsGlobalObject):
Predicate for determining if the global object is needed in the conversion function.

(NativeToJSValue):
Move things around a little bit and start converting use the new toJS<> when possible.

  • bindings/scripts/IDLParser.pm:

(parseAttributeOrOperationRest):
Fix a missing place where were not setting the idlType.

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
  • bindings/scripts/test/JS/JSTestCEReactions.cpp:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
  • bindings/scripts/test/JS/JSTestCallback.cpp:
  • bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:
  • bindings/scripts/test/JS/JSTestException.cpp:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:
  • bindings/scripts/test/JS/JSTestInterface.cpp:
  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestSerialization.cpp:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/JS/JSattribute.cpp:

Update test results.

  • testing/TypeConversions.h:

(WebCore::TypeConversions::testUnion):
(WebCore::TypeConversions::setTestUnion):
(WebCore::TypeConversions::typeConversionsDictionarySequenceValue):
(WebCore::TypeConversions::typeConversionsDictionaryUnionValue):

  • testing/TypeConversions.idl:

Add a testUnion attribute, now that we can return unions to JS.

LayoutTests:

  • js/dom/webidl-type-mapping-expected.txt:
  • js/dom/webidl-type-mapping.html:
9:46 PM Changeset in webkit [207736] by Alan Bujtas
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r207727.

broke 15 selection test cases.

Reverted changeset:

"Do not update selection rect on dirty lineboxes."
https://bugs.webkit.org/show_bug.cgi?id=163862
http://trac.webkit.org/changeset/207727

4:36 PM Changeset in webkit [207735] by Michael Catanzaro
  • 289 edits in trunk/Source/WebKit2

[GTK] Remove DO NOT MODIFY headers from files that are no longer autogenerated
https://bugs.webkit.org/show_bug.cgi?id=163867

Reviewed by Darin Adler.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttrPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlobPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASectionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRulePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclarationPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheetPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValuePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterDataPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCommentPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementationPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelectionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindowUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragmentUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentTypePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFilePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollectionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocumentPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElementUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollectionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElementPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEventPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEventPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMapPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIteratorPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstructionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangePrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRangeUnstable.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetListPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTextPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalkerPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEventPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEventPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpressionPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolverPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResultPrivate.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdom.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdomautocleanups.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/webkitdomdefines.h:
3:55 PM Changeset in webkit [207734] by Chris Dumez
  • 7 edits in trunk/Source

addEventListener() / removeEventListener() should use a union for last parameter
https://bugs.webkit.org/show_bug.cgi?id=163863

Reviewed by Darin Adler.

Source/WebCore:

addEventListener() / removeEventListener() should use a union for last parameter:

No new tests, no Web-exposed behavior change.

  • bindings/js/JSDOMConvert.h:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):

  • dom/EventTarget.h:
  • dom/EventTarget.idl:

Source/WebKit/mac:

Cast BOOL to bool to help to compiler construct the new variant-type parameter.

  • DOM/DOMNode.mm:

(-[DOMNode addEventListener:listener:useCapture:]):
(-[DOMNode addEventListener:::]):
(-[DOMNode removeEventListener:listener:useCapture:]):
(-[DOMNode removeEventListener:::]):

3:38 PM Changeset in webkit [207733] by bshafiei@apple.com
  • 4 edits in tags/Safari-603.1.10.0.1/Source

Merged r207729. rdar://problem/28902292

3:37 PM Changeset in webkit [207732] by bshafiei@apple.com
  • 2 edits in tags/Safari-603.1.10.0.1/Source/WebKit2

Merged r207728. rdar://problem/28902292

3:36 PM Changeset in webkit [207731] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.10.0.1/Source

Versioning.

3:31 PM Changeset in webkit [207730] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.10.0.1

New tag.

1:04 PM Changeset in webkit [207729] by Chris Dumez
  • 4 edits in trunk/Source

Another unreviewed attempt to fix the WatchOS / TvOS build after r207585.
<rdar://problem/28902292>

Disable USE_CFURLCONNECTION on newer WatchOS / TvOS.

Source/WebKit2:

  • config.h:

Source/WTF:

  • wtf/Platform.h:
12:41 PM Changeset in webkit [207728] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed attempt to fix WatchOS / TvOS build after r207585.
<rdar://problem/28902292>

Enable NETWORK_SESSION on those platforms.

  • config.h:
9:27 AM Changeset in webkit [207727] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not update selection rect on dirty lineboxes.
https://bugs.webkit.org/show_bug.cgi?id=163862
<rdar://problem/28813156>

Reviewed by Simon Fraser.

Source/WebCore:

In addition to checking whether the renderer needs layout, we also need to check if its preferred
width is clean and stop computing the selection rects, if needed (while adding a renderer to the tree,
there's a transition phase where the parent's preferred width dirty bit is already set, but it does
not yet need layout).

Tests: fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::canUpdateSelectionOnRootLineBoxes):

LayoutTests:

  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash-expected.txt: Added.
  • fast/css-generated-content/dynamic-first-letter-selection-clear-crash.html: Added.
12:23 AM Changeset in webkit [207726] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: m_fonts in &WebCore::FontCascade::primaryFont
https://bugs.webkit.org/show_bug.cgi?id=163459

Reviewed by Darin Adler.

Source/WebCore:

The CSS Units and Values spec states that font-relative units, when used
in the font-size property, are resolved against the parent element. When
calc() is specified, we were trying to resolve them against the current
element, which is impossible because of the circular dependency. Instead,
we should resolve against the parent style the same way as when calc()
isn't specified.

Test: fast/text/font-size-calc.html

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueFontSize):

LayoutTests:

  • fast/text/font-size-calc-expected.txt: Added.
  • fast/text/font-size-calc.html: Added.
Note: See TracTimeline for information about the timeline view.