Timeline



Oct 30, 2016:

10:22 PM Changeset in webkit [208138] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Skip media tests because timeout happens on many media tests.

Unreviewed EFL gardening.

Treat the media folder to *Skip* temporarily.

  • platform/efl/TestExpectations:
5:48 PM Changeset in webkit [208137] by Brent Fulgham
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed fix: Correct ChangeLog after my bad merge.

  • ChangeLog
4:27 PM Changeset in webkit [208136] by Michael Catanzaro
  • 11 edits in trunk/Source/ThirdParty/ANGLE

-Wpragmas warning spam from angleutils.h
https://bugs.webkit.org/show_bug.cgi?id=164207

Reviewed by Darin Adler.

Use #pragma clang instead of #pragma GCC since all of the warnings we need to suppress are
Clang-specific warnings. GCC ignores unknown pragmas and does not warn, but it does warn if
any GCC pragma is invalid.

Note that this might still be broken for MSVCC, as MSVCC warns when it sees unknown pragmas.

  • changes.diff:
  • src/common/angleutils.cpp:

(FormatString):

  • src/common/angleutils.h:

(MakeStaticString):

  • src/common/debug.cpp:
  • src/common/mathutil.cpp:
  • src/libANGLE/Caps.cpp:

(gl::TextureCapsMap::get):
(gl::GetExtensionInfoMap):

  • src/libANGLE/Device.cpp:

(egl::GetDeviceSet):

  • src/libANGLE/Display.cpp:

(egl::Display::getClientExtensionString):

  • src/libANGLE/formatutils.cpp:

(gl::GetInternalFormatMap):
(gl::GetAllSizedInternalFormats):

  • src/libANGLE/validationES3.cpp:

(gl::IsValidES3CopyTexImageCombination):

3:36 PM Changeset in webkit [208135] by Darin Adler
  • 33 edits
    1 delete in trunk

Move Element, NamedNodeMap, and DOMStringMap from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=164206

Reviewed by Chris Dumez.

Source/WebCore:

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertyNames): Use modern for loop, and
updates since the names function now returns a vector.
(WebCore::JSDOMStringMap::putDelegate): Use propagateException. Also return
true any time an exception is raised. Since true tells the caller to return
without doing any work, we always want to return that on an exception.

  • dom/DatasetDOMStringMap.cpp:

(WebCore::DatasetDOMStringMap::names): Renamed from getNames and made this
return a Vector instead of populating a passed-in vector.
(WebCore::DatasetDOMStringMap::setItem): Use ExceptionOr.

  • dom/DatasetDOMStringMap.h: Updated for above.
  • dom/Document.cpp:

(WebCore::Document::adoptNode): Updated to use ExceptionOr for
removeAttributeNode. Changed to use remove rather than removeChild for
better clarity.

  • dom/Element.cpp:

(WebCore::Element::setAttribute): Use ExceptionOr.
(WebCore::Element::createShadowRoot): Deleted. Unused.
(WebCore::Element::attachShadow): Use ExceptionOr.
(WebCore::Element::shadowRootForBindings): Tweaked a bit.
(WebCore::Element::userAgentShadowRoot): Removed unneeded if statemment.
(WebCore::Element::ensureUserAgentShadowRoot): Tweaked a bit.
(WebCore::Element::setAttributeNode): Use ExceptionOr.
(WebCore::Element::setAttributeNodeNS): Ditto.
(WebCore::Element::removeAttributeNode): Ditto.
(WebCore::Element::parseAttributeName): Ditto. Also changed return result
to be a QualifiedName instead of using an out argument.
(WebCore::Element::setAttributeNS): Ditto.
(WebCore::Element::mergeWithNextTextNode): Ditto.
(WebCore::Element::setOuterHTML): Ditto.
(WebCore::Element::setInnerHTML): Ditto.
(WebCore::Element::matches): Ditto.
(WebCore::Element::closest): Ditto.
(WebCore::Element::insertAdjacent): Ditto.
(WebCore::Element::insertAdjacentElement): Ditto.
(WebCore::contextNodeForInsertion): Ditto.
(WebCore::contextElementForInsertion): Added. Helper for the
insertAdjacentHTML function to eliminate a local variable.
(WebCore::Element::insertAdjacentHTML): Use ExceptionOr.
(WebCore::Element::insertAdjacentText): Ditto.

  • dom/Element.h: Updated for above.
  • dom/Element.idl: Use non-legacy exceptions.
  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::removeNamedItem): Use ExceptionOr.
(WebCore::NamedNodeMap::supportedPropertyNames): Updated to check
which strings should be removed without copying the strings.
(WebCore::NamedNodeMap::removeNamedItemNS): Use ExceptionOr.
(WebCore::NamedNodeMap::setNamedItem): Ditto. Removed overload for
legacy bindings; move that to the bindings themselves.

  • dom/NamedNodeMap.h: Updated for above.
  • dom/NamedNodeMap.idl: Use non-legacy exceptions.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setOuterText): Updated since mergeWithNextTextNode
now uses ExceptionOr.

  • inspector/DOMEditor.cpp: Updated to use ExceptionOr.
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::toErrorString): Added an overload for
Exception.
(WebCore::InspectorDOMAgent::setAttributesAsText): Updated to use ExceptionOr.

  • inspector/InspectorDOMAgent.h: Updated for above.
  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Updated to
use the correct version of setAttribute; there was never a risk that there
would be an exception, but now that's clearer.

  • testing/Internals.cpp:

(WebCore::Internals::ensureShadowRoot): Deleted. Was unused.
(WebCore::Internals::createShadowRoot): Ditto.

  • testing/Internals.idl: Updated for above.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleNamespaceAttributes): Use updated parseAttributeName,
which uses ExceptionOr and a return value instead of an out argument.
(WebCore::handleElementAttributes): Ditto.

Source/WebKit/mac:

  • DOM/DOMElement.mm:

(-[DOMElement setInnerHTML:]): Updated exception handling.
(-[DOMElement setOuterHTML:]): Ditto.
(-[DOMElement setAttribute:value:]): Ditto.
(-[DOMElement setAttributeNode:]): Ditto.
(-[DOMElement removeAttributeNode:]): Ditto.
(-[DOMElement setAttributeNS:qualifiedName:value:]): Ditto.
(-[DOMElement setAttributeNodeNS:]): Ditto.
(-[DOMElement matches:]): Ditto.
(-[DOMElement closest:]): Ditto.
(-[DOMElement webkitMatchesSelector:]): Ditto.

  • DOM/DOMHTMLElement.mm:

(-[DOMHTMLElement insertAdjacentElement:element:]): Ditto.
(-[DOMHTMLElement insertAdjacentHTML:html:]): Ditto.
(-[DOMHTMLElement insertAdjacentText:text:]): Ditto.

  • DOM/DOMNamedNodeMap.mm:

(-[DOMNamedNodeMap setNamedItem:]): Ditto.
(-[DOMNamedNodeMap removeNamedItem:]): Ditto.
(-[DOMNamedNodeMap setNamedItemNS:]): Ditto.
(-[DOMNamedNodeMap removeNamedItemNS:localName:]): Ditto.

Source/WebKit/win:

  • DOMCoreClasses.cpp:

(DOMElement::setAttribute): Updated exception handling.

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::setInnerHTML): Ditto.

Source/WebKit2:

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

(webkit_dom_named_node_map_set_named_item): Updated exception handling.
(webkit_dom_named_node_map_remove_named_item): Ditto.
(webkit_dom_named_node_map_set_named_item_ns): Ditto.
(webkit_dom_named_node_map_remove_named_item_ns): Ditto.

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

(webkit_dom_element_set_attribute): Ditto.
(webkit_dom_element_set_attribute_node): Ditto.
(webkit_dom_element_remove_attribute_node): Ditto.
(webkit_dom_element_set_attribute_ns): Ditto.
(webkit_dom_element_set_attribute_node_ns): Ditto.
(webkit_dom_element_matches): Ditto.
(webkit_dom_element_closest): Ditto.
(webkit_dom_element_webkit_matches_selector): Ditto.
(webkit_dom_element_insert_adjacent_element): Ditto.
(webkit_dom_element_insert_adjacent_html): Ditto.
(webkit_dom_element_insert_adjacent_text): Ditto.
(webkit_dom_element_set_inner_html): Ditto.
(webkit_dom_element_set_outer_html): Ditto.

  • WebProcess/InjectedBundle/API/mac/WKDOMElement.mm:

(-[WKDOMElement setAttribute:value:]): Ditto.

LayoutTests:

  • fast/dom/resources/shadow-test-driver.js: Deleted. Unused.
3:35 PM Changeset in webkit [208134] by weinig@apple.com
  • 11 edits in trunk

[WebIDL] Restructure IDLParser structs to better match modern WebIDL concepts
https://bugs.webkit.org/show_bug.cgi?id=164208

Reviewed by Darin Adler.

Source/WebCore:

Restructure IDLParsers structs to match modern WebIDL conventions:

  • Rename structs to have more WebCore like naming, consistently using the prefix IDL.
  • Remove domSignature. Sinking it's properties into the structs that contained it.
  • Add IDLArgument, replacing the use of domSignatures for arguments. IDLArgument is the subset of domSignatures needed for arguments.
  • Rename domFunction to IDLOperation (matching WebILD nomenclature), replace signature with its own name, type (for returnType), specials, and extended attributes properties.
  • Give IDLAttribute it's own name, type and extended attributes properties.
  • Add IDLDictionaryMember, replacing the use of domSignature as the type of members in IDLDictionary. Give it name, type, isRequired, default and extendedAttributes properties.
  • Renamed Typedef to be IDLTypedef. Remove the extended attributes property as those are not allowed in typedefs per-PebIDL.

Also fix some parsing issues:

  • Stop parsing 'in' directives in function arguments.
  • Stop parsing extended attributes in typedefs.
  • Support applying typedefs to types deep in aggregate types (e.g. (sequence<(LONG or STRING)> or DOMString)?).
  • bindings/scripts/CodeGenerator.pm:
  • bindings/scripts/IDLParser.pm:
  • bindings/scripts/generate-bindings.pl:

Update for new struct types.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:
  • bindings/scripts/test/TestTypedefs.idl:

Remove test which tested extended attributes in typedefs,
and add a test which tests typedefs used in deep type structures.

  • page/make_settings.pl:

Don't generate the 'in' prefix for arguments in IDL files.

Tools:

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

Update for new struct types.

3:33 PM Changeset in webkit [208133] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix nth-child serialization
https://bugs.webkit.org/show_bug.cgi?id=164210

Reviewed by Darin Adler.

Our nth-child serialization preserves what the author originally
typed. Even though this is not spec-compliant (the latest CSS Syntax
spec has a dumbed down serialization process that doesn't preserve what
the author originally typed), I think it's better behavior to preserve
this text.

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::serialize):
Fix a bug in the serialization of number tokens that started with
a plus sign. Make sure the plus sign is preserved.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumePseudo):
Grab the range of tokens from after the ( and up to the ) or the "of"
and then serialize them. Strip whitepsace from the ends and set that
as the selector argument.

1:48 PM Changeset in webkit [208132] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit/win

Unreviewed build fix (Direct2D)

  • WebView.cpp:

(WebView::paintWithDirect2D): Update for revised GraphicsContext
begin/end draw behavior.

1:47 PM Changeset in webkit [208131] by Brent Fulgham
  • 9 edits
    1 delete in trunk/Source/WebCore

[Win][Direct2D] Correct bookkeeping for begin/end draw pairs
https://bugs.webkit.org/show_bug.cgi?id=163898

Reviewed by Darin Adler.

Simon pointed out that GraphicsContext objects are generally only created at
the time we intend to do drawing, so calling 'BeginDraw' as part of object
construction, and 'EndDraw' at time of destruction should be sufficient.

As usual, he was correct.

This patch gets rid of unneeded code and greatly simplifies the Direct2D
drawing path.

Tested by existing layout tests.

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

(WebCore::Gradient::fill):Remove unneeded use
of 'RenderTargetScopedDrawing.h'.

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::releaseWindowsContext): Remove unneeded use
of RenderTargetScopedDrawing class.
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): Enter
the 'BeginDraw' state at object creation.
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate): End
draw state at object destruction.
(WebCore::GraphicsContextPlatformPrivate::clip): Remove unneeded call to 'beginDraw'.
(WebCore::GraphicsContextPlatformPrivate::beginDraw): Renamed from 'beginDrawIfNeeded'.
(WebCore::GraphicsContextPlatformPrivate::endDraw): Get rid of draw state flags.
(WebCore::GraphicsContext::beginDraw): Renamed from 'beginDrawIfNeeded'.
(WebCore::GraphicsContext::flush): Added.
(WebCore::GraphicsContext::drawWithoutShadow): Remove unneeded use of
RenderTargetScopedDrawing class.
(WebCore::GraphicsContext::drawWithShadow): Ditto.
(WebCore::GraphicsContext::platformFillRoundedRect): Ditto.
(WebCore::GraphicsContext::fillRectWithRoundedHole): Ditto.
(WebCore::GraphicsContext::didBeginDraw): Deleted.
(WebCore::GraphicsContextPlatformPrivate::beginDrawIfNeeded): Deleted.
(WebCore::GraphicsContext::beginDrawIfNeeded): Deleted.

  • platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h:

(WebCore::GraphicsContextPlatformPrivate::didBeginDraw): Deleted.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData): Remove unneeded use of RenderTargetScopedDrawing class.
(WebCore::ImageBufferData::putData):

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::flushContext): Call new GraphicsContext 'flush' command.
(WebCore::ImageBuffer::draw): Remove unneeded use of RenderTargetScopedDrawing class.

  • platform/graphics/win/NativeImageDirect2D.cpp: Ditto.
  • platform/graphics/win/RenderTargetScopedDrawing.h: Removed.
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImage): Remove unneeded use of RenderTargetScopedDrawing class.

11:48 AM Changeset in webkit [208130] by hyatt@apple.com
  • 10 edits in trunk/Source/WebCore

[CSS Parser] Clean up the two types of descendant relations in CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=164203

Reviewed by Zalan Bujtas.

This patch gets rid of the separate boolean for double child and allows it
to be a unique relation type. Rename Descendant to DescendantSpace and
name the new relation DescendantDoubleChild.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:

(WebCore::CSSSelector::hasDescendantRelation):
(WebCore::CSSSelector::hasDescendantOrChildRelation):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setDescendantUseDoubleChildSyntax): Deleted.

  • css/RuleFeature.cpp:

(WebCore::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::determineLinkMatchType):

  • css/SelectorFilter.cpp:

(WebCore::SelectorFilter::collectIdentifierHashes):

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserSelector::appendTagHistory):

  • css/parser/CSSParserValues.h:

(WebCore::CSSParserSelector::setDescendantUseDoubleChildSyntax): Deleted.

  • css/parser/CSSSelectorParser.cpp:

(WebCore::isDescendantCombinator):
(WebCore::CSSSelectorParser::consumeComplexSelector):
(WebCore::CSSSelectorParser::consumeCombinator):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::fragmentRelationForSelectorRelation):

9:35 AM Changeset in webkit [208129] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Unreviewed gardening

Fix build error on WinCairo.

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-30

  • platform/graphics/opentype/OpenTypeMathData.cpp:
9:18 AM Changeset in webkit [208128] by commit-queue@webkit.org
  • 10 edits in trunk

Use HarfBuzz ot-math API to parse the OpenType MATH table
https://bugs.webkit.org/show_bug.cgi?id=162671

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-30
Reviewed by Michael Catanzaro.

.:

  • Source/cmake/OptionsGTK.cmake: Enable internal OpenType MATH parsing for HarfBuzz < 1.3.3.

Source/WebCore:

No new tests, already covered by existing tests.

  • platform/graphics/opentype/OpenTypeMathData.cpp: Add alternative implementation relying on

HarfBuzz's new OpenType MATH API.

  • platform/graphics/opentype/OpenTypeMathData.h: Ditto.

(WebCore::OpenTypeMathData::hasMathData):
(WebCore::OpenTypeMathData::HbFontDeleter::operator()):

Source/WTF:

  • wtf/Platform.h: By default, do not enable internal OpenType MATH parsing on GTK.

LayoutTests:

Rebaseline one test for large operators due to small rendering changes.

  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
8:56 AM Changeset in webkit [208127] by hw1008.kim@samsung.com
  • 2 edits in trunk

[GTK] Build break by missing geoclue-2.0.
https://bugs.webkit.org/show_bug.cgi?id=164170

Reviewed by Michael Catanzaro.

Revise the module name for pkg_check_modules() in FindGeoClue2.cmake.

  • Source/cmake/FindGeoClue2.cmake: replace geoclue-2.0 with libgeoclue-2.0.
8:15 AM Changeset in webkit [208126] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Remove duplicated media/media-source tests in TestExpectations

Unreviewed EFL gardening.

Tests of media/media-source have caused timeout on EFL layout test. However
it hasn't been marked to *Skip* because some tests are multiple marked.
So this patch cleans up it, and skip media/media-source for a while.

  • platform/efl/TestExpectations:
6:42 AM Changeset in webkit [208125] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Support unprefixed image-sets
https://bugs.webkit.org/show_bug.cgi?id=164198

Reviewed by Dean Jackson.

  • css/CSSValueKeywords.in:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeImage):

3:03 AM Changeset in webkit [208124] by Yusuke Suzuki
  • 58 edits
    1 add in trunk/Source

[DOM] Introduce WebCore::jsDynamicDowncast
https://bugs.webkit.org/show_bug.cgi?id=164137

Reviewed by Darin Adler.

Source/WebCore:

In WebCore, we have several extended JSTypes, like JSElementType.
For these types, WebCore offers the faster casting function compared
to JSC::jsDynamicCast. For example, for JSElementType, we have
jsElementCast.

The problem is that we may fall into the slow code if we choose
JSC::jsDynamicCast by accident. Selecting the appropriate function
requires special care in the IDL code generator when we would like
to use faster casting functions.

This patch implements a new casting function, WebCore::jsDynamicDowncast.
It is a thin wrapper to the JSC::jsDynamicCast. But it selects the
faster casting functions correctly by template specialization.

We do not choose the way specializing JSC::jsDynamicCast directly.
If we forget to include the header that specializes JSC::jsDyanmicCast,
it does not cause any compile errors, but it causes performance regression.
This bug is hard to figure out. To avoid this problem, we add a new function.

Outside JSC, only Tools' DumpRenderTree uses JSC::jsDynamicCast.
This code has FIXME that we should use JSC APIs instead of directly calling
JSC thingy. So this should be solved in the layer of JSC APIs and changing
this jsDynamicCast to WebCore's jsDynamicDowncast and exposing WebCore's thingy
are not good change. So we leave the code as is.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSApplePaySessionCustom.cpp:

(WebCore::JSApplePaySession::completeShippingMethodSelection):
(WebCore::JSApplePaySession::completeShippingContactSelection):
(WebCore::JSApplePaySession::completePaymentMethodSelection):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • bindings/js/JSDOMBinding.h:

(WebCore::castThisValue):
(WebCore::toArrayBufferView):

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorTraits>::next):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::toWrapped):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDocumentCustom.h:

(WebCore::jsDocumentCast):

  • bindings/js/JSDynamicDowncast.h: Added.

