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

Timeline



Oct 7, 2020:

10:26 PM Changeset in webkit [268172] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Remove the build warning below since r238330.
warning: unused variable ‘connectionIdentifier’ [-Wunused-variable]

No new tests, no new behaviors.

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):

9:56 PM Changeset in webkit [268171] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Rebaseline test result
https://bugs.webkit.org/show_bug.cgi?id=167729

Unreviewed test gardening.

  • platform/mac/imported/w3c/web-platform-tests/css/css-pseudo/text-selection-expected.txt:
9:18 PM Changeset in webkit [268170] by ysuzuki@apple.com
  • 27 edits in trunk/Source

[JSC] Restrict more ptr-tagging and avoid using OperationPtrTag for JIT code
https://bugs.webkit.org/show_bug.cgi?id=217460

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch makes tagging / untagging pointer functions solid by using PtrTag in template parameter.
Later, we will introduce compile time behavior change for different kind of PtrTag so that we can insert OperationPtrTag validation
when tagging a function with OperationPtrTag.

We also found that FTL is tagging JIT code with OperationPtrTag wrongly. We should tag it with JITThunkPtrTag.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::getLinkerAddress):

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::update):
(JSC::ARM64EHash::finalHash const):

  • assembler/JITOperationList.cpp:

(JSC::addPointers):

  • assembler/MacroAssemblerARM64.cpp:

(JSC::MacroAssembler::probe):

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress):

  • assembler/testmasm.cpp:

(JSC::testProbeModifiesProgramCounter):

  • b3/air/testair.cpp:
  • ftl/FTLOutput.h:

(JSC::FTL::Output::callWithoutSideEffects):
(JSC::FTL::Output::operation):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::makeCall):

  • jit/JITCode.cpp:

(JSC::JITCodeWithCodeRef::executableAddressAtOffset):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITOperations.cpp:
  • jit/Repatch.cpp:

(JSC::readPutICCallTarget):
(JSC::ftlThunkAwareRepatchCall):
(JSC::tryCacheGetBy):
(JSC::tryCachePutByID):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntPCRanges.h:

(JSC::LLInt::isLLIntPC):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • runtime/MachineContext.h:

(JSC::MachineContext::instructionPointer):

  • runtime/NativeExecutable.cpp:

(JSC::NativeExecutable::finishCreation):

  • runtime/PutPropertySlot.h:

(JSC::PutPropertySlot::setCustomValue):
(JSC::PutPropertySlot::setCustomAccessor):
(JSC::PutPropertySlot::customSetter const):

  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::emitCCall):

  • wasm/WasmSlowPaths.cpp:

Source/WTF:

  • wtf/PlatformRegisters.cpp:

(WTF::threadStateLRInternal):
(WTF::threadStatePCInternal):

  • wtf/PtrTag.h:

(WTF::tagCFunctionPtr):
(WTF::tagCFunction):
(WTF::untagCFunctionPtr):
(WTF::tagInt):
(WTF::isTaggedWith):
(WTF::assertIsTaggedWith):
(WTF::assertIsNullOrTaggedWith):

8:19 PM Changeset in webkit [268169] by Aditya Keerthi
  • 2 edits in trunk/Tools

REGRESSION(r268123): [ iOS ] 4 TestWebKitAPI.WebKitLegacy failures: File name unavailable. Unknown C++ exception thrown in the test body.
https://bugs.webkit.org/show_bug.cgi?id=217445
<rdar://problem/70063370>

Reviewed by Wenson Hsieh.

The patch which introduced these tests swizzled [UIDatePicker setDatePickerMode:]
to avoid a crash within UIKit, resulting from the fact that TestWebKitAPI isn't
actually an app.

However, this was not a reliable solution since UIKit was still attempting to
create a QoS interval. To fix, swizzle out a method much closer to the source
of the exception: [UITableView cellForRowAtIndexPath:].

  • TestWebKitAPI/Tests/WebKitLegacy/ios/DateTimeInputsAccessoryViewTests.mm:

(cellForRowAtIndexPath):
(runTestWithInputType):

7:11 PM Changeset in webkit [268168] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(r267940): [ macOS Catalina ] imported/w3c/web-platform-tests/css/css-pseudo/text-selection.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=167729#add_comment

Unreviewed test gardening.

  • platform/mac/TestExpectations:
6:52 PM Changeset in webkit [268167] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (iOS 14): [ iOS wk2 ] imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-add.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217462

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:35 PM Changeset in webkit [268166] by Karl Rackler
  • 3 edits
    3 adds in trunk/LayoutTests

REGRESSION (r268138): [ iOS Mojave+ ] imported/w3c/web-platform-tests/css/css-masking/clip-path/svg-clipPath.svg is missing expected results
https://bugs.webkit.org/show_bug.cgi?id=217461

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
5:59 PM Changeset in webkit [268165] by Ross Kirsling
  • 9 edits in trunk

[JSC] Revert String.prototype.item
https://bugs.webkit.org/show_bug.cgi?id=217449

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/item-method.js:
  • test262/config.yaml:

Source/JavaScriptCore:

This patch reverts the String part of r267814, as it has been shown to be web-incompatible:
https://github.com/tc39/proposal-item-method/issues/31

Thankfully, this was the inessential part of the proposal; the core parts (Array and %TypedArray%) remain for now.

  • builtins/StringPrototype.js:

(item): Deleted.

  • runtime/StringPrototype.cpp:

LayoutTests:

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
5:27 PM Changeset in webkit [268164] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix Windows build after r268161.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):

  • workers/WorkerOrWorkletGlobalScope.h:

(isType):

5:23 PM Changeset in webkit [268163] by Keith Rollin
  • 12 edits in trunk/Source

Update post-processing rules for headers to not unnecessarily change timestamps
https://bugs.webkit.org/show_bug.cgi?id=217371
<rdar://problem/69992230>

Reviewed by Darin Adler.

Under XCBuild, the scripts employed in custom build rules can be
invoked in innocuous situations. A common example is when the user is
building from the command-line and they change the make output from
stdout to a file, or vice-versa. Changing the output changes the
setting of the COLOR_DIAGNOSTICS environment variable, which is enough
to cause XCBuild to think something is different and that the custom
build rule needs to be invoked. For the script's part, nothing
significant has changed, yet it post-processes the header files,
causing their modification dates to change, causing downstream
rebuilds to occur.

Fix this problem by adopting an approach that doesn't modify the
post-processed header files unless their contents actually change.

Source/JavaScriptCore:

  • Scripts/postprocess-header-rule:

Source/ThirdParty/ANGLE:

  • adjust-angle-include-paths-rule:

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebKit:

No new tests -- this is a build change only.

  • Scripts/postprocess-header-rule:

Source/WebKitLegacy:

  • scripts/postprocess-header-rule:

Source/WTF:

  • Scripts/GeneratePreferences.rb:
5:01 PM Changeset in webkit [268162] by timothy_horton@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION: Safari unable to load PDF in <embed> (docs.legalconnect.com)
https://bugs.webkit.org/show_bug.cgi?id=217451
<rdar://problem/69767043>

Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank.html

If plugins are enabled, we'll always let the request go through, and WebKit will
guess that files with PDFPlugin-handled extensions should instantiate PDFPlugin,
even if no other plugins are available.

However, if plugins are disabled, requestPlugin() will early return if the explicitly
specified MIME type is not handled by an application plugin (even though the downstream
WebKit code would have happily instantiated an application plugin for us).

Application plugins shouldn't depend on the plugin enablement setting.
To fix this, have SubframeLoader guess the MIME type if not explicitly specified
(matching WebKit's behavior), and allow the request if it matches an application plugin.

  • loader/SubframeLoader.cpp:

(WebCore::findPluginMIMETypeFromURL):
Improve this previously logging-only function to use the lastPathComponent
of the URL instead of randomly looking at the end of the URL, to ignore
query strings and fragments when looking for the file extension.

(WebCore::FrameLoader::SubframeLoader::requestPlugin):
Make use of findPluginMIMETypeFromURL to guess the MIME type if it's not
explicitly specified. If the guessed MIME type is one that is handled
by application plugins, allow the request to go out to WebKit (which
may then instantiate a PDFPlugin, for example).

(WebCore::logPluginRequest):
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::createJavaAppletWidget):
Pass the URL instead of stringifying it, so we can lastPathComponent as above.

LayoutTests:

  • fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank-expected-mismatch.html: Added.
  • fast/replaced/pdf-as-embed-with-no-mime-type-is-not-blank.html: Added.

Add a test ensuring that <embed> with no specified MIME type still renders the PDF.

4:31 PM Changeset in webkit [268161] by Chris Dumez
  • 35 edits
    1 copy in trunk

Constructing a AudioWorkletNode should construct an AudioWorkletProcessor on the Worklet thread
https://bugs.webkit.org/show_bug.cgi?id=217442

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that we are passing more checks.

  • web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-messageport.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-timing-info.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletprocessor-options.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/processor-construction-port.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/suspended-context-messageport.https-expected.txt:

Source/WebCore:

Constructing a AudioWorkletNode should construct an AudioWorkletProcessor on the Worklet thread:

No new tests, rebaselined existing tests.

  • Modules/webaudio/AudioWorklet.cpp:

(WebCore::AudioWorklet::createProcessor):
Add createProcessor() function to AudioWorklet which takes care of hopping to the worklet thread
in order to call createProcessor() on the AudioWorkletGlobalScope.

  • Modules/webaudio/AudioWorklet.h:
  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::createProcessor):
Construct an AudioWorkletProcessor, as specified here:

(WebCore::AudioWorkletGlobalScope::takePendingProcessorConstructionData):
A function to take the pending ProcessorConstructionData. This construction
data gets initialized in createProcessor() and gets consumed by
AudioWorkletProcessor::create().

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):
Improve AudioWorkletNode constructor to actually cause the construction of
the AudioWorkletProcessor on the worklet thread, passing it the options and
the MessagePort. This is as per the specification here:

(WebCore::AudioWorkletNode::AudioWorkletNode):
(WebCore::AudioWorkletNode::~AudioWorkletNode):

(WebCore::AudioWorkletNode::setProcessor):
Once the AudioWorkletProcessor is created on the worklet thread, this gets
called so that the AudioWorkletNode has a reference to the processor. This
will be needed later on once AudioWorkletNode::process() starts doing audio
processing through the AudioWorkletProcessor.

(WebCore::AudioWorkletNode::process):
Improve comment.

  • Modules/webaudio/AudioWorkletNode.h:
  • Modules/webaudio/AudioWorkletNode.idl:

Pass the global object to the constructor. It is needed now that the constructor
serializes script values to pass them to the worklet thread.

  • Modules/webaudio/AudioWorkletNodeOptions.idl:

Add [JSGenerateToJSObject] to AudioWorkletNodeOptions dictionary so that a
convertDictionaryToJS() function gets generated for this dictionary. This function
is called by the AudioWorkletNode constructor.

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):

  • Modules/webaudio/AudioWorkletProcessor.h:

(WebCore::AudioWorkletProcessor::name const):
(WebCore::AudioWorkletProcessor::port):
Implement AudioWorkletProcessor constructor so that its retrieves the pending
construction data from the AudioWorkletGlobalScope and properly initializes
its name and port. The specification for this is here:

  • Modules/webaudio/AudioWorkletProcessor.idl:

Indicate that the constructor may throw an exception as per the specification:

Also pass the ScriptExecutionContext to the constructor since the constructor
needs to retrieve the pending construction data from it:

  • Modules/webaudio/AudioWorkletProcessorConstructionData.h:

(WebCore::AudioWorkletProcessorConstructionData::AudioWorkletProcessorConstructionData):
(WebCore::AudioWorkletProcessorConstructionData::name const):
(WebCore::AudioWorkletProcessorConstructionData::port const):
Add class to wrap the AudioWorkletProcess's construction data:

  • Modules/webaudio/AudioWorkletThread.h:

Move ThreadSafeRefCounted from this class to the parent class (WorkerOrWorkletThread)
since WorkerMessagePortChannelProvider needs to protect a WorkerOrWorkletThread now.

  • WebCore.xcodeproj/project.pbxproj:

Add new header to project.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::toJSDOMGlobalObject):
Properly handle WorkletGlobalScope.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::disentanglePorts):
(WebCore::MessagePort::entanglePorts):
(WebCore::MessagePort::entangle):

  • dom/MessagePort.h:

Tweak MessagePort API to support disentangling/entangling a single
MessagePort. Previously we had to pass an array of ports.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::createdMessagePort):
(WebCore::ScriptExecutionContext::destroyedMessagePort):
Tweak assertions to handle AudioWorkletGlobalScopes.

  • dom/messageports/MessagePortChannelProvider.cpp:

(WebCore::MessagePortChannelProvider::fromContext):

  • dom/messageports/MessageWithMessagePorts.h:
  • dom/messageports/WorkerMessagePortChannelProvider.cpp:

(WebCore::WorkerMessagePortChannelProvider::WorkerMessagePortChannelProvider):
(WebCore::WorkerMessagePortChannelProvider::takeAllMessagesForPort):
(WebCore::WorkerMessagePortChannelProvider::checkRemotePortForActivity):

  • dom/messageports/WorkerMessagePortChannelProvider.h:

Update WorkerMessagePortChannelProvider to use WorkerOrWorkletScope instead
or WorkerGlobalScope. This allows us to reuse this class for AudioWorklets
so that MessagePort communication between the main thread and the worklet
thread now works.

  • workers/WorkerOrWorkletThread.h:

Move ThreadSafeRefCounted from subclasses to this class so that
WorkerMessagePortChannelProvider can protect a WorkerOrWorkletThread.

  • workers/WorkerThread.h:
  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::notifyFinished):
Only evaluate the script if we have not already evaluated it in this worklet.
I am assuming this is needed because we are not treating the script as a module
yet (due to lack of support in workers). Without this changes, the worklet's
script would get in a bad state when importing several times the same module
(which is something the WPT tests do).

(WebCore::WorkletGlobalScope::messagePortChannelProvider):
Instantiate WorkerMessagePortChannelProvider if needed. This is needed for
MessagePort communication is AudioWorklets.

  • worklets/WorkletGlobalScope.h:

LayoutTests:

Unskip a few tests that are no longer timing out.

3:49 PM Changeset in webkit [268160] by Russell Epstein
  • 1 copy in tags/Safari-610.2.8.1.1

Tag Safari-610.2.8.1.1.

3:44 PM Changeset in webkit [268159] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under JSAudioWorkletProcessorConstructor::~JSAudioWorkletProcessorConstructor()
https://bugs.webkit.org/show_bug.cgi?id=217448
<rdar://problem/70059902>

Reviewed by Geoffrey Garen.

Make sure we clear out m_processorConstructorMap in AudioWorkletGlobalScope::prepareForTermination()
since this map keeps JS wrappers alive.

No new tests, already covered by existing tests that are crashing on ASAN bots.

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::prepareForTermination):

3:42 PM Changeset in webkit [268158] by commit-queue@webkit.org
  • 5 edits in trunk

background-clip:var(--a) invalidates -webkit-background-clip:text when --a:text
https://bugs.webkit.org/show_bug.cgi?id=199410

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-10-07
Reviewed by Darin Adler.

Source/WebCore:

Parse the text value (CSSValueText) for the background-clip
property. While the bug this patch is associated with is about CSS
variable interactions, the underlying issue is that we weren't parsing
the text value for background-clip.

https://www.w3.org/TR/2017/CR-css-backgrounds-3-20171017/#the-background-clip

This patch also removes the ability to parse the -webkit-text value
for the background-origin (CSSPropertyBackgroundOrigin) property by
removing CSSValueWebkitText from consumeBackgroundBox. Neither
-webkit-text nor the unprefixed text are valid values for this property.

https://www.w3.org/TR/2017/CR-css-backgrounds-3-20171017/#the-background-origin

Updated existing fast/css/background-clip-text.html test.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeBackgroundBox): Removed CSSValueWebkitText.
(WebCore::consumeBackgroundClip): Added.
(WebCore::consumeBackgroundComponent): Use consumeBackgroundClip for
the CSSPropertyBackgroundClip property case.

LayoutTests:

We now parse the text value for the background-clip property, so
update this test to reflect that.

  • fast/css/background-clip-text-expected.txt:
  • fast/css/background-clip-text.html: Parse text value.
3:41 PM Changeset in webkit [268157] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

Using CSS wide keywords as a fallback for variable substitution works inconsistently.
https://bugs.webkit.org/show_bug.cgi?id=197158

Patch by Tyler Wilcock <Tyler Wilcock> on 2020-10-07
Reviewed by Darin Adler.

Source/WebCore:

Enable CSS-wide keywords to be used as variable fallbacks.

See spec-issue for further discussion:
https://github.com/w3c/csswg-drafts/issues/5325

Patch inspired by Chromium's implementation:
https://bugs.chromium.org/p/chromium/issues/detail?id=954963#c5

Tests: fast/css/variables/css-wide-keywords-in-fallback-inherited-property.html

fast/css/variables/css-wide-keywords-in-fallback-non-inherited-property.html

  • css/parser/CSSPropertyParser.cpp: Add maybeConsumeCSSWideKeyword

