Timeline



Aug 2, 2016:

11:35 PM Changeset in webkit [204074] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Update breaking rules to match ICU 57
https://bugs.webkit.org/show_bug.cgi?id=160488
<rdar://problem/25856238>

Reviewed by Darin Adler.

Source/WTF:

This patch fixes a typo in the uax14AssignmentsAfter rules which
was causing flag emoji to have line breaking opportunities in their
middles. It also fixes significant language issues for languages
such as Hebrew, and adds correct breaking opportunities around
hyphens.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):
(WTF::uax14AssignmentsAfter):
(WTF::uax14Forward):
(WTF::uax14Reverse):

LayoutTests:

  • fast/text/flag-emoji-line-break-expected.html: Added.
  • fast/text/flag-emoji-line-break.html: Added.
  • platform/mac/TestExpectations: Mark the test as failing on Yosemite.
11:16 PM Changeset in webkit [204073] by bshafiei@apple.com
  • 8 edits
    2 adds in branches/safari-602-branch

Merge r204050. rdar://problem/27313234

11:16 PM Changeset in webkit [204072] by bshafiei@apple.com
  • 8 edits
    2 moves in branches/safari-602-branch

Merge r204062. rdar://problem/27592936

11:16 PM Changeset in webkit [204071] by bshafiei@apple.com
  • 9 edits
    2 adds in branches/safari-602-branch

Merge r203955. rdar://problem/27629346

11:15 PM Changeset in webkit [204070] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r204057. rdar://problem/27534205

11:15 PM Changeset in webkit [204069] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203984. rdar://problem/27409854

11:15 PM Changeset in webkit [204068] by bshafiei@apple.com
  • 19 edits
    2 adds in branches/safari-602-branch

Merge r203982. rdar://problem/27547583

10:38 PM Changeset in webkit [204067] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:33 PM Changeset in webkit [204066] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix 32bits jsc after r204065

Default constructed JSValue() are not equal to zero in 32bits.

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::AbstractValue):

8:45 PM Changeset in webkit [204065] by benjamin@webkit.org
  • 7 edits in trunk/Source

[JSC] Simplify the initialization of AbstractValue in the AbstractInterpreter
https://bugs.webkit.org/show_bug.cgi?id=160370

Reviewed by Saam Barati.

Source/JavaScriptCore:

We use a ton of AbstractValue to run the Abstract Interpreter.

When we set up the initial values, the compiler sets
a zero on a first word, a one on a second word, and a zero
again on a third word.
Since no vector or double-store can deal with 3 words, unrolling
is done by repeating those instructions.

The reason for the one was TinyPtrSet. It needed a flag for
empty value to identify the set as thin. I flipped the flag to "fat"
to make sure TinyPtrSet is initialized to zero.

With that done, I just had to clean some places to make
the initialization shorter.
It makes the binary easier to follow but this does not help with
the bigger problem: the time spent per block on Abstract Interpreter.

  • bytecode/Operands.h:

The traits were useless, no client code defines it.

(JSC::Operands::Operands):
(JSC::Operands::ensureLocals):
Because of the size of the function, llvm is not inlining it.
We were literally loading 3 registers from memory and storing
them in the vector.
Now that AbstractValue has a VectorTraits, we should just rely
on the memset of Vector when possible.

(JSC::Operands::getLocal):
(JSC::Operands::setArgumentFirstTime):
(JSC::Operands::setLocalFirstTime):
(JSC::Operands::clear):
(JSC::OperandValueTraits::defaultValue): Deleted.
(JSC::OperandValueTraits::isEmptyForDump): Deleted.

  • bytecode/OperandsInlines.h:

(JSC::Operands<T>::dumpInContext):
(JSC::Operands<T>::dump):
(JSC::Traits>::dumpInContext): Deleted.
(JSC::Traits>::dump): Deleted.

  • dfg/DFGAbstractValue.cpp:
  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::AbstractValue):

Source/WTF:

  • wtf/TinyPtrSet.h:

(WTF::TinyPtrSet::isThin):
(WTF::TinyPtrSet::set):

7:56 PM Changeset in webkit [204064] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Drop custom bindings code for HTMLSelectElement.remove()
https://bugs.webkit.org/show_bug.cgi?id=160477

Reviewed by Darin Adler.

Drop custom bindings code for HTMLSelectElement.remove() and use
overloading instead.

  • bindings/js/JSHTMLSelectElementCustom.cpp:

(WebCore::JSHTMLSelectElement::remove): Deleted.

  • html/HTMLSelectElement.idl:
7:56 PM Changeset in webkit [204063] by Chris Dumez
  • 10 edits in trunk

Drop custom bindings code for HTMLOptionsCollection.remove()
https://bugs.webkit.org/show_bug.cgi?id=160475

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Drop custom bindings code for HTMLOptionsCollection.remove() and use
overloading instead. The overload that take an HTMLOptionElement is
WebKit-specific and should probably be dropped at some point:

This patch also fixes several bugs:

  • The parameter is now mandatory. This is consistent with the specification, Firefox and Chrome.
  • HTMLOptionsCollection.prototype.remove.length is now 1 instead of 0.

No new tests, rebaselined existing tests.

  • bindings/js/JSHTMLOptionsCollectionCustom.cpp:

(WebCore::JSHTMLOptionsCollection::remove): Deleted.

  • html/HTMLOptionsCollection.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • js/dom/select-options-remove-expected.txt:
  • js/resources/select-options-remove.js:
7:38 PM Changeset in webkit [204062] by n_wang@apple.com
  • 8 edits
    2 moves in trunk

AX: Simulated touch events are not working on iOS
https://bugs.webkit.org/show_bug.cgi?id=160395
<rdar://problem/27633597>

Reviewed by Chris Fleizach.

Source/WebCore:

We should mark the simulated touch as a potential tap otherwise it won't
be handled on iOS. Also, we need to dispatch both touch start and touch end
to mimic the real touch events. Last, added a has event listeners check,
because iOS is dispatching mouse click events for elements without touch event
listeners.

Test: accessibility/ios-simulator/press-fires-touch-events.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchTouchEvent):

  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::dispatchSimulatedTouchEvent):

  • platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):

Tools:

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChild):

LayoutTests:

  • accessibility/ios-simulator/press-fires-touch-events-expected.txt: Added.
  • accessibility/ios-simulator/press-fires-touch-events.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/ios/accessibility/press-fires-touch-events-expected.txt: Removed.
  • platform/ios-simulator/ios/accessibility/press-fires-touch-events.html: Removed.
7:20 PM Changeset in webkit [204061] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Clean up some useless AtomicString atoms
https://bugs.webkit.org/show_bug.cgi?id=160471

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-02
Reviewed by Geoffrey Garen.

Source/WebCore:

The only uses of "commentAtom" and "textAtom" where for their
respective overload of Node::nodeName().
Those methods return a string, we should not keep them in the atomic
string table just to hold a small String alive. They were also the only
two nodes to behave that way.

The atom xlinkAtom was only used by createForeignAttributesMap(), which
is itself only invoked once. There is no need for the symbol xlinkAtom.

  • dom/CDATASection.cpp:

(WebCore::CDATASection::nodeName):

  • dom/Comment.cpp:

(WebCore::Comment::nodeName):

  • dom/Document.cpp:

(WebCore::Document::nodeName):

  • dom/Text.cpp:

(WebCore::Text::nodeName):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

Source/WTF:

  • wtf/text/AtomicString.h:
  • wtf/text/StringStatics.cpp:

(WTF::AtomicString::init): Deleted.

6:57 PM Changeset in webkit [204060] by fpizlo@apple.com
  • 2 edits in trunk/Tools

run-javascriptcore-tests should accept multiple --extra-tests
https://bugs.webkit.org/show_bug.cgi?id=160486

Reviewed by Saam Barati.

We want to be able to pass --extra-tests multiple times, to supply an arbitrary number of extra
test suites. This does it by using GetOpt::Long's array support.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

6:46 PM Changeset in webkit [204059] by sbarati@apple.com
  • 1 add
    1 delete in trunk/JSTests

Rename Changelog to ChangeLog

Rubber stamped by Keith Miller.

  • Changelog: Removed.
6:28 PM Changeset in webkit [204058] by sbarati@apple.com
  • 15 edits
    1 add in trunk

update a class extending null w.r.t the ES7 spec
https://bugs.webkit.org/show_bug.cgi?id=160417

Reviewed by Keith Miller.

Source/JavaScriptCore:

When a class extends null, it should not be marked as a derived class.
This was changed in the ES2016 spec, and this patch makes the needed
changes in JSC to follow the spec. This allows classes to extend
null and have their default constructor invoked without throwing an exception.
This also prevents |this| from being under TDZ at the start of the constructor.
Because ES6 allows arbitrary expressions in the class <ident> extends <expr>
syntax, we don't know statically if a constructor is extending null or not.
Therefore, we don't always know statically if it's a base or derived constructor.
I solved this by putting a boolean on the constructor function under a private
symbol named isDerivedConstructor when doing class construction. We only need
to put this boolean on constructors that may extend null. Constructors that are
declared in a class with no extends syntax can tell statically that they are a base constructor.

I've also renamed the ConstructorKind::Derived enum value to be
ConstructorKind::Extends to better indicate that we can't answer
the "am I a derived constructor?" question statically.

  • builtins/BuiltinExecutables.cpp:

(JSC::BuiltinExecutables::createDefaultConstructor):

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::emitReturn):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::ensureThis):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::ClassExprNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/ParserModes.h:

LayoutTests:

  • js/class-syntax-extends-expected.txt:
  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-extends.js:
  • js/script-tests/class-syntax-super.js:
6:22 PM Changeset in webkit [204057] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r203385): Frequent RELEASE_ASSERT in WebKit::RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=160481
<rdar://problem/27534205>

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
If the UI process sends a didUpdate message while the Web process is in
the middle of flushing on a background thread, the drawing area will
allow another commit to start on the main thread, which then (rightfully)
causes the RELEASE_ASSERT.

This is normally not a problem, because didRefreshDisplay (which sends the didUpdate)
bails if m_didUpdateMessageState is anything other than NotSent, and m_didUpdateMessageState
is only NotSent if the Web process has sent a commit (and thus will not commit again until
it gets a didUpdate). This is the fundamental mechanism that avoids multiple commits being
in flight at once.

In r203385, I added a path where didRefreshDisplay could be called
before the first commit arrived (by way of
_applicationWillEnterForeground -> viewStateDidChange -> waitForDidUpdateViewState).

This caused trouble because m_didUpdateMessageState is initialized to NotSent,
which means that we could end up sending a didUpdate immediately, before the first
commit arrives - even worse, while the first commit is being flushed on a background thread,
leading the aforementioned RELEASE_ASSERT to fire.

Instead, initialize it to Sent (which I've renamed to DoesNotNeedDidUpdate), so that
we won't send a didUpdate until after the first commit arrives (at which point
the two processes are in agreement about the order of things).

It's not currently possible to API test this for multiple reasons, though it is fairly
easy to write a test app that reproduces reliably (by simulating suspend/resume notifications
inside the didFinishNavigation: callback).

6:14 PM Changeset in webkit [204056] by Ryan Haddad
  • 2 edits
    1 copy
    1 add in branches/safari-602-branch/LayoutTests

Merge r203992. rdar://problem/27611932

5:43 PM Changeset in webkit [204055] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip media/track/track-remove-crash.html on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160367

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:31 PM Changeset in webkit [204054] by andersca@apple.com
  • 3 edits
    80 adds in trunk/Source/WebCore

Freeze the Objective-C DOM Event and CSS bindings
https://bugs.webkit.org/show_bug.cgi?id=160476

Reviewed by Tim Horton.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSSCharsetRule.h: Added.
  • bindings/objc/DOMCSSCharsetRule.mm: Added.
  • bindings/objc/DOMCSSCharsetRuleInternal.h: Added.
  • bindings/objc/DOMCSSFontFaceRule.h: Added.
  • bindings/objc/DOMCSSFontFaceRule.mm: Added.
  • bindings/objc/DOMCSSFontFaceRuleInternal.h: Added.
  • bindings/objc/DOMCSSImportRule.h: Added.
  • bindings/objc/DOMCSSImportRule.mm: Added.
  • bindings/objc/DOMCSSImportRuleInternal.h: Added.
  • bindings/objc/DOMCSSMediaRule.h: Added.
  • bindings/objc/DOMCSSMediaRule.mm: Added.
  • bindings/objc/DOMCSSMediaRuleInternal.h: Added.
  • bindings/objc/DOMCSSPageRule.h: Added.
  • bindings/objc/DOMCSSPageRule.mm: Added.
  • bindings/objc/DOMCSSPageRuleInternal.h: Added.
  • bindings/objc/DOMCSSPrimitiveValue.h: Added.
  • bindings/objc/DOMCSSPrimitiveValue.mm: Added.
  • bindings/objc/DOMCSSPrimitiveValueInternal.h: Added.
  • bindings/objc/DOMCSSRule.h: Added.
  • bindings/objc/DOMCSSRule.mm: Added.
  • bindings/objc/DOMCSSRuleInternal.h: Added.
  • bindings/objc/DOMCSSRuleList.h: Added.
  • bindings/objc/DOMCSSRuleList.mm: Added.
  • bindings/objc/DOMCSSRuleListInternal.h: Added.
  • bindings/objc/DOMCSSStyleDeclaration.h: Added.
  • bindings/objc/DOMCSSStyleDeclaration.mm: Added.
  • bindings/objc/DOMCSSStyleDeclarationInternal.h: Added.
  • bindings/objc/DOMCSSStyleRule.h: Added.
  • bindings/objc/DOMCSSStyleRule.mm: Added.
  • bindings/objc/DOMCSSStyleRuleInternal.h: Added.
  • bindings/objc/DOMCSSStyleSheet.h: Added.
  • bindings/objc/DOMCSSStyleSheet.mm: Added.
  • bindings/objc/DOMCSSStyleSheetInternal.h: Added.
  • bindings/objc/DOMCSSUnknownRule.h: Added.
  • bindings/objc/DOMCSSUnknownRule.mm: Added.
  • bindings/objc/DOMCSSUnknownRuleInternal.h: Added.
  • bindings/objc/DOMCSSValue.h: Added.
  • bindings/objc/DOMCSSValue.mm: Added.
  • bindings/objc/DOMCSSValueInternal.h: Added.
  • bindings/objc/DOMCSSValueList.h: Added.
  • bindings/objc/DOMCSSValueList.mm: Added.
  • bindings/objc/DOMCSSValueListInternal.h: Added.
  • bindings/objc/DOMCounter.h: Added.
  • bindings/objc/DOMCounter.mm: Added.
  • bindings/objc/DOMCounterInternal.h: Added.
  • bindings/objc/DOMEvent.h: Added.
  • bindings/objc/DOMEvent.mm: Added.
  • bindings/objc/DOMEventInternal.h: Added.
  • bindings/objc/DOMEventListener.h: Added.
  • bindings/objc/DOMEventTarget.h: Added.
  • bindings/objc/DOMKeyboardEvent.h: Added.
  • bindings/objc/DOMKeyboardEvent.mm: Added.
  • bindings/objc/DOMKeyboardEventInternal.h: Added.
  • bindings/objc/DOMMouseEvent.h: Added.
  • bindings/objc/DOMMouseEvent.mm: Added.
  • bindings/objc/DOMMouseEventInternal.h: Added.
  • bindings/objc/DOMMutationEvent.h: Added.
  • bindings/objc/DOMMutationEvent.mm: Added.
  • bindings/objc/DOMMutationEventInternal.h: Added.
  • bindings/objc/DOMOverflowEvent.h: Added.
  • bindings/objc/DOMOverflowEvent.mm: Added.
  • bindings/objc/DOMOverflowEventInternal.h: Added.
  • bindings/objc/DOMProgressEvent.h: Added.
  • bindings/objc/DOMProgressEvent.mm: Added.
  • bindings/objc/DOMProgressEventInternal.h: Added.
  • bindings/objc/DOMRGBColor.h: Added.
  • bindings/objc/DOMRGBColor.mm: Added.
  • bindings/objc/DOMRGBColorInternal.h: Added.
  • bindings/objc/DOMRect.h: Added.
  • bindings/objc/DOMRect.mm: Added.
  • bindings/objc/DOMRectInternal.h: Added.
  • bindings/objc/DOMTextEvent.h: Added.
  • bindings/objc/DOMTextEvent.mm: Added.

(-[DOMTextEvent data]):
(-[DOMTextEvent initTextEvent:canBubbleArg:cancelableArg:viewArg:dataArg:]):

  • bindings/objc/DOMTextEventInternal.h: Added.
  • bindings/objc/DOMUIEvent.h: Added.
  • bindings/objc/DOMUIEvent.mm: Added.
  • bindings/objc/DOMUIEventInternal.h: Added.
  • bindings/objc/DOMWheelEvent.h: Added.
  • bindings/objc/DOMWheelEvent.mm: Added.
  • bindings/objc/DOMWheelEventInternal.h: Added.
5:00 PM Changeset in webkit [204053] by enrica@apple.com
  • 20 edits in trunk

Allow building with content filtering disabled.
https://bugs.webkit.org/show_bug.cgi?id=160454

Reviewed by Simon Fraser.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • platform/PlatformContentFilter.h:

(WebCore::PlatformContentFilter::unblockRequestDeniedScript):

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

(WebCore::NetworkExtensionContentFilter::unblockHandler):

  • platform/cocoa/ParentalControlsContentFilter.h:
  • testing/MockContentFilter.h:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::blockedByContentFilterError):

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<KeypressCommand>::decode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::encode):
(IPC::ArgumentCoder<ContentFilterUnblockHandler>::decode):

  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError):

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:43 PM Changeset in webkit [204052] by dino@apple.com
  • 15 edits in trunk

Reapply fixes for webkit.org/b/159450 and webkit.org/b/157569
https://bugs.webkit.org/show_bug.cgi?id=160474
<rdar://problem/27668170>

Reviewed by Simon Fraser.

The fixes are behaviour we want. They just caused a regression
on medium.com (reverted in http://trac.webkit.org/r203380).

Now that we've branched, revert the reversion (which itself
was a reversion), so we can fix the actual bug:
https://bugs.webkit.org/show_bug.cgi?id=160478

Source/WebCore:

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::parseTransitionShorthand):

  • css/CSSPropertyNames.in:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):
(WebCore::StyleProperties::asText):
(WebCore::MutableStyleProperties::removeProperty): Deleted.
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty): Deleted.
(WebCore::MutableStyleProperties::setProperty): Deleted.
(WebCore::getIndexInShorthandVectorForPrefixingVariant): Deleted.
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty): Deleted.
(WebCore::MutableStyleProperties::setPrefixingVariantProperty): Deleted.

  • css/StyleProperties.h:

LayoutTests:

  • animations/fill-mode-forwards-zero-duration.html:
  • animations/play-state-start-paused.html:
  • animations/script-tests/spring-parsing.js:

(testSpring):

  • animations/spring-parsing-expected.txt:
  • animations/unprefixed-properties-expected.txt:
  • animations/unprefixed-properties.html:
  • fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt:
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt:
4:29 PM Changeset in webkit [204051] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.46

New tag.

4:03 PM Changeset in webkit [204050] by eric.carlson@apple.com
  • 8 edits
    2 adds in trunk

Cleanup HTMLMediaElement track lists.
https://bugs.webkit.org/show_bug.cgi?id=160470

Reviewed by David Kilzer.

Source/WebCore:

Test: media/range-extract-contents-crash.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement):

  • html/track/AudioTrack.cpp:

(WebCore::AudioTrack::willRemove): ASSERT if media element is NULL.

  • html/track/TextTrackList.cpp:

(TextTrackList::clearElement): Clear track media element pointers and client.

  • html/track/TextTrackList.h:
  • html/track/TrackListBase.cpp:

(TrackListBase::~TrackListBase): Call clearElement.
(TrackListBase::clearElement): Clear track media element pointers and client.

  • html/track/TrackListBase.h:

LayoutTests:

  • media/range-extract-contents-crash-expected.txt: Added.
  • media/range-extract-contents-crash.html: Added.
3:59 PM Changeset in webkit [204049] by andersca@apple.com
  • 5 edits in trunk/Source/WebCore

Remove more Objective-C bindings that are not used
https://bugs.webkit.org/show_bug.cgi?id=160473

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSS.mm:

(kitClass):

  • dom/Document.idl:
3:55 PM Changeset in webkit [204048] by Chris Dumez
  • 10 edits in trunk

