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

Timeline



Mar 29, 2018:

10:41 PM Changeset in webkit [230100] by graouts@webkit.org
  • 14 edits in trunk

[Web Animations] Correctly obtain the timing function for a given keyframe
https://bugs.webkit.org/show_bug.cgi?id=184146

Reviewed by Dean Jackson.

Source/WebCore:

The way we would get the timing function for a given KeyframeValue stored in a KeyframeList was really suboptimal.
When keyframes were created, we would set the animated element's style on each keyframe, and set keyframe-specific
properties and values on top. When figuring out the timing function for a KeyframeValue, we would look at its render
style, go through its list of animations, which could include animations that are irrelevant to this specific keyframe
list since all animations from the animated element are referenced, and we would have to look up the correct animation
by name and get the timing function, even though the timing function stored on the animation was now specific to this
particular keyframe.

We now simply set a m_timingFunction member on a KeyframeValue, which is null if no explicit animation-timing-function
was provided for this keyframe in CSS, and otherwise set to a valid TimingFunction.

This fixes our behavior for a 4 existing animation tests when opted into the CSS Animations and CSS Transitions as
Web Animations feature.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::timingFunctionForKeyframeAtIndex):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty const):

  • platform/animation/TimingFunction.cpp:

(WebCore::TimingFunction::createFromCSSText):
(WebCore::TimingFunction::createFromCSSValue):

  • platform/animation/TimingFunction.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeValue::timingFunction const): Deleted.

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeValue::timingFunction const):
(WebCore::KeyframeValue::setTimingFunction):

LayoutTests:

Make 4 tests opt into CSS Animations and CSS Transitions as Web Animations.

  • animations/keyframe-timing-functions-transform.html:
  • animations/keyframe-timing-functions.html:
  • animations/keyframe-timing-functions2.html:
  • animations/missing-keyframe-properties-timing-function.html:
10:33 PM Changeset in webkit [230099] by rniwa@webkit.org
  • 6 edits
    1 copy in trunk

Copying a list from Microsoft Word to TinyMCE fails when mso-list is on tags other than P
https://bugs.webkit.org/show_bug.cgi?id=182954
<rdar://problem/37713141>

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug by relaxing the restriction that we only preserve mso-list on p.

Tests: PasteHTML.PreservesMSOListOnH4

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::shouldPreserveMSOListStyleForElement):

Tools:

Added a test case for a HTML generated by Microsoft Word which sets mso-list on h4.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/mso-list-compat-mode.html: Fixed the file path.
  • TestWebKitAPI/Tests/WebKitCocoa/mso-list-on-h4.html: Added.
10:13 PM Changeset in webkit [230098] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Add some pointer profiling support to B3 and Air.
https://bugs.webkit.org/show_bug.cgi?id=184165
<rdar://problem/39022125>

Reviewed by JF Bastien.

  • b3/B3LowerMacros.cpp:
  • b3/B3LowerMacrosAfterOptimizations.cpp:
  • b3/B3MathExtras.cpp:
  • b3/B3ReduceStrength.cpp:
  • b3/air/AirCCallSpecial.cpp:

(JSC::B3::Air::CCallSpecial::generate):

  • b3/air/AirCCallSpecial.h:
  • b3/testb3.cpp:

(JSC::B3::testCallSimple):
(JSC::B3::testCallRare):
(JSC::B3::testCallRareLive):
(JSC::B3::testCallSimplePure):
(JSC::B3::testCallFunctionWithHellaArguments):
(JSC::B3::testCallFunctionWithHellaArguments2):
(JSC::B3::testCallFunctionWithHellaArguments3):
(JSC::B3::testCallSimpleDouble):
(JSC::B3::testCallSimpleFloat):
(JSC::B3::testCallFunctionWithHellaDoubleArguments):
(JSC::B3::testCallFunctionWithHellaFloatArguments):
(JSC::B3::testLinearScanWithCalleeOnStack):
(JSC::B3::testInterpreter):
(JSC::B3::testLICMPure):
(JSC::B3::testLICMPureSideExits):
(JSC::B3::testLICMPureWritesPinned):
(JSC::B3::testLICMPureWrites):
(JSC::B3::testLICMReadsLocalState):
(JSC::B3::testLICMReadsPinned):
(JSC::B3::testLICMReads):
(JSC::B3::testLICMPureNotBackwardsDominant):
(JSC::B3::testLICMPureFoiledByChild):
(JSC::B3::testLICMPureNotBackwardsDominantFoiledByChild):
(JSC::B3::testLICMExitsSideways):
(JSC::B3::testLICMWritesLocalState):
(JSC::B3::testLICMWrites):
(JSC::B3::testLICMFence):
(JSC::B3::testLICMWritesPinned):
(JSC::B3::testLICMControlDependent):
(JSC::B3::testLICMControlDependentNotBackwardsDominant):
(JSC::B3::testLICMControlDependentSideExits):
(JSC::B3::testLICMReadsPinnedWritesPinned):
(JSC::B3::testLICMReadsWritesDifferentHeaps):
(JSC::B3::testLICMReadsWritesOverlappingHeaps):
(JSC::B3::testLICMDefaultCall):
(JSC::B3::testShuffleDoesntTrashCalleeSaves):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):

  • jit/GPRInfo.h:
  • runtime/PtrTag.h:
  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

10:05 PM Changeset in webkit [230097] by jfbastien@apple.com
  • 21 edits in trunk/Source

Use Forward.h instead of forward-declaring WTF::String
https://bugs.webkit.org/show_bug.cgi?id=184172
<rdar://problem/39026146>

Reviewed by Yusuke Suzuki.

As part of #184164 I'm changing WTF::String, and the forward
declarations are just wrong because I'm making it templated. We
should use Forward.h anyways, so do that instead.

Source/JavaScriptCore:

  • runtime/DateConversion.h:

Source/WebCore:

  • css/makeprop.pl:
  • platform/cocoa/PlaybackSessionInterface.h:
  • platform/ios/Device.h:
  • platform/ios/PlaybackSessionInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/win/PathWalker.h:
  • testing/js/WebCoreTestSupport.h:

Source/WebKit:

  • Scripts/webkit/LegacyMessages-expected.h:
  • Scripts/webkit/Messages-expected.h:
  • Scripts/webkit/MessagesSuperclass-expected.h:
  • UIProcess/WebOpenPanelResultListenerProxy.h:

Source/WebKitLegacy/mac:

  • WebView/WebScriptDebugger.h:

Source/WTF:

  • wtf/Forward.h:
  • wtf/HashTraits.h:
  • wtf/PrintStream.h:
10:04 PM Changeset in webkit [230096] by mark.lam@apple.com
  • 18 edits in trunk/Source/JavaScriptCore

Use MacroAssemblerCodePtr in Wasm code for code pointers instead of void*.
https://bugs.webkit.org/show_bug.cgi?id=184163
<rdar://problem/39020397>

Reviewed by JF Bastien.

With the use of MacroAssemblerCodePtr, we now get poisoning for Wasm code pointers.

Also renamed some structs, methods, and variable names to be more accurate.
Previously, there is some confusion between a code pointer and the address of a
code pointer (sometimes referred to in the code as a "LoadLocation"). We now name
the LoadLocation variables appropriately to distinguish them from code pointers.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmCodeBlock.cpp:

(JSC::Wasm::CodeBlock::CodeBlock):

  • wasm/WasmCodeBlock.h:

(JSC::Wasm::CodeBlock::entrypointLoadLocationFromFunctionIndexSpace):
(JSC::Wasm::CodeBlock::wasmEntrypointLoadLocationFromFunctionIndexSpace): Deleted.

  • wasm/WasmFormat.h:

(JSC::Wasm::WasmToWasmImportableFunction::WasmToWasmImportableFunction):
(JSC::Wasm::WasmToWasmImportableFunction::offsetOfEntrypointLoadLocation):
(JSC::Wasm::CallableFunction::CallableFunction): Deleted.
(JSC::Wasm::CallableFunction::offsetOfWasmEntrypointLoadLocation): Deleted.

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::offsetOfWasmEntrypointLoadLocation):
(JSC::Wasm::Instance::offsetOfWasmToEmbedderStub):
(JSC::Wasm::Instance::offsetOfWasmEntrypoint): Deleted.
(JSC::Wasm::Instance::offsetOfWasmToEmbedderStubExecutableAddress): Deleted.

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::Table):
(JSC::Wasm::Table::grow):
(JSC::Wasm::Table::clearFunction):
(JSC::Wasm::Table::setFunction):

  • wasm/WasmTable.h:

(JSC::Wasm::Table::offsetOfFunctions):

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::setFunction):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::create):
(JSC::WebAssemblyFunction::WebAssemblyFunction):

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::evaluate):

  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::WebAssemblyWrapperFunction):
(JSC::WebAssemblyWrapperFunction::create):

  • wasm/js/WebAssemblyWrapperFunction.h:
9:45 PM Changeset in webkit [230095] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 11.1

Added a tag for Safari 11.1.

9:45 PM Changeset in webkit [230094] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 11.3

Added a tag for iOS 11.3.

9:35 PM Changeset in webkit [230093] by Ross Kirsling
  • 2 edits in trunk/Tools

run-jsc-benchmarks should recognize Windows-style build directory structure.
https://bugs.webkit.org/show_bug.cgi?id=184117

Reviewed by Yusuke Suzuki.

  • Scripts/run-jsc-benchmarks:

Allow not only bin/jsc but also bin64/jsc.exe.

9:16 PM Changeset in webkit [230092] by Yusuke Suzuki
  • 21 edits in trunk/Source

Remove WTF_EXPORTDATA and JS_EXPORTDATA
https://bugs.webkit.org/show_bug.cgi?id=184170

Reviewed by JF Bastien.

Replace WTF_EXPORTDATA and JS_EXPORTDATA with
WTF_EXPORT_PRIVATE and JS_EXPORT_PRIVATE respectively.

Source/JavaScriptCore:

  • heap/WriteBarrierSupport.h:
  • jit/ExecutableAllocator.cpp:
  • jit/ExecutableAllocator.h:
  • runtime/JSCPoison.h:
  • runtime/JSCell.h:
  • runtime/JSExportMacros.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSObject.h:
  • runtime/Options.h:
  • runtime/PropertyDescriptor.h:
  • runtime/PropertyMapHashTable.h:
  • runtime/SamplingCounter.h:

Source/WTF:

  • wtf/ExportMacros.h:
  • wtf/Gigacage.h:
  • wtf/HashTable.h:
  • wtf/Threading.h:
  • wtf/text/AtomicString.cpp:
  • wtf/text/AtomicString.h:
  • wtf/text/StringImpl.h:
7:47 PM Changeset in webkit [230091] by Ross Kirsling
  • 6 edits in trunk/Source

MSVC forceinline slows down JSC release build fivefold after r229391
https://bugs.webkit.org/show_bug.cgi?id=184062

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::marshallArgumentRegister):
Exempt MSVC from a single forced inline used within recursive templates.

Source/WebCore:

  • platform/graphics/FormatConverter.cpp:

Factor ALWAYS_INLINE_EXCEPT_MSVC out to WTF.

Source/WTF:

  • wtf/Compiler.h:

Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.

7:36 PM Changeset in webkit [230090] by jfbastien@apple.com
  • 8 edits in trunk/Source/WTF

Remove WTF_EXPORT_STRING_API
https://bugs.webkit.org/show_bug.cgi?id=184168
<rdar://problem/39023253>

Reviewed by Yusuke Suzuki.

Remove WTF_EXPORT_STRING_API as requested by a FIXME, and use
WTF_EXPORT_PRIVATE instead.

  • wtf/ExportMacros.h:
  • wtf/text/AtomicString.h:
  • wtf/text/AtomicStringImpl.h:
  • wtf/text/StringImpl.h:
  • wtf/text/StringView.h:
  • wtf/text/SymbolImpl.h:
  • wtf/text/WTFString.h:
6:24 PM Changeset in webkit [230089] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r230087.

Introduced LayoutTest failures.

Reverted changeset:

"FrameSelection::appearanceUpdateTimerFired should be robust
against layout passes underneath it"
https://bugs.webkit.org/show_bug.cgi?id=183395
https://trac.webkit.org/changeset/230087

5:07 PM Changeset in webkit [230088] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: clipToViewport is ignored for element screenshots
https://bugs.webkit.org/show_bug.cgi?id=184158
<rdar://problem/39014307>

Reviewed by Timothy Hatcher.

In §19.2 Take Element Screenshot, step 5.2 says that we should clip
the element screenshot rect with the visible viewport rect. We don't
do that right now even though we pass over clipToViewport.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::snapshotRectForScreenshot):
Clip the rect to viewport if needed.

(WebKit::WebAutomationSessionProxy::takeScreenshot):
This scrollIntoView is misplaced; by this point we have already done
the math to figure out the screenshot rect. Move it before computing the rect.

4:05 PM Changeset in webkit [230087] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

FrameSelection::appearanceUpdateTimerFired should be robust against layout passes underneath it
https://bugs.webkit.org/show_bug.cgi?id=183395
<rdar://problem/38055732>

Reviewed by Zalan Bujtas.

Source/WebCore:

In the case where a FrameSelection updates its appearance when m_appearanceUpdateTimer is fired, the
FrameSelection's Frame is unprotected, and can be removed by arbitrary script. This patch applies a simple
mitigation by wrapping the Frame in a Ref when firing the appearance update timer, and ensuring that layout is
really up to date before calling updateAppearanceAfterLayoutOrStyleChange() from the timer.

Test: editing/selection/iframe-update-selection-appearance.html

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::appearanceUpdateTimerFired):

LayoutTests:

Add a new layout test that passes if we didn't crash.

  • editing/selection/iframe-update-selection-appearance-expected.txt: Added.
  • editing/selection/iframe-update-selection-appearance.html: Added.
4:02 PM Changeset in webkit [230086] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

3:20 PM Changeset in webkit [230085] by dino@apple.com
  • 1 edit in trunk/Source/WebCore/platform/graphics/cocoa/WebGLLayer.h

iOS build fix.

  • platform/graphics/cocoa/WebGLLayer.h:
2:59 PM Changeset in webkit [230084] by Brent Fulgham
  • 10 edits in trunk/Source/WebKit

REGRESSION(r230035): ASSERT(MACH_PORT_VALID(m_sendPort)) hit in IPC::Connection::initializeSendSource()
https://bugs.webkit.org/show_bug.cgi?id=184122
<rdar://problem/39003606>

Reviewed by Chris Dumez.

One of the new assertions added in r230035 begin firing while running tests locally. This was happening
because the WebInspector was attempting to open a new connection to a web process that had already
terminated its mach port connection (a dead port).

We should avoid opening new connections when the port we were given is already dead.

  • Platform/IPC/Connection.h:

(IPC::Connection::identifierIsValid): Added.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInitialize): Do not perform initialization on a dead (or null) port.
(IPC::Connection::open): Add some assertions that ports are in a valid state.
(IPC::Connection::sendOutgoingMessage): Assert that the send port is not dead.
(IPC::Connection::receiveSourceEventHandler): Assert that the receive port is valid.

  • UIProcess/ChildProcessProxy.cpp:

(WebKit::ChildProcessProxy::didFinishLaunching): Treat a dead port as a signal that the
child process failed to launch.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didFinishLaunching): Ditto.

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching): Ditto.

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::didFinishLaunching): Ditto.

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection): Ditto.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::establishConnection): Ditto.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureNetworkProcessConnection): Ditto.
(WebKit::WebProcess::ensureWebToStorageProcessConnection): Ditto.

