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

Timeline



Apr 24, 2017:

11:52 PM Changeset in webkit [215723] by commit-queue@webkit.org
  • 14 edits in trunk

test262: test262/test/language/expressions/object/method-definition/early-errors-object-method-duplicate-parameters.js
https://bugs.webkit.org/show_bug.cgi?id=171190

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-24
Reviewed by Saam Barati.

JSTests:

  • stress/async-await-syntax.js:
  • test262.yaml:

Source/JavaScriptCore:

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitNewFunctionExpressionCommon):
(JSC::BytecodeGenerator::emitNewFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::FunctionNode::emitBytecode):
(JSC::Scope::setSourceParseMode):

  • parser/ParserModes.h:

(JSC::isFunctionParseMode):
(JSC::isMethodParseMode):
(JSC::isGeneratorOrAsyncFunctionWrapperParseMode):
(JSC::isGeneratorParseMode):
(JSC::isGeneratorWrapperParseMode):

  • runtime/FunctionExecutable.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::getOwnPropertySlot):
Add a new GeneratorWrapperMethodMode parse mode. The other function types
(async, arrow) already have a FunctionMode and a MethodMode. Give
generators one as well. This lets isMethodParseMode actually be accurate.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::isArrowFunctionParameters):
(JSC::Parser<LexerType>::parseFormalParameters):
(JSC::stringForFunctionMode):
(JSC::Parser<LexerType>::parseFunctionParameters):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parsePropertyMethod):

  • parser/Parser.h:

Add a duplicate parameter failure if there are duplicate parameters
in method syntax.

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

Extend to cover method duplicate parameter cases.

10:19 PM Changeset in webkit [215722] by commit-queue@webkit.org
  • 90 edits in trunk/Source

Clean up ICU headers
https://bugs.webkit.org/show_bug.cgi?id=170997

Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2017-04-24
Reviewed by JF Bastien.

Update all icu headers to 55.1

Source/JavaScriptCore:

  • icu/LICENSE: Update copyright
  • icu/README: Explain ICU headers for OS X better
  • icu/unicode/localpointer.h:

(LocalPointer::LocalPointer):
(LocalPointer::adoptInsteadAndCheckErrorCode):

  • icu/unicode/platform.h:
  • icu/unicode/putil.h:
  • icu/unicode/ucal.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucurr.h:
  • icu/unicode/udatpg.h:
  • icu/unicode/udisplaycontext.h:
  • icu/unicode/uformattable.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unum.h:
  • icu/unicode/unumsys.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/uset.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utypes.h:

Source/WebCore:

  • icu/LICENSE: Update copyright
  • icu/README: Explain ICU headers for OS X better
  • icu/unicode/localpointer.h:

(LocalPointer::LocalPointer):
(LocalPointer::adoptInsteadAndCheckErrorCode):

  • icu/unicode/platform.h:
  • icu/unicode/putil.h:
  • icu/unicode/std_string.h:
  • icu/unicode/ubrk.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/ucoleitr.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucurr.h:
  • icu/unicode/uidna.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unistr.h:

(UnicodeString::getArrayStart):
(UnicodeString::UnicodeString):
(UnicodeString::hasShortLength):
(UnicodeString::getShortLength):
(UnicodeString::length):
(UnicodeString::getCapacity):
(UnicodeString::isBogus):
(UnicodeString::isWritable):
(UnicodeString::isBufferWritable):
(UnicodeString::getBuffer):
(UnicodeString::isEmpty):
(UnicodeString::setZeroLength):
(UnicodeString::setShortLength):
(UnicodeString::setLength):
(UnicodeString::setToEmpty):
(UnicodeString::remove):

  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/usearch.h:
  • icu/unicode/uset.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:

Source/WebKit/mac:

  • icu/README: Explain ICU headers for OS X better
  • icu/unicode/localpointer.h:

(LocalPointer::LocalPointer):
(LocalPointer::adoptInsteadAndCheckErrorCode):

  • icu/unicode/platform.h:
  • icu/unicode/putil.h:
  • icu/unicode/uchar.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucurr.h:
  • icu/unicode/uidna.h:
  • icu/unicode/umachine.h:
  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:

Source/WTF:

  • icu/LICENSE: Update copyright
  • icu/README: Explain ICU headers for OS X better
  • icu/unicode/localpointer.h:

(LocalPointer::LocalPointer):
(LocalPointer::adoptInsteadAndCheckErrorCode):

  • icu/unicode/platform.h:
  • icu/unicode/putil.h:
  • icu/unicode/std_string.h:
  • icu/unicode/ubrk.h:
  • icu/unicode/uchar.h:
  • icu/unicode/ucnv.h:
  • icu/unicode/ucol.h:
  • icu/unicode/uconfig.h:
  • icu/unicode/ucurr.h:
  • icu/unicode/uloc.h:
  • icu/unicode/umachine.h:
  • icu/unicode/unistr.h:

(UnicodeString::getArrayStart):
(UnicodeString::UnicodeString):
(UnicodeString::hasShortLength):
(UnicodeString::getShortLength):
(UnicodeString::length):
(UnicodeString::getCapacity):
(UnicodeString::isBogus):
(UnicodeString::isWritable):
(UnicodeString::isBufferWritable):
(UnicodeString::getBuffer):
(UnicodeString::isEmpty):
(UnicodeString::setZeroLength):
(UnicodeString::setShortLength):
(UnicodeString::setLength):
(UnicodeString::setToEmpty):
(UnicodeString::remove):

  • icu/unicode/urename.h:
  • icu/unicode/uscript.h:
  • icu/unicode/uset.h:
  • icu/unicode/ustring.h:
  • icu/unicode/utf8.h:
  • icu/unicode/utypes.h:
  • icu/unicode/uvernum.h:
10:10 PM Changeset in webkit [215721] by jiewen_tan@apple.com
  • 4 edits in trunk

LayoutTests crypto/subtle/ecdsa-generate-key-sign-verify-p384.html and crypto/subtle/ecdsa-generate-key-sign-verify-p256.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=171059
<rdar://problem/31734958>

Reviewed by Brent Fulgham.

Source/WebCore:

Covered by existing tests.

  • crypto/mac/CryptoAlgorithmECDSAMac.cpp:

(WebCore::signECDSA):

Enhance ways to convert the DER signatures produced from CommonCrypto to r
s.

LayoutTests:

Remove test expectations.

10:09 PM Changeset in webkit [215720] by Yusuke Suzuki
  • 10 edits
    3 adds in trunk

[JSC] Use JSFixedArray directly when using call_varargs
https://bugs.webkit.org/show_bug.cgi?id=171057

Reviewed by Saam Barati.

JSTests:

  • stress/spread-capture-rest.js: Added.

(shouldBe):
(capture):
(a):
(b):

  • stress/spread-multi-layers.js: Added.

(shouldBe):
(a):
(b):
(c):
(d):

  • stress/spread-non-varargs.js: Added.

(shouldBe):
(a):
(b):

Source/JavaScriptCore:

Previously we always emit new_array_with_spread when calling call(...args).
But this array is unnecessary if varargs operation can handle Spread directly.

This patch implements a peep-hole optimization in the bytecode compiler layer
to omit new_array_with_spread. This is very simple and effective because this
peep-hole optimization is quite common when using (...args) style calls and
this optimization works all the tiers. While we can implement the phase to
omit this NewArrayWithSpread in argument elimination phase, it only works
for FTL. While such an optimization can work with complex data flow, this
peep-hole optimization can optimize a common case easily.

For now, Spread and PhantomSpread can be directly drained by CallVarargs
and LoadVarargs related operations. We modify DFG and FTL to handle this correctly.

This shows six-speed improvement.

spread.es6 89.4300+-2.0236 69.6015+-1.7278 definitely 1.2849x faster
spread-generator.es6 344.7879+-5.9147 331.2712+-6.8610 definitely 1.0408x faster

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargsWithSpread):

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):
(JSC::loadVarargs):

  • parser/Nodes.h:

(JSC::ArrayNode::elements):

  • runtime/JSFixedArray.cpp:

(JSC::JSFixedArray::copyToArguments):

  • runtime/JSFixedArray.h:
9:58 PM Changeset in webkit [215719] by Manuel Rego Casasnovas
  • 4 edits in trunk

[selectors4] :focus-within should use the flat tree
https://bugs.webkit.org/show_bug.cgi?id=170899

Reviewed by Antti Koivisto.

Source/WebCore:

This has been discussed in the following CSS WG issue:
https://github.com/w3c/csswg-drafts/issues/1135

And the spec has been updated (https://drafts.csswg.org/selectors-4/#the-focus-within-pseudo):
"An element also matches :focus-within if one of its descendants in the flat tree

(including non-element nodes, such as text nodes) matches the conditions for matching :focus."

Test: imported/w3c/web-platform-tests/css/selectors4/focus-within-shadow-006.html

  • dom/Element.cpp:

(WebCore::Element::setFocus): Use "flat tree" ("composed tree" in WebKit)
to set focus-within flag.

LayoutTests:

8:48 PM Changeset in webkit [215718] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] Fix extraction of translator comments
https://bugs.webkit.org/show_bug.cgi?id=170012

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2017-04-24
Reviewed by Michael Catanzaro.

  • CMakeLists.txt: Remove “TRANSLATORS:” header, as it’s not used and might block extraction of translator comments.
8:23 PM Changeset in webkit [215717] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, fix Windows build after r215715
https://bugs.webkit.org/show_bug.cgi?id=171199

  • wtf/StackTrace.h:
8:21 PM Changeset in webkit [215716] by jcraig@apple.com
  • 1 edit
    3 adds in trunk/Websites/webkit.org

2017-04-24 James Craig <jcraig@apple.com>

Upload demo files for prefers-reduced-motion post
https://bugs.webkit.org/show_bug.cgi?id=170663

Rubber stamped by Jon Davis.

  • blog-files/prefers-reduced-motion: Added.
  • blog-files/prefers-reduced-motion/axi.png: Added.
  • blog-files/prefers-reduced-motion/prm.htm: Added.