Drop custom bindings for FormData.append()
https://bugs.webkit.org/show_bug.cgi?id=160466

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt:

Source/WebCore:

Drop custom bindings for FormData.append(). We no longer need them now
that we have proper support for overloads after r204028.

This patch also fixes the fact that FormData.prototype.append.length
was 0 instead of 2.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::JSDOMFormData::append): Deleted.

  • html/DOMFormData.cpp:

(WebCore::DOMFormData::append):

  • html/DOMFormData.h:
  • html/DOMFormData.idl:
  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData):

  • html/FormDataList.cpp:

(WebCore::FormDataList::appendBlob):

  • html/FormDataList.h:

(WebCore::FormDataList::Item::Item):
(WebCore::FormDataList::appendBlob):

3:42 PM Changeset in webkit [204047] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

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

Decided on a different solution (Requested by jonlee_ on
#webkit).

Reverted changeset:

"Captions do not render in PiP window when element is hidden"
https://bugs.webkit.org/show_bug.cgi?id=160265
http://trac.webkit.org/changeset/203799

3:23 PM Changeset in webkit [204046] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused functions in URL
https://bugs.webkit.org/show_bug.cgi?id=160468

Reviewed by Geoffrey Garen.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::extractInnerURL):

  • platform/URL.cpp:

(WebCore::mimeTypeFromURL):
(WebCore::URL::stringCenterEllipsizedToLength):
(WebCore::URL::isSafeToSendToAnotherThread): Deleted.

  • platform/URL.h:

(WebCore::URL::operator NSString*):
(WebCore::URL::innerURL): Deleted.

3:23 PM Changeset in webkit [204045] by Chris Dumez
  • 14 edits in trunk

Named / Indexed properties should be configurable
https://bugs.webkit.org/show_bug.cgi?id=160457

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:
  • web-platform-tests/dom/nodes/Element-getElementsByTagName-expected.txt:

Source/WebCore:

Report Named / Indexed properties as being configurable to comply with
the Web IDL specification:

Firefox and Chrome also report them as being configurable.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateGetOwnPropertySlotBody):

LayoutTests:

Update / rebaseline existing tests to reflect behavior change.

  • fast/dom/NodeList/nodelist-name-getter-properties-expected.txt:
  • fast/dom/NodeList/nodelist-name-getter-properties.html:
  • js/dom/getOwnPropertyDescriptor-expected.txt:
  • js/resources/getOwnPropertyDescriptor.js:
3:16 PM Changeset in webkit [204044] by andersca@apple.com
  • 13 edits in trunk

Remove more unused/uninstalled Objective-C DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=160464

Reviewed by Darin Adler.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMCSS.mm:

(kitClass):

  • bindings/objc/DOMEvents.h:
  • bindings/objc/DOMEvents.mm:

(kitClass): Deleted.

  • dom/Document.idl:

Source/WebKit/mac:

Stop installing unused headers.

  • MigrateHeaders.make:

LayoutTests:

Update test results.

  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
  • platform/mac/fast/dom/wrapper-classes-objc.html:
2:44 PM Changeset in webkit [204043] by Chris Dumez
  • 9 edits in trunk

[WebIDL] Extend new overload resolution algorithm support to constructors
https://bugs.webkit.org/show_bug.cgi?id=160455

Reviewed by Ryosuke Niwa.

Source/WebCore:

Extend new overload resolution algorithm support (added in r204028) to
constructors as well. It was only used for operations. Remove code that
is now dead from the bindings generator.

We now share the same code of generating the overload resolution code
for operations and constructors.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGenerator.pm:

(LinkOverloadedFunctions):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateOverloadedFunctionOrConstructor):
(GenerateImplementation):
(GenerateConstructorDefinitions):
(GenerateConstructorDefinition):
(GetFunctionLength): Deleted.
(LengthOfLongestFunctionParameterList): Deleted.
(GetNativeTypeForConversions): Deleted.
(GetGnuVTableNameForInterface): Deleted.
(GetGnuMangledNameForInterface): Deleted.
(GetGnuVTableOffsetForType): Deleted.
(GenerateConstructorHelperMethods): Deleted.

  • bindings/scripts/IDLParser.pm:

(applyExtendedAttributeList): Deleted.

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

(WebCore::JSTestOverloadedConstructorsConstructor::construct):

  • bindings/scripts/test/TestOverloadedConstructors.idl:

LayoutTests:

Update / rebaseline existing test as we now provide slightly different
exception messages when given bad overloaded constructor parameters.

  • fast/canvas/canvas-imageData-expected.txt:
  • fast/canvas/script-tests/canvas-imageData.js:
2:33 PM Changeset in webkit [204042] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203917. rdar://problem/27430381

2:28 PM Changeset in webkit [204041] by beidson@apple.com
  • 5 edits in trunk

Removing IndexedDB WebsiteData can fail for some users.
https://bugs.webkit.org/show_bug.cgi?id=160463

Reviewed by Alex Christensen.

Source/WebCore:

Covered by changes to API test IndexedDB.StoreBlobThenDelete.

For a few months in trunk WebKit, deleting an IndexedDB using WebsiteDataStore API would only
delete the "IndexedDB.sqlite3" file, but would leave the "-wal" and "-shm" files behind.

We'd then fail to delete the directory itself, tricking API clients to think there are still
databases in the given origin.

Furthermore, the code to delete a database first checks for the existence of "IndexedDB.sqlite3"
then refuses to do any further cleanup if it doesn't exist.

We should just always run the entire delete procedure even if IndexedDB.sqlite does not exist.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::removeAllDatabasesForOriginPath):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::deleteDatabaseFile):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm:
2:17 PM Changeset in webkit [204040] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Mac CMake build.

  • PlatformMac.cmake:

Some ObjC bindings have been frozen.

2:15 PM Changeset in webkit [204039] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking two media tests as flaky crashes on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=160367

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
1:26 PM Changeset in webkit [204038] by fred.wang@free.fr
  • 6 edits in trunk/Source/WebCore

More cleanup of MathML operator parsing
https://bugs.webkit.org/show_bug.cgi?id=160336

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, behavior is unchanged.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::parseMathMLLength): Deleted. This function is no longer used.

  • rendering/mathml/RenderMathMLBlock.h: Ditto.
  • rendering/mathml/RenderMathMLFencedOperator.h: Move some length members from

RenderMathMLOperator and override the accessors. Also override useMathOperator() since it is
always true for anonymous mfenced operators.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::textContent): No need to ASSERT !isAnonymous since this
function is overriden by RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::isInvisibleOperator): Use a temporary variable to call
textContent only once.
(WebCore::RenderMathMLOperator::leadingSpace): Helper function to determine the leading space.
(WebCore::RenderMathMLOperator::trailingSpace): Helper function to determine the trailing space.
(WebCore::RenderMathMLOperator::minSize): Helper function to determine the min space.
(WebCore::RenderMathMLOperator::maxSize): Helper function to determine the max space.
(WebCore::RenderMathMLOperator::setOperatorProperties): This is now only used to set m_isVertical.
(WebCore::RenderMathMLOperator::stretchTo): Call maxSize and minSize when necessary.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Call leadingSpace and trailingSpace.
(WebCore::RenderMathMLOperator::layoutBlock): Ditto.
(WebCore::RenderMathMLOperator::useMathOperator): Remove the case for anonymous operators as
this is now handled in the derived class.
(WebCore::RenderMathMLOperator::paint): Call leadingSpace.

  • rendering/mathml/RenderMathMLOperator.h: Remove length members and declare helper functions

to get these lengths from MathMLOperatorElement.
(WebCore::RenderMathMLOperator::setLeadingSpace): Deleted. This is no longer used.
(WebCore::RenderMathMLOperator::setTrailingSpace): Deleted. This is no longer used.

12:53 PM Changeset in webkit [204037] by fred.wang@free.fr
  • 9 edits in trunk

Move parsing of operator length attributes to MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160301

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

Source/WebCore:

We move parsing of operator attributes lspace, rspace minsize, maxsize into the class
MathMLOperatorElement. We rely on the existing MathMLElement::Length structure and expand
it to handle the "infinity" case of maxsize that we always resolve as intMaxForLayoutUnit.
We also improve the resolution of a negative value for minsize and maxsize since the MathML
recommendation says it should be rounded up to the nearest valid value (which is zero)
instead of ignoring the attribute and using the default value. This is similar to r203285
for mfrac@linethickness. We also update the existing test for minsize/maxsize to take into
account that change.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.h: Add an "Infinity" type for MathML Length.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::leadingSpace): Helper function to retrieve the cached value
for the lspace attribute, parse it if necessary.
(WebCore::MathMLOperatorElement::trailingSpace): Ditto for rspace.
(WebCore::MathMLOperatorElement::minSize): Ditto for minsize.
(WebCore::MathMLOperatorElement::maxSize): Ditto for maxsize. This attribute also accepts the
"infinity" value.
(WebCore::MathMLOperatorElement::parseAttribute): Mark attributes dirty.

  • mathml/MathMLOperatorElement.h: Declare Length members and accessors.
  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits): Resolve Infinity as intMaxForLayoutUnit.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorProperties): We use toUserUnits to resolve the
lengths. Negative maxsize and minsize values now fallback to 0 instead of their default
values. We also remove the !isAnonymous() check since setOperatorProperties is overriden
in the RenderMathMLFencedOperator class.

LayoutTests:

  • mathml/presentation/stretchy-minsize-maxsize-expected.html: Update the test for negative

minsize and maxsize to align on the behavior suggested in the MathML recommendation.

  • mathml/presentation/stretchy-minsize-maxsize.html: Ditto.
12:23 PM Changeset in webkit [204036] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Unreviewed build error fix.

  • mathml/MathMLOperatorElement.cpp:

(WebCore::propertyFlagToAttributeName): Return a nullQName to avoid warnings on some platforms.

12:16 PM Changeset in webkit [204035] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Stop building Objective-C bindings that aren't exposed anywhere
https://bugs.webkit.org/show_bug.cgi?id=160458

Reviewed by Darin Adler.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
12:13 PM Changeset in webkit [204034] by Chris Dumez
  • 5 edits in trunk

HTMLCollection's named getter should only do 'name' attribute matching for HTMLElements
https://bugs.webkit.org/show_bug.cgi?id=160456

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/Document-getElementsByTagName-expected.txt:

Rebaseline. We are still failing but on the next check.

  • web-platform-tests/dom/nodes/Element-children-expected.txt:

Rebaseline now that one more check is passing.

Source/WebCore:

HTMLCollection's named getter should only do 'name' attribute matching for HTMLElements:

Our slow path which relies on HTMLCollection::updateNamedElementCache() does the right
thing. However, we have a fast path in
CachedHTMLCollection<HTMLCollectionClass, traversalType>::namedItem() that was missing a
check.

Firefox and Chrome both behave correctly here.

No new tests, rebaselined existing tests.

  • html/CachedHTMLCollection.h:

(WebCore::traversalType>::namedItem):

12:12 PM WebKitIDL edited by Chris Dumez
StrictTypeChecking no longer exists as of r204033 (diff)
12:11 PM Changeset in webkit [204033] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Kill [StrictTypeChecking] IDL extended attribute
https://bugs.webkit.org/show_bug.cgi?id=160382

Reviewed by Darin Adler.

Kill [StrictTypeChecking] IDL extended attribute. Its only remaining
use was on DOMString parameters for a few CanvasRenderingContext2D
operations in order to work around a bug in our overload resolution.

However, as of r204028, we implement the Web IDL overload resolution
algorithm and [StrictTypeChecking] is now a no-op and is no longer
needed.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • html/canvas/CanvasRenderingContext2D.idl:
11:47 AM Changeset in webkit [204032] by fred.wang@free.fr
  • 8 edits in trunk/Source/WebCore

Move parsing of boolean operator properties into MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160190

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, already covered by existing tests.

  • mathml/MathMLOperatorDictionary.h: Add a bit mask with all the property flags set.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::attributeNameToPropertyFlag): helper function to map from attribute name to flag.
(WebCore::MathMLOperatorElement::computeOperatorFlag): Helper function to update one
bit of m_properties.flags from the corresponding boolean attribute. The default value is
taken from the operator dictionary data stored in m_dictionaryProperty.flags.
(WebCore::MathMLOperatorElement::hasProperty): Returns whether the operator has a property,
parsing it again if the corresponding attribute is dirty.
(WebCore::MathMLOperatorElement::childrenChanged): Make all properties dirty.
(WebCore::propertyFlagToAttributeName): helper function to map from flag to attribute name.
(WebCore::MathMLOperatorElement::parseAttribute): Make all properties dirty if the form
attribute changed. Make each property dirty when the corresponding attribute changed.
(WebCore::MathMLOperatorElement::flags): Deleted. Replaced with the finer hasProperty function.

  • mathml/MathMLOperatorElement.h: Define new structure, member and functions to handle

operator properties.

  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Move m_operatorFlags from
the base class to the derived class.

  • rendering/mathml/RenderMathMLFencedOperator.h: Ditto.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Ditto.
(WebCore::RenderMathMLOperator::hasOperatorFlag): Just call hasOperatorFlag from the
MathMLOperatorElement class.
(WebCore::RenderMathMLOperator::setOperatorProperties): We do not initialize m_operatorFlags
since it has been removed from the base class. We also do not parse attributes since this
has been moved to the MathMLOperatorElement class.
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute): Deleted.
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: Move m_operatorFlags from the base class to the

derived class, remove some parsing helper functions and update hasOperatorFlag to make it
overridable.

10:42 AM Changeset in webkit [204031] by andersca@apple.com
  • 4 edits
    28 adds in trunk/Source/WebCore

Freeze another bunch of Objective-C binding files
https://bugs.webkit.org/show_bug.cgi?id=160435

Reviewed by Alex Christensen.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMAbstractView.h: Added.
  • bindings/objc/DOMAbstractView.mm:
  • bindings/objc/DOMAbstractViewInternal.h: Added.
  • bindings/objc/DOMMediaList.h: Added.
  • bindings/objc/DOMMediaList.mm: Added.
  • bindings/objc/DOMMediaListInternal.h: Added.
  • bindings/objc/DOMNodeFilter.h: Added.
  • bindings/objc/DOMNodeIterator.h: Added.
  • bindings/objc/DOMNodeIterator.mm: Added.
  • bindings/objc/DOMNodeIteratorInternal.h: Added.
  • bindings/objc/DOMRange.h: Added.
  • bindings/objc/DOMRange.mm: Added.
  • bindings/objc/DOMRangeInternal.h: Added.
  • bindings/objc/DOMStyleSheet.h: Added.
  • bindings/objc/DOMStyleSheet.mm: Added.
  • bindings/objc/DOMStyleSheetInternal.h: Added.
  • bindings/objc/DOMStyleSheetList.h: Added.
  • bindings/objc/DOMStyleSheetList.mm: Added.
  • bindings/objc/DOMStyleSheetListInternal.h: Added.
  • bindings/objc/DOMTreeWalker.h: Added.
  • bindings/objc/DOMTreeWalker.mm: Added.
  • bindings/objc/DOMTreeWalkerInternal.h: Added.
  • bindings/objc/DOMXPathExpression.h: Added.
  • bindings/objc/DOMXPathExpression.mm: Added.
  • bindings/objc/DOMXPathExpressionInternal.h: Added.
  • bindings/objc/DOMXPathNSResolver.h: Added.
  • bindings/objc/DOMXPathResult.h: Added.
  • bindings/objc/DOMXPathResult.mm: Added.
  • bindings/objc/DOMXPathResultInternal.h: Added.
10:27 AM Changeset in webkit [204030] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[MathML] Use more auto for local variables
https://bugs.webkit.org/show_bug.cgi?id=160453

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-02
Reviewed by Darin Adler.

No new tests, behavior is unchanged.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::colSpan):
(WebCore::MathMLElement::rowSpan):
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::defaultEventHandler):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

10:03 AM Changeset in webkit [204029] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix build after r204014.

Unreviewed build fix.

  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):

10:02 AM Changeset in webkit [204028] by Chris Dumez
  • 32 edits in trunk

[WebIDL] Implement overload resolution algorithm
https://bugs.webkit.org/show_bug.cgi?id=160394

Reviewed by Darin Adler.

Source/WebCore:

Implement overload resolution algorithm:

This means that our support for operation overloading in our IDL is
now a lot more extensive than it used to be and is now compliant with
the Web IDL specification.

In particular, overloading should now work for a lot more parameter
types which means that:

  • We should be able to drop some custom bindings code in a follow-up patch.
  • We will be able to drop the [StrictTypeChecking] attribute which was a hack used to make overloading work for parameters of type DOMString.

Also, the order of the overloads in the IDL no longer impacts the
generated bindings code. It used to be that you needed to put the
overloads with the more specific parameter types first in order for the
generated bindings code to be somewhat correct.

No new tests, rebaselined bindings tests.

  • bindings/scripts/CodeGenerator.pm:

(IsStringOrEnumType):

  • bindings/scripts/CodeGeneratorJS.pm:

(IsNullableType):
(StripNullable):
(ComputeEffectiveOverloadSet):
(AreTypesDistinguishableForOverloadResolution):
(GetDistinguishingArgumentIndex):
(GetOverloadThatMatches):
(GenerateOverloadedFunction):

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

(WebCore::jsTestGlobalObjectInstanceFunctionEnabledAtRuntimeOperation):

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

(WebCore::jsTestObjPrototypeFunctionEnabledAtRuntimeOperation):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12): Deleted.
(WebCore::jsTestObjPrototypeFunctionTestPromiseOverloadedFunction2Promise): Deleted.

  • bindings/scripts/test/TestObj.idl:
  • dom/EventTarget.h:
  • dom/EventTarget.idl:
  • html/HTMLOptionsCollection.h:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.h:

(WebCore::HTMLSelectElement::add):

  • html/HTMLSelectElement.idl:

LayoutTests:

Update / Rebaseline existing test. There is no major behavior change.
We sometimes get a different exception message than we used to.

  • fast/canvas/canvas-clip-path-expected.txt:
  • fast/canvas/canvas-fill-path-expected.txt:
  • fast/canvas/canvas-path-addPath-expected.txt:
  • fast/canvas/canvas-path-isPointInPath-expected.txt:
  • fast/canvas/canvas-path-isPointInStroke-expected.txt:
  • fast/canvas/canvas-putImageData-expected.txt:
  • fast/canvas/canvas-putImageData.js:
  • fast/canvas/canvas-stroke-path-expected.txt:
  • fast/canvas/webgl/script-tests/texImageTest.js:
  • fast/canvas/webgl/texImageTest-expected.txt:
  • fast/dom/HTMLSelectElement/add-expected.txt:
  • fast/dom/HTMLSelectElement/add.html:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add.html:
  • fast/dom/incompatible-operations-expected.txt:
  • js/dom/select-options-add-expected.txt:
  • webaudio/audiobuffer-expected.txt:
  • webaudio/audiobuffer.html:
  • webgl/1.0.2/resources/webgl_test_files/conformance/textures/tex-image-with-invalid-data.html:
9:57 AM Changeset in webkit [204027] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Guard workaround in r203314 for only OSes which need it
https://bugs.webkit.org/show_bug.cgi?id=160440

Reviewed by Simon Fraser.

The workarond introduced in r203314 only needs to be applied on
certain OSes.

No new tests because there is no behavior change.

  • platform/text/mac/TextBoundaries.mm:

(WebCore::findNextWordFromIndex):

8:46 AM Changeset in webkit [204026] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Remove CachedResourceRequest initiatingDocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=160449

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

No change of behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Removing call to setInitiator.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setInitiator): Deleted.

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::initiatingDocumentLoader): Deleted.

8:37 AM Changeset in webkit [204025] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Disable Inline Caching on ARMv7 traditional until proper fix
https://bugs.webkit.org/show_bug.cgi?id=159759

Reviewed by Saam Barati.

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateInline):

8:15 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
6:22 AM Changeset in webkit [204024] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Update test expectations on Windows for many failing tests. These failures are tracked in
https://bugs.webkit.org/show_bug.cgi?id=160447.

  • platform/win/TestExpectations:
5:45 AM Changeset in webkit [204023] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Skip fetch API worker tests in Debug mode
https://bugs.webkit.org/show_bug.cgi?id=160448

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-02

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt: Rebasing

LayoutTests:

4:28 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:27 AM Changeset in webkit [204022] by fred.wang@free.fr
  • 10 edits in trunk/Source/WebCore

Move parsing of the form attribute to MathMLOperatorElement
https://bugs.webkit.org/show_bug.cgi?id=160239

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-28
Reviewed by Darin Adler.

