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

Timeline



Sep 28, 2020:

11:25 PM Changeset in webkit [267728] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for pycodestyle (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=215427
<rdar://problem/66931291>

Unreviewed follow-up fix.

Conflict resolution at some point broke the original change.

  • Scripts/webkitpy/style/checkers/python.py: Import directly from pycodestyle.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook._install_pycodestyle): Deleted.

10:51 PM Changeset in webkit [267727] by ysuzuki@apple.com
  • 131 edits in trunk/Source

Use JSC_DECLARE_JIT_OPERATION / JSC_DECLARE_CUSTOM_GETTER / JSC_DECLARE_CUSTOM_SETTER
https://bugs.webkit.org/show_bug.cgi?id=217071

Reviewed by Keith Miller.

Source/JavaScriptCore:

This patch changes how to define JIT_OPERATIONs including custom getters and setters.
We introduce JSC_DECLARE_JIT_OPERATION etc. to declare and define them. This is useful
to perform some additional things (like, JIT-caging registering) for each function.

Source/WebCore:

No behavior change.

Source/WTF:

Add the following macros.

  1. JSC_DECLARE_JIT_OPERATION
  2. JSC_DEFINE_JIT_OPERATION
  3. JSC_DECLARE_CUSTOM_GETTER
  4. JSC_DEFINE_CUSTOM_GETTER
  5. JSC_DECLARE_CUSTOM_SETTER
  6. JSC_DEFINE_CUSTOM_SETTER
  • wtf/PlatformCallingConventions.h:
9:54 PM Changeset in webkit [267726] by mark.lam@apple.com
  • 21 edits in trunk

Add Bounds Check Elimination validation for debugging.
https://bugs.webkit.org/show_bug.cgi?id=217055
rdar://69122891

Reviewed by Keith Miller.

Source/JavaScriptCore:

Added a JSC_validateBoundsCheckElimination option (with alias
JSC_validateBCE) that adds an AssertInBounds whenever a CheckInBounds
node is elided.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGIntegerCheckCombiningPhase.cpp:

(JSC::DFG::IntegerCheckCombiningPhase::handleBlock):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::validateAIState):
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileAssertNotEmpty):
(JSC::FTL::DFG::LowerDFGToB3::compileAssertInBounds):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationReportBoundsCheckEliminationErrorAndCrash):

  • ftl/FTLOperations.h:
  • runtime/OptionsList.h:

Tools:

Added --validateBCE=true to ftl-no-cjit-validate-sampling-profiler
and ftl-eager-no-cjit.

  • Scripts/run-jsc-stress-tests:
9:52 PM Changeset in webkit [267725] by Peng Liu
  • 15 edits
    1 copy in trunk/Source

[Media in GPU Process] Use VideoLayerManager to manage layers of MediaPlayerPrivateRemote
https://bugs.webkit.org/show_bug.cgi?id=216995

Reviewed by Eric Carlson.

Source/WebCore:

No new tests since no functional changes.

  • Headers.cmake:

Export TextTrackRepresentation and VideoLayerManager.

  • WebCore.xcodeproj/project.pbxproj:

Add VideoLayerManager.h.
Export TextTrackRepresentation, WebVideoContainerLayer and VideoLayerManager.

  • platform/graphics/TextTrackRepresentation.cpp:
  • platform/graphics/TextTrackRepresentation.h:

Minor clean-up.

  • platform/graphics/VideoLayerManager.h: Added.

Add this interface so that we can use VideoLayerManager in the C++ code.

  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
  • platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm:

(WebCore::VideoLayerManagerObjC::videoInlineLayer const):
(WebCore::VideoLayerManagerObjC::videoFullscreenLayer const):
(WebCore::VideoLayerManagerObjC::videoFullscreenFrame const):
(WebCore::VideoLayerManagerObjC::updateVideoFullscreenInlineImage):
Fix the issue when RELEASE_LOG_DISABLED is defined and add WEBCORE_EXPORT
to some functions.

Source/WebKit:

This patch removes the remote hosting layer in the GPU process for video fullscreen and
picture-in-picture. We don't need to keep a layer in the GPU process for video fullscreen
and picture-in-picture because no rendering will be done for that layer. We don't need
EnterFullscreen, ExitFullscreen and SetVideoFullscreenFrameFenced IPC messages after removing
the layer because the RemoteMediaPlayerPrivateRemote in the web process can deal with
the video presentation mode change.

  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::enterFullscreen): Deleted.
(WebKit::RemoteMediaPlayerProxy::exitFullscreen): Deleted.
(WebKit::RemoteMediaPlayerProxy::setVideoFullscreenFrameFenced): Deleted.
Remove unused IPC messages after removing the remote hosting layer for video fullscreen
and picture-in-picture.

  • GPUProcess/media/gstreamer/RemoteMediaPlayerProxyGStreamer.cpp:

(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::enterFullscreen): Deleted.
(WebKit::RemoteMediaPlayerProxy::exitFullscreen): Deleted.
Ditto.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
Remove the code related to the remote hosting layer for video fullscreen and picture-in-picture.
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenLayer):
Use VideoLayerManager to manage the layer.
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): Ditto.
(WebKit::MediaPlayerPrivateRemote::requiresTextTrackRepresentation const): Ditto.
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation): Ditto.
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds): Ditto.
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrameFenced): Deleted.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Need to move the Logger up in the data members so that other members can use it
in the constructor, e.g., VideoLayerManager.

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

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::createVideoFullscreenLayer):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame): Deleted.
(WebKit::MediaPlayerPrivateRemote::setTextTrackRepresentation): Deleted.
(WebKit::MediaPlayerPrivateRemote::syncTextTrackBounds): Deleted.
Simplify the implementation by managing layers with VideoLayerManager.

9:10 PM Changeset in webkit [267724] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

webkitfullscreenchange does not fire for shadow DOM elements
https://bugs.webkit.org/show_bug.cgi?id=216607

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-09-28
Reviewed by Ryosuke Niwa.

Source/WebCore:

This bug was caused by the webkitfullscreenchange event being fired
but without _composed_ flag set.

This patch fixed the bug by making it composed as defined as
the step 3-2 of https://fullscreen.spec.whatwg.org/#run-the-fullscreen-steps.
so that event listeners outside shadow tree could observe it.

Test: fast/shadow-dom/fullscreen-in-shadow-event-should-propagate.html

  • dom/FullscreenManager.cpp:

(WebCore::FullscreenManager::dispatchFullscreenChangeOrErrorEvent):

LayoutTests:

Added a regression test for making an element inside a shadow tree full screen,
and listening to webkitfullscreenchange outside the shadow tree.

  • fast/shadow-dom/fullscreen-in-shadow-event-should-propagate-expected.txt: Added.
  • fast/shadow-dom/fullscreen-in-shadow-event-should-propagate.html: Added.
  • platform/ios-wk2/TestExpectations:

Other testcases related to fullscreen API in fast/shadow-dom/ are also
disabled for ios-wk2.

8:49 PM Changeset in webkit [267723] by Devin Rousso
  • 19 edits in trunk

Web Inspector: add checkbox to local override popover to allow it to skip the network
https://bugs.webkit.org/show_bug.cgi?id=217031

Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Models/LocalResourceOverride.js:

(WI.LocalResourceOverride):
(WI.LocalResourceOverride.create):
(WI.LocalResourceOverride.fromJSON):
(WI.LocalResourceOverride.prototype.toJSON):
(WI.LocalResourceOverride.prototype.get type): Added.
(WI.LocalResourceOverride.prototype.saveIdentityToCookie):
Introduce a WI.LocalResourceOverride.Type that is used when handling request/response
interceptions to determined the Network command for continuing.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.supportsOverridingRequestsWithResponses): Added.
(WI.NetworkManager.supportsOverridingResponses): Added.
(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.addLocalResourceOverride):
(WI.NetworkManager.prototype.removeLocalResourceOverride):
(WI.NetworkManager.prototype.requestIntercepted):
(WI.NetworkManager.prototype.responseIntercepted):
(WI.NetworkManager.prototype._commandArgumentsForInterception):
(WI.NetworkManager.prototype._addInterception): Added.
(WI.NetworkManager.prototype._removeInterception): Added.
(WI.NetworkManager.prototype._handleResourceOverrideDisabledChanged):
(WI.NetworkManager.supportsLocalResourceOverrides): Deleted.
Add logic for Network.interceptRequestWithResponse in Network.requestIntercepted.
Drive-by: refactor common logic into member functions.

  • UserInterface/Views/LocalResourceOverridePopover.js:

(WI.LocalResourceOverridePopover.prototype.get serializedData):
(WI.LocalResourceOverridePopover.prototype.show):

  • UserInterface/Views/LocalResourceOverridePopover.css:

(.popover .local-resource-override-popover-content .add-header + .reference-page-link-container): Added.
(.popover .local-resource-override-popover-content .options td): Added.
(.popover .local-resource-override-popover-content .reference-page-link-container): Deleted.
Add an "Options" row containing a "[ ] Skip Network" checkbox for controlling whether
Network.interceptWithResponse or Network.interceptRequestWithResponse is used.

  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.async createLocalResourceOverride):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.contentAvailable):

  • UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover):

  • UserInterface/Views/OpenResourceDialog.js:

(WI.OpenResourceDialog.prototype._addLocalResourceOverrides):

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):
(WI.ResourceContentView.prototype.closed):

  • UserInterface/Views/SourcesNavigationSidebarPanel.js:

(WI.SourcesNavigationSidebarPanel):
(WI.SourcesNavigationSidebarPanel.prototype._willDismissLocalOverridePopover):
(WI.SourcesNavigationSidebarPanel.prototype._addLocalOverride):
(WI.SourcesNavigationSidebarPanel.prototype._removeResourceOverride):
(WI.SourcesNavigationSidebarPanel.prototype._populateCreateResourceContextMenu):
Rename supportsLocalResourceOverrides to supportsOverridingResponses for clarity.

  • Localizations/en.lproj/localizedStrings.js:

