Timeline



Feb 15, 2018:

9:27 PM Changeset in webkit [228552] by fpizlo@apple.com
  • 21 edits
    2 adds in trunk/Source/JavaScriptCore

Objects that contain dangerous things should be allocated far away from objects that can do OOB
https://bugs.webkit.org/show_bug.cgi?id=182843

Reviewed by Saam Barati.

To complete our object distancing plan, we need to put objects that can contain unpoisoned data
far away from objects that cannot. Objects referenceable from JSValues cannot contain
unpoisoned data, but auxiliary data can. This further divides auxiliary data that is meant for
storing mostly JSValues from data that is meant for storing anything.

This is achieved by having three SecurityKinds that are used for MarkedBlock selection and
zeroing sort of the same way SecurityOriginToken already was.

This change shouldn't make anything slower. If anything, it will be a small speed-up because it
removes some cases of MarkedBlock zeroing since we don't need to zero blocks used for two of
the SecurityKinds.

  • Sources.txt:
  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfile::initializeProfile):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::addBlock):

  • heap/BlockDirectory.h:
  • heap/CellAttributes.cpp:

(JSC::CellAttributes::dump const):

  • heap/CellAttributes.h:

(JSC::CellAttributes::CellAttributes):

  • heap/LocalAllocator.cpp:

(JSC::LocalAllocator::allocateSlowCase):
(JSC::LocalAllocator::tryAllocateWithoutCollecting):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::Handle::didAddToDirectory):
(JSC::MarkedBlock::Handle::associateWithOrigin): Deleted.

  • heap/MarkedBlock.h:
  • heap/SecurityKind.cpp: Added.

(WTF::printInternal):

  • heap/SecurityKind.h: Added.
  • runtime/JSCellInlines.h:

(JSC::JSCell::subspaceFor):

  • runtime/JSDestructibleObjectHeapCellType.cpp:

(JSC::JSDestructibleObjectHeapCellType::JSDestructibleObjectHeapCellType):

  • runtime/JSObject.h:

(JSC::JSObject::subspaceFor):

  • runtime/JSSegmentedVariableObjectHeapCellType.cpp:

(JSC::JSSegmentedVariableObjectHeapCellType::JSSegmentedVariableObjectHeapCellType):

  • runtime/JSStringHeapCellType.cpp:

(JSC::JSStringHeapCellType::JSStringHeapCellType):

  • runtime/Symbol.h:

(JSC::Symbol::subspaceFor):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/JSWebAssemblyCodeBlockHeapCellType.cpp:

(JSC::JSWebAssemblyCodeBlockHeapCellType::JSWebAssemblyCodeBlockHeapCellType):

8:27 PM Changeset in webkit [228551] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Resources loaded from service workers are not downloadable
https://bugs.webkit.org/show_bug.cgi?id=182848

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-15
Reviewed by Chris Dumez.

Source/WebKit:

Downloads are not supporting resources loaded through service worker.
As a temporary solution, we will let network process handle it.
Note that this would not work if the URL can only be loaded through service worker.
Note also that for navigation loads, if the content type is the default one (application/octet-stream) we are overriding it to
text/html as we do not support mime sniffing yet from service worker responses.
This might interfere with automatic downloads from navigation.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

LayoutTests:

  • http/tests/workers/service/resources/download-binary.php: Added.
  • http/tests/workers/service/resources/service-worker-download-worker.js: Added.
  • http/tests/workers/service/service-worker-download.https-expected.txt: Added.
  • http/tests/workers/service/service-worker-download.https.html: Added.
7:28 PM Changeset in webkit [228550] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[RenderTreeBuilder] parent.Render*::addChild() cleanup
https://bugs.webkit.org/show_bug.cgi?id=182842
<rdar://problem/37585524>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation):

  • rendering/updating/RenderTreeBuilderMathML.cpp:

(WebCore::RenderTreeBuilder::MathML::makeFences):
(WebCore::RenderTreeBuilder::MathML::insertChild):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::insertChild):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::insertChild):

7:08 PM Changeset in webkit [228549] by Megan Gardner
  • 7 edits in trunk/Source

Support scrolling for non-editable web-selection and start autoscroll when near screen edges
https://bugs.webkit.org/show_bug.cgi?id=182815

Source/WebCore:

Reviewed by Tim Horton.

Adjust the position we are autoscrolling to so that when we are close to an edge, we will start autoscrolling
while we are still inside the view. Autoscrolling still happens when you drag past the edge of a view.

No new tests (This is difficult to test in this state, but when we switch assistants, test will also be added).

  • page/EventHandler.h:
  • page/ios/EventHandlerIOS.mm:

(WebCore::EventHandler::startSelectionAutoscroll):
(WebCore::EventHandler::cancelSelectionAutoscroll):
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
(WebCore::EventHandler::startTextAutoscroll): Deleted.
(WebCore::EventHandler::cancelTextAutoscroll): Deleted.

Source/WebKit:

Add support for autoscrolling during a selection. This also takes into account the edges of the screen
and starts autoscrolling when you get close, while still allowing autoscrolling when you are past the bounds
of the WebView.

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView startAutoscroll:]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView useSelectionAssistantWithGranularity:]):
(-[WKContentView selectedTextRange]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::startAutoscrollAtPosition):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::startAutoscrollAtPosition):
(WebKit::WebPage::cancelAutoscroll):

6:45 PM Changeset in webkit [228548] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Log the error message when failing to open the database
https://bugs.webkit.org/show_bug.cgi?id=182795

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-15
Reviewed by Chris Dumez.

No change of behavior.
Print the error message as it does not contain any user private information.

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::openSQLiteDatabase):

6:37 PM Changeset in webkit [228547] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderMenuList::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182840
<rdar://problem/37583638>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::didInsertChild):
(RenderMenuList::addChild): Deleted.

  • rendering/RenderMenuList.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::FormControls::insertChild):
(WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded): Deleted.

  • rendering/updating/RenderTreeBuilderFormControls.h:
6:14 PM Changeset in webkit [228546] by Darin Adler
  • 53 edits in trunk/Source

Web Inspector: get rid of remaining uses of OptOutput<T>
https://bugs.webkit.org/show_bug.cgi?id=180607

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/AsyncStackTrace.cpp: Removed explicit Inspector prefix from code that

is inside the Inspector namespace already. Also use auto a bit.

  • inspector/AsyncStackTrace.h: Ditto.
  • inspector/ConsoleMessage.cpp: Ditto.
  • inspector/ContentSearchUtilities.cpp: More Inspector namespace removal and ...

(Inspector::ContentSearchUtilities::getRegularExpressionMatchesByLines): Use a
Vector instead of a unique_ptr<Vector>.
(Inspector::ContentSearchUtilities::lineEndings): Ditto.
(Inspector::ContentSearchUtilities::stylesheetCommentPattern): Deleted.
(Inspector::ContentSearchUtilities::findMagicComment): Use std::array instead of
a Vector for a fixed size array; also got rid of reinterpret_cast.
(Inspector::ContentSearchUtilities::findStylesheetSourceMapURL): Moved the regular
expression here since it's the only place it was used.

  • inspector/ContentSearchUtilities.h: Cut down on unneeded includes.
  • inspector/InjectedScript.cpp: Removed explicit Inspector prefix from code that

is inside the Inspector namespace already. Also use auto a bit.

  • inspector/InspectorProtocolTypes.h: Removed OptOutput. Simplified assertions.

Removed base template for BindingTraits; we only need the specializations.

  • inspector/ScriptCallFrame.cpp: Removed explicit Inspector prefix from code that

is inside the Inspector namespace already. Also use auto a bit.

  • inspector/ScriptCallFrame.h: Ditto.
  • inspector/ScriptCallStack.cpp: Ditto.
  • inspector/ScriptCallStack.h: Ditto.
  • inspector/agents/InspectorConsoleAgent.cpp: Ditto.
  • inspector/agents/InspectorConsoleAgent.h: Ditto.
  • inspector/agents/InspectorDebuggerAgent.cpp: More Inspector namespace removal and ...

(Inspector::InspectorDebuggerAgent::evaluateOnCallFrame): Use std::optional& intead of
OptOutput* for out arguments.

  • inspector/agents/InspectorDebuggerAgent.h: Ditto.
  • inspector/agents/InspectorHeapAgent.cpp: More Inspector namespace removal and ...

(Inspector::InspectorHeapAgent::getPreview): Use std::optional& intead of OptOutput*
for out arguments.

  • inspector/agents/InspectorHeapAgent.h: Ditto.
  • inspector/agents/InspectorRuntimeAgent.cpp: More Inspector namespace removal and ...

(Inspector::InspectorRuntimeAgent::parse): Use std::optional& intead of OptOutput*
for out arguments.
(Inspector::InspectorRuntimeAgent::evaluate): Ditto.
(Inspector::InspectorRuntimeAgent::callFunctionOn): Ditto.
(Inspector::InspectorRuntimeAgent::saveResult): Ditto.

  • inspector/agents/InspectorRuntimeAgent.h: Ditto.
  • inspector/agents/InspectorScriptProfilerAgent.cpp: More Inspector namespace removal

and removed some bogus const.

  • inspector/agents/InspectorScriptProfilerAgent.h: Ditto.
  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.cpp_type_for_unchecked_formal_in_parameter): Removed some bogus const.
(CppGenerator.cpp_type_for_type_with_name): Ditto.
(CppGenerator.cpp_type_for_formal_out_parameter): Use std::optional& instead of
Inspector::Protocol::OptOutput*.
(CppGenerator.cpp_type_for_formal_async_parameter): Ditto.
(CppGenerator.cpp_type_for_stack_in_parameter): Ditto.
(CppGenerator.cpp_type_for_stack_out_parameter): Ditto.

  • inspector/scripts/codegen/cpp_generator_templates.py: Removed ASSERT_DISABLED

conditional around assertion code which will now compile to nothing if ASSERT is disabled.
Build strings more simply in a few cases.

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
Use has_value instead of isAssigned and * operator instead of getValue() since std::optional
replace OptOutput here.
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
Pass by reference instead of pointer now.

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

Removed ASSERT_DISABLED conditional around assertion code which will now compile to nothing
if ASSERT is disabled.

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration): Generate
the assertion function unconditionally, but leave out the assertions if ASSERT_DISABLED is true.
(CppProtocolTypesImplementationGenerator): Use auto instead of writing out JSON::Object::iterator.

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:

(ObjCBackendDispatcherImplementationGenerator._generate_conversions_for_command): Build strings
more simply.

  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:

Rebaselined.

Source/WebCore:

  • inspector/InspectorStyleSheet.cpp:

(WebCore::buildSourceRangeObject): Take a const Vector& instead of a Vector*.
(WebCore::InspectorStyle::buildObjectForStyle const): Pass lineEndings() instead
of lineEndings().get().
(WebCore::InspectorStyle::styleWithProperties const): Ditto.
(WebCore::InspectorStyleSheet::buildObjectForSelectorList): Ditto.
(WebCore::InspectorStyleSheet::lineEndings const): Return a Vector instead of
a std::unique_ptr<Vector>.
(WebCore::InspectorStyleSheetForInlineStyle::lineEndings const): Ditto.

  • inspector/InspectorStyleSheet.h: Updated for the above.
  • inspector/agents/InspectorCSSAgent.h: Removed some bogus const.
  • inspector/agents/InspectorCanvasAgent.cpp: Ditto.
  • inspector/agents/InspectorCanvasAgent.h: Ditto.
  • inspector/agents/InspectorDOMDebuggerAgent.cpp: Improved type of global strings

so we don't waste space with a pointer to the string.
(WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint): Removed
explicit creation of String, which was wasteful and unnecessary.
(WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint): Ditto.
(WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint): Ditto.
(WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint): Ditto.
(WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint): Removed bogus const.

  • inspector/agents/InspectorDOMDebuggerAgent.h: Removed bogus const and use

final instead of override.

  • inspector/agents/InspectorPageAgent.cpp: Ditto.
  • inspector/agents/InspectorPageAgent.h: Ditto.
5:47 PM WebKitGTK/2.20.x edited by Michael Catanzaro
Review backports through r228536 (diff)
5:35 PM Changeset in webkit [228545] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Flaky Test: imported/w3c/web-platform-tests/fetch/api/redirect/redirect-to-dataurl-worker.html
https://bugs.webkit.org/show_bug.cgi?id=182270
<rdar://problem/36904314>

Reviewed by Antti Koivisto.

No new tests, already covered by existing tests that crash flakily on the bots.

  • loader/ThreadableLoaderClientWrapper.h:

(WebCore::ThreadableLoaderClientWrapper::ThreadableLoaderClientWrapper):
isolate copy the initiator string as this object can be destroyed on a different thread. This was
causing the test to flakily crash as well when destroying ThreadLocalData.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(scheduledWithCustomRunLoopMode):
(-[WebCoreResourceHandleAsOperationQueueDelegate callFunctionOnMainThread:]):
Fix thread safety issue in callFunctionOnMainThread. This function is called from a background thread
to get to the main thread. However, it relied on m_handle which would get nullified on the main thread
by detachHandle when the ResourceHandle is destroyed. Fix the issue by not relying on m_handle anymore.

(-[WebCoreResourceHandleAsOperationQueueDelegate initWithHandle:messageQueue:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):

  • Go back to using autorelease() instead of get() for the returned objects to match the code pre-r224522.
  • Dispatch the protectedSelf variables that were added in r227073 to the main thread to make sure we do not get destroyed on the background thread when protectedSelf is the last strong reference to self. Destroying the WebCoreResourceHandleAsOperationQueueDelegate on the background safe is unsafe due to its m_messageQueue data member which contains lambdas that may capture anything.
  • Add a Lock to protect against detachHandle getting called on the main thread and nulling out m_handle / m_requestResult / m_cachedResponseResult while the background thread may be accessing them.
5:19 PM Changeset in webkit [228544] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/register-closed-window.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=182853

Unreviewed test gardening.

  • platform/ios/TestExpectations:
4:45 PM Changeset in webkit [228543] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

4:42 PM Changeset in webkit [228542] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderTableRow::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182838
<rdar://problem/37580762>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::didInsertTableCell):
(WebCore::RenderTableRow::addChild): Deleted.

  • rendering/RenderTableRow.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::insertChildToRenderTableRow): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::insertChild):

4:38 PM Changeset in webkit [228541] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/XMLHttpRequest/event-upload-progress-crossorigin.htm as flaky.
https://bugs.webkit.org/show_bug.cgi?id=182849

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
4:18 PM Changeset in webkit [228540] by Ryan Haddad
  • 2 edits in branches/safari-605-branch/LayoutTests

Unreviewed, land TestExpectations for rdar://problem/37587737.

  • platform/mac-elcapitan/TestExpectations:
4:07 PM Changeset in webkit [228539] by ap@apple.com
  • 2 edits in trunk/Tools

Speed up dSYM generation on build.webkit.org with -gline-tables-only
https://bugs.webkit.org/show_bug.cgi?id=182841
rdar://problem/34579649

Reviewed by Aakash Jain.

Build speed and binary size improvements are so substantial that I'm willing to make
CI builds less suitable for debugging, which is not a common scenario anyway.
Crash logs will still have line numbers in them.

  • BuildSlaveSupport/build.webkit.org-config/steps.py: (CompileWebKit.start):
3:38 PM Changeset in webkit [228538] by fpizlo@apple.com
  • 11 edits
    2 deletes in trunk

Unreviewed, roll out r228366 since it did not progress anything.

JSTests:

  • stress/gc-error-stack.js: Removed.
  • stress/no-gc-error-stack.js: Removed.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::visitChildren):
(JSC::ErrorInstance::finalizeUnconditionally): Deleted.

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::stackTrace):
(JSC::ErrorInstance::subspaceFor): Deleted.

  • runtime/Exception.cpp:

(JSC::Exception::visitChildren):
(JSC::Exception::finalizeUnconditionally): Deleted.

  • runtime/Exception.h:
  • runtime/StackFrame.cpp:

(JSC::StackFrame::visitChildren):
(JSC::StackFrame::isFinalizationCandidate): Deleted.
(JSC::StackFrame::finalizeUnconditionally): Deleted.

  • runtime/StackFrame.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
3:33 PM Changeset in webkit [228537] by graouts@webkit.org
  • 24 edits in trunk

[Web Animations] Ensure that changing the timing model updates styles synchronously
https://bugs.webkit.org/show_bug.cgi?id=182836

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations for progressions.

  • web-platform-tests/css-timing-1/cubic-bezier-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/step-timing-functions-output-expected.txt:
  • web-platform-tests/css/css-multicol/multicol-gap-animation-001-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/discrete-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/visibility-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/cancel-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt:

Source/WebCore:

We did not invalidate the timing model when properties of an effect's timing object changed
and even when we did invalidate the timing model, we did not update styles on effect targets
synchronously, only scheduling such updates for the next animation frame.

In this patch we expose the effect on the timing object such that changing timing properties
can notify the effect of a change in the timing model, which can then be forwarded to the
animation (which already informs its timeline, if any).

Additionally, when an animation's timing model has changed, we now invalidate the effect, which
will update styles synchronously.

This produces a number of progressions in WPT tests.

  • animation/AnimationEffectReadOnly.cpp:

(WebCore::AnimationEffectReadOnly::AnimationEffectReadOnly): Set the timing object's effect upon
effect construction.
(WebCore::AnimationEffectReadOnly::~AnimationEffectReadOnly): Set the timing object's effect to
null upon effect destruction.
(WebCore::AnimationEffectReadOnly::timingDidChange): Notify the animation (if any) that its timing
model changed following a change in the timing properties.

  • animation/AnimationEffectReadOnly.h: Add a new virtual invalidate() method that subclasses can

override to implement invalidation behavior when the animation finds out its timing model changed.

  • animation/AnimationEffectTimingReadOnly.cpp: Notify the effect when a property changes such

that it may notify its animation of a timing model change.
(WebCore::AnimationEffectTimingReadOnly::propertyDidChange):
(WebCore::AnimationEffectTimingReadOnly::setIterationStart):
(WebCore::AnimationEffectTimingReadOnly::setIterations):
(WebCore::AnimationEffectTimingReadOnly::setBindingsDuration):
(WebCore::AnimationEffectTimingReadOnly::setEasing):
(WebCore::AnimationEffectTimingReadOnly::setDelay):
(WebCore::AnimationEffectTimingReadOnly::setEndDelay):
(WebCore::AnimationEffectTimingReadOnly::setFill):
(WebCore::AnimationEffectTimingReadOnly::setIterationDuration):
(WebCore::AnimationEffectTimingReadOnly::setDirection):

  • animation/AnimationEffectTimingReadOnly.h:

(WebCore::AnimationEffectTimingReadOnly::setEffect):
(WebCore::AnimationEffectTimingReadOnly::setBindingsDelay):
(WebCore::AnimationEffectTimingReadOnly::setBindingsEndDelay):
(WebCore::AnimationEffectTimingReadOnly::setDelay): Deleted.
(WebCore::AnimationEffectTimingReadOnly::setEndDelay): Deleted.
(WebCore::AnimationEffectTimingReadOnly::setFill): Deleted.
(WebCore::AnimationEffectTimingReadOnly::setIterationDuration): Deleted.
(WebCore::AnimationEffectTimingReadOnly::setDirection): Deleted.

  • animation/AnimationTimeline.cpp: Rename animationTimingModelDidChange() to timingModelDidChange()

to align it with the new WebAnimation::timingModelDidChange() method.
(WebCore::AnimationTimeline::addAnimation):
(WebCore::AnimationTimeline::removeAnimation):
(WebCore::AnimationTimeline::setCurrentTime):

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::timingModelDidChange):
(WebCore::AnimationTimeline::animationTimingModelDidChange): Deleted.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::timingModelDidChange):
(WebCore::DocumentTimeline::updateAnimations):
(WebCore::DocumentTimeline::animationTimingModelDidChange): Deleted.

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::invalidate): Override the invalidate() method to perform a synchronous
style update in order to ensure that timing properties are accounted for right as they change.

  • animation/KeyframeEffectReadOnly.h:
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingModelDidChange): Invalidate the effect and notify the timeline of a timing
model change when an animation is notified that its timing model has changed.
(WebCore::WebAnimation::setStartTime):

  • animation/WebAnimation.h:
3:24 PM Changeset in webkit [228536] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

3:22 PM Changeset in webkit [228535] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.29

Tag Safari-605.1.29.

3:00 PM Changeset in webkit [228534] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build.

  • platform/ios/KeyEventCodesIOS.h:
2:59 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
2:34 PM Changeset in webkit [228533] by Yusuke Suzuki
  • 27 edits in trunk/Source/JavaScriptCore

[JSC] Remove monotonicallyIncreasingTime and currentTime
https://bugs.webkit.org/show_bug.cgi?id=182793

Reviewed by Saam Barati.

We would like to drop monotonicallyIncreasingTime and currentTime from our tree by
replacing them with MonotonicTime and WallTime, which are well-typed alternatives,
compared to double.
This patch removes monotonicallyIncreasingTime and currentTime in JSC.

  • b3/testb3.cpp:

(JSC::B3::testComplex):

  • dfg/DFGPhase.h:

(JSC::DFG::runAndLog):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPlan.h:
  • dynbench.cpp:

(JSC::benchmarkImpl):

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::isPagedOut):

  • heap/BlockDirectory.h:
  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):

  • heap/Heap.cpp:

(JSC::Heap::isPagedOut):
(JSC::Heap::sweepSynchronously):

  • heap/Heap.h:
  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::isPagedOut):

  • heap/MarkedSpace.h:
  • inspector/agents/InspectorConsoleAgent.cpp:

(Inspector::InspectorConsoleAgent::startTiming):
(Inspector::InspectorConsoleAgent::stopTiming):

  • inspector/agents/InspectorConsoleAgent.h:
  • inspector/agents/InspectorRuntimeAgent.cpp:

(Inspector::InspectorRuntimeAgent::getRuntimeTypesForVariablesAtOffsets):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):
(JSC::JIT::compileTimeStats):

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

(StopWatch::start):
(StopWatch::stop):
(StopWatch::getElapsedMS):
(functionPreciseTime):
(runJSC):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::logEvent):

  • profiler/ProfilerEvent.cpp:

(JSC::Profiler::Event::toJS const):

  • profiler/ProfilerEvent.h:

(JSC::Profiler::Event::Event):
(JSC::Profiler::Event::time const):

  • runtime/CodeCache.cpp:

(JSC::CodeCacheMap::pruneSlowCase):

  • runtime/CodeCache.h:

(JSC::CodeCacheMap::CodeCacheMap):
(JSC::CodeCacheMap::prune):

  • runtime/DateConstructor.cpp:

(JSC::callDate):

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::processLogEntries):

  • testRegExp.cpp:

(StopWatch::start):
(StopWatch::stop):
(StopWatch::getElapsedMS):

1:50 PM Changeset in webkit [228532] by wilander@apple.com
  • 5 edits in trunk/Source

Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database
https://bugs.webkit.org/show_bug.cgi?id=182812
<rdar://problem/37511406>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. Tested manually between versions of Safari.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Now only expects these fields for model version 11 or higher:

  • topFrameUniqueRedirectsTo
  • topFrameUniqueRedirectsFrom
  • subresourceUniqueRedirectsFrom
  • timesAccessedAsFirstPartyDueToUserInteraction
  • timesAccessedAsFirstPartyDueToStorageAccessAPI
  • loader/ResourceLoadStatistics.h:

Source/WebKit:

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder):

Now does the following:

  • Logs when there is a model version mismatch.
  • Does not ingest statistics if the version on disk is newer than the supported one.
  • Does ingest statistics if the version on disk is older than the supported one.
  • Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode().
1:08 PM Changeset in webkit [228531] by timothy_horton@apple.com
  • 97 edits in trunk/Source/WebCore

Stop using EXCLUDED_SOURCE_FILE_NAMES for actual source files in WebCore
https://bugs.webkit.org/show_bug.cgi?id=182822

Reviewed by Dan Bernstein.

It's much easier to reason about things if xcconfigs don't apply extra
constraints to which source files actually build on a per-platform basis.
We should use #ifs instead like we usually do.

  • Configurations/WebCore.xcconfig:
  • Modules/geolocation/ios/GeolocationPositionIOS.mm:
  • accessibility/ios/AccessibilityObjectIOS.mm:
  • accessibility/mac/AXObjectCacheMac.mm:
  • accessibility/mac/AccessibilityObjectMac.mm:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
  • dom/DataTransferMac.mm:
  • editing/ios/DictationCommandIOS.cpp:
  • editing/ios/DictationCommandIOS.h:
  • editing/ios/EditorIOS.mm:
  • editing/ios/WebContentReaderIOS.mm:
  • editing/mac/EditorMac.mm:
  • editing/mac/WebContentReaderMac.mm:
  • page/ios/EventHandlerIOS.mm:
  • page/ios/FrameIOS.mm:
  • page/mac/EventHandlerMac.mm:
  • page/scrolling/ios/ScrollingCoordinatorIOS.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.mm:
  • page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
  • platform/ThreadCheck.h:
  • platform/audio/ios/AudioDestinationIOS.h:
  • platform/audio/ios/AudioFileReaderIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
  • platform/graphics/ios/FontCacheIOS.mm:
  • platform/graphics/ios/GraphicsContext3DIOS.h:
  • platform/graphics/ios/IconIOS.mm:
  • platform/graphics/mac/ColorMac.h:
  • platform/graphics/mac/ColorMac.mm:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
  • platform/graphics/mac/IconMac.mm:
  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
  • platform/ios/CursorIOS.cpp:
  • platform/ios/DeviceMotionClientIOS.h:
  • platform/ios/DeviceOrientationClientIOS.h:
  • platform/ios/EventLoopIOS.mm:
  • platform/ios/KeyEventCodesIOS.h:
  • platform/ios/LowPowerModeNotifierIOS.mm:
  • platform/ios/PasteboardIOS.mm:
  • platform/ios/PlatformEventFactoryIOS.h:
  • platform/ios/PlatformEventFactoryIOS.mm:
  • platform/ios/PlatformPasteboardIOS.mm:
  • platform/ios/PlatformScreenIOS.mm:
  • platform/ios/PlatformSpeechSynthesizerIOS.mm:
  • platform/ios/RemoteCommandListenerIOS.h:
  • platform/ios/RemoteCommandListenerIOS.mm:
  • platform/ios/SSLKeyGeneratorIOS.cpp:
  • platform/ios/ScrollAnimatorIOS.h:
  • platform/ios/ScrollAnimatorIOS.mm:
  • platform/ios/ScrollViewIOS.mm:
  • platform/ios/ScrollbarThemeIOS.h:
  • platform/ios/ScrollbarThemeIOS.mm:
  • platform/ios/SystemMemoryIOS.cpp:
  • platform/ios/ThemeIOS.h:
  • platform/ios/ThemeIOS.mm:
  • platform/ios/TileControllerMemoryHandlerIOS.cpp:
  • platform/ios/TileControllerMemoryHandlerIOS.h:
  • platform/ios/UserAgentIOS.mm:
  • platform/ios/ValidationBubbleIOS.mm:
  • platform/ios/WidgetIOS.mm:
  • platform/mac/CursorMac.mm:
  • platform/mac/EventLoopMac.mm:
  • platform/mac/LocalCurrentGraphicsContext.h:
  • platform/mac/LocalCurrentGraphicsContext.mm:
  • platform/mac/NSScrollerImpDetails.h:
  • platform/mac/NSScrollerImpDetails.mm:
  • platform/mac/PasteboardMac.mm:
  • platform/mac/PlatformEventFactoryMac.h:
  • platform/mac/PlatformEventFactoryMac.mm:
  • platform/mac/PlatformPasteboardMac.mm:
  • platform/mac/PlatformScreenMac.mm:
  • platform/mac/PlatformSpeechSynthesizerMac.mm:
  • platform/mac/SSLKeyGeneratorMac.mm:
  • platform/mac/ScrollViewMac.mm:
  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:
  • platform/mac/ThemeMac.h:
  • platform/mac/ThemeMac.mm:
  • platform/mac/ThreadCheck.mm:
  • platform/mac/UserAgentMac.mm:
  • platform/mac/WebCoreView.h:
  • platform/mac/WebCoreView.m:
  • platform/mac/WidgetMac.mm:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.h:
  • platform/network/ios/NetworkStateNotifierIOS.mm:
  • platform/network/ios/WebCoreURLResponseIOS.h:
  • platform/network/ios/WebCoreURLResponseIOS.mm:
  • platform/network/mac/NetworkStateNotifierMac.cpp:
  • Configurations/PAL.xcconfig:
  • pal/system/Sound.cpp:
  • pal/system/mac/SoundMac.mm:
  • pal/text/KillRing.cpp:
  • pal/text/mac/KillRingMac.mm:
1:06 PM Changeset in webkit [228530] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderTableSection::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182835
<rdar://problem/37579191>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::willInsertTableRow):
(WebCore::RenderTableSection::addChild): Deleted.

  • rendering/RenderTableSection.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild): Leftover from r228529.
(WebCore::RenderTreeBuilder::insertChildToRenderTable): Deleted. Leftover from r228529.
(WebCore::RenderTreeBuilder::insertChildToRenderTableSection): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::insertChild):

12:01 PM Changeset in webkit [228529] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderTable::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182832
<rdar://problem/37576362>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::willInsertTableColumn):
(WebCore::RenderTable::willInsertTableSection):
(WebCore::RenderTable::addChild): Deleted.

  • rendering/RenderTable.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::insertChild):

11:49 AM Changeset in webkit [228528] by Darin Adler
  • 10 edits in trunk/Source/WebCore

Use std::make_unique instead of explicit calls to new and instead of writing create functions
https://bugs.webkit.org/show_bug.cgi?id=182821

Reviewed by Anders Carlsson.

  • loader/LinkLoader.cpp:

(WebCore::createLinkPreloadResourceClient): Use std::make_unique insteadof create functions.

  • loader/LinkPreloadResourceClients.h: Make constructors public, get rid of create functions,

make overrides be private and final, get rid of unnecessary public default virtual destructors
that the compiler will generate correctly without anything explicit.

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMFactoryClearKey::createCDM): Use std::make_unique instead of std::unique_ptr/new.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Use
std::make_unique instead of calling a create function.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Ditto.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Ditto.

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: Made the constructor

public and got rid of the create function.

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

(WebCore::VideoFullscreenLayerManager::create): Deleted.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::computeFlexFactorUnitSize const):
Use std::make_unique instead of std::unique_ptr/new.

11:47 AM Changeset in webkit [228527] by aestes@apple.com
  • 4 edits in trunk/Source/WebCore

Finish unifying Apple Pay and Payment Request sources
https://bugs.webkit.org/show_bug.cgi?id=182831

Reviewed by Keith Miller.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
11:12 AM Changeset in webkit [228526] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap tests.
https://bugs.webkit.org/show_bug.cgi?id=182833

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:06 AM Changeset in webkit [228525] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

HarfBuzzFace: rework cache entry reference holding
https://bugs.webkit.org/show_bug.cgi?id=182828

Reviewed by Michael Catanzaro.

Move the FaceCacheEntry and HarfBuzzFaceCache types into the
HarfBuzzFace class as CacheEntry and Cache, respectively. The Cache
singleton is also moved there.

In the HarfBuzzFace constructor, we now don't increase the CacheEntry
reference, but instead just keep a reference to that object through
a RefPtr<CacheEntry> object. We don't need to retrieve the hb_face_t
object and the glyph cache HashMap in the constructor anymore, we just
retrieve them when necessary through that CacheEntry reference.

In the destructor, that RefPtr<CacheEntry> object is nulled out before
the object in Cache is removed if that's where the final reference is
kept.

  • platform/graphics/harfbuzz/HarfBuzzFace.cpp:

(WebCore::HarfBuzzFace::CacheEntry::CacheEntry):
(WebCore::HarfBuzzFace::CacheEntry::~CacheEntry):
(WebCore::HarfBuzzFace::cache):
(WebCore::HarfBuzzFace::HarfBuzzFace):
(WebCore::HarfBuzzFace::~HarfBuzzFace):
(WebCore::HarfBuzzFace::setScriptForVerticalGlyphSubstitution):
(WebCore::FaceCacheEntry::create): Deleted.
(WebCore::FaceCacheEntry::~FaceCacheEntry): Deleted.
(WebCore::FaceCacheEntry::face): Deleted.
(WebCore::FaceCacheEntry::glyphCache): Deleted.
(WebCore::FaceCacheEntry::FaceCacheEntry): Deleted.
(WebCore::harfBuzzFaceCache): Deleted.

  • platform/graphics/harfbuzz/HarfBuzzFace.h:

(WebCore::HarfBuzzFace::CacheEntry::create):
(WebCore::HarfBuzzFace::CacheEntry::face):
(WebCore::HarfBuzzFace::CacheEntry::glyphCache):

  • platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:

(WebCore::harfBuzzGetGlyph):
(WebCore::HarfBuzzFace::createFont):

11:04 AM Changeset in webkit [228524] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

FontPlatformData::harfBuzzFace() should return a reference
https://bugs.webkit.org/show_bug.cgi?id=182825

Reviewed by Carlos Garcia Campos.

Have FontPlatformData::harfBuzzFace() return a reference instead of a
pointer, given that the returned HarfBuzzFace object cannot be null.

Call-sites of FontPlatformData::harfBuzzFace() are adjusted.
OpenTypeMathData constructors are also changed to not rely on
preprocessor to correctly position the closing brace.

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::harfBuzzFace const):

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

  • platform/graphics/opentype/OpenTypeMathData.cpp:

(WebCore::OpenTypeMathData::OpenTypeMathData):

11:02 AM Changeset in webkit [228523] by jiewen_tan@apple.com
  • 29 edits
    6 copies
    9 adds
    2 deletes in trunk

[WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting
https://bugs.webkit.org/show_bug.cgi?id=181946
<rdar://problem/37258262>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the original async model from a work queue to IPC between WebProcess
and UIProcess. Since all authenticator operations must be handled in the UIProcess due
to sandboxing, this message passing IPC async model then surpasses the original multi
threading model. To cooperate that, a CredentialsMessenger class is then created and
all task dispatching code is moved thre.

As an improvement over existing code, static functions from PublicKeyCredential are
moved to AuthenticatorManager. AuthenticatorManager is made as a singleton such that
when static functions are called, they could reach the CredentialsMessenger to interact
with UIProccess. CredentialsMessenger and AuthenticatorManager are separated so later
on when other Credential types are created, they can reuse the same IPC messenger.

What's more, a mock CredentialsMessenger is then created to mock behaviors of UIProcess
for testing purpose.

Covered by existing tests.

  • DerivedSources.make:
  • Modules/credentialmanagement/BasicCredential.h:
  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::CredentialsContainer):
(WebCore::CredentialsContainer::doesHaveSameOriginAsItsAncestors):
(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::PendingPromise::PendingPromise): Deleted.
(WebCore::CredentialsContainer::dispatchTask): Deleted.

  • Modules/credentialmanagement/CredentialsContainer.h:

(WebCore::CredentialsContainer::PendingPromise::create): Deleted.

  • Modules/credentialmanagement/CredentialsMessenger.cpp: Added.

(WebCore::CredentialsMessenger::exceptionReply):
(WebCore::CredentialsMessenger::addCreationCompletionHandler):
(WebCore::CredentialsMessenger::takeCreationCompletionHandler):
(WebCore::CredentialsMessenger::addRequestCompletionHandler):
(WebCore::CredentialsMessenger::takeRequestCompletionHandler):
(WebCore::CredentialsMessenger::addQueryCompletionHandler):
(WebCore::CredentialsMessenger::takeQueryCompletionHandler):
(WebCore::getIdFromAttestationObject):

  • Modules/credentialmanagement/CredentialsMessenger.h: Added.

(WebCore::CreationReturnBundle::CreationReturnBundle):
(WebCore::AssertionReturnBundle::AssertionReturnBundle):
(WebCore::CredentialsMessenger::weakPtrFactory const):

  • Modules/webauthn/Authenticator.cpp: Removed.
  • Modules/webauthn/Authenticator.h: Removed.
  • Modules/webauthn/AuthenticatorManager.cpp: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp.

(WebCore::AuthenticatorManagerInternal::produceClientDataJson):
(WebCore::AuthenticatorManagerInternal::produceClientDataJsonHash):
(WebCore::AuthenticatorManagerInternal::initTimer):
(WebCore::AuthenticatorManagerInternal::didTimerFire):
(WebCore::AuthenticatorManager::singleton):
(WebCore::AuthenticatorManager::setMessenger):
(WebCore::AuthenticatorManager::create const):
(WebCore::AuthenticatorManager::discoverFromExternalSource const):

  • Modules/webauthn/AuthenticatorManager.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • Modules/webauthn/AuthenticatorResponse.h:
  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredentialInternal::produceClientDataJson): Deleted.
(WebCore::PublicKeyCredentialInternal::produceClientDataJsonHash): Deleted.
(WebCore::PublicKeyCredentialInternal::getIdFromAttestationObject): Deleted.
(WebCore::PublicKeyCredential::collectFromCredentialStore): Deleted.
(WebCore::PublicKeyCredential::discoverFromExternalSource): Deleted.
(WebCore::PublicKeyCredential::store): Deleted.
(WebCore::PublicKeyCredential::create): Deleted.
(WebCore::PublicKeyCredential::rawId const): Deleted.
(WebCore::PublicKeyCredential::response const): Deleted.

  • Modules/webauthn/PublicKeyCredential.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::mockCredentialsMessenger const):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockCredentialsMessenger.cpp: Added.

(WebCore::MockCredentialsMessenger::MockCredentialsMessenger):
(WebCore::MockCredentialsMessenger::~MockCredentialsMessenger):
(WebCore::MockCredentialsMessenger::setAttestationObject):
(WebCore::MockCredentialsMessenger::setAssertionReturnBundle):
(WebCore::MockCredentialsMessenger::makeCredential):
(WebCore::MockCredentialsMessenger::getAssertion):
(WebCore::MockCredentialsMessenger::makeCredentialReply):
(WebCore::MockCredentialsMessenger::getAssertionReply):

  • testing/MockCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • testing/MockCredentialsMessenger.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

Source/WebKit:

Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish
a message exchange channel between UIProcess and WebProcess.

  • DerivedSources.make:
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

(WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy):
(WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy):
(WebKit::WebCredentialsMessengerProxy::makeCredential):
(WebKit::WebCredentialsMessengerProxy::getAssertion):

  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

(WebKit::WebCredentialsMessenger::WebCredentialsMessenger):
(WebKit::WebCredentialsMessenger::~WebCredentialsMessenger):
(WebKit::WebCredentialsMessenger::makeCredential):
(WebKit::WebCredentialsMessenger::getAssertion):
(WebKit::WebCredentialsMessenger::makeCredentialReply):
(WebKit::WebCredentialsMessenger::getAssertionReply):

  • WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):
(WebKit::m_cpuLimit): Deleted.

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

  • http/wpt/credential-management/credentialscontainer-store-basics.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success.https.html:
  • http/wpt/webauthn/resources/util.js:
10:47 AM Changeset in webkit [228522] by Michael Catanzaro
  • 3 edits
    1 add in trunk/Source/WebKit

[WPE] Unify build of platform-specific files in WebKit layer
https://bugs.webkit.org/show_bug.cgi?id=182696

Reviewed by Žan Doberšek.

This is easy, because all needed changes were made in the previously-landed patch.

  • CMakeLists.txt:
  • PlatformWPE.cmake:
10:42 AM Changeset in webkit [228521] by don.olmstead@sony.com
  • 21 edits in trunk

WebCore headers should not be included relatively within dependent projects
https://bugs.webkit.org/show_bug.cgi?id=182805

Reviewed by Chris Dumez.

Source/WebKit:

  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • Shared/gtk/WebEventFactory.cpp:
  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:
  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

Source/WebKitLegacy/win:

  • FullscreenVideoController.h:

Tools:

  • TestWebKitAPI/win/TestWebCoreStubs.cpp:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp:
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
10:25 AM Changeset in webkit [228520] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderInline/RenderGrid::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182819
<rdar://problem/37558187>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::addChild): Deleted.

  • rendering/RenderGrid.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addChild): Deleted.

  • rendering/RenderInline.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::insertChild):

10:03 AM Changeset in webkit [228519] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Modern Media Controls] REGRESSION: Inline media controls are not disabled while in fullscreen on iOS
https://bugs.webkit.org/show_bug.cgi?id=182830
<rdar://problem/37537909>

Patch by Antoine Quint <Antoine Quint> on 2018-02-15
Reviewed by Eric Carlson.

The test media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html
regressed when fixing webkit.org/b/182668 since we now started only caring about the presence of the "controls"
attribute to identify that WebKit media controls should be available.

We now have a dedicated _shouldControlsBeAvailable() method which more clearly establishes the conditions under
which controls should be available and correctly disables them while in fullscreen on iOS, regardless of the
"controls" attribute value.

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

(MediaController.prototype._shouldControlsBeAvailable):
(MediaController.prototype._updateControlsAvailability):

9:30 AM Changeset in webkit [228518] by jmarcell@apple.com
  • 8 edits in branches/safari-605-branch/Source

Cherry-pick r228481. rdar://problem/37570863

9:30 AM Changeset in webkit [228517] by jmarcell@apple.com
  • 10 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228472. rdar://problem/37570861

9:30 AM Changeset in webkit [228516] by jmarcell@apple.com
  • 4 edits
    1 add in branches/safari-605-branch

Cherry-pick r228488. rdar://problem/37570860

9:30 AM Changeset in webkit [228515] by jmarcell@apple.com
  • 4 edits
    3 deletes in branches/safari-605-branch

Revert r220112. rdar://problem/37570933

9:19 AM Changeset in webkit [228514] by Matt Lewis
  • 5 edits in trunk/Source

Unreviewed, rolling out r228495.

This caused mulitple perf tests to fail consistently.

Reverted changeset:

"Resource Load Statistics: Make sure
WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can
ingest older plist versions and not reset the database"
https://bugs.webkit.org/show_bug.cgi?id=182812
https://trac.webkit.org/changeset/228495

8:49 AM Changeset in webkit [228513] by tpopela@redhat.com
  • 29 edits in trunk/JSTests

Many stress tests fail with JIT disabled
https://bugs.webkit.org/show_bug.cgi?id=182730

Reviewed by Saam Barati.

These tests are broken by design if the JIT is disabled - they test
the return value of numberOfDFGCompiles(), which is always set to
1000000.0 in TestRunnerUtils.cpp and makes the tests to fail.

  • stress/arith-abs-on-various-types.js:
  • stress/arith-abs-to-arith-negate-range-optimizaton.js:
  • stress/arith-acos-on-various-types.js:
  • stress/arith-acosh-on-various-types.js:
  • stress/arith-asin-on-various-types.js:
  • stress/arith-asinh-on-various-types.js:
  • stress/arith-atan-on-various-types.js:
  • stress/arith-atanh-on-various-types.js:
  • stress/arith-cbrt-on-various-types.js:
  • stress/arith-ceil-on-various-types.js:
  • stress/arith-clz32-on-various-types.js:
  • stress/arith-cos-on-various-types.js:
  • stress/arith-cosh-on-various-types.js:
  • stress/arith-expm1-on-various-types.js:
  • stress/arith-floor-on-various-types.js:
  • stress/arith-fround-on-various-types.js:
  • stress/arith-log-on-various-types.js:
  • stress/arith-log10-on-various-types.js:
  • stress/arith-log2-on-various-types.js:
  • stress/arith-negate-on-various-types.js:
  • stress/arith-round-on-various-types.js:
  • stress/arith-sin-on-various-types.js:
  • stress/arith-sinh-on-various-types.js:
  • stress/arith-sqrt-on-various-types.js:
  • stress/arith-tan-on-various-types.js:
  • stress/arith-tanh-on-various-types.js:
  • stress/arith-trunc-on-various-types.js:
  • stress/compare-strict-eq-on-various-types.js:
8:49 AM Changeset in webkit [228512] by tpopela@redhat.com
  • 2 edits in trunk/Tools