We move the parsing of the mo@form attribute to the MathMLOperatorElement class. Note that
when the attribute is not explicit, the form may also be guessed by searching into the
operator dictionary. Hence we also start moving the determination of the default dictionary
properties. Moving the actual parsing of the corresponding attributes will be done in
follow-up commits.

No new tests, already covered by existing tests.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged): Make the form of operators dirty
if its siblings have changed.

  • mathml/MathMLOperatorDictionary.cpp:

(WebCore::MathMLOperatorDictionary::search): Merge old getEntry functions into one helper
function that returns an Optional<Entry>.
(WebCore::MathMLOperatorDictionary::getEntry): Deleted

  • mathml/MathMLOperatorDictionary.h: Declare MathMLOperatorDictionary::find.
  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::dictionaryProperty): We determine the operator form by
parsing the corresponding attribute or by using heuristics if that attribute is not
specified. We also read dictionary the corresponding dictionary properties.
(WebCore::MathMLOperatorElement::flags): Return the flags read from the dictionary.
(WebCore::MathMLOperatorElement::defaultLeadingSpace): Return the space read from the dictionary.
(WebCore::MathMLOperatorElement::defaultTrailingSpace): Return the space read from the dictionary.
(WebCore::MathMLOperatorElement::childrenChanged): Make the dictionary properties dirty.
(WebCore::MathMLOperatorElement::parseAttribute): Make the dictionary properties dirty when
the form changes.

  • mathml/MathMLOperatorElement.h: New member to store dictionary properties and expose them.
  • rendering/mathml/RenderMathMLFencedOperator.cpp:

(WebCore::RenderMathMLFencedOperator::setOperatorProperties): We implement the case specific
to anonymous mfenced operators here.

  • rendering/mathml/RenderMathMLFencedOperator.h: Move the m_operatorForm member here and

declare the overriden function setOperatorProperties.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorProperties): Simplify this code since the logic
has been moved to the element classes.
(WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: Remove setOperatorPropertiesFromOpDictEntry, make

members accessible to RenderMathMLFencedOperator and remove m_operatorForm.

2:43 AM Changeset in webkit [204021] by fred.wang@free.fr
  • 17 edits in trunk/Source/WebCore

Use Optional members to store parsed MathML attributes.
https://bugs.webkit.org/show_bug.cgi?id=160400

Patch by Frederic Wang <fwang.igalia.com> on 2016-08-02
Reviewed by Darin Adler.

Parsed MathML attributes are stored on the element classes using the memoize pattern to
minimize the number of parsing updates. Currently, a dirty flag for each member
indicate when it must be parsed again. We change this to wrap these members into an
Optional<T> container instead, where a null value indicates that the member is dirty.

No new tests, behavior is unchanged.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::cachedMathMLLength):
(WebCore::MathMLElement::cachedBooleanAttribute):
(WebCore::MathMLElement::parseMathVariantAttribute):
(WebCore::MathMLElement::specifiedDisplayStyle):
(WebCore::MathMLElement::specifiedMathVariant):

  • mathml/MathMLElement.h:
  • mathml/MathMLFractionElement.cpp:

(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):
(WebCore::MathMLFractionElement::parseAttribute):

  • mathml/MathMLFractionElement.h:
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::parseAttribute):

  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::specifiedDisplayStyle):
(WebCore::MathMLMathElement::parseAttribute):

  • mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::operatorText):

  • mathml/MathMLPaddedElement.cpp:

(WebCore::MathMLPaddedElement::parseAttribute):

  • mathml/MathMLPaddedElement.h:
  • mathml/MathMLScriptsElement.cpp:

(WebCore::MathMLScriptsElement::parseAttribute):

  • mathml/MathMLScriptsElement.h:
  • mathml/MathMLSpaceElement.cpp:

(WebCore::MathMLSpaceElement::parseAttribute):

  • mathml/MathMLSpaceElement.h:
  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute):

  • mathml/MathMLUnderOverElement.cpp:

(WebCore::MathMLUnderOverElement::parseAttribute):

  • mathml/MathMLUnderOverElement.h:
  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::resolveMathMLStyle):

  • rendering/mathml/MathMLStyle.h:
  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::mathVariant):
(WebCore::RenderMathMLToken::updateMathVariantGlyph):

1:07 AM Changeset in webkit [204020] by commit-queue@webkit.org
  • 8 edits
    5 adds in trunk

[Fetch API] Fetch promises should not reject or resolve when ActiveDOMObjects are being stopped
https://bugs.webkit.org/show_bug.cgi?id=160420

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • web-platform-tests/fetch/nosniff/worker-expected.txt: Added.

Source/WebCore:

Test: http/tests/fetch/fetch-in-worker-crash.html

Promises should not be rejected when FetchResponse/FetchRequest are stopped as ActiveDOMObject.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::cleanConsumePromise): Allowing to nullify the promise used to consume body.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::stop): Nullifying the body consume promise if any.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::stop): Nullifying the fetch promise if any.

LayoutTests:

  • TestExpectations:
  • http/tests/fetch/fetch-in-worker-crash-expected.txt: Added.
  • http/tests/fetch/fetch-in-worker-crash.html: Added.
  • http/tests/fetch/fetch-in-worker.js: Added.

(onmessage):

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
12:20 AM Changeset in webkit [204019] by commit-queue@webkit.org
  • 23 edits
    5 adds in trunk

[Fetch API] Add support to ReferrerPolicy
https://bugs.webkit.org/show_bug.cgi?id=160404

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/referrer-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/referrer-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/referrer-worker.html: Added.
  • web-platform-tests/fetch/api/basic/referrer.html: Added.
  • web-platform-tests/fetch/api/basic/referrer.js: Added.

(runTest):

  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:

(corsPreflightReferrer): fix infrastructure bug in test and fix expected referrer policy in default case.

  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/basic/referrer-worker.html

imported/w3c/web-platform-tests/fetch/api/basic/referrer.html

Refactored ThreadableLoader API to take more references.

Updated loading code in CachedResource to take into account referrer policy, that can be set by fetch API.
To enable correct handling of OriginWhenCrossOrigin policy, the computation of the cross-origin status of a request is
moved from ResourceLoader to CachedResource.

Referrer is passed to the loading code through HTTP headers.
This was triggering preflighting for Workers request as WorkerThreadableLoader was setting the referrer.
It is now done in DocumentThreadableLoader::loadRequest so that preflighting is done before setting the referrer.
Note that this referrer setting is only a way to pass a specific referrer value to the loading code.
CachedResource code will compute the actual referer value based on the referrer policy.
It might be good in the future to have a different way of conveying this information to CachedResource, maybe
through CachedResourceRequest.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Refactoring of ThreadableLoader API.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::internalRequest): Setting referrer if it has a specific value.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): Ractoring of ThreadableLoader API.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Set referrer in the preflight request if any.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously): Refactoring of ThreadableLoader API.
(WebCore::DocumentThreadableLoader::create): Ditto.
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::loadRequest): Ditto.

  • loader/DocumentThreadableLoader.h:

(WebCore::DocumentThreadableLoader::referrer): Storing referrer in case one is defined.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init): Removing of cross origin computation since it is done earlier in CachedResource.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create): Refactoring of ThreadableLoader API.
(WebCore::ThreadableLoader::loadResourceSynchronously): Ditto.

  • loader/ThreadableLoader.h:
  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::create): Ditto.
(WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper): Ditto.

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader): Ditto.
(WebCore::WorkerThreadableLoader::loadResourceSynchronously): Removing setting of referrer in header and passing
it as a parameter.
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Ditto.

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create): Refactoring of ThreadableLoader API.

  • loader/cache/CachedResource.cpp:

(WebCore::addAdditionalRequestHeadersToRequest): Computation of referrer based on referrer policy.
(WebCore::CachedResource::addAdditionalRequestHeaders): Ditto.
(WebCore::CachedResource::load): Computation of cross origin status.
(WebCore::CachedResource::varyHeaderValuesMatch):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::options):

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Refactoring of ThreadableLoader API.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Ditto.

12:19 AM Changeset in webkit [204018] by beidson@apple.com
  • 25 edits
    2 adds in trunk/Source

Refactor data passed along for a "GetRecord" request.
https://bugs.webkit.org/show_bug.cgi?id=160352

Reviewed by Tim Horton.

Source/WebCore:

No new tests (No behavior change).

Adding this new object lets us easily add new data passed along for GetRecord
requests going forward.

  • WebCore.xcodeproj/project.pbxproj:
  • CMakeLists.txt:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::getRecord):

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getRecord):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getRecord):

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::getRecord):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):

  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
  • Modules/indexeddb/shared/IDBGetRecordData.cpp: Added.

(WebCore::IDBGetRecordData::isolatedCopy):

  • Modules/indexeddb/shared/IDBGetRecordData.h: Added.

(WebCore::IDBGetRecordData::encode):
(WebCore::IDBGetRecordData::decode):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::getRecord):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

Source/WebKit2:

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::getRecord):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getRecord):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:

Aug 1, 2016:

11:51 PM Changeset in webkit [204017] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/JavaScriptCore

Merge r204010. rdar://problem/27534844

11:51 PM Changeset in webkit [204016] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203990. rdar://problem/27534844

11:51 PM Changeset in webkit [204015] by bshafiei@apple.com
  • 5 edits
    3 adds in branches/safari-602-branch

Merge r203985. rdar://problem/26310261

11:46 PM Changeset in webkit [204014] by commit-queue@webkit.org
  • 34 edits in trunk/Source/WebCore

[Fetch API] Pass directly FetchRequest fetch options to ThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160407

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-01
Reviewed by Sam Weinig.

No change of behavior.

Added a ResourceLoaderOptions constructor that takes a FetchOptions as input.
Removed setters and getters of ResourceLoaderOptions as it is a struct.
Updated member fields accordingly.

Updated code accordingly.
Removed explicit option setting if it is the same as the default value.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • css/CSSFontFaceSrcValue.cpp:

(WebCore::CSSFontFaceSrcValue::cachedFont):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::startPreflight):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::ResourceLoader):
(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::setDataBufferingPolicy):
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::didFinishLoadingOnePart):
(WebCore::ResourceLoader::cleanupForError):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
(WebCore::ResourceLoader::setSendCallbackPolicy):
(WebCore::ResourceLoader::shouldSniffContent):
(WebCore::ResourceLoader::shouldIncludeCertificateInfo):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::sendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::setSendLoadCallbacks): Deleted.
(WebCore::ResourceLoaderOptions::sniffContent): Deleted.
(WebCore::ResourceLoaderOptions::setSniffContent): Deleted.
(WebCore::ResourceLoaderOptions::dataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDataBufferingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::allowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::setAllowCredentials): Deleted.
(WebCore::ResourceLoaderOptions::securityCheck): Deleted.
(WebCore::ResourceLoaderOptions::setSecurityCheck): Deleted.
(WebCore::ResourceLoaderOptions::certificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCertificateInfoPolicy): Deleted.
(WebCore::ResourceLoaderOptions::contentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::setContentSecurityPolicyImposition): Deleted.
(WebCore::ResourceLoaderOptions::defersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setDefersLoadingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::cachingPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setCachingPolicy): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkRedirectionCrossOriginAccessControl):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::setDataBufferingPolicy):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::shouldSendResourceLoadCallbacks):
(WebCore::CachedResource::dataBufferingPolicy):
(WebCore::CachedResource::allowsCaching):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::canRequest):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::allowsCaching):

  • loader/cache/CachedResourceRequestInitiators.cpp:

(WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):

  • loader/cache/CachedResourceRequestInitiators.h:
  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponse):
(WebCore::ResourceLoader::didReceiveDataArray):

  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingSVGFilters):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::requestImageResource):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::loadFont):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::updateExternalDocument):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

11:42 PM Changeset in webkit [204013] by Carlos Garcia Campos
  • 31 edits
    1 move
    3 adds
    1 delete in trunk/Source

[GTK] Move the redirected XComposite window to the web process
https://bugs.webkit.org/show_bug.cgi?id=160389

Reviewed by Žan Doberšek.

Source/WebCore:

Add helper methods to PlatformDisplayX11 to query X extensions supported by the display.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

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

  • platform/graphics/x11/PlatformDisplayX11.h:

Source/WebKit2:

In the current code, the UI process creates the redirected window that the web process uses to render
accelerated contents. The redirected window is sent to the web process as native surface handle, and using
XDamage extension the UI process takes a pixmap of the redirected window to render into the widget when there
are updates. This requires several points of synchronization between UI and web processes. When the web view is
resized, the UI process first resizes the redirected window and then sends a new backing store ID to the web
process. The time between the redirected window is resized and the web process renders the new contents the UI
process keeps rendering the previous contents with the previous size in the new window with the new size. This
makes the resize process slow, and it produces rendering artifacts quite often. The redirected window is created
when the web view is realized, to be able to inherit the XVisual from the parent window, and the native window
handle is sent to the web process. The time until the window is realized, the web process doesn't have a context
to render into, so the UI process simply renders an empty page. When the web view is unrealized, for example if
the web view is reparented, the redirected window is destroyed, and a sync message is sent to the web process to
destroy the current gl context and stop drawing. This needs to happen synchronously, because the UI process
can't remove the redirected window until the web process has stopped rendering into it. This makes also the
reparenting process quite unstable and risky.
To all those synchronization points we now have to add the synchronization with the compositing thread when
using the threaded compositor. The threaded compositor made resizing, reparenting, etc. even worse. We can't
avoid the synchronization with the threaded compositor, but we can reduce the synchronization points and improve
the current ones by moving the redirected window to the web process. In this case is web process who creates the
redirected window, so we can be sure that it always has a valid native surface handle to render into. This means
we no longer need the IPC message to send the native surface handle from the UI process to the web process, nor
the sync message to destroy it either. This also means we no longer need to wait until the view is realized to
start rendering accelerated contents, and we don't need to stop when it's unrealized either. We don't really
need to inherit the XVisual from the parent window if the redirected window always uses always a RGBA visual
when available. That way we always render into a transparent window that is composed into the web view
widget. And when the web view is resized, we no longer need to destroy the GL context either, because we use the
same redirected window as the native handle, but create a new pixmap that is what we send to the UI process as
layer tree context ID. The layer tree context ID is already sent to the UI process by the drawing area as part
of the backing store update process, so we don't need any new IPC message for this. When the web view is
resized, the UI process sends a backing store state update message to the web process that updates its size,
relayouts and then renders the new contents, so that when the update backing store state reply gets to the UI
process, we already have a new pixmap with the new contents updated. This makes resizing smooth again, and
avoids flickering and rendering artifacts. And finally all this also prevents several race conditions that were
causing X errors and web process crashes.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::create): Make it possible to optionally pass a native surface handle for
compositing to the ThreadedCompositor contructor.
(WebKit::ThreadedCompositor::ThreadedCompositor): Initialize the native surface handle and make the scene active
after the thread initialization if we already have a valid handle.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::enterAcceleratedCompositingMode): Pass the layer tree context ID to the web view.
(WebKit::PageClientImpl::updateAcceleratedCompositingMode): Notify the web view about the update.
(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSetAcceleratedCompositingPixmap): Helper function to update the pixmap used to render the
accelerated contents.
(webkitWebViewBaseRealize): Remove the code to create the redirected window.
(webkitWebViewBaseUnrealize): Remove the code to destroy the redirected window.
(webkitWebViewBaseDispose): Reset the accelerated compositing pixmap.
(webkitWebViewRenderAcceleratedCompositingResults): Use the accelerated compositing pixmap surface.
(webkitWebViewBaseSizeAllocate): Remove the code to resize the redirected window.
(webkitWebViewBaseEnterAcceleratedCompositingMode): Update the accelerated compositing pixmap.
(webkitWebViewBaseUpdateAcceleratedCompositingMode): Ditto.
(webkitWebViewBaseExitAcceleratedCompositingMode): Reset the accelerated compositing pixmap.
(webkitWebViewBaseDidRelaunchWebProcess): Remove the code to send native surface handle to the web process.
(webkitWebViewBasePageClosed): Reset the accelerated compositing pixmap.
(_WebKitWebViewBasePrivate::updateViewStateTimerFired): Deleted.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/DrawingAreaProxy.messages.in:
  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): Handle the case when the layer tree context ID
changes without leaving the accelerated compositing mode, calling updateAcceleratedCompositingMode().
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Let the web view know we are leaving accelerated
compositing mode even when it's forced, since in case of web process crash we need to leave the accelerated
compositing mode in the UI process.
(WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode): This message was added only to prepare the
redirected window when the web process was about to enter accelerated compositing mode, so it's no longer needed.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebView.h:
  • UIProcess/gtk/RedirectedXCompositeWindow.cpp: Removed.
  • UIProcess/gtk/XDamageNotifier.cpp: Helper class to be notified about XDamage events.

(WebKit::XDamageNotifier::singleton):
(WebKit::XDamageNotifier::XDamageNotifier):
(WebKit::XDamageNotifier::add):
(WebKit::XDamageNotifier::remove):
(WebKit::XDamageNotifier::filterXDamageEvent):
(WebKit::XDamageNotifier::notify):

  • UIProcess/gtk/XDamageNotifier.h: Added.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::willEnterAcceleratedCompositingMode): Deleted.

  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode): Remove code to send
WillEnterAcceleratedCompositingMode message.
(WebKit::AcceleratedDrawingArea::setNativeSurfaceHandleForCompositing): This is now only used when building
without redirected XComposite window support.

  • WebProcess/WebPage/AcceleratedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost): Create a redirected window and
pass the window ID as native surface handle to the threaded compositor. Use the redirected window pixmap as
layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Destroy the redirected window.
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Resize the redirected window and
update the layer tree context.
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Create a redirected window and texture mapper that uses the window
ID as native surface handle. Use the redirected window pixmap as layer tree context.
(WebKit::LayerTreeHostGtk::makeContextCurrent): Use the redirected window as native handle.
(WebKit::LayerTreeHostGtk::invalidate): Destroy the redirected window.
(WebKit::LayerTreeHostGtk::sizeDidChange): Resize the redirected window and update the layer tree context.
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged): Ditto.
(WebKit::LayerTreeHostGtk::createTextureMapper): Helper function to create the texture mapper.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Use createTextureMapper().

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.cpp: Added.

(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):

  • WebProcess/WebPage/gtk/RedirectedXCompositeWindow.h: Renamed from Source/WebKit2/UIProcess/gtk/RedirectedXCompositeWindow.h.

(WebKit::RedirectedXCompositeWindow::window):
(WebKit::RedirectedXCompositeWindow::pixmap):

11:00 PM Changeset in webkit [204012] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:40 PM Changeset in webkit [204011] by Carlos Garcia Campos
  • 10 edits in trunk/Source/WebKit2

Database Process: ASSERTION FAILED: filePaths.size() == result.handles().size() with SANDBOX_EXTENSIONS disabled
https://bugs.webkit.org/show_bug.cgi?id=160398

Reviewed by Brady Eidson.

Same assert as in bug #160188, but this time in preregisterSandboxExtensionsIfNecessary.

  • DatabaseProcess/DatabaseProcess.cpp:
  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/DatabaseProcess.messages.in:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::handleGetResult):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::preregisterSandboxExtensionsForOptionallyFileBackedBlob):

  • UIProcess/Databases/DatabaseProcessProxy.cpp:
  • UIProcess/Databases/DatabaseProcessProxy.h:
  • UIProcess/Databases/DatabaseProcessProxy.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::preregisterSandboxExtensionsIfNecessary):

10:38 PM Changeset in webkit [204010] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

REGRESSION (r203990): JSC Debug test stress/arity-check-ftl-throw.js failing
https://bugs.webkit.org/show_bug.cgi?id=160438

Reviewed by Mark Lam.

In r203990 I fixed a bug where CommonSlowPaths.h/arityCheckFor() was basically failing at
catching stack overflow due to large parameter count. It would only catch regular old stack
overflow, like if the frame pointer was already past the limit.

This had a secondary problem: unfortunately all of our tests for what happens when you overflow
the stack due to large parameter count were not going down that path at all, so we haven't had
test coverage for this in ages. There were bugs in all tiers of the engine when handling this
case.