LayoutTests:

  • http/tests/inspector/network/local-resource-override-basic.html:
  • http/tests/inspector/network/local-resource-override-main-resource.html:
  • http/tests/inspector/network/local-resource-override-script-tag.html:
  • http/tests/inspector/network/resource-response-inspector-override.html:

Add expected parameter for WI.LocalResourceOverride.create calls.

5:38 PM Changeset in webkit [267722] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266899. rdar://problem/69586659

Integrator's note: as some of the symbols present on trunk are not available on branch, special modifications had to be made to this cherry-pick to build.

Address a post-commit review comment after r266887
https://bugs.webkit.org/show_bug.cgi?id=216257

Reviewed by Darin Adler.

Remove a check that currently makes us conditionally set IsComputedStyleInvalidFlag if there is a computed
style in rare data. There should be no change in behavior; this just makes the code a bit simpler.

  • dom/Element.cpp: (WebCore::Element::invalidateStyle): (WebCore::Element::storeDisplayContentsStyle):

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

5:38 PM Changeset in webkit [267721] by Alan Coon
  • 4 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266887. rdar://problem/69586659

Integrator's note: as some of the symbols present on trunk are not available on branch, special modifications had to be made to this cherry-pick to build.

REGRESSION (r257839): clickpay.com - password placeholder text cannot be replaced
https://bugs.webkit.org/show_bug.cgi?id=216257
<rdar://problem/68150686>

Reviewed by Antti Koivisto.

Source/WebCore:

On clickpay.com, the field in the login form that contains the text "Password" is actually a plain text input,
referred to by the site's script as the "null text input". The page adds a focus event listener to this null
text input, and inside of this focus event listener, it reveals a hidden password field by removing an inline
display: none; style rule on the real password input element, programmatically focuses it, and then hides the
null text input by setting it to display: none; via inline style.

However, after the changes in r257839, we no longer attempt to do a style update upon programmatic focus in the
case where the programmatically focused element does not have a renderer yet (this applies to the password field
in this scenario, because it previously had display: none;). When we determine whether the newly displayed
password field is focusable using Element::isVisibleWithoutResolvingFullStyle, we then attempt to use either
the existing computed RenderStyle on the element, or perform a partial computed style resolution using the
ResolveComputedStyleMode::RenderedOnly flag.

But in the case where ElementRareData's computed style exists, it is not guaranteed to be up to date if the
inline style changed since the computed style was last set. In the context of this bug, it's actually Safari's
AutoFill logic (embedded in the injected bundle) that ends up asking for the computed style of the password
input, forcing it to be created and set (though, as demonstrated in the layout test, simply grabbing the
computed style is sufficient to replicate the bug outside of Safari).

The end result is that we'll use this stale computed style, which still believes that the password input is not
displayed, and we end up not focusing the element due to believing that the password input is hidden. To fix
this, we would need to either check whether the element has an invalid style (i.e. needsStyleRecalc()) before
attempting to use the existing computed style, or clear out the ElementRareData computed style anytime the
element's style is invalidated. However, both of these approaches will cause us to perform partial style
resolution much more aggressively, leading to a 2-3% regression in Speedometer.

To address the bug without hampering our performance wins from r257839, we add a new node flag so that we can
remember when computed styles are no longer valid due to style invalidation, and consult this flag in
Element::isVisibleWithoutResolvingFullStyle to avoid using the existing computed style.

Test: fast/forms/programmatic-focus-after-display.html

  • dom/Element.cpp: (WebCore::Element::invalidateStyle): (WebCore::Element::resolveComputedStyle): (WebCore::Element::isVisibleWithoutResolvingFullStyle const):
  • dom/Node.h: (WebCore::Node::setHasValidStyle):

LayoutTests:

Add a new layout test to verify that the bug does not occur. See WebCore/ChangeLog for more details.

  • fast/forms/programmatic-focus-after-display-expected.txt: Added.
  • fast/forms/programmatic-focus-after-display.html: Added.

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

4:58 PM Changeset in webkit [267720] by Karl Rackler
  • 2 edits in branches/safari-610-branch/LayoutTests

REGRESSION: [ iOS wk2 ] ( safari-610-branch ) fast/events/touch/ios/pointer-events-with-modifiers.html is a constant crash
rdar://69722963

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
4:48 PM Changeset in webkit [267719] by rniwa@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Document.p.contains returns true for nodes in shadow tree
https://bugs.webkit.org/show_bug.cgi?id=189164

Reviewed by Darin Adler.

Added a regression after r267220 had fixed this bug.

  • fast/shadow-dom/document-contains-returns-false-for-node-inside-shadow-tree-expected.txt: Added.
  • fast/shadow-dom/document-contains-returns-false-for-node-inside-shadow-tree.html: Added.
4:18 PM Changeset in webkit [267718] by Alan Coon
  • 1 copy in tags/Safari-611.1.1.1

Tag Safari-611.1.1.1.

3:09 PM Changeset in webkit [267717] by Alan Coon
  • 8 edits in branches/safari-611.1.1-branch/Source

Versioning.

WebKit-7611.1.1.1

3:05 PM Changeset in webkit [267716] by Alan Coon
  • 55 edits in branches/safari-610-branch/Source/WebCore

Apply patch. rdar://problem/69594082

2:11 PM Changeset in webkit [267715] by Keith Rollin
  • 2 edits in trunk

Print message saying what project is being built
https://bugs.webkit.org/show_bug.cgi?id=216865
<rdar://problem/69408135>

Reviewed by Andy Estes.

XCBuild removes the progress messages saying which project/target is
being built. We can't show the target, but update the Makefiles to at
least show which project is being built.

  • Makefile.shared:
1:26 PM Changeset in webkit [267714] by weinig@apple.com
  • 6 edits
    5 moves
    2 adds in trunk/Source

[Preferences] Move GeneratePreferences.rb and yaml configuration files to WTF to be shared
https://bugs.webkit.org/show_bug.cgi?id=217056

Reviewed by Darin Adler.

Move GeneratePreferences.rb and WebPreferences*.yaml files from WebKitLegacy to WTF, and install them into the existing
$SDKROOT/usr/local/install/wtf/Scripts for use by down stack projects.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

Also adds new script, generate-preferences.sh, to make editing / reviewing the invocation a bit easier as you don't
have to use the tiny editor in the Run Scripts phase pane.

Adds new build variable, WTF_BUILD_SCRIPTS_DIR, to easily specify the new location of the moved files.

  • Configurations/WebKitLegacy.xcconfig:
  • Scripts/GeneratePreferences.rb: Removed.
  • Scripts/generate-preferences.sh: Added.
  • WebView/WebPreferences.yaml: Removed.
  • WebView/WebPreferencesDebug.yaml: Removed.
  • WebView/WebPreferencesExperimental.yaml: Removed.
  • WebView/WebPreferencesInternal.yaml: Removed.

Source/WTF:

  • Scripts/GeneratePreferences.rb: Copied from Source/WebKitLegacy/mac/Scripts/GeneratePreferences.rb.
  • Scripts/Preferences: Added.
  • Scripts/Preferences/WebPreferences.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferences.yaml.
  • Scripts/Preferences/WebPreferencesDebug.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesDebug.yaml.
  • Scripts/Preferences/WebPreferencesExperimental.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesExperimental.yaml.
  • Scripts/Preferences/WebPreferencesInternal.yaml: Copied from Source/WebKitLegacy/mac/WebView/WebPreferencesInternal.yaml.
  • WTF.xcodeproj/project.pbxproj:
1:21 PM Changeset in webkit [267713] by eric.carlson@apple.com
  • 10 edits in trunk/Source

[GPUP] Out-of-band TextTracks
https://bugs.webkit.org/show_bug.cgi?id=217062
<rdar://problem/68739969>

Reviewed by Jer Noble.
Source/WebCore:

Add support for passing out-of-band TextTracks to a media engine running in the GPU process.

No new tests, this can only be tested with a specific hardware setup.

  • html/HTMLMediaElement.cpp:

(WebCore::toPlatform):

  • platform/graphics/PlatformTextTrack.h: Put instance variables into a struct so

state can be encoded and decoded.
(WebCore::PlatformTextTrackData::PlatformTextTrackData):
(WebCore::PlatformTextTrackData::decode):
(WebCore::PlatformTextTrackData::encode const):
(WebCore::PlatformTextTrackClient::privateTrack):
(WebCore::PlatformTextTrack::create):
(WebCore::PlatformTextTrack::createOutOfBand):
(WebCore::PlatformTextTrack::type const):
(WebCore::PlatformTextTrack::kind const):
(WebCore::PlatformTextTrack::mode const):
(WebCore::PlatformTextTrack::label const):
(WebCore::PlatformTextTrack::language const):
(WebCore::PlatformTextTrack::url const):
(WebCore::PlatformTextTrack::uniqueId const):
(WebCore::PlatformTextTrack::isDefault const):
(WebCore::PlatformTextTrack::client const):
(WebCore::PlatformTextTrack::data const):
(WebCore::PlatformTextTrack::PlatformTextTrack):
(WebCore::PlatformTextTrack::captionMenuOffItem): Deleted.
(WebCore::PlatformTextTrack::captionMenuAutomaticItem): Deleted.

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

(WebCore::mediaDescriptionForKind):
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp:

(WebKit::RemoteMediaPlayerProxy::outOfBandTrackSources):

  • GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:

(WebKit::RemoteMediaPlayerProxyConfiguration::encode const):
(WebKit::RemoteMediaPlayerProxyConfiguration::decode):

  • Scripts/webkit/messages.py:
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
1:06 PM Changeset in webkit [267712] by Matt Lewis
  • 3 edits in trunk/Tools

Fix Build triggers for iOS, watchOS, and tvOS
https://bugs.webkit.org/show_bug.cgi?id=217057

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

1:04 PM Changeset in webkit [267711] by Fujii Hironori
  • 7 edits
    2 adds in trunk

[TextureMapper] Enable a depth buffer for preserve-3d
https://bugs.webkit.org/show_bug.cgi?id=90078

Reviewed by Don Olmstead.

Source/WebCore:

Test: transforms/3d/general/preserve-3d.html

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::GLContextEGL::getEGLConfig):

  • platform/graphics/texmap/TextureMapper.h:

(WebCore::TextureMapper::beginPreserves3D): Added a new virtual method.
(WebCore::TextureMapper::endPreserves3D): Ditto.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::beginPainting):
(WebCore::createProjectionMatrix): Swapped nearValue and farValue
so that the depth buffer works as expected.
(WebCore::TextureMapperGL::beginPreserves3D): Added.
(WebCore::TextureMapperGL::endPreserves3D): Ditto.

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelfAndChildren): Call
beginPreserves3D() and endPreserves3D() if m_state.preserves3D.

LayoutTests:

  • transforms/3d/general/preserve-3d-expected.html: Added.
  • transforms/3d/general/preserve-3d.html: Added.
12:54 PM Changeset in webkit [267710] by Jonathan Bedard
  • 3 edits in trunk/Tools

[webkitpy] Use webkitcorepy's auto installer for pycodestyle
https://bugs.webkit.org/show_bug.cgi?id=215427
<rdar://problem/66931291>

Reviewed by Darin Adler.

  • Scripts/webkitpy/init.py: Add pycodestyle.
  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Remove pycodestyle.

11:23 AM Changeset in webkit [267709] by Devin Rousso
  • 23 edits
    1 add in trunk

[iOS] unable to airplay directly loaded fullscreen video
https://bugs.webkit.org/show_bug.cgi?id=216858
<rdar://problem/68746321>

Reviewed by Eric Carlson.

Source/WebCore:

It's possible that MediaPlayerPrivate::wirelessVideoPlaybackDisabled is queried before a
"real" MediaPlayerPrivate (i.e. not NullMediaPlayerPrivate) is initialized through one
of the registered MediaPlayerFactory "engine"s. It's further possible that the value
returned by MediaPlayerPrivate::wirelessVideoPlaybackDisabled will change as the new
"real" MediaPlayerPrivate may have different logic. In this case, the MediaPlayer
doesn't update its client (and therefore nothing "up" the tree, including the client's
clients) with the new MediaPlayerPrivate::wirelessVideoPlaybackDisabled value, meaning
that the old value will still be used.

Add piping such that when the MediaPlayerFactory "engine" changes, the MediaPlayer
notifies its client (which is further piped "up" the tree to the client's clients) which
eventually causes MediaPlayerPrivate::wirelessVideoPlaybackDisabled to be re-evaluated.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaEngineWasUpdated):

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

(WebCore::Page::playbackControlsMediaEngineChanged): Added.

  • page/ChromeClient.h:

(WebCore::ChromeClient::playbackControlsMediaEngineChanged): Added.

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

(WebCore::PlaybackSessionModelMediaElement::mediaEngineChanged): Added.

Source/WebKit:

It's possible that MediaPlayerPrivate::wirelessVideoPlaybackDisabled is queried before a
"real" MediaPlayerPrivate (i.e. not NullMediaPlayerPrivate) is initialized through one
of the registered MediaPlayerFactory "engine"s. It's further possible that the value
returned by MediaPlayerPrivate::wirelessVideoPlaybackDisabled will change as the new
"real" MediaPlayerPrivate may have different logic. In this case, the MediaPlayer
doesn't update its client (and therefore nothing "up" the tree, including the client's
clients) with the new MediaPlayerPrivate::wirelessVideoPlaybackDisabled value, meaning
that the old value will still be used.

Add piping such that when the MediaPlayerFactory "engine" changes, the MediaPlayer
notifies its client (which is further piped "up" the tree to the client's clients) which
eventually causes MediaPlayerPrivate::wirelessVideoPlaybackDisabled to be re-evaluated.

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

(WebKit::WebChromeClient::playbackControlsMediaEngineChanged): Added.

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

(WebKit::PlaybackSessionManager::mediaEngineChanged): Added.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _wirelessVideoPlaybackDisabled]): Added.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:

(WebKit::PlaybackSessionManagerProxy::wirelessVideoPlaybackDisabled): Added.
Create additional functions for piping data to tests.

Source/WebKitLegacy/mac:

It's possible that MediaPlayerPrivate::wirelessVideoPlaybackDisabled is queried before a
"real" MediaPlayerPrivate (i.e. not NullMediaPlayerPrivate) is initialized through one
of the registered MediaPlayerFactory "engine"s. It's further possible that the value
returned by MediaPlayerPrivate::wirelessVideoPlaybackDisabled will change as the new
"real" MediaPlayerPrivate may have different logic. In this case, the MediaPlayer
doesn't update its client (and therefore nothing "up" the tree, including the client's
clients) with the new MediaPlayerPrivate::wirelessVideoPlaybackDisabled value, meaning
that the old value will still be used.

Add piping such that when the MediaPlayerFactory "engine" changes, the MediaPlayer
notifies its client (which is further piped "up" the tree to the client's clients) which
eventually causes MediaPlayerPrivate::wirelessVideoPlaybackDisabled to be re-evaluated.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::playbackControlsMediaEngineChanged): Added.

  • WebView/WebViewInternal.h:
  • WebView/WebView.mm:

(-[WebView _playbackControlsMediaEngineChanged]): Added.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaDocument.mm: Added.

(MediaDocument.WirelessPlaybackEnabled):

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
11:23 AM Changeset in webkit [267708] by Alan Coon
  • 8 edits in branches/safari-611.1.2-branch/Source

Versioning.

WebKit-7611.1.2

11:16 AM Changeset in webkit [267707] by Alan Coon
  • 1 copy in branches/safari-611.1.2-branch

New branch.

11:14 AM Changeset in webkit [267706] by Darin Adler
  • 2 edits in trunk/Source/WebCore

REGRESSION (r267329): Crash due to null-dereference of frame pointer in DOMSelection::rangeCount
https://bugs.webkit.org/show_bug.cgi?id=217053

Reviewed by Sam Weinig.

Later as a follow-up it would be nice to add a test case, but not obvious how to
make a simple one quickly.

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::rangeCount const): Fixed the null check.

10:46 AM Changeset in webkit [267705] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

Notify igalia team about pre-existing test failures and build failures for WPE and GTK queues
https://bugs.webkit.org/show_bug.cgi?id=217052

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/send_email.py:

(send_email_to_bot_watchers): Moved the logic here to determine whether to email igalia folks.

  • BuildSlaveSupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.send_email_for_preexisting_build_failure): Passed builder_name parameter.
(AnalyzeJSCTestsResults.send_email_for_flaky_failure):
(AnalyzeJSCTestsResults.send_email_for_pre_existing_failure):
(ReRunWebKitTests.send_email_for_flaky_failure):
(AnalyzeLayoutTestsResults.send_email_for_flaky_failure):
(AnalyzeLayoutTestsResults.send_email_for_pre_existing_failure):
(AnalyzeAPITestsResults.send_email_for_flaky_failure):
(AnalyzeAPITestsResults.send_email_for_pre_existing_failure):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeJSCTestsResults.configureStep): Drive-by fix to improve unit-test.

  • BuildSlaveSupport/ews-build/emails.json: Added IGALIA_GTK_WPE_EMAILS. Renamed BOT_WATCHERS_EMAILS to APPLE_BOT_WATCHERS_EMAILS.
  • BuildSlaveSupport/ews-build/email_unittest.py: Updated unit-test.
10:07 AM Changeset in webkit [267704] by Matt Lewis
  • 3 edits in trunk/Tools

Unreviewed dashboard fix.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:05 AM Changeset in webkit [267703] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed, test gardening.

9:07 AM Changeset in webkit [267702] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, mark webaudio/the-audio-api/the-analysernode-interface/test-analyser-output.html as flaky instead of skipping it entirely.

This test is no longer timing out.

LayoutTests/imported/w3c:

  • web-platform-tests/webaudio/the-audio-api/the-analysernode-interface/test-analyser-output-expected.txt:

LayoutTests:

8:37 AM Changeset in webkit [267701] by Aditya Keerthi
  • 29 edits
    4 adds in trunk

[macOS] Update the appearance of editable date/time controls to match the system
https://bugs.webkit.org/show_bug.cgi?id=216616
<rdar://problem/69004603>

Reviewed by Devin Rousso.

Source/WebCore:

The default appearance of editable components within the date/time
control should closely match NSDatePicker.

  1. Focused components should have rounded corners

This is achieved by adding the border-radius property to the
datetime-edit fields.

  1. Use a raised colon separator for time inputs

The colon should be raised as it is surrounded two numbers. However,
since the colon is rendered in its own <div>, it remains lowered. To
raise the colon, the "ss03" font-feature-setting is enabled. Note that
this can cause issues with fonts that use "ss03" for a different purpose.
However, since we do not have support for the @font-feature-values rule
in CSS, there is currently no way to workaround this problem. Instead,
the issue should be fixed once we gain CSS support.

  1. Components should have a fixed width, and the width of the control should match the content

Since the control is not guaranteed to use a monospace font, the current
design results in editable components being resized each time the value
changes. To fix this issue, the display type was changed to inline-block
and the min-width of a component is computed at runtime. See below for
more details.

  • css/html.css:

Added UA stylesheet code that was removed from RenderTheme.

(input::-webkit-datetime-edit):
(input::-webkit-datetime-edit-year-field,):

Display inline-block allows us to set a fixed width for individual
components. The text is center-aligned so that changes are not
jarring. Finally, the font property is now "inherit !important",
as it does not make sense for the font used in a component to
differ from the control's font.

(input::-webkit-datetime-edit-year-field:focus,): Add rounded corners on focus.

  • html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::DateTimeFieldElement):

  • html/shadow/DateTimeFieldElements.cpp: Call setHasCustomStyleResolveCallbacks() to compute min-width.

(WebCore::DateTimeMillisecondFieldElement::DateTimeMillisecondFieldElement): Drive-by fix - milliseconds component has 3 digits.

  • html/shadow/DateTimeNumericFieldElement.cpp:

(WebCore::DateTimeNumericFieldElement::resolveCustomStyle):

The min-width of a numeric field should be the largest possible width
depending on the font, the largest digit character in the font and the
length of the field. Ten possible values are tested (0-9).

  • html/shadow/DateTimeNumericFieldElement.h:
  • html/shadow/DateTimeSymbolicFieldElement.cpp:

(WebCore::DateTimeSymbolicFieldElement::resolveCustomStyle):

The min-width of a symbolic field should be the largest symbol given
a font. Two (meridiem) to twelve (month) values may be tested.

  • html/shadow/DateTimeSymbolicFieldElement.h:
  • rendering/RenderTheme.cpp:
  • rendering/RenderTheme.h: Moved code to html.css.
  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm: Moved code to html.css.
  • style/UserAgentStyle.cpp:

(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement): Moved code to html.css.

  • style/UserAgentStyle.h:

LayoutTests:

Updated stylesheets so that font properties are not set on inner elements
of the control and rebaselined existing tests.

  • fast/forms/date/date-editable-components/date-editable-components-focus-and-blur-events.html:
  • fast/forms/date/date-editable-components/date-editable-components-mouse-events.html:
  • fast/forms/date/date-pseudo-elements.html:
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-focus-and-blur-events.html:
  • fast/forms/datetimelocal/datetimelocal-editable-components/datetimelocal-editable-components-mouse-events.html:
  • fast/forms/time/time-editable-components/time-editable-components-focus-and-blur-events.html:
  • fast/forms/time/time-editable-components/time-editable-components-mouse-events.html:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/appearance/default-styles-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:

The newly failing tests for <input type=week> are a false negative.
Previously, the style for this input type was empty, causing some
tests to incorrectly pass. The new failures are consistent with the
other date/time inputs, see the rest of the expectations for specifics.

  • platform/mac-catalina/fast/forms/date/date-input-rendering-basic-expected.txt:
  • platform/mac-catalina/fast/forms/time/time-input-rendering-basic-expected.txt: Added.
  • platform/mac-mojave/fast/forms/date/date-input-rendering-basic-expected.txt:
  • platform/mac-mojave/fast/forms/time/time-input-rendering-basic-expected.txt: Added.
  • platform/mac-wk2/fast/forms/date/date-input-rendering-basic-expected.txt:
  • platform/mac-wk2/fast/forms/date/date-pseudo-elements-expected.txt:
  • platform/mac-wk2/fast/forms/time/time-input-rendering-basic-expected.txt:
8:00 AM Changeset in webkit [267700] by Alan Bujtas
  • 5 edits
    2 adds in trunk

[LFC][Floats] Add support for clear on float box
https://bugs.webkit.org/show_bug.cgi?id=217045

Reviewed by Antti Koivisto.

Source/WebCore:

When the float box also has to clear other floats, we need to adjust the initial
vertical position from where we start searching for available space.
(This patch also fixes a previous find&replace renaming and addresses a post-landing comment.)

Test: fast/layoutformattingcontext/float-with-clear-simple.html

  • layout/floats/FloatingContext.cpp:

(WebCore::Layout::FloatingContext::positionForFloat const):
(WebCore::Layout::FloatingContext::positionForNonFloatingFloatAvoider const):
(WebCore::Layout::FloatingContext::absoluteCoordinates const):
(WebCore::Layout::FloatingContext::absoluteBoxGeometryCoordinates const): Deleted.

  • layout/floats/FloatingContext.h:

LayoutTests:

  • fast/layoutformattingcontext/float-with-clear-simple-expected.html: Added.
  • fast/layoutformattingcontext/float-with-clear-simple.html: Added.
7:55 AM Changeset in webkit [267699] by Aditya Keerthi
  • 8 edits in trunk/Source/WebCore

Crash under DateTimeEditElement::blurFromField
https://bugs.webkit.org/show_bug.cgi?id=216930
<rdar://problem/69308322>

Reviewed by Ryosuke Niwa.

DateTimeEditElement::blurFromField incorrectly invoked
HTMLElement::dispatchBlurEvent, as it was not the element being blurred.
Accessing member variables after this call is unsafe, as there is
nothing protecting the DateTimeEditElement.

To fix, the problematic methods were removed entirely, and replaced
with a new approach to responding to blur events within a DateTimeEditElement.

The blur event's relatedTarget is now compared to the fields within the
DateTimeEditElement, in order to determine when to close the calendar.
This approach is safe, since the relatedTarget is protected by
Document::setFocusedElement.

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::elementDidBlur): Remove unnecessary call.

If the input has editable fields, closing the calendar is handled by the
new codepath. Running this code unconditionally will result in a flash of the
calendar when clicking on a part of the input type that doesn't contain
an editable field.

  • html/shadow/DateTimeEditElement.cpp:

(WebCore::DateTimeEditElement::didBlurFromField):

Check if the event's relatedTarget is another field within the same
DateTimeEditElement. If yes, the calendar should remain open.

  • html/shadow/DateTimeEditElement.h:
  • html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::defaultEventHandler):

Call handleBlurEvent() if a blur event occurs. This was previously done by
the now-removed dispatchBlurEvent override.

(WebCore::DateTimeFieldElement::handleBlurEvent):

  • html/shadow/DateTimeFieldElement.h:
  • html/shadow/DateTimeNumericFieldElement.cpp:

(WebCore::DateTimeNumericFieldElement::handleBlurEvent):

  • html/shadow/DateTimeNumericFieldElement.h:
7:34 AM Changeset in webkit [267698] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

Make sure our calls to AVCaptureDevice requestAccessForMediaType do processing on the main thread
https://bugs.webkit.org/show_bug.cgi?id=216974

Reviewed by Darin Adler.

The completion handler to [AVCaptureDeviceClass requestAccessForMediaType:] may sometimes be called in a background thread on iOS.
Make sure to hop to the main thread if that is the case.
Also make sure to ref/weakref lambda captured variables.

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::requestAccessForMediaType):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

6:42 AM Changeset in webkit [267697] by Antti Koivisto
  • 12 edits
    4 moves in trunk/Source/WebCore

[LFC][Integration] Move run iterator to LayoutIntegration namespace
https://bugs.webkit.org/show_bug.cgi?id=217046

Reviewed by Zalan Bujtas.

Also use name 'Modern' for LFC and 'Legacy' for the old inline tree path.

Also rename box->run for more consistent terminology.

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

(WebCore::Position::upstream const):
(WebCore::Position::downstream const):

  • editing/TextIterator.cpp:

(WebCore::TextIterator::advance):
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextRun):
(WebCore::TextIterator::handleTextNodeFirstLetter):
(WebCore::TextIterator::handleTextBox): Deleted.

  • editing/TextIterator.h:
  • layout/integration/LayoutIntegrationLineLayout.cpp:

(WebCore::LayoutIntegration::LineLayout::textRunsFor const):
(WebCore::LayoutIntegration::LineLayout::elementRunFor const):
(WebCore::LayoutIntegration::LineLayout::paint):
(WebCore::LayoutIntegration::LineLayout::textBoxesFor const): Deleted.
(WebCore::LayoutIntegration::LineLayout::elementBoxFor const): Deleted.

  • layout/integration/LayoutIntegrationLineLayout.h:
  • layout/integration/LayoutIntegrationRunIterator.cpp: Renamed from Source/WebCore/rendering/line/LineLayoutTraversal.cpp.

(WebCore::LayoutIntegration::TextRunIterator::TextRunIterator):
(WebCore::LayoutIntegration::TextRunIterator::traverseNextInVisualOrder):
(WebCore::LayoutIntegration::TextRunIterator::traverseNextInTextOrder):
(WebCore::LayoutIntegration::TextRunIterator::operator== const):
(WebCore::LayoutIntegration::TextRunIterator::atEnd const):
(WebCore::LayoutIntegration::firstTextRunFor):
(WebCore::LayoutIntegration::firstTextRunInTextOrderFor):
(WebCore::LayoutIntegration::textRunsFor):
(WebCore::LayoutIntegration::ElementRunIterator::ElementRunIterator):
(WebCore::LayoutIntegration::ElementRunIterator::atEnd const):
(WebCore::LayoutIntegration::elementRunFor):

  • layout/integration/LayoutIntegrationRunIterator.h: Renamed from Source/WebCore/rendering/line/LineLayoutTraversal.h.