(WebCore::JSDynamicCastTrait::cast):
(WebCore::JSDynamicCastTrait<JSNode>::cast):
(WebCore::JSDynamicCastTrait<JSElement>::cast):
(WebCore::JSDynamicCastTrait<JSDocument>::cast):
(WebCore::JSDynamicCastTrait<JSEvent>::cast):
(WebCore::jsDynamicDowncast):

  • bindings/js/JSElementCustom.h:

(WebCore::jsElementCast):

  • bindings/js/JSEventCustom.h:

(WebCore::jsEventCast):

  • bindings/js/JSEventListener.cpp:

(WebCore::setDocumentEventHandlerAttribute):

  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::jsEventTargetCast):

  • bindings/js/JSMediaStreamTrackCustom.cpp:

(WebCore::JSMediaStreamTrack::getSettings):
(WebCore::JSMediaStreamTrack::getCapabilities):

  • bindings/js/JSNodeCustom.h:

(WebCore::jsNodeCast):

  • bindings/js/JSPluginElementFunctions.cpp:

(WebCore::pluginElementPropertyGetter):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamDefaultReader):

  • bindings/js/JSReadableStreamSourceCustom.cpp:

(WebCore::startReadableStream):
(WebCore::JSReadableStreamSource::start):
(WebCore::pullReadableStream):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::toJSDedicatedWorkerGlobalScope):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize):

  • bindings/js/StructuredClone.cpp:

(WebCore::structuredCloneArrayBufferView):

  • bindings/scripts/CodeGeneratorJS.pm:

(GetCastingHelperForThisObject):
(GenerateImplementation):

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

(WebCore::jsInterfaceNameConstructor):
(WebCore::setJSInterfaceNameConstructor):
(WebCore::JSInterfaceName::toWrapped):

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

(WebCore::BindingCaller<JSTestActiveDOMObject>::castForAttribute):
(WebCore::BindingCaller<JSTestActiveDOMObject>::castForOperation):
(WebCore::jsTestActiveDOMObjectConstructor):
(WebCore::setJSTestActiveDOMObjectConstructor):
(WebCore::JSTestActiveDOMObject::toWrapped):

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

(WebCore::BindingCaller<JSTestCEReactions>::castForAttribute):
(WebCore::BindingCaller<JSTestCEReactions>::castForOperation):
(WebCore::jsTestCEReactionsConstructor):
(WebCore::setJSTestCEReactionsConstructor):
(WebCore::JSTestCEReactions::toWrapped):

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

(WebCore::BindingCaller<JSTestCEReactionsStringifier>::castForAttribute):
(WebCore::BindingCaller<JSTestCEReactionsStringifier>::castForOperation):
(WebCore::jsTestCEReactionsStringifierConstructor):
(WebCore::setJSTestCEReactionsStringifierConstructor):
(WebCore::JSTestCEReactionsStringifier::toWrapped):

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

(WebCore::jsTestClassWithJSBuiltinConstructorConstructor):
(WebCore::setJSTestClassWithJSBuiltinConstructorConstructor):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped):

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

(WebCore::jsTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::setJSTestCustomConstructorWithNoInterfaceObjectConstructor):
(WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):

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

(WebCore::BindingCaller<JSTestCustomNamedGetter>::castForOperation):
(WebCore::jsTestCustomNamedGetterConstructor):
(WebCore::setJSTestCustomNamedGetterConstructor):
(WebCore::JSTestCustomNamedGetter::toWrapped):

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

(WebCore::BindingCaller<JSTestDOMJIT>::castForAttribute):
(WebCore::jsTestDOMJITConstructor):
(WebCore::setJSTestDOMJITConstructor):

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

(WebCore::BindingCaller<JSTestEventConstructor>::castForAttribute):
(WebCore::jsTestEventConstructorConstructor):
(WebCore::setJSTestEventConstructorConstructor):

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

(WebCore::BindingCaller<JSTestEventTarget>::castForOperation):
(WebCore::jsTestEventTargetConstructor):
(WebCore::setJSTestEventTargetConstructor):
(WebCore::JSTestEventTarget::toWrapped):

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

(WebCore::BindingCaller<JSTestException>::castForAttribute):
(WebCore::jsTestExceptionConstructor):
(WebCore::setJSTestExceptionConstructor):
(WebCore::JSTestException::toWrapped):

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

(WebCore::jsTestGenerateIsReachableConstructor):
(WebCore::setJSTestGenerateIsReachableConstructor):
(WebCore::JSTestGenerateIsReachable::toWrapped):

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

(WebCore::BindingCaller<JSTestGlobalObject>::castForAttribute):
(WebCore::BindingCaller<JSTestGlobalObject>::castForOperation):
(WebCore::jsTestGlobalObjectConstructor):
(WebCore::setJSTestGlobalObjectConstructor):
(WebCore::JSTestGlobalObject::toWrapped):

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

(WebCore::BindingCaller<JSTestInterface>::castForAttribute):
(WebCore::BindingCaller<JSTestInterface>::castForOperation):
(WebCore::jsTestInterfaceConstructor):
(WebCore::setJSTestInterfaceConstructor):
(WebCore::JSTestInterface::toWrapped):

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

(WebCore::BindingCaller<JSTestInterfaceLeadingUnderscore>::castForAttribute):
(WebCore::jsTestInterfaceLeadingUnderscoreConstructor):
(WebCore::setJSTestInterfaceLeadingUnderscoreConstructor):
(WebCore::JSTestInterfaceLeadingUnderscore::toWrapped):

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

(WebCore::BindingCaller<JSTestIterable>::castForOperation):
(WebCore::jsTestIterableConstructor):
(WebCore::setJSTestIterableConstructor):
(WebCore::JSTestIterable::toWrapped):

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

(WebCore::BindingCaller<JSTestJSBuiltinConstructor>::castForAttribute):
(WebCore::BindingCaller<JSTestJSBuiltinConstructor>::castForOperation):
(WebCore::jsTestJSBuiltinConstructorConstructor):
(WebCore::setJSTestJSBuiltinConstructorConstructor):

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

(WebCore::BindingCaller<JSTestMediaQueryListListener>::castForOperation):
(WebCore::jsTestMediaQueryListListenerConstructor):
(WebCore::setJSTestMediaQueryListListenerConstructor):
(WebCore::JSTestMediaQueryListListener::toWrapped):

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

(WebCore::jsTestNamedConstructorConstructor):
(WebCore::setJSTestNamedConstructorConstructor):
(WebCore::JSTestNamedConstructor::toWrapped):

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

(WebCore::BindingCaller<JSTestNode>::castForAttribute):
(WebCore::BindingCaller<JSTestNode>::castForOperation):
(WebCore::jsTestNodeConstructor):
(WebCore::setJSTestNodeConstructor):

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

(WebCore::BindingCaller<JSTestNondeterministic>::castForAttribute):
(WebCore::BindingCaller<JSTestNondeterministic>::castForOperation):
(WebCore::jsTestNondeterministicConstructor):
(WebCore::setJSTestNondeterministicConstructor):
(WebCore::JSTestNondeterministic::toWrapped):

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

(WebCore::BindingCaller<JSTestObj>::castForAttribute):
(WebCore::BindingCaller<JSTestObj>::castForOperation):
(WebCore::jsTestObjConstructor):
(WebCore::setJSTestObjConstructor):
(WebCore::JSTestObj::toWrapped):

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

(WebCore::jsTestOverloadedConstructorsConstructor):
(WebCore::setJSTestOverloadedConstructorsConstructor):
(WebCore::JSTestOverloadedConstructors::toWrapped):

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

(WebCore::jsTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::setJSTestOverloadedConstructorsWithSequenceConstructor):
(WebCore::JSTestOverloadedConstructorsWithSequence::toWrapped):

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

(WebCore::BindingCaller<JSTestOverrideBuiltins>::castForOperation):
(WebCore::jsTestOverrideBuiltinsConstructor):
(WebCore::setJSTestOverrideBuiltinsConstructor):
(WebCore::JSTestOverrideBuiltins::toWrapped):

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

(WebCore::BindingCaller<JSTestSerialization>::castForAttribute):
(WebCore::BindingCaller<JSTestSerialization>::castForOperation):
(WebCore::jsTestSerializationConstructor):
(WebCore::setJSTestSerializationConstructor):
(WebCore::JSTestSerialization::toWrapped):

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

(WebCore::BindingCaller<JSTestSerializedScriptValueInterface>::castForAttribute):
(WebCore::jsTestSerializedScriptValueInterfaceConstructor):
(WebCore::setJSTestSerializedScriptValueInterfaceConstructor):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped):

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

(WebCore::BindingCaller<JSTestTypedefs>::castForAttribute):
(WebCore::BindingCaller<JSTestTypedefs>::castForOperation):
(WebCore::jsTestTypedefsConstructor):
(WebCore::setJSTestTypedefsConstructor):
(WebCore::JSTestTypedefs::toWrapped):

  • bridge/objc/WebScriptObject.mm:

(-[WebScriptObject setValue:forKey:]):

  • bridge/runtime_array.cpp:

(JSC::RuntimeArray::lengthGetter):

  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::lengthGetter):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

Source/WebKit2:

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::elementForNodeHandle):

2:14 AM Changeset in webkit [208123] by Yusuke Suzuki
  • 3 edits
    1 add in trunk

[JSC] JSON.stringify should handle Proxy which is non JSArray but isArray is true
https://bugs.webkit.org/show_bug.cgi?id=164123

Reviewed by Mark Lam.

JSTests:

  • stress/json-stringify-with-non-jsarray-array.js: Added.

(shouldBe):
(shouldBe.JSON.stringify.new.Proxy):

Source/JavaScriptCore:

When JSON.stringify encounter the undefined value, the result depends
on the context. If it is produced under the object property context, we ignore
that property. On the other hand, if it is produced under the array element
context, we produce "null".

For example,

https://tc39.github.io/ecma262/#sec-serializejsonobject section 8.b.
Skip the property that value is undefined.
JSON.stringify({ value: undefined }); => "{}"

https://tc39.github.io/ecma262/#sec-serializejsonarray section 8.b.
Write "null" when the element is undefined.
JSON.stringify([undefined]); => "[null]"

At that time, we decide the context based on the holder->inherits(JSArray::info()).
But it is not correct since we have a holder that creates the array element context
but it is not JSArray subtype. ES6 Proxy to an array is one example. In that case,
isArray(exec, proxy) returns true, but inherits(JSArray::info()) returns false.
Since we already have this isArray() value in Stringifier::Holder, we should reuse
this here. And this is the correct behavior in the ES6 spec.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::Holder::isArray):
(JSC::Stringifier::stringify):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::Holder):
(JSC::Stringifier::Holder::appendNextProperty):

2:14 AM Changeset in webkit [208122] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening. Mark some tests to Timeout.

  • platform/efl/TestExpectations: Urgent fix to run layout test.

Oct 29, 2016:

11:44 PM Changeset in webkit [208121] by Darin Adler
  • 2 edits in trunk/Tools

Fix failing ExtendedColor tests.

  • TestWebKitAPI/Tests/WebCore/ExtendedColor.cpp:

Changed the tests in two ways: First, use EXPECT_EQ instead of EXPECT_TRUE
for the string equality comparisons. This required including WTFStringUtilities.h.
Second, change expected results to match what the code is currently generating,
so alpha channels are "0.25" rather than "0.25 / 1". I'll let Dean fix both these
tests and the code if these results are incorrect.

8:53 PM Changeset in webkit [208120] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add font-variant-* keyword property support
https://bugs.webkit.org/show_bug.cgi?id=164195

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

8:48 PM Changeset in webkit [208119] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Fix text-emphasis-position parsing
https://bugs.webkit.org/show_bug.cgi?id=164197

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeTextEmphasisPosition):
(WebCore::CSSPropertyParser::parseSingleValue):

7:56 PM Changeset in webkit [208118] by Darin Adler
  • 62 edits in trunk/Source

Convert more of DOM from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=164173

Reviewed by Ryosuke Niwa.

Source/WebCore:

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia): Use ExceptionOr.
(WebCore::MediaDevices::enumerateDevices): Ditto.

  • Modules/mediastream/MediaDevices.h: Updated for above.
  • Modules/mediastream/MediaDevices.idl: Use non-legacy exceptions.
  • Modules/mediastream/MediaEndpointSessionDescription.cpp:

Added now-needed include of ExceptionCode.h.

  • Modules/mediastream/RTCConfiguration.cpp:

(WebCore::parseIceServer): Use ExceptionOr.
(WebCore::RTCConfiguration::create): Ditto.
(WebCore::RTCConfiguration::initialize): Ditto.

  • Modules/mediastream/RTCConfiguration.h: Updated for above.
  • Modules/mediastream/RTCConfiguration.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create): Use ExceptionOr.
(WebCore::RTCDTMFSender::insertDTMF): Ditto.

  • Modules/mediastream/RTCDTMFSender.h: Updated for above.
  • Modules/mediastream/RTCDTMFSender.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::create): Use ExceptionOr.
(WebCore::RTCDataChannel::setBinaryType): Ditto.
(WebCore::RTCDataChannel::send): Ditto.
(WebCore::RTCDataChannel::didReceiveRawData): Ditto.

  • Modules/mediastream/RTCDataChannel.h: Updated for above.

Also fhcanged resturn values to use const AtomicString& and
unsigned instead of unsigned long. Also made more private.
Also changed BinaryType into an enum class.

  • Modules/mediastream/RTCDataChannel.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCIceCandidate.cpp:

(WebCore::RTCIceCandidate::create): Use ExceptionOr.

  • Modules/mediastream/RTCIceCandidate.h: Updated for above.
  • Modules/mediastream/RTCIceCandidate.idl: Use non-legacy exception.
  • Modules/mediastream/RTCOfferAnswerOptions.cpp:

(WebCore::RTCOfferOptions::create): Use ExceptionOr.
(WebCore::RTCAnswerOptions::create): Ditto.

  • Modules/mediastream/RTCOfferAnswerOptions.h: Updated for above.

Also removed all virtual functions since nothing here is polymorphic
and initalized data members in the header.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::initializeWith): Use ExceptionOr.
(WebCore::RTCPeerConnection::addTrack): Ditto.
(WebCore::RTCPeerConnection::removeTrack): Ditto.
(WebCore::RTCPeerConnection::addTransceiver): Ditto.
(WebCore::RTCPeerConnection::completeAddTransceiver): Ditto.
(WebCore::RTCPeerConnection::queuedCreateOffer): Ditto.
(WebCore::RTCPeerConnection::queuedCreateAnswer): Ditto.
(WebCore::RTCPeerConnection::setConfiguration): Ditto.
(WebCore::RTCPeerConnection::createDataChannel): Ditto.

  • Modules/mediastream/RTCPeerConnection.h: Updated for above.
  • Modules/mediastream/RTCPeerConnection.idl: Use non-legacy exceptions.
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::replaceTrack): Use ExceptionOr.

  • Modules/mediastream/RTCRtpSender.h: Updated for above.
  • Modules/mediastream/RTCRtpSender.idl: Use non-legacy exception.
  • Modules/mediastream/RTCSessionDescription.cpp:

(WebCore::RTCSessionDescription::create): Use ExceptoinOr.

  • Modules/mediastream/RTCSessionDescription.h: Updated for above.

(WebCore::RTCSessionDescription::~RTCSessionDescription):

  • Modules/mediastream/RTCSessionDescription.idl: Use non-legacy exceptions.
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::verifyCustomHandlerURL): Just return a boolean, no exception.
(WebCore::verifyProtocolHandlerScheme): Ditto.
(WebCore::NavigatorContentUtils::registerProtocolHandler): Use ExceptionOr.
(WebCore::NavigatorContentUtils::isProtocolHandlerRegistered): Ditto.
(WebCore::NavigatorContentUtils::unregisterProtocolHandler): Ditto.

  • Modules/navigatorcontentutils/NavigatorContentUtils.h: Updated for above.
  • Modules/navigatorcontentutils/NavigatorContentUtils.idl: Use non-legacy exceptions.
  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevicesGetUserMediaPromiseFunction): Use propagateException.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsExplicitPropagateExceptionCall): Added. Helper function to decide whether
we need to call propagateException explicitly, if return value processing is not
going to propagate the exception for us.
(GenerateParametersCheck): Moved the code from GenerateReturnParameters inline
because it's almost as short as the function call. Use the newly created
NeedsExplicitPropagateExceptionCall function, which properly handles the case
where the return value is a promise.
(GenerateReturnParameters): Deleted.

  • dom/CharacterData.cpp:

(WebCore::CharacterData::substringData): Use ExceptionOr.
(WebCore::CharacterData::insertData): Ditto.
(WebCore::CharacterData::deleteData): Ditto.
(WebCore::CharacterData::replaceData): Ditto.

  • dom/CharacterData.h: Updated for above.
  • dom/CharacterData.idl: Use non-legacy exceptions.
  • dom/DataTransferItemList.h: Tried to use ExceptionOr, but this seems

like dead code that doesn't compile.

  • dom/DataTransferItemList.idl: Use non-legacy exceptions.
  • dom/MessagePort.idl: Use non-legacy exceptions, except this has

already been converted and was a custom binding.

  • dom/MutationObserver.cpp:

(WebCore::MutationObserver::observe): Use ExceptionOr.

  • dom/MutationObserver.h: Updated for above.
  • dom/MutationObserver.idl: Use non-legacy exception.
  • dom/Range.cpp:

(WebCore::deleteCharacterData): Updated use of calls that now use
ExceptionOr.
(WebCore::Range::processContentsBetweenOffsets): Ditto.
(WebCore::Range::insertNode): Ditto.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setInnerHTML): Use ExceptionOr.

  • dom/ShadowRoot.h: Updated for above.
  • dom/ShadowRoot.idl: Use non-legacy exception.
  • dom/Text.cpp:

(WebCore::Text::splitText): Use ExceptionOr.
(WebCore::Text::replaceWholeText): Removed unused ExceptionCode&.

  • dom/Text.h: Updated for above.
  • dom/Text.idl: Use non-legacy exception.
  • editing/ApplyBlockElementCommand.cpp:

(WebCore::isNewLineAtPosition): Rewrote to use data rather than
substringData; more efficient.

  • editing/DeleteFromTextNodeCommand.cpp:

(WebCore::DeleteFromTextNodeCommand::doApply): Updated to work with
functions that return ExceptionOr.
(WebCore::DeleteFromTextNodeCommand::doUnapply): Removed IGNORE_EXCEPTION.

  • editing/InsertIntoTextNodeCommand.cpp:

(WebCore::InsertIntoTextNodeCommand::InsertIntoTextNodeCommand):
Use WTFMove to avoid a little bit of reference count churn.
(WebCore::InsertIntoTextNodeCommand::doApply): Removed IGNORE_EXCEPTION.
(WebCore::InsertIntoTextNodeCommand::doReapply): Removed ExceptionCode.
(WebCore::InsertIntoTextNodeCommand::doUnapply): Removed IGNORE_EXCEPTION.

  • editing/SplitTextNodeCommand.cpp:

(WebCore::SplitTextNodeCommand::doApply): Updated to work with functions
that return ExceptionCode.
(WebCore::SplitTextNodeCommand::doUnapply): Removed ASSERT_NO_EXCEPTION.
(WebCore::SplitTextNodeCommand::insertText1AndTrimText2): Updated to work
with functions that return ExceptionCode.

  • html/HTMLTextFormControlElement.cpp:

Added now-needed include of ExceptionCode.h.

  • inspector/DOMEditor.cpp: Removed ExceptionCode out argument from calls

to replaceWholeText, which never throws an exception.