We need to be able to roll back the topCallFrame on paths that are meant to throw an exception
from the caller. Otherwise, we'd crash in StackVisitor because it would see a busted stack
frame. Rolling back like this "just works" except when the caller is the VM entry frame. I had
some choices here. I could have forced anyone who is rolling back to always skip VM entry
frames. They can't do it in a way that changes the value of VM::topVMEntryFrame, which is what
a stack frame roll back normally does, since exception unwinding needs to see the current value
of topVMEntryFrame. So, we have a choice to either try to magically avoid all of the paths that
look at topCallFrame, or give topCallFrame a state that unambiguously signals that we are
sitting right on top of a VM entry frame without having succeeded at making a JS call. The only
place that really needs to know is StackVisitor, which wants to start scanning at topCallFrame.
To signal this, I could have either made topCallFrame point to the real top JS call frame
without also rolling back topVMEntryFrame, or I could make topCallFrame == topVMEntryFrame. The
latter felt somehow cleaner. I filed a bug (https://bugs.webkit.org/show_bug.cgi?id=160441) for
converting topCallFrame to a void*, which would give us a chance to harden the rest of the
engine against this case.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::StackVisitor):
We may do ShadowChicken processing, which invokes StackVisitor, when we have topCallFrame
pointing at topVMEntryFrame. This teaches StackVisitor how to handle this case. I believe that
StackVisitor is the only place that needs to be taught about this at this time, because it's
one of the few things that access topCallFrame along this special path.

  • jit/JITOperations.cpp: Roll back the top call frame.
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL): Roll back the top call frame.

10:02 PM Changeset in webkit [204009] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[JSC][ARM64] Fix branchTest32/64 taking an immediate as mask
https://bugs.webkit.org/show_bug.cgi?id=160439

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-08-01
Reviewed by Filip Pizlo.

Source/JavaScriptCore:

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::branchTest64):

  • b3/air/AirOpcode.opcodes:

Fix the ARM64 codegen to lower BitImm64 without using a scratch register.

Source/WTF:

  • wtf/MathExtras.h:

(getLSBSet):
This was not working at all for MacroAssembler.
Since TrustedImm32/64 are signed integers, the arithmetic shift would
never get rid of the top bit and we get an infinite loop.

8:59 PM Changeset in webkit [204008] by commit-queue@webkit.org
  • 11 edits in trunk

_WKDownloadDelegate.didReceiveResponse should be called before decideDestinationWithSuggestedFilename
https://bugs.webkit.org/show_bug.cgi?id=160437
<rdar://problem/27578272>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-08-01
Reviewed by Brady Eidson.

Source/WebKit2:

This preserves the behavior of the NSURLConnection/NSURLDownload code path.
decideDestinationWithSuggestedFilename might need some information from the didReceiveResponse callback
in order to decide what the suggested filename should be.

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):

  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::setPendingDownloadID):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):

  • NetworkProcess/NetworkLoad.h:

(WebKit::NetworkLoad::pendingDownloadID):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::pendingDownloadCanceled):
(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

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

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:

(-[DownloadDelegate _download:didReceiveResponse:]):
(-[DownloadDelegate _download:decideDestinationWithSuggestedFilename:allowOverwrite:]):
(runTest):
Add a boolean to make sure that didReceiveResponse is called before decideDestinationWithSuggestedFilename.

6:50 PM Changeset in webkit [204007] by clopez@igalia.com
  • 2 edits in trunk/Tools

[Tools] The GDB backtrace report tool don't checks the gdb return code.
https://bugs.webkit.org/show_bug.cgi?id=160414

Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator._wait_for_corefile):

6:44 PM Changeset in webkit [204006] by akling@apple.com
  • 5 edits in trunk/Source/WebCore

Shrink MediaQuerySets to fit after parsing.
<https://webkit.org/b/160419>

Reviewed by Antti Koivisto.

Add shrinkToFit() helpers to MediaQuerySet and MediaQuery
and call it after parsing to remove extra capacity from their
internal vectors.

This reduces memory usage by 1.24MB on theverge.com.

  • css/CSSParser.cpp:

(WebCore::CSSParser::createMediaRule):

  • css/MediaList.cpp:

(WebCore::MediaQuerySet::parse):
(WebCore::MediaQuerySet::shrinkToFit):

  • css/MediaList.h:
  • css/MediaQuery.h:

(WebCore::MediaQuery::shrinkToFit):

6:39 PM Changeset in webkit [204005] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

<attachment> action label doesn't wrap, but needs to for some localizations
https://bugs.webkit.org/show_bug.cgi?id=160431
<rdar://problem/27526464>

Reviewed by Simon Fraser.

Test: fast/attachment/attachment-wrapping-action.html

  • rendering/RenderThemeIOS.mm:

(WebCore::AttachmentInfo::buildWrappedLines):
(WebCore::AttachmentInfo::AttachmentInfo):
(WebCore::AttachmentInfo::buildTitleLines): Deleted.
Rework buildTitleLines into buildWrappedLines so that we have a
generic way to add lines that wrap up to N lines and then center-truncate.

Make use of it for the action text, and follow the same rules/width as
the title text already does.

  • fast/attachment/attachment-wrapping-action-expected-mismatch.html: Added.
  • fast/attachment/attachment-wrapping-action.html: Added.

Add a test that ensures that the action label wraps by filling one with
non-breaking and breaking spaces, which will wrap onto two lines, and one
with just a single space, which will always fit in one line, and ensuring
that they do not match.

5:31 PM Changeset in webkit [204004] by Chris Dumez
  • 3 edits in trunk/LayoutTests

[iOS] Fix fast/events/touch/document-create-touch-list-ios.html
https://bugs.webkit.org/show_bug.cgi?id=160429

Reviewed by Ryosuke Niwa.

Fix several bugs in fast/events/touch/document-create-touch-list-ios.html:

  1. Use proper parameters to TouchEvent.initTouchEvent() so that it no longer throws.
  2. For the check testing passing bad parameters to createTouchList(), print PASS if it throws instead of FAIL since this is the expected behavior.
  • fast/events/touch/document-create-touch-list-ios-expected.txt:
  • fast/events/touch/script-tests/document-create-touch-list-ios.js:

(catch): Deleted.

5:27 PM Changeset in webkit [204003] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r204002.

2016-08-01 Alexey Proskuryakov <ap@apple.com>

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:19 PM Changeset in webkit [204002] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Sierra test expectations gardening for editing/input/password-echo-textnode.html.

  • platform/mac/TestExpectations:
5:11 PM Changeset in webkit [204001] by andersca@apple.com
  • 4 edits in trunk/Source

Source/WebCore:
Build fix.

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit/mac:
Bring back a file - it needs to be copied by WebCore.

  • MigrateHeaders.make:
4:51 PM Changeset in webkit [204000] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove another file.

  • MigrateHeaders.make:
4:47 PM Changeset in webkit [203999] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.45

New tag.

4:45 PM Changeset in webkit [203998] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Roll out r203799. rdar://problem/27556788

4:37 PM Changeset in webkit [203997] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove a file.

  • MigrateHeaders.make:
4:22 PM Changeset in webkit [203996] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

[B3] Fusing immediates into test instructions should work again
https://bugs.webkit.org/show_bug.cgi?id=160073

Reviewed by Sam Weinig.

When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.

This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).

This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!

Rolling this back in after fixing ARM64. The bug was that branchTest32|64 on ARM64 doesn't
actually support BitImm or BitImm64, at least not yet. Disabling that in AirOpcodes makes
this patch not a regression on ARM64. That change was reviewed by Benjamin Poulain.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

  • b3/B3LowerToAir.h:
  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):

4:21 PM Changeset in webkit [203995] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another build fix.

  • WebCore.xcodeproj/project.pbxproj:
4:04 PM Changeset in webkit [203994] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Don't set width:calc(100% - 0px); left:0px on console messages
https://bugs.webkit.org/show_bug.cgi?id=160428
<rdar://problem/27646033>

Reviewed by Timothy Hatcher.

Console messages inside console.group() are indented. Console messages outside of
console.group() aren't and there is no reason to set inline styles that do nothing
on each one of them.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):

3:51 PM Changeset in webkit [203993] by andersca@apple.com
  • 11 edits
    13 copies
    1 move
    4 adds in trunk/Source/WebCore

Freeze the last of the HTML Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160430

Reviewed by Tim Horton.

Also, remove a bunch of form validation related methods that were never exposed/used.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMBlob.h: Added.
  • bindings/objc/DOMBlob.mm: Added.
  • bindings/objc/DOMBlobInternal.h: Added.
  • bindings/objc/DOMDOMTokenList.h: Added.
  • bindings/objc/DOMDOMTokenList.mm: Added.
  • bindings/objc/DOMDOMTokenListInternal.h: Added.
  • bindings/objc/DOMFile.h: Added.
  • bindings/objc/DOMFile.mm: Added.
  • bindings/objc/DOMFileInternal.h: Added.
  • bindings/objc/DOMFileList.h: Added.
  • bindings/objc/DOMFileList.mm: Added.
  • bindings/objc/DOMFileListInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm:
  • bindings/objc/DOMHTMLFieldSetElement.mm:
  • bindings/objc/DOMHTMLInputElement.mm:
  • bindings/objc/DOMHTMLInputElementPrivate.h:
  • bindings/objc/DOMHTMLObjectElement.mm:
  • bindings/objc/DOMHTMLSelectElement.mm:
  • bindings/objc/DOMHTMLTextAreaElement.mm:
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h:
  • bindings/objc/DOMMediaError.h: Added.
  • bindings/objc/DOMMediaError.mm: Added.
  • bindings/objc/DOMMediaErrorInternal.h: Added.
  • bindings/objc/DOMTimeRanges.h: Added.
  • bindings/objc/DOMTimeRanges.mm: Added.
  • bindings/objc/DOMTimeRangesInternal.h: Added.
3:44 PM Changeset in webkit [203992] by Ryan Haddad
  • 3 edits
    1 copy
    1 add in trunk/LayoutTests

Land updated baseline for rdar://problem/27611932.

  • editing/mac/attributed-string/font-style-variant-effect-expected.txt:
  • platform/mac-elcapitan/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Copied from LayoutTests/editing/mac/attributed-string/font-style-variant-effect-expected.txt.
  • platform/mac-wk1/TestExpectations:
3:31 PM Changeset in webkit [203991] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Grid column resizer elements positioned incorrectly
https://bugs.webkit.org/show_bug.cgi?id=160311
<rdar://problem/27595586>

Reviewed by Brian Burg.

Perform a resize layout on a newly shown tab content view if the tab
browser was resized before showing the tab.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.layout):
Mark all recent tab content views (except for the current view)
as needing a resize layout.

(WebInspector.TabBrowser.prototype._tabBarItemSelected):
If the tab browser was resized while the view was hidden, update the
view's layout for the new content view container size.

3:20 PM Changeset in webkit [203990] by fpizlo@apple.com
  • 4 edits
    1 add in trunk

Rationalize varargs stack overflow checks
https://bugs.webkit.org/show_bug.cgi?id=160425

Reviewed by Michael Saboff.

  • ftl/FTLLink.cpp:

(JSC::FTL::link): AboveOrEqual 0 is a tautology. The code meant GreaterThanOrEqual, since the error code is -1.

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor): Use roundUpToMultipleOf(), which is almost certainly what we meant when we said %.

2:32 PM Changeset in webkit [203989] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Fix build.

  • WebCore.xcodeproj/project.pbxproj:
2:16 PM Changeset in webkit [203988] by andersca@apple.com
  • 5 edits
    173 adds in trunk/Source

Freeze all the DOMHTML* Objective-C bindings
https://bugs.webkit.org/show_bug.cgi?id=160424

Reviewed by Tim Horton.

Source/WebCore:

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLAnchorElement.h: Added.
  • bindings/objc/DOMHTMLAnchorElement.mm: Added.
  • bindings/objc/DOMHTMLAnchorElementInternal.h: Added.
  • bindings/objc/DOMHTMLAppletElement.h: Added.
  • bindings/objc/DOMHTMLAppletElement.mm: Added.
  • bindings/objc/DOMHTMLAppletElementInternal.h: Added.
  • bindings/objc/DOMHTMLAreaElement.h: Added.
  • bindings/objc/DOMHTMLAreaElement.mm: Added.
  • bindings/objc/DOMHTMLAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLBRElement.h: Added.
  • bindings/objc/DOMHTMLBRElement.mm: Added.
  • bindings/objc/DOMHTMLBRElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseElement.h: Added.
  • bindings/objc/DOMHTMLBaseElement.mm: Added.
  • bindings/objc/DOMHTMLBaseElementInternal.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.h: Added.
  • bindings/objc/DOMHTMLBaseFontElement.mm: Added.
  • bindings/objc/DOMHTMLBaseFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLBodyElement.h: Added.
  • bindings/objc/DOMHTMLBodyElement.mm: Added.
  • bindings/objc/DOMHTMLBodyElementInternal.h: Added.
  • bindings/objc/DOMHTMLButtonElement.h: Added.
  • bindings/objc/DOMHTMLButtonElement.mm: Added.
  • bindings/objc/DOMHTMLButtonElementInternal.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.h: Added.
  • bindings/objc/DOMHTMLCanvasElement.mm: Added.
  • bindings/objc/DOMHTMLCanvasElementInternal.h: Added.
  • bindings/objc/DOMHTMLCollection.h: Added.
  • bindings/objc/DOMHTMLCollection.mm: Added.
  • bindings/objc/DOMHTMLCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLDListElement.h: Added.
  • bindings/objc/DOMHTMLDListElement.mm: Added.
  • bindings/objc/DOMHTMLDListElementInternal.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.h: Added.
  • bindings/objc/DOMHTMLDirectoryElement.mm: Added.
  • bindings/objc/DOMHTMLDirectoryElementInternal.h: Added.
  • bindings/objc/DOMHTMLDivElement.h: Added.
  • bindings/objc/DOMHTMLDivElement.mm: Added.
  • bindings/objc/DOMHTMLDivElementInternal.h: Added.
  • bindings/objc/DOMHTMLDocument.h: Added.
  • bindings/objc/DOMHTMLDocument.mm: Added.
  • bindings/objc/DOMHTMLDocumentInternal.h: Added.
  • bindings/objc/DOMHTMLElement.h: Added.
  • bindings/objc/DOMHTMLElement.mm: Added.
  • bindings/objc/DOMHTMLElementInternal.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.h: Added.
  • bindings/objc/DOMHTMLEmbedElement.mm: Added.
  • bindings/objc/DOMHTMLEmbedElementInternal.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.h: Added.
  • bindings/objc/DOMHTMLFieldSetElement.mm: Added.
  • bindings/objc/DOMHTMLFieldSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLFontElement.h: Added.
  • bindings/objc/DOMHTMLFontElement.mm: Added.
  • bindings/objc/DOMHTMLFontElementInternal.h: Added.
  • bindings/objc/DOMHTMLFormElement.h: Added.
  • bindings/objc/DOMHTMLFormElement.mm: Added.
  • bindings/objc/DOMHTMLFormElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameElement.h: Added.
  • bindings/objc/DOMHTMLFrameElement.mm: Added.
  • bindings/objc/DOMHTMLFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.h: Added.
  • bindings/objc/DOMHTMLFrameSetElement.mm: Added.
  • bindings/objc/DOMHTMLFrameSetElementInternal.h: Added.
  • bindings/objc/DOMHTMLHRElement.h: Added.
  • bindings/objc/DOMHTMLHRElement.mm: Added.
  • bindings/objc/DOMHTMLHRElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadElement.h: Added.
  • bindings/objc/DOMHTMLHeadElement.mm: Added.
  • bindings/objc/DOMHTMLHeadElementInternal.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.h: Added.
  • bindings/objc/DOMHTMLHeadingElement.mm: Added.
  • bindings/objc/DOMHTMLHeadingElementInternal.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.h: Added.
  • bindings/objc/DOMHTMLHtmlElement.mm: Added.
  • bindings/objc/DOMHTMLHtmlElementInternal.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.h: Added.
  • bindings/objc/DOMHTMLIFrameElement.mm: Added.
  • bindings/objc/DOMHTMLIFrameElementInternal.h: Added.
  • bindings/objc/DOMHTMLImageElement.h: Added.
  • bindings/objc/DOMHTMLImageElement.mm: Added.
  • bindings/objc/DOMHTMLImageElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElement.h: Added.
  • bindings/objc/DOMHTMLInputElement.mm: Added.
  • bindings/objc/DOMHTMLInputElementInternal.h: Added.
  • bindings/objc/DOMHTMLInputElementPrivate.h: Added.
  • bindings/objc/DOMHTMLLIElement.h: Added.
  • bindings/objc/DOMHTMLLIElement.mm: Added.
  • bindings/objc/DOMHTMLLIElementInternal.h: Added.
  • bindings/objc/DOMHTMLLabelElement.h: Added.
  • bindings/objc/DOMHTMLLabelElement.mm: Added.
  • bindings/objc/DOMHTMLLabelElementInternal.h: Added.
  • bindings/objc/DOMHTMLLegendElement.h: Added.
  • bindings/objc/DOMHTMLLegendElement.mm: Added.
  • bindings/objc/DOMHTMLLegendElementInternal.h: Added.
  • bindings/objc/DOMHTMLLinkElement.h: Added.
  • bindings/objc/DOMHTMLLinkElement.mm: Added.
  • bindings/objc/DOMHTMLLinkElementInternal.h: Added.
  • bindings/objc/DOMHTMLMapElement.h: Added.
  • bindings/objc/DOMHTMLMapElement.mm: Added.
  • bindings/objc/DOMHTMLMapElementInternal.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.h: Added.
  • bindings/objc/DOMHTMLMarqueeElement.mm: Added.
  • bindings/objc/DOMHTMLMarqueeElementInternal.h: Added.
  • bindings/objc/DOMHTMLMediaElement.h: Added.
  • bindings/objc/DOMHTMLMediaElement.mm: Added.
  • bindings/objc/DOMHTMLMediaElementInternal.h: Added.
  • bindings/objc/DOMHTMLMenuElement.h: Added.
  • bindings/objc/DOMHTMLMenuElement.mm: Added.
  • bindings/objc/DOMHTMLMenuElementInternal.h: Added.
  • bindings/objc/DOMHTMLMetaElement.h: Added.
  • bindings/objc/DOMHTMLMetaElement.mm: Added.
  • bindings/objc/DOMHTMLMetaElementInternal.h: Added.
  • bindings/objc/DOMHTMLModElement.h: Added.
  • bindings/objc/DOMHTMLModElement.mm: Added.
  • bindings/objc/DOMHTMLModElementInternal.h: Added.
  • bindings/objc/DOMHTMLOListElement.h: Added.
  • bindings/objc/DOMHTMLOListElement.mm: Added.
  • bindings/objc/DOMHTMLOListElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElement.h: Added.
  • bindings/objc/DOMHTMLObjectElement.mm: Added.
  • bindings/objc/DOMHTMLObjectElementInternal.h: Added.
  • bindings/objc/DOMHTMLObjectElementPrivate.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.h: Added.
  • bindings/objc/DOMHTMLOptGroupElement.mm: Added.
  • bindings/objc/DOMHTMLOptGroupElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionElement.h: Added.
  • bindings/objc/DOMHTMLOptionElement.mm: Added.
  • bindings/objc/DOMHTMLOptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.h: Added.
  • bindings/objc/DOMHTMLOptionsCollection.mm: Added.
  • bindings/objc/DOMHTMLOptionsCollectionInternal.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.h: Added.
  • bindings/objc/DOMHTMLParagraphElement.mm: Added.
  • bindings/objc/DOMHTMLParagraphElementInternal.h: Added.
  • bindings/objc/DOMHTMLParamElement.h: Added.
  • bindings/objc/DOMHTMLParamElement.mm: Added.
  • bindings/objc/DOMHTMLParamElementInternal.h: Added.
  • bindings/objc/DOMHTMLPreElement.h: Added.
  • bindings/objc/DOMHTMLPreElement.mm: Added.
  • bindings/objc/DOMHTMLPreElementInternal.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.h: Added.
  • bindings/objc/DOMHTMLQuoteElement.mm: Added.
  • bindings/objc/DOMHTMLQuoteElementInternal.h: Added.
  • bindings/objc/DOMHTMLScriptElement.h: Added.
  • bindings/objc/DOMHTMLScriptElement.mm: Added.
  • bindings/objc/DOMHTMLScriptElementInternal.h: Added.
  • bindings/objc/DOMHTMLSelectElement.h: Added.
  • bindings/objc/DOMHTMLSelectElement.mm: Added.
  • bindings/objc/DOMHTMLSelectElementInternal.h: Added.
  • bindings/objc/DOMHTMLStyleElement.h: Added.
  • bindings/objc/DOMHTMLStyleElement.mm: Added.
  • bindings/objc/DOMHTMLStyleElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.h: Added.
  • bindings/objc/DOMHTMLTableCaptionElement.mm: Added.
  • bindings/objc/DOMHTMLTableCaptionElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.h: Added.
  • bindings/objc/DOMHTMLTableCellElement.mm: Added.
  • bindings/objc/DOMHTMLTableCellElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableColElement.h: Added.
  • bindings/objc/DOMHTMLTableColElement.mm: Added.
  • bindings/objc/DOMHTMLTableColElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableElement.h: Added.
  • bindings/objc/DOMHTMLTableElement.mm: Added.
  • bindings/objc/DOMHTMLTableElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.h: Added.
  • bindings/objc/DOMHTMLTableRowElement.mm: Added.
  • bindings/objc/DOMHTMLTableRowElementInternal.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.h: Added.
  • bindings/objc/DOMHTMLTableSectionElement.mm: Added.
  • bindings/objc/DOMHTMLTableSectionElementInternal.h: Added.
  • bindings/objc/DOMHTMLVideoElement.h: Added.
  • bindings/objc/DOMHTMLVideoElement.mm: Added.
  • bindings/objc/DOMHTMLVideoElementInternal.h: Added.