7:53 PM Changeset in webkit [215715] by Yusuke Suzuki
  • 12 edits
    1 copy
    2 moves in trunk/Source

[WTF] Move JSC tools/StackTrace to WTF and unify stack trace dump code
https://bugs.webkit.org/show_bug.cgi?id=171199

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch adds a utility method to produce demangled names with dladdr.
It fixes several memory leaks because the result of abi::cxa_demangle()
needs to be free-ed.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::StackFrame::displayName):

  • tools/CellProfile.h:
  • tools/CodeProfile.cpp:

(JSC::CodeProfile::report):
(JSC::symbolName): Deleted.

Source/WTF:

JSC tools/StackTrace's dump code is almost identical to WTF Assertions'
stack trace dump code. This patch moves tools/StackTrace to WTF and use
it in Assertions. It unifies the two duplicate implementations into one.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.cpp:
  • wtf/CMakeLists.txt:
  • wtf/Platform.h:
  • wtf/StackTrace.cpp: Renamed from Source/JavaScriptCore/tools/StackTrace.cpp.

(WTF::StackTrace::captureStackTrace):
(WTF::StackTrace::dump):

  • wtf/StackTrace.h: Copied from Source/JavaScriptCore/tools/StackTrace.h.

(WTF::StackTrace::StackTrace):
(WTF::StackTrace::stack):
(WTF::StackTrace::DemangleEntry::mangledName):
(WTF::StackTrace::DemangleEntry::demangledName):
(WTF::StackTrace::DemangleEntry::DemangleEntry):

  • wtf/SystemFree.h: Renamed from Source/JavaScriptCore/tools/StackTrace.h.

(WTF::SystemFree::operator()):

7:35 PM Changeset in webkit [215714] by Wenson Hsieh
  • 21 edits
    1 delete in trunk

Respect fidelity order when reading web content from item providers
https://bugs.webkit.org/show_bug.cgi?id=171155
<rdar://problem/31356937>

Reviewed by Tim Horton.

Source/WebCore:

Currently, when reading web content from pasteboards, we assume the old UIPasteboard/NSPasteboard model wherein
the destination must determine which of the items is considered to have the highest fidelity for the purposes of
inserting into an editable area. This destination-side fidelity ranking is determined solely by the NSArray
returned from Pasteboard::supportedPasteboardTypes, which lists compatible types in order from highest fidelity
to lowest fidelity. Pasteboard::read effectively iterates over this list of types in order, attempting to read
highest fidelity types and bailing when it first successfully reads data.

However, when our pasteboard is backed by UIItemProviders, we should instead read pasteboard types in order of
fidelity as specified by the source rather than the destination. To accomplish this, we introduce an alternate
codepath, Pasteboard::readRespectingUTIFidelities, which we take if Pasteboard::respectsUTIFidelities is true
(currently, this only applies for the purposes of data interaction). This version follows a different flow:
for each item in the pasteboard, we ask for just the UTIs for that item, in order of fidelity. For each item,
we then call readPasteboardWebContentDataForType to try and read data for that type, continuing until either
all UTIs have been attempted, or reading was successful.

This patch makes two additional adjustments. First, we introduce Pasteboard::getTypesByFidelityForItemAtIndex,
which is used by Pasteboard::readRespectingUTIFidelities when querying the list of supported UTIs for each
pasteboard item, sorted by highest to lowest fidelity.

Secondly, we refactor logic to write to the item provider pasteboard in PlatformPasteboardIOS. Since we are
now respecting fidelity rankings on the destination, the source must also register UTI types in the right
fidelity order. While this was mostly achieved using our existing method of writing a list of object
representations to the pasteboard and then all of the contents of a NSString => NSData dictionary containing
private UTI data, this approach has two flaws:

  1. We are unable to register high-priority custom types, followed by representing objects, followed by more

lower-priority custom types, since we assume that all custom types follow all representing objects.

  1. Since we're just iterating over a dictionary of NSString => NSData when registering custom UTI

representations to the item provider, there cannot inherently be any fidelity ordering for custom types.

To address both of these issues, we introduce two new objects that encapsulate how we register data to the item
provider pasteboard. WebItemProviderRegistrationInfo represents some data that can be registered to an item
provider (either an object conforming to UIItemProviderWriting, or an NSString and NSData).
WebItemProviderRegistrationInfoList represents a list of WebItemProviderRegistrationInfos in order of highest to
lowest fidelity. In PlatformPasteboardIOS, we transform PasteboardWebContent, PasteboardImage, and PasteboardURL
into a WebItemProviderRegistrationInfoList, which we then pass along to the WebItemProviderPasteboard. In
WebItemProviderPasteboard, we traverse the list of WebItemProviderRegistrationInfos in the list and register
each WebItemProviderRegistrationInfo's representing object or data to the item provider.

Test: DataInteractionTests.RespectsExternalSourceFidelityRankings.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/Pasteboard.h:
  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/ios/AbstractPasteboard.h:
  • platform/ios/AbstractPasteboard.mm: Removed.

Moves WebItemProviderData, formerly implemented in AbstractPasteboard.mm, into WebItemProviderPasteboard.mm.
We can delete AbstractPasteboard.mm as a result.

  • platform/ios/PasteboardIOS.mm:

(WebCore::readPasteboardWebContentDataForType):

Pull out common logic for reading data given a UTI type from the pasteboard into the PasteboardWebContentReader.
This is invoked from both the existing Pasteboard::read codepath, as well as the readRespectingUTIFidelities
codepath.

(WebCore::Pasteboard::read):

Refactored to call the new readPasteboardWebContentDataForType helper. Behavior should not have changed, unless
the pasteboard supports UTI fidelities.

(WebCore::Pasteboard::respectsUTIFidelities):
(WebCore::Pasteboard::readRespectingUTIFidelities):

An alternative to Pasteboard::read that considers source-side fidelity rankings of UTIs.

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::getTypesByFidelityForItemAtIndex):
(WebCore::PlatformPasteboard::writeObjectRepresentations):

Refactored to build a WebItemProviderRegistrationInfoList and pass it to the WebItemProviderPasteboard to
register items and data.

(WebCore::PlatformPasteboard::write):

  • platform/ios/WebItemProviderPasteboard.h:
  • platform/ios/WebItemProviderPasteboard.mm:

(-[WebItemProviderRegistrationInfo initWithRepresentingObject:typeIdentifier:data:]):
(-[WebItemProviderRegistrationInfo representingObject]):
(-[WebItemProviderRegistrationInfo typeIdentifier]):
(-[WebItemProviderRegistrationInfo data]):

Represents a single calls to register data onto the item provider pasteboard. See
WebItemProviderPasteboard.h header comments for more info.

(-[WebItemProviderRegistrationInfoList init]):
(-[WebItemProviderRegistrationInfoList addData:forType:]):
(-[WebItemProviderRegistrationInfoList addRepresentingObject:]):
(-[WebItemProviderRegistrationInfoList numberOfItems]):
(-[WebItemProviderRegistrationInfoList itemAtIndex:]):
(-[WebItemProviderRegistrationInfoList enumerateItems:]):

Represents a series of calls to register representations onto the item provider pasteboard. See
WebItemProviderPasteboard.h header comments for more info.

(-[WebItemProviderPasteboard pasteboardTypesByFidelityForItemAtIndex:]):
(-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]):
(-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]): Deleted.

Source/WebKit/mac:

Adjusts for changes in WebCore (see WebCore/ChangeLog for more details).

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::getTypesByFidelityForItemAtIndex):

Source/WebKit2:

Adjusts for changes in WebCore by adding plumbing to support Pasteboard::getTypesByFidelityForItemAtIndex. See
WebCore/ChangeLog for more details.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardTypesByFidelityForItemAtIndex):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::getTypesByFidelityForItemAtIndex):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Tools:

Adds a new unit test (DataInteractionTests.RespectsExternalSourceFidelityRankings). See WebCore ChangeLog for
more details.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

7:15 PM Changeset in webkit [215713] by Yusuke Suzuki
  • 6 edits in trunk/Source/WTF

[AppleWin] The procedure entry point ?waitForThreadCompletion@WTF@@YAHI@Z could not be located in the dynamic link library WebKitQuartzCoreAdditions.dll
https://bugs.webkit.org/show_bug.cgi?id=171029

Reviewed by Brent Fulgham.

While WTF Threading APIs are updated, WebKitQuartzCoreAdditions.dll in Windows uses some of the old APIs,
waitForThreadCompletion and createThread. This patch implements both on top of the new APIs.
These APIs are only exposed in Windows for this compatibility problem and new code should not use it.

  • wtf/ThreadHolder.cpp:

(WTF::ThreadHolder::initialize):

  • wtf/ThreadHolder.h:
  • wtf/ThreadHolderWin.cpp:

(WTF::ThreadHolder::get):
(WTF::ThreadHolder::platformInitialize):
(WTF::ThreadHolder::destruct):

  • wtf/Threading.h:
  • wtf/ThreadingWin.cpp:

(WTF::createThread):
(WTF::waitForThreadCompletion):

7:10 PM Changeset in webkit [215712] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] Update POTFILES.in

It’s missing some files with translatable strings.
https://bugs.webkit.org/show_bug.cgi?id=171232

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2017-04-24
Reviewed by Michael Catanzaro.

  • POTFILES.in: Update POTFILES.in.
6:44 PM Changeset in webkit [215711] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r204605): support for "cp874" charset alias was inadvertently dropped which may cause issues on certain Thai sites
https://bugs.webkit.org/show_bug.cgi?id=171128
<rdar://problem/31526844>

Reviewed by Alexey Proskuryakov.