(WebCore::LayoutIntegration::TextRunIterator::TextRunIterator):
(WebCore::LayoutIntegration::TextRunIterator::operator++):
(WebCore::LayoutIntegration::TextRunIterator::operator!= const):
(WebCore::LayoutIntegration::TextRunIterator::operator* const):
(WebCore::LayoutIntegration::TextRunIterator::operator-> const):
(WebCore::LayoutIntegration::ElementRunIterator::ElementRunIterator):
(WebCore::LayoutIntegration::ElementRunIterator::operator* const):
(WebCore::LayoutIntegration::ElementRunIterator::operator-> const):
(WebCore::LayoutIntegration::TextRunRange::TextRunRange):
(WebCore::LayoutIntegration::TextRunRange::begin const):
(WebCore::LayoutIntegration::Run::Run):
(WebCore::LayoutIntegration::Run::rect const):
(WebCore::LayoutIntegration::Run::baseline const):
(WebCore::LayoutIntegration::Run::isLeftToRightDirection const):
(WebCore::LayoutIntegration::Run::isHorizontal const):
(WebCore::LayoutIntegration::Run::dirOverride const):
(WebCore::LayoutIntegration::Run::isLineBreak const):
(WebCore::LayoutIntegration::Run::useLineBreakBoxRenderTreeDumpQuirk const):
(WebCore::LayoutIntegration::TextRun::hasHyphen const):
(WebCore::LayoutIntegration::TextRun::TextRun):
(WebCore::LayoutIntegration::TextRun::text const):
(WebCore::LayoutIntegration::TextRun::localStartOffset const):
(WebCore::LayoutIntegration::TextRun::localEndOffset const):
(WebCore::LayoutIntegration::TextRun::length const):
(WebCore::LayoutIntegration::TextRun::isLastOnLine const):
(WebCore::LayoutIntegration::TextRun::isLast const):

  • layout/integration/LayoutIntegrationRunIteratorLegacyPath.h: Renamed from Source/WebCore/rendering/line/LineLayoutTraversalComplexPath.h.

(WebCore::LayoutIntegration::LegacyPath::LegacyPath):
(WebCore::LayoutIntegration::LegacyPath::operator== const):
(WebCore::LayoutIntegration::LegacyPath::nextInlineTextBoxInTextOrder const):

  • layout/integration/LayoutIntegrationRunIteratorModernPath.h: Renamed from Source/WebCore/rendering/line/LineLayoutTraversalDisplayRunPath.h.

(WebCore::LayoutIntegration::ModernPath::ModernPath):
(WebCore::LayoutIntegration::ModernPath::operator== const):
(WebCore::LayoutIntegration::ModernPath::rect const):

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::linesBoundingBox const):
(WebCore::RenderLineBreak::boundingBoxForRenderTreeDump const):
(WebCore::RenderLineBreak::absoluteRects const):
(WebCore::RenderLineBreak::absoluteQuads const):

  • rendering/RenderText.cpp:

(WebCore::RenderText::absoluteRects const):
(WebCore::collectAbsoluteQuadsForNonComplexPaths):
(WebCore::RenderText::firstRunLocation const):
(WebCore::RenderText::linesBoundingBox const):
(WebCore::RenderText::caretMinOffset const):
(WebCore::RenderText::caretMaxOffset const):
(WebCore::RenderText::countRenderedCharacterOffsetsUntil const):
(WebCore::containsOffset):
(WebCore::RenderText::hasRenderedText const):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeTextRun):
(WebCore::write):
(WebCore::writeTextBox): Deleted.

5:25 AM Changeset in webkit [267696] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Fix test failures inadventently introduced in r267644
https://bugs.webkit.org/show_bug.cgi?id=217049

Patch by Angelos Oikonomopoulos <Angelos Oikonomopoulos> on 2020-09-28
Reviewed by Adrian Perez de Castro.