Source/WebKit/mac:

  • DOM/DOMCharacterData.mm:

(-[DOMCharacterData substringData:length:]): Updated since this
now uses ExceptionOr.
(-[DOMCharacterData insertData:data:]): Ditto.
(-[DOMCharacterData deleteData:length:]): Ditto.
(-[DOMCharacterData replaceData:length:data:]): Ditto.

  • DOM/DOMText.mm:

(-[DOMText splitText:]): Ditto.
(-[DOMText replaceWholeText:]): Removed unneeded exception code
handling from function that does not throw an exception.

Source/WebKit2:

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

(webkit_dom_character_data_substring_data): Updated since this
now uses ExceptionOr.
(webkit_dom_character_data_insert_data): Ditto.
(webkit_dom_character_data_delete_data): Ditto.
(webkit_dom_character_data_replace_data): Ditto.

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

(webkit_dom_text_replace_whole_text): Ditto.

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

(webkit_dom_text_split_text): Ditto.

6:38 PM Changeset in webkit [208117] by sbarati@apple.com
  • 29 edits
    4 adds in trunk

We should have a way of profiling when a get_by_id is pure and to emit a PureGetById in the DFG/FTL
https://bugs.webkit.org/show_bug.cgi?id=163305

Reviewed by Keith Miller.

JSTests:

  • microbenchmarks/pure-get-by-id-cse-2.js: Added.

(foo):

  • microbenchmarks/pure-get-by-id-cse.js: Added.

(foo):

  • stress/pure-get-by-id-cse-correctness.js: Added.

(assert):
(foo):

  • stress/pure-get-by-id-on-non-object.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

This creates a new GetById node in the DFG called PureGetById. We emit a
PureGetById when we profile that a get_by_id in the baseline never does
side effects. PureGetById speculates on the fact that it won't do side
effects. If it realizes that it must perform side effects, it will perform
the side effect, but also invalidate the CodeBlock that compiled it,
which will cause us to exit once we return back to the compiled code.
This allows us to have stricter clobberize rules for PureGetById which
model how getOwnPropertySlot(VMInquiry) behaves. This means that PureGetByIds
can be CSEd with each other, and that other things are more likely to
be CSEd around a PureGetById. To profile if a get_by_id does side
effects, I've added an extra bit into StructureStubInfo that we write
to when performing a get_by_id slow path call. If we notice that we
never do effects, inside the ByteCodeParser, we will emit a PureGetById
instead of a GetById.

To justify the performance benefit of this patch, I ran the suite of
benchmarks with useAccessInlining=false. This meant that we don't compile
any (Multi)GetByOffset/(Multi)PutByOffset. This was just to try to see if
this patch is worth anything at all in a world where we emit many
PureGetByIds. Running the benchmarks under this mode showed a 3.5% octane
improvement and a 15% kraken improvement. However, when running benchmarks
with useAccessInlining=true (the default JSC state), this patch is neutral.
I think the main reason for this is that the DFG is good at knowing when to
emit (Multi)GetByOffset, and most benchmarks that would benefit from
PureGetById are already emitting (Multi)GetByOffset. However, PureGetById can be
profitable when we encounter code that is too polymorphic for (Multi)GetByOffset.
It's reasonable to expect that JS code in the wild will fall into this use
case even though it might not be represented in some of the major JS benchmarks.
I wrote some microbenchmarks to demonstrate the benefits of PureGetById CSE,
and they were 30% (eliminating a few PureGetById from an add expression)
to 10x faster (eliminating a PureGetById in a loop).

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::canBecomeGetArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileTryGetById):
(JSC::DFG::SpeculativeJIT::compilePureGetById):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JITOperations.cpp:

(JSC::pureGetByIdCommon):

  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_try_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_try_get_by_id):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
(JSC::tryCacheGetByID):

  • jit/Repatch.h:
  • profiler/ProfilerJettisonReason.cpp:

(WTF::printInternal):

  • profiler/ProfilerJettisonReason.h:
3:34 PM Changeset in webkit [208116] by dino@apple.com
  • 11 edits
    5 adds in trunk

Parse color() function
https://bugs.webkit.org/show_bug.cgi?id=164146
<rdar://problems/29007218>

Reviewed by Darin Adler.

Source/WebCore:

Support the new CSS color() function:
https://drafts.csswg.org/css-color/#color-function

There are separate code paths for the old and new CSS parser.

Tests: css3/color/color-function-computed-style.html

css3/color/color-function-parsing.html

  • css/CSSComputedStyleDeclaration.cpp: Use Color directly, not via rgb().

(WebCore::ComputedStyleExtractor::currentColorOrValidColor):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSValueKeywords.in: Note that there is a color function, but the

keyword is already defined. Also add keywords for the color spaces.

  • css/SVGCSSValueKeywords.in: sRGB is used outside of SVG now.
  • css/parser/CSSParser.cpp: Old CSS parser code to handle color().

(WebCore::isPercent): Helper to tell if a ValueWithCalculation is a percentage or not.
(WebCore::CSSParser::parseColorInt): Renamed.
(WebCore::CSSParser::parseColorDouble): Helper to get a Number/Percentage into a double
(WebCore::CSSParser::parseRGBParameters):
(WebCore::CSSParser::parseColorFunctionParameters):
(WebCore::CSSParser::parseHSLParameters):
(WebCore::CSSParser::parseColorFromValue):
(WebCore::CSSParser::colorIntFromValue): Deleted.

  • css/parser/CSSParser.h:
  • css/parser/CSSPropertyParserHelpers.cpp: New CSS parser code to handle color().

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):

  • platform/graphics/Color.h:

(WebCore::Color::isValid): An extended color is valid.
(WebCore::Color::rgb): Move the code to a standalone inline
so that I could add a longer comment.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::cssText): Alpha output is only needed if != 1.

  • platform/graphics/cg/ColorCG.cpp: Handle ExtendedColor -> CGColor.

(WebCore::leakCGColor):
(WebCore::cachedCGColor):

LayoutTests:

Test that exercises the new color() function in CSS. It checks
all valid and invalid input, with the exception of fallback content.

  • css3/color/color-function-computed-style-expected.txt: Added.
  • css3/color/color-function-computed-style.html: Added.
  • css3/color/color-function-parsing-expected.txt: Added.
  • css3/color/color-function-parsing.html: Added.
2:42 PM Changeset in webkit [208115] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Disable -webkit-text-size-adjust when the context says to.
https://bugs.webkit.org/show_bug.cgi?id=164191

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

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

[CSS Parser] Match old parser's image-rendering values
https://bugs.webkit.org/show_bug.cgi?id=164190

Reviewed by Dean Jackson.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

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

[CSS Parser] Support -webkit-text value for background-clip and -webkit-background-clip
https://bugs.webkit.org/show_bug.cgi?id=164189

Reviewed by Dean Jackson.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundBox):
(WebCore::consumePrefixedBackgroundBox):

2:12 PM Changeset in webkit [208112] by commit-queue@webkit.org
  • 112 edits in trunk/Source/WebCore

Remove some unnecessary includes
https://bugs.webkit.org/show_bug.cgi?id=164174

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-29
Reviewed by Darin Adler.

12:14 PM Changeset in webkit [208111] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-aspect-ratio
https://bugs.webkit.org/show_bug.cgi?id=164187

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitAspectRatio):
(WebCore::CSSPropertyParser::parseSingleValue):

11:59 AM Changeset in webkit [208110] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support the caps lock indicator appearance
https://bugs.webkit.org/show_bug.cgi?id=164186

Reviewed by Simon Fraser.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

11:54 AM Changeset in webkit [208109] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support the alt property
https://bugs.webkit.org/show_bug.cgi?id=164184

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAlt):
(WebCore::CSSPropertyParser::parseSingleValue):

11:37 AM Changeset in webkit [208108] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Add support for -webkit-hyphenate-limit-* properties
https://bugs.webkit.org/show_bug.cgi?id=164183

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeHyphenateLimit):
(WebCore::CSSPropertyParser::parseSingleValue):

10:46 AM Changeset in webkit [208107] by hyatt@apple.com
  • 5 edits in trunk/Source/WebCore

[CSS Parser] Fix transform-origin and perspective-origin to parse as shorthands
https://bugs.webkit.org/show_bug.cgi?id=164178

Reviewed by Zalan Bujtas.

  • css/CSSPropertyNames.in:

Patch the transform-origin-x/y and perspective-origin-x/y properties
to use new converters that can handle keywords.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertPositionComponentX):
(WebCore::StyleBuilderConverter::convertPositionComponentY):
Add the new converters. They just call convertPositionComponent method
that we already use for object-position and background-position.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeTransformOrigin):
(WebCore::CSSPropertyParser::consumePerspectiveOrigin):
Changed to treat the properties as shorthands and add the longhand
properties once parsed.

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

  • css/parser/CSSPropertyParser.h:

Move the parsing into the shorthand method, since we're still treating
these properties as shorthands.

9:32 AM Changeset in webkit [208106] by wenson_hsieh@apple.com
  • 2 edits in trunk/Tools

UIScriptControllerIOS.mm should not be soft-linking UIKit
https://bugs.webkit.org/show_bug.cgi?id=164171

Reviewed by Darin Adler.

Follow-up to r208090. Instead of soft-linking, we can simply grab UIKeyboardPredictionView by name instead.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

9:21 AM Changeset in webkit [208105] by commit-queue@webkit.org
  • 38 edits
    3 deletes in trunk/LayoutTests

Remove testharness.js/testharnessreport.js unnecessary copies
https://bugs.webkit.org/show_bug.cgi?id=164112

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

Removing http/tests/w3c directory.
Contained tests are skipped in Mac, EFL and mark as failing in GTK.
These tests have not been modified since more than 3 years and are probably out-of-date compared to W3C wpt.

Updated other http/tests tests using w3c/tests/resources files to use directly /resources/ URLs.
These /resources/ URLs are using an alias to remove the need to have redundant copies.

Removed imported/blink/http/tests/resources testharness and testharnessreport.js since they are not used.
A few test files in imported/blink/http/tests use /resources/... URLs but they will not point to any of the removed files since the tests are run as file based.

  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html:
  • http/tests/media/resources/media-source/generate-config-change-tests.py:
  • http/tests/preload/single_download_preload_runner.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-uir-on-navigation.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-site.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-nested-frame.html:
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/nested-window.html:
  • http/tests/security/cross-origin-css-1.html:
  • http/tests/security/cross-origin-css-2.html:
  • http/tests/security/cross-origin-css-3.html:
  • http/tests/security/cross-origin-css-4.html:
  • http/tests/security/cross-origin-css-5.html:
  • http/tests/security/cross-origin-css-6.html:
  • http/tests/security/cross-origin-css-7.html:
  • http/tests/security/cross-origin-css-8.html:
  • http/tests/security/cross-origin-css-9.html:
  • http/tests/security/cross-origin-css-in-quirks-1.html:
  • http/tests/security/cross-origin-css-in-quirks-2.html:
  • http/tests/security/cross-origin-css-in-quirks-3.html:
  • http/tests/security/cross-origin-css-in-quirks-4.html:
  • http/tests/security/cross-origin-css-in-quirks-5.html:
  • http/tests/security/cross-origin-css-in-quirks-6.html:
  • http/tests/security/cross-origin-css-in-quirks-7.html:
  • http/tests/security/cross-origin-css-in-quirks-8.html:
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html:
  • http/tests/security/resources/post-origin-to-parent.html:
  • http/tests/security/same-origin-css-1.html:
  • http/tests/security/same-origin-css-2.html:
  • http/tests/security/same-origin-css-3.html:
  • http/tests/security/same-origin-css-4.html:
  • http/tests/security/same-origin-css-5.html:
  • http/tests/security/same-origin-css-6.html:
  • http/tests/security/same-origin-css-7.html:
  • http/tests/security/same-origin-css-8.html:
  • http/tests/security/same-origin-css-in-quirks.html:
  • http/tests/security/set-domain-remove-subdomain-for-ip-address.html:
  • http/tests/w3c/README: Removed.
  • http/tests/w3c/resources/WebIDLParser.js: Removed.
  • http/tests/w3c/resources/canvas-tests.css: Removed.
  • http/tests/w3c/resources/canvas-tests.js: Removed.
  • http/tests/w3c/resources/idlharness.js: Removed.
  • http/tests/w3c/resources/testharness.css: Removed.
  • http/tests/w3c/resources/testharness.js: Removed.
  • http/tests/w3c/resources/testharnessreport.js: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/basic-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/basic.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/monotonic-clock.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/resources/now_frame.html: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/HighResolutionTime/test_cross_frame_start.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_open.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_document_readiness_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigate_within_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_redirectCount_none.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_backforward.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_enums.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_navigation_type_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_no_previous_document.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_performance_attributes_exist_in_object.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_readwrite.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_exist.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_attributes_order.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_client_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_reload.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_server_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_timing_xserver_redirect.html: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects-expected.txt: Removed.
  • http/tests/w3c/webperf/approved/navigation-timing/html/test_unique_performance_objects.html: Removed.
  • http/tests/w3c/webperf/resources/Ahem.ttf: Removed.
  • http/tests/w3c/webperf/resources/all_resource_types.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_image.png: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green_with_allow_timing.php: Removed.
  • http/tests/w3c/webperf/resources/blank_page_green_with_onunload.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_meta_redirect.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_unload.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_yellow.htm: Removed.
  • http/tests/w3c/webperf/resources/blank_page_yellow_with_onunload.htm: Removed.
  • http/tests/w3c/webperf/resources/empty_script.js: Removed.
  • http/tests/w3c/webperf/resources/generate_resource.php: Removed.
  • http/tests/w3c/webperf/resources/gray_bg.css: Removed.
  • http/tests/w3c/webperf/resources/green_frame.htm: Removed.
  • http/tests/w3c/webperf/resources/inject_resource_test.html: Removed.
  • http/tests/w3c/webperf/resources/nested.css: Removed.
  • http/tests/w3c/webperf/resources/pagevistestharness.js: Removed.
  • http/tests/w3c/webperf/resources/redirect.php: Removed.
  • http/tests/w3c/webperf/resources/webperftestharness.js: Removed.
  • http/tests/w3c/webperf/resources/webperftestharnessextension.js: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_attribute_order.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_cached.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_connection_reuse.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_dynamic_insertion.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_frame_initiator_type.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_iframe_self_navigation.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_data_url.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_ignore_failures.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_initiator_types.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_redirects.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_reparenting.html: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Google/resource-timing/html/test_resource_script_types.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_cross_origin_resource_request.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_timing_allow_cross_origin_resource_request.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMarks.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_clearMeasures.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_entry_type.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_mark_exception.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_associate_with_navigation_timing.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_measure_exception.html: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist-expected.txt: Removed.
  • http/tests/w3c/webperf/submission/Intel/user-timing/test_user_timing_method_exist.html: Removed.
  • http/tests/xmlhttprequest/readystatechange-and-abort.html:
  • http/tests/xmlhttprequest/response-json-and-readystate.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html:
  • http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html:
  • imported/blink/http/tests/resources/testharness.js: Removed.
  • imported/blink/http/tests/resources/testharnessreport.js: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
9:03 AM Changeset in webkit [208104] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake][Win] Visual Studio invokes make_settings.pl twice
https://bugs.webkit.org/show_bug.cgi?id=163774

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-29
Reviewed by Michael Catanzaro.

build-webkit recompiles some files just after finishing
build-webkit in case of using CMake VisualStudio generator because
both WebCoreDerivedSources.vcxproj and WebCoreTestSupport.vcxproj
triggers make_settings.pl.

make_settings.pl generates four files
InternalSettingsGenerated.{h,cpp,idl} and SettingsMacros.h.
WebCoreDerivedSources depends on SettingsMacros.h, and
WebCoreTestSupport depends on InternalSettingsGenerated.cpp.

This problem is described in CMake documentation:
<https://cmake.org/cmake/help/v3.0/command/add_custom_command.html>

Do not list the output in more than one independent target that may
build in parallel or the two instances of the rule may conflict

To solve this problem, only SettingsMacros.h is specified as
OUTPUT of add_custom_command, and other generated files are marked
as BYPRODUCTS. As the result, only WebCoreDerivedSources target
triggers make_settings.pl. And other targets already have a
dependency to WebCoreDerivedSources target.

To support earlier versions than CMake 3.2, it uses GENERATED
source file property instead of BYPRODUCTS option.

  • Source/cmake/WebKitMacros.cmake(GENERATE_SETTINGS_MACROS):

Removed extra output files from OUTPUT of add_custom_command and
added BYPRODUCTS option.

8:22 AM Changeset in webkit [208103] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support -webkit-background-composite
https://bugs.webkit.org/show_bug.cgi?id=164179

Reviewed by Zalan Bujtas.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundComponent):
(WebCore::CSSPropertyParser::parseSingleValue):

6:46 AM Changeset in webkit [208102] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

REGRESSION (r207754): LayoutTest http/tests/security/svg-image-with-css-cross-domain.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=163922

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-29
Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/security/cached-svg-image-with-css-cross-domain.html

Raw data was not copied in cloned CachedCSSStyleSheet while it is used by some of its clients.
Updated CachedCSSStyleSheet and CachedImage cloning to copy its raw data.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::setBodyDataFrom):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::setBodyDataFrom):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::mayTryReplaceEncodedData):

LayoutTests:

  • http/tests/security/cached-svg-image-with-css-cross-domain-expected.html: Added.
  • http/tests/security/cached-svg-image-with-css-cross-domain.html: Added.
  • platform/mac/TestExpectations:
6:44 AM Changeset in webkit [208101] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

REGRESSION (Safari 10 / r189445): WKWebView and WebView no longer allow async XMLHttpRequest timeout to exceed 60 seconds
https://bugs.webkit.org/show_bug.cgi?id=163814
<rdar://problem/28917420>

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

Source/WebCore:

Tests: http/tests/xmlhttprequest/resetting-timeout-to-zero.html

http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::setTimeout): If the XHR timeout is active, resetting the timeout to zero should lead to using the default network timeout.
Since it is difficult to update the timeout once the request is sent, we mimic the default network timeout with a 60 seconds XHR timeout.
(WebCore::XMLHttpRequest::createRequest): Setting network timeout to infinity if the XHR timeout is active.

LayoutTests:

  • http/tests/xmlhttprequest/resetting-timeout-to-zero-expected.txt: Added.
  • http/tests/xmlhttprequest/resetting-timeout-to-zero.html: Added.
  • http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout-expected.txt: Added.
  • http/tests/xmlhttprequest/timeout-greater-than-default-network-timeout.html: Added.
  • tests-options.json:
6:43 AM Changeset in webkit [208100] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

MediaEndpoint::generateDtlsInfo is not needed
https://bugs.webkit.org/show_bug.cgi?id=164130

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

No change of behavior.

Removing MediaEndpoint::generateDtlsInfo as it can be called directly from createMediaEndpointOwr.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection):

  • platform/mediastream/MediaEndpoint.cpp:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::createMediaEndpointOwr):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::MockMediaEndpoint):
(WebCore::MockMediaEndpoint::generateDtlsInfo): Deleted.

  • platform/mock/MockMediaEndpoint.h:

Oct 28, 2016:

11:14 PM Changeset in webkit [208099] by wenson_hsieh@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, add Input Events to the features list.

  • features.json:
10:02 PM Changeset in webkit [208098] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix mismerge that broke a CEReactions test.

  • html/HTMLOptionsCollection.idl: Add back CEReactions to the remove function.