function.
(WebCore::CSSPropertyParser::parseSingleValue): Before trying to parse
the property-specific values for the input property, first try parsing the
CSS-wide keywords via maybeConsumeCSSWideKeyword.
(WebCore::CSSPropertyParser::consumeCSSWideKeyword): Refactor to use
maybeConsumeCSSWideKeyword.

LayoutTests:

Add tests ensuring CSS-wide keywords are functional as variable
fallbacks.

  • fast/css/variables/css-wide-keywords-in-fallback-inherited-property-expected.html: Added.
  • fast/css/variables/css-wide-keywords-in-fallback-inherited-property.html: Added.
  • fast/css/variables/css-wide-keywords-in-fallback-non-inherited-property-expected.html: Added.
  • fast/css/variables/css-wide-keywords-in-fallback-non-inherited-property.html: Added.
3:29 PM Changeset in webkit [268156] by Russell Epstein
  • 1 copy in tags/Safari-610.2.8.0.2

Tag Safari-610.2.8.0.2.

3:27 PM Changeset in webkit [268155] by jiewen_tan@apple.com
  • 2 edits
    7 adds in trunk/Source/WebKit

[WebAuthn] Implement a dummy WebAuthenticationAgent
https://bugs.webkit.org/show_bug.cgi?id=217401
<rdar://problem/70012011>

Reviewed by Darin Adler.

Part 1.

This patch introduces a new dummy WebAuthenticationAgent where in the future it will take over all WebAuthn operations
from the UI Process such that we can isolate high privileged entitlements to this standalone daemon and therefore are able
offer WebAuthn to third party WKWebView clients. One of the future feautres will require this new process to listen to
LaunchEvents, which only daemons can do. That's why it is implemented as a user agent instead of a XPC service.

This is the first part of establishing such a dummy daemon. What it does is to set up a new build target for the daemon and
hook it up with WebKit's build system. One can manually load the launchd plist and load the daemon to verify this change.

Commands are:
launchctl load /to/your/path/com.apple.webkit.WebAuthenticationAgent.plist
launchctl start com.apple.webkit.WebAuthenticationAgent.Development

Covered by manual tests.

  • Configurations/WebAuthenticationAgent.xcconfig: Added.

Somehow the executable has a suffix .Development for debug/release builds. Will fix that in the later part.

  • Daemons/WebAuthenticationAgent/Info.plist: Added.
  • Daemons/WebAuthenticationAgent/WebAuthenticationAgent.entitlements: Added.
  • Daemons/WebAuthenticationAgent/com.apple.webkit.WebAuthenticationAgent.plist: Added.

The executable location is hardcoded for now. It will be fixed in Part 2 to dynamically point to the right binary.

  • Daemons/WebAuthenticationAgent/main.mm: Added.

(main):

  • WebKit.xcodeproj/project.pbxproj:

Not sure why libWTF.a is needed. Will fix that in the later part.

3:09 PM Changeset in webkit [268154] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

[build.webkit.org] Ensure that builder names are valid Buildbot identifiers
https://bugs.webkit.org/show_bug.cgi?id=217434

Reviewed by Dewei Zhu.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Updated builder names.
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js: Ditto.
  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py: Ensure that unit-tests fail when any builder name does

not follow required naming convention.

2:50 PM Changeset in webkit [268153] by Jonathan Bedard
  • 3 edits in trunk/Tools

REGRESSION (r268080): [test-webkitpy] Mojave bots failing to install python-dateutil-2.8.1
https://bugs.webkit.org/show_bug.cgi?id=217438

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Include wheel package.
  • Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:

(Package.install): The wheel package may be needed by setup tools.

2:38 PM Changeset in webkit [268152] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Use display structures (InlineContent) to provide content height and baseline used values
https://bugs.webkit.org/show_bug.cgi?id=217437

Reviewed by Antti Koivisto.

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::lineCount const):
(WebCore::LayoutIntegration::LineLayout::firstLineBaseline const):
(WebCore::LayoutIntegration::LineLayout::lastLineBaseline const):

2:18 PM Changeset in webkit [268151] by Peng Liu
  • 3 edits in trunk/LayoutTests

[Media in GPU Process] Unskip some layout tests

Unreviewed test gardening.

  • gpu-process/TestExpectations:

Unskip the tests that are marked as failure or timeout when the "Media in GPU Process"
is not enabled.

  • media/video-size-intrinsic-scale.html:
2:04 PM Changeset in webkit [268150] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Add std::max to make sure the line gap is always larger than 0 (see FIXME).

Reviewed by Antti Koivisto.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

2:03 PM Changeset in webkit [268149] by Konstantin Tokarev
  • 3 edits in trunk/Tools

[GTK][WPE] Remove Apache's mod_bw from install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=217441

Reviewed by Carlos Alberto Lopez Perez.

It is not activated in any of Apache configs in LayoutTests, and is not
referenced anywhere else.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
1:56 PM Changeset in webkit [268148] by Devin Rousso
  • 5 edits in trunk/Source

Add missing #define for PENCILKIT_TEXT_INPUT flag
https://bugs.webkit.org/show_bug.cgi?id=217436
<rdar://problem/69720219>

Reviewed by Wenson Hsieh.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setUpInteraction]):
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _shouldSimulateKeyboardInputOnTextInsertion]):
Change from ENABLE to HAVE.

Source/WTF:

  • wtf/PlatformHave.h:
1:33 PM Changeset in webkit [268147] by Wenson Hsieh
  • 2 edits in trunk/LayoutTests

Unreviewed, unskip a few dozen canvas-related tests that now pass after recent changes

  • gpu-process/TestExpectations:

Unskip a number of tests that were skipped when enabling GPU process. Additionally, remove some erroneous test
expectation lines that were targeting HTML files that are resources or ref test.

1:17 PM Changeset in webkit [268146] by Karl Rackler
  • 2 edits in trunk/LayoutTests

Remove test expectation for fast/images/image-orientation-none-canvas.html while the issue is investigated.
https://bugs.webkit.org/show_bug.cgi?id=217435

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
1:13 PM Changeset in webkit [268145] by Wenson Hsieh
  • 24 edits in trunk/Source

[GPU Process] Support CanvasRenderingContext2D.drawImage() with HTMLVideoElement
https://bugs.webkit.org/show_bug.cgi?id=217339
<rdar://problem/69409029>

Reviewed by Darin Adler.

Source/WebCore:

Implements support for painting the current video frame into a canvas 2D graphics context. See below for more
details.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::paintCurrentFrameInContext):

Flip this around to call GraphicsContext::paintFrameForMedia with the MediaPlayer, instead of calling into
MediaPlayer with the graphics context. See changes below.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::paintFrameForMedia):

  • platform/graphics/GraphicsContext.h:

Add a paintFrameForMedia method that takes a MediaPlayer representing a video, and paints the current frame
of the video into the context. If the graphics context is backed by an platform context (i.e. m_impl is
nullptr), then we simply call through to MediaPlayer's private impl to paint into the context. Otherwise, we
forward the call to the GraphicsContextImpl (see the changes to DisplayListRecorder.cpp below).

  • platform/graphics/GraphicsContextImpl.h:

Add a new virtual function to paint the current frame of the given MediaPlayer into the destination rect.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::playerPrivate const):
(WebCore::MediaPlayer::playerPrivate):
(WebCore::MediaPlayer::paintCurrentFrameInContext): Deleted.

  • platform/graphics/MediaPlayer.h:

Remove the existing paintCurrentFrameInContext method on MediaPlayer, which currently takes a graphics
context. Instead, move paintCurrentFrameInContext to GraphicsContext, rename it to paintFrameForMedia, and
pass it a MediaPlayer. Additionally, expose a helper method to get a non-const MediaPlayerPrivateInterface,
and move both method definitions to the implementation file to avoid style checker errors due to MediaPlayer
itself being WEBCORE_EXPORT-ed.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::paintFrameForMedia):

  • platform/graphics/cairo/GraphicsContextImplCairo.h:
  • platform/graphics/displaylists/DisplayList.h:
  • platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::Item::sizeInBytes):
(WebCore::DisplayList::PaintFrameForMedia::create):
(WebCore::DisplayList::PaintFrameForMedia::PaintFrameForMedia):
(WebCore::DisplayList::PaintFrameForMedia::apply const):
(WebCore::DisplayList::operator<<):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::PaintFrameForMedia::destination const):
(WebCore::DisplayList::PaintFrameForMedia::identifier const):
(WebCore::DisplayList::PaintFrameForMedia::encode const):
(WebCore::DisplayList::PaintFrameForMedia::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::paintFrameForMedia):

  • platform/graphics/displaylists/DisplayListRecorder.h:

Add a new display list item, PaintFrameForMedia, that paints the current frame of a given MediaPlayer. This
works by serializing and then deserializing a MediaPlayerHandle and destination rect; similar to
PutImageData, the replayer delegate is responsible for applying this item by mapping the MediaPlayerHandle
to a concrete MediaPlayer instance.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::paintFrameForMedia):

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::paintFrameForMedia):

  • platform/graphics/win/GraphicsContextImplDirect2D.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::paintReplaced):

Source/WebKit:

Implements support for painting the current video frame into a canvas 2D graphics context. See below (and
Source/WebCore/ChangeLog) for more details.

  • GPUProcess/graphics/RemoteImageBufferMessageHandlerProxy.h:

(WebKit::RemoteImageBufferMessageHandlerProxy::backend):

  • GPUProcess/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::apply):

Refactor apply so that it treats PutImageData and PaintFrameForMedia as special cases, and otherwise
returns false by default. Implement apply in the case where the display list item is PaintFrameForMedia by
using the MediaPlayerIdentifier to look up the platform MediaPlayer instance, and then calling
GraphicsContext::paintFrameForMedia with this MediaPlayer.

  • GPUProcess/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::gpuConnectionToWebProcess const):

  • GPUProcess/graphics/RemoteRenderingBackendProxy.h:
1:10 PM Changeset in webkit [268144] by Aditya Keerthi
  • 3 edits
    2 adds in trunk

[Contact Picker API] Add support for ContactsManager.getProperties()
https://bugs.webkit.org/show_bug.cgi?id=217354
<rdar://problem/69862099>

Reviewed by Youenn Fablet.

Source/WebCore:

ContactsManager.getProperties() returns a list of properties supported
by the API. These currently include name, email and tel.

Test: contact-picker/contacts-manager-get-properties.html

  • Modules/contact-picker/ContactsManager.cpp:

(WebCore::ContactsManager::getProperties):

LayoutTests:

Added a layout test to exercise the method.

  • contact-picker/contacts-manager-get-properties-expected.txt: Added.
  • contact-picker/contacts-manager-get-properties.html: Added.
1:10 PM Changeset in webkit [268143] by Karl Rackler
  • 19 edits in trunk/Tools

Unreviewed, reverting r268115.

This reverts commit r268115 while investigating ews test
failure.

Reverted changeset:

"Refactor TestOptions code in WebKitTestRunner to make it
easier to rationalize and extend"
https://bugs.webkit.org/show_bug.cgi?id=217390
https://trac.webkit.org/changeset/268115

1:08 PM Changeset in webkit [268142] by Caio Lima
  • 2 edits in trunk/JSTests

[MIPS] Flaky test stress/array-species-create-should-handle-masquerader.js
https://bugs.webkit.org/show_bug.cgi?id=217433

Unreviewed test gardening.

  • stress/array-species-create-should-handle-masquerader.js:
12:58 PM Changeset in webkit [268141] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (r268115?): [ iOS wk2 EWS ] fast/images/image-orientation-none-canvas.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217435

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
12:42 PM Changeset in webkit [268140] by Russell Epstein
  • 8 edits in branches/safari-610.2.8.0-branch/Source

Versioning.

WebKit-7610.2.8.0.2

12:23 PM Changeset in webkit [268139] by Russell Epstein
  • 8 edits in branches/safari-610.2-branch/Source

Versioning.

WebKit-7610.2.12

11:54 AM Changeset in webkit [268138] by Noam Rosenthal
  • 10 edits
    141 adds in trunk

clip-path: path() ignores page zooming (Command-+)
https://bugs.webkit.org/show_bug.cgi?id=217311
<rdar://problem/69977271>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Imported all clip-path web platform tests.
Some of them don't pass yet for unrelated reasons, skipped in TestExpectations.

  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-with-zoom-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-with-zoom.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom.html: Added.

These tests test the actual zoom-related issues.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-masking: Added.
  • web-platform-tests/css/css-masking/clip-path: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-005-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-005.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-006-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-006.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-007-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-007.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-008-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-circle-008.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-columns-shape-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-columns-shape-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-columns-shape-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-columns-shape-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-descendant-text-mutated-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-descendant-text-mutated-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-document-element-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-document-element-will-change-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-document-element-will-change.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-document-element.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-element-userSpaceOnUse-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-005-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-005.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-006-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-006.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-007-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-007.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-008-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-ellipse-008.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-filter-order-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-filter-order.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-filter-radius-clips-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-filter-radius-clips.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fixed-nested-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fixed-nested.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-001-expected.xht: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-002-expected.xht: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-003-expected.xht: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inline-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-005-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-005.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-006-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-006.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-007-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-007.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-008-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-008.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-009-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-009.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-010-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-010.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-011-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-011.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-012-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-012.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-013-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-polygon-013.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-box-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-restore-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-reference-restore.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-rotated-will-change-transform-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-rotated-will-change-transform.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-scroll-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-scroll.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-transform-mutated-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change-from-empty-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change-from-empty.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-url-reference-change.html: Added.
  • web-platform-tests/css/css-masking/clip-path/interpolation-expected.txt: Added.
  • web-platform-tests/css/css-masking/clip-path/interpolation.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-local-url-with-base-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-local-url-with-base-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-mutated-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-mutated.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-nonexisting-existing-local-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference-nonexisting-existing-local.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference/clip-path-path-with-zoom-hittest-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/reference/w3c-import.log: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clipPath.svg: Added.
  • web-platform-tests/css/css-masking/clip-path/w3c-import.log: Added.

Source/WebCore:

Added a zoom property to BasicShapePath.

When BasicShapePath is created from a clip-path, the shape's zoom received the effective zoom.
The internal cache in BasicShapePath now uses the zoom as an additional cache key, in addition
to windRule, offset and byteStream. Renamed SVGPathTranslatedByteStream to SVGPathTransformedByteStream.

Tests:

imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-path-interpolation-with-zoom.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom-hittest.html
imported/w3c/web-platform-tests/css/css-masking/clip-path/clip-path-path-with-zoom.html

Also imported the rest of the w3c clip-path tests.

  • css/BasicShapeFunctions.cpp:

(WebCore::basicShapeForValue):

  • css/BasicShapeFunctions.h:
  • rendering/style/BasicShapes.cpp:

(WebCore::SVGPathTransformedByteStream::SVGPathTransformedByteStream):
(WebCore::SVGPathTransformedByteStream::operator== const):
(WebCore::SVGPathTransformedByteStream::operator!= const):
(WebCore::SVGPathTransformedByteStream::path const):
(WebCore::TransformedByteStreamPathPolicy::isKeyNull):
(WebCore::TransformedByteStreamPathPolicy::createValueForKey):
(WebCore::cachedTransformedByteStreamPath):
(WebCore::BasicShapePath::path):
(WebCore::BasicShapePath::operator== const):
(WebCore::BasicShapePath::blend const):
(WebCore::SVGPathTranslatedByteStream::SVGPathTranslatedByteStream): Deleted.
(WebCore::SVGPathTranslatedByteStream::operator== const): Deleted.
(WebCore::SVGPathTranslatedByteStream::operator!= const): Deleted.
(WebCore::SVGPathTranslatedByteStream::isEmpty const): Deleted.
(WebCore::SVGPathTranslatedByteStream::path const): Deleted.
(WebCore::TranslatedByteStreamPathPolicy::isKeyNull): Deleted.
(WebCore::TranslatedByteStreamPathPolicy::createValueForKey): Deleted.
(WebCore::cachedTranslatedByteStreamPath): Deleted.

Add zoom to BasicShapePath and related internal structure.

  • rendering/style/BasicShapes.h:
  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::convertClipPath):

Read zoom from current style when creating a BasicShapeClipPath.

LayoutTests:

Marked newly imported clip-path w3c tests that don't pass yet as expected failure.
Some of them have open bugs, the others need triage.

11:39 AM Changeset in webkit [268137] by Russell Epstein
  • 8 edits in trunk/Source

Versioning.

WebKit-7611.1.4

11:07 AM Changeset in webkit [268136] by youenn@apple.com
  • 19 edits in trunk

Add support for BlobEvent.timecode
https://bugs.webkit.org/show_bug.cgi?id=217379

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:

Source/WebCore:

Expose timecode getter for BlobEvent.
Make MediaRecorder backend return the timecode value for each fetch data.
For the real backend, compute the timecode as the current audio timestamp for the next fetch data request,
or the current video timestamp if only video is captured.

Covered by rebased test.

  • Modules/mediarecorder/BlobEvent.cpp:

(WebCore::BlobEvent::BlobEvent):

  • Modules/mediarecorder/BlobEvent.h:
  • Modules/mediarecorder/BlobEvent.idl:
  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::createDataAvailableEvent):