2:53 PM Changeset in webkit [230083] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Substitute ArchiveFactory::isArchiveMIMEType() for ArchiveFactory::isArchiveMimeType().

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitLoad):

  • loader/archive/ArchiveFactory.cpp:

(WebCore::ArchiveFactory::isArchiveMIMEType):
(WebCore::ArchiveFactory::isArchiveMimeType): Deleted.

  • loader/archive/ArchiveFactory.h:
  • platform/MIMETypeRegistry.h:
2:49 PM Changeset in webkit [230082] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

MIMETypeRegistry should return const HashSets
https://bugs.webkit.org/show_bug.cgi?id=184150

Reviewed by Per Arne Vollan.

Only getSupportedNonImageMIMETypes() needs to return a non-const HashSet so that
LegacyWebKit can modify the set of non-image MIME types.

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::getSupportedImageMIMETypes):
(WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes):
(WebCore::MIMETypeRegistry::getSupportedImageMIMETypesForEncoding):
(WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes):
(WebCore::MIMETypeRegistry::getPDFMIMETypes):
(WebCore::MIMETypeRegistry::getUnsupportedTextMIMETypes):

  • platform/MIMETypeRegistry.h:
2:15 PM Changeset in webkit [230081] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Update Service Worker feature status.
https://bugs.webkit.org/show_bug.cgi?id=184139

Reviewed by Chris Dumez.

  • features.json:
2:13 PM Changeset in webkit [230080] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.11/Source

Revert r229680. rdar://problem/39011568

1:36 PM Changeset in webkit [230079] by youenn@apple.com
  • 7 edits in trunk/Source/WebKit

Synchronize SecurityOrigin related scheme registries with NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184140

Reviewed by Chris Dumez.

Add syncing of scheme registries that are used by SecurityOrigin and ContentSecurityPolicy
so that we can properly use them in NetworkProcess as we do in WebProcess.
The registries that are not synced are:

  • URLSchemeAsEmptyDocument
  • URLSchemeDomainRelaxationForbidden
  • URLSchemeAsCachePartitioned
  • URLSchemeAsCanDisplayOnlyIfCanRequest
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::registerURLSchemeAsSecure const):
(WebKit::NetworkProcess::registerURLSchemeAsBypassingContentSecurityPolicy const):
(WebKit::NetworkProcess::registerURLSchemeAsLocal const):
(WebKit::NetworkProcess::registerURLSchemeAsNoAccess const):
(WebKit::NetworkProcess::registerURLSchemeAsDisplayIsolated const):
(WebKit::NetworkProcess::registerURLSchemeAsCORSEnabled const):
(WebKit::NetworkProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::registerURLSchemeAsSecure):
(WebKit::WebProcessPool::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebKit::WebProcessPool::registerURLSchemeAsLocal):
(WebKit::WebProcessPool::registerURLSchemeAsNoAccess):
(WebKit::WebProcessPool::registerURLSchemeAsDisplayIsolated):
(WebKit::WebProcessPool::registerURLSchemeAsCORSEnabled):
(WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest):

12:09 PM Changeset in webkit [230078] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ArrayMode should not try to get the DFG to think it can convert TypedArrays
https://bugs.webkit.org/show_bug.cgi?id=184137

Reviewed by Saam Barati.

  • dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::fromObserved):

9:52 AM Changeset in webkit [230077] by Chris Dumez
  • 4 edits in trunk/Source

Drop DOMWindow::frames() / DOMWindow::window() methods
https://bugs.webkit.org/show_bug.cgi?id=184112

Reviewed by Daniel Bates.

Drop DOMWindow::frames() / DOMWindow::window() methods as they are just aliases for DOMWindow::self().

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
9:28 AM Changeset in webkit [230076] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r229480): ERROR: Unhandled web process message 'WebCookieManager:SetHTTPCookieAcceptPolicy'
https://bugs.webkit.org/show_bug.cgi?id=184124
<rdar://problem/38998971>

Reviewed by Chris Dumez.

Cookie accept policy messages were still being sent to the WebContent process after
I removed cookie access in r229480. The WebContent process no longer recognizes these
messages, and generates logging to that effect.

This patch stops sending these unnecessary messages to the WebContent process. Only the
Network process needs to receive this information.

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::setHTTPCookieAcceptPolicy):

8:38 AM Changeset in webkit [230075] by Alan Bujtas
  • 8 edits in trunk/Tools

[LayoutReloaded] Decouple formatting state and context lifetime.
https://bugs.webkit.org/show_bug.cgi?id=184136

Reviewed by Antti Koivisto.

FormattingContext is about the layout logic. We don't need to hold on to it.

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext):
(FloatingContext.prototype.computePosition):
(FloatingContext.prototype._positionForClear):
(FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
(FloatingContext.prototype._addFloatingBox):
(FloatingContext.prototype._formattingContext):
(FloatingContext.prototype._formattingState):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):

  • LayoutReloaded/FormattingState/BlockFormattingState.js:

(BlockFormattingState):

  • LayoutReloaded/FormattingState/FloatingState.js:

(FloatingState):
(FloatingState.prototype.addFloating):
(FloatingState.prototype.formattingState):
(FloatingState.prototype.formattingContext): Deleted.

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState):
(FormattingState.prototype.formattingContext): Deleted.

  • LayoutReloaded/FormattingState/InlineFormattingState.js:

(InlineFormattingState):

  • LayoutReloaded/LayoutState.js:

(LayoutState.prototype.layout):
(LayoutState.prototype.formattingContext):

8:38 AM Changeset in webkit [230074] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE] Floating point exception in WebEventFactory::createWebWheelEvent
https://bugs.webkit.org/show_bug.cgi?id=184037

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-03-29
Reviewed by Žan Doberšek.

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent): Use std::copysign() to avoid division by 0.

8:01 AM Changeset in webkit [230073] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=184132

Patch by Rafael Fontenelle <rafaelff@gnome.org> on 2018-03-29
Rubber-stamped by Michael Catanzaro.

  • pt_BR.po:
7:47 AM Changeset in webkit [230072] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

The test http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html is failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=184134

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:13 AM Changeset in webkit [230071] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

The test transitions/opacity-transition-zindex.html is timing out on Windows.
https://bugs.webkit.org/show_bug.cgi?id=184133

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:34 AM Changeset in webkit [230070] by commit-queue@webkit.org
  • 6 edits in trunk/Source

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