Source/WebKit/mac:

Don't migrate DOMHTMLEmbedElementPrivate.h - it was just an empty header.

  • MigrateHeaders.make:
2:06 PM Changeset in webkit [203987] by Chris Dumez
  • 4 edits
    1 delete in trunk

Make wpt server generate its certificates in layout test results folder
https://bugs.webkit.org/show_bug.cgi?id=160422

Patch by Youenn Fablet <youenn@apple.com> on 2016-08-01
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/_wpt_certs/.gitignore: Removed.
  • resources/_wpt_certs/localhost.key: Removed.
  • resources/_wpt_certs/localhost.pem: Removed.
  • resources/config.json:

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._copy_webkit_test_files): Setting certificate folder to layout tests results directory.

2:03 PM Changeset in webkit [203986] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Waterfall graph in Network tab shows too much whitespace/dead time
https://bugs.webkit.org/show_bug.cgi?id=160373

Reviewed by Timothy Hatcher.

Track the start and end time separate from the ruler to remove
leading/trailing whitespace in the graph. Also prevent network
record bars from being clipped.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
Set equal to the ruler start time.
(WebInspector.NetworkGridContentView.prototype.reset):
Reset start and end time.
(WebInspector.NetworkGridContentView.prototype.layout):
Set the initial values for ruler start/zero time if needed.
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Set the start time if needed.
Reduce debounce from 250ms to 150ms. This prevents the current time from
exceeding the end time by as wide a margin, while keeping the current
time "timer" from being restarted too frequently.

(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Update the ruler end time and schedule a layout.
Add padding equal to the time needed to draw a network bar at minimum width
to prevent bars from being clipped.

1:49 PM Changeset in webkit [203985] by Antti Koivisto
  • 5 edits
    3 adds in trunk

REGRESSION(r198943): drop-down menu navigation on fiddlevideo.com doesn't appear on iOS, works on OS X
https://bugs.webkit.org/show_bug.cgi?id=160406
Source/WebCore:

rdar://problem/26310261

Reviewed by Simon Fraser.

On iOS we generate synthetic mouse events from taps. Click event is generated on tap only if the move event
doesn't produce visible changes to the document. This is important to make certain types of drop down menus
work.

The information on mutations is passed via WKContentObservation side channel which is updated from varous parts
of the code. Newly visible elements are detected CheckForVisibilityChangeOnRecalcStyle during style resolution.
This got broken by the style refactoring because it assumes that renderer is mutated along with style computation.
However mutation is now a separate step performed by RenderTreeUpdater.

Fix by moving CheckForVisibilityChange to RenderTreeUpdater.

Test: fast/content-observation/click-event-suppression-on-content-change.html

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::Parent::Parent):
(WebCore::RenderTreeUpdater::updateElementRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderer):
(WebCore::elementImplicitVisibility):
(WebCore::CheckForVisibilityChange::CheckForVisibilityChange):
(WebCore::CheckForVisibilityChange::~CheckForVisibilityChange):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
(WebCore::Style::TreeResolver::pushParent):
(WebCore::Style::TreeResolver::resolveComposedTree):
(WebCore::Style::elementImplicitVisibility): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle): Deleted.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle): Deleted.

LayoutTests:

Reviewed by Simon Fraser.

This stuff has had zero test coverage. Adding a basic UIScript based test.

  • TestExpectations:
  • fast/content-observation/click-event-suppression-on-content-change-expected.txt: Added.
  • fast/content-observation/click-event-suppression-on-content-change.html: Added.
1:48 PM Changeset in webkit [203984] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] A video element that does not pause after exiting from fullscreen should be allowed to continue playing inline
https://bugs.webkit.org/show_bug.cgi?id=160416
<rdar://problem/27409854>

Reviewed by Alex Christensen.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen): If playback normally requires fullscreen but the
element was not paused when exiting from fullscreen, set the 'playsinline' attribute so we won't
force fullscreen if playback is paused and resumes, and set the 'controls' attribute so the
user can control playback.

1:34 PM Changeset in webkit [203983] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix.

  • WebCore.xcodeproj/project.pbxproj:
12:49 PM Changeset in webkit [203982] by eric.carlson@apple.com
  • 19 edits
    2 adds in trunk

[Mac][iOS] Adopt MediaRemote "seek to playback position"
https://bugs.webkit.org/show_bug.cgi?id=160405
<rdar://problem/27547583>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/remote-control-command-seek.html

  • Modules/webaudio/AudioContext.h: Update for didReceiveRemoteControlCommand argument change.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Support SeekToPlaybackPositionCommand.
Drive by fix, support Stop command.
(WebCore::HTMLMediaElement::supportsSeeking): New.

  • html/HTMLMediaElement.h:
  • platform/RemoteCommandListener.h:

(WebCore::RemoteCommandListenerClient::didReceiveRemoteControlCommand): Add command argument.
(WebCore::RemoteCommandListenerClient::supportsSeeking): New.
(WebCore::RemoteCommandListener::updateSupportedCommands): Ditto.
(WebCore::RemoteCommandListener::client): Ditto.

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSession::supportsSeeking): New, pass through to client.

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::setCurrentSession): Tell remote command listener to
update supported commands.
(WebCore::PlatformMediaSessionManager::currentSession): Make const.
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand): Add command argument.
(WebCore::PlatformMediaSessionManager::supportsSeeking): New, pass through to session.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/ios/RemoteCommandListenerIOS.h:

(WebCore::RemoteCommandListenerIOS::createWeakPtr):

  • platform/ios/RemoteCommandListenerIOS.mm:

(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Support changePlaybackPositionCommand.
(WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS): Remove seekToTime target.
(WebCore::RemoteCommandListenerIOS::updateSupportedCommands): Update changePlaybackPositionCommand.

  • platform/mac/MediaRemoteSoftLink.cpp:
  • platform/mac/MediaRemoteSoftLink.h:
  • platform/mac/RemoteCommandListenerMac.h:
  • platform/mac/RemoteCommandListenerMac.mm:

(WebCore::RemoteCommandListenerMac::updateSupportedCommands): New, split out of constructor.
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac): Split setup logic out into
updateSupportedCommands. Support MRMediaRemoteCommandSeekToPlaybackPosition. Don't assert when
receiving an unsupported command, it happens. Return error when a command isn't supported or
fails.

  • testing/Internals.cpp:

(WebCore::Internals::postRemoteControlCommand): Add command argument parameter. Support
seektoplaybackposition.

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

LayoutTests:

  • media/remote-control-command-seek-expected.txt: Added.
  • media/remote-control-command-seek.html: Added.
12:35 PM Changeset in webkit [203981] by andersca@apple.com
  • 4 edits
    6 adds in trunk/Source/WebCore

Freeze DOMHTMLTitleElement and DOMHTMLUListElement bindings
https://bugs.webkit.org/show_bug.cgi?id=160415

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/objc/DOMHTMLTitleElement.h: Added.
  • bindings/objc/DOMHTMLTitleElement.mm: Added.
  • bindings/objc/DOMHTMLTitleElementInternal.h: Added.
  • bindings/objc/DOMHTMLUListElement.h: Added.
  • bindings/objc/DOMHTMLUListElement.mm: Added.
  • bindings/objc/DOMHTMLUListElementInternal.h: Added.
11:51 AM Changeset in webkit [203980] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203976. rdar://problem/27580049

11:48 AM Changeset in webkit [203979] by sbarati@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Sub should be a Math IC
https://bugs.webkit.org/show_bug.cgi?id=160270

Reviewed by Mark Lam.

This makes Sub an IC like Mul and Add. I'm seeing the following
improvements of average Sub size on Unity and JetStream:

| JetStream | Unity 3D |

------| -------------

Old | 202 bytes | 205 bytes |

------| -------------

New | 134 bytes | 134 bytes |

------------------------------------

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::addJITSubIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithSub):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArithAddOrSub):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):
(JSC::JIT::emit_op_pow):

  • jit/JITMathIC.h:
  • jit/JITMathICForwards.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateInline):
(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):
(JSC::JITSubGenerator::isLeftOperandValidConstant):
(JSC::JITSubGenerator::isRightOperandValidConstant):
(JSC::JITSubGenerator::arithProfile):
(JSC::JITSubGenerator::didEmitFastPath): Deleted.
(JSC::JITSubGenerator::endJumpList): Deleted.
(JSC::JITSubGenerator::slowPathJumpList): Deleted.

11:45 AM Changeset in webkit [203978] by commit-queue@webkit.org
  • 5 edits in trunk/PerformanceTests

Add an option to run the MotionMark tests with classic tile size (512x512)
https://bugs.webkit.org/show_bug.cgi?id=160371

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-08-01
Reviewed by Darin Adler.

Setting the body to large size (3000x3000) and overflow to scroll forces
the classic tile size (512x512). This option does not affect the canvas
tests because the canvas is displayed on one tile regardless of its size.

  • Animometer/developer.html:
  • Animometer/resources/debug-runner/animometer.css:

(body.showing-test-container.tiles-big):
(body.showing-test-container.tiles-classic):

  • Animometer/resources/debug-runner/animometer.js:
  • Animometer/resources/runner/animometer.js:

(window.benchmarkController.startBenchmark):

11:30 AM Changeset in webkit [203977] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Update Apache configuration for Arch Linux
https://bugs.webkit.org/show_bug.cgi?id=160408

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-08-01
Reviewed by Ryosuke Niwa.

Arch Linux now ships Apache 2.4 and PHP 7, so the configuration file
used for the layout tests is updated to be compatible with the newer
versions.

  • http/conf/archlinux-httpd.conf: Updated.
11:05 AM WebKitGTK/2.12.x edited by Konstantin Tokarev
(diff)
11:00 AM Changeset in webkit [203976] by Antti Koivisto
  • 5 edits
    2 adds in trunk

REGRESSION (r196383): Drop down CSS menus not working on cnet.com, apmex.com
https://bugs.webkit.org/show_bug.cgi?id=160390

Reviewed by Simon Fraser.

Source/WebCore:

The case here is that we have a rule like

.enableHover:hover .child { ... }

and the "enableHover" class is added dynamically. The class change invalidation optimization code would figure out
that nothing needs to be invalidated as the class change doesn't make the rule match (since :hover doesn't match).

However for event driven hover to actually work the hover element needs to have its childrenAffectedByHover bit set.
This bits is set when the selector match is attempted, whether it actually matches or not. Since we optimized away
the style invalidation we never set the bit either.

Fix by treating :hover as always matching (==ignored) when collecting rules for invalidation optimization purposes.
Dynamic pseudo elements are already treated this way for similar reasons.

Test: fast/selectors/hover-invalidation-descendant-dynamic.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

Match always in CollectingRulesIgnoringVirtualPseudoElements mode (now slightly misnamed).

This mode is used for optimization purposes in StyleInvalidationAnalysis (which we care about here) and
StyleSharingResolver. The change is fine for both.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):

Same change for the slow path selector checker.

LayoutTests:

  • fast/selectors/hover-invalidation-descendant-dynamic-expected.txt: Added.
  • fast/selectors/hover-invalidation-descendant-dynamic.html: Added.
10:49 AM Changeset in webkit [203975] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Function Call on NULL Object
https://bugs.webkit.org/show_bug.cgi?id=160325

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-08-01
Reviewed by Darin Adler.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage): Changed removeAllWebNotificationPermissions() call to static function call.

  • WebKitTestRunner/InjectedBundle/TestRunner.h: Made all web-notification functions static.
10:49 AM Changeset in webkit [203974] by Darin Adler
  • 3 edits
    4 adds in trunk/Source/WebCore

[Cocoa] Freeze Objective-C bindings and stop autogenerating them: Step 1 - Convert a single file
https://bugs.webkit.org/show_bug.cgi?id=160386

Reviewed by Anders Carlsson.

No behavior change, no tests changed. I tested this locally by putting "#error" into the
files in the DerivedSources directory to make sure the build doesn't use those files even
if there are stale copies still sitting there.

Moving the bindings from WebCore to the legacy part of WebKit is something we also want to
do, but that is quite challenging to do one file at a time, so we will do that later.

For this first file, I did some hand edits to make the code in a the file a little less
peculiar. It's still awkward to have all those JSMainThreadNullState in there; should double
check that we really need them.

An important follow up step will be to cut down on the bindings. We have lots of bindings
that are only in the Private.h header, and it would be good to find a way to cut down on those.
And on iOS we would like eliminate these bindings entirely since they are not API there.

  • DerivedSources.make: Moved HTMLTextAreaElement from a list we use for both JavaScript and

Objective-C DOM bindings to a list we use only for JavaScript bindings.

  • WebCore.xcodeproj/project.pbxproj: Removed references to generated DOMHTMLTextAreaElement

files and instead reference the checked-in copies.

  • bindings/objc/DOMHTMLTextAreaElement.h: Added.
  • bindings/objc/DOMHTMLTextAreaElement.mm: Added.
  • bindings/objc/DOMHTMLTextAreaElementInternal.h: Added.
  • bindings/objc/DOMHTMLTextAreaElementPrivate.h: Added.
6:34 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:44 AM Changeset in webkit [203973] by fred.wang@free.fr
  • 8 edits
    2 copies in trunk/Source/WebCore

Introduce a RenderMathMLFencedOperator class
https://bugs.webkit.org/show_bug.cgi?id=160245

Patch by Frederic Wang <fwang@igalia.com> on 2016-08-01
Reviewed by Darin Adler.

We introduce a class to handle all the code specific to anonymous mfenced operators. In
particular many members of the RenderMathMLOperator class are going to be removed while
fixing bug 156537 but they may still need to stored and exposed in some way by mfenced
operators.

No new tests, behavior is unchanged.

  • CMakeLists.txt: Add RenderMathMLFencedOperator.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLFencedOperator): Function to allow casting to
RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLFenced.cpp: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator and use the new name updateOperatorContent.
(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::createMathMLOperator):
(WebCore::RenderMathMLFenced::makeFences):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLFenced.h: Use RenderMathMLFencedOperator instead of

RenderMathMLOperator.

  • rendering/mathml/RenderMathMLFencedOperator.cpp: New class derived from RenderMathMLOperator

(WebCore::RenderMathMLFencedOperator::RenderMathMLFencedOperator): Init form and operator
flags with the specified parameters and init the text content.
(WebCore::RenderMathMLFencedOperator::updateOperatorContent): We move the
RenderMathMLOperator::updateTokenContent function used by anonymous operators here. It is
renamed to avoid build errors due to conflicts with the other
RenderMathMLOperator::updateTokenContent function.

  • rendering/mathml/RenderMathMLFencedOperator.h: New class for anonymous mfenced operators

with getter and setter for the m_textContent. Also override RenderMathMLFencedOperator to
allow casting to RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Simplify the constructors. Some
initializations is moved in RenderMathMLOperator.h while other code is moved to
RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::textContent): No need to handle the anonymous case here since
it is handled in RenderMathMLFencedOperator.
(WebCore::RenderMathMLOperator::updateTokenContent): We delete the version used for anonymous
operators and move it into RenderMathMLFencedOperator.

  • rendering/mathml/RenderMathMLOperator.h: Make the class and some members overridable and

exposed to the derived RenderMathMLFencedOperator class. We also move initialization of some
members here.

12:28 AM Changeset in webkit [203972] by keith_miller@apple.com
  • 6 edits
    1 move
    1 add in trunk

We should not keep the JavaScript tests inside the Source/JavaScriptCore/ directory.
https://bugs.webkit.org/show_bug.cgi?id=160372

Rubber stamped by Geoffrey Garen.

This patch moves all the JavaScript tests from Source/JavaScriptCore/tests to
a new top level directory, JSTests. Having the tests in the Source directory
was both confusing and inconvenient for people that just want to checkout the
source code of WebKit. Since there is no other obvious place to put all the
JavaScript tests a new top level directory seemed the most sensible.

  • JSTests/: Copied from Source/JavaScriptCore/tests.
  • Source/JavaScriptCore/tests/: Deleted.
  • Scripts/import-test262-tests:
  • Scripts/run-javascriptcore-tests:
  • Scripts/update-javascriptcore-test-res:
12:02 AM Changeset in webkit [203971] by commit-queue@webkit.org
  • 21 edits in trunk/Source/WebCore

Reduce the number of ResourceRequest copies in DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=160338

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

No observable change of behavior.

Updating one of CachedResourceReques constructor to take a ResourceRequest&&.
This allows reducing a ResourceRequest copy in DocumentThreadableLoader.
Updating DocumentLoader and MediaResourceLoader accordingly (future optimization steps may look at making these
two loaders more efficient with regards to Resource Request).

Updating ThreadableLoader to take a ResourceRequest&&.
This allows reducing the number of copies in DocumentThreadableLoader.
Updating clients of ThreadableLoader accordingly.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • dom/Document.cpp:

(WebCore::Document::didLoadResourceSynchronously):

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

(WebCore::ScriptExecutionContext::didLoadResourceSynchronously):

  • dom/ScriptExecutionContext.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously):
(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::redirectReceived):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/DocumentThreadableLoader.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):
(WebCore::ThreadableLoader::loadResourceSynchronously):

  • loader/ThreadableLoader.h:
  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::CachedResourceRequest):

  • loader/cache/CachedResourceRequest.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Jul 31, 2016:

11:51 PM Changeset in webkit [203970] by bshafiei@apple.com
  • 13 edits
    2 adds in branches/safari-602-branch

Merge r203842. rdar://problem/27553464

11:51 PM Changeset in webkit [203969] by bshafiei@apple.com
  • 3 edits
    4 adds in branches/safari-602-branch

Merge r203931. rdar://problem/27317407

11:51 PM Changeset in webkit [203968] by bshafiei@apple.com
  • 5 edits
    2 adds in branches/safari-602-branch

Merge r203928. rdar://problem/27179484

11:51 PM Changeset in webkit [203967] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203924. rdar://problem/27355214

11:51 PM Changeset in webkit [203966] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r203916. rdar://problem/27594995

11:51 PM Changeset in webkit [203965] by bshafiei@apple.com
  • 11 edits
    2 adds in branches/safari-602-branch

Merge r203913. rdar://problem/27558003

11:51 PM Changeset in webkit [203964] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203909. rdar://problem/27078089

11:51 PM Changeset in webkit [203963] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203905. rdar://problem/27610246

11:51 PM Changeset in webkit [203962] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203799. rdar://problem/27556788

11:00 PM Changeset in webkit [203961] by commit-queue@webkit.org
  • 5 edits in trunk

Fetch Response built-ins should use @makeThisTypeError
https://bugs.webkit.org/show_bug.cgi?id=160290

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

Source/WebCore:

Covered by updated test.

Fixed type error checks.
Making use of @makeThisTypeError to have the correct error message.
Updating arrayBuffer, blob, json and text to return rejected promises in lieu of throwing
in case the 'this' value is not q Response object.

  • Modules/fetch/FetchResponse.js:

(clone): Updated instanceof check and making use of @makeThisTypeError.
(arrayBuffer): Ditto.
(blob): Ditto.
(formData): Ditto.
(json): Ditto.
(text): Ditto.

LayoutTests:

  • fetch/fetch-error-messages-expected.txt:
  • fetch/fetch-error-messages.html:
10:43 PM Changeset in webkit [203960] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Implement missing WebCore::moveFile() using GLib functions
https://bugs.webkit.org/show_bug.cgi?id=160363

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::moveFile): Function added.

7:13 PM Changeset in webkit [203959] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.44.0.1/Source

Versioning.

7:11 PM Changeset in webkit [203958] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.44.0.1