(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):
(WebCore::MediaRecorder::fetchData):
(WebCore::MediaRecorder::handleTrackChange):
(WebCore::MediaRecorder::trackEnded):

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::fetchData):

  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::clear):
(WebCore::MediaRecorderPrivateWriter::stopRecording):
(WebCore::MediaRecorderPrivateWriter::fetchData):
(WebCore::MediaRecorderPrivateWriter::updateTimeCode):

Source/WebKit:

Exchange timecode through IPC.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::fetchData):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::fetchData):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:
11:05 AM Changeset in webkit [268135] by Tadeu Zagallo
  • 2 edits in trunk/Source/WTF

Add maximum depth check to RedBlackTree
https://bugs.webkit.org/show_bug.cgi?id=217249
<rdar://problem/69432957>

Reviewed by Saam Barati.

We limit all tree traversals to 128 levels deep. That's a very conservative upper bound that
would work for a tree that used all of the available address space.

  • wtf/RedBlackTree.h:
11:04 AM Changeset in webkit [268134] by basuke.suzuki@sony.com
  • 2 edits in trunk/Tools

[build-webkit] Compare with cmakeargs and unhandled to detect configuration change
https://bugs.webkit.org/show_bug.cgi?id=207012

Reviewed by Carlos Alberto Lopez Perez.

Added command line arguments on top of @featureArgs for comparison with previous build
options. This forces regeneration of CMakeCache.txt when any configuration is changed.

  • Scripts/webkitdirs.pm:

(shouldRemoveCMakeCache):

11:02 AM Changeset in webkit [268133] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][IFC] Adjust the inline formatting context root's content height when the last line has float clear
https://bugs.webkit.org/show_bug.cgi?id=217432

Reviewed by Antti Koivisto.

Source/WebCore:

This patch expands the support for inline content to clear floats (r268122) by taking the clear gap into
account when it occurs after the last line (e.g. <div>foobar<br clear=left"></div>).
In such cases the inline formatting context's content height needs to be adjusted with the computed clear
gap value.

Test: fast/layoutformattingcontext/float-avoiding-br-last-line.html

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/inlineformatting/InlineFormattingState.h:

(WebCore::Layout::InlineFormattingState::setClearGapAfterLastLine):
(WebCore::Layout::InlineFormattingState::clearGapAfterLastLine const):
(WebCore::Layout::InlineFormattingState::clearLineAndRuns):

LayoutTests:

  • fast/layoutformattingcontext/float-avoiding-br-last-line-expected.html: Added.
  • fast/layoutformattingcontext/float-avoiding-br-last-line.html: Added.
10:09 AM Changeset in webkit [268132] by Alan Coon
  • 3 edits in branches/safari-610-branch/LayoutTests

Apply patch. rdar://problem/70024420

Applied "rebased-expectations-patch".

10:09 AM Changeset in webkit [268131] by Alan Coon
  • 1 edit in branches/safari-610-branch/Source/WebCore/platform/Timer.h

Apply patch. rdar://problem/70024420

Applied "patch-timer".

9:41 AM Changeset in webkit [268130] by youenn@apple.com
  • 23 edits
    2 adds in trunk

Add support for MediaRecorder pause/resume
https://bugs.webkit.org/show_bug.cgi?id=217375

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-pause-resume-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https-expected.txt:
  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:

Source/WebCore:

Implement pause and resume as per spec.
MediaRecorder basically sends pause/resume order to its backend.
The backend then stops observing tracks when paused and resumed observing at resume time.
For video, we make sure to compute the frame timestamp so that the recorded video continues to play without interruption.

Test: http/wpt/mediarecorder/pause-recording.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::pauseRecording):
(WebCore::MediaRecorder::resumeRecording):

  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorder.idl:
  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::pause):
(WebCore::MediaRecorderPrivate::resume):

  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::pauseRecording):
(WebCore::MediaRecorderPrivateAVFImpl::resumeRecording):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):
(WebCore::MediaRecorderPrivateWriter::pause):
(WebCore::MediaRecorderPrivateWriter::resume):

Source/WebKit:

Add IPC support for sending pause/resume orders.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp:

(WebKit::RemoteMediaRecorder::pause):
(WebKit::RemoteMediaRecorder::resume):

  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::pauseRecording):
(WebKit::MediaRecorderPrivate::resumeRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

fix-217375

  • http/wpt/mediarecorder/pause-recording-expected.txt: Added.
  • http/wpt/mediarecorder/pause-recording.html: Added.
9:39 AM Changeset in webkit [268129] by youenn@apple.com
  • 2 edits in trunk/LayoutTests/imported/w3c

MediaRecorder::create should not need to create a MediaRecorderPrivate to validate it can record properly
https://bugs.webkit.org/show_bug.cgi?id=217387
<rdar://problem/70049616>

Unreviewed.

Rebased test after https://trac.webkit.org/changeset/268125.
We should fix the exact name of the exception based on https://github.com/w3c/mediacapture-record/issues/206.

  • web-platform-tests/mediacapture-record/MediaRecorder-detached-context-expected.txt:
9:01 AM Changeset in webkit [268128] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[build.webkit.org] Ensure that invalid step names are not allowed
https://bugs.webkit.org/show_bug.cgi?id=217431

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig):

8:54 AM Changeset in webkit [268127] by pvollan@apple.com
  • 5 edits in trunk

[macOS] Remove 'com.apple.cookied' from the WebContent process sandbox.
https://bugs.webkit.org/show_bug.cgi?id=206088
Source/WebKit:

<rdar://problem/58489040>

Reviewed by Darin Adler.

It has been confirmed that access to the cookied service can be removed from the WebContent process.

Test: fast/sandbox/sandbox-mach-lookup.html

  • WebProcess/com.apple.WebProcess.sb.in:

LayoutTests:

Reviewed by Darin Adler.

  • fast/sandbox/mac/sandbox-mach-lookup-expected.txt:
  • fast/sandbox/mac/sandbox-mach-lookup.html:
8:52 AM Changeset in webkit [268126] by Aditya Keerthi
  • 2 edits in trunk/Source/WebKit

zappos.com: Dropdown - 'Quantity' option size different
https://bugs.webkit.org/show_bug.cgi?id=217395
<rdar://problem/60261396>

Reviewed by Tim Horton.

The select element used in this instance uses a custom font (Open Sans)
with a 16px font size. When presenting the select dropdown a call to
WebPopupMenuProxyMac::showPopupMenu is made with those attributes.
However, since Open Sans is not a system font, the call to
[NSFont fontWithDescriptor:size:] returns nil. This results in the
presented view falling back to the default font size, which is smaller
than the expected 16px size, leading to smaller options.

While other browsers do not honor custom fonts in their select dropdowns,
they do honor the font size. Consequently, this dropdown appears
different in Safari. To fix, ensure that the font size is always honored
if the corresponding attribute is present.

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

8:48 AM Changeset in webkit [268125] by youenn@apple.com
  • 3 edits
    2 adds in trunk

MediaRecorder::create should not need to create a MediaRecorderPrivate to validate it can record properly
https://bugs.webkit.org/show_bug.cgi?id=217387

Reviewed by Darin Adler.

Source/WebCore:

Instead of creating a MediaRecorderPrivate to verify that we can create one, just rely on isTypeSupported.
Add a check that page is not null in the create method.

Remove assertion that we can create a private recorder in start since thgere is no guarantee that the frame might not be detached.

Test: http/wpt/mediarecorder/MediaRecorder-frame.html

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::createMediaRecorderPrivate):
(WebCore::MediaRecorder::startRecording):

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-frame-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-frame.html: Added.
8:47 AM Changeset in webkit [268124] by Antti Koivisto
  • 9 edits
    4 adds in trunk/Source/WebCore

[LFC][Integration] Add line iterator
https://bugs.webkit.org/show_bug.cgi?id=217427

Reviewed by Zalan Bujtas.

Add line iterator. In this patch it is only used to replace onSameLine function.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Position.cpp:

(WebCore::Position::rendersInDifferentPosition const):

  • layout/integration/LayoutIntegrationLineIterator.cpp: Added.

(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::LineIterator::atEnd const):
(WebCore::LayoutIntegration::LineIterator::next const):
(WebCore::LayoutIntegration::LineIterator::previous const):
(WebCore::LayoutIntegration::LineIterator::traverseNext):
(WebCore::LayoutIntegration::LineIterator::traversePrevious):

  • layout/integration/LayoutIntegrationLineIterator.h: Added.

(WebCore::LayoutIntegration::PathLine::operator!= const):
(WebCore::LayoutIntegration::LineIterator::LineIterator):
(WebCore::LayoutIntegration::LineIterator::operator++):
(WebCore::LayoutIntegration::LineIterator::operator bool const):
(WebCore::LayoutIntegration::LineIterator::operator== const):
(WebCore::LayoutIntegration::LineIterator::operator!= const):
(WebCore::LayoutIntegration::LineIterator::operator* const):
(WebCore::LayoutIntegration::LineIterator::operator-> const):
(WebCore::LayoutIntegration::PathLine::PathLine):
(WebCore::LayoutIntegration::PathLine::rect const):
(WebCore::LayoutIntegration::PathLine::operator== const):

  • layout/integration/LayoutIntegrationLineIteratorLegacyPath.h: Added.

(WebCore::LayoutIntegration::LegacyLinePath::LegacyLinePath):
(WebCore::LayoutIntegration::LegacyLinePath::rect const):
(WebCore::LayoutIntegration::LegacyLinePath::traverseNext):
(WebCore::LayoutIntegration::LegacyLinePath::traversePrevious):
(WebCore::LayoutIntegration::LegacyLinePath::operator== const):
(WebCore::LayoutIntegration::LegacyLinePath::atEnd const):
(WebCore::LayoutIntegration::LegacyLinePath::setAtEnd):

  • layout/integration/LayoutIntegrationLineIteratorModernPath.h: Added.

(WebCore::LayoutIntegration::ModernLinePath::ModernLinePath):
(WebCore::LayoutIntegration::ModernLinePath::rect const):
(WebCore::LayoutIntegration::ModernLinePath::traverseNext):
(WebCore::LayoutIntegration::ModernLinePath::traversePrevious):
(WebCore::LayoutIntegration::ModernLinePath::operator== const):
(WebCore::LayoutIntegration::ModernLinePath::atEnd const):
(WebCore::LayoutIntegration::ModernLinePath::setAtEnd):
(WebCore::LayoutIntegration::ModernLinePath::lines const):
(WebCore::LayoutIntegration::ModernLinePath::line const):

  • layout/integration/LayoutIntegrationRunIterator.cpp:

(WebCore::LayoutIntegration::RunIterator::line const):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathRun::logicalLeft const):
(WebCore::LayoutIntegration::PathRun::logicalRight const):
(WebCore::LayoutIntegration::PathRun::logicalWidth const):
(WebCore::LayoutIntegration::PathRun::logicalHeight const):
(WebCore::LayoutIntegration::PathRun::onSameLine const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LegacyPath::operator== const):
(WebCore::LayoutIntegration::LegacyPath::rootInlineBox const):
(WebCore::LayoutIntegration::LegacyPath::onSameLine const): Deleted.

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::verticallyRoundedRect):
(WebCore::LayoutIntegration::ModernPath::rect const):
(WebCore::LayoutIntegration::ModernPath::operator== const):
(WebCore::LayoutIntegration::linePosition): Deleted.
(WebCore::LayoutIntegration::ModernPath::onSameLine const): Deleted.

8:20 AM Changeset in webkit [268123] by Aditya Keerthi
  • 4 edits
    1 add in trunk

REGRESSION: Date/time pickers are not displayed in UIWebViews
https://bugs.webkit.org/show_bug.cgi?id=217341
<rdar://problem/66881739>

Reviewed by Wenson Hsieh.

Source/WTF:

Date/time inputs were incorrectly disabled by default on
PLATFORM(IOS_FAMILY) in WebPreferencesInternal.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Added regression tests to ensure this preference is not accidently
modified in the future.

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

(-[DateTimeInputsTestsLoadingDelegate webViewDidFinishLoad:]):
(runTestWithInputType):

Note that [UIDatePicker setDatePickerMode:] had to be swizzled to an
empty implementation as the UIKit version on the bots attempts to
create a QoS interval upon setting the initially selected row in
a UITableView when the date picker is presented. This fails because
TestWebKitAPI isn't actually an app. To avoid an exception, the method
is swizzled out.

7:38 AM Changeset in webkit [268122] by Alan Bujtas
  • 10 edits
    2 adds in trunk

[LFC][IFC] Add initial support for inline content to clear intrusive floats
https://bugs.webkit.org/show_bug.cgi?id=217418

Reviewed by Antti Koivisto.

Source/WebCore:

In this patch we introduce the concept of gaps between lines. These gaps are required
to clear intrusive floats when the inline content has the clear property set.
(This behavior changed in CSS2. Now the clear property only applies to block-level elements.)

Adjust the logic in FloatingContext::verticalPositionWithClearance so that it can take an inline level box
and make sure that the next line does not start above the clearance position.

Test: fast/layoutformattingcontext/float-avoiding-br-simple.html

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::geometryForBox const):

  • layout/FormattingContext.h:
  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::absoluteCoordinates const):
(WebCore::Layout::FloatingContext::mapTopLeftToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):

  • layout/inlineformatting/InlineFormattingContext.h:
  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::InlineFormattingContext::Geometry::logicalTopForNextLine const):

LayoutTests:

  • fast/layoutformattingcontext/float-avoiding-br-simple-expected.html: Added.
  • fast/layoutformattingcontext/float-avoiding-br-simple.html: Added.
6:19 AM Changeset in webkit [268121] by Alan Bujtas
  • 6 edits in trunk/Source/WebCore

[LFC][Floating] Move FloatingState::top/bottom functions over to FloatingContext
https://bugs.webkit.org/show_bug.cgi?id=217411

Reviewed by Antti Koivisto.

FormattingState classes are mostly about setters and getters and they don't have any involved logic.
While both top() and bottom() are both rather lightweight at the moment, it will change with the
upcoming <br clear> feature. Let's just move these function over to FloatingContext.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
(WebCore::Layout::FloatingContext::bottom const): The check for isInFormattingContextOf() is redundant, so let's not add that back here.
(WebCore::Layout::FloatingContext::top const):

  • layout/floats/FloatingContext.h:

(WebCore::Layout::FloatingContext::leftBottom const):
(WebCore::Layout::FloatingContext::rightBottom const):
(WebCore::Layout::FloatingContext::bottom const):

  • layout/floats/FloatingState.cpp:

(WebCore::Layout::FloatingState::bottom const): Deleted.
(WebCore::Layout::FloatingState::top const): Deleted.

  • layout/floats/FloatingState.h:

(WebCore::Layout::FloatingState::leftBottom const): Deleted.
(WebCore::Layout::FloatingState::rightBottom const): Deleted.
(WebCore::Layout::FloatingState::bottom const): Deleted.

4:01 AM Changeset in webkit [268120] by commit-queue@webkit.org
  • 15 edits
    10 deletes in trunk

Unreviewed, reverting r268085.
https://bugs.webkit.org/show_bug.cgi?id=217424

Added broken test webgl/conformance/extensions/s3tc-and-
rgtc.html

Reverted changeset:

"Support EXT_texture_compression_rgtc WebGL extension"
https://bugs.webkit.org/show_bug.cgi?id=217198
https://trac.webkit.org/changeset/268085

2:22 AM Changeset in webkit [268119] by youenn@apple.com
  • 15 edits in trunk

Make sure to fire the correct set of events in case MediaRecorder stream has track changes
https://bugs.webkit.org/show_bug.cgi?id=217316

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-error.html:
  • web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-stop.html:

Source/WebCore:

Introduce MediaRecorderPrivate::stop which makes sure to unregister from media sources before stopping.
Update firing events according https://w3c.github.io/mediacapture-record/#dom-mediarecorder-start when track set is changed.
Covered by updated test.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::create):
(WebCore::MediaRecorder::stopRecordingInternal):
(WebCore::MediaRecorder::handleTrackChange):

  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::stop):

  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::~MediaRecorderPrivateAVFImpl):
(WebCore::MediaRecorderPrivateAVFImpl::stopRecording):

  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::~MediaRecorderPrivateMock):
(WebCore::MediaRecorderPrivateMock::stopRecording):

Source/WebKit:

Make sure to not set audio/video tracks if the recorder was stopped.

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:

(WebKit::MediaRecorderPrivate::startRecording):
(WebKit::MediaRecorderPrivate::~MediaRecorderPrivate):
(WebKit::MediaRecorderPrivate::stopRecording):

  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

  • platform/mac-wk2/TestExpectations:

Oct 6, 2020:

11:01 PM Changeset in webkit [268118] by Peng Liu
  • 37 edits in trunk/Source/WebKit

[Media in GPU process] Don't use 'id' as a parameter or variable name
https://bugs.webkit.org/show_bug.cgi?id=206189

Reviewed by Tim Horton.

Mass rename id to identifier.

No new tests, no functional change.

  • GPUProcess/media/RemoteAudioDestinationManager.cpp:

(WebKit::RemoteAudioDestination::create):
(WebKit::RemoteAudioDestination::RemoteAudioDestination):
(WebKit::RemoteAudioDestinationManager::deleteAudioDestination):
(WebKit::RemoteAudioDestinationManager::startAudioDestination):
(WebKit::RemoteAudioDestinationManager::stopAudioDestination):

  • GPUProcess/media/RemoteAudioDestinationManager.messages.in:
  • GPUProcess/media/RemoteAudioTrackProxy.cpp:

(WebKit::RemoteAudioTrackProxy::RemoteAudioTrackProxy):
(WebKit::RemoteAudioTrackProxy::configuration):

  • GPUProcess/media/RemoteAudioTrackProxy.h:
  • GPUProcess/media/RemoteCDMFactoryProxy.cpp:

(WebKit::RemoteCDMFactoryProxy::addProxy):
(WebKit::RemoteCDMFactoryProxy::removeProxy):
(WebKit::RemoteCDMFactoryProxy::addInstance):
(WebKit::RemoteCDMFactoryProxy::removeInstance):
(WebKit::RemoteCDMFactoryProxy::getInstance):
(WebKit::RemoteCDMFactoryProxy::addSession):
(WebKit::RemoteCDMFactoryProxy::removeSession):

  • GPUProcess/media/RemoteCDMFactoryProxy.messages.in:
  • GPUProcess/media/RemoteCDMInstanceProxy.messages.in:
  • GPUProcess/media/RemoteCDMProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::addProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::removeProxy):
(WebKit::RemoteLegacyCDMFactoryProxy::addSession):
(WebKit::RemoteLegacyCDMFactoryProxy::removeSession):
(WebKit::RemoteLegacyCDMFactoryProxy::getSession const):

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::getProxy):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::create):
(WebKit::RemoteMediaResource::RemoteMediaResource):

  • GPUProcess/media/RemoteMediaResourceManager.cpp:

(WebKit::RemoteMediaResourceManager::responseReceived):
(WebKit::RemoteMediaResourceManager::redirectReceived):
(WebKit::RemoteMediaResourceManager::dataSent):
(WebKit::RemoteMediaResourceManager::dataReceived):
(WebKit::RemoteMediaResourceManager::accessControlCheckFailed):
(WebKit::RemoteMediaResourceManager::loadFailed):
(WebKit::RemoteMediaResourceManager::loadFinished):

  • GPUProcess/media/RemoteMediaResourceManager.messages.in:
  • GPUProcess/media/RemoteTextTrackProxy.cpp:

(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configuration):

  • GPUProcess/media/RemoteTextTrackProxy.h:
  • GPUProcess/media/RemoteVideoTrackProxy.cpp:

(WebKit::RemoteVideoTrackProxy::RemoteVideoTrackProxy):
(WebKit::RemoteVideoTrackProxy::configuration):

  • GPUProcess/media/RemoteVideoTrackProxy.h:
  • GPUProcess/media/TextTrackPrivateRemoteConfiguration.h:

(WebKit::TextTrackPrivateRemoteConfiguration::encode const):
(WebKit::TextTrackPrivateRemoteConfiguration::decode):

  • GPUProcess/media/TrackPrivateRemoteConfiguration.h:

(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):

  • WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:

(WebKit::AudioTrackPrivateRemote::updateConfiguration):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::remoteTextTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::removeRemoteVideoTrack):
(WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):

  • WebProcess/GPU/media/RemoteCDM.cpp:

(WebKit::RemoteCDM::create):
(WebKit::RemoteCDM::RemoteCDM):
(WebKit::RemoteCDM::createInstance):

  • WebProcess/GPU/media/RemoteCDMFactory.cpp:

(WebKit::RemoteCDMFactory::createCDM):
(WebKit::RemoteCDMFactory::removeSession):

  • WebProcess/GPU/media/RemoteCDMInstance.cpp:

(WebKit::RemoteCDMInstance::create):
(WebKit::RemoteCDMInstance::RemoteCDMInstance):
(WebKit::RemoteCDMInstance::createSession):

  • WebProcess/GPU/media/RemoteCDMInstanceSession.cpp:

(WebKit::RemoteCDMInstanceSession::create):
(WebKit::RemoteCDMInstanceSession::RemoteCDMInstanceSession):

  • WebProcess/GPU/media/RemoteLegacyCDM.cpp:

(WebKit::RemoteLegacyCDM::create):
(WebKit::RemoteLegacyCDM::RemoteLegacyCDM):
(WebKit::RemoteLegacyCDM::createSession):
(WebKit::RemoteLegacyCDM::setPlayerId):

  • WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:

(WebKit::RemoteLegacyCDMFactory::createCDM):
(WebKit::RemoteLegacyCDMFactory::addSession):
(WebKit::RemoteLegacyCDMFactory::removeSession):

  • WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:

(WebKit::RemoteLegacyCDMSession::create):
(WebKit::RemoteLegacyCDMSession::RemoteLegacyCDMSession):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):

  • WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:

(WebKit::RemoteMediaResourceProxy::RemoteMediaResourceProxy):

  • WebProcess/GPU/media/TextTrackPrivateRemote.cpp:

(WebKit::TextTrackPrivateRemote::updateConfiguration):

  • WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:

(WebKit::VideoTrackPrivateRemote::updateConfiguration):

10:59 PM Changeset in webkit [268117] by Andres Gonzalez
  • 5 edits in trunk

Presidential Executive Order pages not accessible with Safari.
https://bugs.webkit.org/show_bug.cgi?id=217415

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-modal.html.

These pages have a dialog modal element of the form

<div class="popover" role="dialog" aria-modal="true">

with style visible and a display value different from none. This makes
WebCore/accessibility to treat it as if the dialog were always visible,
and thus do not convey the content of the page outside the dialog to
VoiceOver. The author controls the visibility of the dialog using the
style opacity. This patch adds the check for the opacity to determine
whether an element is visible or not.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isNodeVisible const):

LayoutTests:

Expanded this test to cover the case whether the modal dialog visibility
is controlled by its opacity. Cleaned up JS code and made it work in
isolated tree mode.

  • accessibility/aria-modal-expected.txt:
  • accessibility/aria-modal.html:
9:50 PM Changeset in webkit [268116] by Devin Rousso
  • 22 edits in trunk

Move platform logic for CSS hover and pointer media queries outside of WebCore
https://bugs.webkit.org/show_bug.cgi?id=217413

Reviewed by Tim Horton.

Source/WebCore:

No change in behavior, covered by existing tests.

  • css/MediaQueryEvaluator.cpp:

(WebCore::hoverEvaluate):
(WebCore::pointerEvaluate):

  • page/ChromeClient.h:
  • loader/EmptyClients.h:

(WebCore::EmptyChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebCore::EmptyChromeClient::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
Provide a way for WebCore to get information about the primary pointing device.
Refactor logic in hoverEvaluate and pointerEvaluate to move platform code into the
respective WebKit::WebPage file.

Source/WebKit:

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

(WebKit::WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::hoverSupportedByPrimaryPointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfPrimaryPointingDevices const): Added.
Provide a way for WebCore to get information about the primary pointing device.
Refactor logic in WebCore::anyHoverEvaluate and WebCore::anyPointerEvaluate to move
platform code into the respective WebPage file.

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:

(WebChromeClientIOS::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClientIOS::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are not supported.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are always supported.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::hoverSupportedByPrimaryPointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfPrimaryPointingDevice const): Added.
Mouse devices are always supported.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(iOSMouseSupport.MouseInitiallyDisconnected):
(iOSMouseSupport.MouseInitiallyConnected):
(iOSMouseSupport.MouseLaterDisconnected):
(iOSMouseSupport.MouseLaterConnected):
(iOSMouseSupport.MouseAlwaysConnected):

9:20 PM Changeset in webkit [268115] by weinig@apple.com
  • 19 edits in trunk/Tools

Refactor TestOptions code in WebKitTestRunner to make it easier to rationalize and extend
https://bugs.webkit.org/show_bug.cgi?id=217390

Reviewed by Darin Adler.

Refactors TestOptions code in WebKitTestRunner to make it clear how options coming in at
different levels are treated and what precedence each has. The order is (from least to most):

  • Global features passed to WebKitTestRunner via the command line (e.g. --show-touches)
  • Hardcoded features based on the path of the test being run (hopefully we can remove all soon)
  • Hardcoded platform specific defaults (currently only used by macOS for useThreadedScrolling).
  • Features from the test headers within the test itself.
  • Finally, a second chance for more platform specific defaults (currenly only used the Cocoa ports for setting enableProcessSwapOnNavigation and enableProcessSwapOnWindowOpen based on NSUserDefaults.)

To make this change work, and pave the way for future autogeneration of some of these test options,
the TestOptions struct (now class) was overhauled. Instead of storing the state itself, TestOptions
is now an immutable owner of a TestFeatures object. TestFeatures is a simple struct that contains maps
of option keys to values and can be merged with other TestFeatures objects. TestOptions takes a
TestFeatures at construction, and exposes getters for all keys, as well as defaults for when they are
not in the maps. In future changes, I would like to remove many of these (the ones that correspond
with WebKit preferences anyway) and have the keys and values automatically dealt with by WKPreferences.

  • WebKitTestRunner/Options.cpp:
  • WebKitTestRunner/Options.h:

Switch to std::unordered_map for consistency and ease of conversion.

  • WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::viewSupportsOptions const):
Update to call new TestOptions functions.

  • WebKitTestRunner/StringFunctions.h:

(WTR::toWK):
(WTR::toWTFString):
Add conversions for std::string.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):
Replace some bools with a new global TestFeatures instance that forms the base of
all TestFeatures merges.

(WTR::TestController::generateContextConfiguration const):
(WTR::TestController::generatePageConfiguration):
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::ensureViewSupportsOptionsForTest):
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::TestController::resetStateToConsistentValues):
Update to call new TestOptions functions.

(WTR::TestController::createTestURL):
Expose as a static member function on TestController for use in other files.

(WTR::TestController::testOptionsForTest const):
Rework to be a sequence of TestFeatures merges.

(WTR::TestController::updateWebViewSizeForTest):
(WTR::TestController::updateWindowScaleForTest):
Update to call new TestOptions functions.

(WTR::createTestURL): Deleted.
(WTR::parseBooleanTestHeaderValue): Deleted.
(WTR::parseStringTestHeaderValueAsRelativePath): Deleted.
(WTR::parseStringTestHeaderValueAsURL): Deleted.
(WTR::updateTestOptionsFromTestHeader): Deleted.
(WTR::TestController::platformAddTestOptions const): Deleted.
Moved TestOptions parsing to TestOptions.cpp

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::createTestSettingsDictionary):
Update to call new TestOptions functions.

  • WebKitTestRunner/TestOptions.h:

Reworks TestOptions to be an immutable owner of a TestFeatures struct, which is a set
of maps that map feature string keys, to values of type bool, double, string or string vector.

  • WebKitTestRunner/TestOptions.cpp:

(WTR::merge):
Merges two TestFeatures objects. If both contain the same key, the 'additional'
TestFeatures overrides the 'base' TestFeatures.

(WTR::dumpFeatures):
Helper to dump features to stderr, useful for debugging.

(WTR::keyType):
Helper for parser to know which value parser to use.

(WTR::parseBooleanTestHeaderValue):
(WTR::parseStringTestHeaderValueAsRelativePath):
(WTR::parseStringTestHeaderValueAsURL):
Value parsers moved from TestController.cpp

(WTR::parseTestHeader):
Header parser moved from TestController.cpp. Update to now return
a TestFeatures object and use keyType to pick value parser rather
than inlining the if statements.

(WTR::hardcodedFeaturesBasedOnPathForTest):
Moved from the TestOptions contructor and reworked to return a TestFeatures
object to be merged by the caller.

(WTR::featureDefaultsFromTestHeaderForTest):
Creates a TestFeatures for the test headers of the current test.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformSpecificFeatureOverridesDefaultsForTest const):
Reworked to now return a TestFeatures object that will be merged, rather than updating
a TestOptions. Moves enableInAppBrowserPrivacy work to TestController::platformWillRunTest
where it is more appropriate.

(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateWebView):
(WTR::TestController::finishCreatingPlatformWebView):
(WTR::TestController::setApplicationBundleIdentifier):
(WTR::TestController::cocoaResetStateToConsistentValues):
(WTR::contentMode):
Update to call new TestOptions functions.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):
(WTR::TestController::platformConfigureViewForTest):
Update to call new TestOptions functions.

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Moved GeneratedTouchesDebugWindow work to TestController::platformConfigureViewForTest
where it is more appropriate and removed shouldShowTouches setting as that is done
globally now.

  • WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::PlatformWebView):
Update to call new TestOptions functions.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Remove shouldUseRemoteLayerTree and shouldShowWebView, as those are now done globally,
and re-implemented useThreadedScrolling to use boolFeatures.

  • WebKitTestRunner/win/TestControllerWin.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.

  • WebKitTestRunner/gtk/TestControllerGTK.cpp:

(WTR::TestController::platformSpecificFeatureDefaultsForTest const):
(WTR::TestController::updatePlatformSpecificTestOptionsForTest const): Deleted.
Updated for new signature.

9:03 PM Changeset in webkit [268114] by weinig@apple.com
  • 42 edits
    10 adds in trunk

<input type="datetime-local"> not show calendar UI when it's inside ShadowDOM
https://bugs.webkit.org/show_bug.cgi?id=216985
<rdar://problem/69660273>

Reviewed by Darin Adler.

Source/WebCore:

Tests: fast/forms/date/date-from-frameless-document.html

fast/forms/datetimelocal/datetimelocal-from-frameless-document.html
fast/forms/month/month-from-frameless-document.html
fast/forms/time/time-from-frameless-document.html
fast/forms/week/week-from-frameless-document.html

The issue here was that frameless documents, such as those created via the
<template> element or document.implementation.createHTMLDocument(...) were
not able to access the real Settings object, so were creating their own which
only contained the default values. So, the solution is to ensure we pass
the real Settings object to the Document constructors even when the Frame is
null.

To do this requires a bit of piping Settings around, but also some simplification.
Now, the Settings owned by Document is fully immutable, with the mutableSettings()
accessor being removed, as it was not actually needed. The two uses of mutable
Settings were for ServiceWorker creation, where we can just use the mutable accessor
from Page instead, and in the Document constructor, where the LegacyGetUserMediaEnabled
setting was being enabled based on a quirk. This was not only incorrect (as it would
effect more than just what the quirk intended) but unnecessary, as we can make the
bindings access the quirk directly.

The one somewhat complex case was for CachedSVGDocument and CachedSVGFont for which
I had to thread settings through CachedResourceLoader and have the CachedSVGDocument
and CachedSVGFont hold onto the Settings object until it was time to construct their
documents.

  • bindings/scripts/CodeGeneratorJS.pm:

(NeedsRuntimeCheck):
(GenerateRuntimeEnableConditionalString):

  • bindings/scripts/IDLAttributes.json:

Add support back for EnabledByQuirk.

  • Modules/mediastream/Navigator+MediaDevices.idl:

Switch to EnabledByQuirk=shouldEnableLegacyGetUserMedia.

  • page/Quirks.cpp:

(WebCore::Quirks::shouldEnableLegacyGetUserMediaQuirk const):
(WebCore::Quirks::shouldEnableLegacyGetUserMedia const): Deleted.

  • page/Quirks.h:

Rename quirk to end in "Quirk" to work with the bindings generator.

  • page/Settings.yaml:

Remove now unused legacyGetUserMediaEnabled settings.

  • Scripts/SettingsTemplates/Settings.h.erb:

Export the settings contructor and destructor so it can be used by tests.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::createPageForServiceWorker):
Switch to using the mutable settings from Page.

  • dom/DOMImplementation.cpp:

(WebCore::createXMLDocument):
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):

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

(WebCore::Document::Document):
(WebCore::m_selection):
(WebCore::Document::create):
(WebCore::Document::createNonRenderedPlaceholder):
(WebCore::Document::cloneDocumentWithoutChildren const):
(WebCore::Document::ensureTemplateDocument):

  • dom/Document.h:

(WebCore::Document::settings const):
(WebCore::Document::create):
(WebCore::Document::mutableSettings): Deleted.

  • dom/XMLDocument.h:

(WebCore::XMLDocument::create):
(WebCore::XMLDocument::createXHTML):
(WebCore::XMLDocument::XMLDocument):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):

  • html/FTPDirectoryDocument.h:
  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::createSynthesizedDocument):
(WebCore::HTMLDocument::HTMLDocument):
(WebCore::HTMLDocument::cloneDocumentWithoutChildren const):

  • html/HTMLDocument.h:

(WebCore::HTMLDocument::create):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::ImageDocument):

  • html/ImageDocument.h:
  • html/MediaDocument.cpp:

(WebCore::MediaDocument::MediaDocument):

  • html/MediaDocument.h:
  • html/PluginDocument.cpp:

(WebCore::PluginDocument::PluginDocument):

  • html/PluginDocument.h:
  • html/TextDocument.cpp:

(WebCore::TextDocument::TextDocument):

  • html/TextDocument.h:
  • inspector/DOMPatchSupport.cpp:

(WebCore::DOMPatchSupport::patchDocument):

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):

  • loader/SinkDocument.cpp:

(WebCore::SinkDocument::SinkDocument):

  • loader/SinkDocument.h:
  • loader/cache/CachedResourceLoader.cpp:

(WebCore::createResource):
(WebCore::CachedResourceLoader::updateCachedResourceWithCurrentRequest):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::revalidateResource):
(WebCore::CachedResourceLoader::loadResource):

  • loader/cache/CachedResourceLoader.h:
  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::CachedSVGDocument):
(WebCore::CachedSVGDocument::finishLoading):

  • loader/cache/CachedSVGDocument.h:
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::CachedSVGFont):
(WebCore::CachedSVGFont::ensureCustomFontData):

  • loader/cache/CachedSVGFont.h:
  • page/ios/FrameIOS.mm:

(WebCore::Frame::initWithSimpleHTMLDocument):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::SVGDocument):
(WebCore::SVGDocument::cloneDocumentWithoutChildren const):

  • svg/SVGDocument.h:

(WebCore::SVGDocument::create):

  • xml/DOMParser.cpp:

(WebCore::DOMParser::DOMParser):
(WebCore::DOMParser::parseFromString):

  • xml/DOMParser.h:
  • xml/XMLHttpRequest.cpp:
  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource):
Thread settings into all the places.

Tools:

  • TestWebKitAPI/Tests/WebCore/DocumentOrder.cpp:

(TestWebKitAPI::createDocument):
Update to pass a Settings object to Document::create which is now required.

LayoutTests:

Add tests that show that date/time input elements are the same whether they come from a template
document or the main document.

  • fast/forms/date/date-from-frameless-document-expected.html: Added.
  • fast/forms/date/date-from-frameless-document.html: Added.
  • fast/forms/datetimelocal/datetimelocal-from-frameless-document-expected.html: Added.
  • fast/forms/datetimelocal/datetimelocal-from-frameless-document.html: Added.
  • fast/forms/month/month-from-frameless-document-expected.html: Added.
  • fast/forms/month/month-from-frameless-document.html: Added.
  • fast/forms/time/time-from-frameless-document-expected.html: Added.
  • fast/forms/time/time-from-frameless-document.html: Added.
  • fast/forms/week/week-from-frameless-document-expected.html: Added.
  • fast/forms/week/week-from-frameless-document.html: Added.
8:34 PM Changeset in webkit [268113] by Lauro Moura
  • 2 edits
    1 add in trunk/LayoutTests

[GLIB] Gardening and rebaseline two tests

Unreviewed test gardening.

  • platform/glib/webaudio/audioworklet-addModule-failure-expected.txt: Added.
  • platform/gtk/TestExpectations:
8:20 PM Changeset in webkit [268112] by Karl Rackler
  • 2 edits in trunk/LayoutTests

REGRESSION (iOS 14): [ iOS wk2 ] imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=217419

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
6:45 PM Changeset in webkit [268111] by Alan Coon
  • 1 copy in tags/Safari-610.2.11

Tag Safari-610.2.11.

6:35 PM Changeset in webkit [268110] by Alan Coon
  • 8 edits in branches/safari-610.2-branch/Source

Versioning.

WebKit-7610.2.11

6:28 PM Changeset in webkit [268109] by Alan Coon
  • 1 copy in tags/Safari-611.1.1.3

Tag Safari-611.1.1.3.

6:23 PM Changeset in webkit [268108] by Alan Coon
  • 8 edits in branches/safari-611.1.1-branch/Source

Versioning.

WebKit-7611.1.1.3

6:05 PM Changeset in webkit [268107] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source/WebKit

Apply patch. rdar://problem/70026315

6:02 PM Changeset in webkit [268106] by Alan Coon
  • 10 edits
    2 adds in branches/safari-610-branch

Cherry-pick r267987. rdar://problem/70025699

MediaRecorder should respect enabled and muted tracks
https://bugs.webkit.org/show_bug.cgi?id=217312

Reviewed by Eric Carlson.

Source/WebCore:

If track is muted, replace it by either silence (audio buffer filled with zeros) or black frames.
MediaRecorderPrivate will keep track of whether the selected track should be muted.
It is then the responsibility of the specialization to do the appropriate processing.

Test: http/wpt/mediarecorder/mute-tracks.html

  • Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::trackMutedChanged): (WebCore::MediaRecorder::trackEnabledChanged):
  • Modules/mediarecorder/MediaRecorder.h:
  • platform/audio/cocoa/WebAudioBufferList.cpp: (WebCore::WebAudioBufferList::zeroFlatBuffer):
  • platform/audio/cocoa/WebAudioBufferList.h:
  • platform/mediarecorder/MediaRecorderPrivate.cpp: (WebCore::MediaRecorderPrivate::selectTracks): (WebCore::MediaRecorderPrivate::checkTrackState):
  • platform/mediarecorder/MediaRecorderPrivate.h: (WebCore::MediaRecorderPrivate::trackMutedChanged): (WebCore::MediaRecorderPrivate::trackEnabledChanged): (WebCore::MediaRecorderPrivate::shouldMuteAudio const): (WebCore::MediaRecorderPrivate::shouldMuteVideo const):
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::create): (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable): (WebCore::MediaRecorderPrivateAVFImpl::audioSamplesAvailable):
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:

LayoutTests:

  • http/wpt/mediarecorder/mute-tracks-expected.txt: Added.
  • http/wpt/mediarecorder/mute-tracks.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267987 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:02 PM Changeset in webkit [268105] by Alan Coon
  • 11 edits
    1 add in branches/safari-610-branch

Cherry-pick r267870. rdar://problem/70025703

Add AVAssetWriter SPI header
https://bugs.webkit.org/show_bug.cgi?id=217169
<rdar://problem/69793050>

Reviewed by Eric Carlson.

Source/WebCore:

No change of behavior, include SPI header instead of private SDK header.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/AVAssetWriterSPI.h: Added.

Source/WTF:

  • wtf/PlatformHave.h: Remove dependency on AVAssetWriter_private.h. Introduce HAVE_AVASSETWRITERDELEGATE_API for older OSes that only have delegate as SPI.

LayoutTests:

Enable tests by default on Catalina+, disable them on Mojave and WK1.
Disable tests for iOS13.

  • TestExpectations:
  • platform/ios-13/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/mac-wk1/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267870 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:02 PM Changeset in webkit [268104] by Alan Coon
  • 5 edits in branches/safari-610-branch/LayoutTests

Apply patch. rdar://problem/70024420

5:36 PM Changeset in webkit [268103] by Chris Dumez
  • 28 edits
    4 copies in trunk

Add implementation for AudioWorkletGlobalScope.registerProcessor()
https://bugs.webkit.org/show_bug.cgi?id=217405

Reviewed by Geoff Garen.

LayoutTests/imported/w3c:

Rebaseline WPT tests as we are now passing more checks.

  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam-iterable.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-audioparam.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-construction.https-expected.txt:

Source/WebCore:

Add implementation for AudioWorkletGlobalScope.registerProcessor() that matches very closely
the specification at:

Also update the AudioWorkletNode constructor implementation as per:

Now that the AudioWorklet is able to register a processor and AudioParamDescriptors, the
AudioWorkletNode constructor is able to make sure that a processor with the given name was
indeed registered. We are also able to construct the AudioParam objects based on the
AudioParamDescriptors provided when registering the processor.

Note that even though it is now possible to register an AudioWorkletProcessor, it is still
not used to process the audio. An AudioWorkletNode currently only outputs silence. This will
be addresssed in a future patch.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParam.idl:
  • Modules/webaudio/AudioParamDescriptor.h: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.

(WebCore::AudioParamDescriptor::isolatedCopy const):

  • Modules/webaudio/AudioParamDescriptor.idl: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

  • Modules/webaudio/AudioWorkletGlobalScope.h:
  • Modules/webaudio/AudioWorkletGlobalScope.idl:
  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::AudioWorkletMessagingProxy):
(WebCore::AudioWorkletMessagingProxy::postTaskToAudioWorklet):

  • Modules/webaudio/AudioWorkletMessagingProxy.h:
  • Modules/webaudio/AudioWorkletNode.cpp:

(WebCore::AudioWorkletNode::create):

  • Modules/webaudio/AudioWorkletThread.h:

(WebCore::AudioWorkletThread::messagingProxy):

  • Modules/webaudio/AutomationRate.h: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
  • Modules/webaudio/AutomationRate.idl: Copied from Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.idl.
  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::addAudioParamDescriptors):

  • Modules/webaudio/BaseAudioContext.h:

(WebCore::BaseAudioContext::parameterDescriptorMap const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
5:23 PM Changeset in webkit [268102] by Alan Coon
  • 9 edits in branches/safari-610-branch

Cherry-pick r267941. rdar://problem/70024420

Make sure MediaRecorder does not call fetchData until the last fetchData is completed
https://bugs.webkit.org/show_bug.cgi?id=217276

Reviewed by Darin Adler.

Source/WebCore:

When fetchData is called while an existing fetchData is inflight, enqueue the callback in a deque.
When the inflight fetchData completes, call the enqueued callbacks in order with a null blob.

Add ASSERT in MediaRecorderPrivateWriter to make sure we do not call requestMediaDataWhenReadyOnQueue too many times.

Covered by updated http/wpt/mediarecorder/MediaRecorder-dataavailable.html.

  • Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::stopRecording): (WebCore::MediaRecorder::requestData): Do not enable the timer if MediaRecorder is not active as a small optimization. (WebCore::MediaRecorder::fetchData):
  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp: (WebCore::MediaRecorderPrivateMock::fetchData):
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::flushCompressedSampleBuffers):

LayoutTests:

Add test to cover patch
Update some test expectations according bot results.

  • http/wpt/mediarecorder/MediaRecorder-dataavailable-expected.txt:
  • http/wpt/mediarecorder/MediaRecorder-dataavailable.html:
  • platform/mac/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:23 PM Changeset in webkit [268101] by Alan Coon
  • 3 edits in branches/safari-610-branch/LayoutTests

Cherry-pick r267836. rdar://problem/70024631

http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=217171
<rdar://problem/65085139>

Reviewed by Eric Carlson.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html: Setting the video currentTime too close to the end makes it render transparent frames. Make it so that we try using the middle of the video content where we expect green content.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267836 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:23 PM Changeset in webkit [268100] by Alan Coon
  • 15 edits in branches/safari-610-branch

Cherry-pick r267833. rdar://problem/70024626

MediaRecorder should support MediaRecorderOptions.mimeType
https://bugs.webkit.org/show_bug.cgi?id=215018
<rdar://problem/66681508>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-mimetype-expected.txt:

Source/WebCore:

Instead of setting mime type right away, set it just before firing start event as per spec.
This will allow in the future to populate exact codec parameters if proven useful.

Covered by rebased and updated tests.

  • Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::create): (WebCore::MediaRecorder::startRecording):
  • platform/mediarecorder/MediaRecorderPrivate.h: (WebCore::MediaRecorderPrivate::startRecording):
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:

Source/WebKit:

Update code to pass mimeType as part of startRecording callback.

  • GPUProcess/webrtc/RemoteMediaRecorder.h: (WebKit::RemoteMediaRecorder::mimeType const):
  • GPUProcess/webrtc/RemoteMediaRecorderManager.cpp: (WebKit::RemoteMediaRecorderManager::createRecorder):
  • GPUProcess/webrtc/RemoteMediaRecorderManager.h:
  • GPUProcess/webrtc/RemoteMediaRecorderManager.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: (WebKit::MediaRecorderPrivate::startRecording):
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

Update test to expect setting of the mime type after start event.

  • http/wpt/mediarecorder/mimeType.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267833 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:23 PM Changeset in webkit [268099] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC] FormattingContext::Geometry::contentHeightForFormattingContextRoot should take a const ContainerBox&
https://bugs.webkit.org/show_bug.cgi?id=217404

Reviewed by Simon Fraser.

A formatting context root is always a Layout::ContainerBox (and not just a Layout::Box).

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createLayoutBox):

5:23 PM Changeset in webkit [268098] by Alan Coon
  • 5 edits in branches/safari-610-branch

Cherry-pick r267822. rdar://problem/70024621

MediaRecorder should allow setting low bit rates for audio
https://bugs.webkit.org/show_bug.cgi?id=216688
<rdar://problem/69129142>

Reviewed by Eric Carlson.

Source/WebCore:

When setting the bitrate provided by the web app fails, we now use default bit rate values that are expected to work properly.
Covered by updated tests.

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm: (WebCore::AudioSampleBufferCompressor::setBitsPerSecond): (WebCore::AudioSampleBufferCompressor::defaultOutputBitRate const): (WebCore::AudioSampleBufferCompressor::initAudioConverterForSourceFormatDescription):

LayoutTests:

Add more bitrate tests.

  • http/wpt/mediarecorder/MediaRecorder-audio-bitrate.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:21 PM Changeset in webkit [268097] by Chris Dumez
  • 4 edits in trunk

Reloading a view in its processTerminationHandler does not work reliably when using related views
https://bugs.webkit.org/show_bug.cgi?id=217407

Reviewed by Geoff Garen.

Source/WebKit:

Related web views share the same WebContent process. When this process crashes, we iterate over
the list of WebPageProxy objects sharing this process and let them know that their process has
crashed. This causes the WebPageProxy to reset its state (so that it is aware it no longer has
a running process) and to notify the client application. Because we were notifying the client
application synchronously, the client could trigger a load in the view synchronously while we
are still iterating over the WebPageProxy objects. When triggering a load in a web view that
has no running process, we normally relaunch one. However, in the case of related web views,
the view uses its related webview's process, relaunching it if necessary. The 'relaunching
if necessary' part was not reliably happening here because the related web view may not have
been notified yet that its WebProcess has crashed (since we are still iterating over the
pages to notify them).

To address the issue, we now notify the client asynchronously of the process termination.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dispatchProcessDidTerminate):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(-[NavigationDelegateWithCrashHandlerThatLoadsAgain _webView:webContentProcessDidTerminateWithReason:]):
(-[NavigationDelegateWithCrashHandlerThatLoadsAgain webView:didFinishNavigation:]):
(TEST):

5:19 PM Changeset in webkit [268096] by Alan Coon
  • 1 copy in tags/Safari-610.2.10

Tag Safari-610.2.10.

5:18 PM Changeset in webkit [268095] by Peng Liu
  • 6 edits in trunk

[Media in GPU Process] The seekable attribute of HTMLMediaElement has an incorrect value
https://bugs.webkit.org/show_bug.cgi?id=217410

Reviewed by Eric Carlson.

Source/WebKit:

Covered by existing tests.

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::mediaPlayerReadyStateChanged):
Update the state variables related to the seekable attribute when the media player is ready.
(WebKit::RemoteMediaPlayerProxy::updateCachedState):
Add a missing state variable setting.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::seekable const): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Instead of overriding seekable() here, we should use MediaPlayerPrivateInterface::seekable(),
which has the correct behavior.

LayoutTests:

  • gpu-process/TestExpectations:
5:16 PM Changeset in webkit [268094] by Alan Coon
  • 8 edits in branches/safari-610.2-branch/Source

Versioning.

WebKit-7610.2.10

5:15 PM Changeset in webkit [268093] by Karl Rackler
  • 3 edits in trunk/LayoutTests

REGRESSION (r267402): [ iOS Mojave+ Release ] imported/w3c/web-platform-tests/user-timing/measure-l3.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217414

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
5:09 PM Changeset in webkit [268092] by Alan Coon
  • 26 edits
    2 adds in branches/safari-610-branch

Cherry-pick r267825. rdar://problem/70024248

MediaRecorder should support isTypeSupported
https://bugs.webkit.org/show_bug.cgi?id=216856
LayoutTests/imported/w3c:

Reviewed by Darin Adler.

  • web-platform-tests/mediacapture-record/MediaRecorder-mimetype-expected.txt:
  • web-platform-tests/mediacapture-record/MediaRecorder-peerconnection.https-expected.txt:
  • web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
  • web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https-expected.txt:
  • web-platform-tests/mediacapture-record/passthrough/MediaRecorder-passthrough.https.html: Remove JS console log error line.

Source/WebCore:

<rdar://problem/69767695>

Reviewed by Darin Adler.

Introduce MediaRecorder::isMimeTypeSupported whose result is exposed as MediaRecoder.isTypeSupported.
Cocoa port allows mp4 audio and video mime types, with H264 and AAC codecs.
Add a routine to get the mime type from the MediaRecorderPrivate.
Store it in MediaRecorder and add a mimeType getter.

Test: http/wpt/mediarecorder/mimeType.html

  • Modules/mediarecorder/MediaRecorder.cpp: (WebCore::MediaRecorder::isTypeSupported): (WebCore::MediaRecorder::create):
  • Modules/mediarecorder/MediaRecorder.h:
  • Modules/mediarecorder/MediaRecorder.idl:
  • Modules/mediarecorder/MediaRecorderProvider.cpp: (WebCore::MediaRecorderProvider::isSupported):
  • Modules/mediarecorder/MediaRecorderProvider.h:
  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::mimeType const):
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp: (WebCore::MediaRecorderPrivateMock::mimeType const):
  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::mimeType const):
  • platform/mediastream/MediaStreamPrivate.h:

Source/WebKit:

<rdar://problem/69767695>

Reviewed by Darin Adler.

Stop passing mimeType for each data blob.
Instead, compute it on WebProcess side.

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp: (WebKit::RemoteMediaRecorder::fetchData):
  • GPUProcess/webrtc/RemoteMediaRecorder.h:
  • GPUProcess/webrtc/RemoteMediaRecorder.messages.in:
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp: (WebKit::MediaRecorderPrivate::MediaRecorderPrivate): (WebKit::MediaRecorderPrivate::fetchData): (WebKit::MediaRecorderPrivate::mimeType const):
  • WebProcess/GPU/webrtc/MediaRecorderPrivate.h:

LayoutTests:

Reviewed by Darin Adler.

  • http/wpt/mediarecorder/mimeType-expected.txt: Added.
  • http/wpt/mediarecorder/mimeType.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:09 PM Changeset in webkit [268091] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267828. rdar://problem/70023908

[iOS] MediaRecorder incorrect screen orientation handling
https://bugs.webkit.org/show_bug.cgi?id=198912
<rdar://problem/51802521>

Reviewed by Eric Carlson.

We were setting the transform to the writer input too soon.
Buffer the transform when receiving the first frame and set it at creation of the writer input.

Covered by http/wpt/mediarecorder/video-rotation.html now actually passing.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::startAssetWriter): (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:09 PM Changeset in webkit [268090] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267521. rdar://problem/70023915

REGRESSION (iOS/Safari 14): MediaRecorder produces invalid video files
https://bugs.webkit.org/show_bug.cgi?id=216832
<rdar://problem/69377550>

Reviewed by Eric Carlson.

Start the audio and video timestamps at zero.
Compute the audio timestamp based on the sample count and the video timestamp based
on the time at which the video sample is received.

Covered by manually testing Safari generated videos on VLC, Chrome and Firefox.

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::initialize): (WebCore::MediaRecorderPrivateWriter::startAssetWriter): (WebCore::copySampleBufferWithCurrentTimeStamp): (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer): (WebCore::createAudioSampleBuffer): (WebCore::MediaRecorderPrivateWriter::appendAudioSampleBuffer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267521 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:09 PM Changeset in webkit [268089] by Alan Coon
  • 7 edits
    2 adds in branches/safari-610-branch

Cherry-pick r267366. rdar://problem/70023908

[iOS] MediaRecorder incorrect screen orientation handling
https://bugs.webkit.org/show_bug.cgi?id=198912
<rdar://problem/51802521>

Reviewed by Eric Carlson.

Source/WebCore:

Update MediaRecorderPrivateWriterCocoa to pass a MediaSample down to handle rotation.
Set AVAssetWriterInput transform according the first MediaSample rotation value.

Test: http/wpt/mediarecorder/video-rotation.html

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp: (WebCore::MediaRecorderPrivateAVFImpl::videoSampleAvailable):
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm: (WebCore::MediaRecorderPrivateWriter::appendVideoSampleBuffer):

Source/WebKit:

  • GPUProcess/webrtc/RemoteMediaRecorder.cpp: (WebKit::RemoteMediaRecorder::videoSampleAvailable):

LayoutTests:

  • http/wpt/mediarecorder/video-rotation-expected.txt: Added.
  • http/wpt/mediarecorder/video-rotation.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267366 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:09 PM Changeset in webkit [268088] by Alan Coon
  • 28 edits
    5 adds in branches/safari-610-branch

Apply patch. rdar://70023523

5:03 PM Changeset in webkit [268087] by Alan Coon
  • 1 copy in branches/safari-610.2-branch

New branch.

4:44 PM Changeset in webkit [268086] by Devin Rousso
  • 42 edits
    2 copies
    6 adds in trunk

CSS hover and "pointer: fine" media queries do not evaluate to true with iOS 13.4 mouse support
https://bugs.webkit.org/show_bug.cgi?id=209292
<rdar://problem/60663124>

Reviewed by Tim Horton.

Source/WebCore:

On iOS, the primary pointer will always be touch input, so the hover/pointer media query
should never change. If a mouse is connected, however, any-hover/any-pointer should
change as now there is at least one device that supports hover/fine. Note that in the
case of any-pointer this means that both coarse and fine will apply. Catalyst assumes
that there is always a mouse connected.

Spec: https://drafts.csswg.org/mediaqueries-4/#any-input

  • css/MediaQueryEvaluator.cpp:

(WebCore::anyHoverEvaluate):
(WebCore::anyPointerEvaluate):

  • page/ChromeClient.h:
  • loader/EmptyClients.h:

(WebCore::EmptyChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebCore::EmptyChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Provide a way for WebCore to get the current state of whether there are any mouse devices.
Refactor logic in anyHoverEvaluate and anyPointerEvaluate to move platform code into the
respective WebKit::WebPage file.

  • page/PointerCharacteristics.h: Added.

Enum for Coarse and Fine.

  • platform/PlatformScreen.h:

Export additional functions for use in WebKit.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

On iOS, the primary pointer will always be touch input, so the hover/pointer media query
should never change. If a mouse is connected, however, any-hover/any-pointer should
change as now there is at least one device that supports hover/fine. Note that in the
case of any-pointer this means that both coarse and fine will apply. Catalyst assumes
that there is always a mouse connected.

Spec: https://drafts.csswg.org/mediaqueries-4/#any-input

  • UIProcess/ios/WKMouseDeviceObserver.h: Added.
  • UIProcess/ios/WKMouseDeviceObserver.mm: Added.

(+[WKMouseDeviceObserver sharedInstance]):
(-[WKMouseDeviceObserver dealloc]):
(-[WKMouseDeviceObserver start]):
(-[WKMouseDeviceObserver stop]):
(-[WKMouseDeviceObserver mousePointerDevicesDidChange:]):
(-[WKMouseDeviceObserver _setHasMouseDeviceForTesting:]):
Use BackBoardServices to listen for mouse devices changes and notify all WebProcess.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::WebProcessProxy::platformInitialize): Added.
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::platformDestroy): Added.

  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::platformInitialize): Added.
(WebKit::WebProcessProxy::platformDestroy): Added.
(WebKit::WebProcessProxy::notifyHasMouseDeviceChanged): Added.
Tell the shared WKMouseDeviceObserver to start listening for mouse device changes when
creating the WebProcess so that the shared WKMouseDeviceObserver knows to notify all
instances when mouse devices change. Make allProcesses into a private static member
function so that it can also be used in UIProcess/ios/WebProcessProxyIOS.mm.

  • Shared/WebProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
Use the current state of the shared WKMouseDeviceObserver when creating WebProcess instead
of sending a SetHasMouseDevice message immediately after the WebProcess is created.

  • WebProcess/WebProcess.messages.in:
  • WebProcess/WebProcess.h:

(WebKit::WebProcess::hasMouseDevice const): Added.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setHasMouseDevice): Added.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):
Update style (including any-hover and any-pointer) whenever mouse devices change.

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

(WebKit::WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::hasMouseDevice): Added.
(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/playstation/WebPagePlayStation.cpp:

(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebKit::WebPage::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Provide a way for WebCore to get the current state of whether there are any mouse devices.
Refactor logic in WebCore::anyHoverEvaluate and WebCore::anyPointerEvaluate to move
platform code into the respective WebPage file.

  • Configurations/WebKit.xcconfig:
  • Platform/spi/ios/BackBoardServicesSPI.h:
  • Platform/spi/ios/BaseBoardSPI.h: Added.
  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebChromeClientIOS.h:

(WebChromeClientIOS::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClientIOS::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are not supported.

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are always supported.

Source/WebKitLegacy/win:

  • WebCoreSupport/WebChromeClient.h:

(WebChromeClient::hoverSupportedByAnyAvailablePointingDevice const): Added.
(WebChromeClient::pointerCharacteristicsOfAllAvailablePointingDevices const): Added.
Mouse devices are always supported.

Tools:

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[TestWKWebView evaluateMediaQuery:]): Added.
Create helper function for synchronously testing media queries.

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(iOSMouseSupport.MouseInitiallyDisconnected): Added.
(iOSMouseSupport.MouseInitiallyConnected): Added.
(iOSMouseSupport.MouseLaterDisconnected): Added.
(iOSMouseSupport.MouseLaterConnected): Added.
(iOSMouseSupport.MouseAlwaysConnected): Added.

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/13/BackBoardServices.framework/BackBoardServices.tbd: Added.
  • WebKitPrivateFrameworkStubs/iOS/14/BackBoardServices.framework/BackBoardServices.tbd: Added.

Use BackBoardServices to listen for mouse devices changes.

4:23 PM Changeset in webkit [268085] by James Darpinian
  • 15 edits
    10 adds in trunk

Support EXT_texture_compression_rgtc WebGL extension
https://bugs.webkit.org/show_bug.cgi?id=217198

Reviewed by Kenneth Russell.

Source/WebCore:

Test: webgl/conformance/extensions/ext-texture-compression-rgtc.html

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • html/canvas/EXTTextureCompressionRGTC.cpp: Added.

(WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):
(WebCore::EXTTextureCompressionRGTC::getName const):

  • html/canvas/EXTTextureCompressionRGTC.h: Added.
  • html/canvas/EXTTextureCompressionRGTC.idl: Added.
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • html/canvas/WebGLExtension.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::loseExtensions):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/graphics/ExtensionsGL.h:

LayoutTests:

  • webgl/conformance/extensions/ext-texture-compression-rgtc-expected.txt: Added.
  • webgl/conformance/extensions/ext-texture-compression-rgtc.html: Added.
  • webgl/conformance/extensions/s3tc-and-rgtc-expected.txt: Added.
  • webgl/conformance/extensions/s3tc-and-rgtc.html: Added.
  • webgl/resources/webgl_test_files/conformance/extensions/ext-texture-compression-rgtc.html: Added.
  • webgl/resources/webgl_test_files/conformance/extensions/s3tc-and-rgtc.html: Added.
  • webgl/resources/webgl_test_files/js/tests/compressed-texture-utils.js: Added.
4:21 PM Changeset in webkit [268084] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Expose lineRangeForPosition for iOS Accessibility code
https://bugs.webkit.org/show_bug.cgi?id=217256
<rdar://problem/67478962>

Reviewed by Zalan Bujtas.

Expose the existing lineRangeForPosition method for iOS accessibility.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper lineMarkersForMarker:]):

4:16 PM Changeset in webkit [268083] by Hector Lopez
  • 2 edits in trunk/LayoutTests

Adjust test expectation to include Release queue failure after change to iOS 14
https://bugs.webkit.org/show_bug.cgi?id=214731

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:59 PM Changeset in webkit [268082] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][BFC] Move document box special height computation out of contentHeightForFormattingContextRoot
https://bugs.webkit.org/show_bug.cgi?id=217402

Reviewed by Simon Fraser.

Document box (<html>) is not a formatting context root and while its content height computation is very similar to
BFC root height computation, it should not pollute the generic contentHeightForFormattingContextRoot code.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):

3:54 PM Changeset in webkit [268081] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS 14): http/wpt/cache-storage/cache-quota.any.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217412

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:47 PM Changeset in webkit [268080] by Jonathan Bedard
  • 17 edits in trunk/Tools

[webkitscmpy] Generate Commit object from local repository
https://bugs.webkit.org/show_bug.cgi?id=216404
<rdar://problem/68702897>

Reviewed by Dewei Zhu.

  • Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Bump version.
  • Scripts/libraries/webkitcorepy/webkitcorepy/decorators.py:

(Memoize.call.decorator): Handle case where function arguments are different.

  • Scripts/libraries/webkitcorepy/webkitcorepy/mocks/popen.py:

(PopenBase.poll): Reset stdout and stderr after calling the completion handler.

  • Scripts/libraries/webkitcorepy/webkitcorepy/tests/decorators_unittest.py:

(TestMemoize.test_conflicting_args):

  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/contributor.py:

(Contributor): Number of lines may be singular.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git):
(Git.init): Caller may wish to specify the patterns for production and development branches.
(Git.branches): Call the more general _branches_for to unify remote stripping logic.
(Git._commit_count): Given a parameter (hash, branch, difference between default branch and commit), compute
the number of commits.
(Git._branches_for): Given a hash, return all branches the commit is part of.
(Git.commit): Construct a commit given a commit hash, revision, identifier or branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/scm.py:

(Scm):
(Scm.init): Caller may wish to specify the patterns for production and development branches.
(Scm.commit): Construct a commit given a commit hash, revision, identifier or branch.
(Scm.prioritize_branches): Given a set of branches, pick the highest priority one.
(Scm.log): Log error to a configured logger or stderr.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn):
(Svn.init): Caller may wish to specify the patterns for production and development branches.
(Svn.info): Allow info for a specific commit to be queried.
(Svn._cache_path): Path to json cache of branch-commit mapping.
(Svn._cache_revisions): Query the remote for a specific branch to get the list of all commits on that branch.
(Svn._commit_count): Given a revision or branch, compute the number of commits.
(Svn._branch_for): Given a revision, use local data to determine the most likely branch before asking the remote which branch
a commit is on.
(Svn.commit): Construct a commit given a commit hash, revision, identifier or branch.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:

(Git): Add commands needed to construct an identifier, add mock commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/svn.py:

(Svn): Add commands needed to construct an identifier, add mock commits.

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/contributor_unittest.py:

(TestContributor.test_short_svn_log):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:

(TestGit):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/scm_unittest.py:

(TestScm.test_remote):
(TestScm):

  • Scripts/libraries/webkitscmpy/webkitscmpy/test/svn_unittest.py:

(TestSvn):

3:29 PM Changeset in webkit [268079] by Alan Coon
  • 1 copy in tags/Safari-610.2.9

Tag Safari-610.2.9.

3:20 PM Changeset in webkit [268078] by Hector Lopez
  • 2 edits in trunk/LayoutTests

REGRESSION(iOS 14): http/tests/cache-storage/page-cache-domcache-pending-promise.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=217408

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:04 PM Changeset in webkit [268077] by ysuzuki@apple.com
  • 26 edits in trunk/Source/JavaScriptCore

[JSC] More consistent PtrTagging for code types
https://bugs.webkit.org/show_bug.cgi?id=217362

Reviewed by Mark Lam.

  1. Avoid tagging JIT code with OperationPtrTag. OperationPtrTag should be used only for operations (C++ code).
  2. Avoid mixing JIT and C++ code for the same tagged pointers. For exception trampoline, in JIT mode, we should have JIT trampoline thunk which goes to LLInt bytecode handler code.
  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeUnconditionally):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileExceptionHandlers):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMathIC):

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

(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:

(JSC::CallRecord::CallRecord):

  • jit/JITCall.cpp:

(JSC::JIT::compileTailCall):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITInlines.h:

(JSC::JIT::emitNakedNearCall):
(JSC::JIT::emitNakedNearTailCall):
(JSC::JIT::emitNakedCall): Deleted.
(JSC::JIT::emitNakedTailCall): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutPrivateNameWithCachedId):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call):

  • llint/LLIntData.h:

(JSC::LLInt::getWide16CodeRef):
(JSC::LLInt::getWide32CodeRef):
(JSC::LLInt::getCodeFunctionPtr):
(JSC::LLInt::getWide16CodeFunctionPtr):
(JSC::LLInt::getWide32CodeFunctionPtr):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntExceptions.cpp:

(JSC::LLInt::callToThrow):
(JSC::LLInt::handleUncaughtException):
(JSC::LLInt::catcher):

  • llint/LLIntExceptions.h:
  • llint/LLIntSlowPaths.cpp:
  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):
(JSC::LLInt::functionForCallEntryThunk):
(JSC::LLInt::functionForConstructEntryThunk):
(JSC::LLInt::functionForCallArityCheckThunk):
(JSC::LLInt::functionForConstructArityCheckThunk):
(JSC::LLInt::evalEntryThunk):
(JSC::LLInt::programEntryThunk):
(JSC::LLInt::moduleProgramEntryThunk):
(JSC::LLInt::wasmFunctionEntryThunk):
(JSC::LLInt::callToThrowThunk):
(JSC::LLInt::handleUncaughtExceptionThunk):
(JSC::LLInt::catcherThunk):

  • llint/LLIntThunks.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):

2:53 PM Changeset in webkit [268076] by Chris Dumez
  • 12 edits in trunk/Source/WebCore

Add implementation for AudioWorkletGlobalScope's currentFrame / currentTime / sampleRate attributes
https://bugs.webkit.org/show_bug.cgi?id=217251

Reviewed by Geoffrey Garen.

Add implementation for AudioWorkletGlobalScope's currentFrame / currentTime / sampleRate attributes.
The AudioContext's sample rate is passed upon constructor since it does not change once the AudioContext
has been created. The current sample frame gets updated directly by the AudioDestinationNode on the
audio rendering thread, whenever the AudioAudioDestinationNode updates the current frame.
The currrentTime gets computed based on the current frame and the sample rate.

No new tests, no Web-facing behavior yet because we are not yet executing module scripts in
AudioWorklets.

  • Modules/webaudio/AudioDestinationNode.cpp:

(WebCore::AudioDestinationNode::render):

  • Modules/webaudio/AudioWorklet.cpp:

(WebCore::AudioWorklet::create):
(WebCore::AudioWorklet::AudioWorklet):

  • Modules/webaudio/AudioWorklet.h:
  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::AudioWorkletGlobalScope):

  • Modules/webaudio/AudioWorkletGlobalScope.h:

(WebCore::AudioWorkletGlobalScope::setCurrentFrame):
(WebCore::AudioWorkletGlobalScope::currentFrame const):
(WebCore::AudioWorkletGlobalScope::sampleRate const):
(WebCore::AudioWorkletGlobalScope::currentTime const):

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::generateWorkletParameters):

  • Modules/webaudio/AudioWorkletMessagingProxy.h:

(WebCore::AudioWorkletMessagingProxy::workletThread):

  • Modules/webaudio/AudioWorkletThread.h:

(WebCore::AudioWorkletThread::globalScope const):

  • Modules/webaudio/BaseAudioContext.cpp:

(WebCore::BaseAudioContext::BaseAudioContext):

  • Modules/webaudio/BaseAudioContext.h:
  • worklets/WorkletParameters.h:

(WebCore::WorkletParameters::isolatedCopy const):

2:33 PM Changeset in webkit [268075] by Simon Fraser
  • 31 edits in trunk/Source

Redundant rendering updates can be scheduled from inside Page::updateRendering()
https://bugs.webkit.org/show_bug.cgi?id=216726

Reviewed by Tim Horton.

Source/WebCore:

The basic model for scheduling rendering updates is that code that needs to trigger an
update just calls Page::schedule[Timed]RenderingUpdate(). However, if
Page::updateRendering() is already on the stack, and the work to be scheduled will happen
later in the current update, we don't have to schedule a new one.

To fix this Page::updateRendering() and related functions track which steps remain
in the current update, and callers of schedule[Timed]RenderingUpdate() pass the update steps
for the work they need to trigger. If the requested steps are included in the remaining steps
no new update needs to be scheduled. Note that requesting a step while that step is being executed
has to schedule an upate (e.g. requestAnimationFrame inside its own callback has to schedule).

At the end of an update, if there are any unfulfilled steps, then we schedule a new update.

Add a log channel for EventLoop and and log from various places.

In my brief testing, this reduces the number of calls to Page::updateRendering() by 10-25%
on some real pages, which could be a significant power saving.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleAnimationResolution):

  • display/DisplayLayerController.cpp:

(WebCore::Display::LayerController::scheduleRenderingUpdate):

  • dom/Document.cpp:

(WebCore::Document::setNeedsDOMWindowResizeEvent):
(WebCore::Document::setNeedsVisualViewportResize):
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::setNeedsVisualViewportScrollEvent):
(WebCore::Document::serviceRequestAnimationFrameCallbacks):
(WebCore::Document::intersectionObserversInitialUpdateTimerFired):
(WebCore::Document::scheduleRenderingUpdate):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
(WebCore::Document::updateResizeObservations):
(WebCore::Document::updateAnimationsAndSendEvents):

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

(WebCore::ScriptedAnimationController::scheduleAnimation):

  • page/EventHandler.cpp:

(WebCore::EventHandler::scheduleCursorUpdate):

  • page/FrameView.cpp:

(WebCore::FrameView::setViewExposedRect):

  • page/Page.cpp:

(WebCore::Page::updateStyleAfterChangeInEnvironment):
(WebCore::Page::scheduleRenderingUpdate):
(WebCore::Page::computeUnfulfilledRenderingSteps):
(WebCore::Page::triggerRenderingUpdateForTesting):
(WebCore::Page::updateRendering):
(WebCore::Page::isolatedUpdateRendering):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::finalizeRenderingUpdate):
(WebCore::Page::renderingUpdateCompleted):
(WebCore::Page::accessibilitySettingsDidChange):
(WebCore::Page::appearanceDidChange):
(WebCore::operator<<):

  • page/Page.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::scheduleAnimation):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::displayRefreshFired):

  • page/RenderingUpdateScheduler.h:
  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):

  • page/WheelEventTestMonitor.cpp:

(WebCore::WheelEventTestMonitor::setTestCallbackAndStartMonitoring):
(WebCore::WheelEventTestMonitor::scheduleCallbackCheck):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setEventTrackingRegionsDirty):

  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):

  • platform/Logging.cpp:

(WebCore::initializeLogChannelsIfNecessary):

  • platform/Logging.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::scheduleRenderingUpdateForImage):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyFlushRequired):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::scheduleRenderingUpdate):

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

Schedule for layer flush.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::layerFlushTimerFired):

Source/WebKitLegacy/mac:

Provide the flags.

  • WebView/WebView.mm:

(-[WebView _scheduleRenderingUpdateForPendingTileCacheRepaint]):

Source/WTF:

Make it possible to dump Vectors with inline capacity.

  • wtf/text/TextStream.h:

(WTF::operator<<):

2:21 PM Changeset in webkit [268074] by achristensen@apple.com
  • 11 edits in trunk/Source/WebKit

Use sendWithAsyncReply to evaluate JavaScript in a WebPage
https://bugs.webkit.org/show_bug.cgi?id=217351

Reviewed by Youenn Fablet.

No change in meaningful behavior, but complexity is removed.

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _evaluateJavaScript:asAsyncFunction:withSourceURL:withArguments:forceUserGesture:inFrame:inWorld:completionHandler:]):
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrame):
(WebKit::WebPageProxy::runJavaScriptInFrameInScriptWorld):
(WebKit::WebPageProxy::scriptValueCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScript):
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
2:18 PM Changeset in webkit [268073] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Versioning.

WebKit-7610.3.1

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

[Cocoa] The WebContent development XPC service is not allowed to connect to the XPC endpoint in the Networking process
https://bugs.webkit.org/show_bug.cgi?id=217389
<rdar://problem/68585497>

Reviewed by Brent Fulgham.

The WebContent development XPC service is not allowed to connect to the XPC endpoint in the Networking process,
because this requires a private entitlement. The WebContent development XPC service is not allowed to have private
entitlements. The WebContent process needs to connect to the XPC endpoint in the Networking process in order to
receive the Launch Services database XPC object. This patch addresses this issue by allowing platform binaries
to connect to the XPC endpoint.

  • Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

1:51 PM Changeset in webkit [268071] by aakash_jain@apple.com
  • 4 edits in trunk/Tools

[build.webkit.org] Ensure that steps names are valid Buildbot identifiers
https://bugs.webkit.org/show_bug.cgi?id=217394

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/steps.py: Removed spaces from step names.

(ConfigureBuild):
(KillOldProcesses):
(CleanBuildIfScheduled):
(DeleteStaleBuildFiles):
(RunGLibAPITests):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py: Updated unit-tests.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
1:37 PM Changeset in webkit [268070] by Wenson Hsieh
  • 28 edits
    1 move in trunk/Source

Rename MediaPlayerPrivateRemoteIdentifier to MediaPlayerIdentifier
https://bugs.webkit.org/show_bug.cgi?id=217397

Reviewed by Tim Horton.

Source/WebCore:

Move MediaPlayerPrivateRemoteIdentifier into WebCore, and rename it to MediaPlayerIdentifier, such that it
isn't necessarily limited to use for GPU Process code. This is preparation for introducing a display list
drawing item which will need to reference a remotely hosted MediaPlayer.

No change in behavior.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::identifier const):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerIdentifier.h: Renamed from Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemoteIdentifier.h.
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::identifier const):

Source/WebKit:

Mass rename MediaPlayerPrivateRemoteIdentifier to WebCore::MediaPlayerIdentifier. See WebCore/ChangeLog for
more details.

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::createCDM):

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.h:
  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.messages.in:
  • GPUProcess/media/RemoteLegacyCDMProxy.cpp:

(WebKit::RemoteLegacyCDMProxy::create):
(WebKit::RemoteLegacyCDMProxy::RemoteLegacyCDMProxy):
(WebKit::RemoteLegacyCDMProxy::setPlayerId):

  • GPUProcess/media/RemoteLegacyCDMProxy.h:
  • GPUProcess/media/RemoteLegacyCDMProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::createMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::deleteMediaPlayer):
(WebKit::RemoteMediaPlayerManagerProxy::didReceivePlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::didReceiveSyncPlayerMessage):
(WebKit::RemoteMediaPlayerManagerProxy::getProxy):

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::RemoteMediaPlayerProxy):

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • Scripts/webkit/messages.py:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::identifier const):

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
  • WebProcess/GPU/media/RemoteLegacyCDM.cpp:

(WebKit::RemoteLegacyCDM::setPlayerId):

  • WebProcess/GPU/media/RemoteLegacyCDM.h:
  • WebProcess/GPU/media/RemoteLegacyCDMFactory.cpp:

(WebKit::RemoteLegacyCDMFactory::createCDM):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::findRemotePlayerId):
(WebKit::RemoteMediaPlayerManager::didReceivePlayerMessage):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):

1:29 PM Changeset in webkit [268069] by Peng Liu
  • 2 edits in trunk/LayoutTests

[Media in GPU Process] Enable some layout tests

Unreviewed test gardening.

  • gpu-process/TestExpectations:
1:14 PM Changeset in webkit [268068] by Russell Epstein
  • 2 edits in branches/safari-610.2.8.1-branch/Source/WebKit

Cherry-pick r268019. rdar://problem/70012479

Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346

Reviewed by Tim Horton.

No new tests (Wish they were possible)

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly. Change to an early return while we continue tracking this down.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268019 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:11 PM Changeset in webkit [268067] by Russell Epstein
  • 8 edits in branches/safari-610.2.8.1-branch/Source

Versioning.

WebKit-7610.2.8.1.1

12:58 PM Changeset in webkit [268066] by Russell Epstein
  • 1 copy in branches/safari-610.2.8.1-branch

New branch.

12:39 PM Changeset in webkit [268065] by achristensen@apple.com
  • 13 edits
    2 adds
    2 deletes in trunk/Source/WebKit

Move ownership of DownloadClient from WebProcessPool to DownloadProxy
https://bugs.webkit.org/show_bug.cgi?id=217399

Reviewed by Tim Horton.

To keep binary compatibility, the WebProcessPool has a nullable DownloadClient that is used if it has been set.
This will allow us to get a DownloadClient from elsewhere, such as having the API Download object have its own delegate
or having the WKWebsiteDataStore have a delegate, which are two of the solutions I've considered. We definitely don't
want it on the WebProcessPool, though.

  • SourcesCocoa.txt:
  • UIProcess/API/APIDownloadClient.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDownloadClient):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _setDownloadDelegate:]):

  • UIProcess/API/glib/WebKitDownloadClient.cpp:

(attachDownloadClientToContext):

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextDispose):

  • UIProcess/Cocoa/LegacyDownloadClient.h: Renamed from Source/WebKit/UIProcess/Cocoa/DownloadClient.h.
  • UIProcess/Cocoa/LegacyDownloadClient.mm: Renamed from Source/WebKit/UIProcess/Cocoa/DownloadClient.mm.

(WebKit::LegacyDownloadClient::LegacyDownloadClient):
(WebKit::LegacyDownloadClient::didStart):
(WebKit::LegacyDownloadClient::didReceiveResponse):
(WebKit::LegacyDownloadClient::didReceiveData):
(WebKit::LegacyDownloadClient::didReceiveAuthenticationChallenge):
(WebKit::LegacyDownloadClient::didCreateDestination):
(WebKit::LegacyDownloadClient::processDidCrash):
(WebKit::LegacyDownloadClient::decideDestinationWithSuggestedFilename):
(WebKit::LegacyDownloadClient::didFinish):
(WebKit::LegacyDownloadClient::didFail):
(WebKit::LegacyDownloadClient::didCancel):
(WebKit::LegacyDownloadClient::willSendRequest):
(WebKit::LegacyDownloadClient::takeActivityToken):
(WebKit::LegacyDownloadClient::releaseActivityTokenIfNecessary):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::DownloadProxy):
(WebKit::DownloadProxy::cancel):
(WebKit::DownloadProxy::invalidate):
(WebKit::DownloadProxy::processDidClose):
(WebKit::DownloadProxy::didStart):
(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
(WebKit::DownloadProxy::willSendRequest):
(WebKit::DownloadProxy::didReceiveResponse):
(WebKit::DownloadProxy::didReceiveData):
(WebKit::DownloadProxy::decideDestinationWithSuggestedFilename):
(WebKit::DownloadProxy::didCreateDestination):
(WebKit::DownloadProxy::didFinish):
(WebKit::DownloadProxy::didFail):
(WebKit::DownloadProxy::didCancel):
(WebKit::DownloadProxy::~DownloadProxy): Deleted.

  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::createDownloadProxy):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::setLegacyDownloadClient):
(WebKit::WebProcessPool::setDownloadClient): Deleted.

  • UIProcess/WebProcessPool.h:
  • WebKit.xcodeproj/project.pbxproj:
12:36 PM Changeset in webkit [268064] by achristensen@apple.com
  • 10 edits in trunk/Source/WebCore

Rename namespace Packed to namespace PackedColor
https://bugs.webkit.org/show_bug.cgi?id=217391

Reviewed by Simon Fraser.

Otherwise "using WTF::Packed;" in wtf/Packed.h causes problems if both headers are included in the same translation unit.

  • css/StyleColor.cpp:

(WebCore::StyleColor::colorFromKeyword):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingHexColor):
(WebCore::finishParsingNamedColor):

  • platform/graphics/Color.h:

(WebCore::Color::asInline const):
(WebCore::Color::setColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):

  • platform/graphics/ColorTypes.h:

(WebCore::asSRGBA):
(WebCore::Packed::RGBA::RGBA): Deleted.
(WebCore::Packed::ARGB::ARGB): Deleted.

  • platform/graphics/ImageBackingStore.h:

(WebCore::ImageBackingStore::blendPixel):
(WebCore::ImageBackingStore::pixelValue const):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::cachedCGColor):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):

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

[LFC][Floating] Remove redundant FormattingContextRoot in FloatingContext c'tor
https://bugs.webkit.org/show_bug.cgi?id=217398

Reviewed by Antti Koivisto.

No need to pass in the root now that FormattingContext has the root() getter.

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::FloatingContext):

  • layout/floats/FloatingContext.h:

(WebCore::Layout::FloatingContext::root const):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

12:04 PM Changeset in webkit [268062] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r268030. rdar://problem/70010322

Break reference cycle with NSURLSessionDataTask in NetworkDataTaskCocoa
https://bugs.webkit.org/show_bug.cgi?id=217347
<rdar://problem/69483575>

Reviewed by Geoffrey Garen.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCNAMECloaking):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268030 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:51 AM Changeset in webkit [268061] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r268019. rdar://problem/70005083

Change a PDF RELEASE_ASSERT to an early return.
rdar://problem/69805240 and https://bugs.webkit.org/show_bug.cgi?id=217346

Reviewed by Tim Horton.

No new tests (Wish they were possible)

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): This release assert is getting hit regularly. Change to an early return while we continue tracking this down.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@268019 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:48 AM Changeset in webkit [268060] by Alan Coon
  • 8 edits
    2 deletes in branches/safari-610-branch

Revert r266909. rdar://problem/69101091

11:42 AM Changeset in webkit [268059] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

run-minibrowser not compatible with python3
https://bugs.webkit.org/show_bug.cgi?id=217368

Patch by Philippe Normand <pnormand@igalia.com> on 2020-10-06
Reviewed by Adrian Perez de Castro.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py: Use webkitcorepy's unicode().
10:38 AM Changeset in webkit [268058] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[macOS] Bump reported current shipping release UA to 10_15_7
https://bugs.webkit.org/show_bug.cgi?id=217364
<rdar://problem/69984962>

Patch by Luming Yin <luming_yin@apple.com> on 2020-10-06
Reviewed by Alex Christensen.

Bump the reported current shipping release UA from 10_15_6 to 10_15_7.

  • platform/mac/UserAgentMac.mm:

(WebCore::standardUserAgentWithApplicationName):

10:18 AM Changeset in webkit [268057] by Chris Dumez
  • 26 edits
    1 copy
    2 adds in trunk

Source/WebCore:
Update Worklet.addModule() to actually fetch and evaluate the module script
https://bugs.webkit.org/show_bug.cgi?id=217242

Reviewed by Geoffrey Garen.

Update Worklet.addModule() to actually fetch and evaluate the module script as per:

The WorkletGlobalScope maintains a queue of fetch requests (basically a URL and a completion handler) and uses
the existing WorkerScriptLoader to process the requests serially. Based on the result on the load, we call the
CompletionHandler which will cause the Worklet.addModule() promise to get resolved or rejected.

Test: webaudio/audioworklet-addModule-failure.html

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:
  • Modules/webaudio/AudioWorkletGlobalScope.h:

Provide workerOrWorkletThread() override for WorkerOrWorkletGlobalScope(), which is a replacement
for underlyingThread().

  • Modules/webaudio/AudioWorkletMessagingProxy.cpp:

(WebCore::AudioWorkletMessagingProxy::AudioWorkletMessagingProxy):
(WebCore::AudioWorkletMessagingProxy::createCacheStorageConnection):
(WebCore::AudioWorkletMessagingProxy::postTaskToLoader):
(WebCore::AudioWorkletMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope):

  • Modules/webaudio/AudioWorkletMessagingProxy.h:

Update AudioWorkletMessagingProxy to subclass WorkerLoaderProxy so that AudioWorklet can reuse
WorkerScriptLoader. WorkerScriptLoader relies on WorkerLoaderProxy to do thread hopping.

  • Modules/webaudio/AudioWorkletThread.cpp:

(WebCore::AudioWorkletThread::AudioWorkletThread):
(WebCore::AudioWorkletThread::workerLoaderProxy):

  • Modules/webaudio/AudioWorkletThread.h:

(WebCore::AudioWorkletThread::create):
Subclass the new WorkerOrWorkletThread interface. WorkerOrWorkletThread is a new interface that
was adding so that WorkerScriptLoader can be reused by AudioWorklets.

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpgradeURL):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
Simple renaming.

  • WebCore.xcodeproj/project.pbxproj:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
(WebCore::WorkerThreadableLoader::loadResourceSynchronously):
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
(WebCore::WorkerThreadableLoader::MainThreadBridge::notifyIsDone):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishTiming):

  • loader/WorkerThreadableLoader.h:

(WebCore::WorkerThreadableLoader::create):
Update WorkerThreadableLoader so that it can be reused by AudioWorklets.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::wrapCryptoKey):
(WebCore::WorkerGlobalScope::unwrapCryptoKey):

  • workers/WorkerGlobalScope.h:

Minor changes to keep building after updates to WorkerOrWorkletGlobalScope.

  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::createCacheStorageConnection):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerOrWorkletGlobalScope):

  • workers/WorkerMessagingProxy.h:

Simple renames.

  • workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::createUniqueIdentifier):
Update WorkerOrWorkletGlobalScope to add a few things WorkerScriptLoader needed to work with
both Workers and Worklets.

  • workers/WorkerOrWorkletThread.h: Added.

Added new parent interface for WorkerThread and AudioWorkletThread so that WorkerScriptLoader
can work for both Workers and Worklets.

  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::runInMode):
(WebCore::WorkerRunLoop::runCleanupTasks):
Minor changes to keep building after changes to WorkerOrWorkletGlobalScope.

  • workers/WorkerThread.h:

Subclass the new WorkerOrWorkletThread interface.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::postTaskForModeToWorkerOrWorkletGlobalScope):
(WebCore::ServiceWorkerThreadProxy::createCacheStorageConnection):
(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):
(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):
(WebCore::ServiceWorkerThreadProxy::continueDidReceiveFetchResponse):

  • workers/service/context/ServiceWorkerThreadProxy.h:

Simple renames.

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::WorkletGlobalScope):
Make sure we correctly initialize the security origin for the WorkletGlobalScope.
Previously, we were using a unique origin so all script loads would have failed
with a cross-origin error.

(WebCore::WorkletGlobalScope::fetchAndInvokeScript):
(WebCore::WorkletGlobalScope::processNextScriptFetchJobIfNeeded):
(WebCore::WorkletGlobalScope::didReceiveResponse):
(WebCore::WorkletGlobalScope::notifyFinished):
(WebCore::WorkletGlobalScope::didCompleteScriptFetchJob):

  • worklets/WorkletGlobalScope.h:

(WebCore::WorkletGlobalScope::responsibleDocument):
(WebCore::WorkletGlobalScope::responsibleDocument const):
Add implementation for module script fetching using WorkerScriptLoader. This gets called
when Worklet.addModule() is called on the main thread.

LayoutTests:
Update Worklet.addModule() to actually fetch the module script
https://bugs.webkit.org/show_bug.cgi?id=217242

Reviewed by Geoffrey Garen.

Add layout test coverage.

  • webaudio/audioworklet-addModule-failure-expected.txt: Added.
  • webaudio/audioworklet-addModule-failure.html: Added.
10:01 AM Changeset in webkit [268056] by Ryan Haddad
  • 2 edits in branches/safari-610-branch/Tools

Cherry-pick r267448. rdar://problem/69727369

Make TLSVersion API tests more robust.
https://bugs.webkit.org/show_bug.cgi?id=216704

Like I did in r267278, the TLSVersion.ShouldAllowDeprecatedTLS API test was also asserting with TCPServer,
so use HTTPServer which gracefully handles a variable number of connection attempts.
The NetworkSession tests that use NSUserDefaults need to be split into a separate test for bug 216041,
so may as well do that here, too.

  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (TestWebKitAPI::makeWebViewWith): (TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@267448 268f45cc-cd09-0410-ab3c-d52691b4dbfc

9:59 AM Changeset in webkit [268055] by Antti Koivisto
  • 12 edits in trunk/Source/WebCore

[LFC][Integration] Add renderer() to iterator
https://bugs.webkit.org/show_bug.cgi?id=217382

Reviewed by Zalan Bujtas.

Also use it while converting RenderedPosition for the iterator.

  • dom/Position.h:
  • editing/RenderedPosition.cpp:

(WebCore::rendererFromPosition):
(WebCore::RenderedPosition::RenderedPosition):
(WebCore::RenderedPosition::previousLeafOnLine const):
(WebCore::RenderedPosition::nextLeafOnLine const):
(WebCore::RenderedPosition::isEquivalent const):
(WebCore::RenderedPosition::bidiLevelOnLeft const):
(WebCore::RenderedPosition::bidiLevelOnRight const):
(WebCore::RenderedPosition::leftBoundaryOfBidiRun):
(WebCore::RenderedPosition::rightBoundaryOfBidiRun):
(WebCore::RenderedPosition::atLeftBoundaryOfBidiRun const):
(WebCore::RenderedPosition::atRightBoundaryOfBidiRun const):
(WebCore::RenderedPosition::positionAtLeftBoundaryOfBiDiRun const):
(WebCore::RenderedPosition::positionAtRightBoundaryOfBiDiRun const):
(WebCore::RenderedPosition::absoluteRect const):
(WebCore::renderObjectContainsPosition):

  • editing/RenderedPosition.h:

(WebCore::RenderedPosition::rootBox):
(WebCore::RenderedPosition::atLeftmostOffsetInBox const):
(WebCore::RenderedPosition::atRightmostOffsetInBox const):
(WebCore::RenderedPosition::uncachedInlineBox): Deleted.
(WebCore::RenderedPosition::RenderedPosition): Deleted.

  • layout/integration/LayoutIntegrationInlineContent.cpp:

(WebCore::LayoutIntegration::InlineContent::InlineContent):
(WebCore::LayoutIntegration::InlineContent::lineLayout const):
(WebCore::LayoutIntegration::InlineContent::rendererForLayoutBox const):

  • layout/integration/LayoutIntegrationInlineContent.h:

(WebCore::LayoutIntegration::InlineContent::create):

  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::ensureInlineContent):
(WebCore::LayoutIntegration::LineLayout::rendererForLayoutBox const):

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/integration/LayoutIntegrationPagination.cpp:

(WebCore::LayoutIntegration::makeAdjustedContent):

  • layout/integration/LayoutIntegrationRunIterator.h:

(WebCore::LayoutIntegration::PathRun::renderer const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h:

(WebCore::LayoutIntegration::LegacyPath::isLastTextRunOnLine const):
(WebCore::LayoutIntegration::LegacyPath::isLastTextRun const):
(WebCore::LayoutIntegration::LegacyPath::renderer const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h:

(WebCore::LayoutIntegration::ModernPath::renderer const):

9:45 AM Changeset in webkit [268054] by commit-queue@webkit.org
  • 16 edits in trunk

FileReader should transition to readyState DONE after last onprogress event
https://bugs.webkit.org/show_bug.cgi?id=217333

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-06
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/FileReader/workers-expected.txt:
  • web-platform-tests/FileAPI/fileReader-expected.txt:
  • web-platform-tests/FileAPI/fileReader.html:
  • web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_abort-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsArrayBuffer-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsBinaryString-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsText-expected.txt:

Source/WebCore:

I also bring the abort function in alignment with https://w3c.github.io/FileAPI/
and the behavior of Chrome and Firefox.

As suggested by Chris, I added a bool to remember if loading is complete so we can
retain existing behavior when abort is called inside the last onprogress event.
This is not mentioned by the spec yet, but it matches the existing behavior and the
behavior of Chrome, so I added a web platform test for it.

  • fileapi/FileReader.cpp:

(WebCore::FileReader::abort):
(WebCore::FileReader::didFinishLoading):
(WebCore::FileReader::didFail):

  • fileapi/FileReader.h:

LayoutTests:

  • fast/files/file-reader-abort-expected.txt:
  • fast/files/file-reader-abort-using-open-panel-expected.txt:

Update expectations to reflect new behavior that onerror is not called before onabort,
matching Chrome, Firefox, and the specification.

9:40 AM Changeset in webkit [268053] by Alan Coon
  • 8 edits in branches/safari-610-branch/Source

Revert "Versioning."

9:14 AM Changeset in webkit [268052] by youenn@apple.com
  • 5 edits in trunk/Source

Enable video capture in WebProcess by default on MacOS
https://bugs.webkit.org/show_bug.cgi?id=217385
<rdar://problem/69999542>

Reviewed by Sam Weinig.

Source/WebKit:

Manually tested in MiniBrowser.

  • Shared/WebPreferencesDefaultValues.cpp:
  • Shared/WebPreferencesDefaultValues.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
8:58 AM Changeset in webkit [268051] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Skip LFC tests.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
8:45 AM Changeset in webkit [268050] by commit-queue@webkit.org
  • 10 edits in trunk

Align URL setters with reasonably behaving other browsers
https://bugs.webkit.org/show_bug.cgi?id=217366

Patch by Alex Christensen <achristensen@webkit.org> on 2020-10-06
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt:

Source/WTF:

Firefox ignores everything after '/', '?', '#', and '\' in special URL schemes when setting the host to a new value.
Chrome doesn't add another '/' to the beginning of the path if it's a special scheme and starts with '\'.
I think these behaviors make sense, and aligning with these behaviors makes it so there are no tests in url-setters.html
that any other browser passes that we don't also pass.
Once https://github.com/whatwg/url/issues/551 is resolved this will also be reflected in spec wording.

  • wtf/URL.cpp:

(WTF::URL::hasSpecialScheme const):
(WTF::forwardSlashHashOrQuestionMark):
(WTF::slashHashOrQuestionMark):
(WTF::URL::setHost):
(WTF::URL::setPath):

  • wtf/URL.h:

LayoutTests:

  • fast/dom/DOMURL/set-href-attribute-host-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-host.html:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host-expected.txt:
  • fast/dom/HTMLAnchorElement/set-href-attribute-host.html:
8:27 AM Changeset in webkit [268049] by Simon Fraser
  • 18 edits in trunk/Source

Rename scheduleTimedRenderingUpdate() to scheduleRenderingUpdate() everywhere
https://bugs.webkit.org/show_bug.cgi?id=217367

Reviewed by Alex Christensen.

The previously named scheduleImmediateRenderingUpdate() is no more, so all rendering
updates that WebCore knows about are of the timed variety. So just call them
scheduleRenderingUpdate() everywhere.

Source/WebCore:

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::scheduleAnimationResolution):

  • dom/Document.cpp:

(WebCore::Document::setNeedsDOMWindowResizeEvent):
(WebCore::Document::setNeedsVisualViewportResize):
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::setNeedsVisualViewportScrollEvent):
(WebCore::Document::scheduleRenderingUpdate):
(WebCore::Document::scheduleInitialIntersectionObservationUpdate):
(WebCore::Document::updateResizeObservations):
(WebCore::Document::scheduleTimedRenderingUpdate): Deleted.

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

(WebCore::ScriptedAnimationController::scheduleAnimation):

  • page/ChromeClient.h:

(WebCore::ChromeClient::scheduleRenderingUpdate):
(WebCore::ChromeClient::scheduleTimedRenderingUpdate): Deleted.

  • page/Page.cpp:

(WebCore::Page::updateStyleAfterChangeInEnvironment):
(WebCore::Page::scheduleRenderingUpdate):
(WebCore::Page::accessibilitySettingsDidChange):
(WebCore::Page::appearanceDidChange):
(WebCore::Page::scheduleTimedRenderingUpdate): Deleted.

  • page/Page.h:
  • page/PageOverlayController.cpp:

(WebCore::PageOverlayController::didChangeViewExposedRect):
(WebCore::PageOverlayController::notifyFlushRequired):

  • page/RenderingUpdateScheduler.cpp:

(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate): Deleted.

  • page/RenderingUpdateScheduler.h:
  • page/ResizeObserver.cpp:

(WebCore::ResizeObserver::observe):

  • page/linux/ResourceUsageOverlayLinux.cpp:
  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::Highlight::notifyFlushRequired):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::scheduleRenderingUpdateForImage):

  • svg/graphics/SVGImageClients.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::layerFlushTimerFired):

7:51 AM Changeset in webkit [268048] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GLIB] Unreviewed test gardening. Remove tests passing.

  • platform/glib/TestExpectations:
6:41 AM Changeset in webkit [268047] by youenn@apple.com
  • 4 edits in trunk

In case all tracks are ended, enqueue a task to stop recording instead of stopping recording
https://bugs.webkit.org/show_bug.cgi?id=217372

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt:

Source/WebCore:

Covered by updated test.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::trackEnded):

6:23 AM Changeset in webkit [268046] by Adrian Perez de Castro
  • 4 edits in trunk

REGRESSION(r267399): [WPE] Build broken with ENABLE_ACCESSIBILITY=OFF
https://bugs.webkit.org/show_bug.cgi?id=217380

Reviewed by Philippe Normand.

Before the ATK::Bridge target got introduced in r267399 a couple of CMake variables were
used, which were empty when the accessility support was disabled and nothing was being
added to the WebKit and WPEToolingBackends targets. Now that an imported target is used
it is needed to add it as a dependency conditionally to avoid using an undefined target
name.

Source/WebKit:

No new tests needed.

  • PlatformWPE.cmake: Use the ATK::Bridge target only when ENABLE_ACCESSIBILITY is set.

Tools:

  • wpe/backends/CMakeLists.txt: Use the ATK::Bridge target only when ENABLE_ACCESSIBILITY is set.
4:51 AM Changeset in webkit [268045] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Remove tests passing.

  • platform/gtk/TestExpectations:
2:59 AM Changeset in webkit [268044] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove test passing.

  • platform/wpe/TestExpectations:
2:34 AM Changeset in webkit [268043] by commit-queue@webkit.org
  • 6 edits in trunk

Make value parameter in Document.execCommand non nullable
https://bugs.webkit.org/show_bug.cgi?id=217331

Patch by Rob Buis <rbuis@igalia.com> on 2020-10-06
Reviewed by Sam Weinig.

Source/WebCore:

Make value parameter in Document.execCommand non nullable [1].

Test: editing/execCommand/arguments-combinations.html

[1] https://html.spec.whatwg.org/#document

  • dom/Document+HTML.idl:
  • editing/EditorCommand.cpp:

(WebCore::executeInsertImage):

LayoutTests:

Adapt test to change.

  • editing/execCommand/arguments-combinations-expected.txt:
  • editing/execCommand/arguments-combinations.html:
2:07 AM Changeset in webkit [268042] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after r268038.

  • platform/wpe/TestExpectations:
1:53 AM Changeset in webkit [268041] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Update baseline of WPT test css/cssom/cssstyledeclaration-csstext.html after r267985

Unreviewed test gardening.

  • platform/gtk/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/css/cssom/cssstyledeclaration-csstext-expected.txt:
1:45 AM Changeset in webkit [268040] by Diego Pino Garcia
  • 2 edits
    1 delete in trunk/LayoutTests

[GLIB] Update two webaudio tests baselines after r268006

Unreviewed test gardening.

  • platform/glib/webaudio/Analyser/realtimeanalyser-fftsize-reset-expected.txt: Updated.
  • platform/glib/webaudio/Analyser/realtimeanalyser-freq-data-expected.txt: Removed.
1:37 AM Changeset in webkit [268039] by Diego Pino Garcia
  • 4 edits in trunk/LayoutTests

[GLIB] Move two common cache tests to GLIB test expectations.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
1:06 AM Changeset in webkit [268038] by Adrian Perez de Castro
  • 7 edits in trunk/Source

Non-unified build fixes, early October 2020 edition, take two
https://bugs.webkit.org/show_bug.cgi?id=217344

Unreviewed build fix.

Source/WebCore:

No new tests needed.

  • Modules/contact-picker/ContactInfo.h: Add missing wtf/Forward.h and wtf/Vector.h headers.
  • Modules/webaudio/AudioWorkletProcessor.h: Add missing wtf/Ref.h header.
  • Modules/webaudio/AudioWorkletProcessorConstructor.h: Add missing JavaScriptCore/Strong.h header.
  • rendering/RenderTextLineBoxes.cpp: Add missing VisiblePosition.h header.

Source/WebKit:

  • UIProcess/WebProcessProxy.cpp: Add missing WebAutomationSession.h header.
Note: See TracTimeline for information about the timeline view.