8:16 PM Changeset in webkit [208097] by Joseph Pecoraro
  • 7 edits
    1 add in trunk

Web Inspector: Breakpoints not working in scripts with unicode characters
https://bugs.webkit.org/show_bug.cgi?id=164172
<rdar://problem/28895862>

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • parser/Parser.h:

(JSC::parse):
Ensure we pass the debuggerParseData struct to get populated in the
non 8bit string case!

LayoutTests:

  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations.html:
  • inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-each-line.html:
  • inspector/debugger/breakpoints/resources/dump-unicode.js: Added.

Ensure we can set breakpoints and resolve them in non-8bit source code.

7:32 PM Changeset in webkit [208096] by Darin Adler
  • 188 edits in trunk

Move all classes in the HTML directory from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=163876

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt: Updated for progressions that occurred

because setting the href attribute on a DOMURL object no longer modifies the URL as a side
effect in the cases where it throw an exception.

Source/WebCore:

  • bindings/js/JSDOMBinding.cpp:

(WebCore::shouldAllowAccessToNode): Deleted.
(WebCore::BindingSecurity::shouldAllowAccessToFrame): Moved function into the
BindingSecurity namespace. Also changed arguments to references.
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindow): Ditto.
(WebCore::BindingSecurity::shouldAllowAccessToNode): Changed argument type
from pointer to reference.

  • bindings/js/JSDOMBinding.h: Removed top level shouldAllowAccessTo functions,

moving all of them into the BindingSecurity namespace. Changed BindingSecurity
from a class into a namespace. Added new checkSecurityForNode functions that
can be used directly to implement CheckSecurityForNode; they turn the node
into a null, which is no change in behavior from what bindings already did.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Changed argument
type for passed-in string to const String& instead of String&.
(WebCore::JSDOMWindow::getOwnPropertySlot): Updated for BindingSecurity changes.
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex): Ditto.
(WebCore::JSDOMWindow::put): Ditto.

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::attributesFor3DContext): Renamed from get3DContextAttributes and
changed to use a return value instead of an out argument.
(WebCore::JSHTMLCanvasElement::getContext): Updated for the above.
(WebCore::JSHTMLCanvasElement::toDataURL): Rewrote to handle ExceptionOr
and also to use Optional<double> instead of const double*.

  • bindings/js/JSHTMLFrameElementCustom.cpp:

(WebCore::JSHTMLFrameElement::setLocation): Moved the logic from
allowSettingJavascriptURL in here and updated for BindingSecurity changes.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::setLength): Use propagateException.
Also streamlined the code a bit.
(WebCore::JSHTMLOptionsCollection::indexSetter): Updated for new name and
argument types for selectElementIndexSetter.

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::selectElementIndexSetter): Updated name and argument types and
to use propagateException.
(WebCore::JSHTMLSelectElement::indexSetter): Updated for above.

  • bindings/js/JSHTMLSelectElementCustom.h: Ditto.
  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::getOwnPropertySlotDelegate): Updated for changes to
BindingSecurity.
(WebCore::JSLocation::putDelegate): Ditto. Also rearranged logic a bit.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canAccessFromCurrentOrigin): Updated for
changes to BindingSecurity.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Removed old support for CheckSecurityForNode.
(NativeToJSValue): Added new support for CheckSecurityForNode, which uses
the new checkSecurityForNode function, and works properly with ExceptionOr.

  • bindings/scripts/test/JS/JSTestObj.cpp: Updated for change below.
  • dom/ChildNode.idl: Move the remove function to non-legacy exception.

Needed now because this needs to match the one in HTMLSelectElement.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseForceWillBegin): Refactored a little bit.
(WebCore::Element::mergeWithNextTextNode): Support ExceptionOr for remove.
(WebCore::Element::setOuterHTML): Support ExceptionOr for
createFragmentForInnerOuterHTML.
(WebCore::Element::setInnerHTML): Ditto.
(WebCore::Element::insertAdjacentHTML): Ditto.

  • dom/Node.cpp:

(WebCore::Node::remove): Use ExceptionOr.
(WebCore::Node::normalize): Remove use of IGNORE_EXCEPTION.

  • dom/Node.h: Use ExceptionOr for remove.
  • dom/Range.cpp:

(WebCore::Range::insertNode): Updated for change to remove.
(WebCore::Range::createContextualFragment): Updated for change
to WebCore::createContextualFragment.

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setInnerHTML): Use ExceptionOr for
createFragmentForInnerOuterHTML and replaceChildrenWithFragment.

  • editing/AppendNodeCommand.cpp:

(WebCore::AppendNodeCommand::doUnapply): Remove IGNORE_EXCEPTION.

  • editing/InsertNodeBeforeCommand.cpp:

(WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.

  • editing/MergeIdenticalElementsCommand.cpp:

(WebCore::MergeIdenticalElementsCommand::doApply): Ditto.

  • editing/RemoveNodeCommand.cpp:

(WebCore::RemoveNodeCommand::doApply): Ditto.

  • editing/SplitElementCommand.cpp:

(WebCore::SplitElementCommand::doUnapply): Ditto.

  • editing/SplitTextNodeCommand.cpp:

(WebCore::SplitTextNodeCommand::doUnapply): Ditto.

  • editing/WrapContentsInDummySpanCommand.cpp:

(WebCore::WrapContentsInDummySpanCommand::doUnapply): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::insertDictationPhrases): Deleted. Moved this
iOS-specific function to EditorIOS.mm.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto.
(WebCore::Editor::confirmMarkedText): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping): Ditto.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::fontForSelection): Remove ASSERT_NO_EXCEPTION.
(WebCore::Editor::fontAttributesForSelectionStart): Ditto.
(WebCore::Editor::insertDictationPhrases): Moved here from Editor.cpp.
(WebCore::Editor::setDictationPhrasesAsChildOfElement): Ditto. Also
updated code that used remove to not pass an ExceptionCode.
(WebCore::Editor::confirmMarkedText): Ditto.
(WebCore::Editor::setTextAsChildOfElement): Ditto.
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping): Ditto.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::fontForSelection): Remove ASSERT_NO_EXCEPTION.
(WebCore::Editor::fontAttributesForSelectionStart): Ditto.

  • editing/markup.cpp:

(WebCore::createFragmentForInnerOuterHTML): Use ExceptionOr.
(WebCore::createContextualFragment): Ditto.
(WebCore::replaceChildrenWithFragment): Ditto.
(WebCore::replaceChildrenWithText): Ditto.

  • editing/markup.h: Updated for above changes.
  • html/BaseChooserOnlyDateAndTimeInputType.cpp:

(WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
Removed ASSERT_NO_EXCEPTION.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::setValueAsDate): Use ExceptionOr.
(WebCore::BaseDateAndTimeInputType::setValueAsDecimal): Ditto.

  • html/BaseDateAndTimeInputType.h: Updated for above changes.
  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::setValueAsDate): Use ExceptionOr.

  • html/DateTimeLocalInputType.h: Updated for above changes.
  • html/DOMTokenList.cpp:

(WebCore::DOMTokenList::validateToken): Use ExceptionOr.
(WebCore::DOMTokenList::validateTokens): Ditto.
(WebCore::DOMTokenList::addInternal): Ditto.
(WebCore::DOMTokenList::add): Ditto.
(WebCore::DOMTokenList::removeInternal): Ditto.
(WebCore::DOMTokenList::remove): Ditto.
(WebCore::DOMTokenList::toggle): Ditto.
(WebCore::DOMTokenList::replace): Ditto.
(WebCore::DOMTokenList::supports): Ditto.

  • html/DOMTokenList.h: Updated for above changes.
  • html/DOMTokenList.idl: Use non-legacy exceptions.
  • html/DOMURL.cpp:

(WebCore::DOMURL::DOMURL): Just take the two URL objects and let
the create functions do all the processing.
(WebCore::DOMURL::create): Use ExceptionOr, and move the processing
of the URLs here out of the constructors.
(WebCore::DOMURL::setHref): Use ExceptionOr.

  • html/DOMURL.h: Updated for above changes.
  • html/DOMURL.idl: Use non-legacy exceptions.
  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry): Remove
IGNORE_EXCEPTION and use releaseReturnValue().

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::toDataURL): Use ExceptionOr.

  • html/HTMLCanvasElement.h: Updated for above changes.
  • html/HTMLCanvasElement.idl: Use non-legacy exception.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::textToFragment): Use ExceptionOr.
(WebCore::HTMLElement::setInnerText): Ditto.
(WebCore::HTMLElement::setOuterText): Ditto.
(WebCore::HTMLElement::setContentEditable): Ditto.
(WebCore::HTMLElement::translateAttributeMode): Deleted.
(WebCore::HTMLElement::translate): Moved the logic from the
translateAttributeMode function in here.

  • html/HTMLElement.h: Updated for above changes.
  • html/HTMLElement.idl: Use non-legacy exceptions.
  • html/HTMLEmbedElement.idl: Use non-legacy exception.
  • html/HTMLFrameElement.idl: Ditto.
  • html/HTMLFrameOwnerElement.cpp:

(WebCore::HTMLFrameOwnerElement::getSVGDocument): Use ExceptionOr.

  • html/HTMLFrameOwnerElement.h: Updated for above.
  • html/HTMLIFrameElement.idl: Use non-legacy exception.
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::stepUp): Use ExceptionOr.
(WebCore::HTMLInputElement::stepDown): Ditto.
(WebCore::HTMLInputElement::setValue): Ditto.
(WebCore::HTMLInputElement::setValueAsDate): Ditto.
(WebCore::HTMLInputElement::setValueAsNumber): Ditto.
(WebCore::HTMLInputElement::setSize): Ditto.
(WebCore::HTMLInputElement::maxLengthAttributeChanged): Use the
new internalSetMaxLength function; old code relied on a setMaxLength
that was different from the one exposed to bindings.
(WebCore::HTMLInputElement::minLengthAttributeChanged): Ditto.
(WebCore::HTMLInputElement::setRangeText): Use ExceptionOr.

  • html/HTMLInputElement.h: Updated for above changes. Also use

data member initialization for InputElementClickState instead of
a constructor.

  • html/HTMLInputElement.idl: Use non-legacy exception.
  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::setLoop): Use ExceptionOr.
(WebCore::HTMLMarqueeElement::renderMarquee): Tweaked.

  • html/HTMLMarqueeElement.h: Updated for above changes.
  • html/HTMLMarqueeElement.idl: Ditto.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::TrackGroup::TrackGroup):
Initialize most data members in class definition rather than
the constructor.
(WebCore::HTMLMediaElement::HTMLMediaElement): Ditto.
(WebCore::HTMLMediaElement::~HTMLMediaElement): Updated since
removeMediaElement now takes a reference.
(WebCore::HTMLMediaElement::updateActiveTextTrackCues): Use
a modern for loop to streamline code.
(WebCore::HTMLMediaElement::textTrackModeChanged): Updated since
track now returns a reference.
(WebCore::HTMLMediaElement::setCurrentTimeForBindings): Renamed
to prevent ambiguity with the other version that has slightly
different semantics and overloading and changed to use ExceptionOr.
(WebCore::HTMLMediaElement::playInternal): Updated to use reference.
(WebCore::HTMLMediaElement::setVolume): Use ExceptionOr.
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Take a
reference instead of a PassRefPtr.
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveAudioTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveTextTrack): Ditto.
(WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack): Ditto.
(WebCore::HTMLMediaElement::addTextTrack): Use ExceptionOr.
(WebCore::HTMLMediaElement::didAddTextTrack): Use a reference.
(WebCore::HTMLMediaElement::didRemoveTextTrack): Ditto.
(WebCore::HTMLMediaElement::maxBufferedTime): Update to use different
interface to time ranges that does not need to deal with exceptions.
(WebCore::HTMLMediaElement::setController): Pass references.
(WebCore::HTMLMediaElement::outOfBandTrackSources): Use reference.

  • html/HTMLMediaElement.h: Updated for above.
  • html/HTMLMediaElement.idl: Use non-legacy exceptions.
  • html/HTMLObjectElement.idl: Use non-legacy exception.
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor): Use ExceptionOr.

  • html/HTMLOptionElement.h: Updated for above change.
  • html/HTMLOptionElement.idl: Use non-legacy exception.
  • html/HTMLOptionsCollection.cpp:

(WebCore::HTMLOptionsCollection::setLength): Use ExceptionOr.

  • html/HTMLOptionsCollection.h: Updated for above change.
  • html/HTMLOptionsCollection.idl: Use non-legacy exception.
  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::setValue): Removed non-finite handling
because that is now handled by the bindings.
(WebCore::HTMLProgressElement::setMax): Ditto.

  • html/HTMLProgressElement.h: Updated for above.
  • html/HTMLProgressElement.idl: Changed attributes to be double instead

of unrestricted double, and this was able to remove exceptions.

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::removeByIndex): Drop IGNORE_EXCEPTION.
(WebCore::HTMLSelectElement::remove): Use ExceptionOr.
(WebCore::HTMLSelectElement::setOption): Ditto.
(WebCore::HTMLSelectElement::setLength): Ditto.

  • html/HTMLSelectElement.h: Updated for above changes.
  • html/HTMLSelectElement.idl: Use non-legacy exceptions.
  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setCaption): Use ExceptionOr.
(WebCore::HTMLTableElement::setTHead): Ditto.
(WebCore::HTMLTableElement::setTFoot): Ditto.
(WebCore::HTMLTableElement::createTHead): Streamline a bit.
(WebCore::HTMLTableElement::deleteTHead): Ditto.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::deleteTFoot): Ditto.
(WebCore::HTMLTableElement::createTBody): Ditto.
(WebCore::HTMLTableElement::createCaption): Ditto.
(WebCore::HTMLTableElement::insertRow): Use ExceptionOr.
(WebCore::HTMLTableElement::deleteRow): Ditto.

  • html/HTMLTableElement.h: Updated for above changes.
  • html/HTMLTableElement.idl: Use non-legacy exceptions.
  • html/HTMLTableRowElement.cpp:

(WebCore::findTable): Added.
(WebCore::HTMLTableRowElement::rowIndex): Streamline a bit using the
findTable function above.
(WebCore::findRows): Added.
(WebCore::HTMLTableRowElement::sectionRowIndex): Streamline a bit using
the findRows function above.
(WebCore::HTMLTableRowElement::insertCell): Use ExceptionOr.
(WebCore::HTMLTableRowElement::deleteCell): Ditto.
(WebCore::HTMLTableRowElement::setCells): Deleted.

  • html/HTMLTableRowElement.h: Updated for the above. The setCells function

was dead code.

  • html/HTMLTableRowElement.idl: Use non-legacy exceptions.
  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
Tweaked a bit to use early return.
(WebCore::HTMLTableSectionElement::insertRow): Use ExceptionOr.
(WebCore::HTMLTableSectionElement::deleteRow): Ditto.
(WebCore::HTMLTableSectionElement::numRows): Use childrenOfType.
(WebCore::HTMLTableSectionElement::align): Deleted.
(WebCore::HTMLTableSectionElement::setAlign): Deleted.
(WebCore::HTMLTableSectionElement::ch): Deleted.
(WebCore::HTMLTableSectionElement::setCh): Deleted.
(WebCore::HTMLTableSectionElement::chOff): Deleted.
(WebCore::HTMLTableSectionElement::setChOff): Deleted.
(WebCore::HTMLTableSectionElement::vAlign): Deleted.
(WebCore::HTMLTableSectionElement::setVAlign): Deleted.

  • html/HTMLTableSectionElement.h: Updated for the above.
  • html/HTMLTableSectionElement.idl: Use non-legacy exception.
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::maxLengthAttributeChanged): Use the new
internalSetMaxLength function; old code relied on a setMaxLength
that was different from the one exposed to bindings.
(WebCore::HTMLTextAreaElement::minLengthAttributeChanged): Ditto.
(WebCore::HTMLTextAreaElement::updatePlaceholderText): Removed
ASSERT_NO_EXCEPTION.

  • html/HTMLTextAreaElement.idl: Use non-legacy exceptions.
  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setRangeText): Use ExceptionOr.
(WebCore::HTMLTextFormControlElement::setInnerTextValue): Ditto.
(WebCore::HTMLTextFormControlElement::setMaxLength): Ditto.
(WebCore::HTMLTextFormControlElement::setMinLength): Ditto.

  • html/HTMLTextFormControlElement.h: Updated for above changes.

Also renamed the setMin/MaxLength function overloads for internal use
to internSetMin/MaxLength and made them protected.

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::~HTMLTrackElement): Call clearElement on the
track to break the connection. Before this was done as a side effect of
clearClient, but that is called in other cases where we do not want to
clear the link back to the track element.
(WebCore::HTMLTrackElement::insertedInto): Removed code that uses the
track function for its side effect of creating a track; no longer needed.
Rewrote this so it's more symmetric with removedFrom.
(WebCore::HTMLTrackElement::removedFrom): Pass reference. Also reordered
and removed an unnecessary check for null parent.
(WebCore::HTMLTrackElement::parseAttribute): Use track.
(WebCore::HTMLTrackElement::kind): Ditto.
(WebCore::HTMLTrackElement::track): Renamed ensureTrack to this. Also
removed the redundant code to call setTrackElement; we no longer change
the track element on a track until the track element is destroyed.
(WebCore::HTMLTrackElement::scheduleLoad): Use track.
(WebCore::HTMLTrackElement::loadTimerFired): Ditto.
(WebCore::HTMLTrackElement::setReadyState): Ditto.
(WebCore::HTMLTrackElement::readyState): Ditto.
(WebCore::HTMLTrackElement::mediaElement): Rearranged to use early return.

  • html/HTMLTrackElement.h: Updated for above changes.
  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::webkitEnterFullscreen): Use ExceptionOr.

  • html/HTMLVideoElement.h: Removed the functions used just for

capitalization reasons; that's now handled in the bindings.

  • html/HTMLVideoElement.idl: Use non-legacy bindings and ImplementedAs.
  • html/ImageData.cpp:

(WebCore::ImageData::create): Return ExceptionOr.

  • html/ImageData.h: Updated for above changes.
  • html/ImageData.idl: Use non-legacy exceptions.
  • html/InputType.cpp:

(WebCore::InputType::setValueAsDate): Use ExceptionOr.
(WebCore::InputType::setValueAsDouble): Ditto.
(WebCore::InputType::setValueAsDecimal): Ditto.
(WebCore::InputType::applyStep): Ditto.
(WebCore::InputType::stepUp): Ditto.
(WebCore::InputType::stepUpFromRenderer): Removed IGNORE_EXCEPTION.

  • html/InputType.h: Updated for the above.
  • html/MediaController.cpp:

(MediaController::addMediaElement): Take a reference instead of a pointer.
(MediaController::removeMediaElement): Ditto.
(MediaController::containsMediaElement): Ditto.
(MediaController::setVolume): Use ExceptionOr.
(MediaController::bringElementUpToSpeed): Take a reference.

  • html/MediaController.h: Updated for above changes. Also made lots of

function overrides private.

  • html/MediaController.idl: Use non-legacy exception.
  • html/MediaControllerInterface.h: Use ExceptionOr for setVolume.
  • html/NumberInputType.cpp:

(WebCore::RealNumberRenderSize::max): Use aggregate initialization instead
of a constructor.
(WebCore::calculateRenderSize): Ditto.
(WebCore::NumberInputType::setValueAsDouble): Use ExceptionOr.
(WebCore::NumberInputType::setValueAsDecimal): Ditto.

  • html/NumberInputType.h: Updated for above changes.
  • html/RangeInputType.cpp:

(WebCore::RangeInputType::RangeInputType): Initialize scalar data member
in class definition instead of here.
(WebCore::RangeInputType::setValueAsDecimal): Use ExceptionOr.
(WebCore::RangeInputType::handleKeydownEvent): Removed IGNORE_EXCEPTION.

  • html/RangeInputType.h: Updated for above changes.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::updatePlaceholderText): Removed
ASSERT_NO_EXCEPTION.

  • html/TimeRanges.cpp:

(WebCore::TimeRanges::start): Use ExceptionOr.
(WebCore::TimeRanges::end): Ditto.

  • html/TimeRanges.h: Updated for the above.
  • html/TimeRanges.idl: Use non-legacy exceptions.
  • html/URLUtils.idl: Use non-legacy exception.
  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::setMessageDOMAndStartTimer): Removed
ASSERT_NO_EXCEPTION, IGNORE_EXCEPTION, and other exception-ignoring idioms.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody): Ditto.

  • html/shadow/MediaControlElementTypes.cpp:

(WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Ditto.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::setPosition): Ditto.
(WebCore::MediaControlPanelElement::resetPosition): Ditto.
(WebCore::MediaControlStatusDisplayElement::update): Ditto.
(WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay): Ditto.
(WebCore::MediaControlFullscreenVolumeMinButtonElement::defaultEventHandler): Ditto.
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::defaultEventHandler): Ditto.

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::updateCurrentTimeDisplay): Ditto.

  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsApple::updateCurrentTimeDisplay): Ditto.

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack): Take reference.
(WebCore::LoadableTextTrack::~LoadableTextTrack): Deleted.
(WebCore::LoadableTextTrack::clearClient): Deleted override. We no longer
want to clear m_trackElement when clearing the client.
(WebCore::LoadableTextTrack::setTrackElement): Deleted.
(WebCore::LoadableTextTrack::id): Changed to use
attributeWithoutSynchronization for better performance and idAttr instead
of a string constant.

  • html/track/LoadableTextTrack.h: Updated for above changes. Added a new

clearElement function. Made the element and isDefault functions private.

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::~VTTCue): Removed ASSERT_NO_EXCEPTION, IGNORE_EXCEPTION,
and other exception-ignoring idioms.
(WebCore::VTTCue::removeDisplayTree): Ditto.

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::displayLastTextTrackCueBox): Ditto.
(WebCore::VTTRegion::willRemoveTextTrackCueBox): Ditto.

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):
Rewrote to avoid multiplehash table lookups and added a FIXME about
the peculiar code here.
(WebCore::InspectorDOMAgent::resolveNode): Streamlined.
(WebCore::InspectorDOMAgent::nodeAsScriptValue): Use the new
checkSecurityForNode instead of the old shouldAllowAccessToNode.

  • platform/graphics/ImageBuffer.h: Take Optional<double> instead of

const double* in toDataURL. Renamed ImageDataToDataURL to just dataURL.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::addAudioTrack): Take a reference instead of PassRefPtr.
(WebCore::MediaPlayer::removeAudioTrack): Ditto.
(WebCore::MediaPlayer::addTextTrack): Ditto.
(WebCore::MediaPlayer::removeTextTrack): Ditto.
(WebCore::MediaPlayer::addVideoTrack): Ditto.
(WebCore::MediaPlayer::removeVideoTrack): Ditto.

  • platform/graphics/MediaPlayer.h: Updated for the above.
  • platform/graphics/PlatformTimeRanges.h: Exported a couple of functions

that are now used in WebKit.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::clearTextTracks): Use a modern for loop.
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
Fixed a bug that would cause this function to fail to process half the tracks.
Also updated for the change from PassRefPtr to references.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::determineChangedTracksFromNewTracksAndOldItems): Pass references.
(WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): Ditto.
(WebCore::assetMetadataKeyNames): Tweaked formatting.
(WebCore::itemKVOProperties): Ditto.
(WebCore::playerKVOProperties): Ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::updateTracksOfType): Pass references.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::toDataURL): Use Optional<double>

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::createBitmapImageAfterScalingIfNeeded): Use auto.
(WebCore::encodeImage): Ditto. Also renamed from CGImageEncodeToData.
(WebCore::dataURL): Ditto. Also renamed from CGImageToDataURL and from
ImageDataToDataURL.
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/efl/ImageBufferEfl.cpp:

(WebCore::encodeImageJPEG): Use Optional<double>
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Pass
a reference instead of pointer.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Ditto.

  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::encodeImage): Use Optional<double>
(WebCore::ImageBuffer::toDataURL): Ditto.

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::toDataURL): Use Optional<double>

  • platform/image-encoders/JPEGImageEncoder.cpp:

(WebCore::compressRGBABigEndianToJPEG): Use Optional<double>

  • platform/image-encoders/JPEGImageEncoder.h: Ditto.
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm:

(WebCore::WebPlaybackSessionInterfaceAVKit::seekableRangesChanged):
Updated for change to TimeRanges.

  • platform/mac/WebVideoFullscreenHUDWindowController.mm:

(-[WebVideoFullscreenHUDWindowController setVolume:]): Removed IGNORE_EXCEPTION.

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::endElementNs): Ditto.

  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::paintMediaSliderTrack): Updated for changes to
the TimeRanges class.

Source/WebKit/mac:

  • DOM/DOMCharacterData.mm:

(-[DOMCharacterData remove]): Updated exception handling.

  • DOM/DOMDOMTokenList.mm:

(-[DOMDOMTokenList toggle:force:]): Ditto.

  • DOM/DOMDocumentType.mm:

(-[DOMDocumentType remove]): Ditto.

  • DOM/DOMElement.mm:

(-[DOMElement remove]): Ditto.

  • DOM/DOMHTML.mm:

(-[DOMHTMLInputElement setValueAsNumberWithChangeEvent:]): Ditto.

  • DOM/DOMHTMLCanvasElement.mm:

(-[DOMHTMLCanvasElement toDataURL:]): Ditto.

  • DOM/DOMHTMLElement.mm:

(-[DOMHTMLElement setInnerText:]): Ditto.
(-[DOMHTMLElement setOuterText:]): Ditto.
(-[DOMHTMLElement setContentEditable:]): Ditto.

  • DOM/DOMHTMLInputElement.mm:

(-[DOMHTMLInputElement setMaxLength:]): Ditto.
(-[DOMHTMLInputElement setValueAsDate:]): Ditto.
(-[DOMHTMLInputElement setValueAsNumber:]): Ditto.
(-[DOMHTMLInputElement stepUp:]): Ditto.
(-[DOMHTMLInputElement stepDown:]): Ditto.
(-[DOMHTMLInputElement setRangeText:]): Ditto.
(-[DOMHTMLInputElement setRangeText:start:end:selectionMode:]): Ditto.

  • DOM/DOMHTMLMarqueeElement.mm:

(-[DOMHTMLMarqueeElement setLoop:]): Ditto.

  • DOM/DOMHTMLMediaElement.mm:

(-[DOMHTMLMediaElement setCurrentTime:]): Ditto.
(-[DOMHTMLMediaElement setVolume:]): Ditto.

  • DOM/DOMHTMLOptionsCollection.mm:

(-[DOMHTMLOptionsCollection setLength:]): Ditto.

  • DOM/DOMHTMLTableElement.mm:

(-[DOMHTMLTableElement setCaption:]): Ditto.
(-[DOMHTMLTableElement setTHead:]): Ditto.
(-[DOMHTMLTableElement setTFoot:]): Ditto.
(-[DOMHTMLTableElement insertRow:]): Ditto.
(-[DOMHTMLTableElement deleteRow:]): Ditto.

  • DOM/DOMHTMLTableRowElement.mm:

(-[DOMHTMLTableRowElement insertCell:]): Ditto.
(-[DOMHTMLTableRowElement deleteCell:]): Ditto.

  • DOM/DOMHTMLTableSectionElement.mm:

(-[DOMHTMLTableSectionElement insertRow:]): Ditto.
(-[DOMHTMLTableSectionElement deleteRow:]): Ditto.

  • DOM/DOMHTMLTextAreaElement.mm:

(-[DOMHTMLTextAreaElement setMaxLength:]): Ditto.
(-[DOMHTMLTextAreaElement setRangeText:]): Ditto.
(-[DOMHTMLTextAreaElement setRangeText:start:end:selectionMode:]): Ditto.

  • DOM/DOMHTMLVideoElement.mm:

(-[DOMHTMLVideoElement webkitEnterFullscreen]): Ditto.
(-[DOMHTMLVideoElement webkitEnterFullScreen]): Changed to call the other named
version (lowercase S) instead of repeating the logic from that method.
(-[DOMHTMLVideoElement webkitExitFullScreen]): Ditto.

  • DOM/DOMTimeRanges.mm:

(-[DOMTimeRanges start:]): Updated exception handling.
(-[DOMTimeRanges end:]): Ditto.

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::setInnerText): Update exception handling.

  • FullscreenVideoController.cpp:

(FullscreenVideoController::setVolume): Ditto.

Source/WebKit2:

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

(webkit_dom_dom_token_list_add): Updated exception handling.
(webkit_dom_dom_token_list_remove): Ditto.
(webkit_dom_dom_token_list_toggle): Ditto.
(webkit_dom_dom_token_list_replace): Ditto.

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

(webkit_dom_element_remove): Ditto.

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

(webkit_dom_html_element_set_inner_text): Ditto.
(webkit_dom_html_element_set_outer_text): Ditto.
(webkit_dom_html_element_set_content_editable): Ditto.

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

(webkit_dom_html_input_element_set_max_length): Ditto.
(webkit_dom_html_input_element_set_size): Ditto.

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

(webkit_dom_html_select_element_set_length): Ditto.

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

(webkit_dom_html_table_element_insert_row): Ditto.
(webkit_dom_html_table_element_delete_row): Ditto.
(webkit_dom_html_table_element_set_caption): Ditto.
(webkit_dom_html_table_element_set_t_head): Ditto.
(webkit_dom_html_table_element_set_t_foot): Ditto.

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

(webkit_dom_html_table_row_element_insert_cell): Ditto.
(webkit_dom_html_table_row_element_delete_cell): Ditto.

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

(webkit_dom_html_table_section_element_insert_row): Ditto.
(webkit_dom_html_table_section_element_delete_row): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState): Removed ASSERT_NO_EXCEPTION.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::setAssistedNodeValueAsNumber): Removed ASSERT_NO_EXCEPTION.

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::seekableRangesChanged):
Changed the code to use a different interface to TimeRange that does
not involve exceptions.

Tools:

  • TestWebKitAPI/Tests/WebCore/TimeRanges.cpp:

(TestWebKitAPI::ToString): Updated for changes to the TimeRanges class.
(TestWebKitAPI::TEST): Ditto.

LayoutTests:

  • fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hash.html:
  • fast/dom/DOMURL/set-href-attribute-hostname-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hostname.html:
  • fast/dom/DOMURL/set-href-attribute-pathname-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-pathname.html:

Updated these tests to expect that if you set href and it raises an exception,
then the URL does not change. The old expected results showed the exception being
raised but the URL being changed to the invalid href.

  • fast/dom/HTMLProgressElement/script-tests/set-progress-properties.js:
  • fast/dom/HTMLProgressElement/set-progress-properties-expected.txt:

Updated to expect a different exception, TypeError rather than NotSupportedError,
for non-finite values.

7:12 PM Changeset in webkit [208095] by Devin Rousso
  • 2 edits in trunk/Tools

Unreviewed, changed Devin Rousso's email and nick.

  • Scripts/webkitpy/common/config/contributors.json:
7:07 PM Changeset in webkit [208094] by wenson_hsieh@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix the iOS build after r208090.

Use soft-linking as needed in UIScriptControllerIOS.mm.

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

6:42 PM Changeset in webkit [208093] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Allow @font-face src descriptor's format function to contain identifiers
https://bugs.webkit.org/show_bug.cgi?id=164169

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeFontFaceSrcURI):

6:18 PM Changeset in webkit [208092] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

WebAudio does not resume when moving from background to foreground tab.
https://bugs.webkit.org/show_bug.cgi?id=164043

Reviewed by Darin Adler.

Source/WebCore:

Test: webaudio/page-canstartmedia.html

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::mediaCanStart):

LayoutTests:

  • webaudio/page-canstartmedia-expected.txt: Added.
  • webaudio/page-canstartmedia.html: Added.
6:17 PM Changeset in webkit [208091] by commit-queue@webkit.org
  • 38 edits
    2 copies
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Preferences for Text Editor behavior
https://bugs.webkit.org/show_bug.cgi?id=149120

Patch by Devin Rousso <Devin Rousso> on 2016-10-28
Reviewed by Timothy Hatcher.

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

(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.setTabSize):
(WebInspector.contentLoaded.setInvalidCharacterClassName):
(WebInspector.contentLoaded.setWhitespaceCharacterClassName):
(WebInspector._tryToRestorePendingTabs):
(WebInspector.indentString):
(WebInspector._updateNewTabButtonState): Deleted.
(WebInspector._newTabItemClicked): Deleted.
Removed calls to the New Tab tab bar item on the Tab Bar instance.
Added listener to the indentUnit setting to change the tab-size value on <body>.
Created helper function to generate the indentString value from settings.

  • UserInterface/Base/Test.js:

(WebInspector.indentString):
Assume indent string is " " for tests.

  • UserInterface/Base/Setting.js:

Added global WebInspector.settings dictionary for holding settings with UI editors.

  • UserInterface/Main.html:

Added GeneralTabBarItem, PinnedTabBarItem, and SettingsTabContentView.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):

  • UserInterface/Views/VisualStylePropertyEditor.js:

(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Now uses WebInspector.indentUnit for indentation values

  • UserInterface/Views/CodeMirrorAdditions.js:

Added "showWhitespaceCharacter" option to CodeMirror. When enabled, it adds an overlay to
the editor that will use pseudo-elements to display whitespace characters (unicode 00B7).

  • UserInterface/Views/CodeMirrorOverrides.css:

(.CodeMirror .cm-tab):
(.show-whitespace-characters .CodeMirror .cm-tab::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-1::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-2::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-3::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-4::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-5::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-6::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-7::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-8::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-9::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-10::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-11::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-12::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-13::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-14::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-15::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-16::before):
(.show-invalid-characters .CodeMirror .cm-invalidchar):
(.CodeMirror .cm-invalidchar): Deleted.
Use unicode character 00B7 (middle dot) to display a space. Also uses a grey border for
visualizing tab characters.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:
  • UserInterface/Views/ClusterContentView.js:
  • UserInterface/Views/DOMTreeContentView.js:
  • UserInterface/Views/DatabaseContentView.js:
  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
  • UserInterface/Views/NetworkGridContentView.js:
  • UserInterface/Views/ResourceContentView.js:
  • UserInterface/Views/ScriptContentView.js:
  • UserInterface/Views/TabContentView.js:
  • UserInterface/Views/TimelineRecordingContentView.js:

Add calls to super.shown(), super.hidden(), and super.closed().

  • UserInterface/Views/ConsoleTabContentView.js:
  • UserInterface/Views/DebuggerTabContentView.js:
  • UserInterface/Views/ElementsTabContentView.js:
  • UserInterface/Views/NetworkTabContentView.js:
  • UserInterface/Views/NewTabContentView.js:
  • UserInterface/Views/ResourcesTabContentView.js:
  • UserInterface/Views/SearchTabContentView.js:
  • UserInterface/Views/StorageTabContentView.js:
  • UserInterface/Views/TimelineTabContentView.js:

Now uses WebInspector.GeneralTabBarItem.

  • UserInterface/Views/GeneralTabBarItem.js: Added.

(WebInspector.GeneralTabBarItem):
(WebInspector.GeneralTabBarItem.prototype.set title):
(WebInspector.GeneralTabBarItem.prototype._handleContextMenuEvent):
Split from TabBarItem.js to make pinned tab bar items more distinct.

  • UserInterface/Views/Main.css:

(body):
Removed tab-size.

  • UserInterface/Views/PinnedTabBarItem.js: Added.

(WebInspector.PinnedTabBarItem):
Split from TabBarItem.js to make pinned tab bar items more distinct.

  • UserInterface/Views/SettingsTabContentView.css: Added.

(.content-view.settings):
(.content-view.settings > .header):
(.content-view.settings > .setting-container):
(.content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):

  • UserInterface/Views/SettingsTabContentView.js:

(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.tabInfo):
(WebInspector.SettingsTabContentView.isEphemeral):
(WebInspector.SettingsTabContentView.shouldSaveTab):
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.isTabAllowed): Deleted.
(WebInspector.SettingsTabContentView.prototype.get type): Deleted.
Added logic to display an appropriate editor for each item in WebInspector.settings.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.close):
Add call to super.close().

  • UserInterface/Views/TabBar.css:

(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover):
(.tab-bar > .item:not(.pinned) > .flex-space:last-child):
(.tab-bar > .item.pinned > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,): Deleted.
(.tab-bar > .item > .flex-space:last-child): Deleted.
(.tab-bar > .item.new-tab-button > .icon): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon,): Deleted.
Removed rules specifically targeting .new-tab-button.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabTabBarItem):
(WebInspector.TabBar.prototype.updateNewTabTabBarItemState):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype.hasNormalTab):
(WebInspector.TabBar.prototype.layout):
(WebInspector.TabBar.prototype._hasMoreThanOneNormalTab):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabClick):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):
(WebInspector.TabBar.prototype.get newTabItem): Deleted.
(WebInspector.TabBar.prototype.set newTabItem): Deleted.
Replaced the newTabItem setter by adding a saved pinned tab bar item (instead of relying
upon a different object to give it the pinned tab bar item) that changes modes depending on
whether a new tab is able to be created.

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype.get element):
(WebInspector.TabBarItem.prototype.get representedObject):
(WebInspector.TabBarItem.prototype.set representedObject):
(WebInspector.TabBarItem.prototype.get parentTabBar):
(WebInspector.TabBarItem.prototype.set parentTabBar):
(WebInspector.TabBarItem.prototype.get image):
(WebInspector.TabBarItem.prototype.set image):
(WebInspector.TabBarItem.prototype.get title):
(WebInspector.TabBarItem.prototype.set title):
(WebInspector.TabBarItem.prototype.get pinned): Deleted.
(WebInspector.TabBarItem.prototype._handleContextMenuEvent): Deleted.
Split into GeneralTabBarItem and PinnedTabBarItem to simplify the logic of the DOM and allow
for easier checking of whether a tab bar item is pinned or not.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
(WebInspector.TabBrowser.prototype._tabBarItemSelected):
(WebInspector.TabBrowser.prototype._tabBarItemRemoved):
Replaced references to newTabItem with a set number (since each TabBar has a specific number
of pinned tabs).

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.close):.
Remove settings update event listeners to allow garbage collection.