run-jsc-stress-tests - skip a test if any of the run commands evals to skip
https://bugs.webkit.org/show_bug.cgi?id=182729

If multiple run commands are specified and one of them evals to skip,
then the test is not skipped, because the run is scheduled while
evaluating other commands.

Remember if the test is going to be skipped - if yes, just stop
evaluating the other run commands.

Reviewed by Saam Barati.

  • Scripts/run-jsc-stress-tests:
8:06 AM Changeset in webkit [228511] by jmarcell@apple.com
  • 9 edits
    1 add in branches/safari-605-branch

Cherry-pick r228482. rdar://problem/37559826

8:06 AM Changeset in webkit [228510] by jmarcell@apple.com
  • 14 edits
    4 adds in branches/safari-605-branch

Cherry-pick r228352. rdar://problem/37559826

2:12 AM Changeset in webkit [228509] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Clean up HarfBuzzFaceCairo
https://bugs.webkit.org/show_bug.cgi?id=182824

Reviewed by Carlos Garcia Campos.

Clean up Cairo-specific bits of HarfBuzzFace implementation.

HarfBuzzFontData is simplified, removing the constructor and turning the
cairo_scaled_font_t member into a RefPtr<>, tying the Cairo object's
lifetime to the lifetime of the HarfBuzzFontData instance.

HarfBuzz font callbacks have the HarfBuzzFontData casting cleaned up,
casting the user data pointer straight into a HarfBuzzFontData reference
that's then used in the functions. HarfBuzzFontData member access is
also adjusted.

HarfBuzzFace::createFace() now references the cairo_scaled_font_t object
that is then set as the user data pointer, with the destroy callback
that dereferences that object also specified. With hb_face_t being a
reference-counted object itself, this ensures the cairo_scaled_font_t
object doesn't get destroyed while hb_face_t is still alive.

In HarfBuzzFace::createFont(), the hb_font_t creation is cleaned up,
with a C++ lambda used as the destroy callback.

  • platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:

(WebCore::harfBuzzGetGlyph):
(WebCore::harfBuzzGetGlyphHorizontalAdvance):
(WebCore::harfBuzzGetGlyphExtents):
(WebCore::harfBuzzCairoGetTable):
(WebCore::HarfBuzzFace::createFace):
(WebCore::HarfBuzzFace::createFont):
(WebCore::HarfBuzzFontData::HarfBuzzFontData): Deleted.
(WebCore::destroyHarfBuzzFontData): Deleted.

2:11 AM Changeset in webkit [228508] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] WebVTT caps changed in GStreamer 1.14
https://bugs.webkit.org/show_bug.cgi?id=182690

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Use
text/vtt caps only for GStreamer versions inferior or equal to
1.12. In 1.13 (current git master) the VTT caps format changed to
application/x-subtitle-vtt.

2:10 AM Changeset in webkit [228507] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

HarfBuzzFace should not be ref-counted
https://bugs.webkit.org/show_bug.cgi?id=182823

Reviewed by Carlos Garcia Campos.

The HarfBuzzFace objects shouldn't be copied along in FontPlatformData
copy assignment operator, which made it a requirement for that class to
be ref-counted. Cairo-based HarfBuzzFace implementation uses the
cairo_scaled_font_t object from FontPlatformData internally, but upon
FontPlatformData cloning that scaled font object could change, meaning
HarfBuzzFace object that's shared with another FontPlatformData object
would end up using a different cairo_scaled_font_t object from the one
that's been regenerated in the newly-cloned FontPlatformData object.

Instead of ref-counting the HarfBuzzFace objects, they should be handled
in FontPlatformData through std::unique_ptr<>. In the FontPlatformData
copy assignment operator, the copy target's m_harfBuzzFace object is
nulled out, allowing the next harfBuzzFace() call to construct an
object that properly leverages the cairo_scaled_font_t object that could
have changed during cloning.

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::harfBuzzFace const):

  • platform/graphics/harfbuzz/HarfBuzzFace.h:

(WebCore::HarfBuzzFace::create): Deleted.

Feb 14, 2018:

11:48 PM Changeset in webkit [228506] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228476. rdar://problem/37549893

11:48 PM Changeset in webkit [228505] by jmarcell@apple.com
  • 9 edits in branches/safari-605-branch

Cherry-pick r228471. rdar://problem/37559829

11:48 PM Changeset in webkit [228504] by jmarcell@apple.com
  • 4 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228442. rdar://problem/37559831

7:41 PM Changeset in webkit [228503] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderMathMLFenced::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182817
<rdar://problem/37556761>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::addChild): Deleted.

  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::insertChildToRenderMathMLFenced): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderMathML.cpp:

(WebCore::RenderTreeBuilder::MathML::insertChild):

6:55 PM Changeset in webkit [228502] by Ross Kirsling
  • 2 edits in trunk/Source/WebKit

Default definition of InjectedBundle::PlatformBundle should not be Windows-specific.
https://bugs.webkit.org/show_bug.cgi?id=182810

Reviewed by Michael Catanzaro.

This branch was added in r228455, but should not be limited to OS(WINDOWS).

  • WebProcess/InjectedBundle/InjectedBundle.h:
6:52 PM Changeset in webkit [228501] by cturner@igalia.com
  • 5 edits in trunk/Tools

Get Garden-O-Matic running again.
https://bugs.webkit.org/show_bug.cgi?id=179089

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/Trac.js:

(parseCommitData): Author field is not always spelled 'author' these days.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:

No longer have a 32-bit builder.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/perf.js:

(ui.perf.View.base.init): createElement has a required parameter these days.

  • Scripts/webkitpy/tool/commands/gardenomatic.py:

(GardenOMatic): Override use_globs so that platform lookup in config.js works.

6:08 PM Changeset in webkit [228500] by keith_miller@apple.com
  • 55 edits
    1 add in trunk/Source/JavaScriptCore

We should be able to jsDynamicCast from JSType when possible
https://bugs.webkit.org/show_bug.cgi?id=182804

Reviewed by Filip Pizlo and Mark Lam.

This patch beefs up jsDynamicCast in some of the cases where we
can use the JSType to quickly determine if a cell is a subclass of
the desired type. Since all JSCells have a range of JSTypes they support,
if there is a range exclusive to a class and all subclasses we can use
that range to quickly determine if the cast should be successful.

Additionally, the JSValue versions of jsCast and jsDynamicCast now
call the JSCell version after checking the value is a cell.

Finally, the casting functions have been moved to a new header,
JSCast.h

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/CallVariant.h:
  • bytecode/CodeBlock.h:
  • bytecode/ExecutableToCodeBlockEdge.h:
  • bytecode/TrackedReferences.h:
  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.h:
  • dfg/DFGAbstractValue.h:
  • dfg/DFGCommonData.h:
  • dfg/DFGFrozenValue.h:
  • dfg/DFGStructureAbstractValue.h:
  • heap/CellContainerInlines.h:
  • heap/ConservativeRoots.cpp:
  • heap/GCLogging.cpp:
  • heap/HeapInlines.h:
  • heap/HeapSnapshotBuilder.cpp:
  • heap/MarkedBlock.cpp:
  • heap/MarkedBlockInlines.h:
  • heap/SubspaceInlines.h:
  • heap/WeakInlines.h:
  • jit/JITOpcodes.cpp:
  • jit/JITOpcodes32_64.cpp:
  • llint/LLIntOffsetsExtractor.cpp:
  • runtime/ArrayBufferNeuteringWatchpoint.h:
  • runtime/BigIntPrototype.cpp:
  • runtime/ClassInfo.h:
  • runtime/CustomGetterSetter.h:
  • runtime/FunctionRareData.h:
  • runtime/GetterSetter.h:
  • runtime/InferredType.h:
  • runtime/InferredTypeTable.h:
  • runtime/InferredValue.h:
  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

  • runtime/JSAPIValueWrapper.h:
  • runtime/JSArray.h:

(JSC::JSArray::finishCreation):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::finishCreation):

  • runtime/JSCast.h: Added.

(JSC::jsCast):
(JSC::JSCastingHelpers::jsDynamicCastGenericImpl):
(JSC::JSCastingHelpers::jsDynamicCastJSTypeImpl):
(JSC::JSCastingHelpers::JSDynamicCastTraits::cast):
(JSC::jsDynamicCast):

  • runtime/JSCell.cpp:
  • runtime/JSCell.h:

(JSC::jsCast): Deleted.
(JSC::jsDynamicCast): Deleted.

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

(JSC::JSFunction::finishCreation):

  • runtime/JSJob.h:
  • runtime/JSObject.h:

(JSC::JSObject::finishCreation):

  • runtime/JSPromiseDeferred.h:
  • runtime/JSPropertyNameEnumerator.h:
  • runtime/NativeStdFunctionCell.h:
  • runtime/ScopedArgumentsTable.h:
  • runtime/SparseArrayValueMap.h:
  • runtime/Structure.h:
  • runtime/StructureChain.h:
  • runtime/StructureRareData.h:
  • tools/CellProfile.h:
  • wasm/js/JSWebAssemblyCodeBlock.h:
5:58 PM Changeset in webkit [228499] by Ryan Haddad
  • 2 edits in trunk/JSTests

Skip stress/new-largeish-contiguous-array-with-size.js on arm.

Unreviewed test gardening.

  • stress/new-largeish-contiguous-array-with-size.js:
5:40 PM Changeset in webkit [228498] by don.olmstead@sony.com
  • 1 edit
    2 deletes in trunk/Tools

Remove unused ForwardingHeaders directories from Tools
https://bugs.webkit.org/show_bug.cgi?id=182813

Reviewed by Konstantin Tokarev.

  • DumpRenderTree/ForwardingHeaders/runtime/ArrayBufferView.h: Removed.
  • DumpRenderTree/ForwardingHeaders/runtime/JSArrayBufferView.h: Removed.
  • DumpRenderTree/ForwardingHeaders/runtime/JSExportMacros.h: Removed.
  • DumpRenderTree/ForwardingHeaders/runtime/TypedArrayInlines.h: Removed.
  • TestWebKitAPI/ForwardingHeaders/WebCore/LayoutUnit.h: Removed.
5:27 PM Changeset in webkit [228497] by Antti Koivisto
  • 13 edits in trunk

Do sibling invalidation on mutation
https://bugs.webkit.org/show_bug.cgi?id=182809

Reviewed by Zalan Bujtas.

Source/WebCore:

We used to invalidate siblings for sibling combinators and nth-pseudo classes during style resolution tree walk.
This would consider any element with invalid style a reason to invalidate siblings too. However we now do
accurate invalidation on class and attribute changes and this approach ends up invalidating too much.

This patch sibling style invalidation to mutation time and removes invalidation code from style resolution tree walk.

  • dom/Element.cpp:

(WebCore::invalidateSiblingsIfNeeded):

Helper to invalidate siblings.

(WebCore::Element::invalidateStyle):
(WebCore::Element::invalidateStyleAndLayerComposition):
(WebCore::Element::invalidateStyleForSubtree):
(WebCore::Element::invalidateStyleAndRenderersForSubtree):

Invalidate siblings if needed based on affectsNextSibling/affectedByPreviousSibling bits.

(WebCore::Element::invalidateStyleInternal):
(WebCore::Element::invalidateStyleForSubtreeInternal):

Add "internal" versions that don't invalidate siblings. These are used by StyleInvalidator for accurate invalidation.

  • dom/Element.h:
  • style/StyleInvalidator.cpp:

(WebCore::Style::Invalidator::invalidateIfNeeded):
(WebCore::Style::Invalidator::invalidateStyle):

Use internal invalidation functions.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::resetStyleForNonRenderedDescendants):
(WebCore::Style::TreeResolver::resolveComposedTree):

Remove sibling invalidation.

  • style/StyleTreeResolver.h:

LayoutTests:

Sibling invalidation now happens on mutation. Update the tests.

  • fast/css/indirect-adjacent-style-invalidation-1-expected.txt:
  • fast/css/indirect-adjacent-style-invalidation-1.html:
  • fast/css/indirect-adjacent-style-invalidation-2-expected.txt:
  • fast/css/indirect-adjacent-style-invalidation-2.html:
  • fast/css/indirect-adjacent-style-invalidation-3-expected.txt:
  • fast/css/indirect-adjacent-style-invalidation-3.html:
5:02 PM Changeset in webkit [228496] by Ross Kirsling
  • 4 edits in trunk/Source/WebKit

Default implementations of nativeEvent() should be platform-agnostic.
https://bugs.webkit.org/show_bug.cgi?id=182806

Reviewed by Darin Adler.

  • Shared/NativeWebKeyboardEvent.h:
  • Shared/NativeWebMouseEvent.h:
  • Shared/NativeWebWheelEvent.h:
4:52 PM Changeset in webkit [228495] by wilander@apple.com
  • 5 edits in trunk/Source

Resource Load Statistics: Make sure WebResourceLoadStatisticsStore::mergeWithDataFromDecoder() can ingest older plist versions and not reset the database
https://bugs.webkit.org/show_bug.cgi?id=182812
<rdar://problem/37511406>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. Tested manually between versions of Safari.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Now only expects these fields for model version 11 or higher:

  • topFrameUniqueRedirectsTo
  • topFrameUniqueRedirectsFrom
  • subresourceUniqueRedirectsFrom
  • timesAccessedAsFirstPartyDueToUserInteraction
  • timesAccessedAsFirstPartyDueToStorageAccessAPI
  • loader/ResourceLoadStatistics.h:

Source/WebKit:

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::mergeWithDataFromDecoder):

Now does the following:

  • Logs when there is a model version mismatch.
  • Does not ingest statistics if the version on disk is newer than the supported one.
  • Does ingest statistics if the version on disk is older than the supported one.
  • Passes on the version found on disk to WebCore::ResourceLoadStatistics::decode().
4:13 PM Changeset in webkit [228494] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WinCairo] Fix several build warnings under WebCore/platform
https://bugs.webkit.org/show_bug.cgi?id=182802

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-02-14
Reviewed by Konstantin Tokarev.

Warning C4101 'fileModificationDate': unreferenced local variable

Source\WebCore\platform\network\curl\CurlCacheEntry.cpp:279

Warning C4239 nonstandard extension used: 'argument': conversion from 'WTF::String'
to 'WTF::String &'

Source\WebCore\platform\text\win\LocaleWin.cpp:75
Source\WebCore\platform\text\win\LocaleWin.cpp:77

Warning C4838 conversion from 'UINT' to 'CLIPFORMAT' requires a narrowing conversion

Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:170
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:325
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:332
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:351
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:358
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:366
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:373
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:380
Source\WebCore\platform\win\ClipboardUtilitiesWin.cpp:387

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::parseResponseHeaders):

  • platform/text/win/LocaleWin.cpp:

(WebCore::LCIDFromLocaleInternal):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::registerClipboardFormat):
(WebCore::texthtmlFormat):
(WebCore::urlWFormat):
(WebCore::urlFormat):
(WebCore::filenameWFormat):
(WebCore::filenameFormat):
(WebCore::htmlFormat):
(WebCore::smartPasteFormat):
(WebCore::fileDescriptorFormat):
(WebCore::fileContentFormatZero):

3:50 PM Changeset in webkit [228493] by jmarcell@apple.com
  • 2 edits in tags/Safari-605.1.27.2.1/Source/WebCore

Cherry-pick r228476. rdar://problem/37549912

3:41 PM Changeset in webkit [228492] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderSVG*::addChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182811
<rdar://problem/37549714>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::addChild): Deleted.

  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::addChild): Deleted.

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::addChild): Deleted.

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

(WebCore::RenderSVGText::addChild): Deleted.

  • rendering/svg/RenderSVGText.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::insertChildToSVGContainer): Deleted.
(WebCore::RenderTreeBuilder::insertChildToSVGInline): Deleted.
(WebCore::RenderTreeBuilder::insertChildToSVGRoot): Deleted.
(WebCore::RenderTreeBuilder::insertChildToSVGText): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
3:31 PM Changeset in webkit [228491] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash: triggerOMGTierUpThunkGenerator() doesn't align the stack pointer before calling C++ code
https://bugs.webkit.org/show_bug.cgi?id=182808

Reviewed by Keith Miller.

Set up a proper frame with a prologue and epilogue to align the stack pointer for the rest of the
thunk.

  • wasm/WasmThunks.cpp:

(JSC::Wasm::triggerOMGTierUpThunkGenerator):

3:30 PM Changeset in webkit [228490] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.27.2.1/Source

Versioning.

3:27 PM Changeset in webkit [228489] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.27.2.1

New tag.

3:25 PM Changeset in webkit [228488] by sbarati@apple.com
  • 4 edits
    1 add in trunk

Setting a VMTrap shouldn't look at topCallFrame since that may imply we're in C code and holding the malloc lock
https://bugs.webkit.org/show_bug.cgi?id=182801

Reviewed by Keith Miller.

JSTests:

  • stress/watchdog-dont-malloc-when-in-c-code.js: Added.

Source/JavaScriptCore:

VMTraps would sometimes install traps when it paused the JS thread when it
was in C code. This is wrong, as installing traps mallocs, and the JS thread
may have been holding the malloc lock while in C code. This could lead to a
deadlock when C code was holding the malloc lock.

This patch makes it so that we only install traps when we've proven the PC
is in JIT or LLInt code. If we're in JIT/LLInt code, we are guaranteed that
we're not holding the malloc lock.

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionMallocInALoop):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):

2:45 PM Changeset in webkit [228487] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: completion popover doesn't hide when switching panels
https://bugs.webkit.org/show_bug.cgi?id=182464
<rdar://problem/37202763>

Reviewed by Timothy Hatcher.

Save the position of the anchor, an element the popover is shown for, and hide the completion popover
when the position changes.

  • UserInterface/Views/CompletionSuggestionsView.js:

(WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves):
When the popover is visible, check every 200ms if the anchor moved.

(WI.CompletionSuggestionsView.prototype.hide):

  • UserInterface/Views/SpreadsheetTextField.js:

(WI.SpreadsheetTextField.prototype._updateCompletions):
(WI.SpreadsheetTextField.prototype._getCaretRect):
getBoundingClientRect returns {x: 0, y: 0} when it can't determine node's position.
This happens when a node isn't attached to DOM, attached to DOM but not visible, and
a number of odd cases.

2:27 PM Changeset in webkit [228486] by dbates@webkit.org
  • 33 edits
    15 copies
    12 adds
    1 delete in trunk

Disallow cross-origin subresources from asking for credentials
https://bugs.webkit.org/show_bug.cgi?id=182579
<rdar://problem/36162271>

Reviewed by Andy Estes.

Source/WebCore:

Prompts for credentials to load cross-origin subresources are typically seen as unexpected
by a person that navigates to- or interacts with- a web page. The cross-origin and implicit
loading nature of these subresources makes asking for credentials questionable because they
are not being served by the same origin of the page a person explicitly loaded and are not
guaranteed to correspond to an explicit user interaction other than the initial load of the
page. We know that subresources that ask for credentials can be abused as part of a phishing
attack. It seems reasonable to disallow cross-origin subresources from asking for credentials
due to their questionable nature and the risk for abuse. This will also make the behavior
of WebKit match the behavior of Chrome.

Tests: http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials.html

http/tests/security/basic-auth-subresource.html
http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html
http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html
http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html
http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html
http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::isSubresourceLoader const): Formerly non-const.
(WebCore::ResourceLoader::shouldAllowResourceToAskForCredentials const): Added.
(WebCore::ResourceLoader::didBlockAuthenticationChallenge): Emit Web Inspector console message if
the authentication challenge was blocked because the request is cross origin.
(WebCore::ResourceLoader::isAllowedToAskUserForCredentials const): Disallow a cross-origin
request from prompting for credentials.
(WebCore::ResourceLoader::isSubresourceLoader): Deleted; made const.

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

(WebCore::SubresourceLoader::SubresourceLoader): Update ResourceLoader state so that block cross-origin
subresources from prompting for credentials, if applicable.
(WebCore::SubresourceLoader::isSubresourceLoader const): Formerly non-const.
(WebCore::SubresourceLoader::isSubresourceLoader): Deleted; made const.

  • loader/SubresourceLoader.h:
  • page/Settings.yaml: Add setting allowCrossOriginSubresourcesToAskForCredentials (defaults: false -

do not allow cross origin subresources to ask for credentials).

Source/WebKit:

Add a private preference to toggle allowing non-mixed content cross-origin subresources to load.
WebKitTestRunner toggles this preference when it sees the test option allowCrossOriginSubresourcesToAskForCredential.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowCrossOriginSubresourcesToAskForCredentials):
(WKPreferencesGetAllowCrossOriginSubresourcesToAskForCredentials):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Add a private preference to toggle allowing non-mixed content cross-origin subresources to load.
DumpRenderTree toggles this preference when it sees the test option allowCrossOriginSubresourcesToAskForCredential.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowCrossOriginSubresourcesToAskForCredentials]):
(-[WebPreferences setAllowCrossOriginSubresourcesToAskForCredentials:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Tools:

Add test option allowCrossOriginSubresourcesToAskForCredential (defaults to false)
so that tests can toggle between the old behavior and new behavior.

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/TestOptions.mm:

(TestOptions::TestOptions):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Copied existing tests that depended on cross-origin subresources being able prompt for credentials
to files with suffix allowCrossOriginSubresourcesToAskForCredentials. These copies were modified
to set allowCrossOriginSubresourcesToAskForCredentials to false so as to opt-into the behavior
before this change. Updated existing tests to reflect the new behavior and added new tests to
ensure that we do not regress the new behavior.

  • http/tests/media/video-auth-expected.txt:
  • http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/media/video-auth-expected.txt.
  • http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials.html: Copied from LayoutTests/http/tests/media/video-auth.html.
  • http/tests/media/video-auth.html:
  • http/tests/security/basic-auth-subresource-expected.txt: Added.
  • http/tests/security/basic-auth-subresource.html: Added.
  • http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Renamed from LayoutTests/platform/mac-wk1/http/tests/security/credentials-iframes-expected.txt.
  • http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials.html: Added.
  • http/tests/security/credentials-iframes-expected.txt:
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt.
  • http/tests/security/mixedContent/insecure-basic-auth-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
  • http/tests/security/mixedContent/insecure-basic-auth-image.https-expected.txt:
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt.
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.html: Added.
  • http/tests/security/mixedContent/insecure-image-redirects-to-basic-auth-secure-image-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt.
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
  • http/tests/security/mixedContent/secure-redirect-to-insecure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-insecure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Renamed from LayoutTests/platform/mac-wk1/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https.html: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html.
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt:
  • http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https.html:
  • http/tests/security/resources/basic-auth-subresource.html: Added.
  • http/tests/security/resources/subresource1/protected-image.php: Added.
  • http/tests/security/resources/subresource2/protected-image.php: Added.
  • platform/win/TestExpectations: Skip allowCrossOriginSubresourcesToAskForCredentials-suffixed tests as

DumpRenderTree on Windows does not support parsing test options. See <https://bugs.webkit.org/show_bug.cgi?id=173281>.

  • platform/win/http/tests/security/basic-auth-subresource-expected.txt: Added Windows-specific result. For some reason

connections to localhost:8443 are not allowed. See <https://bugs.webkit.org/show_bug.cgi?id=182609> for more details.

  • platform/wk2/http/tests/media/video-auth-expected.txt:
  • platform/wk2/http/tests/media/video-auth-with-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/media/video-auth-expected.txt.
  • platform/wk2/http/tests/security/basic-auth-subresource-expected.txt: Added.
  • platform/wk2/http/tests/security/credentials-iframes-allowCrossOriginSubresourcesToAskForCredentials-expected.txt: Copied from LayoutTests/http/tests/security/credentials-iframes-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image-allowCrossOriginSubresourcesToAskForCredentials.https-expected.txt: Copied from LayoutTests/http/tests/security/mixedContent/secure-redirect-to-secure-redirect-to-basic-auth-secure-image.https-expected.txt.
1:26 PM Changeset in webkit [228485] by Ryan Haddad
  • 1 edit
    8 adds
    2 deletes in branches/safari-605-branch/LayoutTests

Work towards rdar://problem/36837397.

Unreviewed test gardening.

  • platform/mac-highsierra-wk1/fast/canvas/webgpu/webgpu-dispatch-expected.txt: Removed.
  • platform/mac-highsierra-wk1/fast/canvas/webgpu/webgpu-runtime-flag-expected.txt: Removed.
  • platform/mac-highsierra-wk1/inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Removed.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/interfaces.worker-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt: Added.
  • platform/mac-wk1/inspector/canvas/recording-2d-expected.txt: Added.
1:23 PM Changeset in webkit [228484] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/service-workers/cache-storage/worker/cache-storage-match.https.html as flaky on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=177198

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:23 PM Changeset in webkit [228483] by don.olmstead@sony.com
  • 24 edits in trunk/Source/WebCore

WebCore headers should not include config.h or PlatformExportMacros.h
https://bugs.webkit.org/show_bug.cgi?id=182799

Reviewed by Darin Adler.

No new tests. No change in behavior.

  • Modules/speech/SpeechSynthesis.h:
  • bindings/js/JSDOMGlobalObject.h:
  • contentextensions/ContentExtensionError.h:
  • contentextensions/DFA.h:
  • dom/ContextDestructionObserver.h:
  • dom/DeviceOrientationClient.h:
  • dom/DeviceOrientationData.h:
  • editing/cocoa/HTMLConverter.h:
  • loader/FrameLoaderStateMachine.h:
  • loader/cache/CachedResourceHandle.h:
  • page/FrameDestructionObserver.h:
  • page/RuntimeEnabledFeatures.h:
  • platform/URL.h:
  • platform/audio/AudioHardwareListener.h:
  • platform/audio/AudioSession.h:
  • platform/graphics/Color.h:
  • platform/graphics/IntSize.h:
  • platform/graphics/transforms/AffineTransform.h:
  • platform/graphics/win/LocalWindowsContext.h:
  • platform/network/CacheValidation.h:
  • platform/network/CredentialBase.h:
  • platform/network/ResourceHandleClient.h:
  • platform/network/cf/CertificateInfo.h:
1:07 PM Changeset in webkit [228482] by rniwa@webkit.org
  • 9 edits
    1 add in trunk

REGRESSION (r223440): Copying & pasting a list from Microsoft Word to TinyMCE fails
https://bugs.webkit.org/show_bug.cgi?id=182564

Reviewed by Wenson Hsieh.

Source/WebCore:

Unfortunately, r228352 was inadaquate to fix copying & pasting of a list item from Microsoft Word into TinyMCE
in older verions of TinyMCE. This patch amends the approach taken by r228352 to make it work across the board
as well as unbreak GMail.

Turns out older versions of TinyMCE can't handle list items when computed styles are added as inline style
declarations by WebKit. To make this work, avoid adding any computed styles as inline styles within mso-list
conditionals as well as any p elements whose style attribute contains "mso-list" property. We would instead
preserve these styles by keeping Microsoft Word's CSS style rules in addition to special @list rules.

In addition, not keeping the style element of Microsoft Word in a head element as done in r228352 causes some
versions of TinyMCE to treat it as regular text, and inserting a bunch of @list rules as user visible text.
To work around this problem, we serialize the style rules as a comment (<!-- ~ -->) within a head element.

Furthermore, when Microsoft Word is in the compatibility mode, it does not generate xmlns:o as the first xmlns
declaration. Generalized the code to detect Microsoft Word's HTML declaration by looking for xmlns:o and xmlns:w
xmls declarations.

Finally, it turns out that Gmail has its own handling of list items copy & pasted from Microsoft Word, and also
needs this quirks but in the pasted HTML, not the one exposed in getData. As such, this patch also enables the
MSO list quirks in the pasted content as well as the one exposed in getData.

Tests: PasteHTML.PreservesMSOList

PasteHTML.PreservesMSOListInCompatibilityMode
PasteHTML.StripsMSOListWhenMissingMSOHTMLElement
PasteWebArchive.PreservesMSOList
PasteWebArchive.PreservesMSOListInCompatibilityMode
PasteWebArchive.StripsMSOListWhenMissingMSOHTMLElement

  • editing/HTMLInterchange.h:
  • editing/ReplaceSelectionCommand.cpp:

(WebCore::removeHeadContents): Don't remove the special style element needed for the MSO list quirks since we
don't keep the computed style as inline styles in this case.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentReader::readWebArchive): Enable the quirks in the pasted content as well as opposed to
just in DataTransfer API exposed to the JavaScript.
(WebCore::WebContentReader::readHTML): Ditto.

  • editing/markup.cpp:

(WebCore::shouldPreserveMSOLists): Added. Generalized the logic to detect a Microsoft Word document.
more xmlns declarations.
(WebCore::StyledMarkupAccumulator::shouldPreserveMSOListStyleForElement): Added.
(WebCore::StyledMarkupAccumulator::appendElement): Don't generate the second style element here for elements
with most-list properties. Instead, avoid overriding inline styles with computed styles altogether.
(WebCore::StyledMarkupAccumulator::appendNodeToPreserveMSOList): Include the style rules as well as list rules
and wrap the "style" element in a "head" element to make it compatible with older versions of TinyMCE.

Tools:

Updated assertions to make sure the trailing "}" of @list rules is includd in the style, the "style" element
is wrapped by "head" element (not present in the pasted markup since the fragment parsing algorithm strips away),
and the style content is enclosed in "<!--" and "-->".

Also use execCommand('insertHTML', ~) to insert the HTML obtained via dataTransfer.getData instead of innerHTML
to make sure our pasting code preserves the special style element for MSO list quirks.

Finally, added two more test cases for pasting content from Microsoft Word's compatibility mode.

  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PasteWebArchive.mm:

(TEST):

12:37 PM Changeset in webkit [228481] by msaboff@apple.com
  • 8 edits in trunk/Source

REGRESSION(225695) : com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::RegExp::match + 630 :: stack overflow
https://bugs.webkit.org/show_bug.cgi?id=182705

Reviewed by Mark Lam.

Source/JavaScriptCore:

Moved the pattern context buffer used by YARR JIT'ed code from a stack local to a lazily allocated
buffer on the VM. Exposed when the buffer is needed to reduce likelihood that we'd allocated it.
Guarded use of the buffer with a lock since the DFG compiler may call into YARR JIT'ed code on a
compilation thread.

  • runtime/RegExpInlines.h:

(JSC::RegExp::matchInline):

  • runtime/VM.cpp:

(JSC::VM::~VM):
(JSC::VM::acquireRegExpPatternContexBuffer):
(JSC::VM::releaseRegExpPatternContexBuffer):

  • runtime/VM.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):
(JSC::Yarr::YarrGenerator::YarrGenerator):
(JSC::Yarr::YarrGenerator::compile):

  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::usesPatternContextBuffer):
(JSC::Yarr::YarrCodeBlock::setUsesPaternContextBuffer):

Source/WTF:

Moved the setting of ENABLE_YARR_JIT_ALL_PARENS_EXPRESSIONS to Platform.h since more than just the YARR
code needs to know if that feature is enabled.

  • wtf/Platform.h:
12:31 PM Changeset in webkit [228480] by Ross Kirsling
  • 5 edits in trunk/Tools

[Tools] --wincairo should imply --64-bit by default.
https://bugs.webkit.org/show_bug.cgi?id=182753

Reviewed by Daniel Bates.

WinCairo does not currently support 32-bit and --wincairo itself should refer to a working platform.
This patch ensures x64 is determined correctly for build-webkit --no-ninja and run-webkit-tests.

  • Scripts/webkitdirs.pm:

(determinePassedArchitecture):
(shouldBuild32Bit):
(determineShouldBuild32Bit):
(determineIsWin64):

  • Scripts/webkitpy/common/config/ports.py:

(WinCairoPort.build_webkit_command):

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_wincairo_port):

  • Scripts/webkitpy/port/win.py:

(WinCairoPort):

12:17 PM Changeset in webkit [228479] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: TabBar redesign: only show allowed tabs in the available tabs context menu
https://bugs.webkit.org/show_bug.cgi?id=182721
<rdar://problem/37479019>

Reviewed by Timothy Hatcher.

In addition to only including allowed tabs in the TabBar context menu,
perform a sanity check when setting the selected tab item, since the
serialized selection index could refer to a tab that is no longer allowed.

  • UserInterface/Views/LegacyTabBar.js:

(WI.LegacyTabBar.prototype.set selectedTabBarItem):
(WI.LegacyTabBar.prototype._handleContextMenu):

  • UserInterface/Views/TabBar.js:

(WI.TabBar.prototype.set selectedTabBarItem):
(WI.TabBar.prototype._handleContextMenu):

11:47 AM Changeset in webkit [228478] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Make maximumParallelReadCount static to fix lambda capture error in WebKit::NetworkCache::Storage::traverse()
https://bugs.webkit.org/show_bug.cgi?id=182797
<rdar://problem/37540594>

Reviewed by Tim Horton.

This capture was added in r228455 and causes a build failure when
run with -Wunused-lambda-capture. Xcode also warns about it.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::traverse):

11:46 AM Changeset in webkit [228477] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test gardening
https://bugs.webkit.org/show_bug.cgi?id=182794

Patch by Alicia Boya García <aboya@igalia.com> on 2018-02-14

  • platform/gtk/TestExpectations:
11:34 AM Changeset in webkit [228476] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot + 618
https://bugs.webkit.org/show_bug.cgi?id=182798
<rdar://problem/23337253>

Reviewed by Eric Carlson.

Speculative fix for a crash in HTMLPlugInImageElement::didAddUserAgentShadowRoot.
The guess is that the m_swapRendererTimer is set, and the display state changes to
something that does not require a shadow root, but before the timer fires.
Fix this by ensuring that the timer is reset on every display state change.

  • html/HTMLPlugInElement.cpp:

(WebCore::HTMLPlugInElement::setDisplayState): Guard for sets that wouldn't
actually change value, and make sure we always reset the timer.

11:27 AM Changeset in webkit [228475] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.5

Tag Safari-606.1.5.

11:14 AM Changeset in webkit [228474] by Ryan Haddad
  • 2 edits in trunk/JSTests

Skip JSC test stress/activation-sink-default-value-tdz-error.js on debug.
https://bugs.webkit.org/show_bug.cgi?id=182526

Unreviewed test gardening.

  • stress/activation-sink-default-value-tdz-error.js:
11:07 AM Changeset in webkit [228473] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

EventDispatcher::wheelEvent uses a wrong enum values in switch
https://bugs.webkit.org/show_bug.cgi?id=182796

Reviewed by Chris Dumez.

EventDispatcher::wheelEvent is using PlatformWheelEventPhaseBegan and PlatformWheelEventPhaseEnded
but the enum type of wheelEvent.phase() is WebWheelEvent::Phase.

The enum values are indentical for both so there is no behavioral change.

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):

10:52 AM Changeset in webkit [228472] by commit-queue@webkit.org
  • 10 edits in trunk/Source/WebKit

Add C SPI for support of Website Data Store in Website Policies
https://bugs.webkit.org/show_bug.cgi?id=182698
<rdar://problem/37412008>

Patch by Maureen Daum <mdaum@apple.com> on 2018-02-14
Reviewed by Andy Estes.

Expand the API added for _WKWebsitePolicies.websiteDataStore in r225989 and r226325
to be available in the C API. In the ObjC API, we handle setting the website data
store in NavigationState::NavigationClient::decidePolicyForNavigationAction. There
we throw an exception if setting the website data store isn't supported, and then
change the website data store. The equivalent place to do this work in the C API is
in WKFramePolicyListenerUseWithPolicies. However, instead of throwing exceptions,
release asserts are used.

  • UIProcess/API/C/WKFramePolicyListener.cpp:

(WKFramePolicyListenerUseWithPolicies):
If the website policies data contains a website data store, do the same checks that
are done in NavigationState::NavigationClient::decidePolicyForNavigationAction. Namely,
that it is a valid website data store and it is a policy decision for a main frame navigation.
If these checks are met, change the website data store.

  • UIProcess/API/C/WKPage.cpp:

(WKPageUpdateWebsitePolicies):

  • UIProcess/API/C/WKWebsitePolicies.cpp:

(WKWebsitePoliciesGetDataStore):
(WKWebsitePoliciesSetDataStore):

  • UIProcess/API/C/WKWebsitePolicies.h:
  • UIProcess/WebFrameListenerProxy.cpp:

(WebKit::WebFrameListenerProxy::changeWebsiteDataStore):
(WebKit::WebFrameListenerProxy::isMainFrame):
Expose whether the frame proxy is for a main frame, which is required to verify that
website policies only specify a website data store for main frame policy decisions.

  • UIProcess/WebFrameListenerProxy.h:
  • UIProcess/WebFramePolicyListenerProxy.cpp:
  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::changeWebsiteDataStore):

  • UIProcess/WebFrameProxy.h:
10:46 AM Changeset in webkit [228471] by commit-queue@webkit.org
  • 9 edits in trunk

[Modern Media Controls] Don't use arrays as values for localisable strings
https://bugs.webkit.org/show_bug.cgi?id=182791
<rdar://problem/36007262>

Patch by Antoine Quint <Antoine Quint> on 2018-02-14
Reviewed by Dean Jackson.

Source/WebCore:

Localization tools expect localizable strings to be specified as key-value pairs where both the key and the pair
are plain strings. For the skip buttons, we used an array value to specify a replacement string. We now perform
this task in code with a centralized SkipSeconds constant defining the skip amount.

  • English.lproj/modern-media-controls-localized-strings.js:
  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/main.js:

(UIString):

  • Modules/modern-media-controls/media/skip-back-support.js:

(SkipBackSupport.prototype.buttonWasPressed):

  • Modules/modern-media-controls/media/skip-forward-support.js:

(SkipForwardSupport.prototype.buttonWasPressed):

LayoutTests:

  • media/modern-media-controls/localized-strings/replaced-string-expected.txt:
  • media/modern-media-controls/localized-strings/replaced-string.html:
10:34 AM Changeset in webkit [228470] by Ryan Haddad
  • 30 edits
    2 adds
    9 deletes in trunk

Unreviewed, rolling out r228444.

Introduced API and Layout test failures.

Reverted changeset:

"[WebAuthN] Revisit the whole async model of task dispatching,
timeout and aborting"
https://bugs.webkit.org/show_bug.cgi?id=181946
https://trac.webkit.org/changeset/228444

10:27 AM Changeset in webkit [228469] by jmarcell@apple.com
  • 4 edits
    2 adds in tags/Safari-605.1.27.2

Cherry-pick r228435. rdar://problem/37538686

10:25 AM Changeset in webkit [228468] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.27.2/Source

Versioning.

10:23 AM Changeset in webkit [228467] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.27.2

New tag.

10:07 AM Changeset in webkit [228466] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Confirm proper thread in UserGestureIndicator constructor
https://bugs.webkit.org/show_bug.cgi?id=175980

Reviewed by Daniel Bates.

Document is a main-thread object. If we enter the UserGestureIndicator constructor
on a non-main thread, we should ASSERT, not return silently.

  • dom/UserGestureIndicator.cpp:

(WebCore::UserGestureIndicator::UserGestureIndicator):

9:47 AM Changeset in webkit [228465] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Remove redundant RenderTreeBuilder methods
https://bugs.webkit.org/show_bug.cgi?id=182770
<rdar://problem/37525627>

Reviewed by Daniel Bates.

No change in functionality.

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::dropAnonymousBoxChild): Deleted.
(WebCore::RenderTreeBuilder::moveRubyChildren): Deleted.
(WebCore::RenderTreeBuilder::resolveMovedChildForMultiColumnFlow): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:

(WebCore::RenderTreeBuilder::BlockFlow::insertChild):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::insertChild):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::takeChild):

9:11 AM Changeset in webkit [228464] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderElement::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182762
<rdar://problem/37523756>

Reviewed by Daniel Bates.

This patch removes the remaining takeChild() related mutation logic from the renderers.

No change in functionality.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildTo):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::takeChild): Deleted.
(WebCore::RenderElement::takeChildInternal): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderObject.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
(WebCore::RenderTreeBuilder::takeChildFromRenderElement):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):
(WebCore::RenderTreeBuilder::Block::takeChild):
(WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::takeChild):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::takeChild): Leftover from the previous patch.

9:01 AM WebKitGTK/Gardening/Calendar edited by aboya@igalia.com
(diff)
8:21 AM Changeset in webkit [228463] by Ross Kirsling
  • 1 edit
    1 delete in trunk/Source/WebKitLegacy/mac

Remove ForwardingHeaders directory from WebKitLegacy/mac.
https://bugs.webkit.org/show_bug.cgi?id=182738

Reviewed by Darin Adler.

  • ForwardingHeaders/collector/handles/Global.h: Removed.
  • ForwardingHeaders/debugger/DebuggerCallFrame.h: Removed.
  • ForwardingHeaders/runtime/Completion.h: Removed.
  • ForwardingHeaders/runtime/Error.h: Removed.
  • ForwardingHeaders/runtime/JSCJSValue.h: Removed.
  • ForwardingHeaders/runtime/JSFunction.h: Removed.
  • ForwardingHeaders/runtime/JSLock.h: Removed.
  • ForwardingHeaders/runtime/JSObject.h: Removed.
  • ForwardingHeaders/runtime/JSString.h: Removed.
  • ForwardingHeaders/runtime/Protect.h: Removed.
  • ForwardingHeaders/runtime/SymbolTable.h: Removed.
12:07 AM WikiStart edited by fred.wang@free.fr
(diff)

Feb 13, 2018:

10:57 PM Changeset in webkit [228462] by jmarcell@apple.com
  • 25 edits in branches/safari-605-branch

Cherry-pick r228445. rdar://problem/37523940

10:57 PM Changeset in webkit [228461] by jmarcell@apple.com
  • 5 edits
    1 add in branches/safari-605-branch

Cherry-pick r228430. rdar://problem/37518683

10:57 PM Changeset in webkit [228460] by jmarcell@apple.com
  • 24 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r228420. rdar://problem/37521084

10:05 PM Changeset in webkit [228459] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r228438. rdar://problem/37521089

10:05 PM Changeset in webkit [228458] by jmarcell@apple.com
  • 44 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r228411. rdar://problem/37521089

10:05 PM Changeset in webkit [228457] by jmarcell@apple.com
  • 3 edits
    1 add in branches/safari-605-branch

Cherry-pick r228401. rdar://problem/37521078

10:05 PM Changeset in webkit [228456] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228350. rdar://problem/37523984

10:01 PM Changeset in webkit [228455] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebKit

[WinCairo] Fix build errors which come from including headers and not suitable implementation for windows
https://bugs.webkit.org/show_bug.cgi?id=182679

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-13
Reviewed by Michael Catanzaro.

  • NetworkProcess/cache/NetworkCacheBlobStorage.cpp:

(WebKit::NetworkCache::BlobStorage::add):

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::Data::mapToFile const):
(WebKit::NetworkCache::mapFile):
(WebKit::NetworkCache::adoptAndMapFile):
(WebKit::NetworkCache::readOrMakeSalt):

  • NetworkProcess/cache/NetworkCacheFileSystem.cpp:

(WebKit::NetworkCache::directoryEntryType):
(WebKit::NetworkCache::traverseDirectory):
(WebKit::NetworkCache::fileTimes):
(WebKit::NetworkCache::updateFileModificationTimeIfNeeded):

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::traverse):

  • NetworkProcess/win/SystemProxyWin.h:
  • Platform/IPC/Attachment.h:
  • Platform/Module.h:
  • Platform/SharedMemory.h:
  • PluginProcess/WebProcessConnection.cpp:
  • Shared/API/c/WKBase.h:
  • Shared/ChildProcess.cpp:
  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/ProcessAssertion.h:
  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/WebProcess.cpp:
9:07 PM Changeset in webkit [228454] by sbarati@apple.com
  • 3 edits
    1 add in trunk

putDirectIndexSlowOrBeyondVectorLength needs to convert to dictionary indexing mode always if attributes are present
https://bugs.webkit.org/show_bug.cgi?id=182755
<rdar://problem/37080864>

Reviewed by Keith Miller.

JSTests:

  • stress/always-enter-dictionary-indexing-mode-with-getter.js: Added.