New tag.

5:37 PM Changeset in webkit [203957] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Should check Test262Error correctly
https://bugs.webkit.org/show_bug.cgi?id=159862

Reviewed by Saam Barati.

Test262Error in the harness does not have "name" property.
Rather than checking "name" property, peforming instanceof is better to check the class of the exception.

  • jsc.cpp:

(checkUncaughtException):

  • runtime/JSObject.h:
  • tests/test262.yaml:
4:36 PM Changeset in webkit [203956] by Chris Dumez
  • 29 edits in trunk/Source/WebCore

Drop [StrictTypeChecking] in cases where it is a no-op
https://bugs.webkit.org/show_bug.cgi?id=160387

Reviewed by Darin Adler.

Drop [StrictTypeChecking] in cases where it is a no-op. After r203949 & r203950,
[StrictTypeChecking] only has an impact when used on operation parameters of
string types and is currently used as a workaround for bugs in our overload
resolution algorithm.

  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpSender.idl:
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestTypedefs.idl:
  • html/canvas/ANGLEInstancedArrays.idl:
  • html/canvas/OESVertexArrayObject.idl:
  • html/canvas/WebGL2RenderingContext.idl:
  • html/canvas/WebGLDebugShaders.idl:
  • html/canvas/WebGLLoseContext.idl:
  • html/canvas/WebGLRenderingContextBase.idl:
  • svg/SVGAngle.idl:
  • svg/SVGColor.idl:
  • svg/SVGLength.idl:
  • svg/SVGLengthList.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumberList.idl:
  • svg/SVGPaint.idl:
  • svg/SVGPathSegList.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPointList.idl:
  • svg/SVGStringList.idl:
  • svg/SVGTransform.idl:
  • svg/SVGTransformList.idl:
1:02 PM Changeset in webkit [203955] by n_wang@apple.com
  • 9 edits
    2 adds in trunk

AX: Add a check for touch event listener on iOS accessibility object
https://bugs.webkit.org/show_bug.cgi?id=160388

Reviewed by Chris Fleizach.

Source/WebCore:

dispatchTouchEvent() is not working correctly within AXPress() sometimes. Need to
investigate it more in the future. Now, adding a check for the touch event listener
on the object's node so that iOS can handle dispatching the touch event instead.

Test: accessibility/ios-simulator/has-touch-event-listener.html

  • accessibility/AccessibilityObject.h:
  • accessibility/ios/AccessibilityObjectIOS.mm:

(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
(WebCore::AccessibilityObject::hasTouchEventListener):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(appendStringToResult):
(-[WebAccessibilityObjectWrapper _accessibilityHasTouchEventListener]):
(-[WebAccessibilityObjectWrapper _accessibilityValueIsAutofilled]):

Tools:

  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::boolAttributeValue):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::boolAttributeValue):

LayoutTests:

  • accessibility/ios-simulator/has-touch-event-listener-expected.txt: Added.
  • accessibility/ios-simulator/has-touch-event-listener.html: Added.
1:31 AM Changeset in webkit [203954] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK][Unix] Implement missing WebKit::SharedMemory::create() function
https://bugs.webkit.org/show_bug.cgi?id=160364

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2016-07-31
Reviewed by Carlos Garcia Campos.

The WebKit::SharedMemory::create() function is missing for the Unix
platform, which is also used by the GTK+ port. The latter is going
to need this in place to use the common content filtering code.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::accessModeMMap): Added helper function to convert a
SharedMemory::Protection value into flags useable with mmap().
(WebKit::SharedMemory::create): Added. Implementation reuses code
existing in the SharedMemory::allocate() function.
(WebKit::SharedMemory::allocate): Reimplemented in terms of
SharedMemory::create().

12:04 AM Changeset in webkit [203953] by Yusuke Suzuki
  • 11 edits
    1 copy
    3 adds in trunk/Source/JavaScriptCore

[ES6] Module binding can be exported by multiple names
https://bugs.webkit.org/show_bug.cgi?id=160343

Reviewed by Saam Barati.

ES6 Module can export the same local binding by using multiple names.
For example,

`
var value = 42;

export { value };
export { value as value2 };
`

Currently, we only allowed one local binding to be exported with one name. So, in the above case,
the local binding "value" is exported as "value2" and "value" name is not exported. This is wrong.

To fix this issue, we collect the correspondence (local name => exported name) to the local bindings
in the parser. Previously, we only maintained the exported local bindings in the parser. And utilize
this information when creating the export entries in ModuleAnalyzer.

And this patch also moves ModuleScopeData from the Scope object to the Parser class since exported
names should be managed per-module, not per-scope.

This change fixes several test262 failures.

(JSC::ModuleAnalyzer::exportVariable):
(JSC::ModuleAnalyzer::analyze):
(JSC::ModuleAnalyzer::exportedBinding): Deleted.
(JSC::ModuleAnalyzer::declareExportAlias): Deleted.

  • parser/ModuleAnalyzer.h:
  • parser/ModuleScopeData.h: Copied from Source/JavaScriptCore/parser/ModuleAnalyzer.h.

(JSC::ModuleScopeData::create):
(JSC::ModuleScopeData::exportedBindings):
(JSC::ModuleScopeData::exportName):
(JSC::ModuleScopeData::exportBinding):

  • parser/Nodes.cpp:

(JSC::ProgramNode::ProgramNode):
(JSC::ModuleProgramNode::ModuleProgramNode):
(JSC::EvalNode::EvalNode):
(JSC::FunctionNode::FunctionNode):

  • parser/Nodes.h:

(JSC::ModuleProgramNode::moduleScopeData):

  • parser/NodesAnalyzeModule.cpp:

(JSC::ExportDefaultDeclarationNode::analyzeModule):
(JSC::ExportNamedDeclarationNode::analyzeModule): Deleted.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::Parser):
(JSC::Parser<LexerType>::parseModuleSourceElements):
(JSC::Parser<LexerType>::parseVariableDeclarationList):
(JSC::Parser<LexerType>::createBindingPattern):
(JSC::Parser<LexerType>::parseFunctionDeclaration):
(JSC::Parser<LexerType>::parseClassDeclaration):
(JSC::Parser<LexerType>::parseExportSpecifier):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • parser/Parser.h:

(JSC::Parser::exportName):
(JSC::Parser<LexerType>::parse):
(JSC::ModuleScopeData::create): Deleted.
(JSC::ModuleScopeData::exportedBindings): Deleted.
(JSC::ModuleScopeData::exportName): Deleted.
(JSC::ModuleScopeData::exportBinding): Deleted.
(JSC::Scope::Scope): Deleted.
(JSC::Scope::setSourceParseMode): Deleted.
(JSC::Scope::moduleScopeData): Deleted.
(JSC::Scope::setIsModule): Deleted.

  • tests/modules/aliased-names.js: Added.
  • tests/modules/aliased-names/main.js: Added.

(change):

  • tests/stress/modules-syntax-error-with-names.js:

(export.Cocoa):
(SyntaxError.Cannot.export.a.duplicate.name):

  • tests/test262.yaml:

Jul 30, 2016:

6:08 PM Changeset in webkit [203952] by mark.lam@apple.com
  • 5 edits
    2 adds in trunk

Assertion failure while setting the length of an ArrayClass array.
https://bugs.webkit.org/show_bug.cgi?id=160381
<rdar://problem/27328703>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

When setting large length values, we're currently treating ArrayClass as a
ContiguousIndexingType array. This results in an assertion failure. This is
now fixed.

There are currently only 2 places where we create arrays with indexing type
ArrayClass: ArrayPrototype and RuntimeArray. The fix in JSArray:;setLength()
takes care of ArrayPrototype.

RuntimeArray already checks for the setting of its length property, and will
throw a RangeError. Hence, there's no change is needed for the RuntimeArray.
Instead, I added some test cases ensure that the check and throw behavior does
not change without notice.

  • runtime/JSArray.cpp:

(JSC::JSArray::setLength):

  • tests/stress/array-setLength-on-ArrayClass-with-large-length.js: Added.

(toString):
(assertEqual):

  • tests/stress/array-setLength-on-ArrayClass-with-small-length.js: Added.

(toString):
(assertEqual):

LayoutTests:

Test that RuntimeArrays will throw an error if we try to set its length.

  • platform/mac/fast/dom/wrapper-classes-objc.html:
  • platform/mac/fast/dom/wrapper-classes-objc-expected.txt:
5:46 PM Changeset in webkit [203951] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Unreviewed, rebaseline bindings tests.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_set_property): Deleted.
(webkit_dom_test_obj_get_property): Deleted.
(webkit_dom_test_obj_class_init): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::jsTestObjStrictFloat): Deleted.
(WebCore::setJSTestObjStrictTypeCheckingAttribute): Deleted.
(WebCore::setJSTestObjStrictFloat): Deleted.

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj strictTypeCheckingAttribute]): Deleted.
(-[DOMTestObj setStrictTypeCheckingAttribute:]): Deleted.
(-[DOMTestObj strictFloat]): Deleted.
(-[DOMTestObj setStrictFloat:]): Deleted.

5:29 PM Changeset in webkit [203950] by Chris Dumez
  • 18 edits in trunk

Enable strict type checking for Window dictionary members
https://bugs.webkit.org/show_bug.cgi?id=160356

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt:

Source/WebCore:

Enable strict type checking for Window dictionary members. Technically,
we should do strict type checking of all wrapper types but this patch
focuses on Window because it is common to pass a Window dictionary
member to Event constructors.

By strict type checking, I mean that we should throw a TypeError is
the value is not null/undefined and does not implement the Window
interface:

Firefox and Chrome comply with the specification already.

No new tests, updated / rebaselined existing tests.

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/events/constructors/composition-event-constructor-expected.txt:
  • fast/events/constructors/composition-event-constructor.html:
  • fast/events/constructors/focus-event-constructor-expected.txt:
  • fast/events/constructors/focus-event-constructor.html:
  • fast/events/constructors/keyboard-event-constructor-expected.txt:
  • fast/events/constructors/keyboard-event-constructor.html:
  • fast/events/constructors/mouse-event-constructor.html:
  • fast/events/constructors/ui-event-constructor-expected.txt:
  • fast/events/constructors/ui-event-constructor.html:
  • fast/events/constructors/wheel-event-constructor.html:
  • platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt:
  • platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt:
  • resources/js-test-pre.js:

Add a shouldThrowErrorName() utility function that is similar to shouldThrow()
but only checks the error name instead of the full error message. Checking
only the error name has the benefit of working across browsers and facilitating
refactoring of error messages.

5:23 PM Changeset in webkit [203949] by Chris Dumez
  • 43 edits in trunk

[WebIDL] Enable strict type checking for nullable attribute setters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160375

Reviewed by Darin Adler.

Source/WebCore:

Enable strict type checking for nullable attribute setters of wrapper types:

For such attributes, if the JS tries to assign a value that is not null /
undefined and does not have the expected wrapper type, then we now throw a
TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps identify
bugs in JavaScript code.

No new tests, updated existing tests.

  • Modules/webaudio/AudioBufferSourceNode.idl:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

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

(WebCore::setJSTestObjTestNullableObjAttr):
(WebCore::setJSTestObjMutablePoint):
(WebCore::setJSTestObjImmutablePoint):

  • bindings/scripts/test/TestObj.idl:
  • dom/Document.idl:
  • html/HTMLTableElement.idl:
  • svg/SVGAngle.idl:
  • svg/SVGAnimatedBoolean.idl:
  • svg/SVGAnimatedEnumeration.idl:
  • svg/SVGAnimatedInteger.idl:
  • svg/SVGAnimatedNumber.idl:
  • svg/SVGLength.idl:
  • svg/SVGMatrix.idl:
  • svg/SVGNumber.idl:
  • svg/SVGPathSegArcAbs.idl:
  • svg/SVGPathSegArcRel.idl:
  • svg/SVGPathSegCurvetoCubicAbs.idl:
  • svg/SVGPathSegCurvetoCubicRel.idl:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
  • svg/SVGPathSegCurvetoCubicSmoothRel.idl:
  • svg/SVGPathSegCurvetoQuadraticAbs.idl:
  • svg/SVGPathSegCurvetoQuadraticRel.idl:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
  • svg/SVGPathSegLinetoAbs.idl:
  • svg/SVGPathSegLinetoHorizontalAbs.idl:
  • svg/SVGPathSegLinetoHorizontalRel.idl:
  • svg/SVGPathSegLinetoRel.idl:
  • svg/SVGPathSegLinetoVerticalAbs.idl:
  • svg/SVGPathSegLinetoVerticalRel.idl:
  • svg/SVGPathSegMovetoAbs.idl:
  • svg/SVGPathSegMovetoRel.idl:
  • svg/SVGPoint.idl:
  • svg/SVGPreserveAspectRatio.idl:
  • svg/SVGRect.idl:

LayoutTests:

Rebaseline / update existing tests to reflect behavior change.

  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance-expected.txt:
  • fast/speechsynthesis/speech-synthesis-crash-on-bad-utterance.html:
  • webaudio/convolver-setBuffer-null-expected.txt:
  • webaudio/convolver-setBuffer-null.html:
2:12 PM Changeset in webkit [203948] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203947.

2016-07-30 Alexey Proskuryakov <ap@apple.com>

macOS Sierra test result gardening for media/video-loop.html.

  • platform/mac/TestExpectations:
2:08 PM Changeset in webkit [203947] by ap@apple.com
  • 2 edits in trunk/LayoutTests

macOS Sierra test result gardening for media/video-loop.html.

  • platform/mac/TestExpectations:
1:33 PM Changeset in webkit [203946] by ap@apple.com
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203945.

2016-07-30 Alexey Proskuryakov <ap@apple.com>

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
1:30 PM Changeset in webkit [203945] by ap@apple.com
  • 2 edits in trunk/LayoutTests

macOS Sierra test result gardening.

  • platform/mac-wk1/TestExpectations:
12:27 PM Changeset in webkit [203944] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Xcode] WebKit.framework is touched on incremental build even if nothing’s changed
https://bugs.webkit.org/show_bug.cgi?id=160383

Reviewed by Tim Horton.

  • WebKit2.xcodeproj/project.pbxproj: Removed the output files listed under the Copy iOS Sandbox Profiles for Manual Sandboxing script build phase, because it doesn’t produce those files on macOS. With no outputs listed, the script will still run every time, but the fact that it has run won’t trigger touching the framework.
12:27 PM Changeset in webkit [203943] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Synchronous preflight should check for successful responses
https://bugs.webkit.org/show_bug.cgi?id=159350

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

Source/WebCore:

Test: http/tests/xmlhttprequest/access-control-preflight-not-successful.html

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::doPreflight): Adding successful response check for synchronous
preflighting.

LayoutTests:

  • http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
  • http/tests/xmlhttprequest/access-control-preflight-not-successful.html: Added, not all tests are passing as CORS checks.

for redirections are not well supported for synchronous loading.

  • http/tests/xmlhttprequest/resources/status-404-without-body.php:
7:16 AM Changeset in webkit [203942] by Manuel Rego Casasnovas
  • 2 edits in trunk/Tools

Unreviewed: add myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:
1:35 AM Changeset in webkit [203941] by Chris Dumez
  • 24 edits in trunk

[WebIDL] Enable strict type checking for operations' nullable parameters of wrapper types
https://bugs.webkit.org/show_bug.cgi?id=160374

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:

Source/WebCore:

Enable strict type checking for operations' nullable parameters of
wrapper types to comply with the Web IDL specification:

For such parameters, if the JS passes a value that is not null /
undefined and does not have the expected wrapper type, then we now
throw a TypeError instead of silently converting the value to null.

This behavior is consistent with Chrome and Firefox. It also helps
identify bugs in JavaScript code.

No new tests, rebaselined existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

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

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapper):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalNullableWrapperIsNull):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalXPathNSResolver):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionConditionalMethod3): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5): Deleted.
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod): Deleted.
(WebCore::jsTestObjPrototypeFunctionOrange): Deleted.

LayoutTests:

Update / rebaseline existing tests to reflect behavior change. Also fix
several bugs in tests that became obvious now that we throw.

  • editing/execCommand/indent-pre-expected.txt:
  • editing/execCommand/indent-pre.html:
  • editing/selection/4895428-2.html:
  • editing/selection/move-by-word-visually-null-box.html:
  • fast/dom/DOMImplementation/detached-doctype.html:
  • fast/dom/MutationObserver/observe-attributes.html:
  • fast/dom/Node/contains-method-expected.txt:
  • fast/dom/Node/script-tests/contains-method.js:
  • fast/dom/Window/webkitConvertPoint.html:
  • fast/dom/adopt-node-crash-2.html:
  • fast/dom/incompatible-operations-expected.txt:
  • fast/dom/incompatible-operations.html:
  • fast/events/selectstart-by-arrow-keys.html:
  • fast/images/image-copy-memory-usage.html:
  • fast/xsl/xslt-processor-expected.txt:
  • http/tests/misc/webtiming-cross-origin-and-back1.html:
  • platform/mac/fast/dom/Window/webkitConvertPoint-expected.txt:
  • svg/custom/unicode-in-tspan-multi-svg-crash.html:

Jul 29, 2016:

11:39 PM Changeset in webkit [203940] by ap@apple.com
  • 4 edits in trunk/Tools

Undo r203939, and copy over a rule that clips the logos.

Sierra wasn't the only logo without transparency.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:
9:42 PM Changeset in webkit [203939] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

The Sierra asset at build.webkit.org/dashboard/images/Sierra*.png has a white background
https://bugs.webkit.org/show_bug.cgi?id=160377

Patch by Alan Sien Wei Hshieh <hshieh@apple.com> on 2016-07-29
Reviewed by Brian Weinstein.

Update assets to remove the white background and use a transparent background instead.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png:
8:22 PM Changeset in webkit [203938] by ddkilzer@apple.com
  • 12 edits in trunk/Source/ThirdParty/ANGLE

ANGLE: Fix global constructors and exit-time destructors
<https://webkit.org/b/160332>

Reviewed by Darin Adler.

  • Configurations/Base.xcconfig:
  • Add warning flags.
  • src/common/angleutils.cpp:

(FormatString):

  • src/common/angleutils.h:

(MakeStaticString):

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

(gl::g_sharedexp_max):
(gl::convertRGBFloatsTo999E5):

  • src/compiler/translator/ShaderLang.cpp:

(ShGetUniformRegisterMap):

  • src/libANGLE/Caps.cpp:

(gl::TextureCapsMap::get):

  • src/libANGLE/Device.cpp:

(egl::GetDeviceSet):

  • src/libANGLE/Display.cpp:

(egl::Display::getClientExtensionString):

  • src/libANGLE/formatutils.cpp:

(gl::BuildFormatMap):
(gl::BuildInternalFormatInfoMap):
(gl::GetInternalFormatMap):
(gl::BuildAllSizedInternalFormatSet):
(gl::GetSizedInternalFormat):
(gl::GetAllSizedInternalFormats):

  • src/libANGLE/validationES3.cpp:

(gl::BuildES3FormatSet):
(gl::ValidateTexImageFormatCombination):
(gl::BuildSizedEffectiveInternalFormatList):
(gl::BuildUnsizedEffectiveInternalFormatList):
(gl::GetEffectiveInternalFormat):
(gl::BuildValidES3CopyTexImageCombinations):
(gl::IsValidES3CopyTexImageCombination):

  • Fix global constructors and exit-time destructors.
7:02 PM Changeset in webkit [203937] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

TypedArray super constructor has some incompatabilities
https://bugs.webkit.org/show_bug.cgi?id=160369

Reviewed by Filip Pizlo.

This patch fixes the length proprety of the TypedArray super constructor.
Additionally, the TypedArray super constructor should no longer be callable.

Also, this patch fixes the expected result of some test262 tests.

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::finishCreation):
(JSC::constructTypedArrayView):
(JSC::JSTypedArrayViewConstructor::getCallData):

  • tests/test262.yaml:
6:25 PM Changeset in webkit [203936] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Ignore most check-webkit-style checks for ANGLE project
<https://webkit.org/b/160333>

Reviewed by Daniel Bates.

  • Scripts/webkitpy/style/checker.py: Ignore all checkers except:
  • No tabs.
  • No spaces at the end of lines.
  • No carriage returns (DOS line endings).
6:08 PM Changeset in webkit [203935] by Chris Dumez
  • 15 edits
    2 adds in trunk

Window's named properties should be exposed on a WindowProperties object in its prototype
https://bugs.webkit.org/show_bug.cgi?id=160354