Broke mac port. web content process crashes while loading any
web page (Requested by rniwa on #webkit).

Reverted changeset:

"MSVC forceinline slows down JSC release build fivefold
after r229391"
https://bugs.webkit.org/show_bug.cgi?id=184062
https://trac.webkit.org/changeset/230062

Mar 28, 2018:

11:49 PM Changeset in webkit [230069] by graouts@webkit.org
  • 57 edits in trunk/LayoutTests

[Web Animations] Stop using internals.pauseTransitionAtTimeOnElement() in favor of Web Animations API for transitions tests
https://bugs.webkit.org/show_bug.cgi?id=184097

Reviewed by Dean Jackson.

Make 55 tests opt into CSS Animations and CSS Transitions as Web Animations. These tests used the internals.pauseTransitionAtTimeOnElement()
method, but this method should be going away since the Web Animations API allows seeking and pausing. To support this, we make
transition-test-helpers.js use the Web Animations API instead of internals.pauseTransitionAtTimeOnElement() if the tests has opted
into CSS Animations and CSS Transitions as Web Animations and we know it's safe to use these APIs.

Overall, 20 of those tests used to fail with the flag on before this change.

  • compositing/animation/animated-composited-inside-hidden.html:
  • compositing/animation/computed-style-during-delay.html:
  • compositing/reflections/nested-reflection-transition.html:
  • compositing/transitions/scale-transition-no-start.html:
  • compositing/transitions/singular-scale-transition.html:
  • css3/calc/transitions-dependent.html:
  • css3/calc/transitions.html:
  • transitions/background-position-transitions.html:
  • transitions/background-transitions.html:
  • transitions/blendmode-transitions.html:
  • transitions/border-radius-transition.html:
  • transitions/clip-path-path-transitions.html:
  • transitions/clip-transition.html:
  • transitions/color-transition-all.html:
  • transitions/color-transition-rounding.html:
  • transitions/cross-fade-background-image.html:
  • transitions/cubic-bezier-overflow-color.html:
  • transitions/cubic-bezier-overflow-shadow.html:
  • transitions/cubic-bezier-overflow-transform.html:
  • transitions/default-timing-function.html:
  • transitions/delay.html:
  • transitions/flex-transitions.html:
  • transitions/font-family-during-transition.html:
  • transitions/frames-timing-function.html:
  • transitions/mask-transitions.html:
  • transitions/min-max-width-height-transitions.html:
  • transitions/mismatched-shadow-styles.html:
  • transitions/mismatched-shadow-transitions.html:
  • transitions/mixed-type.html:
  • transitions/move-after-transition.html:
  • transitions/multiple-background-size-transitions.html:
  • transitions/multiple-mask-transitions.html:
  • transitions/multiple-shadow-transitions.html:
  • transitions/negative-delay.html:
  • transitions/opacity-transition-zindex.html:
  • transitions/resources/transition-test-helpers.js:
  • transitions/shape-outside-transitions.html:
  • transitions/shorthand-border-transitions.html:
  • transitions/shorthand-transitions.html:
  • transitions/steps-timing-function.html:
  • transitions/svg-layout-transition.html:
  • transitions/svg-text-shadow-transition.html:
  • transitions/svg-transitions.html:
  • transitions/text-indent-transition.html:
  • transitions/transform-op-list-match.html:
  • transitions/transform-op-list-no-match.html:
  • transitions/transition-end-event-rendering.html:
  • transitions/transition-hit-test.html:
  • transitions/transition-on-element-with-content.html:
  • transitions/transition-shorthand-delay.html:
  • transitions/transition-timing-function.html:
  • transitions/transition-to-from-auto.html:
  • transitions/transition-to-from-undefined.html:
  • transitions/visited-link-color.html:
  • transitions/zero-duration-in-list.html:
  • transitions/zero-duration-with-non-zero-delay-start.html:
11:48 PM Changeset in webkit [230068] by graouts@webkit.org
  • 44 edits in trunk

[Web Animations] Implement more CSSPropertyBlendingClient methods
https://bugs.webkit.org/show_bug.cgi?id=184077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark progressions for WPT tests.

  • 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/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
CSS Transitions as Web Animations feature.

We also ensure we only run a CSSAnimationController assertion in FrameView::didDestroyRenderTree() if
we're not using the CSS Animations and CSS Transitions as Web Animations feature.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
(WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):

  • animation/KeyframeEffectReadOnly.h:
  • page/FrameView.cpp:

(WebCore::FrameView::didDestroyRenderTree):

LayoutTests:

Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

  • animations/3d/replace-filling-transform.html:
  • animations/additive-transform-animations.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/simultaneous-start-transform.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • transitions/clip-path-transitions.html:
  • transitions/color-transition-premultiplied.html:
  • transitions/cross-fade-border-image.html:
  • transitions/cubic-bezier-overflow-length.html:
  • transitions/cubic-bezier-overflow-svg-length.html:
  • transitions/delay.html:
  • transitions/longhand-vs-shorthand-initial.html:
  • transitions/multiple-background-transitions.html:
10:21 PM Changeset in webkit [230067] by Alan Bujtas
  • 9 edits
    1 copy in trunk/Tools

[LayoutReloaded] Introduce FloatingState.
https://bugs.webkit.org/show_bug.cgi?id=184126

Reviewed by Antti Koivisto.

It holds the floating state (left/right floating stack) for a given formatting state (Block or Inline).
(FormattingState -> FloatingState/FormattingContext -> FloatingContext)

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext):

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext):
(FloatingContext.prototype.computePosition):
(FloatingContext.prototype.bottom):
(FloatingContext.prototype._positionForFloating):
(FloatingContext.prototype._positionForClear):
(FloatingContext.prototype._findInnerMostLeftAndRight):
(FloatingContext.prototype._isEmpty):
(FloatingContext.prototype._floatingState):
(FloatingContext.prototype._formattingContext):
(FloatingContext.prototype._lastFloating):
(FloatingContext.prototype._leftFloatingStack):
(FloatingContext.prototype._rightFloatingStack):
(FloatingContext.prototype._addFloating): Deleted.

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):

  • LayoutReloaded/FormattingState/BlockFormattingState.js:

(BlockFormattingState):

  • LayoutReloaded/FormattingState/FloatingState.js: Copied from Tools/LayoutReloaded/FormattingState/InlineFormattingState.js.

(FloatingState):
(FloatingState.prototype.addFloating):
(FloatingState.prototype.leftFloatingStack):
(FloatingState.prototype.rightFloatingStack):
(FloatingState.prototype.lastFloating):
(FloatingState.prototype.formattingContext):

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState):
(FormattingState.prototype.floatingState):

  • LayoutReloaded/FormattingState/InlineFormattingState.js:

(InlineFormattingState):

  • LayoutReloaded/test/index.html:
9:16 PM Changeset in webkit [230066] by Chris Dumez
  • 23 edits
    1 add in trunk

Align XMLHttpRequest's open() / send() / abort() with the latest specification
https://bugs.webkit.org/show_bug.cgi?id=184108

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/abort-after-send-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-during-open-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-during-open.worker-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-event-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/abort-event-order-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-during-abort-event-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-during-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-send-during-abort-expected.txt:
  • web-platform-tests/XMLHttpRequest/security-consideration.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-data-unexpected-tostring-expected.txt:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/XMLHttpRequest/open-during-abort-processing-expected.txt:

We now fail the test differently. Our results are consistent with Firefox. I believe this
test does not match the specification so I filed:
https://github.com/w3c/web-platform-tests/issues/10217

Source/WebCore:

Align XMLHttpRequest's open() / send() / abort() with the latest specification:

No new tests, rebaselined existing layout tests.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):
Align with https://xhr.spec.whatwg.org/#the-open()-method:

  • Change the order of some steps to match the order in the spec. In particular, open() no longer resets the state to UNSENT or abort any existing load when it fails early due to being passed a bad method.

(WebCore::XMLHttpRequest::createRequest):
Align with https://xhr.spec.whatwg.org/#the-send()-method:

  • Use the simpler "upload listener flag" logic from the spec instead of our more complex m_uploadEventsAllowed flag. This avoids constructing a SecurityOrigin objects on a background thread when XHR is used inside Web Workers, which was not thread-safe.
  • Set the upload complete flag when the request has no body as per step 9.
  • After firing the loadstartEvent, return early if the state is no longer OPEN or if the send flag is unset, as per step 11.3.

(WebCore::XMLHttpRequest::abort):
Align with https://xhr.spec.whatwg.org/#the-abort()-method:

  • Only set the state to UNSENT if the state is still DONE after firing the error events, as per step 3.

(WebCore::XMLHttpRequest::didSendData):
Use new "upload listener flag".

(WebCore::XMLHttpRequest::dispatchErrorEvents):
Align with https://xhr.spec.whatwg.org/#request-error-steps:

  • Stop firing a progress event in case of error as this is not as per specification and Firefox does not fire those either.
  • xml/XMLHttpRequest.h:

LayoutTests:

  • http/tests/xmlhttprequest/onloadend-event-after-abort.html:
  • http/tests/xmlhttprequest/onloadend-event-after-error.html:
  • http/tests/xmlhttprequest/simple-cross-origin-progress-events-expected.txt:
  • http/tests/xmlhttprequest/upload-onloadend-event-after-abort.html:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:

Fix tests that expected a progress event before error/abort event. This is not as
per specification and those tests were also failing in Firefox.

  • http/tests/xmlhttprequest/readystatechange-and-abort.html:

Fix test that expected abort() to reset state to UNSENT as this is not as per specification.
This test was failing in both Firefox and Chrome.

  • http/tests/xmlhttprequest/xmlhttprequest-abort-readyState-shouldNotDispatchEvent.html:

Re-sync test from Blink. The test was wrongly expecting abort() to reset the state to
UNSENT.

8:27 PM Changeset in webkit [230065] by Alan Bujtas
  • 3 edits in trunk/Tools

[LayoutReloaded] Convert floating left/right stack display boxes absolute to the formatting context's root.
https://bugs.webkit.org/show_bug.cgi?id=184123

Reviewed by Antti Koivisto.

  1. The left/right floating array should hold the Display.Box (and not the Layout.Box)
  2. Clone the Display.Box and convert its rect absolute to the formatting context's root so that we

don't have to keep converting the coordinates while computing the positions.

  • LayoutReloaded/DisplayTree/Box.js:

(Display.Box.prototype.clone):
(Display.Box.prototype.setRect):

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext.prototype.computePosition):
(FloatingContext.prototype._positionForFloating):
(FloatingContext.prototype._addFloating):
(FloatingContext.prototype._moveToNextVerticalPosition):
(FloatingContext.prototype._availableSpace):
(FloatingContext.prototype._findFloatingAtVerticalPosition):
(FloatingContext.prototype._adjustedFloatingPosition):
(FloatingContext.prototype._bottom):

7:39 PM Changeset in webkit [230064] by timothy@apple.com
  • 9 edits in trunk

Consolidate NSColor to WebCore::Color conversion and fix system colors.

https://bugs.webkit.org/show_bug.cgi?id=184096
rdar://problem/38918925

Reviewed by Tim Horton.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(CreateCGColorIfDifferent): Use CGColor property on NSColor, don't manually create new CGColor.

  • platform/graphics/mac/ColorMac.h:
  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeRGBAFromNSColor): Move pattern code from RenderThemeMac's convertNSColorToColor.
Also use nextafter for proper RGBA float conversion.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::color): Use colorFromNSColor.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const): Use colorFromNSColor.
(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const): Ditto.
(WebCore::RenderThemeMac::systemColor const): Ditto.
(WebCore::paintAttachmentTitleBackground): Ditto.
(WebCore::convertNSColorToColor): Deleted.

LayoutTests:

  • fast/css/apple-system-control-colors-expected.txt: Updated with rgba() colors.
  • platform/mac/accessibility/content-editable-as-textarea-expected.txt: Updated with color space.
6:10 PM Changeset in webkit [230063] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

The SVGAnimatedProperty wrappers have to be detached from the referenced values before the SVGAnimatedType is deleted
https://bugs.webkit.org/show_bug.cgi?id=183972

Reviewed by Daniel Bates.

If the SVGAnimatedType is a list type, e.g. SVGLengthListValues, the wrappers
of the animated properties have to be detached from the items in the list
before it's deleted.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::clearAnimatedType):

5:47 PM Changeset in webkit [230062] by Ross Kirsling
  • 6 edits in trunk/Source

MSVC forceinline slows down JSC release build fivefold after r229391
https://bugs.webkit.org/show_bug.cgi?id=184062

Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::marshallArgumentRegister):
Exempt MSVC from a single forced inline used within recursive templates.

Source/WebCore:

  • platform/graphics/FormatConverter.cpp:

Factor ALWAYS_INLINE_EXCEPT_MSVC out to WTF.

Source/WTF:

  • wtf/Compiler.h:

Add ALWAYS_INLINE_EXCEPT_MSVC to support MSVC optimizer sensitivities.

5:03 PM Changeset in webkit [230061] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed iOS build fix after r230060.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:46 PM Changeset in webkit [230060] by Chris Dumez
  • 2 edits in trunk/Tools

Unreviewed, disable new window.open() API tests introduced in r230051 on iOS.

I will investigate if this is testable on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:16 PM Changeset in webkit [230059] by Alan Bujtas
  • 21 edits in trunk/Source

Make it possible to override the screen size
https://bugs.webkit.org/show_bug.cgi?id=184111
<rdar://problem/38972181>

Reviewed by Tim Horton.

Source/WebCore:

We just call screenSize() atm.

  • page/Chrome.cpp:

(WebCore::Chrome::overrideScreenSize const):

  • page/Chrome.h:
  • page/ChromeClient.h:
  • platform/HostWindow.h:
  • platform/PlatformScreen.h:
  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenRect):
(WebCore::overrideScreenSize):

Source/WebKit:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::overrideScreenSize):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::overrideScreenSize const):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::overrideScreenSize const):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:
  • WebCoreSupport/WebChromeClientIOS.mm:

(WebChromeClientIOS::overrideScreenSize const):

4:14 PM Changeset in webkit [230058] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

[Win] Assertions.h: VC doesn't support GCC extension ##VA_ARGS
https://bugs.webkit.org/show_bug.cgi?id=184076

Reviewed by Alex Christensen.

##VA_ARGS is used to define RELEASE_LOG, RELEASE_LOG_ERROR,
RELEASE_LOG_IF, RELEASE_LOG_ERROR_IF, RELEASE_LOG_WITH_LEVEL,
RELEASE_LOG_WITH_LEVEL_IF and RELEASE_LOG_INFO_IF.

A macro using ##VA_ARGS,

#define foo(format, ...) bar(format, ##VA_ARGS)

can be defined without ##VA_ARGS:

#define foo(...) bar(VA_ARGS)

  • wtf/Assertions.h: Use VA_ARGS instead of ##VA_ARGS.
4:00 PM Changeset in webkit [230057] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

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

"it caused a huge regression on iOS" (Requested by saamyjoon
on #webkit).

Reverted changeset:

"memoryStatus() is wrong in certain testing scenarios on iOS"
https://bugs.webkit.org/show_bug.cgi?id=184050
https://trac.webkit.org/changeset/230005

3:50 PM Changeset in webkit [230056] by timothy@apple.com
  • 2 edits in trunk/Source/WebCore

Include the 'text' color keyword as a system color.

https://bugs.webkit.org/show_bug.cgi?id=184113
rdar://problem/38779267

Reviewed by Tim Horton.

  • css/StyleColor.cpp:

(WebCore::StyleColor::isColorKeyword): Don't check CSSValueMenu, it is a system color and is included.
(WebCore::StyleColor::isSystemColor): Include CSSValueText. Check CSSValueWebkitFocusRingColor in the range,
since it is immediately after CSSValueAppleSystemYellow.

3:03 PM Changeset in webkit [230055] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

[iOS] Multiple select appearance doesn't update when selecting or deselecting rows in the picker view
https://bugs.webkit.org/show_bug.cgi?id=184110
<rdar://problem/38796648>

Reviewed by Tim Horton.

Source/WebCore:

HTMLSelectElement::optionSelectedByUser is invoked upon user interaction with a select menu. This currently
takes two separate codepaths, depending on whether or not the menu list appearance is being used to render the
select. If a menu list appearance is used, we call selectOption(), which updates validity, updates the element
renderer, and then dispatches a change event if needed.

However, if updateSelectedState() is used, we only update form validity and then dispatch the change event
without updating the renderer, leaving it stale.

Test: fast/forms/ios/ipad/multiple-select-updates-renderer.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::optionSelectedByUser):

Update the renderer after updating the DOM to reflect the selected option.

LayoutTests:

Adds a new layout test to verify that after tapping on a multiple select and choosing an option, the select's
renderer is updated to reflect its new state.

  • fast/forms/ios/ipad/multiple-select-updates-renderer-expected.txt: Added.
  • fast/forms/ios/ipad/multiple-select-updates-renderer.html: Added.
  • resources/basic-gestures.js:
2:45 PM Changeset in webkit [230054] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Substitute "strong password confirmation auto fill" for "strong confirmation password auto fill"
<rdar://problem/36518856>

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::AXAutoFillStrongConfirmationPasswordLabel):

2:39 PM Changeset in webkit [230053] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/preload/download_resources.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179297

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:27 PM Changeset in webkit [230052] by dbates@webkit.org
  • 4 edits
    3 adds in trunk

WebSocket cookie incorrectly stored
https://bugs.webkit.org/show_bug.cgi?id=184100
<rdar://problem/37928715>

Reviewed by Brent Fulgham.

Source/WebCore:

A cookie received in a WebSocket response should be stored with respect to the
origin of the WebSocket server in order for it to be sent in a subsequent request.

Also removed a FIXME about implementing support for the long since
deprecated Set-Cookie2 header.

Test: http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processBuffer):

  • Modules/websockets/WebSocketHandshake.h:

LayoutTests:

  • http/tests/websocket/tests/hybi/cookie_wsh.py: Added. Downloaded from

<https://github.com/w3c/pywebsocket/blob/b2e1d11086fdf00b33a0d30c504f227e7d4fa86b/src/example/cookie_wsh.py>.
(_add_set_cookie):
(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
  • http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html: Added.
2:21 PM Changeset in webkit [230051] by Chris Dumez
  • 15 edits in trunk

Do process swap when opening a cross-origin URL via window.open(url, '_blank', 'noopener')
https://bugs.webkit.org/show_bug.cgi?id=183962
<rdar://problem/38817833>

Reviewed by Brady Eidson.

Source/WebCore:

Pass extra bits of information to the UIProcess via NavigationAction:

  • Is it a cross origin navigation caused by window.open()
  • Does the navigated frame have an opener

This information is useful to determine on UIProcess side if we want
to swap WebProcess.

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setIsCrossOriginWindowOpenNavigation):
(WebCore::FrameLoadRequest::isCrossOriginWindowOpenNavigation const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::setIsCrossOriginWindowOpenNavigation):
(WebCore::NavigationAction::isCrossOriginWindowOpenNavigation const):
(WebCore::NavigationAction::setOpener):
(WebCore::NavigationAction::opener const):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit:

Swap WebProcess on for the initial navigation in a new Window that was opened
via window.open(), when the new URL is cross-origin compared to the opener's
origin. For now, we only swap process if 'noopener' property is set when calling
window.open(). This is because we do not support the remote DOMWindows yet.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigation.h:

(API::Navigation::setIsCrossOriginWindowOpenNavigation):
(API::Navigation::isCrossOriginWindowOpenNavigation const):
(API::Navigation::setOpener):
(API::Navigation::opener const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONUIDelegate initWithNavigationDelegate:]):
(-[PSONUIDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

2:17 PM Changeset in webkit [230050] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

Adopt WEBPROCESS_WINDOWSERVER_BLOCKING compiler guard in WebProcess.
https://bugs.webkit.org/show_bug.cgi?id=183959
<rdar://problem/38965719>

Reviewed by Brent Fulgham.

Use the compile guard to guard the call to CGSSetDenyWindowServerConnections.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeProcess):

2:14 PM Changeset in webkit [230049] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add Carlos Eduardo Ramalho as contributor
https://bugs.webkit.org/show_bug.cgi?id=184082

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-03-28
Reviewed by Carlos Alberto Lopez Perez.

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

Make it possible to disable building the tools with Make
https://bugs.webkit.org/show_bug.cgi?id=184109

Reviewed by Simon Fraser.

  • Makefile:
2:05 PM Changeset in webkit [230047] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r230045.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm: Add missing include (breaks iOS).
1:45 PM Changeset in webkit [230046] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped imported/mozilla/css-animations/test_keyframeeffect-getkeyframes.html.
https://bugs.webkit.org/show_bug.cgi?id=183848

Unreviewed test gardening.

1:43 PM Changeset in webkit [230045] by Brent Fulgham
  • 6 edits in trunk/Source

Protect against invalid mach ports returned by mach_port_request_notification
https://bugs.webkit.org/show_bug.cgi?id=184106
<rdar://problem/37865316>

Reviewed by Chris Dumez.

Source/WebKit:

  • Platform/IPC/Connection.h:

(IPC::Connection::Identifier::Identifier): Use default initializer syntax.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::open): Drive-by-fix: Include formatted mach error message in logging.
(IPC::Connection::receiveSourceEventHandler): Check return value from 'mach_port_request_notification'
and clean up if it experienced an error.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess): Ditto.

Source/WebKitLegacy/mac:

  • Plugins/Hosted/NetscapePluginHostProxy.mm:

(WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy): Check return value from 'mach_port_request_notification'
and clean up if it experienced an error.
(WebKit::NetscapePluginHostProxy::processRequests): Drive-by-fix: Include formatted mach error message in logging.

1:36 PM Changeset in webkit [230044] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Thread safety issue in IDBFactory' shouldThrowSecurityException()
https://bugs.webkit.org/show_bug.cgi?id=184064

Reviewed by Ryosuke Niwa.

shouldThrowSecurityException() gets called on a non-main thread but
it ended up using the SchemeRegistry via SecurityOrigin::canAccessDatabase()
which calls SecurityOrigin::isLocal().

Since using the SchemeRegistry from the background thread is not safe
(we recently added locks which we're trying to remove), and since SecurityOrigin
methods are often called from background threads, this patch make SecurityOrigin::isLocal()
safe to call from a background thread. To achieve this, we now query the SchemeRegistry
in the SecurityOrigin constructor instead as SecurityOrigin objects are expected to be
constructed on the main thread.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::isLocal const): Deleted.

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::isLocal const):

1:31 PM Changeset in webkit [230043] by Ryan Haddad
  • 43 edits in trunk

Unreviewed, rolling out r230033.

The LayoutTests modified in this change fail an assertion on
WK1.

Reverted changeset:

"[Web Animations] Implement more CSSPropertyBlendingClient
methods"
https://bugs.webkit.org/show_bug.cgi?id=184077
https://trac.webkit.org/changeset/230033

1:17 PM Changeset in webkit [230042] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

WebSocket::didReceiveMessage() may construct a SecurityOrigin object on a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=184068

Reviewed by Youenn Fablet.

WebSocket::didReceiveMessage() may construct a SecurityOrigin object on a non-main thread,
which is not safe. We now use SecurityOriginData since we only need an origin String and
it is safe to construct a SecurityOriginData on any thread.

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::didReceiveMessage):

1:11 PM Changeset in webkit [230041] by dino@apple.com
  • 5 edits in trunk/Source/WebKit

WKWebViewContentProvider shouldn't be a UIScrollViewDelegate
https://bugs.webkit.org/show_bug.cgi?id=184107
<rdar://problem/38967492>

Reviewed by Tim Horton.

There is no need for this class to be a UIScrollViewDelegate. Instead
the protocol should have an optional method that is effectively
scrollViewDidScroll.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView scrollViewDidScroll:]): Call web_scrollViewDidScroll
if it exists.

  • UIProcess/Cocoa/WKWebViewContentProvider.h: Remove UIScrollViewDelegate

and add an optional web_scrollViewDidScroll.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_scrollViewDidScroll:]): Renamed from scrollViewDidScroll.
(-[WKPDFView scrollViewDidScroll:]): Deleted.

  • UIProcess/ios/WKSystemPreviewView.mm:

(-[WKSystemPreviewView scrollViewDidScroll:]): Deleted.