(test1.o.get 10005):
(test1):
(test2.o.get 1000):
(test2):

Source/JavaScriptCore:

putDirectIndexSlowOrBeyondVectorLength with non-zero attributes only converted
the object in question to a dictionary indexing mode when the index is less than
the vector length. This makes no sense. If we're defining a getter, setter, or read
only property, we must always enter the dictionary indexing mode irrespective
of the index in relation to the vector length.

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):

8:38 PM Changeset in webkit [228453] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

REGRESSION(r228313): Membuster | macOS | All Devices | 1.5 MB
https://bugs.webkit.org/show_bug.cgi?id=182744
<rdar://problem/37463770>

Reviewed by Zalan Bujtas.

We need to respect low memory notifications explicitly now that the compiled selectors are not part of RuleData.

  • css/StyleRule.cpp:

(WebCore::StyleRule::StyleRule):

  • css/StyleRule.h:

Switch to std::unique_ptr<[]> from Vector to avoid unnecessary bloat.

  • css/StyleSheetContents.cpp:

(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseRules const):

Add a rule traversal function, similar to the existing traverseSubresources.

(WebCore::StyleSheetContents::traverseSubresources const):

Use traverseRules to implement traverseSubresources.

(WebCore::traverseSubresourcesInRules): Deleted.

  • css/StyleSheetContents.h:
  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::releaseMemory):

Release memory for compiled selectors on memory notification.

  • style/StyleScope.h:
8:33 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:32 PM Changeset in webkit [228452] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
8:25 PM Changeset in webkit [228451] by commit-queue@webkit.org
  • 63 edits in trunk

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

Regressed CMake build stability (Requested by dolmstead on
#webkit).

Reverted changeset:

"[CMake] Make WebCore headers copies"
https://bugs.webkit.org/show_bug.cgi?id=182512
https://trac.webkit.org/changeset/228431

8:15 PM Changeset in webkit [228450] by jmarcell@apple.com
  • 4 edits
    2 adds in branches/safari-605-branch

Cherry-pick r228435. rdar://problem/37518843

8:15 PM Changeset in webkit [228449] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKit

Cherry-pick r228415. rdar://problem/37518828

8:15 PM Changeset in webkit [228448] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228325. rdar://problem/37518694

8:15 PM Changeset in webkit [228447] by jmarcell@apple.com
  • 3 edits
    4 adds in branches/safari-605-branch

Cherry-pick r228299. rdar://problem/37518837

6:55 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
6:54 PM WebKitGTK/2.20.x edited by Michael Catanzaro
Review safari-605-branch backports through r228408 (diff)
6:47 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
5:40 PM Changeset in webkit [228446] by Matt Lewis
  • 32 edits in trunk

Unreviewed, rolling out r228437, r228439, and r228440.
https://bugs.webkit.org/show_bug.cgi?id=182756

Introduced LayoutTest failures (Requested by ryanhadd_ on
#webkit).

Reverted changesets:

"[Web Animations] Make KeyframeEffect target nullable and
read-write"
https://bugs.webkit.org/show_bug.cgi?id=182741
https://trac.webkit.org/changeset/228437

"Unreviewed attempt to fix build after r228437."
https://trac.webkit.org/changeset/228439

"[Web Animations] Make KeyframeEffect target nullable and
read-write"
https://bugs.webkit.org/show_bug.cgi?id=182741
https://trac.webkit.org/changeset/228440

Patch by Commit Queue <commit-queue@webkit.org> on 2018-02-13

5:36 PM Changeset in webkit [228445] by graouts@webkit.org
  • 25 edits in trunk

Removing the controls attribute from a <video> element does not tear down the controls shadow DOM nor cancel event listeners.
https://bugs.webkit.org/show_bug.cgi?id=182668
Source/WebCore:

<rdar://problem/33793004>

Reviewed by Jer Noble.

When controls were turned off for inline media players, we would remove all media controls elements from the shadow root,
but we would nevertheless continue to listen to media events and, as a result, update properties of the media controls
which would lead to requestAnimationFrame() calls that would update the detached DOM nodes.

We now only listent to media events if controls are turned on.

  • Modules/modern-media-controls/media/controls-visibility-support.js:

(ControlsVisibilitySupport.prototype.enable): Remove the mutation observer from ControlsVisibilitySupport since observing
changes to the controls attribute is now performed directly in MediaController. We need to make sure that we update the
controls however since fadesWhileIdle is turned off in the disable() call to ensure that the auto-hide behavior is disabled
as well.
(ControlsVisibilitySupport.prototype.disable): Disable the auto-hide controller as well.
(ControlsVisibilitySupport.prototype._updateControls): Remove code that has now been moved into MediaController._updateControlsAvailability().

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

(MediaController): Listen to the "play" event on the media so that we call _updateControlsAvailability() in this situation to account for
shouldForceControlsDisplay on MediaControlsHost. We also register for a mutation observer to track when the controls attribute availability
changes in which case we want to call _updateControlsAvailability() as well.
(MediaController.prototype.handleEvent): Call _updateControlsAvailability() instead of _updateiOSFullscreenProperties() which has been renamed
and expanded.
(MediaController.prototype._updateControlsIfNeeded): Call _updateControlsAvailability() after controls have been updated.
(MediaController.prototype._updateControlsAvailability): We now disable supporting media controller objects when we know that controls should
be hidden in all cases except when in fullscreen on macOS.
(MediaController.prototype._updateiOSFullscreenProperties): Deleted.

  • Modules/modern-media-controls/media/placard-support.js:

(PlacardSupport.prototype.disable): Only allow the media events required to track when to show placards when in fullscreen since inline media
players need to show the AirPlay and picture-in-picture placards even when controls are disabled.

LayoutTests:

Reviewed by Jer Noble.

Ensure controls are turned on for a number of tests that would fail otherwise since media events would not be handled by media
controls without it.

  • http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:
  • http/tests/media/modern-media-controls/pip-support/pip-support-live-broadcast.html:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-button-click.html:
  • http/tests/media/modern-media-controls/skip-back-support/skip-back-support-live-broadcast.html:
  • http/tests/media/modern-media-controls/status-support/status-support-live-broadcast.html:
  • http/tests/media/modern-media-controls/status-support/status-support-loading.html:
  • media/modern-media-controls/airplay-support/airplay-support.html:
  • media/modern-media-controls/mute-support/mute-support-media-api.html:
  • media/modern-media-controls/playback-support/playback-support-autoplay.html:
  • media/modern-media-controls/playback-support/playback-support-media-api.html:
  • media/modern-media-controls/start-support/start-support-error.html:
  • media/modern-media-controls/start-support/start-support-lowPowerMode.html:
  • media/modern-media-controls/start-support/start-support-manual-play.html:
  • media/modern-media-controls/status-support/status-support-error.html:
  • media/modern-media-controls/time-labels-support/elapsed-time.html:
  • media/modern-media-controls/time-labels-support/remaining-time.html:
  • media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html:
  • media/modern-media-controls/tracks-support/tracks-support-text-tracks.html:
  • media/modern-media-controls/volume-support/volume-support-media-api-mute.html:
  • media/modern-media-controls/volume-support/volume-support-media-api.html:
5:34 PM Changeset in webkit [228444] by jiewen_tan@apple.com
  • 29 edits
    7 copies
    8 adds
    2 deletes in trunk

[WebAuthN] Revisit the whole async model of task dispatching, timeout and aborting
https://bugs.webkit.org/show_bug.cgi?id=181946
<rdar://problem/37258262>

Reviewed by Chris Dumez.

Source/WebCore:

This patch changes the original async model from a work queue to IPC between WebProcess
and UIProcess. Since all authenticator operations must be handled in the UIProcess due
to sandboxing, this message passing IPC async model then surpasses the original multi
threading model. To cooperate that, a CredentialsMessenger class is then created and
all task dispatching code is moved thre.

As an improvement over existing code, static functions from PublicKeyCredential are
moved to AuthenticatorManager. AuthenticatorManager is made as a singleton such that
when static functions are called, they could reach the CredentialsMessenger to interact
with UIProccess. CredentialsMessenger and AuthenticatorManager are separated so later
on when other Credential types are created, they can reuse the same IPC messenger.

What's more, a mock CredentialsMessenger is then created to mock behaviors of UIProcess
for testing purpose.

Covered by existing tests.

  • DerivedSources.make:
  • Modules/credentialmanagement/BasicCredential.h:
  • Modules/credentialmanagement/CredentialsContainer.cpp:

(WebCore::CredentialsContainer::CredentialsContainer):
(WebCore::CredentialsContainer::doesHaveSameOriginAsItsAncestors):
(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::PendingPromise::PendingPromise): Deleted.
(WebCore::CredentialsContainer::dispatchTask): Deleted.

  • Modules/credentialmanagement/CredentialsContainer.h:

(WebCore::CredentialsContainer::PendingPromise::create): Deleted.

  • Modules/credentialmanagement/CredentialsMessenger.cpp: Added.

(WebCore::CredentialsMessenger::exceptionReply):
(WebCore::CredentialsMessenger::addCreationCompletionHandler):
(WebCore::CredentialsMessenger::takeCreationCompletionHandler):
(WebCore::CredentialsMessenger::addRequestCompletionHandler):
(WebCore::CredentialsMessenger::takeRequestCompletionHandler):
(WebCore::CredentialsMessenger::addQueryCompletionHandler):
(WebCore::CredentialsMessenger::takeQueryCompletionHandler):
(WebCore::getIdFromAttestationObject):

  • Modules/credentialmanagement/CredentialsMessenger.h: Added.

(WebCore::CreationReturnBundle::CreationReturnBundle):
(WebCore::AssertionReturnBundle::AssertionReturnBundle):
(WebCore::CredentialsMessenger::weakPtrFactory const):

  • Modules/webauthn/Authenticator.cpp: Removed.
  • Modules/webauthn/Authenticator.h: Removed.
  • Modules/webauthn/AuthenticatorManager.cpp: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredential.cpp.

(WebCore::AuthenticatorManagerInternal::produceClientDataJson):
(WebCore::AuthenticatorManagerInternal::produceClientDataJsonHash):
(WebCore::AuthenticatorManagerInternal::initTimer):
(WebCore::AuthenticatorManagerInternal::didTimerFire):
(WebCore::AuthenticatorManager::singleton):
(WebCore::AuthenticatorManager::setMessenger):
(WebCore::AuthenticatorManager::create const):
(WebCore::AuthenticatorManager::discoverFromExternalSource const):

  • Modules/webauthn/AuthenticatorManager.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • Modules/webauthn/AuthenticatorResponse.h:
  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredentialInternal::produceClientDataJson): Deleted.
(WebCore::PublicKeyCredentialInternal::produceClientDataJsonHash): Deleted.
(WebCore::PublicKeyCredentialInternal::getIdFromAttestationObject): Deleted.
(WebCore::PublicKeyCredential::collectFromCredentialStore): Deleted.
(WebCore::PublicKeyCredential::discoverFromExternalSource): Deleted.
(WebCore::PublicKeyCredential::store): Deleted.
(WebCore::PublicKeyCredential::create): Deleted.
(WebCore::PublicKeyCredential::rawId const): Deleted.
(WebCore::PublicKeyCredential::response const): Deleted.

  • Modules/webauthn/PublicKeyCredential.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::mockCredentialsMessenger const):

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockCredentialsMessenger.cpp: Added.

(WebCore::MockCredentialsMessenger::setAttestationObject):
(WebCore::MockCredentialsMessenger::setAssertionReturnBundle):
(WebCore::MockCredentialsMessenger::makeCredential):
(WebCore::MockCredentialsMessenger::getAssertion):
(WebCore::MockCredentialsMessenger::makeCredentialReply):
(WebCore::MockCredentialsMessenger::getAssertionReply):

  • testing/MockCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • testing/MockCredentialsMessenger.idl: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

Source/WebKit:

Dummy WebCredentialsMessenger and WebCredentialsMessengerProxy are crafted to establish
a message exchange channel between UIProcess and WebProcess.

  • DerivedSources.make:
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

(WebKit::WebCredentialsMessengerProxy::WebCredentialsMessengerProxy):
(WebKit::WebCredentialsMessengerProxy::~WebCredentialsMessengerProxy):
(WebKit::WebCredentialsMessengerProxy::makeCredential):
(WebKit::WebCredentialsMessengerProxy::getAssertion):

  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::m_configurationPreferenceValues):
(WebKit::WebPageProxy::reattachToWebProcess):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/CredentialManagement/WebCredentialsMessenger.cpp: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.

(WebKit::WebCredentialsMessenger::WebCredentialsMessenger):
(WebKit::WebCredentialsMessenger::~WebCredentialsMessenger):
(WebKit::WebCredentialsMessenger::makeCredential):
(WebKit::WebCredentialsMessenger::getAssertion):
(WebKit::WebCredentialsMessenger::makeCredentialReply):
(WebKit::WebCredentialsMessenger::getAssertionReply):

  • WebProcess/CredentialManagement/WebCredentialsMessenger.h: Copied from Source/WebCore/Modules/webauthn/AuthenticatorResponse.h.
  • WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_credentialsMessenger):
(WebKit::m_cpuLimit): Deleted.

  • WebProcess/WebPage/WebPage.h:

LayoutTests:

  • http/wpt/credential-management/credentialscontainer-store-basics.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success.https.html:
  • http/wpt/webauthn/resources/util.js:
5:02 PM Changeset in webkit [228443] by dbates@webkit.org
  • 2 edits in branches/safari-605-branch/Source/WebKit

[safari-605-branch] Fix OS X El Capitan layout test failures following r228386
(https://bugs.webkit.org/show_bug.cgi?id=182358)

Patch the safari-605 branch-specific NetworkLoad::didReceiveAuthenticationChallenge
function to notify the Web Process when the authentication challenge is blocked.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveAuthenticationChallenge):

4:08 PM Changeset in webkit [228442] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Add support for configuring WebsiteDatastore service worker and cache storage path
https://bugs.webkit.org/show_bug.cgi?id=182674

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-13
Reviewed by Chris Dumez.

Beef up WKWebsiteDataStoreConfiguration to easily set the WebsiteDataStore
service worker registration and cache storage directory path.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _initWithConfiguration:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:

(-[_WKWebsiteDataStoreConfiguration _cacheStorageDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setCacheStorageDirectory:]):
(-[_WKWebsiteDataStoreConfiguration _serviceWorkerRegistrationDirectory]):
(-[_WKWebsiteDataStoreConfiguration _setServiceWorkerRegistrationDirectory:]):

3:34 PM Changeset in webkit [228441] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderBlock::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182746
<rdar://problem/37512871>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::takeChild): Deleted.

  • rendering/RenderBlock.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::takeChildFromRenderMenuList):
(WebCore::RenderTreeBuilder::takeChildFromRenderButton):
(WebCore::RenderTreeBuilder::takeChildFromRenderGrid):
(WebCore::RenderTreeBuilder::takeChildFromRenderBlock): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::takeChild):

3:23 PM Changeset in webkit [228440] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

[Web Animations] Make KeyframeEffect target nullable and read-write
https://bugs.webkit.org/show_bug.cgi?id=182741

Additional unreviewed attempt to fix build after r228437.

  • dom/Element.h:
3:18 PM Changeset in webkit [228439] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix build after r228437.

  • dom/Element.h:
3:03 PM Changeset in webkit [228438] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Follup fix to r228411 for 32-bit builds. I missed a place where we used non vararg getter for child2().

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

2:43 PM Changeset in webkit [228437] by graouts@webkit.org
  • 32 edits in trunk

[Web Animations] Make KeyframeEffect target nullable and read-write
https://bugs.webkit.org/show_bug.cgi?id=182741

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations for tests that use null KeyframeEffect targets and tests that update their target.

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/discrete-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/visibility-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-transformed-distance-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animatable/animate-no-browsing-context-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/cancel-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/iterationComposite-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/target-expected.txt:
  • web-platform-tests/web-animations/timing-model/timelines/document-timelines-expected.txt:

Source/WebCore:

We used to completely disregard null targets, for instance not parsing keyframes, but targets
can be null and are also supposed to be read-write for KeyframeEffect. We now update the IDL
for KeyframeEffect to mark the target property as read-write and update the implementation
to correctly handle null targets by creating a StyleResolver based on the ScriptExecutionContext's
document's document element (the <html> element in practice) and not the target itself, since it
can be null.

This revealed a few issues in our implementation by allowing more WPT tests to run. So we also
ensure that:

  • we don't crash when parsing font-related properties by calling update() on the generated

RenderStyle's FontCascade when parsing keyframes.

  • CSS properties are provided as camel-case and not as hyphenated form
  • values provided in keyframes dictionaries are only read for valid properties
  • styles for effect targets are invalidated as soon as the timing model for that animation

is changed

We also rename AnimationTimeline::animationTimingModelDidChange() to AnimationTimeline::timingModelDidChange()
since the previous name didn't add useful information and we're adding a new WebAnimation::timingModelDidChange()
method, so having the two methods have a similar name made more sense.

  • animation/Animatable.idl: Call animate() with a ScriptExecutionContext rather than a ScriptState

so that the ScriptExecutionContext can be passed to the KeyframeEffectReadOnly constructor.

  • animation/AnimationEffectReadOnly.h: Add a new invalidate() method, designed to be subclassed, that

is called when the timing model for this effect or owning animation has changed.

  • animation/AnimationTimeline.cpp: Rename animationTimingModelDidChange() to timingModelDidChange().

(WebCore::AnimationTimeline::addAnimation):
(WebCore::AnimationTimeline::removeAnimation):
(WebCore::AnimationTimeline::setCurrentTime):

  • animation/AnimationTimeline.h: Rename animationTimingModelDidChange() to timingModelDidChange().

(WebCore::AnimationTimeline::timingModelDidChange):
(WebCore::AnimationTimeline::animationTimingModelDidChange): Deleted.

  • animation/DocumentTimeline.cpp: Rename animationTimingModelDidChange() to timingModelDidChange().

(WebCore::DocumentTimeline::timingModelDidChange):
(WebCore::DocumentTimeline::updateAnimations):
(WebCore::DocumentTimeline::animationTimingModelDidChange): Deleted.

  • animation/DocumentTimeline.h: Rename animationTimingModelDidChange() to timingModelDidChange().
  • animation/KeyframeEffect.cpp: Expect a ScriptExecutionContext rather than a ScriptState.

(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::setKeyframes):

  • animation/KeyframeEffect.h: Expect a ScriptExecutionContext rather than a ScriptState.
  • animation/KeyframeEffect.idl: Expect a ScriptExecutionContext rather than a ScriptState and make the

target property read-write.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::IDLAttributeNameToAnimationPropertyName): Move this function below CSSPropertyIDToIDLAttributeName
so that it can call that function. We also check that we reject CSS properties that are not provided in
camel-case form (eg. "font-size" vs. "fontSize").
(WebCore::processIterableKeyframes): Only read the JS values if we know that the provided JS property name
maps to a valid CSS property.
(WebCore::KeyframeEffectReadOnly::create): Expect a ScriptExecutionContext rather than a ScriptState.
(WebCore::KeyframeEffectReadOnly::processKeyframes): Expect a ScriptExecutionContext rather than a ScriptState
and use the context's document to get an HTML element to create a StyleResolver. We also call update() on the
generated RenderStyle's FontCascade since otherwise we would hit an ASSERT in FontCascade when parsing font-related
CSS properties.
(WebCore::KeyframeEffectReadOnly::setTarget): Notify the animation that the effect target has changed and invalidate
the style of the new target and the old targets, if any.
(WebCore::KeyframeEffectReadOnly::invalidate): Invalidate the target's style. This method is called by setTarget()
and WebAnimation::timingModelDidChange().

  • animation/KeyframeEffectReadOnly.h: Expect a ScriptExecutionContext rather than a ScriptState.
  • animation/KeyframeEffectReadOnly.idl: Expect a ScriptExecutionContext rather than a ScriptState.
  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timingModelDidChange): We add this new method such that any place in WebAnimation where we
know the animation's timing model has changed we can invalidate the associated effect, if any, as well as notify
the timeline, if any. We used to only notify the timeline and, as a result, only invalidate the associated effect
in the next display monitor refresh.
(WebCore::WebAnimation::effectTargetDidChange): This method is called in KeyframeEffectReadOnly::setTarget() to inform
the animation of the previous effect target and the new one upon a target change. This allows us to forward this information
onto the timeline so that we correctly add or remove the targets from the list of animated elements.
(WebCore::WebAnimation::setStartTime):

  • animation/WebAnimation.h: Expose the new effectTargetDidChange() and timingModelDidChange() methods.
  • dom/Element.cpp: Expect a ScriptExecutionContext rather than a ScriptState.

(WebCore::Element::animate):

  • dom/Element.h: Expect a ScriptExecutionContext rather than a ScriptState.
2:43 PM Changeset in webkit [228436] by guijemont@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[YarrJIT][ARM] We need to save r8 as it is the initial start register
https://bugs.webkit.org/show_bug.cgi?id=182157

Reviewed by Saam Barati.

Register r8 is the initial start register since r224172, so we need to
save it. We still need to save r6 as well even though it is not the
initial start register any more, since it is used by the
MacroAssembler which we use (we get crashes in some situations if we
don't save r6). This issue was discovered because
stress/regress-174044.js crashes on a raspberry pi 2 when compiled in
-O2.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generateEnter):
(JSC::Yarr::YarrGenerator::generateReturn):

2:39 PM Changeset in webkit [228435] by Antti Koivisto
  • 4 edits
    2 adds in trunk

Crash when breakpoint hit in unload handler
https://bugs.webkit.org/show_bug.cgi?id=169855
<rdar://problem/28683567>

Source/WebCore:

Reviewed by Daniel Bates.

Test: inspector/debugger/reload-paused.html

CachedRawResource::updateBuffer may generate unload event in client notify callback. If Inspector was
paused, this even would spawn a nested runloop. CachedRawResource::finishLoading would get called in
the nested loop, confusing the DocumentLoader state machine and resulting in crashes later.

  • loader/cache/CachedRawResource.cpp:

(WebCore::CachedRawResource::updateBuffer):

  • Set a bit when entering the client callback.
  • Ensure we don't re-enter updateBuffer.
  • If finishLoading got delayed during client callback, do it at the end.