When using Thai as default language on MacOS, defaultTextEncodingNameForSystemLanguage()
was returning "cp874" encoding with was dropped in r204605 for not being part of the
encoding specification (https://encoding.spec.whatwg.org/#names-and-labels).

To address the issue, we map "cp874" encoding to the "dos-874" encoding which is
properly recognized. Without this, this could lead to issue on WebSites that do not
specify a charset.

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::defaultTextEncodingNameForSystemLanguage):

6:23 PM Changeset in webkit [215710] by commit-queue@webkit.org
  • 28 edits
    1 add in trunk/Source/WebCore

[CG] Provide a type identifier hint to the CGImageSource so getting the type identifier is more accurate
https://bugs.webkit.org/show_bug.cgi?id=171042

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-04-24
Reviewed by Tim Horton.

The image URL can be used to get the type identifier hint. Without providing
this hint, the image type identifier is not accurate for image formats.

Also add a function to the ImageDecoder class to get the typeIdentifier. Add
all the pluming from the ImageDecoder till the Image class.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::destroyDecodedData):
(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::internalStartAnimation):
(WebCore::BitmapImage::advanceAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation):
(WebCore::BitmapImage::newFrameNativeImageAvailableAtIndex):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::sourceURL):

  • platform/graphics/Image.h: Change the sourceURL() to return a URL so CG can create CFURLRef from it.

(WebCore::Image::uti):

  • platform/graphics/ImageFrameCache.cpp:

(WebCore::ImageFrameCache::cacheAsyncFrameNativeImageAtIndex):
(WebCore::ImageFrameCache::startAsyncDecodingQueue):
(WebCore::ImageFrameCache::requestFrameAsyncDecodingAtIndex):
(WebCore::ImageFrameCache::stopAsyncDecodingQueue):
(WebCore::ImageFrameCache::clearMetadata):
(WebCore::ImageFrameCache::sourceURL):
(WebCore::ImageFrameCache::encodedDataStatus):
(WebCore::ImageFrameCache::uti):
(WebCore::ImageFrameCache::filenameExtension):

  • platform/graphics/ImageFrameCache.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ensureDecoderAvailable):

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::uti):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoder::ImageDecoder): Pass the type identifier hint to CGImageSourceCreateIncremental().
(WebCore::ImageDecoder::uti):
(WebCore::ImageDecoder::filenameExtension):
(WebCore::ImageDecoder::frameHasAlphaAtIndex):
(WebCore::ImageDecoder::createFrameImageAtIndex):

  • platform/graphics/cg/ImageDecoderCG.h:

(WebCore::ImageDecoder::create):

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::encodedDataStatus):

  • platform/graphics/win/ImageDecoderDirect2D.h:

(WebCore::ImageDecoder::create): Add an argument of type URL.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create): Add an argument of type URL.

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::encodedDataStatus): Make it const.

  • platform/image-decoders/bmp/BMPImageDecoder.cpp:

(WebCore::BMPImageDecoder::encodedDataStatus):

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::encodedDataStatus):

  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::encodedDataStatus):

  • platform/image-decoders/ico/ICOImageDecoder.h:
  • platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

(WebCore::JPEGImageDecoder::encodedDataStatus):

  • platform/image-decoders/jpeg/JPEGImageDecoder.h:
  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageDecoder::encodedDataStatus):

  • platform/image-decoders/png/PNGImageDecoder.h:
  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::encodedDataStatus):

  • platform/image-decoders/webp/WEBPImageDecoder.h:
  • platform/spi/cg/ImageIOSPI.h: Added.
5:43 PM Changeset in webkit [215709] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix.

  • crypto/mac/CryptoAlgorithmAES_GCMMac.cpp:

(WebCore::encryptAES_GCM):
(WebCore::decyptAES_GCM):

5:30 PM Changeset in webkit [215708] by clopez@igalia.com
  • 2 edits in trunk/Tools

SyntaxError fix after r215702.
https://bugs.webkit.org/show_bug.cgi?id=168944

Unreviewed "build" fix.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):

5:18 PM Changeset in webkit [215707] by beidson@apple.com
  • 8 edits in trunk/Source/WebKit2

WebProcessPools should always have a WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=171252

Reviewed by Alex Christensen.

  • UIProcess/API/APIWebsiteDataStore.cpp:

(API::WebsiteDataStore::registerSharedResourceLoadObserver): Deleted.

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextGetWebsiteDataStore):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createWebPage):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::isAssociatedProcessPool):

5:14 PM Changeset in webkit [215706] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebCore

Whitelist supported image MIME types
https://bugs.webkit.org/show_bug.cgi?id=171077

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-04-24
Reviewed by Tim Horton.

Restrict the CG port image formats to a known whitelist. Build this list from image
UTI's instead of MIME types, since the image UTI's is a superset of the MIME types.
Use this list to build the list of supported image MIME types.

  • PlatformAppleWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/MIMETypeRegistry.cpp:

(WebCore::initializeSupportedImageMIMETypes):

  • platform/graphics/cg/UTIRegistry.cpp: Added.

(WebCore::allowedImageUTIs):
(WebCore::isAllowedImageUTI):

  • platform/graphics/cg/UTIRegistry.h: Added.
5:05 PM Changeset in webkit [215705] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Crash at WebCore::AXObjectCache::characterOffsetForIndex(int, WebCore::AccessibilityObject const*) + 703
https://bugs.webkit.org/show_bug.cgi?id=171247

Reviewed by Chris Fleizach.

Source/WebCore:

Crashed because we were passing a nil node into rootAXEditableElement(). Fixed it by
adding a null check.

Test: accessibility/mac/input-string-for-range-crash.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForIndex):

LayoutTests:

  • accessibility/mac/input-string-for-range-crash-expected.txt: Added.
  • accessibility/mac/input-string-for-range-crash.html: Added.
5:04 PM Changeset in webkit [215704] by sbarati@apple.com
  • 5 edits
    4 adds in trunk/PerformanceTests

Add ML to ARES6
https://bugs.webkit.org/show_bug.cgi?id=171206

Rubber stamped by Filip Pizlo.

This patch adds a new test to ARES6 called ML. ML is an implementation of
a feedforward neural network: https://github.com/mljs/feedforward-neural-networks.
It makes heavy use of classes, and does non-trivial matrix math using the
ml-matrix library: https://github.com/mljs/matrix

  • ARES-6/about.html:
  • ARES-6/cli.js:
  • ARES-6/glue.js:
  • ARES-6/index.html:
  • ARES-6/ml: Added.
  • ARES-6/ml/benchmark.js: Added.
  • ARES-6/ml/index.js: Added.
  • ARES-6/ml_benchmark.js: Added.
5:02 PM Changeset in webkit [215703] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk

Set defaults video getUserMedia constraints
https://bugs.webkit.org/show_bug.cgi?id=171127

Patch by Youenn Fablet <youenn@apple.com> on 2017-04-24
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/getUserMedia-default.html

Adding default optional constraints for video size and frame rate if none is defined.
Default is 640x480 30fps.

Doing some refactoring in MeddiaConstraintsImpl and MeddiaConstraintsData to use more move constructors.

  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::defaultVideoConstraints):
(WebCore::MediaConstraintsData::setDefaultVideoConstraints):
(WebCore::MediaConstraintsImpl::create): Deleted.

  • Modules/mediastream/MediaConstraintsImpl.h:
  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getUserMedia):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Fixing crash when setting frameRate.

Source/WebKit2:

Updated to cope with MediaStreamConstraintsImpl refactoring.

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):

LayoutTests:

  • fast/mediastream/getUserMedia-default-expected.txt: Added.
  • fast/mediastream/getUserMedia-default.html: Added.
4:44 PM Changeset in webkit [215702] by Jonathan Bedard
  • 2 edits in trunk/Tools

Package ImageDiff built with host SDK
https://bugs.webkit.org/show_bug.cgi?id=168944
<rdar://problem/30745642>

Reviewed by David Kilzer.

iOS Simulator and iOS device should archive the ImageDiff built for the host
machine.

  • BuildSlaveSupport/built-product-archive:

(determineWebKitBuildDirectories): Add _hostBuildDirectory for iOS.
(archiveBuiltProduct): Archive Mac products for iOS so that ImageDiff is included.

4:43 PM Changeset in webkit [215701] by Chris Dumez
  • 296 edits in trunk

