⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

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
  • 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:
Note: See TracTimeline for information about the timeline view.