Reviewed by Gavin Barraclough.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Window's named properties should be exposed on a WindowProperties object
in its prototype:

Firefox and Chrome both comply with the specification. However, WebKit
had no "WindowProperties" object in the Window prototype chain and the
named properties are exposed on the Window object itself.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess): Deleted.
(WebCore::JSDOMWindow::put): Deleted.
(WebCore::JSDOMWindow::putByIndex): Deleted.
(WebCore::JSDOMWindow::getEnumerableLength): Deleted.

  • bindings/js/JSDOMWindowProperties.cpp: Added.

(WebCore::jsDOMWindowPropertiesGetOwnPropertySlotNamedItemGetter):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):
(WebCore::JSDOMWindowProperties::getOwnPropertySlotByIndex):

  • bindings/js/JSDOMWindowProperties.h: Added.

(WebCore::JSDOMWindowProperties::create):
(WebCore::JSDOMWindowProperties::createStructure):
(WebCore::JSDOMWindowProperties::JSDOMWindowProperties):

  • bindings/js/JSDOMWindowShell.cpp:

(WebCore::JSDOMWindowShell::setWindow):

LayoutTests:

  • fast/dom/Window/es52-globals-expected.txt:

Update / Rebaseline test now that named properties are no longer reported as "own"
properties on the Window object. I have verified that the test gives the
same result in Firefox and Chrome.

  • fast/loader/window-clearing-expected.txt:

Rebaseline test that prints one more line because there is one more
object in Window's prototype chain.

  • http/tests/security/window-named-proto-expected.txt:
  • http/tests/security/window-named-valueOf-expected.txt:

Rebaseline 2 security tests that give slightly different output. The new
output is identical to the one in Firefox and Chrome. The tests are not
failing since they are not alert'ing content from the other frame.
The reason those tests were logging a security error is because we would
previously prevent named property access if the frame name conflicts with
a property name in the Window prototype, and we now no longer
differentiate this case.

5:54 PM Changeset in webkit [203934] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/xmlhttprequest/workers/methods-async.html as flaky on ios-simulator release WK2
https://bugs.webkit.org/show_bug.cgi?id=160368

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:53 PM Changeset in webkit [203933] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

5:39 PM Changeset in webkit [203932] by Ryan Haddad
  • 3 edits
    1 copy
    1 move in trunk/LayoutTests

Rebaseline fast/block/float/overhanging-tall-block.html for Sierra.

Unreviewed test gardening.

  • platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.png: Renamed from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.png.
  • platform/mac-elcapitan/fast/block/float/overhanging-tall-block-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/overhanging-tall-block-expected.txt.
  • platform/mac/TestExpectations:
  • platform/mac/fast/block/float/overhanging-tall-block-expected.txt:
5:30 PM Changeset in webkit [203931] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

Crash under HTMLMediaElement::{resolve, reject}PendingPlayPromises() when playback is interrupted
https://bugs.webkit.org/show_bug.cgi?id=160366
<rdar://problem/27317407>

Reviewed by Eric Carlson.

Source/WebCore:

Fixes a crash/assertion failure in DeferredWrapper::{resolve, rejectWithValue}() caused by a Promise
being settled twice. In particular, if a system interruption occurs when media.play() is invoked
the returned Promise may ultimately be settled twice upon cessation of the interruption.

A Promise can be settled (resolved) exactly once. When a system interruption occurs media
playback is paused and resumes on cessation of the interruption. Currently we also immediately
reject the Promise p retuned by media.play() if the interruption occurs during its invocation.
So, when we resume playback on cessation of an interruption we try to resolve p again. But a
Promise can only be resolved once and hence we violate the assertions that p has both a valid
reference to a JSPromiseDeferred object and a reference to the global object of the page.

Tests: media/non-existent-video-playback-interrupted.html

media/video-playback-interrupted.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::play): Modified to reject the Promise and return immediately if
playInternal() returns false.
(WebCore::HTMLMediaElement::playInternal): Treat an interruption as success and return true
so that HTMLMediaElement::play() adds the Promise to the end of the list of pending promises.
We treat an interruption as a success because we will resume playback (assuming the media
can be loaded and is well-formed) upon cessation of the interruption and therefore can either
fulfill or reject the Promise object returned by media.play().

LayoutTests:

  • media/non-existent-video-playback-interrupted-expected.txt: Added.
  • media/non-existent-video-playback-interrupted.html: Added.
  • media/video-playback-interrupted-expected.txt: Added.
  • media/video-playback-interrupted.html: Added.
5:13 PM Changeset in webkit [203930] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] HTMLMediaElement::updateVolume() calls MediaPlayer::volume() on null media player
https://bugs.webkit.org/show_bug.cgi?id=160353

Reviewed by Eric Carlson.

Using testing functions HTMLMediaElement::updateVolume() can be called on a <video> element
without an associated video. We should support this usage on iOS just as we do for non-iOS
ports.

The use of testing functions to call HTMLMediaElement::updateVolume() on a <video> element
without an associated video is demonstrated by the test LayoutTests/media/video-muted-after-setting-page-muted-state.html.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateVolume):

5:11 PM Changeset in webkit [203929] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27611932.

  • platform/mac-wk1/TestExpectations:
5:11 PM Changeset in webkit [203928] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

Media controls are not displayed for some autoplaying videos at certain browser dimensions
https://bugs.webkit.org/show_bug.cgi?id=160360
<rdar://problem/27179484>

Reviewed by Myles C. Maxfield.

Source/WebCore:

Previously, if a video's aspect ratio fell outside of the range [0.5, 1.8], we would
not consider it main content and would subsequently not show media controls for it.
This meant that on many websites that scale video dimensions to match the mainframe,
if the mainframe is too wide (e.g. full bounds on a widescreen display) we would not
consider the video to be main content. To fix this, we only consider aspect ratio to
be a requirement if the video does not already take up most of the space in the
mainframe.

Covered by two new TestWebKitAPI unit tests.

  • html/MediaElementSession.cpp:

(WebCore::isElementLargeRelativeToMainFrame):
(WebCore::isElementLargeEnoughForMainContent):

Tools:

Adds two tests verifying that videos may be considered main content as long as they
are large enough and cover a majority of the mainframe's viewport.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/full-size-autoplaying-video-with-audio.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/skinny-autoplaying-video-with-audio.html: Added.
5:07 PM Changeset in webkit [203927] by Ryan Haddad
  • 2 edits
    23 adds in trunk/LayoutTests

Test gardening on ios-simualtor after some media tests were unskipped in r203906.

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/media/audio-controls-rendering-expected.txt: Added.
  • platform/ios-simulator/media/audio-repaint-expected.txt: Added.
  • platform/ios-simulator/media/controls-strict-expected.txt: Added.
  • platform/ios-simulator/media/controls-styling-strict-expected.txt: Added.
  • platform/ios-simulator/media/controls-without-preload-expected.txt: Added.
  • platform/ios-simulator/media/media-controls-clone-expected.txt: Added.
  • platform/ios-simulator/media/track/track-cue-rendering-horizontal-expected.txt: Added.
  • platform/ios-simulator/media/track/track-cue-rendering-vertical-expected.txt: Added.
  • platform/ios-simulator/media/video-aspect-ratio-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-hide-on-click-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-localized-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-captions-trackmenu-sorted-expected.txt: Added.
  • platform/ios-simulator/media/video-controls-rendering-expected.txt: Added.
  • platform/ios-simulator/media/video-display-toggle-expected.txt: Added.
  • platform/ios-simulator/media/video-empty-source-expected.txt: Added.
  • platform/ios-simulator/media/video-layer-crash-expected.txt: Added.
  • platform/ios-simulator/media/video-no-audio-expected.txt: Added.
  • platform/ios-simulator/media/video-transformed-expected.txt: Added.
  • platform/ios-simulator/media/video-volume-slider-expected.txt: Added.
  • platform/ios-simulator/media/video-zoom-controls-expected.txt: Added.
  • platform/ios-simulator/media/video-zoom-expected.txt: Added.
5:07 PM Changeset in webkit [203926] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.44

New tag.

4:42 PM Changeset in webkit [203925] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Undefined Behavior in JSValue cast from NaN
https://bugs.webkit.org/show_bug.cgi?id=160322

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-07-29
Reviewed by Mark Lam.

JSValues can be constructed from doubles, and in some cases, are deliberately constructed with NaN values.

In circumstances where NaN is bound through the default JSValue constructor, however, an undefined conversion
to int32_t occurs. While the subsequent if statement should fail and construct the JSValue through the explicit
double constructor, given that the deliberate use of NaN is fairly common, it seems that the jsNaN() function
should immediately call the explicit double constructor both for efficiency and to prevent inadvertent
suppressing of any other bugs which may be instantiating a JSValue with a NaN double.

  • runtime/JSCJSValueInlines.h:

(JSC::jsNaN): Explicit double construction for NaN JSValues to avoid undefined behavior.

4:41 PM Changeset in webkit [203924] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not set negative rate on AVSampleBufferRenderSynchronizer.
https://bugs.webkit.org/show_bug.cgi?id=160326
<rdar://problem/27355214>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble):

LayoutTests:

Negative rate is not supported at the moment.

  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control-expected.txt: Added.
  • http/tests/media/media-source/mediasource-play-then-seek-back-with-remote-control.html: Added.
3:04 PM Changeset in webkit [203923] by msaboff@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Refactor DFG::Node::hasLocal() to accessesStack()
https://bugs.webkit.org/show_bug.cgi?id=160357

Reviewed by Filip Pizlo.

Refactoring in preparation for using register arguments for JavaScript calls.

Renamed Node::hasLocal() to Node::accessesStack() and changed all uses accordingly.
Also changed uses of Node::hasVariableAccessData() to accessesStack() where that
use guards stack operation logic associated with the Node's VariableAccessData.

The hasVariableAccessData() check now implies no more than the node has a
VariableAccessData and nothing about its use of that data to coordinate stack
accesses.

  • dfg/DFGGraph.cpp:

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

  • dfg/DFGLiveCatchVariablePreservationPhase.cpp:

(JSC::DFG::LiveCatchVariablePreservationPhase::handleBlock):

  • dfg/DFGMaximalFlushInsertionPhase.cpp:

(JSC::DFG::MaximalFlushInsertionPhase::treatRegularBlock):
(JSC::DFG::MaximalFlushInsertionPhase::treatRootBlock):

  • dfg/DFGNode.h:

(JSC::DFG::Node::containsMovHint):
(JSC::DFG::Node::accessesStack):
(JSC::DFG::Node::hasLocal): Deleted.

  • dfg/DFGPredictionInjectionPhase.cpp:

(JSC::DFG::PredictionInjectionPhase::run):

  • dfg/DFGValidate.cpp:
3:01 PM Changeset in webkit [203922] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

[macOS Sierra] Test gardening after r198859
https://bugs.webkit.org/show_bug.cgi?id=160358
<rdar://problem/26422274>

Reviewed by Zalan Bujtas.

RTL Scrollbars are not enabled on WK1, so this test should be marked in the
same way as all the other RTL scrollbars tests.

  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
1:58 PM Changeset in webkit [203921] by benjamin@webkit.org
  • 6 edits in trunk/Source/JavaScriptCore

[JSC] Use the same data structures for DFG and Air Liveness Analysis
https://bugs.webkit.org/show_bug.cgi?id=160346

Reviewed by Geoffrey Garen.

In Air, we minimized memory accesses during liveness analysis
with a couple of tricks:
-Use a single Sparse Set ADT for the live value of each block.
-Manipulate compact positive indices instead of hashing values.

This patch brings the same ideas to DFG.

This patch still uses the same fixpoint algorithms.
The reason is Edge's KillStatus used by other phases. We cannot
use a block-boundary liveness algorithm and update KillStatus
simultaneously. It's something I'll probably revisit at some point.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::forAllValues):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::dump):

  • dfg/DFGBasicBlock.h:
  • dfg/DFGGraph.h:

(JSC::DFG::Graph::maxNodeCount):
(JSC::DFG::Graph::nodeAt):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::setLiveValues):
(JSC::DFG::InPlaceAbstractState::endBasicBlock):

  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::LivenessAnalysisPhase::LivenessAnalysisPhase):
(JSC::DFG::LivenessAnalysisPhase::run):
(JSC::DFG::LivenessAnalysisPhase::processBlock):
(JSC::DFG::LivenessAnalysisPhase::addChildUse):
(JSC::DFG::LivenessAnalysisPhase::process): Deleted.

1:43 PM Changeset in webkit [203920] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Inactive/active network bar segments overlap when latency is zero
https://bugs.webkit.org/show_bug.cgi?id=160147
<rdar://problem/27516007>

Reviewed by Joseph Pecoraro.

TimelineRecordBar should hide the inactive segment when its duration
is less than the minimum displayable size. The active segment can
assume the whole width of the bar.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype.get secondsPerPixel):
Make secondsPerPixel available during TimelineRecordBars.refresh.

  • UserInterface/Views/TimelineRecordBar.js:

(WebInspector.TimelineRecordBar.prototype.refresh):
Check inactive duration against the minimum display size,
and add/remove DOM nodes and bar styles as needed.

1:29 PM Changeset in webkit [203919] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Remove a Sierra specific expectation for http/tests/navigation/forward-and-cancel.html,
we already have an identical one in platform/mac.

  • platform/mac-wk1/TestExpectations:
1:18 PM Changeset in webkit [203918] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

Skip some media tests that fail on iOS

  • platform/ios-simulator/TestExpectations:
12:46 PM Changeset in webkit [203917] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[macOS Sierra] Unskip new emoji group candidates tests
https://bugs.webkit.org/show_bug.cgi?id=160351
<rdar://problem/27430381>

Reviewed by Alexey Proskuryakov.

  • platform/mac/TestExpectations:
12:45 PM Changeset in webkit [203916] by mmaxfield@apple.com
  • 6 edits in trunk

Backspace key removes only the rainbow from the rainbow flag
https://bugs.webkit.org/show_bug.cgi?id=160349
<rdar://problem/27594995>

Reviewed by Dean Jackson.

Source/WebCore:

In r203330 I added support for new emoji group candidates. I accidentally
missed one of the new emoji code points.

Test: editing/deleting/delete-emoji.html

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

LayoutTests:

  • platform/mac/editing/deleting/delete-emoji-expected.txt:
  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
12:27 PM Changeset in webkit [203915] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Gardening: removed unused variable.

Not reviewed.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

12:19 PM Changeset in webkit [203914] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebCore

Merge r203904. rdar://problem/27610935

12:11 PM Changeset in webkit [203913] by n_wang@apple.com
  • 11 edits
    2 adds in trunk

AX: Media controls accessibility improvement
https://bugs.webkit.org/show_bug.cgi?id=160223
<rdar://problem/27558003>

Reviewed by Eric Carlson.

Source/WebCore:

Changes in this patch:

  1. Added a change observer for volume slider so that it will handle accessibility increment/decrement functions correctly.
  2. Update the timer div's aria-label when time changes.
  3. Added a keydown handler for left/right arrow adjusting the timeline, so that the value increment/decrement in a reasonable way.
  4. Changed the mute button's role to checkbox since it only has on/off states.

Test: media/media-controls-accessibility.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.updatePictureInPictureButton):
(Controller.prototype.timelineStepFromVideoDuration):
(Controller.prototype.incrementTimelineValue):
(Controller.prototype.decrementTimelineValue):
(Controller.prototype.showInlinePlaybackPlaceholderWhenSafe):
(Controller.prototype.handleTimelineMouseUp):
(Controller.prototype.handleTimelineKeyDown):
(Controller.prototype.handleMuteButtonClicked):
(Controller.prototype.handleMinButtonClicked):
(Controller.prototype.handleMaxButtonClicked):
(Controller.prototype.updateVideoVolume):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.handleVolumeSliderChange):
(Controller.prototype.handleVolumeSliderMouseDown):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):
(Controller.prototype.updateVolume):

LayoutTests:

  • accessibility/mac/video-volume-slider-accessibility-expected.txt:
  • accessibility/mac/video-volume-slider-accessibility.html:
  • accessibility/media-emits-object-replacement-expected.txt:
  • media/media-controls-accessibility-expected.txt: Added.
  • media/media-controls-accessibility.html: Added.
  • platform/efl/accessibility/media-element-expected.txt:
  • platform/efl/accessibility/media-emits-object-replacement-expected.txt:
  • platform/gtk/accessibility/media-element-expected.txt:
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt:
  • platform/mac/accessibility/media-element-expected.txt:
11:58 AM Changeset in webkit [203912] by Nikita Vasilyev
  • 5 edits in trunk/Source/WebInspectorUI

REGRESSION (r195456): Web Inspector: Changing tabs in Styles sidebar shouldn't change sidebar's width
https://bugs.webkit.org/show_bug.cgi?id=159646
<rdar://problem/27286338>

Reviewed by Brian Burg.

Remember sidebar width on per tab basis. For example, Node, Styles, and Layers sidebar panels in
Elements tab should all have the same width, but Resource sidebar panel in Debugger tab should NOT
share its width Element tab's sidebar.

TabContentView stores the width but TabBrowser manages saving and restoring it.
The same way collapsed sidebar state is handled.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar.prototype.set collapsed):
Don't change sidebar's width when sidebar panels change.

(WebInspector.Sidebar.prototype._recalculateWidth):
(WebInspector.Sidebar.prototype.set selectedSidebarPanel): Deleted.
Pass newWidth as an argument so it can be saved in TabBrowser.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel): Deleted.
(WebInspector.SidebarPanel.prototype.get savedWidth): Deleted.
(WebInspector.SidebarPanel.prototype.sizeDidChange): Deleted.
Remove the per sidebar panel width setting that was added in r195456.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._detailsSidebarWidthDidChange):
(WebInspector.TabBrowser.prototype._showDetailsSidebarPanelsForTabContentView):

  • UserInterface/Views/TabContentView.js:

(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
Store details sidebar width on TabContentView.

11:52 AM Changeset in webkit [203911] by mark.lam@apple.com
  • 2 edits in trunk/Source/WTF

Make StringView capable of being passed or returned in only 2 registers.
https://bugs.webkit.org/show_bug.cgi?id=160344

Reviewed by Geoffrey Garen.

We just need to #if out copy and move constructors and assignment operators.

After this change, the following test code:

JS_EXPORT_PRIVATE StringView returnStringView(StringView sv)
{

return sv;

}

... compiles to the following for x86_64:

ZN3JSC16returnStringViewEN3WTF10StringViewE:
000000000093fb20 pushq %rbp
000000000093fb21 movq %rsp, %rbp
000000000093fb24 movq %rdi, %rax Copy from arg word 0 to ret word 0.
000000000093fb27 movq %rsi, %rdx
Copy from arg word 1 to ret word 1.
000000000093fb2a popq %rbp
000000000093fb2b retq

... and this for arm64:

ZN3JSC16returnStringViewEN3WTF10StringViewE:
0000000000818504 ret arg word 0 and 1 are in the same regs as ret word 0 and 1.

  • wtf/text/StringView.h:

(WTF::StringView::StringView):
(WTF::StringView::~StringView):
(WTF::StringView::operator=):

11:47 AM Changeset in webkit [203910] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Remove an unused line of code.
https://bugs.webkit.org/show_bug.cgi?id=160350

Reviewed by Simon Fraser.

No new tests because there's no behavior change. Just removing dead code.

SVGInlineTextBox::paintText() instantiates a local variable selectionTextRun.
Thanks to analysis by Said Abou-Hallawa, we know that selectionTextRun
was introduced in https://trac.webkit.org/changeset/61393, but was later
rendered unused in https://trac.webkit.org/changeset/62099 because we
switched to using paintTextWithShadows() with the selectionStyle. Hence,
selectionTextRun can be removed.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintText):

11:45 AM Changeset in webkit [203909] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Crash with an Invalid Web Process IPC Message ID: WebPageProxy.AttributedStringForCharacterRangeCallback
https://bugs.webkit.org/show_bug.cgi?id=160334
<rdar://problem/27078089>

Reviewed by Alexey Proskuryakov.

The crash is most likely caused by an MESSAGE_CHECK failure in WebPageProxy::attributedStringForCharacterRangeCallback
which marks the currently dispatching message was invalid inside the macro.

Make sure we never fail this check by sending an empty EditingRange in attributedSubstringForCharacterRangeAsync when
the editing range we're about to send to the UIProcess is invalid in WebProcess.

Unfortunately, no new tests since we don't have any reproduction and I couldn't spot any code path in which we end up
with an invalid EditingRage here with multiple inspection of the relevant code.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):