createElementNS() should now throw only InvalidCharacterError, not NamespaceError
https://bugs.webkit.org/show_bug.cgi?id=171052

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Re-sync web-platform-tests/dom from upstream to gain test coverage.

  • web-platform-tests/dom/collections/HTMLCollection-as-proto-length-get-throws.html:
  • web-platform-tests/dom/collections/HTMLCollection-empty-name.html:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-indices.html:
  • web-platform-tests/dom/collections/HTMLCollection-supported-property-names.html:
  • web-platform-tests/dom/collections/domstringmap-supported-property-names.html:
  • web-platform-tests/dom/collections/namednodemap-supported-property-names.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-once.html:
  • web-platform-tests/dom/events/AddEventListenerOptions-passive.html:
  • web-platform-tests/dom/events/CustomEvent.html:
  • web-platform-tests/dom/events/Event-cancelBubble.html:
  • web-platform-tests/dom/events/Event-constants.html:
  • web-platform-tests/dom/events/Event-constructors.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch.html:
  • web-platform-tests/dom/events/Event-defaultPrevented.html:
  • web-platform-tests/dom/events/Event-dispatch-bubble-canceled.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-false.html:
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true.html:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html:
  • web-platform-tests/dom/events/Event-dispatch-handlers-changed.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-cancelBubble.html:
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html:
  • web-platform-tests/dom/events/Event-dispatch-omitted-capture.html:
  • web-platform-tests/dom/events/Event-dispatch-order.html:
  • web-platform-tests/dom/events/Event-dispatch-other-document.html:
  • web-platform-tests/dom/events/Event-dispatch-propagation-stopped.html:
  • web-platform-tests/dom/events/Event-dispatch-redispatch.html:
  • web-platform-tests/dom/events/Event-dispatch-reenter.html:
  • web-platform-tests/dom/events/Event-dispatch-target-moved.html:
  • web-platform-tests/dom/events/Event-dispatch-target-removed.html:
  • web-platform-tests/dom/events/Event-dispatch-throwing.html:
  • web-platform-tests/dom/events/Event-init-while-dispatching.html:
  • web-platform-tests/dom/events/Event-initEvent.html:
  • web-platform-tests/dom/events/Event-propagation.html:
  • web-platform-tests/dom/events/Event-subclasses-constructors.html:
  • web-platform-tests/dom/events/Event-type-empty.html:
  • web-platform-tests/dom/events/Event-type.html:
  • web-platform-tests/dom/events/EventListener-handleEvent.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html:
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html:
  • web-platform-tests/dom/events/EventListener-invoke-legacy.html:
  • web-platform-tests/dom/events/EventListenerOptions-capture.html:
  • web-platform-tests/dom/events/EventTarget-addEventListener.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent.html:
  • web-platform-tests/dom/events/EventTarget-removeEventListener.html:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/interface-objects.html:
  • web-platform-tests/dom/interfaces.html:
  • web-platform-tests/dom/lists/DOMTokenList-Iterable.html:
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html:
  • web-platform-tests/dom/lists/DOMTokenList-iteration.html:
  • web-platform-tests/dom/lists/DOMTokenList-stringifier.html:
  • web-platform-tests/dom/lists/DOMTokenList-value.html:
  • web-platform-tests/dom/nodes/CharacterData-appendChild.html:
  • web-platform-tests/dom/nodes/CharacterData-appendData.html:
  • web-platform-tests/dom/nodes/CharacterData-data.html:
  • web-platform-tests/dom/nodes/CharacterData-deleteData.html:
  • web-platform-tests/dom/nodes/CharacterData-insertData.html:
  • web-platform-tests/dom/nodes/CharacterData-remove.html:
  • web-platform-tests/dom/nodes/CharacterData-replaceData.html:
  • web-platform-tests/dom/nodes/CharacterData-substringData.html:
  • web-platform-tests/dom/nodes/CharacterData-surrogates.html:
  • web-platform-tests/dom/nodes/ChildNode-after.html:
  • web-platform-tests/dom/nodes/ChildNode-before.html:
  • web-platform-tests/dom/nodes/ChildNode-replaceWith.html:
  • web-platform-tests/dom/nodes/Comment-constructor.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocumentType-expected.txt:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocumentType.html:
  • web-platform-tests/dom/nodes/DOMImplementation-createHTMLDocument.html:
  • web-platform-tests/dom/nodes/DOMImplementation-hasFeature.html:
  • web-platform-tests/dom/nodes/Document-URL.sub.html:
  • web-platform-tests/dom/nodes/Document-adoptNode.html:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
  • web-platform-tests/dom/nodes/Document-constructor.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createHTMLDocument.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/xhr_responseType_document.html:
  • web-platform-tests/dom/nodes/Document-createAttribute.html:
  • web-platform-tests/dom/nodes/Document-createComment.html:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/w3c-import.log:
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Document-createElement.html:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS.html:
  • web-platform-tests/dom/nodes/Document-createElementNS.js:
  • web-platform-tests/dom/nodes/Document-createEvent.html:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-createProcessingInstruction.html:
  • web-platform-tests/dom/nodes/Document-createTextNode.html:
  • web-platform-tests/dom/nodes/Document-createTreeWalker.html:
  • web-platform-tests/dom/nodes/Document-doctype.html:
  • web-platform-tests/dom/nodes/Document-getElementById.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Document-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Document-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Document-implementation.html:
  • web-platform-tests/dom/nodes/Document-importNode.html:
  • web-platform-tests/dom/nodes/DocumentType-literal-xhtml.xhtml:
  • web-platform-tests/dom/nodes/DocumentType-literal.html:
  • web-platform-tests/dom/nodes/DocumentType-remove.html:
  • web-platform-tests/dom/nodes/Element-childElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElement-null.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-add.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-dynamic-remove.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount-nochild.html:
  • web-platform-tests/dom/nodes/Element-childElementCount-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-childElementCount.html:
  • web-platform-tests/dom/nodes/Element-children.html:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/Element-closest.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-entity-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild-namespace.html:
  • web-platform-tests/dom/nodes/Element-firstElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-firstElementChild.html:
  • web-platform-tests/dom/nodes/Element-getElementsByClassName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-change-document-HTMLNess.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName.html:
  • web-platform-tests/dom/nodes/Element-getElementsByTagNameNS.html:
  • web-platform-tests/dom/nodes/Element-hasAttributes.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentElement.html:
  • web-platform-tests/dom/nodes/Element-insertAdjacentText.html:
  • web-platform-tests/dom/nodes/Element-lastElementChild-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-lastElementChild.html:
  • web-platform-tests/dom/nodes/Element-matches.html:
  • web-platform-tests/dom/nodes/Element-nextElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-nextElementSibling.html:
  • web-platform-tests/dom/nodes/Element-previousElementSibling-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-previousElementSibling.html:
  • web-platform-tests/dom/nodes/Element-remove.html:
  • web-platform-tests/dom/nodes/Element-removeAttributeNS.html:
  • web-platform-tests/dom/nodes/Element-siblingElement-null-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Element-siblingElement-null.html:
  • web-platform-tests/dom/nodes/Element-tagName.html:
  • web-platform-tests/dom/nodes/Element-webkitMatchesSelector.html:
  • web-platform-tests/dom/nodes/MutationObserver-attributes.html:
  • web-platform-tests/dom/nodes/MutationObserver-characterData.html:
  • web-platform-tests/dom/nodes/MutationObserver-childList.html:
  • web-platform-tests/dom/nodes/MutationObserver-disconnect.html:
  • web-platform-tests/dom/nodes/MutationObserver-document.html:
  • web-platform-tests/dom/nodes/MutationObserver-inner-outer.html:
  • web-platform-tests/dom/nodes/MutationObserver-takeRecords.html:
  • web-platform-tests/dom/nodes/Node-appendChild.html:
  • web-platform-tests/dom/nodes/Node-baseURI.html:
  • web-platform-tests/dom/nodes/Node-childNodes.html:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/dom/nodes/Node-compareDocumentPosition.html:
  • web-platform-tests/dom/nodes/Node-constants.html:
  • web-platform-tests/dom/nodes/Node-contains-xml.xml:
  • web-platform-tests/dom/nodes/Node-contains.html:
  • web-platform-tests/dom/nodes/Node-insertBefore.html:
  • web-platform-tests/dom/nodes/Node-isConnected.html:
  • web-platform-tests/dom/nodes/Node-isEqualNode-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-isEqualNode.html:
  • web-platform-tests/dom/nodes/Node-isSameNode.html:
  • web-platform-tests/dom/nodes/Node-lookupNamespaceURI.html:
  • web-platform-tests/dom/nodes/Node-lookupPrefix.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName-xhtml.xhtml:
  • web-platform-tests/dom/nodes/Node-nodeName.html:
  • web-platform-tests/dom/nodes/Node-nodeValue.html:
  • web-platform-tests/dom/nodes/Node-normalize.html:
  • web-platform-tests/dom/nodes/Node-parentElement.html:
  • web-platform-tests/dom/nodes/Node-parentNode.html:
  • web-platform-tests/dom/nodes/Node-properties.html:
  • web-platform-tests/dom/nodes/Node-removeChild.html:
  • web-platform-tests/dom/nodes/Node-replaceChild.html:
  • web-platform-tests/dom/nodes/Node-textContent.html:
  • web-platform-tests/dom/nodes/NodeList-Iterable.html:
  • web-platform-tests/dom/nodes/ParentNode-append.html:
  • web-platform-tests/dom/nodes/ParentNode-prepend.html:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht.xht:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All.html:
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-1.xhtml:
  • web-platform-tests/dom/nodes/ProcessingInstruction-literal-2.xhtml:
  • web-platform-tests/dom/nodes/Text-constructor.html:
  • web-platform-tests/dom/nodes/Text-splitText.html:
  • web-platform-tests/dom/nodes/append-on-Document.html:
  • web-platform-tests/dom/nodes/attributes-expected.txt:
  • web-platform-tests/dom/nodes/attributes.html:
  • web-platform-tests/dom/nodes/case.html:
  • web-platform-tests/dom/nodes/getElementsByClassName-01.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-02.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-03.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-04.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-05.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-06.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-07.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-08.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-09.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-10.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-11.xml:
  • web-platform-tests/dom/nodes/getElementsByClassName-12.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-13.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-14.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-15.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-16.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-17.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-18.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-19.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-20.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-21.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-22.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-23.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-24.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-25.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-26.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-27.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-28.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-29.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-30.htm:
  • web-platform-tests/dom/nodes/getElementsByClassName-31.htm:
  • web-platform-tests/dom/nodes/insert-adjacent.html:
  • web-platform-tests/dom/nodes/prepend-on-Document.html:
  • web-platform-tests/dom/nodes/remove-unscopable.html:
  • web-platform-tests/dom/nodes/rootNode.html:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/dom/ranges/Range-attributes.html:
  • web-platform-tests/dom/ranges/Range-cloneContents.html:
  • web-platform-tests/dom/ranges/Range-cloneRange.html:
  • web-platform-tests/dom/ranges/Range-collapse.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer-2.html:
  • web-platform-tests/dom/ranges/Range-commonAncestorContainer.html:
  • web-platform-tests/dom/ranges/Range-compareBoundaryPoints.html:
  • web-platform-tests/dom/ranges/Range-comparePoint-2.html:
  • web-platform-tests/dom/ranges/Range-comparePoint.html:
  • web-platform-tests/dom/ranges/Range-constructor.html:
  • web-platform-tests/dom/ranges/Range-deleteContents.html:
  • web-platform-tests/dom/ranges/Range-detach.html:
  • web-platform-tests/dom/ranges/Range-extractContents.html:
  • web-platform-tests/dom/ranges/Range-insertNode.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode-binding.html:
  • web-platform-tests/dom/ranges/Range-intersectsNode.html:
  • web-platform-tests/dom/ranges/Range-isPointInRange.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-appendData.html:
  • web-platform-tests/dom/ranges/Range-mutations-dataChange.html:
  • web-platform-tests/dom/ranges/Range-mutations-deleteData.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertBefore.html:
  • web-platform-tests/dom/ranges/Range-mutations-insertData.html:
  • web-platform-tests/dom/ranges/Range-mutations-removeChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceChild.html:
  • web-platform-tests/dom/ranges/Range-mutations-replaceData.html:
  • web-platform-tests/dom/ranges/Range-mutations-splitText.html:
  • web-platform-tests/dom/ranges/Range-selectNode.html:
  • web-platform-tests/dom/ranges/Range-set.html:
  • web-platform-tests/dom/ranges/Range-stringifier.html:
  • web-platform-tests/dom/ranges/Range-surroundContents.html:
  • web-platform-tests/dom/traversal/NodeFilter-constants.html:
  • web-platform-tests/dom/traversal/NodeIterator-removal.html:
  • web-platform-tests/dom/traversal/NodeIterator.html:
  • web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter.html:
  • web-platform-tests/dom/traversal/TreeWalker-basic.html:
  • web-platform-tests/dom/traversal/TreeWalker-currentNode.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousNodeLastChildReject.html:
  • web-platform-tests/dom/traversal/TreeWalker-previousSiblingLastChildSkip.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-reject.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip-most.html:
  • web-platform-tests/dom/traversal/TreeWalker-traversal-skip.html:
  • web-platform-tests/dom/traversal/TreeWalker-walking-outside-a-tree.html:
  • web-platform-tests/dom/traversal/TreeWalker.html:

Source/WebCore:

Validating a qualified name should only throw InvalidCharacterError, not NamespaceError,
after:

Latest spec:

No new tests, updated web-platform-tests.

  • dom/Document.cpp:

(WebCore::Document::parseQualifiedName):

LayoutTests:

Updated / rebaselined existing tests to reflect behavior change.

  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/createDocumentType-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocument-namespace-err.js:
  • fast/dom/DOMImplementation/script-tests/createDocumentType-err.js:
  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/script-tests/createAttributeNS-namespace-err.js:
  • fast/dom/Document/script-tests/createElementNS-namespace-err.js:
  • fast/dom/Element/script-tests/setAttributeNS-namespace-err.js:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
3:46 PM Changeset in webkit [215700] by Chris Dumez
  • 7 edits
    2 adds in trunk

REGRESSION (214503): Webkit crash under RenderElement::repaintForPausedImageAnimationsIfNeeded() when scrolling giphy pages
https://bugs.webkit.org/show_bug.cgi?id=171243
<rdar://problem/31715572>

Reviewed by Antti Koivisto.

Source/WebCore:

After r214503, we would frequently crash when scrolling giphy pages because we were failing to call
RenderView::removeRendererWithPausedImageAnimations(renderer, cachedImage) in some cases. This would
cause a RenderElement to still be associated to a CachedImage in RenderView but not in practice.
If the CachedImage then gets destroyed and the user scrolls, we end up calling
RenderElement::repaintForPausedImageAnimationsIfNeeded() with a bad CachedImage.

StyleCachedImage was properly calling RenderView::removeRendererWithPausedImageAnimations() before
unregistering the renderer as a client to the CachedImage. However, RenderImageResource was failing
to do the same. To make this less error-prone, I added a didRemoveCachedImageClient(CachedImage&)
function to the CachedImageClient interface. It is overriden in RenderElement only to call
RenderView::removeRendererWithPausedImageAnimations().

Test: fast/images/animated-gif-scrolling-crash.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didRemoveClient):

  • loader/cache/CachedImageClient.h:

(WebCore::CachedImageClient::didRemoveCachedImageClient):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::didRemoveCachedImageClient):

  • rendering/RenderElement.h:
  • rendering/style/StyleCachedImage.cpp:

(WebCore::StyleCachedImage::removeClient):

LayoutTests:

Add layout test coverage.

  • fast/images/animated-gif-scrolling-crash-expected.txt: Added.
  • fast/images/animated-gif-scrolling-crash.html: Added.
3:43 PM Changeset in webkit [215699] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Allow tabs with capturing audio or video to exceed background CPU limit
https://bugs.webkit.org/show_bug.cgi?id=171249
<rdar://problem/31796314>

Reviewed by Geoffrey Garen.

Allow tabs with capturing audio or video to exceed background CPU limit as this
is a legit case of potentially high background CPU use.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didExceedBackgroundCPULimit):

3:02 PM Changeset in webkit [215698] by Joseph Pecoraro
  • 5 edits in trunk/Source/JavaScriptCore

Web Inspector: ObjC RWIProtocol codegen should better handle optional members
https://bugs.webkit.org/show_bug.cgi?id=171251
<rdar://problem/31697002>

Reviewed by Brian Burg.

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator._generate_getter_for_member):

  • inspector/scripts/codegen/objc_generator.py:

(ObjCGenerator.protocol_to_objc_expression_for_member):
(ObjCGenerator.protocol_to_objc_code_block_for_object_member):
Always be safe and nil check object property accesses, optional or not.

  • inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:

Rebaselined inspector generator tests.

2:43 PM Changeset in webkit [215697] by keith_miller@apple.com
  • 2 edits in trunk/Tools

ThreadMessage API tests failing on release bots
https://bugs.webkit.org/show_bug.cgi?id=171246

Reviewed by Saam Barati.

Need to make sure that C++ doesn't optimize away our spin loop.

  • TestWebKitAPI/Tests/WTF/ThreadMessages.cpp:

(runThreadMessageTest):
(TEST):

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

[macOS] Fix two minor issues with MediaSelectionOption::Type
https://bugs.webkit.org/show_bug.cgi?id=171235

Reviewed by Sam Weinig.

  • platform/MediaSelectionOption.h: Gave type a default value, and added explicit

constructors to make gcc and msvc happy.

  • platform/mac/WebPlaybackControlsManager.mm:

(toAVTouchBarMediaSelectionOptionType): Added an ASSERT_NOT_REACHED if none of the switch
cases match.

2:17 PM Changeset in webkit [215695] by sbarati@apple.com
  • 4 edits in trunk/LayoutTests

[mac debug] LayoutTest workers/wasm-long-compile-many.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=171120
<rdar://problem/31781889>

Rubber stamped by Mark Lam.

Make the wasm binary we compile close to 50% smaller.

  • workers/wasm-resources/long-compile-many.js:

(i.async.run):
(i.worker.onmessage):

  • workers/wasm-resources/long-compile-worker.js:
  • workers/wasm-resources/long-compile.js:

(async.run):
(worker.onmessage):

2:11 PM Changeset in webkit [215694] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: m_table seen with workers/wasm-hashset LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=171119
<rdar://problem/31760635>

Reviewed by Keith Miller.

The HashSet of timer set notification callbacks can be accessed
and augmented simultaneously from different threads. e.g, the worker
thread can augment it while the wasm compilation thread will
access it. Therefore, accesses must be guarded by a lock.

  • runtime/JSRunLoopTimer.cpp:

(JSC::JSRunLoopTimer::scheduleTimer):
(JSC::JSRunLoopTimer::addTimerSetNotification):
(JSC::JSRunLoopTimer::removeTimerSetNotification):

  • runtime/JSRunLoopTimer.h:
1:58 PM Changeset in webkit [215693] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the 32-bit macOS build.

  • UIProcess/Cocoa/WebViewImpl.mm:
1:48 PM Changeset in webkit [215692] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/scrubber-support/scrubber-support-click.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=171245

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:46 PM Changeset in webkit [215691] by aestes@apple.com
  • 4 edits in trunk/Source

[macOS] Enable media selection button on AVTouchBarScrubber
https://bugs.webkit.org/show_bug.cgi?id=171149
<rdar://problem/29875010>

Reviewed by Beth Dakin.

Source/WebCore:

  • platform/spi/cocoa/AVKitSPI.h:

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::updateMediaTouchBar):

12:48 PM Changeset in webkit [215690] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: DOM/XHR breakpoint sections should be collapsed by default
https://bugs.webkit.org/show_bug.cgi?id=170931

Reviewed by Brian Burg.

Set the default collapsed parameter for DOM / XHR Breakpoints sections,
and auto-expand the DOM Breakpoints when a breakpoint is added.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):

12:25 PM Changeset in webkit [215689] by commit-queue@webkit.org
  • 10 edits in trunk

test262: test262/test/language/computed-property-names/class/static/getter-prototype.js
https://bugs.webkit.org/show_bug.cgi?id=170897

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-24
Reviewed by Saam Barati.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createArguments):
(JSC::ASTBuilder::createArgumentsList):
Reorder so all the createProperty methods are grouped together.

  • parser/Parser.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
Refine the conditions for syntax errors for getter/setter
properties names. "prototype" is not allowed as a static
and "constructor" is not all when non-static.

  • runtime/JSObject.cpp:

(JSC::JSObject::putGetter):
(JSC::JSObject::putSetter):
Throw exceptions. These methods are only used by this path
via op_put_getter_by_val / op_put_setter_by_val.

LayoutTests:

  • js/class-syntax-declaration-expected.txt:
  • js/script-tests/class-syntax-declaration.js:

Extend tests for static and non-static methods named "constructor" and "prototype".

11:08 AM Changeset in webkit [215688] by commit-queue@webkit.org
  • 6 edits in trunk

Address some FIXMEs in JavaScript tests for bugs that have been fixed
https://bugs.webkit.org/show_bug.cgi?id=171191

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-24
Reviewed by JF Bastien.

JSTests:

  • stress/proxy-is-extensible.js:

LayoutTests:

  • js/dom/custom-constructors-expected.txt:
  • js/dom/script-tests/custom-constructors.js:
  • js/script-tests/keyword-method-names.js:
10:59 AM Changeset in webkit [215687] by commit-queue@webkit.org
  • 6 edits in trunk

test262: test262/test/language/statements/for-of/dstr-array-elem-init-fn-name-arrow.js
https://bugs.webkit.org/show_bug.cgi?id=171160

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-24
Reviewed by JF Bastien.

JSTests:

  • stress/inferred-names.js:
  • test262.yaml:

Source/JavaScriptCore:

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::tryInferNameInPattern):
(JSC::ASTBuilder::tryInferNameInPatternWithIdentifier):
We supported getting the name from a BindingNode.
We extend this to support getting the name from a
ResolveNode inside of an AssignmentElementNode.

  • parser/Nodes.h:

(JSC::DestructuringPatternNode::isAssignmentElementNode):
(JSC::AssignmentElementNode::isAssignmentElementNode):
Make it possible to identify an assignment element node.

10:31 AM Changeset in webkit [215686] by achristensen@apple.com
  • 58 edits in trunk

Reduce copies and allocations in SharedBuffer::append
https://bugs.webkit.org/show_bug.cgi?id=170956

Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • runtime/ArrayBuffer.h:

Source/WebCore:

SharedBuffer was a mess of different data structures added over the years.
SharedBuffer::append would allocate large Vector<char>s and call memcpy, and that
is inefficient and causes crashes when large allocations fail, and the allocations
and copies aren't even necessary. There were also const correctness problems in
ResourceLoader::addDataOrBuffer, and iterating a SharedBuffer was strange because
sometimes we don't want to add unnecessary copies.

These problems are solved by making SharedBuffer a Vector of read-only data segments,
which can be contained in various ways but we don't care because all we want to do is
read them. Appending SharedBuffers is now const correct because we just add to a
Vector<Ref<DataSegment>> and neither SharedBuffer can write to the data. Sometimes,
though, we want all the data to be in continuous memory, and if there are multiple
segments then the data needs to be copied once to a new segment. We should audit the
call sites of SharedBuffer::data and see if this is really necessary.

No change in functional behavior. Fewer copies of the data are made when buffering
data in the NetworkProcess. No extra memory is allocated for bytes we think we might
need to append in the future. Data is now only copied into one buffer lazily as needed,
which could slightly change when small delays from memcpy happen, but it's an overall
improvement. We could have a performance hit if we were to call append() then data()
then append() then data() etc. but that doesn't happen in WebKit because we call append
repeatedly when buffering the data then call data() once when reading the data.

  • editing/cocoa/EditorCocoa.mm:

(WebCore::archivedDataForAttributedString):
(WebCore::Editor::selectionInWebArchiveFormat):
(WebCore::Editor::dataInRTFDFormat):
(WebCore::Editor::dataInRTFFormat):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::WebContentReader::readURL):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::imageInWebArchiveFormat):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::processNewCueData):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::createResource):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::tryReplaceEncodedData):

  • loader/cocoa/DiskCacheMonitorCocoa.mm:

(WebCore::DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::combineToOneSegment):
(WebCore::SharedBuffer::data):
(WebCore::SharedBuffer::createArrayBuffer):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::DataSegment::data):
(WebCore::SharedBuffer::DataSegment::size):
(WebCore::segmentIndex): Deleted.
(WebCore::offsetInSegment): Deleted.
(WebCore::allocateSegment): Deleted.
(WebCore::freeSegment): Deleted.
(WebCore::SharedBuffer::~SharedBuffer): Deleted.
(WebCore::SharedBuffer::size): Deleted.
(WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Deleted.
(WebCore::SharedBuffer::appendToDataBuffer): Deleted.
(WebCore::SharedBuffer::clearDataBuffer): Deleted.
(WebCore::SharedBuffer::copyBufferAndClear): Deleted.
(WebCore::SharedBuffer::buffer): Deleted.
(WebCore::SharedBuffer::getSomeData): Deleted.
(WebCore::SharedBuffer::maybeTransferMappedFileData): Deleted.
(WebCore::SharedBuffer::clearPlatformData): Deleted.
(WebCore::SharedBuffer::maybeTransferPlatformData): Deleted.
(WebCore::SharedBuffer::hasPlatformData): Deleted.
(WebCore::SharedBuffer::platformData): Deleted.
(WebCore::SharedBuffer::maybeAppendPlatformData): Deleted.

  • platform/SharedBuffer.h:

(WebCore::SharedBuffer::create): Deleted.
(WebCore::SharedBuffer::isEmpty): Deleted.

  • platform/SharedBufferChunkReader.cpp:

(WebCore::SharedBufferChunkReader::nextChunk):
(WebCore::SharedBufferChunkReader::peek):

  • platform/SharedBufferChunkReader.h:
  • platform/URLParser.cpp:

(WebCore::URLParser::URLParser):

  • platform/cf/KeyedEncoderCF.cpp:

(WebCore::KeyedEncoderCF::finishEncoding):

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::hintMemoryNotNeededSoon):
(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::wrapCFData): Deleted.
(WebCore::SharedBuffer::hasPlatformData): Deleted.
(WebCore::SharedBuffer::platformData): Deleted.
(WebCore::SharedBuffer::platformDataSize): Deleted.
(WebCore::SharedBuffer::maybeTransferPlatformData): Deleted.
(WebCore::SharedBuffer::clearPlatformData): Deleted.
(WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted.
(WebCore::SharedBuffer::maybeAppendPlatformData): Deleted.
(WebCore::SharedBuffer::copyBufferAndClear): Deleted.
(WebCore::SharedBuffer::copySomeDataFromDataArray): Deleted.
(WebCore::SharedBuffer::singleDataArrayBuffer): Deleted.
(WebCore::SharedBuffer::maybeAppendDataArray): Deleted.

  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::replacementData):

  • platform/cocoa/ParentalControlsContentFilter.mm:

(WebCore::ParentalControlsContentFilter::replacementData):

  • platform/cocoa/SharedBufferCocoa.mm:

(-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]):
(-[WebCoreSharedBufferData length]):
(-[WebCoreSharedBufferData bytes]):
(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::createFromReadingFile):
(WebCore::SharedBuffer::createNSDataArray):
(-[WebCoreSharedBufferData initWithSharedBufferDataBuffer:]): Deleted.
(WebCore::SharedBuffer::wrapNSData): Deleted.
(WebCore::SharedBuffer::existingCFData): Deleted.

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

(WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::openTypeTable):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(ResourceHandleStreamingClient::didReceiveBuffer):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::Image::loadPlatformResource):

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::create):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageReader::decode):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::readBuffer):

  • platform/mac/PasteboardMac.mm:

(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::write):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::bufferForType):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::notifyReceiveData):

  • platform/network/MIMEHeader.cpp:
  • platform/network/MIMEHeader.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveData):

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]):

  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createSoupBuffer):
(WebCore::SharedBuffer::clearPlatformData): Deleted.
(WebCore::SharedBuffer::maybeTransferPlatformData): Deleted.
(WebCore::SharedBuffer::hasPlatformData): Deleted.
(WebCore::SharedBuffer::platformData): Deleted.
(WebCore::SharedBuffer::platformDataSize): Deleted.
(WebCore::SharedBuffer::maybeAppendPlatformData): Deleted.
(WebCore::SharedBuffer::tryReplaceContentsWithPlatformBuffer): Deleted.

Source/WebKit/mac:

  • WebView/WebArchive.mm:

(-[WebArchive initWithData:]):

  • WebView/WebFrame.mm:

(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

  • WebView/WebResource.mm:

(-[WebResource initWithCoder:]):
(-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):

Source/WebKit2:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveData:]):

  • Platform/IPC/DataReference.cpp:

(IPC::SharedBufferDataReference::encode):

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::wrapInSharedBuffer):

  • UIProcess/API/Cocoa/WKURLSchemeHandlerTask.mm:

(-[WKURLSchemeHandlerTaskImpl didReceiveData:]):

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

(-[WKWebProcessPlugInBrowserContextController _setEditingDelegate:]):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::addArchiveResource):
(WebKit::PDFPlugin::liveResourceData):
(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::redeliverManualStream):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::cachedResponseDataForURL):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/SharedBuffer.mm:

(TestWebKitAPI::TEST_F):

10:26 AM Changeset in webkit [215685] by mitz@apple.com
  • 16 edits in trunk/Source

[Cocoa] Some ivars are needlessly @protected
https://bugs.webkit.org/show_bug.cgi?id=171208

Source/WebCore:

Reviewed by Anders Carlsson.

Made ivars @private where possible.

  • platform/mac/WebCoreFullScreenPlaceholderView.h:
  • platform/mac/WebCoreFullScreenWarningView.h:
  • platform/mac/WebPlaybackControlsManager.h:
  • platform/network/cocoa/WebCoreNSURLSession.h:

Source/WebKit/mac:

Reviewed by Anders Carlsson

Made ivars @private where possible.

  • Misc/WebUserContentURLPattern.h:
  • Plugins/WebPluginDatabase.h:
  • Storage/WebDatabaseQuotaManager.h:
  • WebCoreSupport/WebSecurityOriginPrivate.h:
  • WebInspector/WebInspector.h:
  • WebView/WebDeviceOrientation.h:
  • WebView/WebDeviceOrientationProviderMock.h:
  • WebView/WebGeolocationPosition.h:
  • WebView/WebHTMLRepresentation.h:
  • WebView/WebNotification.h:
10:21 AM Changeset in webkit [215684] by zandobersek@gmail.com
  • 2 edits in trunk

Unreviewed follow-up to r215681.

  • Source/cmake/OptionsGTK.cmake: Don't re-define the ENABLE_SUBTLE_CRYPTO

macro, that's already done by the option macro.

9:17 AM Changeset in webkit [215683] by Carlos Garcia Campos
  • 27 edits
    11 adds
    2 deletes in trunk