(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
(WebInspector.TextEditor.prototype._startCodeMirrorPrettyPrint):
Now uses the settings values in WebInspector.setting for settings on the CodeMirror
instance. Also updates the CodeMirror instance if any setting changes.

6:06 PM Changeset in webkit [208090] by wenson_hsieh@apple.com
  • 17 edits
    4 adds in trunk

iOS autocorrection does not trigger an input event of inputType "insertReplacementText"
https://bugs.webkit.org/show_bug.cgi?id=164077
<rdar://problem/28987810>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes candidate insertion on iOS, so that it fires input events of type "insertReplacementText" and adds two
iOS unit tests covering this change as well as the test infrastructure needed to support these tests. See
comments below for more details.

Tests: fast/events/ios/before-input-events-prevent-candidate-insertion.html

fast/events/ios/input-events-insert-replacement-text.html

  • dom/TextEvent.h:

Adds isAutocompletion() to TextEvent, as well as the TextEventInputAutocompletion text input type. When the
Editor handles this TextEvent, it will use this information when creating or modifying the corresponding typing
command.

  • dom/TextEventInputType.h:
  • editing/Editor.cpp:

(WebCore::Editor::insertText):
(WebCore::Editor::insertTextWithoutSendingTextEvent):

  • editing/Editor.h:
  • editing/TypingCommand.cpp:

(WebCore::editActionForTypingCommand):

Now takes whether the command is autocorrection into account. If so, the corresponding edit action should be
EditActionInsertReplacement rather than EditActionTypingInsertText.

(WebCore::TypingCommand::TypingCommand):
(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::inputEventData):
(WebCore::TypingCommand::willAddTypingToOpenCommand):

  • editing/TypingCommand.h:

Adds a new TypingCommand option, IsAutocompletion.

Source/WebKit2:

Small tweak to mark text insertion when autocorrecting as such, as opposed to regular keyboard input.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::syncApplyAutocorrection):

Tools:

Adds test support for inserting text candidates on iOS in the form of
UIScriptController.selectTextCandidateAtIndex(index, callback), which selects the text candidate at a given
index (this needs to be a value between 0-2 on iOS) and fires the callback when done.

To implement this, we wait for the text prediction view to have predictions (we determine this by polling at a
given interval) and then tap the center of the text prediction view at the given index.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::selectTextCandidateAtIndex):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::selectTextCandidateAtIndex):
(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIKitSPI.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::selectTextCandidateAtIndex):
(WTR::UIScriptController::waitForTextPredictionsViewAndSelectCandidateAtIndex):

LayoutTests:

Adds 2 new unit tests verifying that candidate text insertion can be prevented via beforeinput events, and that
beforeinput and input events of type "insertReplacementText" are fired when inserting candidate text on iOS.

  • fast/events/ios/before-input-events-prevent-candidate-insertion-expected.txt: Added.
  • fast/events/ios/before-input-events-prevent-candidate-insertion.html: Added.
  • fast/events/ios/input-events-insert-replacement-text-expected.txt: Added.
  • fast/events/ios/input-events-insert-replacement-text.html: Added.
5:31 PM Changeset in webkit [208089] by achristensen@apple.com
  • 9 edits in trunk

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

We are ready after r208086 (Requested by alexchristensen on
#webkit).

Reverted changeset:

"Unreviewed, rolling out r207582."
https://bugs.webkit.org/show_bug.cgi?id=163819
http://trac.webkit.org/changeset/207700

Patch by Commit Queue <commit-queue@webkit.org> on 2016-10-28

5:28 PM Changeset in webkit [208088] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Allow unknown properties in will-change
https://bugs.webkit.org/show_bug.cgi?id=164165

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWillChange):

5:20 PM Changeset in webkit [208087] by achristensen@apple.com
  • 11 edits in trunk

Partially revert 207805 after resolution in URL spec issue 87
https://bugs.webkit.org/show_bug.cgi?id=164142

Reviewed by Andy Estes.

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 layout tests and API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::isSingleDotPathSegment):
(WebCore::URLParser::isDoubleDotPathSegment):
(WebCore::URLParser::consumeSingleDotPathSegment):
(WebCore::URLParser::consumeDoubleDotPathSegment):
Treat %2e%2e as .. and %2e as . but only if it is entirety of the path segment.
There are tests for URLs like http://host/abc%2edef which have not changed because
the %2e is not the entirety of the path segment.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

LayoutTests:

  • fast/url/path-expected.txt:
  • fetch/fetch-url-serialization-expected.txt:
5:17 PM Changeset in webkit [208086] by achristensen@apple.com
  • 4 edits in trunk

URLParser should not try to interpret host of URLs with unrecognized schemes as IPv4 address
https://bugs.webkit.org/show_bug.cgi?id=164154

Reviewed by Andy Estes.

Source/WebCore:

This is needed to match behavior of all browsers.
This is being discussed in the spec at https://github.com/whatwg/url/issues/148

Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parseHostAndPort):
Only try to parse and canonicalize the host as an IPv4 address if the scheme is special (http, wss, etc.)

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

5:14 PM Changeset in webkit [208085] by matthew_hanson@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:05 PM Changeset in webkit [208084] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-602.3.6

New tag.

4:53 PM Changeset in webkit [208083] by Chris Dumez
  • 5 edits in trunk

DOMStringMap reports properties as non-enumerable
https://bugs.webkit.org/show_bug.cgi?id=164114

Reviewed by Sam Weinig.

Source/WebCore:

DOMStringMap's named properties should be configurable, enumerable
and writable as per:

Firefox and Chrome agree with the specification. However, WebKit
was doing the complete opposite.

No new tests, updated existing test.

  • bindings/js/JSDOMStringMapCustom.cpp:

(WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/dataset-name-getter-properties-expected.txt:
  • fast/dom/dataset-name-getter-properties.html:
4:49 PM Changeset in webkit [208082] by rniwa@webkit.org
  • 24 edits
    1 copy
    25 adds in trunk

Add CEReactions to the remaining HTML DOM APIs
https://bugs.webkit.org/show_bug.cgi?id=163969

Reviewed by Chris Dumez.

Source/WebCore:

Added CEReactions to the remaining DOM and HTML APIs as needed.

Tests: fast/custom-elements/reactions-for-indieui.html

fast/custom-elements/reactions/Document.html
fast/custom-elements/reactions/HTMLAnchorElement.html
fast/custom-elements/reactions/HTMLOptionElement.html
fast/custom-elements/reactions/HTMLOptionsCollection.html
fast/custom-elements/reactions/HTMLOutputElement.html
fast/custom-elements/reactions/HTMLSelectElement.html
fast/custom-elements/reactions/HTMLTableElement.html
fast/custom-elements/reactions/HTMLTableRowElement.html
fast/custom-elements/reactions/HTMLTableSectionElement.html
fast/custom-elements/reactions/HTMLTitleElement.html
fast/custom-elements/reactions/ShadowRoot.html

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::setLength):
(WebCore::JSHTMLOptionsCollection::indexSetter):

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::indexSetter):

  • dom/CharacterData.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/ShadowRoot.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLOptionElement.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTitleElement.idl:

LayoutTests:

Added W3C style testharness.js tests for CEReactions to various HTMLElements under fast/custom-elements/reactions.
Also added some WebKit specific tests using the same harness outside that directory.

  • fast/custom-elements/reactions-for-indieui-expected.txt: Added.
  • fast/custom-elements/reactions-for-indieui.html: Added.
  • fast/custom-elements/reactions-for-webkit-extensions-expected.txt:
  • fast/custom-elements/reactions-for-webkit-extensions.html:
  • fast/custom-elements/reactions/Document-expected.txt: Added.
  • fast/custom-elements/reactions/Document.html: Added.
  • fast/custom-elements/reactions/HTMLAnchorElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLAnchorElement.html: Added.
  • fast/custom-elements/reactions/HTMLOptionElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOptionElement.html: Added.
  • fast/custom-elements/reactions/HTMLOptionsCollection-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOptionsCollection.html: Added.
  • fast/custom-elements/reactions/HTMLOutputElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLOutputElement.html: Added.
  • fast/custom-elements/reactions/HTMLSelectElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLSelectElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableRowElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableRowElement.html: Added.
  • fast/custom-elements/reactions/HTMLTableSectionElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTableSectionElement.html: Added.
  • fast/custom-elements/reactions/HTMLTitleElement-expected.txt: Added.
  • fast/custom-elements/reactions/HTMLTitleElement.html: Added.
  • fast/custom-elements/reactions/ShadowRoot-expected.txt: Added.
  • fast/custom-elements/reactions/ShadowRoot.html: Added.
  • fast/custom-elements/resources/additional-helpers.js: Added.
  • fast/custom-elements/upgrading-enqueue-reactions-expected.txt:
  • fast/custom-elements/upgrading-enqueue-reactions.html:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:39 PM Changeset in webkit [208081] by achristensen@apple.com
  • 2 edits
    1 move
    1 add in trunk/Source/WebKit2

Rename SharedMemoryMac to SharedMemoryCocoa
https://bugs.webkit.org/show_bug.cgi?id=164156

Patch by Megan Gardner <Megan Gardner> on 2016-10-28
Reviewed by Alex Christensen.

Renamed SharedMemoryMac to SharedMemoryCocoa, as it runs on all cocoa platforms, not exclusively just mac, and
thus should be named to reflect that reality.

  • Platform/cocoa: Added.
  • Platform/cocoa/SharedMemoryCocoa.cpp: Copied from Source/WebKit2/Platform/mac/SharedMemoryMac.cpp.
  • Platform/mac/SharedMemoryMac.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
4:35 PM Changeset in webkit [208080] by commit-queue@webkit.org
  • 27 edits
    5 copies
    5 adds in trunk

[Modern Media Controls] Media Controller: volume control support
https://bugs.webkit.org/show_bug.cgi?id=163727

Patch by Antoine Quint <Antoine Quint> on 2016-10-28
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the VolumeSupport class which brings support for modifying the media
volume by interacting with the mute volume slider in the media controls and correctly
reflecting the media's volume should it be changed via the media API.

Tests: media/modern-media-controls/volume-support/volume-support-click.html

media/modern-media-controls/volume-support/volume-support-drag.html
media/modern-media-controls/volume-support/volume-support-media-api-mute.html
media/modern-media-controls/volume-support/volume-support-media-api.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/volume-support.js: Added.

(VolumeSupport.prototype.get control):
(VolumeSupport.prototype.get mediaEvents):
(VolumeSupport.prototype.controlValueWillStartChanging):
(VolumeSupport.prototype.controlValueDidChange):
(VolumeSupport.prototype.syncControl):
(VolumeSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding new tests for VolumeSupport 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.html:
  • media/modern-media-controls/playback-support/playback-support-button-click.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api.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:
  • media/modern-media-controls/volume-support/volume-support-click-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-click.html: Added.
  • media/modern-media-controls/volume-support/volume-support-drag-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-drag.html: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-mute-expected.txt: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api-mute.html: Added.
  • media/modern-media-controls/volume-support/volume-support-media-api.html: Added.
  • platform/ios-simulator/TestExpectations:
4:28 PM Changeset in webkit [208079] by Joseph Pecoraro
  • 2 edits in branches/safari-602-branch/LayoutTests

Fix merge r207229. rdar://problem/29007278

  • inspector/console/console-log-proxy.html:
4:19 PM Changeset in webkit [208078] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[DOMJIT] Include identifier name in CallDOMGetter to dump it
https://bugs.webkit.org/show_bug.cgi?id=164161

Reviewed by Mark Lam.

This patch adds an identifier number to CallDOMGetterData and use it when dumping the data.
CallDOMGetter did not include identifier. It made CallDOMGetter super hard to debug when dumping DFG graph.

The dump becomes like this.

CallDOMGetter(Cell:@21, JS|MustGen|UseAsOther, Nonboolint32, id0{customGetter}, domJIT = 0x42f8a0, R:World, W:Heap, Exits, ClobbersExit, bc#15) predicting Nonboolint32

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleGetById):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

  • dfg/DFGNode.h:
3:57 PM Changeset in webkit [208077] by Yusuke Suzuki
  • 26 edits
    1 move in trunk/Source

[DOMJIT] Rename CallDOM to CallDOMGetter
https://bugs.webkit.org/show_bug.cgi?id=164157

Reviewed by Keith Miller.

Source/JavaScriptCore:

Rename CallDOM to CallDOMGetter to represent that
this is used for DOMJIT getter explicitly.
CallDOM will be used for DOM functions (like element.getAttribute()) later.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::emitDOMJITGetter):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::blessCallDOMGetter):
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::blessCallDOM): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGGraph.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):
(JSC::DFG::Node::hasCallDOMGetterData):
(JSC::DFG::Node::callDOMGetterData):
(JSC::DFG::Node::hasCallDOMData): Deleted.
(JSC::DFG::Node::callDOMData): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
(JSC::DFG::SpeculativeJIT::compileCallDOM): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • domjit/DOMJITCallDOMGetterPatchpoint.h: Renamed from Source/JavaScriptCore/domjit/DOMJITCallDOMPatchpoint.h.

(JSC::DOMJIT::CallDOMGetterPatchpoint::create):

  • domjit/DOMJITGetterSetter.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOMGetter):
(JSC::FTL::DFG::LowerDFGToB3::compileCallDOM): Deleted.

  • jsc.cpp:

Source/WebCore:

No behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:
  • domjit/JSDocumentDOMJIT.cpp:

(WebCore::DocumentDocumentElementDOMJIT::callDOMGetter):
(WebCore::DocumentDocumentElementDOMJIT::callDOM): Deleted.

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMGetterForOffsetAccess):
(WebCore::NodeFirstChildDOMJIT::callDOMGetter):
(WebCore::NodeLastChildDOMJIT::callDOMGetter):
(WebCore::NodeNextSiblingDOMJIT::callDOMGetter):
(WebCore::NodePreviousSiblingDOMJIT::callDOMGetter):
(WebCore::NodeParentNodeDOMJIT::callDOMGetter):
(WebCore::NodeNodeTypeDOMJIT::callDOMGetter):
(WebCore::NodeOwnerDocumentDOMJIT::callDOMGetter):
(WebCore::createCallDOMForOffsetAccess): Deleted.
(WebCore::NodeFirstChildDOMJIT::callDOM): Deleted.
(WebCore::NodeLastChildDOMJIT::callDOM): Deleted.
(WebCore::NodeNextSiblingDOMJIT::callDOM): Deleted.
(WebCore::NodePreviousSiblingDOMJIT::callDOM): Deleted.
(WebCore::NodeParentNodeDOMJIT::callDOM): Deleted.
(WebCore::NodeNodeTypeDOMJIT::callDOM): Deleted.
(WebCore::NodeOwnerDocumentDOMJIT::callDOM): Deleted.

3:19 PM Changeset in webkit [208076] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Fix font-family parsing inside @font-face
https://bugs.webkit.org/show_bug.cgi?id=164155

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseFontFaceDescriptor):
Use the full font-family parsing that returns a CSSValueList,
since we can handle multiple families.

3:10 PM Changeset in webkit [208075] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win][Direct2D] Implement ImageBufferData::putData.
https://bugs.webkit.org/show_bug.cgi?id=164151

Reviewed by Brent Fulgham.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::getData):
(WebCore::ImageBufferData::putData):

2:57 PM Changeset in webkit [208074] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix in CLoop builds after r208063.

Include required headers.

  • parser/Parser.h:
  • runtime/Completion.cpp:
  • runtime/JSGlobalObjectFunctions.cpp:
2:52 PM Changeset in webkit [208073] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support hanging-punctuation
https://bugs.webkit.org/show_bug.cgi?id=164153

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeHangingPunctuation):
(WebCore::CSSPropertyParser::parseSingleValue):

2:37 PM Changeset in webkit [208072] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Include parameter strings for native CustomElementRegistry methods in the console
https://bugs.webkit.org/show_bug.cgi?id=164147

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-28
Reviewed by Brian Burg.

  • UserInterface/Models/NativeFunctionParameters.js:
2:35 PM Changeset in webkit [208071] by Ryan Haddad
  • 14 edits in trunk/Source/JavaScriptCore

Update reference files for builtins generator tests after r208063.

Unreviewed test gardening.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
2:33 PM Changeset in webkit [208070] by Yusuke Suzuki
  • 9 edits
    2 copies
    5 adds in trunk

[DOMJIT] Implement Document::documentElement
https://bugs.webkit.org/show_bug.cgi?id=164113

Reviewed by Sam Weinig.

Source/WebCore:

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

This patch implements document.documentElement DOMJIT accessor.
Similar to ownerDocument accessor, the way to access to document.documentElement
from JIT code is already prepared for CSSJIT. DOMJIT just utilizes the existing
functionality: using documentElementMemoryOffset().

document.documentElement is frequently called in jQuery. Especially, every time
we call jQuery.attr(), this is called.

To implement Document accessor, we clean up some code in DOMJITHelpers.
We create the cpp file for DOMJITHelpers and move some helpers to it.
And we also implement DOMJIT::checkDOM<DOMInterface> for convenience.
It returns appropriate CheckDOM patchpoint implementation.

This patch improves Dromaeo jslib-attr-jquery.html 10% (481.64 v.s. 532.54).

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):

  • dom/Document.idl:
  • domjit/DOMJITAbstractHeapRepository.h:
  • domjit/DOMJITCheckDOM.h: Copied from Source/WebCore/domjit/DOMJITAbstractHeapRepository.h.

(WebCore::DOMJIT::TypeChecker<Node>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Document>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Event>::branchIfFail):
(WebCore::DOMJIT::TypeChecker<Element>::branchIfFail):
(WebCore::DOMJIT::checkDOM):

  • domjit/DOMJITHelpers.cpp: Copied from Source/WebCore/domjit/DOMJITAbstractHeapRepository.h.

(WebCore::DOMJIT::loadDocument):
(WebCore::DOMJIT::loadDocumentElement):

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJIT::toWrapperSlow):
(WebCore::DOMJIT::loadDocument): Deleted.

  • domjit/JSDocumentDOMJIT.cpp: Added.

(WebCore::DocumentDocumentElementDOMJIT::checkDOM):
(WebCore::DocumentDocumentElementDOMJIT::callDOM):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMForOffsetAccess):
(WebCore::NodeFirstChildDOMJIT::checkDOM):
(WebCore::NodeLastChildDOMJIT::checkDOM):
(WebCore::NodeNextSiblingDOMJIT::checkDOM):
(WebCore::NodePreviousSiblingDOMJIT::checkDOM):
(WebCore::NodeParentNodeDOMJIT::checkDOM):
(WebCore::NodeNodeTypeDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::checkDOM):
(WebCore::NodeOwnerDocumentDOMJIT::callDOM):
(WebCore::toWrapperSlow): Deleted.
(WebCore::checkNode): Deleted.

LayoutTests:

  • js/dom/domjit-accessor-document-element-changed-expected.txt: Added.
  • js/dom/domjit-accessor-document-element-changed.html: Added.
  • js/dom/domjit-accessor-document-element-expected.txt: Added.
  • js/dom/domjit-accessor-document-element.html: Added.
2:12 PM Changeset in webkit [208069] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support initial-letter
https://bugs.webkit.org/show_bug.cgi?id=164150

Reviewed by Simon Fraser.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeInitialLetter):
(WebCore::CSSPropertyParser::parseSingleValue):

2:02 PM Changeset in webkit [208068] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Remove some unused code in RenderLayerCompositor::computeExtent()
https://bugs.webkit.org/show_bug.cgi?id=163934

Reviewed by Zalan Bujtas.

viewportRect was never used.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::computeExtent):

1:54 PM Changeset in webkit [208067] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add wasm/js directory to JSC include directories in CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=164145

Reviewed by Michael Catanzaro.

Attempt to fix CMake ports. We include a file under wasm/js.
But we didn't add it to JSC include directories.

  • CMakeLists.txt:
1:53 PM Changeset in webkit [208066] by weinig@apple.com
  • 8 edits in trunk