1:05 PM Changeset in webkit [230040] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Enhance ARM64 probe to support pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=184069
<rdar://problem/38939879>

Reviewed by JF Bastien.

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::popPair):
(JSC::MacroAssemblerX86Common::pushPair):

  • assembler/testmasm.cpp:

(JSC::testProbeReadsArgumentRegisters):
(JSC::testProbeWritesArgumentRegisters):

  • runtime/PtrTag.h:

(JSC::tagForPtr):

11:55 AM Changeset in webkit [230039] by Wenson Hsieh
  • 11 edits
    1 add in trunk

[Extra zoom mode] Make boosted text autosizing values switchable at runtime
https://bugs.webkit.org/show_bug.cgi?id=184092
<rdar://problem/38939917>

Reviewed by Tim Horton.

Source/WebCore:

In r228697, we introduced a new set of boosted text autosizing constants tuned for extra zoom mode, which are
currently hard-coded as default values in SettingsBase. However, we've since identified cases where clients may
want to opt in or out of boosted text autosizing values and just use the existing values.

This replaces settings to adjust text autosizing constants with a flag to enable or disable boosted text
autosizing; when changed, we update all three text autosizing parameters to their default or boosted values, and
then trigger style recalculation.

Test: TextAutosizingBoost.ChangeAutosizingBoostAtRuntime

  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::shouldEnableTextAutosizingBoostChanged):
(WebCore::SettingsBase::defaultOneLineTextMultiplierCoefficient): Deleted.
(WebCore::SettingsBase::defaultMultiLineTextMultiplierCoefficient): Deleted.
(WebCore::SettingsBase::defaultMaxTextAutosizingScaleIncrease): Deleted.

Changed these to constant values instead of helper functions, and also introduced boosted text autosizing
constants for use in extra zoom mode.

  • page/SettingsBase.h:

(WebCore::SettingsBase::oneLineTextMultiplierCoefficient const):
(WebCore::SettingsBase::multiLineTextMultiplierCoefficient const):
(WebCore::SettingsBase::maxTextAutosizingScaleIncrease const):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::extraDefaultStyleSheet):

Tweak the stylesheet to make -webkit-text-size-adjust: auto overridable by web content. Adding the !important
is breaking many websites that positioned text such that it is positioned within layout viewport bounds without
text autosizing.

Source/WebKit:

Add a private web view preference to switch between normal and boosted text autosizing mode. By default, we use
normal text autosizing values.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setShouldEnableTextAutosizingBoost:]):
(-[WKPreferences _shouldEnableTextAutosizingBoost]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

Add an API test to check that toggling the boosted text autosizing preference causes text to lay out larger than
it would with normal text autosizing.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/TextAutosizingBoost.mm: Added.

(TEST):

11:40 AM Changeset in webkit [230038] by Alan Bujtas
  • 3 edits
    1 add in trunk/Tools

[LayoutReloaded] InlineFormattingContext::_handleText should support runs on multiple lines
https://bugs.webkit.org/show_bug.cgi?id=184101

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleText):
(InlineFormattingContext.prototype._createNewLine):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/simple-multiline-text.html: Added.
11:30 AM Changeset in webkit [230037] by Alan Bujtas
  • 2 edits in trunk/Tools

[LayoutReloaded] Add InlineTextBreaker::skipLeadingWhitespaceIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=184099

Reviewed by Antti Koivisto.

  • LayoutReloaded/misc/LayoutReloadedWebKit.patch:
11:12 AM Changeset in webkit [230036] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.11

Tag Safari-606.1.11.

11:07 AM Changeset in webkit [230035] by Brent Fulgham
  • 20 edits in trunk/Source

Avoid uninitialized mach ports
https://bugs.webkit.org/show_bug.cgi?id=184090
<rdar://problem/37261129>

Reviewed by Chris Dumez.

It is possible for mach_port_allocate to return an error, but we rarely check its return value. The value
of the argument passed to mach_port_allocate is not guaranteed to be valid when it returns an error, so
there is a potential for us to try to use invalid ports.

We should always check return values, and ensure that the mach port variables we seek to initialize are
kept in a valid state.

Source/WebCore:

No new tests, no Web-facing behavior change.

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::attachToAppleGraphicsControl): Initialize masterPort to a default value.

Source/WebKit:

Reviewed by Chris Dumez.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess): Initialize new port to a safe default and
check the return state of the allocation function.

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::open): Ditto.
(IPC::Connection::initializeSendSource): Ditto.
(IPC::readFromMachPort): Ditto.
(IPC::Connection::receiveSourceEventHandler): Ditto.

  • Platform/SharedMemory.h:
  • Platform/cocoa/SharedMemoryCocoa.cpp:

(WebKit::makeMemoryEntry): Ditto.

  • Platform/mac/MachUtilities.cpp:

(setMachPortQueueLength): Ditto.
(setMachExceptionPort): Ditto.

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::createWebProcessConnection): Ditto.

  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::createStorageToWebProcessConnection): Ditto.

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess): Ditto.

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openFrontendConnection): Ditto.

Source/WebKitLegacy/mac:

Reviewed by Chris Dumez.

  • Plugins/Hosted/NetscapePluginHostManager.h:
  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::hostForPlugin): Initialize port to a valid state, ASSERT if an invalid
port is passed to an API function.
(WebKit::NetscapePluginHostManager::spawnPluginHost): Ditto.
(WebKit::NetscapePluginHostManager::initializeVendorPort): Ditto.

  • Plugins/Hosted/NetscapePluginHostProxy.h:
  • Plugins/Hosted/NetscapePluginHostProxy.mm:

(WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy): Ditto.
(WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy): Ditto.
(WebKit::NetscapePluginHostProxy::processRequests): Ditto.
(WKPCStatusText): Ditto.
(WKPCLoadURL): Ditto.
(WKPCCancelLoadURL): Ditto.
(WKPCInvalidateRect): Ditto.
(WKPCGetScriptableNPObjectReply): Ditto.
(WKPCBooleanReply): Ditto.
(WKPCBooleanAndDataReply): Ditto.
(WKPCInstantiatePluginReply): Ditto.
(WKPCGetWindowNPObject): Ditto.
(WKPCGetPluginElementNPObject): Ditto.
(WKPCForgetBrowserObject): Ditto.
(WKPCEvaluate): Ditto.
(WKPCGetStringIdentifier): Ditto.
(WKPCGetIntIdentifier): Ditto.
(WKPCInvoke): Ditto.
(WKPCInvokeDefault): Ditto.
(WKPCConstruct): Ditto.
(WKPCGetProperty): Ditto.
(WKPCSetProperty): Ditto.
(WKPCRemoveProperty): Ditto.
(WKPCHasProperty): Ditto.
(WKPCHasMethod): Ditto.
(WKPCIdentifierInfo): Ditto.
(WKPCEnumerate): Ditto.
(WKPCSetMenuBarVisible): Ditto.
(WKPCSetFullscreenWindowIsShowing): Ditto.
(WKPCSetModal): Ditto.
(WKPCGetCookies): Ditto.
(WKPCGetProxy): Ditto.
(WKPCSetCookies): Ditto.
(WKPCGetAuthenticationInfo): Ditto.
(WKPCConvertPoint): Ditto.
(WKPCLayerHostingModeChanged): Ditto.
(WKPCSetException): Ditto.

Source/WTF:

Reviewed by Chris Dumez.

  • wtf/Threading.h: Initialize mach port.
10:53 AM Changeset in webkit [230034] by aboya@igalia.com
  • 6 edits in trunk/LayoutTests

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

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:
10:37 AM Changeset in webkit [230033] by graouts@webkit.org
  • 43 edits in trunk

[Web Animations] Implement more CSSPropertyBlendingClient methods
https://bugs.webkit.org/show_bug.cgi?id=184077

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Mark progressions for WPT tests.

  • 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/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:

Source/WebCore:

We only had stubs for several of the CSSPropertyBlendingClient methods and thus always implied that we
were animating non-matching transform, filter and backdrop-filter properties. We now implement those using
the same code used in KeyframeAnimation. This allows for 31 new tests to opt into the CSS Animations and
CSS Transitions as Web Animations feature.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::copyPropertiesFromSource):
(WebCore::KeyframeEffectReadOnly::updateBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::setBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::checkForMatchingTransformFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::checkForMatchingBackdropFilterFunctionLists):
(WebCore::KeyframeEffectReadOnly::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes):

  • animation/KeyframeEffectReadOnly.h:

LayoutTests:

Make 31 tests opt into the CSS Animations and CSS Transitions as Web Animations feature.

  • animations/3d/replace-filling-transform.html:
  • animations/additive-transform-animations.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/simultaneous-start-transform.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • transitions/clip-path-transitions.html:
  • transitions/color-transition-premultiplied.html:
  • transitions/cross-fade-border-image.html:
  • transitions/cubic-bezier-overflow-length.html:
  • transitions/cubic-bezier-overflow-svg-length.html:
  • transitions/delay.html:
  • transitions/longhand-vs-shorthand-initial.html:
  • transitions/multiple-background-transitions.html:
9:52 AM Changeset in webkit [230032] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Fails to build webkitgtk+ after git-svn-id: http://svn.webkit.org/repository/webkit/trunk@229877 268f45cc-cd09-0410-ab3c-d52691b4dbfc
https://bugs.webkit.org/show_bug.cgi?id=184081

Unreviewed, switch to use UNUSED_PARAM()

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

9:39 AM Changeset in webkit [230031] by graouts@webkit.org
  • 5 edits in trunk

[Web Animations] Comparing two matching FramesTimingFunction objects fails
https://bugs.webkit.org/show_bug.cgi?id=184078

Reviewed by Jon Lee.

LayoutTests/imported/w3c:

Mark one progression for the frames() timing function test with the CSS Animations and CSS Transitions as Web Animations flag.

  • web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • web-platform-tests/css-timing-1/frames-timing-functions-output.html:

Source/WebCore:

Fix a stupid mistake in the == operator for FramesTimingFunction. Without a correct check, we would mistakenly interrupt and
restart any transition with a frames() timing function when we check that the Animation objects are similar.

  • platform/animation/TimingFunction.h:
9:10 AM Changeset in webkit [230030] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Make use of HAVE(CORE_ANIMATION_RENDER_SERVER) in more places
https://bugs.webkit.org/show_bug.cgi?id=184072
<rdar://problem/38946530>

Reviewed by Dan Bernstein.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::createForExternalHostingProcess):

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

(WebKit::ViewSnapshot::clearImage):

9:04 AM WebKitGTK/Gardening/Calendar edited by aboya@igalia.com
(diff)
7:39 AM Changeset in webkit [230029] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

Revert an unnecessary workaround when zooming focused form controls
https://bugs.webkit.org/show_bug.cgi?id=184067
<rdar://problem/38805254>

Reviewed by Tim Horton.

Reverts an unintended change introduced in r227984.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _displayFormNodeInputView]):

5:30 AM Changeset in webkit [230028] by magomez@igalia.com
  • 26 edits
    4 deletes in trunk/Source

[GTK][WPE] Remove UpdateAtlas
https://bugs.webkit.org/show_bug.cgi?id=184042

Reviewed by Žan Doberšek.

Source/WebCore:

Remove UpdateAtlas and AreaAllocator classes. Instead of using UpdateAtlas as a cache
of buffers to render tiles with cairo, allocate a new buffer for each tile instead.

Covered by existent tests.

  • loader/EmptyClients.h:
  • page/ChromeClient.h:
  • platform/TextureMapper.cmake:
  • platform/graphics/texmap/coordinated/AreaAllocator.cpp: Removed.
  • platform/graphics/texmap/coordinated/AreaAllocator.h: Removed.
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
  • platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:

(): Deleted.

  • platform/graphics/texmap/coordinated/UpdateAtlas.cpp: Removed.
  • platform/graphics/texmap/coordinated/UpdateAtlas.h: Removed.
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):

Source/WebKit:

Remove all the code related to UpdateAtlas handling.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::syncUpdateAtlases): Deleted.
(WebKit::CoordinatedGraphicsScene::createUpdateAtlas): Deleted.
(WebKit::CoordinatedGraphicsScene::removeUpdateAtlas): Deleted.
(WebKit::CoordinatedGraphicsScene::releaseUpdateAtlases): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::releaseUpdateAtlases): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::delegatedScrollRequested):
(WebKit::WebChromeClient::resetUpdateAtlasForTesting): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp:

(WebKit::AcceleratedDrawingArea::resetUpdateAtlasForTesting): Deleted.

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

(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::renderNextFrame):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::createUpdateAtlas): Deleted.
(WebKit::CompositingCoordinator::removeUpdateAtlas): Deleted.
(WebKit::CompositingCoordinator::getCoordinatedBuffer): Deleted.
(): Deleted.
(WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases): Deleted.
(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired): Deleted.
(WebKit::CompositingCoordinator::releaseAtlases): Deleted.
(WebKit::CompositingCoordinator::clearUpdateAtlases): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::clearUpdateAtlases): Deleted.

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

(WebKit::ThreadedCoordinatedLayerTreeHost::releaseUpdateAtlases): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::setIsDiscardable):

3:40 AM Changeset in webkit [230027] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r229998): WebDriver: MiniBrowser is crashing in a lot of tests after r229998
https://bugs.webkit.org/show_bug.cgi?id=184075

Reviewed by Žan Doberšek.

This is because we are using a value after it has been moved.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext): Save a reference to page in a local variable
before using it when it's also going to be moved in the lambda capture.

2:36 AM Changeset in webkit [230026] by rmorisset@apple.com
  • 6 edits
    1 add in trunk

appendQuotedJSONString stops on arithmetic overflow instead of propagating it upwards
https://bugs.webkit.org/show_bug.cgi?id=183894

Reviewed by Saam Barati.

JSTests:

  • stress/json-stringified-overflow.js: Added.

(catch):

Source/JavaScriptCore:

Use the return value of appendQuotedJSONString to fail more gracefully when given a string that is too large to handle.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

Source/WTF:

appendQuotedJSONString now returns a bool indicating whether it succeeded, instead of silently failing when given a string too large
to fit in 4GB.

  • wtf/text/StringBuilder.h:
  • wtf/text/StringBuilderJSON.cpp:

(WTF::StringBuilder::appendQuotedJSONString):

2:16 AM Changeset in webkit [230025] by Carlos Garcia Campos
  • 5 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Move WeakValueRef class to its own file and use it from Objc and GLib
https://bugs.webkit.org/show_bug.cgi?id=184073

Reviewed by Yusuke Suzuki.

We currently have duplicated code in Obj and GLib implementations.

  • API/JSManagedValue.mm:

(managedValueHandleOwner):
(-[JSManagedValue initWithValue:]):

  • API/JSWeakValue.cpp: Added.

(JSC::JSWeakValue::~JSWeakValue):
(JSC::JSWeakValue::clear):
(JSC::JSWeakValue::isClear const):
(JSC::JSWeakValue::setPrimitive):
(JSC::JSWeakValue::setObject):
(JSC::JSWeakValue::setString):

  • API/JSWeakValue.h: Added.

(JSC::JSWeakValue::isSet const):
(JSC::JSWeakValue::isPrimitive const):
(JSC::JSWeakValue::isObject const):
(JSC::JSWeakValue::isString const):
(JSC::JSWeakValue::object const):
(JSC::JSWeakValue::primitive const):
(JSC::JSWeakValue::string const):

  • API/glib/JSCWeakValue.cpp:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
Note: See TracTimeline for information about the timeline view.