[GTK] Switch to use ENABLE_REMOTE_INSPECTOR instead of ENABLE_INSPECTOR_SERVER for the remote inspector
https://bugs.webkit.org/show_bug.cgi?id=166680

Reviewed by Michael Catanzaro.

.:

Add private option for ENABLE_REMOTE_INSPECTOR and enabled it by default.

  • Source/cmake/OptionsGTK.cmake:

Source/JavaScriptCore:

Add GTK+ port implementation of RemoteInspector.

  • PlatformGTK.cmake:
  • inspector/remote/RemoteConnectionToTarget.h:
  • inspector/remote/RemoteInspector.h:
  • inspector/remote/glib/RemoteConnectionToTargetGlib.cpp: Added.

(Inspector::RemoteConnectionToTarget::RemoteConnectionToTarget):
(Inspector::RemoteConnectionToTarget::~RemoteConnectionToTarget):
(Inspector::RemoteConnectionToTarget::setup):
(Inspector::RemoteConnectionToTarget::sendMessageToTarget):
(Inspector::RemoteConnectionToTarget::close):
(Inspector::RemoteConnectionToTarget::targetClosed):
(Inspector::RemoteConnectionToTarget::targetIdentifier):
(Inspector::RemoteConnectionToTarget::sendMessageToFrontend):

  • inspector/remote/glib/RemoteInspectorGlib.cpp: Added.

(Inspector::RemoteInspector::singleton):
(Inspector::RemoteInspector::RemoteInspector):
(Inspector::RemoteInspector::start):
(Inspector::RemoteInspector::stopInternal):
(Inspector::RemoteInspector::setupConnection):
(Inspector::dbusConnectionCallAsyncReadyCallback):
(Inspector::RemoteInspector::listingForInspectionTarget):
(Inspector::RemoteInspector::listingForAutomationTarget):
(Inspector::RemoteInspector::pushListingsNow):
(Inspector::RemoteInspector::pushListingsSoon):
(Inspector::RemoteInspector::updateAutomaticInspectionCandidate):
(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage):
(Inspector::RemoteInspector::sendMessageToRemote):
(Inspector::RemoteInspector::receivedGetTargetListMessage):
(Inspector::RemoteInspector::receivedSetupMessage):
(Inspector::RemoteInspector::receivedDataMessage):
(Inspector::RemoteInspector::receivedCloseMessage):
(Inspector::RemoteInspector::setup):
(Inspector::RemoteInspector::sendMessageToTarget):
(Inspector::RemoteInspector::requestAutomationSession):

  • inspector/remote/glib/RemoteInspectorServer.cpp: Added.

(Inspector::generateConnectionID):
(Inspector::RemoteInspectorServer::singleton):
(Inspector::RemoteInspectorServer::~RemoteInspectorServer):
(Inspector::RemoteInspectorServer::interfaceInfo):
(Inspector::RemoteInspectorServer::start):
(Inspector::RemoteInspectorServer::newConnectionCallback):
(Inspector::RemoteInspectorServer::connectionClosedCallback):
(Inspector::RemoteInspectorServer::newConnection):
(Inspector::dbusConnectionCallAsyncReadyCallback):
(Inspector::RemoteInspectorServer::setTargetList):
(Inspector::RemoteInspectorServer::clientConnectionClosedCallback):
(Inspector::RemoteInspectorServer::getTargetList):
(Inspector::RemoteInspectorServer::setup):
(Inspector::RemoteInspectorServer::close):
(Inspector::RemoteInspectorServer::clientConnectionClosed):
(Inspector::RemoteInspectorServer::connectionClosed):
(Inspector::RemoteInspectorServer::sendMessageToBackend):
(Inspector::RemoteInspectorServer::sendMessageToFrontend):
(Inspector::RemoteInspectorServer::startAutomationSession):

  • inspector/remote/glib/RemoteInspectorServer.h: Added.

(Inspector::RemoteInspectorServer::isRunning):

Source/WebCore:

Add PageDebuggable.cpp to the compilation.

  • CMakeLists.txt:

Source/WebCore/platform/gtk/po:

  • POTFILES.in: Add RemoteWebInspectorProxyGtk.cpp.

Source/WebKit2:

Remove INSPECTOR_SERVER code and add new classes to implement REMOTE_INSPECTOR. The WebKitWebContext registers a
custom protocol "inspector" that loads a page with the list of debuggable targets.

  • PlatformGTK.cmake: Add new files to compilation and remove the old ones.
  • UIProcess/API/gtk/WebKit2InspectorGResourceBundle.xml: Removed.
  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp: Added.

(WebKit::RemoteInspectorProtocolHandler::RemoteInspectorProtocolHandler):
(WebKit::RemoteInspectorProtocolHandler::~RemoteInspectorProtocolHandler):
(WebKit::RemoteInspectorProtocolHandler::webViewDestroyed):
(WebKit::RemoteInspectorProtocolHandler::userContentManagerDestroyed):
(WebKit::RemoteInspectorProtocolHandler::handleRequest):
(WebKit::RemoteInspectorProtocolHandler::inspect):
(WebKit::RemoteInspectorProtocolHandler::targetListChanged):
(WebKit::RemoteInspectorProtocolHandler::connectionClosed):

  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.h: Added.
  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):

  • UIProcess/InspectorServer/HTTPRequest.cpp: Add missing ENABLE(INSPECTOR_SERVER) ifdefs.
  • UIProcess/InspectorServer/HTTPRequest.h:
  • UIProcess/InspectorServer/WebInspectorServer.h:
  • UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp: Removed.
  • UIProcess/RemoteWebInspectorProxy.cpp:
  • UIProcess/RemoteWebInspectorProxy.h:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/glib/RemoteInspectorClient.cpp: Added.

(WebKit::RemoteInspectorClient::RemoteInspectorClient):
(WebKit::RemoteInspectorClient::~RemoteInspectorClient):
(WebKit::dbusConnectionCallAsyncReadyCallback):
(WebKit::RemoteInspectorClient::connectionClosedCallback):
(WebKit::RemoteInspectorClient::setupConnection):
(WebKit::RemoteInspectorClient::connectionClosed):
(WebKit::RemoteInspectorClient::inspect):
(WebKit::RemoteInspectorClient::sendMessageToBackend):
(WebKit::RemoteInspectorClient::closeFromFrontend):
(WebKit::RemoteInspectorClient::setTargetList):
(WebKit::RemoteInspectorClient::sendMessageToFrontend):

  • UIProcess/glib/RemoteInspectorClient.h: Added.

(WebKit::RemoteInspectorObserver::~RemoteInspectorObserver):
(WebKit::RemoteInspectorClient::targets):
(WebKit::RemoteInspectorClient::hostAndPort):

  • UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp: Added.

(WebKit::RemoteWebInspectorProxy::updateWindowTitle):
(WebKit::inspectorViewDestroyed):
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::RemoteWebInspectorProxy::platformBringToFront):
(WebKit::RemoteWebInspectorProxy::platformSave):
(WebKit::RemoteWebInspectorProxy::platformAppend):
(WebKit::RemoteWebInspectorProxy::platformStartWindowDrag):
(WebKit::RemoteWebInspectorProxy::platformOpenInNewTab):

  • UIProcess/gtk/WebProcessPoolGtk.cpp:

(WebKit::initializeRemoteInspectorServer):
(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeWebProcess):

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

(didReceiveMessageToPage): Updated after the GRefPtr hash traitds changes.

  • config.h:

Source/WTF:

Add GRefPtr hash traits to allow using GRefPtr as a key of HashMaps.

  • wtf/glib/GRefPtr.h:

(WTF::HashTraits<GRefPtr<P>>::emptyValue):
(WTF::HashTraits<GRefPtr<P>>::peek):
(WTF::HashTraits<GRefPtr<P>>::customDeleteBucket):

Tools:

Update remote inspector unit tests.

  • TestWebKitAPI/Tests/WebKit2Gtk/InspectorTestServer.cpp:

(main):

  • TestWebKitAPI/Tests/WebKit2Gtk/TestInspectorServer.cpp:

(connectToInspectorServer):
(waitUntilInspectorServerIsReady):
(startTestServer):
(testInspectorServerPageList):
(beforeAll):

9:06 AM Changeset in webkit [215682] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk

test262: test262/test/language/expressions/generators/yield-as-label.js
https://bugs.webkit.org/show_bug.cgi?id=170979

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-24
Reviewed by Saam Barati.

JSTests:

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

Converge on "Cannot" instead of "Can't".

  • catch-parameter-syntax.js:
  • yield-named-variable-generator.js:
  • yield-named-variable.js:
  • stress/yield-label-generator.js:
  • stress/yield-label.js:
  • stress/yield-reserved-word.js: Added.

More complete list of when 'yield' is allowed.

  • ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
  • test262.yaml:

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseFormalParameters):
Converge on "Cannot" instead of "Can't" in error messages.

(JSC::Parser<LexerType>::parseFunctionInfo):
Disallow "yield" as the generator function name in function expressions.
This refers to the difference between Declaration and Expression, where
only GeneratorExpression explicitly has [+Yield] disallowing yield for
the generator name:

GeneratorDeclaration[Yield, Await, Default]:

function * BindingIdentifier?Await ...

GeneratorExpression:

function * BindingIdentifier[+Yield, ~Await]opt ...