[WebIDL] Update parser and code generators to only access type information through the type property
https://bugs.webkit.org/show_bug.cgi?id=164141

Reviewed by Anders Carlsson.

Source/WebCore:

Update IDLParser structs:

  • domSignature: Rename idlType to type. Specify that type is a domType.
  • domInterface: Remove name and parent. Specify that type and parentType are a domTypes.
  • domFunction: Specify that signature is a domSignature.
  • domAttribute: Remove unused type. Specify that signature is a domSignature.
  • domIterable: Remove idlKeyType and valueKeyType. Specify that keyType and valueType are a domTypes
  • domConstant: Specify that type is a domType.
  • domEnum: Specify that type is a domType.
  • domDictionary: Remove name and parent. Specify that type and parentType are a domTypes.
  • Typedef: Rename idlType to type and specify that it is a domType.
  • bindings/scripts/IDLParser.pm:

Remove redundant properties and specify type info in structs where possible.

  • bindings/scripts/CodeGenerator.pm:

(IsSVGTypeNeedingTearOffForType): Renamed to remove ForType suffix.
(IsSVGTypeWithWritablePropertiesNeedingTearOffForType): Renamed to remove ForType suffix.
(GetSVGTypeNeedingTearOffForType): Renamed to remove ForType suffix.
(GetSVGWrappedTypeNeedingTearOffForType): Renamed to remove ForType suffix.

Update to always access type information through type accessors. Remove use of removed
properties.

  • bindings/scripts/CodeGeneratorJS.pm:

(IsNullableType): Deleted.
(StripNullable): Deleted.
Remove unused functions.

Update to always access type information through type accessors. Remove use of removed
properties.

  • bindings/scripts/generate-bindings.pl:

Update to always access type information through type accessors. Remove use of removed
properties.

Tools:

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

Update to always access type information through type accessors. Remove use of removed
properties.

1:45 PM Changeset in webkit [208065] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[CSS Parser] Support bopomofo Ruby
https://bugs.webkit.org/show_bug.cgi?id=164148

Reviewed by Simon Fraser.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

1:41 PM Changeset in webkit [208064] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Add support for -webkit-canvas images
https://bugs.webkit.org/show_bug.cgi?id=164144

Reviewed by Simon Fraser.

  • css/CSSValueKeywords.in:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeWebkitCanvas):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::isGeneratedImage):

1:04 PM Changeset in webkit [208063] by ggaren@apple.com
  • 40 edits
    14 copies
    3 moves in trunk/Source

One file per class for Executable.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=164099

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins_generate_combined_implementation.py:

(BuiltinsCombinedImplementationGenerator.generate_secondary_header_includes):

  • Scripts/builtins/builtins_generate_separate_implementation.py:

(BuiltinsSeparateImplementationGenerator.generate_secondary_header_includes):

  • builtins/BuiltinExecutables.cpp:
  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:

(JSC::ScriptExecutable::prepareForExecution):

  • bytecode/CodeOrigin.cpp:
  • bytecode/EvalCodeCache.h:
  • bytecode/InlineCallFrame.cpp:
  • bytecode/UnlinkedCodeBlock.cpp:
  • bytecode/UnlinkedFunctionExecutable.cpp:
  • bytecompiler/StaticPropertyAnalysis.h:
  • debugger/DebuggerLocation.cpp:
  • dfg/DFGCapabilities.h:
  • dfg/DFGOSRExitPreparation.cpp:
  • dfg/DFGToFTLDeferredCompilationCallback.cpp:
  • dfg/DFGToFTLForOSREntryDeferredCompilationCallback.cpp:
  • interpreter/StackVisitor.cpp:
  • jit/JITThunks.cpp:
  • jit/JITToDFGDeferredCompilationCallback.cpp:
  • jit/SpecializedThunkJIT.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • parser/Parser.h:
  • runtime/CallData.cpp:
  • runtime/ConstructData.cpp:
  • runtime/EvalExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/EvalExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/Executable.cpp: Removed.
  • runtime/Executable.h: Removed.
  • runtime/ExecutableBase.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ExecutableBase.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/FunctionExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/FunctionExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/FunctionExecutableDump.h:
  • runtime/JSArray.cpp:
  • runtime/JSFunctionInlines.h:
  • runtime/JSModuleRecord.cpp:
  • runtime/JSObject.cpp:
  • runtime/Lookup.cpp:
  • runtime/ModuleProgramExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ModuleProgramExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/NativeExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/NativeExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/ProgramExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/ProgramExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/SamplingProfiler.cpp:
  • runtime/ScriptExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::WebAssemblyExecutable::WebAssemblyExecutable): Deleted.
(JSC::WebAssemblyExecutable::destroy): Deleted.
(JSC::WebAssemblyExecutable::visitChildren): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.

  • runtime/ScriptExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(): Deleted.
(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

  • runtime/StringConstructor.cpp:
  • runtime/StringPrototype.cpp:
  • runtime/WebAssemblyExecutable.cpp: Copied from Source/JavaScriptCore/runtime/Executable.cpp.

(JSC::ExecutableBase::destroy): Deleted.
(JSC::ExecutableBase::clearCode): Deleted.
(JSC::NativeExecutable::create): Deleted.
(JSC::NativeExecutable::destroy): Deleted.
(JSC::NativeExecutable::createStructure): Deleted.
(JSC::NativeExecutable::finishCreation): Deleted.
(JSC::NativeExecutable::NativeExecutable): Deleted.
(JSC::ScriptExecutable::ScriptExecutable): Deleted.
(JSC::ScriptExecutable::destroy): Deleted.
(JSC::ScriptExecutable::installCode): Deleted.
(JSC::ScriptExecutable::newCodeBlockFor): Deleted.
(JSC::ScriptExecutable::newReplacementCodeBlockFor): Deleted.
(JSC::setupLLInt): Deleted.
(JSC::setupJIT): Deleted.
(JSC::ScriptExecutable::prepareForExecutionImpl): Deleted.
(JSC::EvalExecutable::create): Deleted.
(JSC::EvalExecutable::EvalExecutable): Deleted.
(JSC::EvalExecutable::destroy): Deleted.
(JSC::ProgramExecutable::ProgramExecutable): Deleted.
(JSC::ProgramExecutable::destroy): Deleted.
(JSC::ModuleProgramExecutable::ModuleProgramExecutable): Deleted.
(JSC::ModuleProgramExecutable::create): Deleted.
(JSC::ModuleProgramExecutable::destroy): Deleted.
(JSC::FunctionExecutable::FunctionExecutable): Deleted.
(JSC::FunctionExecutable::finishCreation): Deleted.
(JSC::FunctionExecutable::destroy): Deleted.
(JSC::samplingDescription): Deleted.
(JSC::EvalExecutable::visitChildren): Deleted.
(JSC::ProgramExecutable::checkSyntax): Deleted.
(JSC::ProgramExecutable::initializeGlobalProperties): Deleted.
(JSC::ProgramExecutable::visitChildren): Deleted.
(JSC::ModuleProgramExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::baselineCodeBlockFor): Deleted.
(JSC::FunctionExecutable::visitChildren): Deleted.
(JSC::FunctionExecutable::fromGlobalCode): Deleted.
(JSC::ExecutableBase::dump): Deleted.
(JSC::ExecutableBase::hashFor): Deleted.
(JSC::NativeExecutable::hashFor): Deleted.
(JSC::ScriptExecutable::hashFor): Deleted.

  • runtime/WebAssemblyExecutable.h: Copied from Source/JavaScriptCore/runtime/Executable.h.

(JSC::isCall): Deleted.
(JSC::ExecutableBase::ExecutableBase): Deleted.
(JSC::ExecutableBase::finishCreation): Deleted.
(JSC::ExecutableBase::isEvalExecutable): Deleted.
(JSC::ExecutableBase::isFunctionExecutable): Deleted.
(JSC::ExecutableBase::isProgramExecutable): Deleted.
(JSC::ExecutableBase::isModuleProgramExecutable): Deleted.
(JSC::ExecutableBase::isHostFunction): Deleted.
(JSC::ExecutableBase::isWebAssemblyExecutable): Deleted.
(JSC::ExecutableBase::createStructure): Deleted.
(JSC::ExecutableBase::generatedJITCodeForCall): Deleted.
(JSC::ExecutableBase::generatedJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::generatedJITCodeFor): Deleted.
(JSC::ExecutableBase::entrypointFor): Deleted.
(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor): Deleted.
(JSC::ExecutableBase::offsetOfNumParametersFor): Deleted.
(JSC::ExecutableBase::hasJITCodeForCall): Deleted.
(JSC::ExecutableBase::hasJITCodeForConstruct): Deleted.
(JSC::ExecutableBase::hasJITCodeFor): Deleted.
(JSC::ExecutableBase::intrinsic): Deleted.
(JSC::ExecutableBase::intrinsicFor): Deleted.
(JSC::ScriptExecutable::source): Deleted.
(JSC::ScriptExecutable::sourceID): Deleted.
(JSC::ScriptExecutable::sourceURL): Deleted.
(JSC::ScriptExecutable::firstLine): Deleted.
(JSC::ScriptExecutable::setOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::hasOverrideLineNumber): Deleted.
(JSC::ScriptExecutable::overrideLineNumber): Deleted.
(JSC::ScriptExecutable::lastLine): Deleted.
(JSC::ScriptExecutable::startColumn): Deleted.
(JSC::ScriptExecutable::endColumn): Deleted.
(JSC::ScriptExecutable::typeProfilingStartOffset): Deleted.
(JSC::ScriptExecutable::typeProfilingEndOffset): Deleted.
(JSC::ScriptExecutable::usesEval): Deleted.
(JSC::ScriptExecutable::usesArguments): Deleted.
(JSC::ScriptExecutable::isArrowFunctionContext): Deleted.
(JSC::ScriptExecutable::isStrictMode): Deleted.
(JSC::ScriptExecutable::derivedContextType): Deleted.
(JSC::ScriptExecutable::evalContextType): Deleted.
(JSC::ScriptExecutable::ecmaMode): Deleted.
(JSC::ScriptExecutable::setNeverInline): Deleted.
(JSC::ScriptExecutable::setNeverOptimize): Deleted.
(JSC::ScriptExecutable::setNeverFTLOptimize): Deleted.
(JSC::ScriptExecutable::setDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::setCanUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::neverInline): Deleted.
(JSC::ScriptExecutable::neverOptimize): Deleted.
(JSC::ScriptExecutable::neverFTLOptimize): Deleted.
(JSC::ScriptExecutable::didTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::isInliningCandidate): Deleted.
(JSC::ScriptExecutable::isOkToOptimize): Deleted.
(JSC::ScriptExecutable::canUseOSRExitFuzzing): Deleted.
(JSC::ScriptExecutable::addressOfDidTryToEnterInLoop): Deleted.
(JSC::ScriptExecutable::features): Deleted.
(JSC::ScriptExecutable::recordParse): Deleted.
(JSC::ScriptExecutable::finishCreation): Deleted.
(JSC::ScriptExecutable::prepareForExecution): Deleted.

Source/WebCore:

  • ForwardingHeaders/runtime/Executable.h: Removed.
  • ForwardingHeaders/runtime/FunctionExecutable.h: Copied from Source/WebCore/ForwardingHeaders/runtime/Executable.h.
  • bindings/js/JSLazyEventListener.cpp:
  • bindings/js/JSMainThreadExecStateInstrumentation.h:
12:40 PM Changeset in webkit [208062] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[CSS Parser] Clean up gradient parsing
https://bugs.webkit.org/show_bug.cgi?id=164139

Reviewed by Dean Jackson.

  • css/CSSGradientValue.cpp:

(WebCore::positionFromValue):
(WebCore::CSSGradientValue::computeEndPoint):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):

11:58 AM Changeset in webkit [208061] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Upgrade HarfBuzz to version 1.3.3
https://bugs.webkit.org/show_bug.cgi?id=162719

Patch by Frederic Wang <fwang@igalia.com> on 2016-10-28
Reviewed by Michael Catanzaro.

  • gtk/jhbuild.modules:
11:53 AM Changeset in webkit [208060] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

New CSS Parser should use Colors not RGBA32s
https://bugs.webkit.org/show_bug.cgi?id=164124
<rdar://problem/29000373>

Reviewed by Darin Adler.

The old parser has moved from using RGBA32 values to using
Colors directly. This was so we could support ExtendedColors
via the new color() syntax.

Update the new CSS parser to do the same.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHexColor):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
(WebCore::CSSPropertyParserHelpers::consumeColor):

11:49 AM Changeset in webkit [208059] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Allow new CSS parser to handle insertRule, etc via parseRule
https://bugs.webkit.org/show_bug.cgi?id=164122
<rdar://problem/29000101>

Reviewed by Darin Adler.

Call the new CSS parser from CSSParser::parseRule if enabled. This
allows style added via the CSSOM insertRule to go through
the parser.

I tested this across our layout tests that use insertRule. It
works fine, but does cause some filter tests to fail. This is
because the new parser does not generate WebKitCSSFilterValues,
but I think the CSSFunctionValue is good enough. I'll remove
WebKitCSSFilterValue separately.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseRule): Call CSSParserImpl::parseRule.

11:34 AM Changeset in webkit [208058] by Simon Fraser
  • 3 edits
    4 adds in trunk

Wrong blur radius for filter: drop-shadow()
https://bugs.webkit.org/show_bug.cgi?id=163667

Reviewed by Darin Adler.

Source/WebCore:

The "stdDev" parameter to <feDropShadow> and <feGaussianBlur> represents the standard
deviation (σ) of the Gaussian blur function. CSS filters drop-shadow() and blur() follow
this with their radius parameter.

However, CSS box-shadow and text-shadow use 2σ to describe the blur radius, since this
is conveniently close to the number of pixels the effect of the blur extends out.

feDropShadow, which is used by non-accelerated filter: drop-shadow(), was using
the wrong blur radius because it passed its stdDev directly to ShadowBlur. ShadowBlur
was written for CSS box-shadow, so expected its input "blur radius" to be twice the
stdDev.

Tests: css3/filters/drop-shadow-blur-radius.html

svg/filters/feDropShadow-blur-radius.html

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

LayoutTests:

Mismatch tests to detect that the blurry area extends out from under a masking
element on top.

  • css3/filters/drop-shadow-blur-radius-expected-mismatch.html: Added.
  • css3/filters/drop-shadow-blur-radius.html: Added.
  • svg/filters/feDropShadow-blur-radius-expected-mismatch.html: Added.
  • svg/filters/feDropShadow-blur-radius.html: Added.
11:09 AM Changeset in webkit [208057] by commit-queue@webkit.org
  • 62 edits
    6 adds in trunk

Expose RTCPeerConnection unprefixed
https://bugs.webkit.org/show_bug.cgi?id=164060

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

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/datachannel-emptystring-expected.txt: Added.
  • web-platform-tests/webrtc/no-media-call-expected.txt: Added.
  • web-platform-tests/webrtc/promises-call-expected.txt: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-constructor-expected.txt: Added.
  • web-platform-tests/webrtc/rtcpeerconnection/rtcpeerconnection-idl-expected.txt: Added.
  • web-platform-tests/webrtc/simplecall-expected.txt: Added.

Source/WebCore:

Covered by rebased and activated tests.

  • Modules/mediastream/RTCPeerConnection.idl:

LayoutTests:

  • TestExpectations:
  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
  • fast/mediastream/RTCPeerConnection-add-removeTrack.html:
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html:
  • fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html:
  • fast/mediastream/RTCPeerConnection-addTransceiver.html:
  • fast/mediastream/RTCPeerConnection-closed-state-expected.txt:
  • fast/mediastream/RTCPeerConnection-closed-state.html:
  • fast/mediastream/RTCPeerConnection-createAnswer.html:
  • fast/mediastream/RTCPeerConnection-createOffer.html:
  • fast/mediastream/RTCPeerConnection-datachannel.html:
  • fast/mediastream/RTCPeerConnection-dtmf.html:
  • fast/mediastream/RTCPeerConnection-events.html:
  • fast/mediastream/RTCPeerConnection-expected.txt:
  • fast/mediastream/RTCPeerConnection-getConfiguration.html:
  • fast/mediastream/RTCPeerConnection-have-local-offer.html:
  • fast/mediastream/RTCPeerConnection-have-local-pranswer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-offer.html:
  • fast/mediastream/RTCPeerConnection-have-remote-pranswer.html:
  • fast/mediastream/RTCPeerConnection-ice-expected.txt:
  • fast/mediastream/RTCPeerConnection-ice.html:
  • fast/mediastream/RTCPeerConnection-icecandidate-event.html:
  • fast/mediastream/RTCPeerConnection-iceconnectionstatechange-event.html:
  • fast/mediastream/RTCPeerConnection-inspect-answer.html:
  • fast/mediastream/RTCPeerConnection-inspect-offer.html:
  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt:
  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html:
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html:
  • fast/mediastream/RTCPeerConnection-localDescription.html:
  • fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html:
  • fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html:
  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html:
  • fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html:
  • fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-expected.txt:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params-expected.txt:
  • fast/mediastream/RTCPeerConnection-overloaded-operations-params.html:
  • fast/mediastream/RTCPeerConnection-overloaded-operations.html:
  • fast/mediastream/RTCPeerConnection-remoteDescription.html:
  • fast/mediastream/RTCPeerConnection-remotely-assigned-transceiver-mid.html:
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html:
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html:
  • fast/mediastream/RTCPeerConnection-stable.html:
  • fast/mediastream/RTCPeerConnection-stats-expected.txt:
  • fast/mediastream/RTCPeerConnection-stats.html:
  • fast/mediastream/RTCPeerConnection-statsSelector-expected.txt:
  • fast/mediastream/RTCPeerConnection-statsSelector.html:
  • fast/mediastream/RTCPeerConnection.html:
  • fast/mediastream/RTCRtpSender-replaceTrack.html:
  • fast/mediastream/RTCTrackEvent-constructor.html:
  • platform/efl/TestExpectations:
  • 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/TestExpectations:
10:52 AM Changeset in webkit [208056] by mark.lam@apple.com
  • 4 edits in branches/safari-602-branch/Source/JavaScriptCore

Merge r208018. rdar://problem/28962887, rdar://problem/28962912

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

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:
10:42 AM Changeset in webkit [208055] by hyatt@apple.com
  • 4 edits in trunk/Source/WebCore

[CSS Parser] Support the marquee properties
https://bugs.webkit.org/show_bug.cgi?id=164132

Reviewed by Zalan Bujtas.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeWebkitMarqueeIncrement):
(WebCore::consumeWebkitMarqueeRepetition):
(WebCore::consumeWebkitMarqueeSpeed):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

10:41 AM Changeset in webkit [208054] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

Fix busted layout test from previous check-in.

  • fast/multicol/column-box-alignment-rtl-expected.html:
10:15 AM Changeset in webkit [208053] by Csaba Osztrogonác
  • 2 edits in trunk/JSTests

Skip JSTests/microbenchmarks/dense-set.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164128

Reviewed by Mark Lam.

  • microbenchmarks/dense-set.js:
9:37 AM Changeset in webkit [208052] by caitp@igalia.com
  • 29 edits
    16 adds in trunk