11:40 AM Changeset in webkit [203908] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Assertion in NetworkGridContentView when updating data grid for the first time
https://bugs.webkit.org/show_bug.cgi?id=160330
<rdar://problem/27600905>

Reviewed by Brian Burg.

When the first grid node is added, a view layout and current time update
are scheduled. A view layout occurring before the current time is updated
should be skipped, since the ruler end time hasn't been set.

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView.prototype.layout):
Skip layout until current time is updated.
(WebInspector.NetworkGridContentView.prototype._update):
Remove unused variables startTime and endTime. Don't force a layout
if the elapsed time is zero.

11:38 AM Changeset in webkit [203907] by Csaba Osztrogonác
  • 3 edits
    1 delete in trunk/Source

Remove PassRef.h after r177259
https://bugs.webkit.org/show_bug.cgi?id=160348

Reviewed by Andreas Kling.

Source/WebKit/win:

  • WebCoreSupport/WebVisitedLinkStore.h:

Source/WTF:

  • wtf/PassRef.h: Removed.
10:54 AM Changeset in webkit [203906] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Unskip some media tests on iOS when run in WebKitTestRunner

As a step towards running the various media tests on iOS, unskip LayoutTests/media
when run in WebKitTestRunner in the iOS Simulator. Incorporate the reasons we skip some
of the iOS tests from r189372. For now continue to skip LayoutTest/media when run in
DumpRenderTree in the iOS Simulator as many tests crash and are otherwise flaky. Further
investigation is required.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:49 AM Changeset in webkit [203905] by Wenson Hsieh
  • 2 edits in trunk/Tools

Add TestWebKitAPI support for interacting with media controls
https://bugs.webkit.org/show_bug.cgi?id=160342
<rdar://problem/27610246>

Reviewed by Beth Dakin.

Adds support for testing interaction with some media controls, as well as a basic test
verifying that media control teardown after interaction does not result in a crash.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[WKWebView mouseDownAtPoint:]):
(-[WKWebView performAfterLoading:]):
(TestWebKitAPI::TEST):

10:47 AM Changeset in webkit [203904] by eric.carlson@apple.com
  • 5 edits in trunk/Source/WebCore

Change internal AVCaptureDeviceType typedef name
https://bugs.webkit.org/show_bug.cgi?id=160345
<rdar://problem/27610935>

Reviewed by Dean Jackson.

  • platform/mediastream/mac/AVAudioCaptureSource.mm:

(WebCore::AVAudioCaptureSource::create): AVCaptureDeviceType -> AVCaptureDeviceTypedef
(WebCore::AVAudioCaptureSource::AVAudioCaptureSource): Ditto.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::AVCaptureDeviceManager::captureDeviceList): Ditto.
(WebCore::shouldConsiderDeviceInDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::refreshCaptureDeviceList): Ditto.
(WebCore::AVCaptureDeviceManager::createMediaSourceForCaptureDeviceWithConstraints): Ditto.
(WebCore::AVCaptureDeviceManager::deviceConnected): Ditto.
(WebCore::AVCaptureDeviceManager::deviceDisconnected): Ditto.
(-[WebCoreAVCaptureDeviceManagerObserver deviceDisconnected:]): Ditto.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::globaVideoCaptureSerialQueue): Ditto.
(WebCore::AVMediaCaptureSource::AVMediaCaptureSource): Ditto.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::create): Ditto.
(WebCore::AVVideoCaptureSource::AVVideoCaptureSource): Ditto.

10:38 AM Changeset in webkit [203903] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

color-gamut media query returns incorrect results
https://bugs.webkit.org/show_bug.cgi?id=160166
<rdar://problem/27537577>

Reviewed by Darin Adler.

While I was unable to reproduce the originator's issue,
we communicated via email and it might have been related
to a customized color space calibration on an external
display.

Anyway, I took this opportunity to update to use the
more appropriate API for detection on macOS Sierra.

Covered by the existing fast/media/mq-color-gamut.html test.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor): Use NSScreen canRepresentDisplayGamut.

10:19 AM Changeset in webkit [203902] by commit-queue@webkit.org
  • 4 edits in trunk

Crash Log Clobbering on Unbound Crashes
https://bugs.webkit.org/show_bug.cgi?id=160198
<rdar://problem/27472618>

Patch by Jonathan Bedard <Jonathan Bedard> on 2016-07-29
Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/system/crashlogs.py:

(CrashLogs): Fix header order.

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.output_filename): Only remove file extension if it is clearly a file extension.

10:00 AM Changeset in webkit [203901] by commit-queue@webkit.org
  • 5 edits
    4 adds in trunk

HTMLVideoElement with MediaStream src shows paused image when all video tracks are disabled
https://bugs.webkit.org/show_bug.cgi?id=160222
<rdar://problem/27557313>

Patch by George Ruan <gruan@apple.com> on 2016-07-29
Reviewed by Eric Carlson.

Source/WebCore:

Tests: fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html

fast/mediastream/MediaStream-video-element-video-tracks-disabled.html

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Change criteria to enqueue a
Sample Buffer to the AVSampleBufferDisplayLayer to allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::shouldEnqueueVideoSampleBuffer): Allow an initial frame to be shown.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::flushAndRemoveVideoSampleBuffers): Removes all buffers from the
AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Make the AVSampleBufferDisplayLayer's background black.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Remove all buffers from the AVSampleBufferDisplayLayer
when state of MediaPlayerPrivateMediaStreamAVFObjC is changed to None of PaintItBlack.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updatePausedImage): Updates paused image.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Calls updatePausedImage.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext): Allow an initial frame to be painted to canvas.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-expected.html: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html: Added. Checks

that the video frames display captured media if all video tracks were disabled and then a single
video track is re-enabled. This test also checks that an initial frame is painted to
canvas if the video has not yet been played.

  • fast/mediastream/MediaStream-video-element-video-tracks-disabled.html: Added. Reference tests the

frames of the video to be black, since the canvas is painted black regardless of the state of the video frames
if displayMode of MediaPlayerPrivateMediaStreamAVFObjC is PaintItBlack.

  • platform/mac-wk2/TestExpectations: MediaStream-video-element-video-tracks-disabled.html fails on El

Capitan due to incorrect behavior of AVSampleBufferDisplayLayer's API call flushAndRemoveImage.

7:12 AM Changeset in webkit [203900] by commit-queue@webkit.org
  • 16 edits in trunk

[Fetch API] Activate credentials mode
https://bugs.webkit.org/show_bug.cgi?id=160292

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies.js: Fixin otherRemote computation.

(corsCookies): ensuring cookie clean-up is done in case of error before going to the next test.

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt:

Source/WebCore:

Covered by updated and rebased tests.

Previously the allowCredentials option was computed by DocumentThreadableLoader clients.
This option is really similar to the credentials flag in the fetch specification and should be handled at lower levels.
In the future, it might be good to retire that option.

In case of Omit mode, we need to explicitely disable cookies in DocumentThreadableLoader.
This should be updated so that ResourceLoader does it, depending on credential flag being set or not.

Updated DocumentThreadableLoader clients to only use FetchOptions::Credentials.
This allows to link code more easely to specification.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): Ditto.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Computing allowCredentials from FetchOptions::Credentials.
(WebCore::DocumentThreadableLoader::loadRequest): Enabling cookie only if allowed to use credentials. This is in
particular useful for FetchOptions::Credentials::Omit mode.

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Removing use of allowCredentials option. Using FetchOptions::Credentials instead.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.

  • xml/XMLHttpRequest.cpp: Ditto.

(WebCore::XMLHttpRequest::createRequest):

7:00 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
4:08 AM Changeset in webkit [203899] by commit-queue@webkit.org
  • 18 edits
    4 copies
    1 delete in trunk

CrossOrigin preflight checker should compute the right Access-Control-Request-Headers value
https://bugs.webkit.org/show_bug.cgi?id=160028

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.js:

(corsNoPreflight): fixing bugs in that test and adding new test to cover mime type checking that should ignore case.

  • web-platform-tests/fetch/api/cors/cors-preflight-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight.html:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:

(corsPreflight): Adding safe headers to the request and checking more precisely sent Access-Control-Request-Headers header value.

Source/WebCore:

Covered by updated test.

Computing Access-Control-Request-Headers value according https://fetch.spec.whatwg.org/#cors-preflight-fetch:

  • Remove safe headers
  • lowercase header names
  • sort lexicographically header names

The only difference is that we keep separating headers with ', ' instead of ',' as per the spec.
Also, some headers that might be safe are still marked as unsafe (DPR, Downlink...).

Moved setting of Origin header after preflighting, consistently with fetch spec.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest): Implementing new computation of Access-Control-Request-Headers.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): Removing call to updateRequestForAccessControl (which sets Origin header value).
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Adding call to updateRequestForAccessControl.
(WebCore::DocumentThreadableLoader::preflightSuccess): Ditto.

  • platform/network/HTTPParsers.cpp:

(WebCore::isCrossOriginSafeRequestHeader): Helper routine to implement https://fetch.spec.whatwg.org/#cors-safelisted-request-header.

  • platform/network/HTTPParsers.h:

LayoutTests:

Rebasing regular tests. Also updating skipped worker tests.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker-expected.txt: Added.
  • platform/mac/TestExpectations:
3:49 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:58 AM Changeset in webkit [203898] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Update for contributors.json
https://bugs.webkit.org/show_bug.cgi?id=160294

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2016-07-29

  • Scripts/webkitpy/common/config/contributors.json:
12:59 AM Changeset in webkit [203897] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, ByValInfo is only used in JIT enabled environments
https://bugs.webkit.org/show_bug.cgi?id=158908

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::stronglyVisitStrongReferences):

12:37 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:21 AM Changeset in webkit [203896] by fred.wang@free.fr
  • 6 edits in trunk/Source/WebCore

Parse the operator text on the MathMLOperatorElement class.
https://bugs.webkit.org/show_bug.cgi?id=160241

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-29
Reviewed by Darin Adler.

The text of the MathML operators is important to determine form or dictionary properties and
hence provide default values when no explicit attributes are privided. Since that text only
depends on the MathML DOM content, it makes sense to move its parsing into
MathMLOperatorElement. Anonymous operators created by the mfenced elements still need to be
handled specially and this will be true for all the operator properties that can just be
determined in MathMLOperatorElement. Hence in a follow-up patch we will introduce a class
to move all the code specific to mfenced in a class derived from RenderMathMLOperator while
we continue to move the corresponding code for non-anonymous into MathMLOperatorElement.

No new tests, behavior is unchanged.

  • mathml/MathMLOperatorElement.cpp: Include header for hyphenMinus/minusSign characters.

(WebCore::MathMLOperatorElement::parseOperatorText): Move that code from rebuildTokenContent
(WebCore::MathMLOperatorElement::operatorText): Helper function to get the cached text.
(WebCore::MathMLOperatorElement::childrenChanged): Make the cached text dirty.

  • mathml/MathMLOperatorElement.h: Update defitions and add a member for the operator text.
  • mathml/MathMLTextElement.h: Make childrenChanged overridable.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::element): Helper function to cast to a MathMLOperatorElement.
(WebCore::RenderMathMLOperator::textContent): Helper function to call
MathMLOperatorElement::operatorText or fallback to m_textContent for anonymous operators.
m_textContent and this special case can be moved into a derived class later.
(WebCore::RenderMathMLOperator::setOperatorProperties): Call textContent().
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Ditto.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Remove the string parameter and the
parsing of the operator text.
(WebCore::RenderMathMLOperator::updateTokenContent): Call textContent(). The special function
for anonymous operators also parses the text content but this could be moved into a derived
class later.
(WebCore::RenderMathMLOperator::shouldAllowStretching): Call textContent().
(WebCore::RenderMathMLOperator::useMathOperator): Ditto.
(WebCore::RenderMathMLOperator::RenderMathMLOperator): No need to initialize m_textContent
as it is not used anymore for non-anonymous renderers.

  • rendering/mathml/RenderMathMLOperator.h: Update definitions and call textContent().
12:15 AM Changeset in webkit [203895] by Yusuke Suzuki
  • 33 edits
    1 add in trunk/Source/JavaScriptCore

JSC::Symbol should be hash-consed
https://bugs.webkit.org/show_bug.cgi?id=158908

Reviewed by Filip Pizlo.

Previously, SymbolImpls held by symbols represent identity of symbols.
When we check the equality between symbols, we need to load SymbolImpls of symbols and compare them.

This patch performs hash-consing onto the symbols. We cache symbols in per-VM's SymbolImpl-keyed WeakGCMap.
When creating a new symbol from SymbolImpl, we first query to this map and reuse the previously created symbol
if it is found. This ensures that one-on-one correspondence between SymbolImpl and symbol. So now, we can use
pointer-comparison to query the equality of symbols.

This change drops SymbolImpl loads when checking the equality. Furthermore, we can use DFG CheckCell to symbol
when we would like to ensure that the given value is the expected symbol. This cleans up GetByVal's symbol-keyd
caching. Then, we changed CheckIdent to CheckStringIdent since it only checks the string case now. The symbol
case is handled by CheckCell.

Additionally, this patch also cleans up Map / Set implementation since we can use the logic for JSCell to symbols.

The performance effects in the related benchmarks are the followings.

baseline patch

bigswitch-indirect-symbol-or-undefined 85.6214+-1.0063 63.0522+-0.8615 definitely 1.3579x faster
bigswitch-indirect-symbol 84.9653+-0.6258 80.4900+-0.8008 definitely 1.0556x faster
fold-put-by-val-with-symbol-to-multi-put-by-offset

9.4396+-0.3726 9.2941+-0.3311 might be 1.0157x faster

inlined-put-by-val-with-symbol-transition

49.5477+-0.2401 ? 49.7533+-0.3369 ?

get-by-val-with-symbol-self-or-proto 11.9740+-0.0798 ? 12.1706+-0.2723 ? might be 1.0164x slower
get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple

4.1364+-0.0841 4.0872+-0.0925 might be 1.0120x faster

put-by-val-with-symbol 11.3709+-0.0223 11.3613+-0.0264
get-by-val-with-symbol-proto-or-self 11.8984+-0.0706 ? 11.9030+-0.0787 ?
polymorphic-put-by-val-with-symbol 31.4176+-0.0558 31.3825+-0.0447
implicit-bigswitch-indirect-symbol 61.3115+-0.6577 58.0098+-0.1212 definitely 1.0569x faster
get-by-val-with-symbol-bimorphic-check-structure-elimination-simple

3.3139+-0.0565 2.9947+-0.0732 definitely 1.1066x faster

get-by-val-with-symbol-chain-from-try-block

2.2316+-0.0179 2.2137+-0.0210

get-by-val-with-symbol-bimorphic-check-structure-elimination

10.6031+-0.2216 10.0939+-0.1977 definitely 1.0504x faster

get-by-val-with-symbol-check-structure-elimination

8.5576+-0.1521 7.7107+-0.1308 definitely 1.1098x faster

put-by-val-with-symbol-slightly-polymorphic

3.1957+-0.0538 2.9181+-0.0708 definitely 1.0951x faster

put-by-val-with-symbol-replace-and-transition

11.8253+-0.0757 11.6590+-0.0351 definitely 1.0143x faster

<geometric> 13.3911+-0.0527 12.7376+-0.0457 definitely 1.0513x faster

  • bytecode/ByValInfo.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::stronglyVisitStrongReferences):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(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::hasUidOperand):

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileSymbolEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleSymbolEquality):
(JSC::DFG::SpeculativeJIT::compileCheckStringIdent):
(JSC::DFG::SpeculativeJIT::extractStringImplFromBinarySymbols): Deleted.
(JSC::DFG::SpeculativeJIT::compileCheckIdent): Deleted.
(JSC::DFG::SpeculativeJIT::compileSymbolUntypedEquality): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent): Deleted.
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID): Deleted.

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

(JSC::tryGetByValOptimize):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):
(JSC::JIT::emitByValIdentifierCheck):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):
(JSC::JIT::emitIdentifierCheck): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emitPutByValWithCachedId):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::dumpInContextAssumingStructure):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::equalSlowCaseInline):
(JSC::JSValue::strictEqualSlowCaseInline): Deleted.

  • runtime/JSFunction.cpp:

(JSC::JSFunction::setFunctionName):

  • runtime/MapData.h:
  • runtime/MapDataInlines.h:

(JSC::JSIterator>::clear): Deleted.
(JSC::JSIterator>::find): Deleted.
(JSC::JSIterator>::add): Deleted.
(JSC::JSIterator>::remove): Deleted.
(JSC::JSIterator>::replaceAndPackBackingStore): Deleted.

  • runtime/Symbol.cpp:

(JSC::Symbol::finishCreation):
(JSC::Symbol::create):

  • runtime/Symbol.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • tests/stress/symbol-equality-over-gc.js: Added.

(shouldBe):
(test):

12:13 AM Changeset in webkit [203894] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203851. rdar://problem/27299339

12:13 AM Changeset in webkit [203893] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203825. rdar://problem/27578447

12:12 AM Changeset in webkit [203892] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203793. rdar://problem/27572612

12:12 AM Changeset in webkit [203891] by bshafiei@apple.com
  • 2 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203790. rdar://problem/27328525

12:12 AM Changeset in webkit [203890] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203789. rdar://problem/27574519

12:12 AM Changeset in webkit [203889] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203780. rdar://problem/27569255

12:12 AM Changeset in webkit [203888] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203801. rdar://problem/26102954

12:12 AM Changeset in webkit [203887] by bshafiei@apple.com
  • 5 edits
    4 adds in branches/safari-602-branch

Merge r203764. rdar://problem/27434423

12:12 AM Changeset in webkit [203886] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203775. rdar://problem/23325160

12:12 AM Changeset in webkit [203885] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203755. rdar://problem/23325160

12:12 AM Changeset in webkit [203884] by bshafiei@apple.com
  • 16 edits
    2 adds in branches/safari-602-branch

Merge r203743. rdar://problem/23325160

12:12 AM Changeset in webkit [203883] by bshafiei@apple.com
  • 24 edits in branches/safari-602-branch

Merge r203855. rdar://problem/27557968

12:12 AM Changeset in webkit [203882] by bshafiei@apple.com
  • 28 edits
    2 adds in branches/safari-602-branch

Merge r203752. rdar://problem/27557968

12:12 AM Changeset in webkit [203881] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203746. rdar://problem/27527151

12:12 AM Changeset in webkit [203880] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203741. rdar://problem/27480873

12:12 AM Changeset in webkit [203879] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203737. rdar://problem/21090897

12:12 AM Changeset in webkit [203878] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203724. rdar://problem/27536113

12:12 AM Changeset in webkit [203877] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch

Merge r203711. rdar://problem/27279453

12:11 AM Changeset in webkit [203876] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203706. rdar://problem/27457941

12:11 AM Changeset in webkit [203875] by bshafiei@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r203698. rdar://problem/26986673

12:11 AM Changeset in webkit [203874] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Tools

Merge r203700. rdar://problem/27010112

12:11 AM Changeset in webkit [203873] by bshafiei@apple.com
  • 3 edits
    2 moves
    1 add
    1 delete in branches/safari-602-branch

Merge r203695. rdar://problem/27010112

12:11 AM Changeset in webkit [203872] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203694. rdar://problem/27220338

12:11 AM Changeset in webkit [203871] by bshafiei@apple.com
  • 7 edits
    3 adds in branches/safari-602-branch

Merge r203690. rdar://problem/26668526

12:11 AM Changeset in webkit [203870] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebKit2

Merge r203687. rdar://problem/27399998

12:11 AM Changeset in webkit [203869] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203683. rdar://problem/27525634

12:11 AM Changeset in webkit [203868] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebInspectorUI

Merge r203673. rdar://problem/27517481

12:11 AM Changeset in webkit [203867] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203671. rdar://problem/27409315

12:11 AM Changeset in webkit [203866] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203669. rdar://problem/27285070

12:11 AM Changeset in webkit [203865] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203667. rdar://problem/27506489

12:11 AM Changeset in webkit [203864] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebInspectorUI

Merge r203636. rdar://problem/27431121

12:11 AM Changeset in webkit [203863] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebKit2

Merge r203635. rdar://problem/27505943

12:11 AM Changeset in webkit [203862] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source

Merge r203631. rdar://problem/24606557

12:11 AM Changeset in webkit [203861] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebKit2

Merge r203630. rdar://problem/27504958

12:11 AM Changeset in webkit [203860] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch

Merge r203629. rdar://problem/27438936

12:11 AM Changeset in webkit [203859] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r203622. rdar://problem/27495748

Note: See TracTimeline for information about the timeline view.