(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
Disallow "yield" as a label name in strict mode or inside a generator.

(JSC::Parser<LexerType>::parseProperty):
Disallow "yield" or any keyword in object literal shorthands.

  • parser/Parser.h:

(JSC::Parser::getToken):
(JSC::Parser::isDisallowedIdentifierLet):
(JSC::Parser::isDisallowedIdentifierYield):
(JSC::Parser::disallowedIdentifierLetReason):
(JSC::Parser::disallowedIdentifierYieldReason):
Follow pattern for improved error messages based on context.

LayoutTests:

  • js/object-literal-shorthand-construction-expected.txt:
  • js/script-tests/object-literal-shorthand-construction.js:

Extend this test to cover object literal shorthand with keywords.

  • js/dom/reserved-words-as-property-expected.txt:
  • js/let-syntax-expected.txt:
  • js/parser-syntax-check-expected.txt:

Improved error messages.

6:15 AM Changeset in webkit [215681] by zandobersek@gmail.com
  • 2 edits in trunk

[GTK] Make the ENABLE_SUBTLE_CRYPTO option depend on libgcrypt 1.7.0
https://bugs.webkit.org/show_bug.cgi?id=171112

Reviewed by Michael Catanzaro.

  • Source/cmake/OptionsGTK.cmake: When ENABLE_SUBTLE_CRYPTO feature is enabled,

the detected libgcrypt library version should be at least 1.7.0 since we'll be
relying on API that was introduced in that version.

Apr 23, 2017:

10:51 PM Changeset in webkit [215680] by commit-queue@webkit.org
  • 19 edits
    1 delete in trunk

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

Possible unintended commit. This patch was on the wrong bug.
(Requested by JoePeck on #webkit).

Reverted changeset:

"test262: test262/test/language/expressions/generators/yield-
as-label.js"
https://bugs.webkit.org/show_bug.cgi?id=170979
http://trac.webkit.org/changeset/215674

2:19 PM Changeset in webkit [215679] by commit-queue@webkit.org
  • 4 edits in trunk

test262: test262/test/built-ins/Number/prototype/toPrecision/nan.js
https://bugs.webkit.org/show_bug.cgi?id=171197

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-23
Reviewed by Saam Barati.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToExponential):
(JSC::numberProtoFuncToFixed):
(JSC::numberProtoFuncToPrecision):
Refine the order of operations to match the spec.

1:47 PM Changeset in webkit [215678] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[macOS] WKWebInspectorProxyObjCAdapter has a public ivar
https://bugs.webkit.org/show_bug.cgi?id=171200

Reviewed by Geoffrey Garen.

  • UIProcess/API/C/mac/WKInspectorPrivateMac.h: Made ivar private.
1:32 PM Changeset in webkit [215677] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Unreviewed, rolling out r215657 and r215676.
https://bugs.webkit.org/show_bug.cgi?id=171201

Broke the build (Requested by ap on #webkit).

Reverted changesets:

"[macOS] Enable media selection button on AVTouchBarScrubber"
https://bugs.webkit.org/show_bug.cgi?id=171149
http://trac.webkit.org/changeset/215657

"Build fix after r215657."
http://trac.webkit.org/changeset/215676

12:53 PM Changeset in webkit [215676] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix after r215657.

  • UIProcess/Cocoa/WebViewImpl.mm:
12:52 PM Changeset in webkit [215675] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk/Tools

Add a tool to update expected.txt files from EWS bot results
https://bugs.webkit.org/show_bug.cgi?id=169538

Patch by Youenn Fablet <youenn@apple.com> on 2017-04-23
Reviewed by Ryosuke Niwa.

This script updates expected-txt files from bugzilla posted EWS results.
It uses mac-wk2 as the generic baseline and adds platform-specific results if other ports
have results different from the generic baseline.

  • Scripts/update-test-expectations-from-bugzilla: Added.
  • Scripts/webkitpy/common/net/bugzilla/test_expectation_updater.py: Added.
  • Scripts/webkitpy/common/net/bugzilla/test_expectation_updater_unittest.py: Added.
  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py: Adding helper routines.
10:23 AM Changeset in webkit [215674] by commit-queue@webkit.org
  • 19 edits
    1 add in trunk

test262: test262/test/language/expressions/generators/yield-as-label.js
https://bugs.webkit.org/show_bug.cgi?id=170979

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-23
Reviewed by Saam Barati.

JSTests:

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

Converge on "Cannot" instead of "Can't".

  • catch-parameter-syntax.js:
  • yield-named-variable-generator.js:
  • yield-named-variable.js:
  • stress/yield-label-generator.js:
  • stress/yield-label.js:
  • stress/yield-reserved-word.js: Added.

More complete list of when 'yield' is allowed.

  • ChakraCore/test/strict/23.reservedWords_sm.baseline-jsc:
  • test262.yaml:

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseFormalParameters):
Converge on "Cannot" instead of "Can't" in error messages.

(JSC::Parser<LexerType>::parseFunctionInfo):
Disallow "yield" as the generator function name in function expressions.
This refers to the difference between Declaration and Expression, where
only GeneratorExpression explicitly has [+Yield] disallowing yield for
the generator name:

GeneratorDeclaration[Yield, Await, Default]:

function * BindingIdentifier?Await ...

GeneratorExpression:

function * BindingIdentifier[+Yield, ~Await]opt ...

(JSC::Parser<LexerType>::parseExpressionOrLabelStatement):
Disallow "yield" as a label name in strict mode or inside a generator.

(JSC::Parser<LexerType>::parseProperty):
Disallow "yield" or any keyword in object literal shorthands.

  • parser/Parser.h:

(JSC::Parser::getToken):
(JSC::Parser::isDisallowedIdentifierLet):
(JSC::Parser::isDisallowedIdentifierYield):
(JSC::Parser::disallowedIdentifierLetReason):
(JSC::Parser::disallowedIdentifierYieldReason):
Follow pattern for improved error messages based on context.

LayoutTests:

  • js/object-literal-shorthand-construction-expected.txt:
  • js/script-tests/object-literal-shorthand-construction.js:

Extend this test to cover object literal shorthand with keywords.

  • js/dom/reserved-words-as-property-expected.txt:
  • js/let-syntax-expected.txt:
  • js/parser-syntax-check-expected.txt:

Improved error messages.

8:37 AM Changeset in webkit [215673] by commit-queue@webkit.org
  • 7 edits in trunk

test262: test262/test/built-ins/Number/parseFloat.js
https://bugs.webkit.org/show_bug.cgi?id=171193

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-23
Reviewed by Yusuke Suzuki.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::parseFloatFunction):
Expose parseFloat on the global object to be shared with Number constructor.

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):
parseFloat uses the same value as the global parseFloat.

4:27 AM Changeset in webkit [215672] by aestes@apple.com
  • 22 edits
    1 add in trunk/Source

[macOS] AVTouchBarMediaSelectionOptions should be created with the correct type
https://bugs.webkit.org/show_bug.cgi?id=171192
<rdar://problem/29875010>

Reviewed by Wenson Hsieh.

Source/WebCore:

AVTouchBarMediaSelectionOption was always being created with type
AVTouchBarMediaSelectionOptionTypeRegular, but we know if a TextTrack is really the legible
off or legible auto track. This change plumbs that information into
WebPlaybackControlsManager so that AVTouchBarMediaSelectionOptions can be created with the
right AVTouchBarMediaSelectionOptionType.

  • WebCore.xcodeproj/project.pbxproj:
  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::mediaSelectionOptionForTrack):

  • page/CaptionUserPreferences.h:
  • platform/MediaSelectionOption.h: Added.
  • platform/cocoa/WebPlaybackSessionModel.h:

(WebCore::WebPlaybackSessionModelClient::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionModelClient::legibleMediaSelectionOptionsChanged):

  • platform/cocoa/WebPlaybackSessionModelMediaElement.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:

(WebCore::WebPlaybackSessionModelMediaElement::audioMediaSelectionOptions):
(WebCore::WebPlaybackSessionModelMediaElement::legibleMediaSelectionOptions):

  • platform/ios/WebPlaybackSessionInterfaceAVKit.h:
  • platform/ios/WebPlaybackSessionInterfaceAVKit.mm:

(WebCore::mediaSelectionOptions):
(WebCore::WebPlaybackSessionInterfaceAVKit::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceAVKit::legibleMediaSelectionOptionsChanged):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::audioMediaSelectionOptionsChanged):
(WebVideoFullscreenControllerContext::legibleMediaSelectionOptionsChanged):
(WebVideoFullscreenControllerContext::audioMediaSelectionOptions):
(WebVideoFullscreenControllerContext::legibleMediaSelectionOptions):

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(toAVTouchBarMediaSelectionOptionType):
(mediaSelectionOptions):
(-[WebPlaybackControlsManager setAudioMediaSelectionOptions:withSelectedIndex:]):
(-[WebPlaybackControlsManager setLegibleMediaSelectionOptions:withSelectedIndex:]):
(-[WebPlaybackControlsManager webPlaybackSessionInterfaceMac]):
(-[WebPlaybackControlsManager setWebPlaybackSessionInterfaceMac:]):

  • platform/mac/WebPlaybackSessionInterfaceMac.h:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::audioMediaSelectionOptionsChanged):
(WebCore::WebPlaybackSessionInterfaceMac::legibleMediaSelectionOptionsChanged):

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

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

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.messages.in:
  • UIProcess/Cocoa/WebPlaybackSessionManagerProxy.mm:

(WebKit::WebPlaybackSessionModelContext::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionModelContext::setLegibleMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setAudioMediaSelectionOptions):
(WebKit::WebPlaybackSessionManagerProxy::setLegibleMediaSelectionOptions):

  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionInterfaceContext::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionInterfaceContext::legibleMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::audioMediaSelectionOptionsChanged):
(WebKit::WebPlaybackSessionManager::legibleMediaSelectionOptionsChanged):

2:12 AM Changeset in webkit [215671] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use DoublyLinkedList for MachineThread
https://bugs.webkit.org/show_bug.cgi?id=171171

Reviewed by Mark Lam.

MachineThread can use WTF::DoublyLinkedList to simplify
its implementation. We should not use Vector<> etc. since
we do not want to call allocations during suspending and
resuming threads.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::MachineThreads::~MachineThreads):
(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::removeThreadIfFound):
(JSC::MachineThreads::MachineThread::MachineThread):
(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • heap/MachineStackMarker.h:

(JSC::MachineThreads::threadsListHead):

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::isValidFramePointer):

  • runtime/VMTraps.cpp:

(JSC::findActiveVMAndStackBounds):

Note: See TracTimeline for information about the timeline view.