(WebCore::CachedRawResource::finishLoading):

If we are in updateBuffer client callback, save the buffer and bail out.

  • loader/cache/CachedRawResource.h:

LayoutTests:

Reviewed by Daniel Bates and Joseph Pecoraro.

  • inspector/debugger/reload-paused-expected.txt: Added.
  • inspector/debugger/reload-paused.html: Added.
2:36 PM Changeset in webkit [228434] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: don't return an error if resizing/moving a window has no effect
https://bugs.webkit.org/show_bug.cgi?id=182742

Reviewed by Tim Horton.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::resizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::moveWindowOfBrowsingContext):
Unify the behavior for all ports. Don't raise an error if the command was
idempotent (by mistake or not). It should not be an error to re-maximize a window.

2:17 PM Changeset in webkit [228433] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Added a redirect for /nightly to /downloads/.
https://bugs.webkit.org/show_bug.cgi?id=182743
<rdar://problem/35126697>

Reviewed by Lucas Forschler.

  • .htaccess:
1:58 PM Changeset in webkit [228432] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderBlockFlow::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182739
<rdar://problem/37506542>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::takeChild): Deleted.

  • rendering/RenderBlockFlow.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::multiColumnRelativeWillBeRemoved): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::takeChild):

  • rendering/updating/RenderTreeBuilderBlock.h:
1:31 PM Changeset in webkit [228431] by don.olmstead@sony.com
  • 63 edits in trunk

[CMake] Make WebCore headers copies
https://bugs.webkit.org/show_bug.cgi?id=182512

Reviewed by Keith Miller.

Source/WebCore:

No new tests. No change in behavior.

  • CMakeLists.txt:
  • PlatformAppleWin.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:
  • platform/Cairo.cmake:
  • platform/Curl.cmake:
  • platform/FreeType.cmake:
  • platform/GStreamer.cmake:
  • platform/ImageDecoders.cmake:
  • platform/TextureMapper.cmake:
  • platform/graphics/win/LocalWindowsContext.h:

Source/WebKit:

  • CMakeLists.txt:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/webrtc/NetworkRTCMonitor.h:
  • PlatformWPE.cmake:
  • Scripts/generate-forwarding-headers.pl:
  • Shared/gtk/WebEventFactory.cpp:
  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:
  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

Source/WebKitLegacy:

  • PlatformWin.cmake:

Source/WebKitLegacy/win:

  • FullscreenVideoController.h:
  • Plugins/PluginDatabase.cpp:
  • Plugins/PluginDatabaseWin.cpp:
  • Plugins/PluginDebug.cpp:
  • Plugins/PluginMainThreadScheduler.cpp:
  • Plugins/PluginMessageThrottlerWin.cpp:
  • Plugins/PluginPackage.cpp:
  • Plugins/PluginPackageWin.cpp:
  • Plugins/PluginStream.cpp:
  • Plugins/PluginView.cpp:
  • Plugins/PluginViewWin.cpp:
  • Plugins/npapi.cpp:
  • WebKitMessageLoop.cpp:
  • WebKitPrefix.h:
  • storage/WebDatabaseProvider.cpp:

Tools:

  • DumpRenderTree/CMakeLists.txt:
  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npapi.h:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npfunctions.h:
  • DumpRenderTree/TestNetscapePlugIn/ForwardingHeaders/WebKit/npruntime.h:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/win/TestWebCoreStubs.cpp:

(loadResourceIntoBuffer):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityControllerWPE.cpp:
  • WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
12:46 PM Changeset in webkit [228430] by Chris Dumez
  • 5 edits
    1 add in trunk

REGRESSION (r228299): Broke reader mode in Safari
https://bugs.webkit.org/show_bug.cgi?id=182697
<rdar://problem/37399012>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Rework the fix for r228299 to be more targeted. I moved the policy check
cencelation from FrameLoader::stopLoading() to NavigationScheduler::schedule()
when a pending load is cancelled by another load. I have verified that the
sites fixed by r228299 still work with this more limited change. However,
reader mode is now working again.

The issue seems to be that we tell CFNetwork to continue with the load after
receiving the response, even if the client has not responded to the
decidePolicyForNavigationResponse delegate yet. As a result, CFNetwork sends
us the resource data and we may commit the provisional load before receiving
the policy response from the client. When the provisional load is committed,
we call FrameLoader::stopLoading() which after r228299 cancelled pending
policy checks. Because we did not wait for the policy check response to
commit the load, we would cancel it which would make the load fail.

The real fix here would be to make not tell CFNetwork to continue until after
we've received the policy delegate response. However, this is a larger and
riskier change at this point. I will follow-up on this issue.

Covered by new API test.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::schedule):

Tools:

Add API test coverage for responding asynchronously to the decidePolicyForNavigationResponse
delegate.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/AsyncPolicyForNavigationResponse.mm: Added.

(-[TestAsyncNavigationDelegate webView:didFinishNavigation:]):
(-[TestAsyncNavigationDelegate webView:didFailNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[TestAsyncNavigationDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[TestAsyncNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(TestWebKitAPI::TEST):

12:36 PM Changeset in webkit [228429] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderSVG*::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182736
<rdar://problem/37503107>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::takeChild): Deleted.

  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGInline.cpp:

(WebCore::RenderSVGInline::takeChild): Deleted.

  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::takeChild): Deleted.

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

(WebCore::RenderSVGText::takeChild): Deleted.

  • rendering/svg/RenderSVGText.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):

  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::takeChild):

  • rendering/updating/RenderTreeBuilderSVG.h:
11:52 AM Changeset in webkit [228428] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderGrid::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182734
<rdar://problem/37500876>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::takeChild): Deleted.

  • rendering/RenderGrid.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChildFromRenderGrid):

  • rendering/updating/RenderTreeBuilder.h:
11:14 AM Changeset in webkit [228427] by n_wang@apple.com
  • 31 edits
    13 deletes in trunk

AX: Remove AccessibleNode class
https://bugs.webkit.org/show_bug.cgi?id=182724
<rdar://problem/37486024>

Reviewed by Chris Fleizach.

Source/WebCore:

Removed all the AccessibleNode related code since AOM has
an alternate direction now.

No new tests. Made sure existing tests don't break.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::findModalNodes):
(WebCore::nodeHasRole):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::handleModalChange):
(WebCore::isNodeAriaVisible):

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::isMultiSelectable const):

  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::readOnlyValue const):

  • accessibility/AccessibilityAllInOne.cpp:
  • accessibility/AccessibilityImageMapLink.cpp:

(WebCore::AccessibilityImageMapLink::roleValue const):
(WebCore::AccessibilityImageMapLink::accessibilityDescription const):

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled const):
(WebCore::AccessibilityListBoxOption::stringValue const):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isEnabled const):
(WebCore::AccessibilityNodeObject::isPressed const):
(WebCore::AccessibilityNodeObject::isChecked const):
(WebCore::AccessibilityNodeObject::isMultiSelectable const):
(WebCore::AccessibilityNodeObject::isRequired const):
(WebCore::AccessibilityNodeObject::headingLevel const):
(WebCore::AccessibilityNodeObject::valueDescription const):
(WebCore::AccessibilityNodeObject::valueForRange const):
(WebCore::AccessibilityNodeObject::maxValueForRange const):
(WebCore::AccessibilityNodeObject::minValueForRange const):
(WebCore::AccessibilityNodeObject::ariaAccessibilityDescription const):
(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityNodeObject::textForLabelElement const):
(WebCore::AccessibilityNodeObject::alternativeText const):
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea const):
(WebCore::AccessibilityNodeObject::hierarchicalLevel const):
(WebCore::shouldUseAccessibilityObjectInnerText):
(WebCore::AccessibilityNodeObject::stringValue const):
(WebCore::accessibleNameForNode):
(WebCore::AccessibilityNodeObject::determineAriaRoleAttribute const):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::readOnlyValue const):
(WebCore::AccessibilityObject::supportsAutoComplete const):
(WebCore::AccessibilityObject::autoCompleteValue const):
(WebCore::AccessibilityObject::ariaIsMultiline const):
(WebCore::AccessibilityObject::invalidStatus const):
(WebCore::AccessibilityObject::supportsCurrent const):
(WebCore::AccessibilityObject::currentState const):
(WebCore::AccessibilityObject::roleDescription const):
(WebCore::AccessibilityObject::keyShortcutsValue const):
(WebCore::AccessibilityObject::placeholderValue const):
(WebCore::AccessibilityObject::supportsARIAAttributes const):
(WebCore::AccessibilityObject::sortDirection const):
(WebCore::AccessibilityObject::supportsHasPopup const):
(WebCore::AccessibilityObject::hasPopupValue const):
(WebCore::AccessibilityObject::supportsSetSize const):
(WebCore::AccessibilityObject::supportsPosInSet const):
(WebCore::AccessibilityObject::setSize const):
(WebCore::AccessibilityObject::posInSet const):
(WebCore::AccessibilityObject::supportsPressed const):
(WebCore::AccessibilityObject::supportsExpanded const):
(WebCore::AccessibilityObject::isExpanded const):
(WebCore::AccessibilityObject::checkboxOrRadioValue const):
(WebCore::AccessibilityObject::pressedIsPresent const):
(WebCore::AccessibilityObject::isAXHidden const):
(WebCore::AccessibilityObject::ariaActiveDescendantReferencingElements const):
(WebCore::AccessibilityObject::ariaDetailsElements const):
(WebCore::AccessibilityObject::ariaDetailsReferencingElements const):
(WebCore::AccessibilityObject::ariaErrorMessageElements const):
(WebCore::AccessibilityObject::ariaErrorMessageReferencingElements const):
(WebCore::AccessibilityObject::setIsIgnoredFromParentDataForChild):
(WebCore::AccessibilityObject::hasProperty const): Deleted.
(WebCore::AccessibilityObject::stringValueForProperty const): Deleted.
(WebCore::AccessibilityObject::boolValueForProperty const): Deleted.
(WebCore::AccessibilityObject::intValueForProperty const): Deleted.
(WebCore::AccessibilityObject::unsignedValueForProperty const): Deleted.
(WebCore::AccessibilityObject::doubleValueForProperty const): Deleted.
(WebCore::AccessibilityObject::elementValueForProperty const): Deleted.
(WebCore::AccessibilityObject::elementsFromProperty const): Deleted.
(WebCore::AccessibilityObject::elementsReferencedByProperty const): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement const):
(WebCore::AccessibilityRenderObject::defaultObjectInclusion const):
(WebCore::AccessibilityRenderObject::isSelected const):
(WebCore::AccessibilityRenderObject::activeDescendant const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::orientation const):
(WebCore::AccessibilityRenderObject::canSetExpandedAttribute const):
(WebCore::AccessibilityRenderObject::liveRegionStatus const):
(WebCore::AccessibilityRenderObject::liveRegionRelevant const):
(WebCore::AccessibilityRenderObject::liveRegionAtomic const):
(WebCore::AccessibilityRenderObject::isBusy const):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::isDataTable const):
(WebCore::AccessibilityTable::axColumnCount const):
(WebCore::AccessibilityTable::axRowCount const):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::axColumnIndex const):
(WebCore::AccessibilityTableCell::axRowIndex const):
(WebCore::AccessibilityTableCell::axColumnSpan const):
(WebCore::AccessibilityTableCell::axRowSpan const):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::axColumnIndex const):
(WebCore::AccessibilityTableRow::axRowIndex const):

  • accessibility/AccessibleNode.cpp: Removed.
  • accessibility/AccessibleNode.h: Removed.
  • accessibility/AccessibleNode.idl: Removed.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • bindings/js/WebCoreBuiltinNames.h:
  • dom/Element.cpp:

(WebCore::Element::canContainRangeEndPoint const):
(WebCore::Element::accessibleNode): Deleted.
(WebCore::Element::existingAccessibleNode const): Deleted.

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

(WebCore::ElementRareData::accessibleNode const): Deleted.
(WebCore::ElementRareData::setAccessibleNode): Deleted.

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemAccessibilityText const):

LayoutTests:

  • accessibility/accessibility-object-model-expected.txt: Removed.
  • accessibility/accessibility-object-model.html: Removed.
  • accessibility/mac/AOM-bool-properties-expected.txt: Removed.
  • accessibility/mac/AOM-bool-properties.html: Removed.
  • accessibility/mac/AOM-number-properties-expected.txt: Removed.
  • accessibility/mac/AOM-number-properties.html: Removed.
  • accessibility/mac/AOM-relation-property-expected.txt: Removed.
  • accessibility/mac/AOM-relation-property.html: Removed.
  • accessibility/mac/AOM-string-properties-expected.txt: Removed.
  • accessibility/mac/AOM-string-properties.html: Removed.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
11:08 AM Changeset in webkit [228426] by jmarcell@apple.com
  • 2 edits in tags/Safari-605.1.27.1/Source/WebCore

Apply patch. rdar://problem/37485750

CoreAudioCaptureSourceIOSListener should be a WebProcess singleton

11:03 AM Changeset in webkit [228425] by jmarcell@apple.com
  • 7 edits in tags/Safari-605.1.27.1/Source

Versioning.

10:53 AM Changeset in webkit [228424] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.27.1

New tag.

10:24 AM Changeset in webkit [228423] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderButton::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182732
<rdar://problem/37500564>

Reviewed by Antti Koivisto.

No change of functionality.

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setInnerRenderer):
(WebCore::RenderButton::takeChild): Deleted.

  • rendering/RenderButton.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChildFromRenderButton):

  • rendering/updating/RenderTreeBuilder.h:
10:10 AM Changeset in webkit [228422] by caitp@igalia.com
  • 22 edits
    6 moves
    4 deletes in trunk

[JSC] cache TaggedTemplate arrays by callsite rather than by contents
https://bugs.webkit.org/show_bug.cgi?id=182717

Reviewed by Yusuke Suzuki.

https://github.com/tc39/ecma262/pull/890 imposes a change to template
literals, to allow template callsite arrays to be collected when the
code containing the tagged template call is collected. This spec change
has received concensus and been ratified.

This change eliminates the eternal map associating template contents
with arrays.

JSTests:

  • stress/tagged-template-object-collect.js: Renamed from JSTests/stress/tagged-template-registry-key-collect.js.
  • stress/tagged-template-object.js: Renamed from JSTests/stress/tagged-template-registry-key.js.
  • stress/tagged-templates-identity.js:
  • stress/template-string-tags-eval.js:
  • test262.yaml:

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantRegisters):

  • bytecode/DirectEvalCodeCache.cpp:

(JSC::DirectEvalCodeCache::setSlow):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::allowDirectEvalCache const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addTemplateObjectConstant):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::addTemplateRegistryKeyConstant): Deleted.

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

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/ParserModes.h:
  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::allowDirectEvalCache const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::templateRegistry): Deleted.

  • runtime/JSTemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistry.cpp.

(JSC::JSTemplateObjectDescriptor::JSTemplateObjectDescriptor):
(JSC::JSTemplateObjectDescriptor::create):
(JSC::JSTemplateObjectDescriptor::destroy):
(JSC::JSTemplateObjectDescriptor::createTemplateObject):

  • runtime/JSTemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/JSTemplateRegistryKey.h.

(JSC::isTemplateObjectDescriptor):

  • runtime/JSTemplateRegistryKey.cpp: Removed.
  • runtime/TemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.cpp.

(JSC::TemplateObjectDescriptor::~TemplateObjectDescriptor):

  • runtime/TemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.h.

(JSC::TemplateObjectDescriptor::operator== const):
(JSC::TemplateObjectDescriptor::operator!= const):
(JSC::TemplateObjectDescriptor::Hasher::hash):
(JSC::TemplateObjectDescriptor::Hasher::equal):
(JSC::TemplateObjectDescriptor::create):
(JSC::TemplateObjectDescriptor::TemplateObjectDescriptor):
(JSC::TemplateObjectDescriptor::calculateHash):

  • runtime/TemplateRegistry.h: Removed.
  • runtime/TemplateRegistryKeyTable.cpp: Removed.
  • runtime/TemplateRegistryKeyTable.h: Removed.
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::templateRegistryKeyTable): Deleted.

  • runtime/VMEntryScope.cpp:
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantRegisters):

  • bytecode/DirectEvalCodeCache.cpp:

(JSC::DirectEvalCodeCache::setSlow):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::allowDirectEvalCache const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addTemplateObjectConstant):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::addTemplateRegistryKeyConstant): Deleted.

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

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/ParserModes.h:
  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::allowDirectEvalCache const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::templateRegistry): Deleted.

  • runtime/JSTemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistry.cpp.

(JSC::JSTemplateObjectDescriptor::JSTemplateObjectDescriptor):
(JSC::JSTemplateObjectDescriptor::create):
(JSC::JSTemplateObjectDescriptor::destroy):
(JSC::JSTemplateObjectDescriptor::createTemplateObject):

  • runtime/JSTemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/JSTemplateRegistryKey.h.

(JSC::isTemplateObjectDescriptor):

  • runtime/JSTemplateRegistryKey.cpp: Removed.
  • runtime/TemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.cpp.

(JSC::TemplateObjectDescriptor::~TemplateObjectDescriptor):

  • runtime/TemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.h.

(JSC::TemplateObjectDescriptor::operator== const):
(JSC::TemplateObjectDescriptor::operator!= const):
(JSC::TemplateObjectDescriptor::Hasher::hash):
(JSC::TemplateObjectDescriptor::Hasher::equal):
(JSC::TemplateObjectDescriptor::create):
(JSC::TemplateObjectDescriptor::TemplateObjectDescriptor):
(JSC::TemplateObjectDescriptor::calculateHash):

  • runtime/TemplateRegistry.h: Removed.
  • runtime/TemplateRegistryKeyTable.cpp: Removed.
  • runtime/TemplateRegistryKeyTable.h: Removed.
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::templateRegistryKeyTable): Deleted.

  • runtime/VMEntryScope.cpp:
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantRegisters):

  • bytecode/DirectEvalCodeCache.cpp:

(JSC::DirectEvalCodeCache::setSlow):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::allowDirectEvalCache const):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::addTemplateObjectConstant):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::addTemplateRegistryKeyConstant): Deleted.

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

(JSC::Parser<LexerType>::parseInner):
(JSC::Parser<LexerType>::parseMemberExpression):

  • parser/Parser.h:
  • parser/ParserModes.h:
  • runtime/EvalExecutable.h:

(JSC::EvalExecutable::allowDirectEvalCache const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::JSGlobalObject):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::templateRegistry): Deleted.

  • runtime/JSTemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistry.cpp.

(JSC::JSTemplateObjectDescriptor::JSTemplateObjectDescriptor):
(JSC::JSTemplateObjectDescriptor::create):
(JSC::JSTemplateObjectDescriptor::destroy):
(JSC::JSTemplateObjectDescriptor::createTemplateObject):

  • runtime/JSTemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/JSTemplateRegistryKey.h.

(JSC::isTemplateObjectDescriptor):

  • runtime/JSTemplateRegistryKey.cpp: Removed.
  • runtime/TemplateObjectDescriptor.cpp: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.cpp.

(JSC::TemplateObjectDescriptor::~TemplateObjectDescriptor):

  • runtime/TemplateObjectDescriptor.h: Renamed from Source/JavaScriptCore/runtime/TemplateRegistryKey.h.

(JSC::TemplateObjectDescriptor::operator== const):
(JSC::TemplateObjectDescriptor::operator!= const):
(JSC::TemplateObjectDescriptor::Hasher::hash):
(JSC::TemplateObjectDescriptor::Hasher::equal):
(JSC::TemplateObjectDescriptor::create):
(JSC::TemplateObjectDescriptor::TemplateObjectDescriptor):
(JSC::TemplateObjectDescriptor::calculateHash):

  • runtime/TemplateRegistry.h: Removed.
  • runtime/TemplateRegistryKeyTable.cpp: Removed.
  • runtime/TemplateRegistryKeyTable.h: Removed.
  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:

(JSC::VM::templateRegistryKeyTable): Deleted.

  • runtime/VMEntryScope.cpp:
9:29 AM Changeset in webkit [228421] by Yusuke Suzuki
  • 5 edits
    2 adds in trunk

Support GetArrayLength on ArrayStorage in the FTL
https://bugs.webkit.org/show_bug.cgi?id=182625

Reviewed by Saam Barati.

JSTests:

  • stress/array-storage-length.js: Added.

(shouldBe):
(testInBound):
(testUncountable):
(testSlowPutInBound):
(testSlowPutUncountable):

  • stress/undecided-length.js: Added.

(shouldBe):
(test2):

Source/JavaScriptCore:

This patch adds GetArrayLength and CheckArray + ArrayStorage & SlowPutArrayStorage support for FTL.
The implementation is trivial; just porting one in DFG to FTL.

This fixes several FTL compilation failures in web-tooling-benchmarks while we still need to support
ArrayPush, ArrayPop, Arrayify, and PutByVal.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::checkArray):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::isArrayTypeForArrayify):
(JSC::FTL::DFG::LowerDFGToB3::isArrayTypeForCheckArray):

9:02 AM Changeset in webkit [228420] by fpizlo@apple.com
  • 24 edits in trunk/Source/JavaScriptCore

Lock down JSFunction
https://bugs.webkit.org/show_bug.cgi?id=182652

Reviewed by Saam Barati.

This poisons pointers in JSFunction and puts all of the types in the JSFunction hierarchy in
isospaces.

This is so neutral on JetStream: 0.01% slower with p = 0.969211.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileNewFunction):
(JSC::DFG::SpeculativeJIT::compileCreateThis):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::TrustedImmPtr):
(JSC::DFG::SpeculativeJIT::TrustedImmPtr::weakPointer):
(JSC::DFG::SpeculativeJIT::TrustedImmPtr::weakPoisonedPointer):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetExecutable):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::weakPointer):
(JSC::FTL::DFG::LowerDFGToB3::weakPoisonedPointer):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::weakPointer):
(JSC::FTL::Output::weakPoisonedPointer):

  • heap/MarkedSpace.cpp:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_this):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSAsyncFunction.h:

(JSC::JSAsyncFunction::subspaceFor):

  • runtime/JSAsyncGeneratorFunction.h:

(JSC::JSAsyncGeneratorFunction::subspaceFor):

  • runtime/JSBoundFunction.h:

(JSC::JSBoundFunction::subspaceFor):

  • runtime/JSCPoison.h:
  • runtime/JSCustomGetterSetterFunction.h:

(JSC::JSCustomGetterSetterFunction::subspaceFor):

  • runtime/JSFunction.h:

(JSC::JSFunction::subspaceFor):

  • runtime/JSGeneratorFunction.h:

(JSC::JSGeneratorFunction::subspaceFor):

  • runtime/JSNativeStdFunction.h:

(JSC::JSNativeStdFunction::subspaceFor):

  • runtime/VM.cpp:

(JSC::VM::VM):

  • runtime/VM.h:
  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyWrapperFunction.h:
8:51 AM Changeset in webkit [228419] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] whitelist iokit-get-properties
https://bugs.webkit.org/show_bug.cgi?id=182722
<rdar://problem/30929165>

Reviewed by Eric Carlson.

Update the iOS sandbox to block access to IOKit properties that are not needed for
legitimate WebContent process use. This brings the iOS sandbox in line with the
work done under macOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:11 AM Changeset in webkit [228418] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[Gstreamer][MSE] Add string representation for GStreamerMediaSample
https://bugs.webkit.org/show_bug.cgi?id=180262

Reviewed by Xabier Rodriguez-Calvar.

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

(WebCore::GStreamerMediaSample::offsetTimestampsBy):

  • platform/graphics/gstreamer/mse/GStreamerMediaSample.h:

Feb 12, 2018:

11:59 PM Changeset in webkit [228417] by Chris Fleizach
  • 8 edits in trunk

AX: defer focusedUIElement notifications
https://bugs.webkit.org/show_bug.cgi?id=182643
<rdar://problem/37394310>

Reviewed by Zalan Bujtas.

Source/WebCore:

Deferring focus changes for accessibility has a number of benefits.

1) Reduces the chance of calling into layout during layout.
2) Coalesces multiple focus notifications that would be needlessly sent.
3) Improves performance by not calling out to the accessibility notification machinery during layout.

In this patch, I also started making more AXObjectCache calls private. This will reduce the chance that clients
will call into AXObjectCache during unexpected times.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::deferFocusedUIElementChangeIfNeeded):
(WebCore::conditionallyAddNodeToFilterList):
(WebCore::filterVectorPairForRemoval):
(WebCore::filterMapForRemoval):
(WebCore::filterListForRemoval):
(WebCore::AXObjectCache::prepareForDocumentDestruction):
(WebCore::AXObjectCache::performDeferredCacheUpdate):

  • accessibility/AXObjectCache.h:
  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

LayoutTests:

  • accessibility/mac/aria-menu-item-selected-notification.html:

Rewrite test to accomodate that focus changes happen asynchronously.

  • accessibility/mac/selection-notification-focus-change-expected.txt:
  • platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt:

The order of notifications is different now that focus changes happen later.

10:08 PM Changeset in webkit [228416] by wilander@apple.com
  • 20 edits
    6 adds in trunk

Resource Load Statistics: Classify resources as prevalent based on redirects to other prevalent resources
https://bugs.webkit.org/show_bug.cgi?id=182664
<rdar://problem/37372572>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html

http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html
http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logFrameNavigation):

We now collect statistics on top frame navigational redirects too, both to and from.

(WebCore::ResourceLoadObserver::logSubresourceLoading):

We now collect statistics on redirects from in addition to the existing redirects to.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode const):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):

  • loader/ResourceLoadStatistics.h:

Three new fields:

  • topFrameUniqueRedirectsTo
  • topFrameUniqueRedirectsFrom
  • subresourceUniqueRedirectsFrom

Source/WebKit:

  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:

(WebKit::ResourceLoadStatisticsClassifier::hasPrevalentResourceCharacteristics):

Unique top frame redirects now counts toward classification as prevalent.

  • Shared/WebCoreArgumentCoders.cpp:

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

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsSubresourceUniqueRedirectFrom):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectTo):
(WKWebsiteDataStoreSetStatisticsTopFrameUniqueRedirectFrom):

Test infrastructure.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

Bumped the statistics model to 11 because of the added fields.

(WebKit::WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain):

This function back traces redirect chains to classify domains
that have redirected to a newly classified prevalent resource.

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):

Now uses the new convenience function WebResourceLoadStatisticsStore::setPrevalentResource().

(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):

New convenience function to make sure we always call
WebResourceLoadStatisticsStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain()
and capture redirect chains backward.

(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectFrom):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::setTopFrameUniqueRedirectFrom):

Test infrastructure.

  • UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestRunner::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestRunner::setStatisticsTopFrameUniqueRedirectFrom):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::setStatisticsSubresourceUniqueRedirectFrom):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectTo):
(WTR::TestController::setStatisticsTopFrameUniqueRedirectFrom):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html: Added.
  • platform/wk2/TestExpectations:

New tests added as [ Pass ].

8:44 PM Changeset in webkit [228415] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit

Update NetworkCache::Storage::lastStableVersion after r226349
https://bugs.webkit.org/show_bug.cgi?id=182723
<rdar://problem/37469554>

Reviewed by Ryosuke Niwa.

  • NetworkProcess/cache/NetworkCacheStorage.h:

Allow deleting version 11 caches.

7:26 PM Changeset in webkit [228414] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderMenuList::takeChild() to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182715
<rdar://problem/37477050>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderMenuList.cpp:

(RenderMenuList::takeChild): Deleted.

  • rendering/RenderMenuList.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::takeChildFromRenderMenuList):

  • rendering/updating/RenderTreeBuilder.h:
6:26 PM Changeset in webkit [228413] by Ross Kirsling
  • 6 edits
    3 moves
    1 delete in trunk/Source/WebCore

Unify UserAgent into WebCore/platform.
https://bugs.webkit.org/show_bug.cgi?id=182716

Reviewed by Michael Catanzaro.

No change in functionality.

  • SourcesCocoa.txt:
  • SourcesIOS.txt:
  • SourcesMac.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • page/cocoa/UserAgent.h: Removed.
  • platform/UserAgent.h:
  • platform/cocoa/UserAgentCocoa.mm: Renamed from Source/WebCore/page/cocoa/UserAgent.mm.
  • platform/ios/UserAgentIOS.mm: Renamed from Source/WebCore/page/ios/UserAgentIOS.mm.
  • platform/mac/UserAgentMac.mm: Renamed from Source/WebCore/page/mac/UserAgentMac.mm.
5:28 PM Changeset in webkit [228412] by commit-queue@webkit.org
  • 13 edits in trunk

[Web Animations] Support the copy constructors for KeyframeEffectReadOnly and KeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=182712

Patch by Antoine Quint <Antoine Quint> on 2018-02-12
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update test expectations for tests relevant to the copy constructors.

  • web-platform-tests/web-animations/interfaces/KeyframeEffect/copy-constructor-expected.txt:
  • web-platform-tests/web-animations/interfaces/KeyframeEffect/idlharness-expected.txt:

Source/WebCore:

We now support the variants for the KeyframeEffectReadOnly and KeyframeEffect constructors where
another KeyframeEffectReadOnly is provided as a source. All timing, keyframe and target properties
of that source are copied on the newly-constructed KeyframeEffect.

To support copying properties, we add new copyPropertiesFromSource() methods to
AnimationEffectTimingReadOnly and KeyframeEffectReadOnly to encapsulate copying various
member variables in the relevant classes. Copying properties of the backing KeyframeList
is performed in KeyframeEffectReadOnly::copyPropertiesFromSource() via public KeyframeList
methods.

  • animation/AnimationEffectTimingReadOnly.cpp:

(WebCore::AnimationEffectTimingReadOnly::copyPropertiesFromSource):

  • animation/AnimationEffectTimingReadOnly.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::create):

  • animation/KeyframeEffect.h:
  • animation/KeyframeEffect.idl:
  • animation/KeyframeEffectOptions.idl:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::create):
(WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):

  • animation/KeyframeEffectReadOnly.h:
  • animation/KeyframeEffectReadOnly.idl:
5:12 PM Changeset in webkit [228411] by sbarati@apple.com
  • 44 edits in trunk/Source/JavaScriptCore

Add a GetIndexMask node and make it an input to GetByVal for array and typed array accesses in DFG SSA
https://bugs.webkit.org/show_bug.cgi?id=182633
<rdar://problem/37441037>

Reviewed by Keith Miller.

This patch introduces a GetIndexMask node to DFG SSA. This is an input to
GetByVal for the GetByVal variants that do conservative index masking.
The reason I'm adding this node is I realized there were loads of
the butterfly index mask inside loops that B3 couldn't reason about
because B3 can't arbitrarily hoist loads out of loops if those loops
have side exits (because the side exit might be protecting the safety of the
load). However, for these loops I analyzed, the DFG would be able to hoist
these loads out of loops because it knows about JS semantics to correctly
reason about the safety of hoisting the load.

This is a 1% speedup on JetStream on Mac and iOS in my testing.

This patch also adds some infrastructure for eliminating and doing CSE on
varargs nodes. Because this patch makes GetByVal a varargs node, I ran into
issues we never had before. We never had a varargs node that could be CSEd or be
hoisted out of a loop until I made GetByVal varargs. To make it all work,
I added a CheckVarargs node. This is just like Check, but it's varargs.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGAdjacencyList.h:

(JSC::DFG::AdjacencyList::AdjacencyList):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGBasicBlock.cpp:

(JSC::DFG::BasicBlock::replaceTerminal):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::findTerminal const):

  • dfg/DFGBasicBlockInlines.h:

(JSC::DFG::BasicBlock::replaceTerminal):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::mergeBlocks):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::canonicalizeGetLocalFor):
(JSC::DFG::CPSRethreadingPhase::canonicalizeFlushOrPhantomLocalFor):

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

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

  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::run):
(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::remove):
(JSC::DFG::Node::convertToIdentityOn):

  • dfg/DFGNode.h:

(JSC::DFG::Node::replaceWith):

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGPureValue.cpp:

(JSC::DFG::PureValue::dump const):

  • dfg/DFGPureValue.h:

(JSC::DFG::PureValue::PureValue):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGSSALoweringPhase.cpp:

(JSC::DFG::SSALoweringPhase::handleNode):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGStoreBarrierClusteringPhase.cpp:
  • dfg/DFGValidate.cpp:
  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayMask):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::maskedIndex):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):

5:04 PM Changeset in webkit [228410] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.28

Tag Safari-605.1.28.

5:04 PM Changeset in webkit [228409] by jmarcell@apple.com
  • 1 delete in tags/Safari-605.1.28

Deleting tag.

5:00 PM Changeset in webkit [228408] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

5:00 PM Changeset in webkit [228407] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228389. rdar://problem/37475107

5:00 PM Changeset in webkit [228406] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228229. rdar://problem/37475107

5:00 PM Changeset in webkit [228405] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Apply patch. rdar://problem/37470882

CoreAudioCaptureSourceIOSListener should be a WebProcess singleton

4:59 PM Changeset in webkit [228404] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.1.28

Tag Safari-605.1.28.

3:58 PM Changeset in webkit [228403] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked multiple http/tests/resourceLoadStatistics tests as flaky and skip.

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:43 PM Changeset in webkit [228402] by mark.lam@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

Miscellaneous refactoring of offlineasm.
https://bugs.webkit.org/show_bug.cgi?id=182702
<rdar://problem/37467887>

Reviewed by Filip Pizlo.

  1. Refactor out the emission of $asm.comment, $asm.codeOrigin, $asm.annotation, and $asm.debugAnnotation into a recordMetaData method. This standardizes how we emit this metadata and makes all backends do it the same way.
  1. Add the ability to include custom offlineasm scripts from WebKitAdditions in the future.
  • offlineasm/arm.rb:
  • offlineasm/arm64.rb:
  • offlineasm/ast.rb:
  • offlineasm/backends.rb:
  • offlineasm/cloop.rb:
  • offlineasm/config.rb:
  • offlineasm/mips.rb:
  • offlineasm/risc.rb:
  • offlineasm/x86.rb:
3:41 PM Changeset in webkit [228401] by sbarati@apple.com
  • 3 edits
    1 add in trunk

DFG::emitCodeToGetArgumentsArrayLength needs to handle NewArrayBuffer/PhantomNewArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=182706
<rdar://problem/36833681>

Reviewed by Filip Pizlo.

JSTests:

  • stress/get-array-length-phantom-new-array-buffer.js: Added.

(effects):
(foo):

Source/JavaScriptCore:

When we added support for PhantomNewArrayBuffer, we forgot to update
the emitCodeToGetArgumentsArrayLength function to handle PhantomNewArrayBuffer.
This patch adds that support. It's trivial to generate the length for
a PhantomNewArrayBuffer node since it's a constant buffer, with a constant
length.

  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::emitCodeToGetArgumentsArrayLength):

3:28 PM Changeset in webkit [228400] by Alan Bujtas
  • 16 edits in trunk/Source/WebCore

[RenderTreeBuilder] Introduce RenderTreebuilder::takeChild
https://bugs.webkit.org/show_bug.cgi?id=182707
<rdar://problem/37473433>

Reviewed by Antti Koivisto.

All takeChild calls should go through RenderTreeBuilder::takeChild from now on.
This patch also moves the Ruby related takeChild calls to RenderTreeBuilder.

No change in functionality.

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::takeChild):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::removeAndDestroyChild):

  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::takeChild):

  • rendering/RenderRuby.cpp:

(WebCore::RenderRubyAsInline::takeChild): Deleted.
(WebCore::RenderRubyAsBlock::takeChild): Deleted.

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

(WebCore::RenderRubyRun::takeChild): Deleted.

  • rendering/RenderRubyRun.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::takeChild):
(WebCore::RenderTreeBuilder::takeChildFromRenderRubyAsInline): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderRubyAsBlock): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderRubyRun): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):

  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::RenderTreeBuilder::List::updateItemMarker):

  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::takeChild):

  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):

2:56 PM Changeset in webkit [228399] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.4.3/Source

Versioning.

2:50 PM Changeset in webkit [228398] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.4.3

New tag.

2:49 PM Changeset in webkit [228397] by mark.lam@apple.com
  • 6 edits in trunk/Source

Add more support for pointer preparations.
https://bugs.webkit.org/show_bug.cgi?id=182703
<rdar://problem/37469451>

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • llint/LLIntData.h:

(JSC::LLInt::getCodePtr):

  • llint/LLIntPCRanges.h:

(JSC::LLInt::isLLIntPC):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

Source/WTF:

  • wtf/PointerPreparations.h:
2:37 PM Changeset in webkit [228396] by Ross Kirsling
  • 2 edits in trunk/Tools

download-latest-github-release .py should not use "browser download URL".
https://bugs.webkit.org/show_bug.cgi?id=182646

Reviewed by Per Arne Vollan.

  • Scripts/download-latest-github-release.py:

Download request should be a proper GitHub API call and should actually include the token when applicable.
(Also clean up usage of args and print while we're in here.)

2:34 PM Changeset in webkit [228395] by dino@apple.com
  • 2 edits
    7 adds in branches/safari-605-branch/LayoutTests

Update expected results for this branch.
<rdar://problem/37331740>

  • fast/canvas/webgpu/webgpu-dispatch.html:
  • platform/mac-highsierra-wk1/fast/canvas/webgl/webgl2-getActiveUniforms-expected.txt: Added.
  • platform/mac-highsierra-wk1/fast/canvas/webgpu/webgpu-dispatch-expected.txt: Added.
  • platform/mac-highsierra-wk1/fast/canvas/webgpu/webgpu-runtime-flag-expected.txt: Added.
  • platform/mac-highsierra-wk1/inspector/canvas/create-context-webgpu-expected.txt: Added.
  • platform/mac-highsierra-wk1/inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Added.
2:23 PM Changeset in webkit [228394] by dino@apple.com
  • 1 edit
    38 adds in branches/safari-605-branch/LayoutTests

Update expected results for this branch.
<rdar://problem/37331740>

  • platform/mac-highsierra-wk1/TestExpectations: Added.
  • platform/mac-highsierra-wk1/fast/canvas/offscreen-enabled-expected.txt: Added.
  • platform/mac-highsierra-wk1/fast/mediacapturefromelement/CanvasCaptureMediaStream-imagebitmaprenderingcontext-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/2dcontext/imagebitmap/createImageBitmap-sizing-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/2dcontext/imagebitmap/drawImage-ImageBitmap-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/offscreen-canvas/getContext-webgl-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/offscreen-canvas/offscreencanvas.constructor-expected.txt: Added.
  • platform/mac-highsierra-wk1/http/wpt/offscreen-canvas/transferToImageBitmap-empty-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-sizeOverflow-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/bitmaprenderer-as-imagesource-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-expected.txt: Added.
  • platform/mac-highsierra-wk1/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/transferFromImageBitmap-detached-expected.txt: Added.
  • platform/mac-highsierra-wk1/inspector/canvas/requestContent-bitmaprenderer-expected.txt: Added.
  • platform/mac/inspector/canvas/recording-2d-expected.png: Added.
  • platform/mac/inspector/canvas/requestContent-bitmaprenderer-expected.png: Added.
2:07 PM Changeset in webkit [228393] by Wenson Hsieh
  • 4 edits
    2 adds in trunk/Source/WebKit

[Extra zoom mode] Add support for <input type='time'> using time picker UI
https://bugs.webkit.org/show_bug.cgi?id=182683
<rdar://problem/35143162>

Reviewed by Tim Horton.

Adds support for showing a time picker when an input of type time is focused in extra zoomed mode.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _stopAssistingNode]):
(-[WKContentView presentTimePickerViewController:]):
(-[WKContentView dismissTimePickerViewController:]):

Add helpers to dismiss and present the time picker view controller.

(-[WKContentView presentViewControllerForAssistedNode:]):

When focusing InputType::Time, present a time picker. Additionally, tweak the logic here to use the generic text
input view controller as a fallback when the other input view controllers (number pads, select menus and time
pickers thus far) are not relevant. This prevents us from completely being unable to edit form controls that are
currently unsupported.

(-[WKContentView textInputController:didCommitText:]):
(-[WKContentView textInputControllerDidRequestDismissal:]):

Tweak WKContentView for changes to WKTextFormControlViewControllerDelegate.

(-[WKContentView actionNameForFocusedFormControlController:]):

Adjust this implementation to hide the focused form control "Go" button for selects and time inputs. This
currently doesn't work for these form controls because it relies on implicit form submission; this should be
fixed by future changes, after which we should revert this adjustment.

(-[WKContentView _wheelChangedWithEvent:]):

Delegate wheel events to the time picker if needed.

(-[WKContentView textInputController:didRequestDismissalWithAction:]): Deleted.

Renamed to -textInputControllerDidRequestDismissal:.

  • UIProcess/ios/forms/WKTimePickerViewController.h: Added.
  • UIProcess/ios/forms/WKTimePickerViewController.mm: Added.
  • WebKit.xcodeproj/project.pbxproj:
1:57 PM Changeset in webkit [228392] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked http/tests/workers/service/basic-messageport.html as flaky on macOS WK2.
https://bugs.webkit.org/show_bug.cgi?id=182630

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:49 PM Changeset in webkit [228391] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[RenderTreeBuilder] Move RenderBlock::dropAnonymousBoxChild to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=182704
<rdar://problem/37469469>

Reviewed by Antti Koivisto.

All the callsites are now in RenderTreeBuilder.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::dropAnonymousBoxChild): Deleted.

  • rendering/RenderBlock.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::removeAnonymousWrappersForInlineChildrenIfNeeded):
(WebCore::RenderTreeBuilder::dropAnonymousBoxChild):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::takeChild):
(WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):

  • rendering/updating/RenderTreeBuilderBlock.h:
12:40 PM Changeset in webkit [228390] by Matt Lewis
  • 7 edits in trunk

Unreviewed, rolling out r228376.

This caused accessibility/mac/selection-notification-focus-
change.html to become flaky on macOS.

Reverted changeset:

"AX: defer focusedUIElement notifications"
https://bugs.webkit.org/show_bug.cgi?id=182643
https://trac.webkit.org/changeset/228376

12:30 PM Changeset in webkit [228389] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

[iOS] media tests failing ASSERT_NOT_REACHED() in WebCore::VideoFullscreenInterfaceAVKit::cleanupFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=182527

Reviewed by Alexey Proskuryakov.

Temporarily remove an assertion from VideoFullscreenInterfaceAVKit to stop tests from crashing on iOS
while the root cause is being investigated.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):

12:28 PM Changeset in webkit [228388] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix missing exception check in RegExpObject::matchGlobal().
https://bugs.webkit.org/show_bug.cgi?id=182701
<rdar://problem/37465865>

Reviewed by Michael Saboff.

This issue was discovered when running JSC tests on an asm LLInt build with
JSC_useJIT=false.

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::matchGlobal):

12:12 PM Changeset in webkit [228387] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[RenderTreeBuilder] Remove redundant RenderTreeBuilder instance
https://bugs.webkit.org/show_bug.cgi?id=182700
<rdar://problem/37463958>

Reviewed by Antti Koivisto.

  • rendering/RenderView.cpp:

(WebCore::RenderView::willBeDestroyed):

11:52 AM Changeset in webkit [228386] by jmarcell@apple.com
  • 19 edits
    9 adds in branches/safari-605-branch

Cherry-pick r228231. rdar://problem/37408885

11:51 AM Changeset in webkit [228385] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228045. rdar://problem/37465611

10:58 AM Changeset in webkit [228384] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark imported/mozilla/svg/conditions-07.svg as a flaky failure on Windows.

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:43 AM Changeset in webkit [228383] by pvollan@apple.com
  • 2 edits in trunk/Tools

EWS should run Windows tests.
https://bugs.webkit.org/show_bug.cgi?id=177967

Reviewed by Lucas Forschler.

This will help catch regressions at an early stage.

  • Scripts/webkitpy/common/config/ews.json:
10:32 AM Changeset in webkit [228382] by jmarcell@apple.com
  • 5 edits in branches/safari-605-branch/Source/WebInspectorUI