[JSC] implement runtime for async functions
https://bugs.webkit.org/show_bug.cgi?id=163760

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/async-await-basic.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(shouldThrowSyntaxError):
(let.AsyncFunction.async):
(async.asyncFunctionForProto):
(Object.getPrototypeOf.async):
(Object.getPrototypeOf.async.method):
(async):
(async.method):
(async.asyncNonConstructorDecl):
(shouldThrow.new.async):
(shouldThrow.new.async.nonConstructor):
(async.asyncDecl):
(async.f):
(MyError):
(async.asyncDeclThrower):
(shouldThrowAsync.async):
(resolveLater):
(rejectLater):
(async.resumeAfterNormal):
(O.async.resumeAfterNormal):
(resumeAfterNormalArrow.async):
(async.resumeAfterThrow):
(O.async.resumeAfterThrow):
(resumeAfterThrowArrow.async):
(catch):

  • stress/async-await-module-reserved-word.js: Added.

(shouldThrow):
(SyntaxError.Canstring_appeared_hereawait.checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.await):
(checkModuleSyntaxError.String.raw.async.await):
(SyntaxError.Cannot.declare.named):

  • stress/async-await-mozilla.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrow):
(shouldThrowAsync):
(assert):
(shouldThrowSyntaxError):
(mozSemantics.async.empty):
(mozSemantics.async.simpleReturn):
(mozSemantics.async.simpleAwait):
(mozSemantics.async.simpleAwaitAsync):
(mozSemantics.async.returnOtherAsync):
(mozSemantics.async.simpleThrower):
(mozSemantics.async.delegatedThrower):
(mozSemantics.async.tryCatch):
(mozSemantics.async.tryCatchThrow):
(mozSemantics.async.wellFinally):
(mozSemantics.async.finallyMayFail):
(mozSemantics.async.embedded.async.inner):
(mozSemantics.async.embedded):
(mozSemantics.async.fib):
(mozSemantics.async.isOdd.async.isEven):
(mozSemantics.async.isOdd):
(mozSemantics.hardcoreFib.async.fib2):
(mozSemantics.namedAsyncExpr.async.simple):
(mozSemantics.async.executionOrder.async.first):
(mozSemantics.async.executionOrder.async.second):
(mozSemantics.async.executionOrder.async.third):
(mozSemantics.async.executionOrder):
(mozSemantics.async.miscellaneous):
(mozSemantics.thrower):
(mozSemantics.async.defaultArgs):
(mozSemantics.shouldThrow):
(mozSemantics):
(mozMethods.X):
(mozMethods.X.prototype.async.getValue):
(mozMethods.X.prototype.setValue):
(mozMethods.X.prototype.async.increment):
(mozMethods.X.prototype.async.getBaseClassName):
(mozMethods.X.async.getStaticValue):
(mozMethods.Y.prototype.async.getBaseClassName):
(mozMethods.Y):
(mozFunctionNameInferrence.async.test):
(mozSyntaxErrors):

  • stress/async-await-reserved-word.js: Added.

(assert):
(shouldThrowSyntaxError):
(AsyncFunction.async):

  • stress/async_arrow_functions_lexical_arguments_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(noArgumentsArrow2.async):

  • stress/async_arrow_functions_lexical_new.target_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(shouldThrowAsync):
(C1):
(C2):
(shouldThrowAsync.async):

  • stress/async_arrow_functions_lexical_super_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(BaseClass.prototype.baseClassValue):
(BaseClass.prototype.get property):
(BaseClass):
(ChildClass.prototype.asyncSuperProp):
(ChildClass.prototype.asyncSuperProp2):
(ChildClass):
(ChildClass2):

  • stress/async_arrow_functions_lexical_this_binding.js: Added.

(shouldBe):
(shouldBeAsync):
(d.y):

Source/JavaScriptCore:

Async functions generate bytecode equivalent to the following, which is
highly dependent on the Generator implementation:

`
Before translation:
async function asyncfn() {}

After translation:
function asyncfn() {

let generator = {

@generatorNext: function(@generator, @generatorState, @generatorValue, @generatorResumeMode, @generatorFrameState) {

Body of async function

},
@generatorState: 0,
@generatorThis: this,
@generatorFrameState: <frame state>,

};
return @asyncFunctionResume(generator, undefined, GeneratorResumeMode::NormalMode);

}
`

Await Expressions are equivalent to non-delegating Yield expressions, and emit identical bytecode.

There are some caveats to be addressed later:

1) the op_to_this is always performed, whether it's used or not, like normal generators. (https://bugs.webkit.org/show_bug.cgi?id=151586)

2) for async arrow functions, the home object is always stored on the "body" function, regardless of whether it's needed or
not, for the same reason as #1 (and should also be fixed as part of https://bugs.webkit.org/show_bug.cgi?id=151586)

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/AsyncFunctionPrototype.js: Added.

(asyncFunctionResume):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::isArrowFunction):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitNewFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emitNewFuncCommon):
(JSC::JIT::emit_op_new_async_func):
(JSC::JIT::emitNewFuncExprCommon):
(JSC::JIT::emit_op_new_async_func_exp):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseAsyncFunctionSourceElements):
(JSC::Parser<LexerType>::parseFunctionInfo):

  • parser/Parser.h:

(JSC::Scope::setSourceParseMode):

  • parser/ParserModes.h:

(JSC::isGeneratorOrAsyncFunctionBodyParseMode):
(JSC::isGeneratorOrAsyncFunctionWrapperParseMode):

  • runtime/AsyncFunctionConstructor.cpp: Added.

(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::callAsyncFunctionConstructor):
(JSC::constructAsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::getCallData):
(JSC::AsyncFunctionConstructor::getConstructData):

  • runtime/AsyncFunctionConstructor.h: Added.

(JSC::AsyncFunctionConstructor::create):
(JSC::AsyncFunctionConstructor::createStructure):

  • runtime/AsyncFunctionPrototype.cpp: Added.

(JSC::AsyncFunctionPrototype::AsyncFunctionPrototype):
(JSC::AsyncFunctionPrototype::finishCreation):

  • runtime/AsyncFunctionPrototype.h: Added.

(JSC::AsyncFunctionPrototype::create):
(JSC::AsyncFunctionPrototype::createStructure):

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • runtime/FunctionConstructor.h:
  • runtime/JSAsyncFunction.cpp: Added.

(JSC::JSAsyncFunction::JSAsyncFunction):
(JSC::JSAsyncFunction::createImpl):
(JSC::JSAsyncFunction::create):
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint):

  • runtime/JSAsyncFunction.h: Added.

(JSC::JSAsyncFunction::allocationSize):
(JSC::JSAsyncFunction::createStructure):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::lazyAsyncFunctionStructure):
(JSC::JSGlobalObject::asyncFunctionPrototype):
(JSC::JSGlobalObject::asyncFunctionPrototypeConcurrently):
(JSC::JSGlobalObject::asyncFunctionStructure):
(JSC::JSGlobalObject::asyncFunctionStructureConcurrently):

9:23 AM Changeset in webkit [208051] by hyatt@apple.com
  • 9 edits in trunk/Source/WebCore

[CSS Parser] Miscellaneous bug fixes
https://bugs.webkit.org/show_bug.cgi?id=164131

Reviewed by Zalan Bujtas.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSPropertyNames.in:

The prefix was incorrectly dropped from -webkit-column-progression.
Put it back.

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertPositionComponent):
(WebCore::StyleBuilderConverter::convertObjectPosition):
Fix object-position parsing so that the position components can
be ids.

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueContent):
The new parser doesn't make a list for content:none, since none can't be
a component of a list anyway. Add code to handle this case in the
apply function.

  • css/parser/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
Put the prefix back on -webkit-column-progression.

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Same.

  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):
Make sure match type is checked, since our code asserts if it isn't.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::validWidthOrHeightKeyword):
(WebCore::consumeLineGrid):
(WebCore::CSSPropertyParser::parseSingleValue):
Add support for the line-grid properties and for -webkit-nbsp-mode.

9:14 AM Changeset in webkit [208050] by Matt Baker
  • 1 edit
    4 adds in trunk/Source/WebInspectorUI

Unreviewed, worker document images added

  • UserInterface/Images/WorkerDocument.png: Added.
  • UserInterface/Images/WorkerDocument@2x.png: Added.
  • UserInterface/Images/WorkerDocumentLarge.png: Added.
  • UserInterface/Images/WorkerDocumentLarge@2x.png: Added.
8:39 AM Changeset in webkit [208049] by Antti Koivisto
  • 7 edits in trunk

Always use iOS preload behavior
https://bugs.webkit.org/show_bug.cgi?id=164127

Reviewed by Andreas Kling.

Source/WebCore:

On non-iOS platforms we were delaying issuing lower priority preload (images mostly) until document has body.
This should be unnecessary as networking layer prioritization should ensure higher priority resources are
loaded earlier. Testing on iOS has showed that more aggressive behavior is a win.

This patch switches to iOS behavior on all platforms (and simplified the logic).

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::HTMLResourcePreloader::preload):

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::preloadIfNeeded):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::performPostLoadActions):
(WebCore::CachedResourceLoader::preload):
(WebCore::CachedResourceLoader::isPreloaded):
(WebCore::CachedResourceLoader::checkForPendingPreloads): Deleted.
(WebCore::CachedResourceLoader::requestPreload): Deleted.
(WebCore::CachedResourceLoader::clearPendingPreloads): Deleted.

  • loader/cache/CachedResourceLoader.h:

LayoutTests:

  • http/tests/webgl/1.0.2/readPixelsBadArgs-expected.txt:
8:11 AM Changeset in webkit [208048] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Enable CFNetwork connection cache fast lane for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=164129

Reviewed by Andreas Kling.

The idea of this feature is keep a connection free for higher priority requests so low-priority
image loads can't take all the available connections.

We have this enabled on WK1 but not on WK2. See what enabling it does for performance in bots.

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

Based on code inspection setting kHTTPMinimumFastLanePriority is not sufficient to enable this feature,
kHTTPNumFastLanes needs also be set to a non-zero value. Use the same constants as WK1.
Also enable this on Mac to unify behavior.

7:21 AM Changeset in webkit [208047] by Csaba Osztrogonác
  • 3 edits in trunk/JSTests

Skip 2 JS stress tests on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=164125

Unreviewed quick fix to unbreak JSCOnly ARM bots as soon as possible.

  • stress/joined-strings-should-not-exceed-max-string-length.js:
  • stress/string-prototype-replace-should-throw-out-of-memory-error-when-using-too-much-memory.js:
6:59 AM Changeset in webkit [208046] by commit-queue@webkit.org
  • 15 edits
    1 copy
    5 adds in trunk

[Fetch] Ensure redirection count is no more than 20 in case of cross origin requests
https://bugs.webkit.org/show_bug.cgi?id=164117

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-28
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Adding new tests.
Split redirect.py in two different scripts.
redirect.py is to be used when simple redirections are needed.
redirect-count.py is to be used when the number of redirections is tested.

redirect.py no longer needs the count parameter.
This explains rebasing of the existing tests.

  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.html: Added.
  • web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.js: Added.

(redirectCount):

  • 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/request-cache-only-if-cached-expected.txt:
  • web-platform-tests/fetch/api/resources/redirect-count.py: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/resources/redirect.py.

(main):

  • web-platform-tests/fetch/api/resources/redirect.py:

(main):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin-worker.html

imported/w3c/web-platform-tests/fetch/api/redirect/redirect-count-cross-origin.html

Introducing a ResourceLoaderOptions that defines the maximum redirection count.
By default, it is set to 20 as per fetch specification.

This option is used by SubresourceLoader to cancel load if its redirection count is above that maximum.
DocumentThreadableLoader stopping redirections to make preflight if needed, it now uses the maxRedirectCount loader option to ensure
that the total number of redirections is 20.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):

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

(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/SubresourceLoader.h:
5:36 AM Changeset in webkit [208045] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

generate-bindings-all.pl should recompile supplemented IDL if its supplemental IDL are added or removed
https://bugs.webkit.org/show_bug.cgi?id=164054

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-28
Reviewed by Michael Catanzaro.

generate-bindings-all.pl determines which IDL to recompile by
comparing timestamps of generated files, source IDL and its
dependencies. But this is not enough. If a new supplemental IDL
is added, its supplemented IDL needs to be recompiled even though
the timestamp of the supplemental IDL is older than the
generated files.

  • bindings/scripts/generate-bindings-all.pl: Read supplemental

dependency file both before and after invoking preprocess-idls.pl.
Recompile IDL files if its supplemental dependencies are added or
removed.

5:24 AM Changeset in webkit [208044] by commit-queue@webkit.org
  • 2 edits in trunk

[CMake] Changing enabled features should trigger recompiling all IDL
https://bugs.webkit.org/show_bug.cgi?id=164121

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-28
Reviewed by Michael Catanzaro.

Changing enabled features should trigger recompiling all IDL
because some of them use #if. generate-bindings-all.pl was
introduced in <http://trac.webkit.org/changeset/207617>. Before
this change, updating supplemental_dependency.tmp triggered
recompiling all IDL. Changing enabled features usually involves
adding or removing IDL files. As the result, all IDL would be
recompiled. After the change, adding or removing IDL does not
trigger recompiling all IDL. So, we need to explicitly trigger
recompiling all IDL if enabled features are changed.

  • Source/cmake/WebKitMacros.cmake(GENERATE_BINDINGS): Added

cmakeconfig.h to extra dependencies.

4:14 AM Changeset in webkit [208043] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

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

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

No change of behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
(WebCore::MediaEndpointPeerConnection::gotIceCandidate):

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

(WebCore::configurationFromJSON):
(WebCore::configurationToJSON):
(WebCore::SDPProcessor::generateCandidateLine):
(WebCore::SDPProcessor::parseCandidateLine):

  • platform/mediastream/IceCandidate.h:
  • platform/mediastream/MediaEndpointSessionConfiguration.h:

(WebCore::MediaEndpointSessionConfiguration::mediaDescriptions):
(WebCore::MediaEndpointSessionConfiguration::addMediaDescription):
(WebCore::MediaEndpointSessionConfiguration::clone):

  • platform/mediastream/PeerMediaDescription.h:

(WebCore::PeerMediaDescription::addPayload):
(WebCore::PeerMediaDescription::addSsrc):
(WebCore::PeerMediaDescription::clearSsrcs):
(WebCore::PeerMediaDescription::addIceCandidate):
(WebCore::PeerMediaDescription::create): Deleted.
(WebCore::PeerMediaDescription::~PeerMediaDescription): Deleted.
(WebCore::PeerMediaDescription::type): Deleted.
(WebCore::PeerMediaDescription::setType): Deleted.
(WebCore::PeerMediaDescription::port): Deleted.
(WebCore::PeerMediaDescription::setPort): Deleted.
(WebCore::PeerMediaDescription::address): Deleted.
(WebCore::PeerMediaDescription::setAddress): Deleted.
(WebCore::PeerMediaDescription::mode): Deleted.
(WebCore::PeerMediaDescription::setMode): Deleted.
(WebCore::PeerMediaDescription::mid): Deleted.
(WebCore::PeerMediaDescription::setMid): Deleted.
(WebCore::PeerMediaDescription::payloads): Deleted.
(WebCore::PeerMediaDescription::setPayloads): Deleted.
(WebCore::PeerMediaDescription::rtcpMux): Deleted.
(WebCore::PeerMediaDescription::setRtcpMux): Deleted.
(WebCore::PeerMediaDescription::rtcpAddress): Deleted.
(WebCore::PeerMediaDescription::setRtcpAddress): Deleted.
(WebCore::PeerMediaDescription::rtcpPort): Deleted.
(WebCore::PeerMediaDescription::setRtcpPort): Deleted.
(WebCore::PeerMediaDescription::mediaStreamId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamId): Deleted.
(WebCore::PeerMediaDescription::mediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::setMediaStreamTrackId): Deleted.
(WebCore::PeerMediaDescription::dtlsSetup): Deleted.
(WebCore::PeerMediaDescription::setDtlsSetup): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprintHashFunction): Deleted.
(WebCore::PeerMediaDescription::dtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::setDtlsFingerprint): Deleted.
(WebCore::PeerMediaDescription::cname): Deleted.
(WebCore::PeerMediaDescription::setCname): Deleted.
(WebCore::PeerMediaDescription::ssrcs): Deleted.
(WebCore::PeerMediaDescription::iceUfrag): Deleted.
(WebCore::PeerMediaDescription::setIceUfrag): Deleted.
(WebCore::PeerMediaDescription::icePassword): Deleted.
(WebCore::PeerMediaDescription::setIcePassword): Deleted.
(WebCore::PeerMediaDescription::iceCandidates): Deleted.
(WebCore::PeerMediaDescription::clone): Deleted.
(WebCore::PeerMediaDescription::PeerMediaDescription): Deleted.

  • platform/mediastream/mac/MediaEndpointMac.cpp:

(WebCore::MediaEndpointMac::addRemoteCandidate):
(WebCore::MediaEndpointMac::OnIceCandidate):

  • platform/mediastream/mac/MediaEndpointMac.h:
  • platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:

(WebCore::MediaEndpointOwr::updateSendConfiguration):

  • platform/mediastream/openwebrtc/MediaEndpointOwr.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::updateConfigurationMids):

2:40 AM Changeset in webkit [208042] by commit-queue@webkit.org
  • 25 edits
    4 copies
    4 adds in trunk

[Modern Media Controls] Media Controller: scrubbing support
https://bugs.webkit.org/show_bug.cgi?id=163726
<rdar://problem/27989481>

Patch by Antoine Quint <Antoine Quint> on 2016-10-28
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the ScrubberSupport class which brings support for scrubbing the media
by interacting with the scrubber in the media controls and correctly reflecting
the media's current time as set via the media API.

Tests: media/modern-media-controls/scrubber-support/scrubber-support-click.html

media/modern-media-controls/scrubber-support/scrubber-support-drag.html
media/modern-media-controls/scrubber-support/scrubber-support-media-api.html

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/media-controller.js:

(MediaController):

  • Modules/modern-media-controls/media/scrubbing-support.js: Added.

(ScrubbingSupport.prototype.get control):
(ScrubbingSupport.prototype.get mediaEvents):
(ScrubbingSupport.prototype.controlValueWillStartChanging):
(ScrubbingSupport.prototype.controlValueDidChange):
(ScrubbingSupport.prototype.controlValueDidStopChanging):
(ScrubbingSupport.prototype.syncControl):
(ScrubbingSupport):

  • WebCore.xcodeproj/project.pbxproj:

LayoutTests:

Adding new tests for ScrubberSupport that test clicking in the scrubber,
dragging the scrubber and setting the media currentTime via the media API.
Also 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.html:
  • media/modern-media-controls/playback-support/playback-support-button-click.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/remaining-time-support/remaining-time-support.html:
  • media/modern-media-controls/scrubber-support/scrubber-support-click-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-click.html: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-drag-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-drag.html: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api-expected.txt: Added.
  • media/modern-media-controls/scrubber-support/scrubber-support-media-api.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:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
12:17 AM Changeset in webkit [208041] by achristensen@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Another build fix.

  • CMakeLists.txt:
12:08 AM Changeset in webkit [208040] by achristensen@apple.com
  • 7 edits in trunk/Source

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

  • CMakeLists.txt:

Source/WebCore:
Fix Windows WebGL build after r208022
https://bugs.webkit.org/show_bug.cgi?id=164091

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

(WebCore::Extensions3DOpenGLES::Extensions3DOpenGLES):

  • platform/graphics/opengl/Extensions3DOpenGLES.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::getExtensions):

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@apple.com
  • 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 Brian 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):

Note: See TracTimeline for information about the timeline view.