r267644 strips trailing whitespace in two LayoutTests/js/*expected.txt files
but doesn't update the corresponding js string literals to not produce such.

  • js/script-tests/parser-syntax-check.js:
  • js/script-tests/regexp-sticky.js:
1:20 AM WebKitGTK/StableRelease edited by Philippe Normand
(diff)
1:18 AM Changeset in webkit [267695] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebKit

Merge r267655 - [SOUP] WebSocket: cookies set in request don't appear in the inspector
https://bugs.webkit.org/show_bug.cgi?id=217012

Reviewed by Michael Catanzaro.

Cookies are set by libsoup and we are notifying about the handshake being sent before the cookie header is added
to the request.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Connect to SoupMessage::starting to notify the web process the handshake
request has been sent.

1:18 AM Changeset in webkit [267694] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.30/Source

Merge r267621 - [SOUP] Do not set site for cookies twice in case of redirection
https://bugs.webkit.org/show_bug.cgi?id=217010

Reviewed by Michael Catanzaro.

Source/WebCore:

Only set is-toplevel-navigation on SoupMessage when same site info is present.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateSoupMessageMembers const):

Source/WebKit:

ResourceRequest::updateSoupMessage() already fills the same site information, but we are duplicating the code in
NetworkDataTaskSoup::continueHTTPRedirection().

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::continueHTTPRedirection): Do not set same site information here, it will be done
again in NetworkDataTaskSoup::createRequest().

1:18 AM Changeset in webkit [267693] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.30/Source/WebCore

Merge r267620 - [SOUP] Slack.com is not working, new messages do not load due to WebSocket authentication failure issue
https://bugs.webkit.org/show_bug.cgi?id=149551

Reviewed by Michael Catanzaro.

The problem is that we are not including all the cookies in the web socket request. There are two cookies with
the Lax same-site policy set, that are not included for the websocket request.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest): Add same site information to WebSocket requests.

Sep 27, 2020:

11:36 PM Changeset in webkit [267692] by commit-queue@webkit.org
  • 15 edits
    15 moves
    4 adds
    1 delete in trunk/LayoutTests

Resync web-platform-tests/html/semantics/the-iframe-element from upstream
https://bugs.webkit.org/show_bug.cgi?id=217033

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/html/semantics/the-iframe-element from upstream a520598adb3957def27f1b63c6bff62e891ccbda.

  • resources/resource-files.json:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/historical-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/historical.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-2.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-base-url.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-load-event.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-multiple-times.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-referrerpolicy-change.sub.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.tentative-expected.txt.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-to-eager.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.tentative.html.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy.tentative-expected.txt: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-network-error.sub.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_allow_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_navigation_download_block_downloads.sub.tentative.html:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/sandbox-toggle-in-inactive-document-crash.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/support/download_stash.py:

(main):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:

LayoutTests:

Adjust for tentative extension removal.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_anchor_download_block_downloads.sub.tentative-expected.txt:
9:39 PM Changeset in webkit [267691] by Lauro Moura
  • 3 edits in trunk/Source/WebKit

REGRESSION(r267688) [GTK] Many compositing timeouts
https://bugs.webkit.org/show_bug.cgi?id=217044

Reviewed by Darin Adler.

Especulative fix by adding missing finalize step to
updateRendering (or calling isolatedUpdateRendering).

Covered by existing tests.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::updateBackingStoreState):
Call finalizeUpdateRendering.
(WebKit::DrawingAreaCoordinatedGraphics::display): Ditto.

  • WebProcess/WebPage/CoordinatedGraphics/LayerTreeHostTextureMapper.cpp:

(WebKit::LayerTreeHost::flushAndRenderLayers): Call
isolatedUpdateRendering instead of updateRendering on the corePage().

6:52 PM Changeset in webkit [267690] by weinig@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/mac

Fix some typos found by Simon post-review for https://bugs.webkit.org/show_bug.cgi?id=217042

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
"rmeove" -> "remove".

6:42 PM Changeset in webkit [267689] by weinig@apple.com
  • 15 edits in trunk/Source/WebKitLegacy/mac

[Preferences] Generate base preferences for WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=217042

Reviewed by Tim Horton.

Imports (and sorts) WebPreferences.yaml from WebKit, and starts generation for
for WebKitLegacy. To support this, a few tweaks to generation were required:

  • A new 'exposed' key was added to the configuration files which allows restricting which frontends a preference is exposed to. By default, preferences are exposed to all frontends. This is intended to be used for preferences that don't have a binding to WebCore (e.g. process model related preferences for Webkit). We will require a seperate concept for features that WebCore knows about, but are not supported by a frontend, but that will be added in future revisions.

'exposed' is used in a few places that have 'custom' bindings to WebCore where
WebKitLegacy and WebKit don't use the same type or meaning for a preference, such
as WebKitLegacy's FrameFlattening enum vs. WebKit's FrameFlatteningEnabled bool,
or WebKitLegacy's WebSQLEnabled vs. WebKit's WebSQLDisabled. Eventually, it would
be nice to make these match, but it is not required.

  • A new 'webKitLegacyPreferenceKey' key was added to the configuration files allowing for existing keys that don't match the default pattern of "WebKit" + keyName. This is to avoid changing the value of the preference key strings in WebPreferenceKeysPrivate.h, as I am not confident that changing them is kosher. I also went back and reverted the few I had already changed, just to be on the safe side.
  • Support was added in WebViewPreferencesChangedGenerated.mm.erb for non bool values.
  • Preferences that are conditionally compiled out (using the conditional key) no longer generate a default when they are compiled out, which required a little macro magic in WebPreferencesDefinitions.h.erb in the form of the new INITIALIZE_DEFAULT_PREFERENCES_FOR_ macros.
  • Scripts/GeneratePreferences.rb:
  • Scripts/PreferencesTemplates/WebPreferencesDefinitions.h.erb:
  • Scripts/PreferencesTemplates/WebViewPreferencesChangedGenerated.mm.erb:
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

  • WebView/WebPreferences.yaml:
  • WebView/WebPreferencesDebug.yaml:
  • WebView/WebPreferencesDefaultValues.h:
  • WebView/WebPreferencesDefaultValues.mm:

(WebKit::defaultAllowsInlineMediaPlayback):
(WebKit::defaultAllowsInlineMediaPlaybackAfterFullscreen):
(WebKit::defaultAllowsPictureInPictureMediaPlayback):
(WebKit::defaultJavaScriptCanOpenWindowsAutomatically):
(WebKit::defaultInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultRequiresUserGestureToLoadVideo):
(WebKit::defaultWebSQLEnabled):
(WebKit::defaultAttachmentElementEnabled):
(WebKit::defaultShouldRestrictBaseURLSchemes):

  • WebView/WebPreferencesExperimental.yaml:
  • WebView/WebPreferencesInternal.h:
  • WebView/WebPreferencesInternal.yaml:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _preferencesChanged:]):
(shouldAllowPictureInPictureMediaPlayback): Deleted.
(shouldAllowWindowOpenWithoutUserGesture): Deleted.
(shouldRequireUserGestureToLoadVideo): Deleted.
(shouldRestrictBaseURLSchemes): Deleted.

  • WebView/WebViewData.h:
5:23 PM Changeset in webkit [267688] by Simon Fraser
  • 10 edits in trunk/Source

WebKitLegacy should call Page::finalizeRenderingUpdate()
https://bugs.webkit.org/show_bug.cgi?id=216958

Reviewed by Tim Horton.
Source/WebCore:

Convert Page::m_inUpdateRendering to an enum which tracks the phase, which will be
used in a later patch to prevent extra update scheduling (webkit.org/b/216726).

Add isolatedUpdateRendering(), which is for callers who aren't going to call finalizeRenderingUpdate(),
and use it for SVGImage updates.

DRT/WTR can trigger Page::updateRendering() re-entrancy, so there's a bit of ugliness
that deals with that.

  • page/Page.cpp:

(WebCore::Page::updateRendering):
(WebCore::Page::isolatedUpdateRendering):
(WebCore::Page::doAfterUpdateRendering):
(WebCore::Page::finalizeRenderingUpdate):

  • page/Page.h:

Source/WebKit:

dynamicViewportSizeUpdate() needs to call isolatedUpdateRendering() because it isn't followed
by a finalizeRenderingUpdate().

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::dynamicViewportSizeUpdate):

Source/WebKitLegacy/mac:

This is a precursor to fixing webkit.org/b/216726. Page needs to track the phase
of updateRendering that we are in, and to ease this tracking, WebKitLegacy needs to call
Page::finalizeRenderingUpdate() so the state is tracked.

Rename -_viewWillDrawInternal to -_updateRendering, and have it call updateRendering()
and finalizeRenderingUpdate(). We can also move in the call to -_synchronizeCustomFixedPositionLayoutRect
which both call sites do.

Since updateRendering() is guaranteed to update layout, we know -_flushCompositingChanges would have
never returned NO here, so we can remove the condition in LayerFlushController::flushLayers().

-[WebHTMLView viewWillDraw] also does a similar -_web_updateLayoutAndStyleIfNeededRecursive
then -_flushCompositingChanges but this is called from AppKit with a timing that we don't control;
it may be redundant with -[WebView _updateRendering] but I leave that behavior unchanged.

  • WebView/WebView.mm:

(-[WebView _updateRendering]):
(-[WebView _forceRepaintForTesting]):
(LayerFlushController::flushLayers):
(-[WebView _viewWillDrawInternal]): Deleted.

Source/WebKitLegacy/win:

Windows doesn't call finalizeRenderingUpdate() so needs to use isolatedUpdateRendering().

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::flushAndRenderLayers):

  • WebView.cpp:

(WebView::paint):
(WebView::flushPendingGraphicsLayerChangesSoon):
(WebView::flushPendingGraphicsLayerChanges):

1:00 PM Changeset in webkit [267687] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267540. rdar://problem/69593993

CrashTracer: com.apple.WebKit.Networking in NetworkSession::firstPartyHostCNAMEDomain() code
https://bugs.webkit.org/show_bug.cgi?id=216934
<rdar://problem/69216768>

Reviewed by Alex Christensen.

Add a check for a valid key.

  • NetworkProcess/NetworkSession.cpp: (WebKit::NetworkSession::firstPartyHostCNAMEDomain):

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

1:00 PM Changeset in webkit [267686] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267530. rdar://problem/69594070

Regression(r265280) Web Audio sources malfunction when disconnected from the audio graph
https://bugs.webkit.org/show_bug.cgi?id=216703
<rdar://problem/69158436>

Reviewed by Eric Carlson.

In case of an audio source that stops producing data, but does not end or mute the track,
we would continuously try to read the data until getting to the end of the data.
When reaching the end of the data, we would return silence and go back in time a little bit
to restart playing with some margin. This allows to read just one chunk of audio until we are back to the end of data.

We fix this by storing the end of the data counter when reaching it.
When trying to pull some more data, we will go back in time a little bit only if some more data was added in the meantime.
Otherwise, we just output silence.

Covered by manual test.

  • platform/audio/mac/AudioSampleDataSource.h:
  • platform/audio/mac/AudioSampleDataSource.mm: (WebCore::AudioSampleDataSource::pullSamplesInternal):

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

1:00 PM Changeset in webkit [267685] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source/ThirdParty/ANGLE

Cherry-pick r267520. rdar://problem/69594405

REGRESSION: Textures Fail to Render in WebGL from HLS Stream [iOS 14]
https://bugs.webkit.org/show_bug.cgi?id=215908
<rdar://problem/68000962>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2020-09-24
Reviewed by Dean Jackson.

Disable ANGLE workers until EAGL implementation is more complete.
Current implementation fails to compile any shader, since the
compilation happens in the worker thread and worker EAGL context
which does not use the same sharegroup as the main context.
The shader objects are created in the main context but the shader
source setting and compilation happens in the worker context.
EAGL needs a flush between state changes, and adding that
correctly is a bigger change to be done later.

Use sized formats when calling [EAGLContext -texImageIOSurface]
from EGL_ANGLE_iosurface_client_buffer code. The texImageIOSurface
accepts parameters with glTexImage2D logic. On ES3, some of the
internal formats must be sized formats. The EAGLContext instantiated
by ANGLE is ES3, even if the ANGLE context would be ES2.

No tests added since this should be caught with the many video
related tests. It's unclear why this is not the case -- at
least on real hw. This is to be investigated later, too.

  • src/libANGLE/renderer/driver_utils.h: (rx::IsIOS):
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:
  • src/libANGLE/renderer/gl/renderergl_utils.cpp: (rx::nativegl_gl::InitializeFeatures):

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

1:00 PM Changeset in webkit [267684] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267496. rdar://problem/69594104

[macOS] Change name of client decoder entitlement
https://bugs.webkit.org/show_bug.cgi?id=216670
<rdar://problem/69101997>

Reviewed by Darin Adler.

The client decoder entitlement landed in <https://trac.webkit.org/changeset/266613/webkit> has changed name, and should be updated.

  • Scripts/process-entitlements.sh:

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

1:00 PM Changeset in webkit [267683] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r267412. rdar://problem/69594162

Crashtracer inside PDFPlugin::createScrollbar.
<rdar://problem/69256031> and https://bugs.webkit.org/show_bug.cgi?id=216810

Reviewed by Tim Horton.

To quote Tim from r264945:
No new tests; timing is such that I can't reproduce without inserting
intentional delays into the main thread hops, which is further than
I'm willing to go for a test.

This is a speculative fix due to the aforementioned reproducibility issue.

  • WebProcess/Plugins/PDF/PDFPlugin.mm: (WebKit::PDFPlugin::installPDFDocument): With all the past fixes in place, its apparent the plug-in HAS been torn down, and it's somewhat common to bypass the other "hasBeenDestroyed" checks. So put an explicit check here followed by an explicit release assert.

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

1:00 PM Changeset in webkit [267682] by Alan Coon
  • 5 edits in branches/safari-610-branch/Source

Cherry-pick r267394. rdar://problem/69593980

paper.io ad close buttons cannot be iteracted with via trackpad on iPad
https://bugs.webkit.org/show_bug.cgi?id=216812
<rdar://problem/68738585>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm: (WebCore::IOSApplication::isPaperIO):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm: (applicationIsKnownToIgnoreMouseEvents):

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

1:00 PM Changeset in webkit [267681] by Alan Coon
  • 13 edits in branches/safari-610-branch

Cherry-pick r267369. rdar://problem/69594300

[WebAuthn] Don't set the UV option if the authenticator doesn't support it
https://bugs.webkit.org/show_bug.cgi?id=215836
<rdar://problem/67817359>

Reviewed by Darin Adler.

Source/WebCore:

Covered by new API tests.

UV in the the CTAP 2.0 spec only means internal UV:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetInfo

If an authenticator supports ClientPin, it can set the uv bit in the responses to true but it
will not advertise itself supporting internal UV, which is the uv in the options.
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorMakeCredential

Hence, setting it to true could result in error if the authenticator doesn't support internal UV even if it supports ClientPin.
It's not a way to ask the authenticator to set the uv bit in the response.

  • Modules/webauthn/fido/DeviceRequestConverter.cpp: (fido::encodeMakeCredenitalRequestAsCBOR): (fido::encodeGetAssertionRequestAsCBOR):

Tools:

  • TestWebKitAPI/Tests/WebCore/CtapRequestTest.cpp: (TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:

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

1:00 PM Changeset in webkit [267680] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r267305. rdar://problem/69594350

[macOS] REGRESSION (r265702): System Services receive 0 bytes when extracting selected content as rich text data
https://bugs.webkit.org/show_bug.cgi?id=216718
<rdar://problem/69150358>

Reviewed by Tim Horton.

Source/WebKit:

Test: CopyHTML.WriteRichTextSelectionToPasteboard

  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::dataSelectionForPasteboard):

After r265702, the IPCHandle received in the UI process was always being converted into a buffer of size 0,
due to using the size local variable (which is no longer set as an outparam of the sync IPC message). Instead,
use ipcHandle.dataSize.

Tools:

Add a new API test to verify that we get non-empty web archive data when using
-writeSelectionToPasteboard:types: to grab selected content as rich text data.

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

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

1:00 PM Changeset in webkit [267679] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/JavaScriptCore

Cherry-pick r267304. rdar://problem/69594380

[JSC] PreciseAllocation's isNewlyAllocated flag should be propagated from isMarked at GC begin phase to make isLive correct
https://bugs.webkit.org/show_bug.cgi?id=216717

Reviewed by Mark Lam.

When starting full GC, at beginMarking, PreciseAllocation's mark bit is cleared to be usable for upcoming marking.
However, this means that HeapCell::isLive will see this object as dead until it is marked.
Let's consider that this object is not newly allocated one. Then, its isNewlyAllocated is false. And now mark bit

is also cleared. Since PreciseAllocation::isLive is isNewlyAllocated
isMarked, then it looks dead, while it is live.

This confuses HeapCell:isLive function and makes some of watchpoints perform wrong decisions (e.g. this condition is
no longer valid, let's just discard it).
At the beginning of full collection, we should propagate the old mark bit to isNewlyAllocated so that it looks live
during marking. This is similar trick to MarkedBlock::aboutToMark.

  • heap/PreciseAllocation.cpp: (JSC::PreciseAllocation::flip):

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

1:00 PM Changeset in webkit [267678] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267287. rdar://problem/69594243

Crash under WebCore::shouldResetFocusNavigationStartingNode()
https://bugs.webkit.org/show_bug.cgi?id=216714
<rdar://problem/68132047>

Reviewed by Darin Adler.

Protect anchorElement in FrameView::scrollToFragmentInternal() to make sure
it stays alive until the time we pass it to setFocusNavigationStartingNode().

  • page/FrameView.cpp: (WebCore::FrameView::scrollToFragmentInternal):

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

1:00 PM Changeset in webkit [267677] by Alan Coon
  • 4 edits in branches/safari-610-branch/Source

Cherry-pick r267215. rdar://problem/69594225

Per-app accent color overrides are broken
https://bugs.webkit.org/show_bug.cgi?id=216674
<rdar://problem/67745464>

Reviewed by Wenson Hsieh.

Source/WebCore/PAL:

  • pal/spi/mac/NSApplicationSPI.h:

Source/WebKit:

No new tests; I've no idea how to write a test that would have caught this;
any test I can imagine would have also written to _accentColor and worked fine.

  • UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::accentColor): AppKit changed the meaning of the IPI. Use the correct version. We still write to _accentColor; it is now purely an override.

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

1:00 PM Changeset in webkit [267676] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267198. rdar://problem/69594065

[iOS] YouTube does not route video to AirPlay the first time
https://bugs.webkit.org/show_bug.cgi?id=216626
<rdar://problem/62222846>

Reviewed by Eric Carlson.

Difficult to test this, since it requires an live AppleTV device.

During a refactor, the order of a couple calls changed. A MediaPlaybackTarget needs to be in place before the MediaPlayer can
be told to start playing to that target. Once the target is in-place, subsequent requests to start playing to that target succeed,
which explains the "only initial AirPlay fails" behavior.

  • platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::activeVideoRouteDidChange):

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

1:00 PM Changeset in webkit [267675] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r267148. rdar://problem/69594002

[macOS] Limit reported macOS release to 10.15 series
https://bugs.webkit.org/show_bug.cgi?id=216593
<rdar://problem/68937905>

Reviewed by Maciej Stachowiak.

If the reported system OS is 11.0 (or beyond) report the last stable release
of macOS.

  • platform/mac/UserAgentMac.mm: (WebCore::standardUserAgentWithApplicationName):

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

1:00 PM Changeset in webkit [267674] by Alan Coon
  • 4 edits in branches/safari-610-branch

Cherry-pick r267092. rdar://problem/69594199

REGRESSION (r267002): ASSERTION FAILED:[ iOS wk2 Debug ] !HashTranslator::equal(KeyTraits::emptyValue(), key) on compositing/ios/overflow-scroll-update-overlap.html
https://bugs.webkit.org/show_bug.cgi?id=216520
<rdar://problem/68894931>

Reviewed by Tim Horton.

Source/WebKit:

Avoid hash lookups with zero nodeIDs.

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::isRubberBandInProgress const): (WebKit::RemoteScrollingCoordinator::isUserScrollInProgress const): (WebKit::RemoteScrollingCoordinator::isScrollSnapInProgress const):

LayoutTests:

  • platform/ios-wk2/TestExpectations:

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

1:00 PM Changeset in webkit [267673] by Alan Coon
  • 20 edits in branches/safari-610-branch/Source

Cherry-pick r267002. rdar://problem/69594199

Overflow:scroll rubberbanding is interrupted by post-layout scrolling
https://bugs.webkit.org/show_bug.cgi?id=216463
<rdar://problem/67095741>

Reviewed by Darin Adler.

When rubberbanding overflow:scroll RenderLayer has an overscrolled scroll offset.
If RenderLayer::updateScrollInfoAfterLayout() happens when in this state, it can
clamp the scroll offset, causing the rubberband to collapse which interferes with
the user interaction. This happend on Gmail when composing a reply.

Fix by tracking the rubberbanding state in the scrolling tree, and having RenderLayer
query this state via the ScrollingCoordinator. RenderLayer::updateScrollInfoAfterLayout()
already tested isRubberBandInProgress(). This is similar to how isUserScrollInProgress()
and isScrollSnapInProgress() work.

This patch also fixes the tracking of rubberbanding state. Previously setMainFrameIsRubberBanding()
was just based on when the timer was started and stopped, which did not match the
implementation of ScrollController::isRubberBandInProgress(). Now ScrollController
correctly notifies its clients when the rubberbanding state changes by updating that
state whenever any of the conditions consulted in isRubberBandInProgressInternal() change.

Source/WebCore:

I tried to make tests for this, but the timing of wheel and scroll event delivery makes
reliable detection of interrupted rubberbands impossible in WebKitTestRunner.

  • page/FrameView.cpp: (WebCore::FrameView::isRubberBandInProgress const):
  • page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::isRubberBandInProgress const):
  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::isRubberBandInProgress const):
  • page/scrolling/ScrollingTree.cpp: (WebCore::ScrollingTree::isRubberBandInProgressForNode): (WebCore::ScrollingTree::setRubberBandingInProgressForNode): (WebCore::ScrollingTree::isRubberBandInProgress): Deleted. (WebCore::ScrollingTree::setMainFrameIsRubberBanding): Deleted.
  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::currentScrollPositionChanged): (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinAndRubberbandState):
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
  • page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::currentScrollPositionChanged):
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::currentScrollPositionChanged): (WebCore::ScrollingTreeScrollingNodeDelegateMac::isRubberBandInProgress const): (WebCore::ScrollingTreeScrollingNodeDelegateMac::didStopRubberbandSnapAnimation): (WebCore::ScrollingTreeScrollingNodeDelegateMac::rubberBandingStateChanged):
  • platform/ScrollAnimator.cpp: (WebCore::ScrollAnimator::notifyPositionChanged):
  • platform/cocoa/ScrollController.h: (WebCore::ScrollControllerClient::rubberBandingStateChanged):
  • platform/cocoa/ScrollController.mm: (WebCore::ScrollController::handleWheelEvent): (WebCore::ScrollController::snapRubberBandTimerFired): (WebCore::ScrollController::scrollPositionChanged): (WebCore::ScrollController::isRubberBandInProgress const): (WebCore::ScrollController::stopSnapRubberbandTimer): (WebCore::ScrollController::isRubberBandInProgressInternal const): (WebCore::ScrollController::updateRubberBandingState): (WebCore::ScrollController::updateGestureInProgressState):
  • rendering/RenderLayer.cpp: (WebCore::RenderLayer::isRubberBandInProgress const): (WebCore::RenderLayer::updateScrollInfoAfterLayout):

Source/WebKit:

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm: (WebKit::RemoteScrollingCoordinator::isRubberBandInProgress const): (WebKit::RemoteScrollingCoordinator::scrollingStateInUIProcessChanged):

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

1:00 PM Changeset in webkit [267672] by Alan Coon
  • 5 edits
    2 adds in branches/safari-610-branch

Cherry-pick r266611. rdar://problem/69594191

MediaRecorder timeslice parameter causing internal error on longer videos
https://bugs.webkit.org/show_bug.cgi?id=216076
<rdar://problem/68209422>

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/wpt/fetch/blob-range.html

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::readDataAsync):

Source/WebKit:

Test: http/wpt/fetch/blob-range.html

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::readData): readData can be re-entrant so we need to reset m_currentItemReadSize before consuming data.

LayoutTests:

  • http/wpt/fetch/blob-range-expected.txt: Added.
  • http/wpt/fetch/blob-range.html: Added.

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

1:00 PM Changeset in webkit [267671] by Alan Coon
  • 3 edits in branches/safari-610-branch/Source/WebCore

Cherry-pick r266312. rdar://problem/69594218

[macOS] AirPlay device name is wrong when playing to multiple devices
https://bugs.webkit.org/show_bug.cgi?id=215952
<rdar://problem/66930799>

Reviewed by Jer Noble.

Tested manually because this requires a specific hardware setup.

  • platform/graphics/avfoundation/MediaPlaybackTargetCocoa.mm: (WebCore::MediaPlaybackTargetCocoa::deviceName const): If the AVOutputContext supports multiple output devices, create the device name by concatenating the names of all of the active output devices.

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

1:00 PM Changeset in webkit [267670] by Alan Coon
  • 2 edits in branches/safari-610-branch/Source/WebKit

Cherry-pick r265977. rdar://problem/69594018

Could not find module 'WebKit' for target 'armv7-apple-ios'
<https://bugs.webkit.org/show_bug.cgi?id=215190>
<rdar://problem/65642049>

Reviewed by Brady Eidson.

The config changes here got added to the wrong config file. They need to
be for the overlay, not its tests.

  • SwiftOverlay/Configurations/WebKitSwiftOverlay.xcconfig:
  • SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig:

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

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

Cherry-pick r265322. rdar://problem/69594018

Could not find module 'WebKit' for target 'armv7-apple-ios'
<https://bugs.webkit.org/show_bug.cgi?id=215190>
<rdar://problem/65642049>

Reviewed by Brady Eidson.

  • SwiftOverlay/Configurations/WebKitSwiftOverlayTests.xcconfig: Define SWIFT_MODULE_ONLY_ARCHS to emit other architectures.

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

11:48 AM Changeset in webkit [267668] by Darin Adler
  • 2 edits in trunk/Tools

Remove run-webkit-tests code that strips trailing spaces when comparing expected.txt files
https://bugs.webkit.org/show_bug.cgi?id=217041

Reviewed by Sam Weinig.

  • Scripts/webkitpy/port/base.py:

(Port.do_text_results_differ): Removed code to strip the expected text before comparing.

9:45 AM Changeset in webkit [267667] by Darin Adler
  • 5 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from the last few expected.txt files that have them
https://bugs.webkit.org/show_bug.cgi?id=217040

Reviewed by Zalan Bujtas.

  • web-platform-tests/content-security-policy/style-src/style-src-imported-style-allowed.sub-expected.txt:
  • web-platform-tests/content-security-policy/style-src/style-src-imported-style-blocked-expected.txt:
  • web-platform-tests/css/css-text/white-space/append-whitespace-only-node-crash-001-expected.txt:
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-expected.txt:

Remove trailing spaces.

9:30 AM Changeset in webkit [267666] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Unreviewed. Call showLayoutTree only when trees are mismatching.

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

8:37 AM Changeset in webkit [267665] by Darin Adler
  • 15 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/euc-jp
https://bugs.webkit.org/show_bug.cgi?id=217037

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-cseucpkdfmtjapanese-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-decode-x-euc-jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-cseucpkdfmtjapanese-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-x-euc-jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/euc-jp/eucjp-encode-href-expected.txt:

Remove trailing spaces.

8:36 AM Changeset in webkit [267664] by Darin Adler
  • 27 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-korean
https://bugs.webkit.org/show_bug.cgi?id=217036

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt:

Strip trailing spaces from these files.

8:36 AM Changeset in webkit [267663] by Darin Adler
  • 25 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/shift_jis
https://bugs.webkit.org/show_bug.cgi?id=217039

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-expected.txt:

Remove trailing spaces.

8:35 AM Changeset in webkit [267662] by Darin Adler
  • 14 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp
https://bugs.webkit.org/show_bug.cgi?id=217038

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-csiso2022jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-csiso2022jp-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-errors-stateful-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-japanese/iso-2022-jp/iso2022jp-encode-href-expected.txt:

Remove trailng spaces.

8:34 AM Changeset in webkit [267661] by Darin Adler
  • 24 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in imported/w3c/web-platform-tests/encoding/legacy-mb-tchinese/big5
https://bugs.webkit.org/show_bug.cgi?id=217035

Reviewed by Zalan Bujtas.

To run at a resaonable speed, we may want to find a way to change these encoding tests to not
decode each character separately since that's not critical to what they are testing; this likely
would result in tests fast enough to run as regression tests (right now they are skipped) and
much smaller output files too. But for now, these are colossal files.

  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc-expected.txt:
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt:

Strip trailing spaces from all these files. No other changes at this time.

8:17 AM Changeset in webkit [267660] by Darin Adler
  • 362 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/dom
https://bugs.webkit.org/show_bug.cgi?id=217029

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

8:15 AM Changeset in webkit [267659] by Darin Adler
  • 84 edits in trunk/LayoutTests/imported/w3c

Remove trailing spaces from expected.txt files in web-platform-tests/encoding, not including the tests in the legacy-mb directories
https://bugs.webkit.org/show_bug.cgi?id=217030

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

7:41 AM Changeset in webkit [267658] by Darin Adler
  • 1230 edits in trunk/LayoutTests

Remove trailing spaces from all expected.txt files outside the web-platform-tests directory
https://bugs.webkit.org/show_bug.cgi?id=217027

Reviewed by Zalan Bujtas.

This affects many files, and it's not helpful to fill the change log with a list of them.

6:03 AM Changeset in webkit [267657] by Alan Bujtas
  • 8 edits
    2 adds in trunk

[LFC][IFC] Create inline boxes for hard line breaks(<br>) and word wrap opportunities (<wbr>)
https://bugs.webkit.org/show_bug.cgi?id=217023

Reviewed by Antti Koivisto.

Source/WebCore:

Both hard <br> and the word break opportunity layout boxes generate inline boxes and get computed box geometries.
It enables us to answer questions like element.offsetTop/offsetLeft.

Test: fast/layoutformattingcontext/br-and-wbr-simple.html

  • layout/FormattingState.cpp:

(WebCore::Layout::FormattingState::boxGeometry):

  • layout/Verification.cpp:

(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree):

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineBoxes):

  • layout/inlineformatting/InlineLine.h:

(WebCore::Layout::Line::Run::isLineBreak const):
(WebCore::Layout::Line::Run::isSoftLineBreak const):
(WebCore::Layout::Line::Run::isHardLineBreak const):

  • layout/tableformatting/TableFormattingContext.cpp:

(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):

LayoutTests:

  • fast/layoutformattingcontext/br-and-wbr-simple-expected.html: Added.
  • fast/layoutformattingcontext/br-and-wbr-simple.html: Added.
5:55 AM Changeset in webkit [267656] by cathiechen
  • 4 edits in trunk/LayoutTests/imported/w3c

Add support to pause in testdriver.js
https://bugs.webkit.org/show_bug.cgi?id=216933

Reviewed by Darin Adler

While simulating a mouse action, pause in dispatchMouseActions() is needed. Otherwise, the events are sent
without delay, the simulation might not be effective. The patch uses JS setTimeout to simulate a pause.

  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointerlock_supercedes_capture-expected.txt:
  • web-platform-tests/pointerevents/pointerlock/pointerevent_pointermove_on_chorded_mouse_button_when_locked-expected.txt:
  • web-platform-tests/resources/testdriver-vendor.js:

(pause): Use setTimeout to simulate a pause.
(dispatchMouseActions):

5:45 AM Changeset in webkit [267655] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] WebSocket: cookies set in request don't appear in the inspector
https://bugs.webkit.org/show_bug.cgi?id=217012

Reviewed by Michael Catanzaro.

Cookies are set by libsoup and we are notifying about the handshake being sent before the cookie header is added
to the request.

  • NetworkProcess/soup/WebSocketTaskSoup.cpp:

(WebKit::WebSocketTask::WebSocketTask): Connect to SoupMessage::starting to notify the web process the handshake
request has been sent.

5:35 AM Changeset in webkit [267654] by commit-queue@webkit.org
  • 18 edits
    3 deletes in trunk

Alias WebKitCSSMatrix to DOMMatrix
https://bugs.webkit.org/show_bug.cgi?id=153675

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update imrpved test results.

  • web-platform-tests/css/geometry/DOMMatrix-stringifier-expected.txt:
  • web-platform-tests/css/geometry/WebKitCSSMatrix-expected.txt:

Source/WebCore:

Alias WebKitCSSMatrix to DOMMatrix and remove
the generated JSWebKitCSSMatrix as well as
WebKitCSSMatrix itself since it is no longer
needed.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/DOMMatrix.idl:
  • css/WebKitCSSMatrix.cpp: Removed.
  • css/WebKitCSSMatrix.h: Removed.
  • css/WebKitCSSMatrix.idl: Removed.

LayoutTests:

Adapt tests to expect DOMMatrix behavior rather than WebKitCSSMatrix.

  • platform/ios/ios/css/construct-WebKitCSSMatrix-expected.txt:
  • platform/ios/ios/css/resources/construct-WebKitCSSMatrix.js:
  • transforms/cssmatrix-2d-interface-expected.txt:
  • transforms/cssmatrix-2d-interface.xhtml:
  • transforms/cssmatrix-3d-interface-expected.txt:
  • transforms/cssmatrix-3d-interface.xhtml:
1:14 AM Changeset in webkit [267653] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk

Add .ccls config file
https://bugs.webkit.org/show_bug.cgi?id=216877

Patch by Philippe Normand <pnormand@igalia.com> on 2020-09-27
Reviewed by Darin Adler.

ccls is a stand-alone server implementing the Language Server Protocol for C, C++, and
Objective-C languages. It can be used with any editor which provides an LSP client
implementation. It originates from cquery.

https://github.com/MaskRay/ccls/wiki

It's basically used to provide semantic highlighting and code navigation. Many IDEs support
LSP nowadays.

  • .ccls: Added.
  • .gitignore:
12:37 AM Changeset in webkit [267652] by commit-queue@webkit.org
  • 18 edits in trunk

Clean up type parameter for Event idl
https://bugs.webkit.org/show_bug.cgi?id=217013

Patch by Rob Buis <rbuis@igalia.com> on 2020-09-27
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update improved test result.

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

Source/WebCore:

Clean up type parameter for Event idl files, there is no need to
pass "undefined" default value.

  • dom/CompositionEvent.idl:
  • dom/HashChangeEvent.idl:
  • dom/KeyboardEvent.idl:
  • dom/MouseEvent.idl:
  • dom/MutationEvent.idl:
  • dom/TextEvent.idl:
  • dom/TouchEvent.idl:
  • dom/UIEvent.idl:
  • storage/StorageEvent.idl:

LayoutTests:

Update improved test results.

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
Note: See TracTimeline for information about the timeline view.