Cherry-pick r228362. rdar://problem/37449316

10:32 AM Changeset in webkit [228381] by jmarcell@apple.com
  • 10 edits in branches/safari-605-branch

Cherry-pick r228326. rdar://problem/37460483

10:32 AM Changeset in webkit [228380] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Tools

Cherry-pick r227910. rdar://problem/37460507

9:59 AM Changeset in webkit [228379] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped webgl/1.0.3/conformance/rendering/many-draw-calls.html on iOS Simulator Debug WK2
https://bugs.webkit.org/show_bug.cgi?id=182144

Unreviewed test expectations.

  • platform/ios-wk2/TestExpectations:
9:24 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
9:21 AM Changeset in webkit [228378] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Polish translation of WebKitGTK+ for 2.20
https://bugs.webkit.org/show_bug.cgi?id=182693

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2018-02-12
Rubber-stamped by Michael Catanzaro.

  • pl.po:
9:17 AM Changeset in webkit [228377] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.4.2/Source

Versioning.

9:16 AM Changeset in webkit [228376] by Chris Fleizach
  • 7 edits in trunk

AX: defer focusedUIElement notifications
https://bugs.webkit.org/show_bug.cgi?id=182643
<rdar://problem/37394310>

Reviewed by Zalan Bujtas.

Source/WebCore:

Deferring focus changes for accessibility has a number of benefits.

1) Reduces the chance of calling into layout during layout.
2) Coalesces multiple focus notifications that would be needlessly sent.
3) Improves performance by not calling out to the accessibility notification machinery during layout.

In this patch, I also started making more AXObjectCache calls private. This will reduce the chance that clients
will call into AXObjectCache during unexpected times.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::deferFocusedUIElementChangeIfNeeded):
(WebCore::conditionallyAddNodeToFilterList):
(WebCore::filterVectorPairForRemoval):
(WebCore::filterMapForRemoval):
(WebCore::filterListForRemoval):
(WebCore::AXObjectCache::prepareForDocumentDestruction):
(WebCore::AXObjectCache::performDeferredCacheUpdate):

  • accessibility/AXObjectCache.h:
  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

LayoutTests:

  • accessibility/mac/aria-menu-item-selected-notification.html:

Rewrite test to accomodate that focus changes happen asynchronously.

  • accessibility/mac/selection-notification-focus-change-expected.txt:
  • platform/mac-wk2/accessibility/mac/selection-notification-focus-change-expected.txt:

The order of notifications is different now that focus changes happen later.

9:13 AM Changeset in webkit [228375] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.4.2

New tag.

8:56 AM Changeset in webkit [228374] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Update test expectations for some tests which are failing on only one ews Windows bot.
https://bugs.webkit.org/show_bug.cgi?id=182694

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:30 AM Changeset in webkit [228373] by Michael Catanzaro
  • 166 edits
    1 add in trunk/Source/WebKit

[GTK] Unify builds for platform-specific files in WebKit layer
https://bugs.webkit.org/show_bug.cgi?id=182450

Reviewed by Carlos Garcia Campos.

Add most GTK-specific sources to unified build. API files are exempted, except for the DOM
API. Files shared with PluginProcessGTK2 are also exempted. Finally, files with name
conflicts in headers, which appears difficult to fix, are also exempted.

  • CMakeLists.txt:
  • NetworkProcess/CustomProtocols/soup/LegacyCustomProtocolManagerSoup.cpp:
  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:
  • NetworkProcess/soup/NetworkProcessSoup.cpp:
  • NetworkProcess/soup/NetworkSessionSoup.cpp:
  • NetworkProcess/soup/RemoteNetworkingContextSoup.cpp:
  • Platform/classifier/ResourceLoadStatisticsClassifier.cpp:
  • PlatformGTK.cmake:
  • PluginProcess/unix/PluginControllerProxyUnix.cpp:
  • Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
  • Shared/CoordinatedGraphics/SimpleViewportController.cpp:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
  • Shared/Plugins/Netscape/unix/NetscapePluginModuleUnix.cpp:
  • Shared/Plugins/unix/PluginSearchPath.cpp:
  • Shared/cairo/ShareableBitmapCairo.cpp:
  • Shared/glib/WebContextMenuItemGlib.cpp:
  • Shared/glib/WebErrorsGlib.cpp:
  • Shared/gtk/ArgumentCodersGtk.cpp:
  • Shared/gtk/NativeWebKeyboardEventGtk.cpp:
  • Shared/gtk/ProcessExecutablePathGtk.cpp:
  • Shared/gtk/WebErrorsGtk.cpp:
  • Shared/gtk/WebEventFactory.cpp:
  • Shared/linux/WebMemorySamplerLinux.cpp:
  • Shared/soup/WebCoreArgumentCodersSoup.cpp:
  • Shared/soup/WebErrorsSoup.cpp:
  • SourcesGTK.txt: Added.
  • UIProcess/AcceleratedDrawingAreaProxy.cpp:
  • UIProcess/Automation/cairo/WebAutomationSessionCairo.cpp:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:
  • UIProcess/BackingStore.cpp:
  • UIProcess/DrawingAreaProxyImpl.cpp:
  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:
  • UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
  • UIProcess/WebStorage/StorageManager.cpp:
  • UIProcess/cairo/BackingStoreCairo.cpp:
  • UIProcess/gtk/AcceleratedBackingStore.cpp:
  • UIProcess/gtk/DragAndDropHandler.cpp:
  • UIProcess/gtk/GestureController.cpp:
  • UIProcess/gtk/HardwareAccelerationManager.cpp:
  • UIProcess/gtk/InputMethodFilter.cpp:
  • UIProcess/gtk/TextCheckerGtk.cpp:
  • UIProcess/gtk/WaylandCompositor.cpp:
  • UIProcess/gtk/WebColorPickerGtk.cpp:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:
  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:
  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
  • WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp:

(webkit_dom_attr_dom_event_target_init):
(webkit_dom_attr_set_property):
(webkit_dom_attr_get_property):
(webkit_dom_attr_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_cdata_section_dom_event_target_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_css_rule_set_property):
(webkit_dom_css_rule_get_property):
(webkit_dom_css_rule_class_init):

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

(webkit_dom_css_rule_list_get_property):
(webkit_dom_css_rule_list_class_init):

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

(webkit_dom_css_style_declaration_set_property):
(webkit_dom_css_style_declaration_get_property):
(webkit_dom_css_style_declaration_class_init):

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

(webkit_dom_css_style_sheet_get_property):
(webkit_dom_css_style_sheet_class_init):

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

(webkit_dom_css_value_set_property):
(webkit_dom_css_value_get_property):
(webkit_dom_css_value_class_init):

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

(webkit_dom_character_data_dom_event_target_init):
(webkit_dom_character_data_set_property):
(webkit_dom_character_data_get_property):
(webkit_dom_character_data_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_client_rect_get_property):
(webkit_dom_client_rect_class_init):

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

(webkit_dom_client_rect_list_get_property):
(webkit_dom_client_rect_list_class_init):

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

(webkit_dom_comment_dom_event_target_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_dom_selection_get_property):
(webkit_dom_dom_selection_class_init):

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

(webkit_dom_dom_token_list_set_property):
(webkit_dom_dom_token_list_get_property):
(webkit_dom_dom_token_list_class_init):

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

(webkit_dom_dom_window_dom_event_target_init):
(webkit_dom_dom_window_set_property):
(webkit_dom_dom_window_get_property):
(webkit_dom_dom_window_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_document_dom_event_target_init):
(webkit_dom_document_set_property):
(webkit_dom_document_get_property):
(webkit_dom_document_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_document_fragment_dom_event_target_init):
(webkit_dom_document_fragment_get_property):
(webkit_dom_document_fragment_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_document_type_dom_event_target_init):
(webkit_dom_document_type_get_property):
(webkit_dom_document_type_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_element_dom_event_target_init):
(webkit_dom_element_set_property):
(webkit_dom_element_get_property):
(webkit_dom_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_event_set_property):
(webkit_dom_event_get_property):
(webkit_dom_event_class_init):

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

(webkit_dom_file_get_property):
(webkit_dom_file_class_init):

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

(webkit_dom_file_list_get_property):
(webkit_dom_file_list_class_init):

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

(webkit_dom_html_anchor_element_dom_event_target_init):
(webkit_dom_html_anchor_element_set_property):
(webkit_dom_html_anchor_element_get_property):
(webkit_dom_html_anchor_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_applet_element_dom_event_target_init):
(webkit_dom_html_applet_element_set_property):
(webkit_dom_html_applet_element_get_property):
(webkit_dom_html_applet_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_area_element_dom_event_target_init):
(webkit_dom_html_area_element_set_property):
(webkit_dom_html_area_element_get_property):
(webkit_dom_html_area_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_br_element_dom_event_target_init):
(webkit_dom_html_br_element_set_property):
(webkit_dom_html_br_element_get_property):
(webkit_dom_html_br_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_base_element_dom_event_target_init):
(webkit_dom_html_base_element_set_property):
(webkit_dom_html_base_element_get_property):
(webkit_dom_html_base_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_body_element_dom_event_target_init):
(webkit_dom_html_body_element_set_property):
(webkit_dom_html_body_element_get_property):
(webkit_dom_html_body_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_button_element_dom_event_target_init):
(webkit_dom_html_button_element_set_property):
(webkit_dom_html_button_element_get_property):
(webkit_dom_html_button_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_canvas_element_dom_event_target_init):
(webkit_dom_html_canvas_element_set_property):
(webkit_dom_html_canvas_element_get_property):
(webkit_dom_html_canvas_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_collection_get_property):
(webkit_dom_html_collection_class_init):

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

(webkit_dom_html_d_list_element_dom_event_target_init):
(webkit_dom_html_d_list_element_set_property):
(webkit_dom_html_d_list_element_get_property):
(webkit_dom_html_d_list_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_directory_element_dom_event_target_init):
(webkit_dom_html_directory_element_set_property):
(webkit_dom_html_directory_element_get_property):
(webkit_dom_html_directory_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_div_element_dom_event_target_init):
(webkit_dom_html_div_element_set_property):
(webkit_dom_html_div_element_get_property):
(webkit_dom_html_div_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_document_dom_event_target_init):
(webkit_dom_html_document_set_property):
(webkit_dom_html_document_get_property):
(webkit_dom_html_document_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_element_dom_event_target_init):
(webkit_dom_html_element_set_property):
(webkit_dom_html_element_get_property):
(webkit_dom_html_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_embed_element_dom_event_target_init):
(webkit_dom_html_embed_element_set_property):
(webkit_dom_html_embed_element_get_property):
(webkit_dom_html_embed_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_field_set_element_dom_event_target_init):
(webkit_dom_html_field_set_element_get_property):
(webkit_dom_html_field_set_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_font_element_dom_event_target_init):
(webkit_dom_html_font_element_set_property):
(webkit_dom_html_font_element_get_property):
(webkit_dom_html_font_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_form_element_dom_event_target_init):
(webkit_dom_html_form_element_set_property):
(webkit_dom_html_form_element_get_property):
(webkit_dom_html_form_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_frame_element_dom_event_target_init):
(webkit_dom_html_frame_element_set_property):
(webkit_dom_html_frame_element_get_property):
(webkit_dom_html_frame_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_frame_set_element_dom_event_target_init):
(webkit_dom_html_frame_set_element_set_property):
(webkit_dom_html_frame_set_element_get_property):
(webkit_dom_html_frame_set_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_hr_element_dom_event_target_init):
(webkit_dom_html_hr_element_set_property):
(webkit_dom_html_hr_element_get_property):
(webkit_dom_html_hr_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_head_element_dom_event_target_init):
(webkit_dom_html_head_element_set_property):
(webkit_dom_html_head_element_get_property):
(webkit_dom_html_head_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_heading_element_dom_event_target_init):
(webkit_dom_html_heading_element_set_property):
(webkit_dom_html_heading_element_get_property):
(webkit_dom_html_heading_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_html_element_dom_event_target_init):
(webkit_dom_html_html_element_set_property):
(webkit_dom_html_html_element_get_property):
(webkit_dom_html_html_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_iframe_element_dom_event_target_init):
(webkit_dom_html_iframe_element_set_property):
(webkit_dom_html_iframe_element_get_property):
(webkit_dom_html_iframe_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_image_element_dom_event_target_init):
(webkit_dom_html_image_element_set_property):
(webkit_dom_html_image_element_get_property):
(webkit_dom_html_image_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_input_element_dom_event_target_init):
(webkit_dom_html_input_element_set_property):
(webkit_dom_html_input_element_get_property):
(webkit_dom_html_input_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_li_element_dom_event_target_init):
(webkit_dom_html_li_element_set_property):
(webkit_dom_html_li_element_get_property):
(webkit_dom_html_li_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_label_element_dom_event_target_init):
(webkit_dom_html_label_element_set_property):
(webkit_dom_html_label_element_get_property):
(webkit_dom_html_label_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_legend_element_dom_event_target_init):
(webkit_dom_html_legend_element_set_property):
(webkit_dom_html_legend_element_get_property):
(webkit_dom_html_legend_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_link_element_dom_event_target_init):
(webkit_dom_html_link_element_set_property):
(webkit_dom_html_link_element_get_property):
(webkit_dom_html_link_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_map_element_dom_event_target_init):
(webkit_dom_html_map_element_set_property):
(webkit_dom_html_map_element_get_property):
(webkit_dom_html_map_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_marquee_element_dom_event_target_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_menu_element_dom_event_target_init):
(webkit_dom_html_menu_element_set_property):
(webkit_dom_html_menu_element_get_property):
(webkit_dom_html_menu_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_meta_element_dom_event_target_init):
(webkit_dom_html_meta_element_set_property):
(webkit_dom_html_meta_element_get_property):
(webkit_dom_html_meta_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_mod_element_dom_event_target_init):
(webkit_dom_html_mod_element_set_property):
(webkit_dom_html_mod_element_get_property):
(webkit_dom_html_mod_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_o_list_element_dom_event_target_init):
(webkit_dom_html_o_list_element_set_property):
(webkit_dom_html_o_list_element_get_property):
(webkit_dom_html_o_list_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_object_element_dom_event_target_init):
(webkit_dom_html_object_element_set_property):
(webkit_dom_html_object_element_get_property):
(webkit_dom_html_object_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_opt_group_element_dom_event_target_init):
(webkit_dom_html_opt_group_element_set_property):
(webkit_dom_html_opt_group_element_get_property):
(webkit_dom_html_opt_group_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_option_element_dom_event_target_init):
(webkit_dom_html_option_element_set_property):
(webkit_dom_html_option_element_get_property):
(webkit_dom_html_option_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_options_collection_set_property):
(webkit_dom_html_options_collection_get_property):
(webkit_dom_html_options_collection_class_init):

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

(webkit_dom_html_paragraph_element_dom_event_target_init):
(webkit_dom_html_paragraph_element_set_property):
(webkit_dom_html_paragraph_element_get_property):
(webkit_dom_html_paragraph_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_param_element_dom_event_target_init):
(webkit_dom_html_param_element_set_property):
(webkit_dom_html_param_element_get_property):
(webkit_dom_html_param_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_pre_element_dom_event_target_init):
(webkit_dom_html_pre_element_set_property):
(webkit_dom_html_pre_element_get_property):
(webkit_dom_html_pre_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_quote_element_dom_event_target_init):
(webkit_dom_html_quote_element_set_property):
(webkit_dom_html_quote_element_get_property):
(webkit_dom_html_quote_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_script_element_dom_event_target_init):
(webkit_dom_html_script_element_set_property):
(webkit_dom_html_script_element_get_property):
(webkit_dom_html_script_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_select_element_dom_event_target_init):
(webkit_dom_html_select_element_set_property):
(webkit_dom_html_select_element_get_property):
(webkit_dom_html_select_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_style_element_dom_event_target_init):
(webkit_dom_html_style_element_set_property):
(webkit_dom_html_style_element_get_property):
(webkit_dom_html_style_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_caption_element_dom_event_target_init):
(webkit_dom_html_table_caption_element_set_property):
(webkit_dom_html_table_caption_element_get_property):
(webkit_dom_html_table_caption_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_cell_element_dom_event_target_init):
(webkit_dom_html_table_cell_element_set_property):
(webkit_dom_html_table_cell_element_get_property):
(webkit_dom_html_table_cell_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_col_element_dom_event_target_init):
(webkit_dom_html_table_col_element_set_property):
(webkit_dom_html_table_col_element_get_property):
(webkit_dom_html_table_col_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_element_dom_event_target_init):
(webkit_dom_html_table_element_set_property):
(webkit_dom_html_table_element_get_property):
(webkit_dom_html_table_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_row_element_dom_event_target_init):
(webkit_dom_html_table_row_element_set_property):
(webkit_dom_html_table_row_element_get_property):
(webkit_dom_html_table_row_element_class_init):
(webkit_dom_html_table_row_element_insert_cell):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_table_section_element_dom_event_target_init):
(webkit_dom_html_table_section_element_set_property):
(webkit_dom_html_table_section_element_get_property):
(webkit_dom_html_table_section_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_text_area_element_dom_event_target_init):
(webkit_dom_html_text_area_element_set_property):
(webkit_dom_html_text_area_element_get_property):
(webkit_dom_html_text_area_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_title_element_dom_event_target_init):
(webkit_dom_html_title_element_set_property):
(webkit_dom_html_title_element_get_property):
(webkit_dom_html_title_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_html_u_list_element_dom_event_target_init):
(webkit_dom_html_u_list_element_set_property):
(webkit_dom_html_u_list_element_get_property):
(webkit_dom_html_u_list_element_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_keyboard_event_get_property):
(webkit_dom_keyboard_event_class_init):

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

(webkit_dom_media_list_set_property):
(webkit_dom_media_list_get_property):
(webkit_dom_media_list_class_init):

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

(webkit_dom_mouse_event_get_property):
(webkit_dom_mouse_event_class_init):

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

(webkit_dom_named_node_map_get_property):
(webkit_dom_named_node_map_class_init):

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

(webkit_dom_node_dom_event_target_init):
(webkit_dom_node_set_property):
(webkit_dom_node_get_property):
(webkit_dom_node_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_node_iterator_get_property):
(webkit_dom_node_iterator_class_init):

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

(webkit_dom_node_list_get_property):
(webkit_dom_node_list_class_init):

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

(webkitDOMObjectSetProperty):
(webkit_dom_object_class_init):

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

(webkit_dom_processing_instruction_dom_event_target_init):
(webkit_dom_processing_instruction_get_property):
(webkit_dom_processing_instruction_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_range_get_property):
(webkit_dom_range_class_init):

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

(webkit_dom_style_sheet_set_property):
(webkit_dom_style_sheet_get_property):
(webkit_dom_style_sheet_class_init):

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

(webkit_dom_style_sheet_list_get_property):
(webkit_dom_style_sheet_list_class_init):

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

(webkit_dom_text_dom_event_target_init):
(webkit_dom_text_get_property):
(webkit_dom_text_class_init):
(webkit_dom_event_target_init): Deleted.

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

(webkit_dom_tree_walker_get_property):
(webkit_dom_tree_walker_class_init):

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

(webkit_dom_ui_event_get_property):
(webkit_dom_ui_event_class_init):

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

(webkit_dom_wheel_event_get_property):
(webkit_dom_wheel_event_class_init):

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

(webkit_dom_xpath_result_get_property):
(webkit_dom_xpath_result_class_init):

  • WebProcess/InjectedBundle/glib/InjectedBundleGlib.cpp:
  • WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
  • WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp:
  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:
  • WebProcess/WebCoreSupport/curl/WebFrameNetworkingContext.cpp:
  • WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:
  • WebProcess/WebCoreSupport/gtk/WebDragClientGtk.cpp:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
  • WebProcess/WebCoreSupport/gtk/WebPopupMenuGtk.cpp:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:
  • WebProcess/WebPage/AcceleratedSurface.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:
  • WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:
  • WebProcess/gtk/WaylandCompositorDisplay.cpp:
  • WebProcess/gtk/WebProcessMainGtk.cpp:
8:14 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:10 AM Changeset in webkit [228372] by dino@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228349. rdar://problem/37411410

Feb 11, 2018:

11:33 PM Changeset in webkit [228371] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

WebDriver: addCookie command should prepend a dot to domain if missing
https://bugs.webkit.org/show_bug.cgi?id=182328
<rdar://problem/37116398>

Reviewed by Michael Catanzaro.

RFC 2965: If an explicitly specified value does not start with a dot, the user agent supplies a leading dot.

Fixes: imported/w3c/webdriver/tests/cookies/add_cookie.py::test_add_domain_cookie

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::addSingleCookie):

11:32 PM Changeset in webkit [228370] by guijemont@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] JSC needs to be built with -latomic
https://bugs.webkit.org/show_bug.cgi?id=182610

Reviewed by Žan Doberšek.

Since r228149, on MIPS we need to link with -latomic, because
atomic_fetch_add_8 is not available as a compiler intrinsic.

  • CMakeLists.txt:
10:22 PM Changeset in webkit [228369] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Source/WebKit

[WinCairo] Add WKBaseWin.h
https://bugs.webkit.org/show_bug.cgi?id=182681

Patch by Yousuke Kimoto <yousuke.kimoto@sony.com> on 2018-02-11
Reviewed by Yusuke Suzuki.

  • PlatformWin.cmake:
  • Shared/API/c/win/WKBaseWin.h: Added.
5:54 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
5:52 PM WebKitGTK/2.20.x edited by Michael Catanzaro
Review safari-605-branch for backports through r228364 (diff)
12:09 PM Changeset in webkit [228368] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Scrolling sometimes jumps around
https://bugs.webkit.org/show_bug.cgi?id=178519

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> on 2018-02-11
Reviewed by Michael Catanzaro.

  • platform/gtk/ScrollAnimatorGtk.cpp:

(WebCore::ScrollAnimatorGtk::computeVelocity): use -1 as the multiplier for the accumulated deltas,
since all we need is to make them negative. Multiplying by -1000 leads to very high velocities being
returned, causing the viewport to scroll to the end of the page.

Note: See TracTimeline for information about the timeline view.