Timeline



Jul 12, 2020:

11:28 PM Changeset in webkit [264294] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/PAL

Building CFNetworkSPI with the macOS Big Sur public SDK fails
https://bugs.webkit.org/show_bug.cgi?id=214238

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-12
Reviewed by Darin Adler.

Building CFNetworkSPI with the macOS Big Sur public SDK fails bacause
it has Objective-C declarations in a header that’s included by a
non-Objective-C source file, to fix wrap the declarations in a
defined(OBJC) block.

  • pal/spi/cf/CFNetworkSPI.h:
11:27 PM Changeset in webkit [264293] by ysuzuki@apple.com
  • 7 edits in trunk/Source

[JSC] String.protoytpe.toLocaleLowerCase's availableLocales HashSet is inefficient
https://bugs.webkit.org/show_bug.cgi?id=213158

Reviewed by Darin Adler.

Source/JavaScriptCore:

Currently, we are always creating the same HashSet every time String.protoytpe.toLocaleLowerCase is called.
We changed bestAvailableLocale to take predicate function. And we pass a predicate which returns true for
case-sensitive locales.

  • runtime/IntlObject.cpp:

(JSC::bestAvailableLocale):

  • runtime/IntlObject.h:
  • runtime/IntlObjectInlines.h:

(JSC::bestAvailableLocale):

  • runtime/StringPrototype.cpp:

(JSC::computeTwoCharacters16Code):
(JSC::toLocaleCase):

Source/WTF:

Add characterAt method to ASCIILiteral.

  • wtf/text/ASCIILiteral.h:
11:20 PM Changeset in webkit [264292] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/PAL

Building NetworkSessionCocoa.mm with the macOS Big Sur public SDK fails
https://bugs.webkit.org/show_bug.cgi?id=214242

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-12
Reviewed by Darin Adler.

Building NetworkSessionCocoa.mm with the macOS Big Sur public SDK fails
because _allowsHTTP3 is readonly yet it is being written to in
NetworkSessionCocoa.mm, mark it as readwrite instead.

  • pal/spi/cf/CFNetworkSPI.h:
10:51 PM Changeset in webkit [264291] by Fujii Hironori
  • 21 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

Windows WebKit1 doesn't check lines with "EDITING DELEGATE:" (Bug 64471).
Rebasedlined with WinCairo WebKit2's results.

  • platform/wincairo/editing/execCommand/findString-2-expected.txt:
  • platform/wincairo/editing/selection/6476-expected.txt:
  • platform/wincairo/editing/selection/click-start-of-line-expected.txt:
  • platform/wincairo/editing/selection/contenteditable-click-inside-expected.txt:
  • platform/wincairo/editing/selection/doubleclick-crash-expected.txt:
  • platform/wincairo/editing/selection/editable-html-element-expected.txt:
  • platform/wincairo/editing/selection/editable-links-expected.txt:
  • platform/wincairo/editing/selection/expanding-selections-expected.txt:
  • platform/wincairo/editing/selection/expanding-selections2-expected.txt:
  • platform/wincairo/editing/selection/fake-doubleclick-expected.txt:
  • platform/wincairo/editing/selection/focus-body-expected.txt:
  • platform/wincairo/editing/selection/focus_editable_html-expected.txt:
  • platform/wincairo/editing/selection/mixed-editability-1-expected.txt:
  • platform/wincairo/editing/selection/paragraph-granularity-expected.txt:
  • platform/wincairo/editing/selection/select-all-006-expected.txt:
  • platform/wincairo/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/wincairo/editing/selection/selection-actions-expected.txt:
  • platform/wincairo/editing/selection/triple-click-in-pre-expected.txt:
  • platform/wincairo/editing/selection/word-granularity-expected.txt:
  • platform/wincairo/editing/style/apple-style-editable-mix-expected.txt:
9:57 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
9:09 PM Changeset in webkit [264290] by Darin Adler
  • 15 edits in trunk/Source

Some further streamlining of Gradient handling code
https://bugs.webkit.org/show_bug.cgi?id=214239

Reviewed by Sam Weinig.

Source/WebCore:

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::interpolateColorStop): Deleted.
(WebCore::createConic): Rewrite the interpolation code to create a new
vector rather than edit the existing one and to use a more straightforward
idiom, and a lambda rather than a helper function. Also removed an explicit
conversion to Gradient::ColorStop, no longer needed because of the overload
added to Vector::insert.

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::applyResource): Use ensure rather
than add to initialize gradient data in the gradient map. Change the #if
for USE(CG) so it doesn't confuse brace matching from the syntax handling
of text editors like the one in Xcode. Update for the changes to the
buildGradient and gradientTransform functions. Use auto a bit more.
(WebCore::RenderSVGResourceGradient::postApplyResource): Update since the
map now contains GradientData rather than unique_ptr<GradientData>. Use
std::exchange when fetching m_savedContext and a local variable to make
the gradient-related code a bit less wordy.
(WebCore::RenderSVGResourceGradient::addStops): Updated to take Gradient&
rather than GradientData* and made this a static member function.
(WebCore::RenderSVGResourceGradient::platformSpreadMethodFromSVGType):
Made this a static member function.

  • rendering/svg/RenderSVGResourceGradient.h: Made more functions private.

Converted addStops and platformSpreadMethodFromSVGType to static member
functions. Made GradientData a member class, and put directly into the
HashMap rather than putting unique_ptr into the map. Changed
calculateGradientTransform to gradientTransform, which uses a return
value rather than an out argument. Changed buildGradient to return
Ref<Gradient> rather than taking a GradientData* to store it in.

  • rendering/svg/RenderSVGResourceLinearGradient.cpp:

(WebCore::RenderSVGResourceLinearGradient::buildGradient const):
Changed to return the gradient instead of modifying an argument and
updated for the change to addStops.

  • rendering/svg/RenderSVGResourceLinearGradient.h: Made more functions

private and updated for changes to gradientTransform and buildGradient.

  • rendering/svg/RenderSVGResourceRadialGradient.cpp:

(WebCore::RenderSVGResourceRadialGradient::buildGradient const):
Changed to return the gradient instead of modifying an argument and
updated for the change to addStops.

  • rendering/svg/RenderSVGResourceRadialGradient.h: Made more functions

private and updated for changes to gradientTransform and buildGradient.

  • svg/GradientAttributes.h: Removed the stopsSet boolean since

the stops vector is empty if and only if it's not set. Made the setStops
function take an rvalue reference so it doesn't always copy a vector.
Also use the ColorStopVector type, sharing the same inline capacity
policy with the Gradient class; both are optimizing the same thing.

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::buildStops): Use the ColorStopVector type.

  • svg/SVGGradientElement.h: Update for the above.
  • svg/SVGLinearGradientElement.cpp:

(WebCore::setGradientAttributes): Update for changes to buildStops and
removed an unnecessary check for an empty vector now that an empty
vector has the same semantics as "no stops".

  • svg/SVGRadialGradientElement.cpp:

(WebCore::setGradientAttributes): Ditto.

Source/WTF:

  • wtf/Vector.h: Added an overload for insert analogous to the ones we already have

for append and uncheckedAppend, helpful for type deduction.

6:11 PM Changeset in webkit [264289] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][Clang] Unreviewed build fix for r264272
https://bugs.webkit.org/show_bug.cgi?id=214204
<rdar://problem/65414170>

clang-cl reported:

..\..\Source\WebCore\platform\graphics/ColorUtilities.h(200,26): error: no template named 'ComponentTraits'

constexpr auto min = ComponentTraits<typename ColorType::ComponentType>::minValue;


  • platform/graphics/ColorUtilities.cpp: Removed #include "ColorTypes.h".
  • platform/graphics/ColorUtilities.h: Added #include "ColorTypes.h".
3:53 PM Changeset in webkit [264288] by ysuzuki@apple.com
  • 2 edits in trunk/JSTests

Unreviewed, mark wasm/references/multitable.js as memory-exhausting

Got footprint exceeding crashes in Debug JSC tests in GTK.

  • wasm/references/multitable.js:
3:41 PM Changeset in webkit [264287] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] We should keep unaligned access feature in certain architectures in macro-assembler
https://bugs.webkit.org/show_bug.cgi?id=214243

Reviewed by Darin Adler.

We introduced the assertion in r263049, but this assertion crashes in testb3 Debug build.
testb3 actually tests unaligned access feature since ARM64 and x64 allow it. And unaligned access is useful
for Yarr etc., so we want to keep unaligned access feature if architecture allows it. We should make this
assertion effective only if CPU(NEEDS_ALIGNED_ACCESS) is true.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::loadPtr):

2:20 PM Changeset in webkit [264286] by commit-queue@webkit.org
  • 27 edits
    1 move
    7 adds
    1 delete in trunk

[macOS]: A HEIF image, selected from the OpenPanel, should be converted to an accepted MIME type
https://bugs.webkit.org/show_bug.cgi?id=213347
<rdar://problem/57258464>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-07-12
Reviewed by Darin Adler.

Source/WebCore:

Tests: fast/forms/file/entries-api/image-no-transcode-open-panel.html

fast/forms/file/entries-api/image-transcode-open-panel.html

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::allowedMIMETypes):
Make sure this function returns lowercase MIME types.

  • platform/MIMETypeRegistry.h:
  • platform/graphics/NativeImage.h:
  • platform/graphics/cg/NativeImageCG.cpp:

(WebCore::drawNativeImage):

Source/WebKit:

Transcode the images given the list of the selected file and the allowed
MIME types. Only selected files whose MIME types do not exist in the allowed
MIME types will be transcoded. Right now, this only will apply to the HEIF
images on macOS.

  • Platform/ImageUtilities.h: Renamed from Source/WebKit/Platform/cg/CGUtilities.h.
  • Platform/Logging.h:
  • Platform/cg/CGUtilities.cpp: Removed.
  • Platform/cg/ImageUtilitiesCG.cpp: Added.

(WebKit::transcodeImage):
(WebKit::findImagesForTranscoding):
(WebKit::transcodeImages):
Implement a function that transcodes images among a set of files given
the allowedMIMETypes. The destination MIME type of these images is the
first MIME type in the allowedMIMETypes which CG supports encoding to.

  • Shared/cg/ShareableBitmapCG.cpp:

(WebKit::ShareableBitmap::paint):
Call drawNativeImage() after renaming paintImage() to drawNativeImage().

  • SourcesCocoa.txt:
  • UIProcess/API/C/WKOpenPanelParametersRef.cpp:

(WKOpenPanelParametersCopyAllowedMIMETypes):

  • UIProcess/API/C/WKOpenPanelParametersRef.h:
  • UIProcess/API/C/WKOpenPanelResultListener.cpp:

(WKOpenPanelResultListenerChooseFiles):

  • UIProcess/API/C/WKOpenPanelResultListener.h:

Transfer the list of the allowed MIME types from the OpenPanel to the
file chooser listener.

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_transcodingQueue):
(WebKit::WebPageProxy::didChooseFilesForOpenPanelWithImageTranscoding):
Transcode the images in a work queue so the UI process is not blocked.
Once the transcoding finishes, the message will be sent to the WebPage.

(WebKit::WebPageProxy::didChooseFilesForOpenPanel):

  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

Allow a suffix to be included in the temporary file name. The goal is to
make it possible to create temporary image files with valid extensions.

  • wtf/FileSystem.h:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/cocoa/FileSystemCocoa.mm:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

  • wtf/win/FileSystemWin.cpp:

(WTF::FileSystemImpl::openTemporaryFile):

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::runOpenPanel):

LayoutTests:

Ensure the HEIF image is converted to an accepted MIME type when it is
selected from the OpenPanel and the 'accept' attribute of the <input>
does allow the HEIF MIME type.

No need to test this functionality on WK1 since the image transcoding
should happen in the UI process.

  • TestExpectations:
  • fast/forms/file/entries-api/image-no-transcode-open-panel-expected.txt: Added.
  • fast/forms/file/entries-api/image-no-transcode-open-panel.html: Added.
  • fast/forms/file/entries-api/image-transcode-open-panel-expected.txt: Added.
  • fast/forms/file/entries-api/image-transcode-open-panel.html: Added.
  • fast/forms/file/entries-api/resources/images/green-400x400.heic: Added.
  • platform/mac-wk2/TestExpectations:
1:13 PM Changeset in webkit [264285] by ysuzuki@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Avoid JSString creation in Intl.Locale#{minimize,maximize}
https://bugs.webkit.org/show_bug.cgi?id=214231

Reviewed by Darin Adler.

Add initializeLocale function taking String to avoid unnecessary JSString creation
in Intl.Locale#{maximize,minimize}.

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::initializeLocale):

  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.cpp:

(JSC::IntlLocalePrototypeFuncMaximize):
(JSC::IntlLocalePrototypeFuncMinimize):

12:46 PM Changeset in webkit [264284] by weinig@apple.com
  • 10 edits in trunk/Source/WebCore

Tidy up color usage in accessibility code
https://bugs.webkit.org/show_bug.cgi?id=214226

Reviewed by Darin Adler.

Rather than passing around r, g, b components as out-parameters,
use SRGBA<uint8_t> return values.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::colorValue const):

  • accessibility/AccessibilityNodeObject.h:
  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(webkitAccessibleTextGetText):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::colorValue const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

11:53 AM Changeset in webkit [264283] by Darin Adler
  • 6 edits in trunk/Source/WebKit

REGRESSION (r261152): 9 blocks of critical sandboxing code disabled because they are guarded with HAVE(SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN)
https://bugs.webkit.org/show_bug.cgi?id=214233

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const): Remove #if HAVE.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): Ditto.
(WebKit::WebPageProxy::loadRequestWithNavigationShared): Ditto.
(WebKit::WebPageProxy::loadFile): Ditto.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shouldSendPendingMessage): Ditto.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load): Ditto.

11:47 AM Changeset in webkit [264282] by commit-queue@webkit.org
  • 6 edits in trunk

Improve IPv6 detection when setting host/hostname
https://bugs.webkit.org/show_bug.cgi?id=214218

Patch by Rob Buis <rbuis@igalia.com> on 2020-07-12
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/url/url-setters-expected.txt:

Source/WebCore:

Improve IPv6 detection when setting host/hostname by checking for 'and?' as
well as using reverse find for ':' separators, to ensure we are not finding a
separator within the IPv6 section of the url.

Behavior matches Chrome and Firefox.

Test: imported/w3c/web-platform-tests/url/url-setters.html

  • html/URLDecomposition.cpp:

(WebCore::URLDecomposition::setHost):

Source/WTF:

  • wtf/URL.cpp:

(WTF::URL::setHost): do not bail out if ':' was found but we start
with a '[', since the host may be IPv6.
(WTF::URL::setHostAndPort): multiple colons are acceptable only in case of IPv6.

11:08 AM Changeset in webkit [264281] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][BFC][Min-Max width] Regular block level box resets the horizontal stacking
https://bugs.webkit.org/show_bug.cgi?id=214225

Reviewed by Antti Koivisto.

Source/WebCore:

Non-floating block level boxes reset the current horizontal float stacking.
e.g. with a shrink-to-fit width container:
<div style="float: left; width: 10px;"></div>
<div></div>
<div style="float: left; width: 40px;"></div>
will produce a max width of 40px which makes the floats vertically stacked.

Test: fast/layoutformattingcontext/min-max-content-width-with-nested-floats-simple.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):

LayoutTests:

  • fast/layoutformattingcontext/min-max-content-width-with-nested-floats-simple-expected.html: Added.
  • fast/layoutformattingcontext/min-max-content-width-with-nested-floats-simple.html: Added.
10:28 AM Changeset in webkit [264280] by Darin Adler
  • 30 edits in trunk/Source/WebCore

Simplify and improve Gradient, some other small color-related removals
https://bugs.webkit.org/show_bug.cgi?id=214221

Reviewed by Sam Weinig.

  • css/CSSGradientValue.cpp: Removed some unneeded includes.
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::currentColor): Deleted.
(WebCore::ColorInputType::shouldShowSuggestions const): Deleted.

  • html/ColorInputType.h: Updated for the above.
  • html/HTMLDocument.cpp: Removed unneeded include of HashTools.h.
  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::create): Moved these functions out of the
header since inlining should be the same or better with them here.
(WebCore::CanvasGradient::~CanvasGradient): Moved this out of the
header so we don't need to include Gradient.h in the header.
(WebCore::CanvasGradient::addColorStop): Updated for change to
Gradient::addColorStop and move Color rather than copying it.

  • html/canvas/CanvasGradient.h: Removed include of Gradient.h.

Moved things out of the header to make that work.

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::buildArrayForCanvasGradient): Removed
use of Gradient::type and instead unify the type string code with
the code that interprets the data for the different types.

  • page/FrameView.cpp:

(WebCore::FrameView::recalculateScrollbarOverlayStyle): Refactored
to eliminate the multiple redundant code paths, otherwising leaving
the logic unchanged.

  • platform/ColorChooserClient.h: Remove unneeded includes and unused

currentColor and shouldShowSuggestions functions.

  • platform/graphics/Gradient.cpp:

(WebCore::Gradient::create): Replaced create functions that take
type-specific data structure with one that takes the variant Data.
(WebCore::Gradient::Gradient): Ditto. Also removed platformInit.
(WebCore::Gradient::~Gradient): Removed platformDestroy.
(WebCore::Gradient::type const): Deleted.
(WebCore::Gradient::addColorStop): Take an rvalue reference to cut down
a little bit on reference count churn. Replaced the platformDestroy
function with a new stopsChanged function. Removed an unneeded overload
that takes the two parts of a ColorStop separately.
(WebCore::Gradient::setSortedColorStops): Use stopsChanged.
(WebCore::Gradient::sortStops const): Simplify a bit, using a lambda.
Also gave this a shorter name; it still optimizes by not sorting if
the vector is already sorted.
(WebCore::Gradient::hasAlpha const): Deleted.
(WebCore::Gradient::setSpreadMethod): Removed some slightly overzealous
code checking this isn't used after creating the platform-specific gradient.
Decided not to bother with this for now.
(WebCore::Gradient::setGradientSpaceTransform): Tweaked formatting.
(WebCore::add): Added overloads to add(Hasher&) so we can use computeHash.
(WebCore::Gradient::hash const): Use computeHash instead of hashMemory.

  • platform/graphics/Gradient.h: Use RetainPtr, COMPtr, and RefPtr instead

of manually managing the lifetimes of the platform-specific underlying
gradient objects. Also removed the unhelpful PlatformGradient type. This
pattern, all too common in our platform library, provides no useful
abstraction here. Removed unneeded constructors from ColorStop.
Updated for changes above. Added platform-specific functions createBrush,
createPattern, and createCGGradient. Simplify encoding and decoding by
taking advantage of the support for encoding/decoding variants.
Remove the enum Gradient::Type entirely. Removed the invalidateHash
function because it's only used in a few setters and setting the hash
to 0 is a fine way to write it there.

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContextState::GraphicsContextState): Moved here from
the header so we don't need to include Gradient.h in the header.
(WebCore::GraphicsContextState::~GraphicsContextState): Ditto.
(WebCore::GraphicsContextState::operator=): Ditto.

  • platform/graphics/GraphicsContext.h: Removed include of Gradient.h.

Moved things out of the header to make that work.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::FillSource::FillSource): Use createPattern instead of
createPlatformGradient.
(WebCore::Cairo::StrokeSource::StrokeSource): Ditto.

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::Gradient::stopsChanged): Renamed from platformDestroy.
(WebCore::interpolateColorStop): Rewrote to use existing blend functions.
(WebCore::createConic): Changed return type to RefPtr. Tweaked to match
WebKit coding style a bit better, use auto, use Vector::first/last, and
updated for removal of the Gradient::ColorStop constructor.
(WebCore::Gradient::createPattern): Renamed from createPlatformGradient.
Changed to return a RefPtr instead of a raw pointer the caller needs to
adopt at each call site. Refactored so it no longer uses Gradient::type.
(WebCore::Gradient::fill): Use createPattern.

  • platform/graphics/cairo/GraphicsContextImplCairo.cpp:

(WebCore::GraphicsContextImplCairo::fillRect): Ditto.

  • platform/graphics/cg/GradientCG.cpp:

(WebCore::Gradient::stopsChanged): Renamed from platformDestroy, and
simplified implementation now that we use RetainPtr.
(WebCore::Gradient::createCGGradient): Renamed from platformGradient,
got rid of the return value, and made it caller responsibility to only
call this when a gradeitn needs to be allocated.
(WebCore::Gradient::paint): Updated to use the above.

  • platform/graphics/cg/GraphicsContextCG.cpp: Add include of Gradient.h.
  • platform/graphics/displaylists/DisplayListItems.h:

Added include of Gradient.h since the function templates in this file
encode and decode gradients.

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

(Nicosia::CairoOperationRecorder::fillRect): Use createPattern.

  • platform/graphics/win/Direct2DOperations.cpp:

(WebCore::Direct2D::FillSource::FillSource): Use createBrush
(WebCore::Direct2D::StrokeSource::StrokeSource): Ditto.

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::stopsChanged): Renamed from platformDestroy and
simplified implementation now that we use COMPtr.
(WebCore::Gradient::platformGradient): Deleted.
(WebCore::Gradient::createPlatformGradientIfNecessary): Deleted.
(WebCore::Gradient::createBrush): Renamed from generateGradient and
added a return value. Simplified now that we use COMPtr, optimized
the code a bit, and added some FIXME about mistakes I noticed.
(WebCore::Gradient::fill): Use createBrush and m_brush.

  • platform/graphics/win/GraphicsContextImplDirect2D.cpp:

(WebCore::GraphicsContextImplDirect2D::fillRect): Use createBrush.

  • platform/mac/ScrollAnimatorMac.mm: Added include of Gradient.h.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::paintProgressBar): Updated for changes to
addColorStop. Also remove a lot of unnecessary conversion from float
to double and back to float.

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::RenderSVGResourceGradient::addStops): Update to make
and move a new color stop instead of copying it, modifying it in
place, and then copying it again.

  • rendering/svg/RenderSVGResourceGradient.cpp: Removed include of

Gradient.h.

  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::buildStops): Use std::clamp to convert
the offsets into monotonically increasing ones in a more direct way,
using variable names instead of comments to clarify what we are doing.

4:25 AM Changeset in webkit [264279] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK debian builds

Include <functional> in ExtendedColor.h since it uses std::invoke.

  • platform/graphics/ExtendedColor.h:
4:13 AM Changeset in webkit [264278] by ysuzuki@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed, speculative build fix for internal build

Followed the style of WebKit/Platform/spi/ios/UIKitSPI.h. Using __has_include to
conditionally define LSDatabaseContext (WebKitChangeTracking) category.

  • pal/spi/cocoa/LaunchServicesSPI.h:
2:47 AM Changeset in webkit [264277] by ysuzuki@apple.com
  • 6 edits in trunk

Relanding "Make hasher work with tuple-like classes"
https://bugs.webkit.org/show_bug.cgi?id=214224

Reviewed by Darin Adler.

Source/WTF:

The original patch broke the internal build. And reverting patch (r264274) broke the build too.
This patch relands r264270 with constexpr => inline constexpr template variable fix.

  • wtf/Hasher.h:

(WTF::add):
(WTF::addTupleLikeHelper):
(WTF::TypeCheckHelper<decltype): Deleted.
(WTF::addTupleHelper): Deleted.
Add support for tuple-like classes. These are classes that:

  • Have defined specializations of std::tuple_size<> and std::tuple_element<>.
  • And have either a member function named get<> or there exists a function get<>() that takes the class as argument that can be looked up via ADL.

To avoid abiguity when hashing std::array, the add() overload enabled for containers
with a begin member functions also now checks that the container is not tuple-like.
The std::pair overload is no longer needed as it will use the tuple-like one now.

  • wtf/OptionSet.h:
  • wtf/StdLibExtras.h:

Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
adhere to WebKit style as IsTypeComplete<>.

Tools:

  • TestWebKitAPI/Tests/WTF/Hasher.cpp:

(TestWebKitAPI::get):
(TestWebKitAPI::HasherAddTupleLikeClass3::get const):
(TestWebKitAPI::TEST):
Update using new Color constructor for extended colors.

1:16 AM Changeset in webkit [264276] by ysuzuki@apple.com
  • 1 edit
    2 adds in trunk/Tools

Unreviewed, follow-up after r264210
https://bugs.webkit.org/show_bug.cgi?id=211707

Missing package.json and package-lock.json in the landed patch (while reviewed patch included them).

  • WebKitBot/package-lock.json: Added.
  • WebKitBot/package.json: Added.

Jul 11, 2020:

9:49 PM Changeset in webkit [264275] by ysuzuki@apple.com
  • 6 edits in trunk

Intl.Locale maximize, minimize should return Intl.Locale instead of String
https://bugs.webkit.org/show_bug.cgi?id=214223
<rdar://problem/65413620>

Reviewed by Ross Kirsling.

JSTests:

  • stress/intl-locale.js:

(minimize.toString):
(shouldBe):

Source/JavaScriptCore:

Intl.Locale#{maximize,minimize} should return Intl.Locale object instead of generated locale string.

We also add some protection and use jsString instead of jsNontrivialString because it would be still
possible that ICU's locale recognition and our locale interpretation do not agree each other and ICU
failed to produce locale, and then the string becomes empty. Since this is a boundary between third-party
library and JSC, and we are not ensuring our invariant inside third-party library, taking safer path makes
it better.

We also change IntlLocale#{maximize,minimize} C++ function names to maximal and minimal to align them
to the sepc's definitions.

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::maximal):
(JSC::IntlLocale::minimal):
(JSC::IntlLocale::maximize): Deleted.
(JSC::IntlLocale::minimize): Deleted.

  • runtime/IntlLocale.h:
  • runtime/IntlLocalePrototype.cpp:

(JSC::IntlLocalePrototypeFuncMaximize):
(JSC::IntlLocalePrototypeFuncMinimize):
(JSC::IntlLocalePrototypeFuncToString):
(JSC::IntlLocalePrototypeGetterBaseName):
(JSC::IntlLocalePrototypeGetterCalendar):
(JSC::IntlLocalePrototypeGetterCaseFirst):
(JSC::IntlLocalePrototypeGetterCollation):
(JSC::IntlLocalePrototypeGetterHourCycle):
(JSC::IntlLocalePrototypeGetterNumberingSystem):
(JSC::IntlLocalePrototypeGetterLanguage):
(JSC::IntlLocalePrototypeGetterScript):
(JSC::IntlLocalePrototypeGetterRegion):

9:39 PM Changeset in webkit [264274] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, reverting r264270.
https://bugs.webkit.org/show_bug.cgi?id=214228

Broke the build

Reverted changeset:

"Make hasher work with tuple-like classes"
https://bugs.webkit.org/show_bug.cgi?id=214224
https://trac.webkit.org/changeset/264270

7:51 PM Changeset in webkit [264273] by Fujii Hironori
  • 6 edits in trunk

[WinCairo] Conic gradients support
https://bugs.webkit.org/show_bug.cgi?id=214216

Reviewed by Sam Weinig.

.:

  • Source/cmake/OptionsWin.cmake: Turn ENABLE_CSS_CONIC_GRADIENTS on.

Source/WebCore:

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addConicSector): Replaced M_PI with piDouble of WTF.
(WebCore::Gradient::createPlatformGradient): Don't use C++20 designated initializers.

LayoutTests:

  • platform/wincairo/TestExpectations: Marked some conic-gradient tests Pass.
6:01 PM Changeset in webkit [264272] by weinig@apple.com
  • 16 edits
    1 delete in trunk

Reduce surface area of the ExtendedColor class to a bare minimum
https://bugs.webkit.org/show_bug.cgi?id=214204

Reviewed by Darin Adler.

Source/WebCore:

  • Add helper function to Color to operate on the underlying color type and reimplement a bunch of functionality using it, reducing the need for duplicate implementations in ExtendedColor.
  • Add constructors to Color that take extended color types, replacing the makeExtendedColor helper function.
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Remove ExtenedColor.cpp

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):
Use new Color constructor taking ColorComponents and ColorSpace.

  • platform/graphics/Color.cpp:

(WebCore::Color::colorWithAlpha const): Reimpliment using callOnUnderlyingType.
(WebCore::Color::invertedColorWithAlpha const): Reimpliment using callOnUnderlyingType.

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::hash const):
(WebCore::Color::callOnUnderlyingType const):
(WebCore::Color::toSRGBALossy const):
(WebCore::Color::setColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):

  • Add new constructors taking extended color types: SRGBA<float>, LinearSRGBA<float> and DiplayP3<float>.
  • Add new function, callOnUnderlyingType, to make working with any underlying type more streamlined.
  • platform/graphics/ColorConversion.h:

(WebCore::toSRGBA):
(WebCore::toLinearSRGBA):
(WebCore::toDisplayP3):
(WebCore::toLinearDisplayP3):
(WebCore::toHSLA):
Add identity conversion functions to make implementing generic functions like Color::toSRGBALossy more
straigtforward.

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSerialization.h:

Replace serialization of the ExtendedColor type itself, with serialization for the underlying color
types. Use callOnUnderlyingType to dispatch to the right one.

  • platform/graphics/ColorTypes.h:
  • Adds ComponentTraits struct to get information like min/max value of the component types.
  • Adds using ComponentType = T; to each color type, to allow easy access to the type in deduced contexts.
  • Adds static constexpr ColorSpace to each color type that currently has a ColorSpace mapping.
  • platform/graphics/ColorUtilities.h:

(WebCore::isBlack):
(WebCore::isWhite):
Add helpers to implement Color::isBlack/Color::isWhiteColor for each color type.

  • platform/graphics/ExtendedColor.cpp: Removed.
  • platform/graphics/ExtendedColor.h:

(WebCore::ExtendedColor::create):
(WebCore::ExtendedColor::ExtendedColor):
(WebCore::ExtendedColor::callOnUnderlyingType const):
(WebCore::ExtendedColor::toSRGBALossy const): Deleted.
Reduce down to just construction, member access and the callOnUnderlyingType helper.
In future revisions, ExtendedColor should be converted to an internal class of Color.

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::Color):

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::Color):
Update to use constructor delegation.

Tools:

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):
Update using new Color constructor for extended colors.

3:38 PM Changeset in webkit [264271] by Darin Adler
  • 21 edits in trunk/Source

Remove live ranges from AccessibilityObject.h, AccessibilityObjectInterface.h, AccessibilityRenderObject.h, AXIsolatedObject.h
https://bugs.webkit.org/show_bug.cgi?id=214215

Reviewed by Sam Weinig.

Source/WebCore:

Also use the IntPoint and LayoutPoint center() functions instead of rolling our own.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::misspellingRange const): Return SimpleRange. Also
renamed from getMisspellingRange.
(WebCore::rangeClosestToRange): Take and return SimpleRange.
(WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection const): Ditto.
(WebCore::AccessibilityObject::elementRange const): Return SimpleRange.
(WebCore::AccessibilityObject::findTextRange const): Take and return SimpleRange.
(WebCore::AccessibilityObject::findTextRanges const): Ditto.
(WebCore::AccessibilityObject::performTextOperation): Use SimpleRange.
(WebCore::AccessibilityObject::clickPoint): Use center().
(WebCore::AccessibilityObject::rangeForPlainTextRange const): Return SimpleRange.
(WebCore::AccessibilityObject::stringForRange const): Take SimpleRange.
(WebCore::AccessibilityObject::stringForVisiblePositionRange): Use SimpleRange.
(WebCore::AccessibilityObject::lengthForVisiblePositionRange const): Ditto.
(WebCore::AccessibilityObject::replaceTextInRange): Use SimpleRange.

  • accessibility/AccessibilityObject.h: Update for above.
  • accessibility/AccessibilityObjectInterface.h: Take and return SimpleRange.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::linkClickPoint): Use SimpleRange.
(WebCore::AccessibilityRenderObject::clickPoint): Ditto.
(WebCore::AccessibilityRenderObject::setSelectedTextRange): Ditto.
(WebCore::AccessibilityRenderObject::boundsForRange const): Take SimpleRange.
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange const):
Use SimpleRange.
(WebCore::AccessibilityRenderObject::doAXBoundsForRangeUsingCharacterOffset const):
Use SimpleRange.

  • accessibility/AccessibilityRenderObject.h: Update for above.
  • accessibility/atk/WebKitAccessibleInterfaceText.cpp: Include Range.h.
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper stringForTextMarkers:]): Use SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerRange]): Ditto.
(-[WebAccessibilityObjectWrapper stringForRange:]): Ditto.
(-[WebAccessibilityObjectWrapper misspellingTextMarkerRange:forward:]): Ditto.
(-[WebAccessibilityObjectWrapper frameForTextMarkers:]): Ditto.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::stringForRange const): Take SimpleRange.
(WebCore::AXIsolatedObject::findTextRanges const): Return SimpleRange.

  • accessibility/isolatedtree/AXIsolatedObject.h: Update for above.
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(accessibilityTextOperationForParameterizedAttribute): Use SimpleRange.
(-[WebAccessibilityObjectWrapper doAXAttributedStringForRange:]): Ditto.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Ditto.

  • dom/Range.cpp:

(WebCore::makeSimpleRange): Added.

  • dom/Range.h: Added makeSimpleRange so we can explicitly convert from

live ranges to simple ranges.

  • editing/Editing.cpp:

(WebCore::indexForVisiblePosition): Use separate returns for start and end.

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingParagraph::offsetTo const): Ditto.
(WebCore::TextCheckingParagraph::automaticReplacementStart const): Ditto.

  • page/FocusController.cpp:

(WebCore::updateFocusCandidateIfNeeded): Use center().

Source/WebKit:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::requestDocumentEditingContext): Use nested if for start and end
so we don't do the work on end if the test fails on start.

Source/WTF:

  • wtf/cocoa/VectorCocoa.h: Added a new makeVector that takes a function.

Also updated createNSArray to use std::invoke.

3:12 PM Changeset in webkit [264270] by weinig@apple.com
  • 6 edits in trunk

Make hasher work with tuple-like classes
https://bugs.webkit.org/show_bug.cgi?id=214224

Reviewed by Darin Adler.

Source/WTF:

  • wtf/Hasher.h:

(WTF::add):
(WTF::addTupleLikeHelper):
(WTF::TypeCheckHelper<decltype): Deleted.
(WTF::addTupleHelper): Deleted.
Add support for tuple-like classes. These are classes that:

  • Have defined specializations of std::tuple_size<> and std::tuple_element<>.
  • And have either a member function named get<> or there exists a function get<>() that takes the class as argument that can be looked up via ADL.

To avoid abiguity when hashing std::array, the add() overload enabled for containers
with a begin member functions also now checks that the container is not tuple-like.
The std::pair overload is no longer needed as it will use the tuple-like one now.

  • wtf/OptionSet.h:
  • wtf/StdLibExtras.h:

Move is_type_complete_v<> from OptionSet.h to StdLibExtras.h and rename to
adhere to WebKit style as IsTypeComplete<>.

Tools:

  • TestWebKitAPI/Tests/WTF/Hasher.cpp:

Enable and extend tests for using computeHash() with user defined tuple-like classes, supporting
both the get function as a member and as a ADL-able free function.

10:55 AM Changeset in webkit [264269] by Simon Fraser
  • 7 edits
    2 adds in trunk

REGRESSION(r260276): Overflow scrolling layers misplaced inside SVG foreign object
https://bugs.webkit.org/show_bug.cgi?id=213788
<rdar://problem/65039637>

Reviewed by Zalan Bujtas.
Source/WebCore:

RenderLayers inside SVG <foreignObject> don't display correctly, so don't use
accelerated overflow scroll (which requires layers) inside <foreignObject>.

This reverts behavior to macOS Catalina behavior (i.e. as soon as the overflow
becomes scrollable, rendering problems appear), and to pre-iOS 13 behavior.

Test: fast/scrolling/overflow-inside-foreignobject.html

  • dom/Document.h:

(WebCore::Document::mayHaveRenderedSVGForeignObjects const):
(WebCore::Document::setMayHaveRenderedSVGForeignObjects):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::updateAncestorDependentState):
(WebCore::RenderLayer::canUseCompositedScrolling const):

  • rendering/RenderLayer.h:
  • rendering/svg/RenderSVGForeignObject.h:
  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::createElementRenderer):

LayoutTests:

  • fast/scrolling/overflow-inside-foreignobject-expected.html: Added.
  • fast/scrolling/overflow-inside-foreignobject.html: Added.
10:21 AM Changeset in webkit [264268] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html as crashing on iOS WK2 Debug.

This test has been crashing consistently since import in r264145.

  • platform/ios-wk2/TestExpectations:
8:45 AM Changeset in webkit [264267] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][BFC][Min-Max width] Add support for float avoiders
https://bugs.webkit.org/show_bug.cgi?id=214220

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/min-max-content-width-with-floats-simple.html

Float avoiders (including the float boxes) with infinite constraint form a horizontal float stack.
(This does not yet support clear property/non-direct children.)

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):

LayoutTests:

  • fast/layoutformattingcontext/min-max-content-width-with-floats-simple-expected.html: Added.
  • fast/layoutformattingcontext/min-max-content-width-with-floats-simple.html: Added.

Jul 10, 2020:

11:30 PM Changeset in webkit [264266] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Prompt for requestStorageAccess is inverted in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=214198
<rdar://problem/65369725>

Reviewed by Darin Adler.

The labels for "allow" and "deny" StorageAccess API were inverted in the WKWebView
implementation.

  • UIProcess/Cocoa/WKStorageAccessAlert.mm:

(WebKit::presentStorageAccessAlert):

10:40 PM Changeset in webkit [264265] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark a couple of user-timing WPT tests as flaky since their import in r264255.

10:36 PM Changeset in webkit [264264] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, silence console logging in a couple of payment request WPT tests to address flakiness

9:49 PM Changeset in webkit [264263] by Chris Dumez
  • 19 edits
    7 copies
    38 moves
    235 adds
    181 deletes in trunk/LayoutTests

Resync web-platform-tests/streams from upstream
https://bugs.webkit.org/show_bug.cgi?id=214207

Reviewed by Sam Weinig.

Resync web-platform-tests/streams from upstream 859527a3513029d2.

  • resources/import-expectations.json:
  • web-platform-tests/streams/*: Updated.
9:45 PM WebKitGTK/DependenciesPolicy edited by Fujii Hironori
(diff)
9:35 PM Changeset in webkit [264262] by Chris Dumez
  • 10 edits
    1 delete in trunk

Unreviewed, reverting r264242.

Caused many crashes on iOS bots

Reverted changeset:

"JSRunLoopTimer should use WTF::RunLoop rather than custom CF
code"
https://bugs.webkit.org/show_bug.cgi?id=214102
https://trac.webkit.org/changeset/264242

9:32 PM Changeset in webkit [264261] by Lauro Moura
  • 2 edits in trunk/LayoutTests

[GTK][WPE] Unreviewed, garden failure and new passes

Payment request is not supported and a single test was being executed

Also pass 4 css-writing-modes tests that are passing since r263855.

  • platform/glib/TestExpectations:
9:30 PM Changeset in webkit [264260] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/user-timing/measure_associated_with_navigation_timing.html as flaky.

This has been flaky since import in r264255.

9:22 PM Changeset in webkit [264259] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark img-aspect-ratio-lazy.tentative.html WPT test as flaky since import in r264117.

8:44 PM Changeset in webkit [264258] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup GameController framework button binding with some constants
https://bugs.webkit.org/show_bug.cgi?id=214210

Reviewed by Darin Adler.

No new tests (No behavior change)

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad): Use named constants instead of magic numbers.

8:44 PM Changeset in webkit [264257] by Chris Dumez
  • 4 edits
    8 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/notifications from upstream
https://bugs.webkit.org/show_bug.cgi?id=214206

Reviewed by Geoff Garen.

Resync web-platform-tests/notifications from upstream 859527a3513029d2.

  • web-platform-tests/notifications/META.yml: Added.
  • web-platform-tests/notifications/OWNERS: Removed.
  • web-platform-tests/notifications/constructor-invalid.html:
  • web-platform-tests/notifications/idlharness.https.any-expected.txt: Added.
  • web-platform-tests/notifications/idlharness.https.any.html: Added.
  • web-platform-tests/notifications/idlharness.https.any.js: Added.
  • web-platform-tests/notifications/idlharness.https.any.worker-expected.txt: Added.
  • web-platform-tests/notifications/idlharness.https.any.worker.html: Added.
  • web-platform-tests/notifications/interfaces-expected.txt: Removed.
  • web-platform-tests/notifications/interfaces.html: Removed.
  • web-platform-tests/notifications/resources/w3c-import.log:
  • web-platform-tests/notifications/w3c-import.log:
8:35 PM Changeset in webkit [264256] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed gardening after WPT resync in r264239.

Mark one payment-request test as flaky and silence console logging for another one
to try and address flakiness.

8:23 PM Changeset in webkit [264255] by Chris Dumez
  • 17 edits
    68 adds
    5 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/user-timing from upstream
https://bugs.webkit.org/show_bug.cgi?id=214208

Reviewed by Sam Weinig.

Resync web-platform-tests/user-timing from upstream 859527a3513029d2.

  • web-platform-tests/user-timing/*: Updated.
8:02 PM Changeset in webkit [264254] by Chris Dumez
  • 4 edits
    1 move
    6 adds
    3 deletes in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/touch-events from upstream
https://bugs.webkit.org/show_bug.cgi?id=214209

Reviewed by Darin Adler.

Resync web-platform-tests/touch-events from upstream 859527a3513029d2.

  • web-platform-tests/touch-events/META.yml: Added.
  • web-platform-tests/touch-events/OWNERS: Removed.
  • web-platform-tests/touch-events/create-touch-touchlist-expected.txt: Removed.
  • web-platform-tests/touch-events/create-touch-touchlist.html: Removed.
  • web-platform-tests/touch-events/historical.html:
  • web-platform-tests/touch-events/idlharness.window-expected.txt: Added.
  • web-platform-tests/touch-events/idlharness.window.html: Added.
  • web-platform-tests/touch-events/idlharness.window.js: Added.
  • web-platform-tests/touch-events/support/touch.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/touch-events/touch-support.js.
  • web-platform-tests/touch-events/support/w3c-import.log: Added.
  • web-platform-tests/touch-events/touch-touchevent-constructor.html:
  • web-platform-tests/touch-events/w3c-import.log:
7:37 PM Changeset in webkit [264253] by Fujii Hironori
  • 2 edits in trunk/Tools

[TestWebKitAPI][Win] Remove WEBCORE_EXPORT and WEBCORE_TESTSUPPORT_EXPORT definitions in PlatformWin.cmake
https://bugs.webkit.org/show_bug.cgi?id=214212

Reviewed by Don Olmstead.

Those macros should be defined only by WebCore/platform/PlatformExportMacros.h.

  • TestWebKitAPI/PlatformWin.cmake: Removed WEBCORE_EXPORT and WEBCORE_TESTSUPPORT_EXPORT.

Added STATICALLY_LINKED_WITH_WebCore=1 to TestWebCore_DEFINITIONS.

7:00 PM Changeset in webkit [264252] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Add tvOS and watchOS support to built-product-archive
https://bugs.webkit.org/show_bug.cgi?id=214214

Unreviewed infrastructure fix.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):
(extractBuiltProduct):

6:24 PM Changeset in webkit [264251] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix build for PLATFORM(IOS_FAMILY) && !ENABLE(REVEAL), for example, tvOS

  • editing/cocoa/DictionaryLookup.mm: Added include of "SimpleRange.h".
6:16 PM Changeset in webkit [264250] by Alan Coon
  • 1 copy in tags/Safari-610.1.22

Tag Safari-610.1.22.

6:11 PM Changeset in webkit [264249] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix build for PLATFORM(IOS_FAMILY) && !ENABLE(REVEAL), for example tvOS

  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Update to return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

5:30 PM Changeset in webkit [264248] by Wenson Hsieh
  • 4 edits in trunk

[iOS] Prevent SPI clients from making the minimum layout height or width negative
https://bugs.webkit.org/show_bug.cgi?id=214199
<rdar://problem/64109242>

Reviewed by Tim Horton.

Source/WebKit:

It's an error in the embedding client to override the minimum layout size with a negative width or height (in
this case, Mail on iOS). This happens when double tapping on a contact pill in the "To:" line in Mail compose,
which causes the top content inset of the web view's scroll view to increase such that Mail's logic for
overriding layout width ends up passing a negative height.

After a recent change (<https://trac.webkit.org/r261874>), this now results in the web view immediately
scrolling to an incorrect content offset when rotating into landscape mode after double tapping a contact. Fix
this by clamping the overridden layout size to a minimum of (0, 0), to prevent SPI clients from triggering
subtle bugs like this in the future.

Test: WebKit.OverrideMinimumLayoutSizeWithNegativeHeight

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _overrideLayoutParametersWithMinimumLayoutSize:maximumUnobscuredSizeOverride:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/FixedLayoutSize.mm:
4:59 PM Changeset in webkit [264247] by Darin Adler
  • 20 edits in trunk/Source

Remove live ranges from Document.h, AlternativeTextController.h, DictionaryLookup.h, and WebPage.h
https://bugs.webkit.org/show_bug.cgi?id=214109

Reviewed by Sam Weinig.

Source/WebCore:

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::characterOffsetForPoint): Updated to call
caretPositionFromPoint, internal function, instead of caretRangeFromPoint,
public DOM function.

  • dom/Document.cpp:

(WebCore::Document::Document): Changed documentClasses argument to DocumentClassFlags.
(WebCore::Document::caretRangeFromPoint): Refactored so this calls createLiveRange,
since it's a DOM function that returns a live range.
(WebCore::Document::caretPositionFromPoint): Renamed so this is not just an overload
and changed to return a BoundaryPoint rather than a live range.

  • dom/Document.h: Simplified forward declarations by getting rid of all the conditionals.

Tweaked a few typedef things. Updated for the changes above.

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::startAlternativeTextUITimer): Updated since
m_rangeWithAlternative is an Optional<SimpleRange>.
(WebCore::AlternativeTextController::stopAlternativeTextUITimer): Ditto.
(WebCore::AlternativeTextController::applyPendingCorrection): Ditto.
(WebCore::AlternativeTextController::hasPendingCorrection const): Ditto.
(WebCore::AlternativeTextController::isSpellingMarkerAllowed const): Take SimpleRange.
(WebCore::AlternativeTextController::show): Ditto.
(WebCore::AlternativeTextController::applyAutocorrectionBeforeTypingIfAppropriate):
Updated since m_rangeWithAlternative is an Optional<SimpleRange>.
(WebCore::AlternativeTextController::timerFired): Ditto.
(WebCore::AlternativeTextController::handleAlternativeTextUIResult): Ditto.
(WebCore::AlternativeTextController::markReversed): Take SimpleRange.
(WebCore::AlternativeTextController::markCorrection): Ditto.
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection): Ditto.
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult): Ditto.
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord): Use SimpleRange
instead of a live range.
(WebCore::AlternativeTextController::applyAlternativeTextToRange): Take SimpleRange.

  • editing/AlternativeTextController.h: Use SimpleRange instead of live ranges.
  • editing/cocoa/DictionaryLookup.mm:

(WebCore::DictionaryLookup::rangeForSelection): Return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
(WebCore::showPopupOrCreateAnimationController): Renamed type from RevealView to CocoaView.
(WebCore::DictionaryLookup::showPopup): Ditto.

  • editing/mac/DictionaryLookup.h: Simplified header since it is included only from

Objective-C files. Use SimpleRange instead of live ranges.

  • editing/mac/DictionaryLookupLegacy.mm:

(WebCore::DictionaryLookup::rangeForSelection): Return SimpleRange.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.

  • page/mac/EventHandlerMac.mm:

(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup): Updated
since DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Use constexpr instead of
macros for constants.

  • testing/Internals.mm:

(WebCore::Internals::rangeForDictionaryLookupAtLocation): Updated
since DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebCore::Internals::encodedPreferenceValue): Removed unneeded error local, and
fixed formatting.

Source/WebKit:

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController selectedRange]): Updated since
WebPage::currentSelectionAsRange returns SimpleRange.

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::performDictionaryLookupAtLocation): Updated since
DictionaryLookup::rangeAtHitTestResult returns SimpleRange.
(WebKit::WebPage::performDictionaryLookupForSelection): Updated since
DictionaryLookup::rangeForSelection returns SimpleRange.
(WebKit::WebPage::performDictionaryLookupForRange): Take SimpleRange.
(WebKit::WebPage::dictionaryPopupInfoForRange): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::currentSelectionAsRange): Return SimpleRange.

  • WebProcess/WebPage/WebPage.h: Use SimpleRange instead of live ranges.
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::selectWithGesture): Updated since m_startingGestureRange
is SimpleRange.
(WebKit::WebPage::clearSelection): Ditto.
(WebKit::WebPage::rangeForGranularityAtPoint): Return SimpleRange.
(WebKit::WebPage::selectTextWithGranularityAtPoint): Update since
rangeForGranularityAtPoint returns SimpleRange.
(WebKit::WebPage::updateSelectionWithExtentPointAndBoundary): Use
SimpleRange.
(WebKit::WebPage::updateSelectionWithExtentPoint): Use auto.

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performImmediateActionHitTestAtLocation): Update
since lookupTextAtLocation returns SimpleRange.
(WebKit::WebPage::lookupTextAtLocation): Return SimpleRange.

Source/WebKitLegacy/mac:

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _animationControllerForText]): Update since
DictionaryLookup::rangeAtHitTestResult returns SimpleRange.

4:34 PM Changeset in webkit [264246] by beidson@apple.com
  • 6 edits in trunk/Source

GameController.framework gamepads should support Home buttons.
<rdar://problem/63500696> and https://bugs.webkit.org/show_bug.cgi?id=212933

Reviewed by Tim Horton.

Source/WebCore:

No new tests (Cannot yet drive GameController framework directly in tests)

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::homeButtonFromExtendedGamepad): Try a few different techniques of extracting the home button

from a GCExtendedGamepad.

(WebCore::GameControllerGamepad::setupAsExtendedGamepad): If there's a home button, put it at button index 16,

defined by the spec as "Center button in center cluster"

  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:

Source/WTF:

  • wtf/PlatformHave.h:
4:07 PM Changeset in webkit [264245] by Chris Dumez
  • 36 edits
    5 moves
    33 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/eventsource from upstream
https://bugs.webkit.org/show_bug.cgi?id=214203

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/eventsource from upstream 859527a3513029d2.

  • web-platform-tests/eventsource/*: Updated.

LayoutTests:

4:07 PM Changeset in webkit [264244] by Chris Dumez
  • 18 edits
    2 moves
    196 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/shadow-dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=214201

Reviewed by Sam Weinig.

Resync web-platform-tests/shadow-dom from upstream 859527a3513029d2.

  • web-platform-tests/shadow-dom/*: Updated.
3:42 PM Changeset in webkit [264243] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: Build failure for catalyst
https://bugs.webkit.org/show_bug.cgi?id=214202
<rdar://problem/65366125>

Reviewed by Zalan Bujtas.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):

3:00 PM Changeset in webkit [264242] by ggaren@apple.com
  • 10 edits
    1 add in trunk

Source/JavaScriptCore:
JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Reviewed by Darin Adler.

The generic RunLoop codepath was already mostly right. Just needed to
clarify the API to demonstrate that VMs do not hop from one RunLoop
to another.

  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Include a RunLoop
as a constructor argument so that the web thread can override it.

(JSC::JSRunLoopTimer::Manager::timerDidFireCallback): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData): No need to
explicitly clear our RunLoop -- the RunLoop::Timer destructor will do
the job.

(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer): Removed the CF path.

(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop): Deleted. Changing
RunLoops is not actually a feature we use.

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData): Deleted.

  • runtime/PromiseTimer.cpp:

(JSC::PromiseTimer::doWork):
(JSC::PromiseTimer::runRunLoop): Removed the CF path.

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::create):
(JSC::VM::setRunLoop): Deleted.

  • runtime/VM.h:

(JSC::VM::runLoop const): Require a RunLoop in the VM constructor in
order to clarify that we always know our RunLoop and never change it.

Source/WebCore:
JSRunLoopTimer should use WTF::RunLoop rather than custom CF code
https://bugs.webkit.org/show_bug.cgi?id=214102

Reviewed by Darin Adler.

  • bindings/js/CommonVM.cpp:

(WebCore::commonVMSlow): Supply a RunLoop at construction time since
JSC requires that now.

Tools:
Add some testing for JSRunLoopTimer
https://bugs.webkit.org/show_bug.cgi?id=214193

Reviewed by Darin Adler.

Add some test coverage to JSRunLoopTimer since I'm changing it.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm: Added.

(-[TestObject dealloc]):
(TestWebKitAPI::TEST):

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

Removing usage of "using namespace WebCore" from TextTrackRepresentationCocoa.mm
https://bugs.webkit.org/show_bug.cgi?id=214196

Patch by Guowei Yang <guowei_yang@apple.com> on 2020-07-10
Reviewed by Tim Horton.

The line "using namespace WebCore" will cause problems
when compiling unified source. Removing this line and
replace it with WebCore::prefix and namespace WebCore{ }
to enclose C++ calls.

No new tests are requied as this is a code style fix

  • platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: removed usage of "using namespace WebCore" to avoid future errors while compiling

(-[WebCoreTextTrackRepresentationCocoaHelper initWithParent:]): added "WebCore::" prefix
(-[WebCoreTextTrackRepresentationCocoaHelper setParent:]): ditto
(-[WebCoreTextTrackRepresentationCocoaHelper parent]): ditto
(TextTrackRepresentation::create): enclosed inside namespace WebCore{ }
(TextTrackRepresentationCocoa::TextTrackRepresentationCocoa): Deleted.

enclosed inside namespace WebCore{ }

(TextTrackRepresentationCocoa::~TextTrackRepresentationCocoa): ditto
(TextTrackRepresentationCocoa::update): ditto
(TextTrackRepresentationCocoa::setContentScale): ditto
(TextTrackRepresentationCocoa::setHidden const): ditto
(TextTrackRepresentationCocoa::bounds const): ditto
(TextTrackRepresentationCocoa::boundsChanged): ditto

2:54 PM Changeset in webkit [264240] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, Mark WebRTC WPT test as flaky.

It has been flaky since import in r264202.

2:48 PM Changeset in webkit [264239] by Chris Dumez
  • 60 edits
    1 copy
    7 moves
    25 adds in trunk/LayoutTests

Resync web-platform-tests/payment-request from upstream
https://bugs.webkit.org/show_bug.cgi?id=214167

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/payment-request from upstream cef93b58e7cf31f1d47c.

  • resources/resource-files.json:
  • web-platform-tests/payment-request/*: Updated.

LayoutTests:

  • tests-options.json:
1:24 PM Changeset in webkit [264238] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

Remove glBindFramebuffer flush workaround from ANGLE
https://bugs.webkit.org/show_bug.cgi?id=214104

Patch by Kenneth Russell <kbr@chromium.org> on 2020-07-10
Reviewed by Dean Jackson.

Remove this driver bug workaround, which very likely had no
effect, and which was never upstreamed to ANGLE.

  • include/platform/FeaturesGL.h:
  • src/libANGLE/renderer/gl/StateManagerGL.cpp:

(rx::StateManagerGL::bindFramebuffer):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

1:13 PM Changeset in webkit [264237] by Peng Liu
  • 2 edits in trunk/Source/WebCore

MobileSafari rotates its scene to portrait upside down if it has a PiP on screen
https://bugs.webkit.org/show_bug.cgi?id=214169

Reviewed by Jer Noble.

The UIViewController for video fullscreen/picture-in-picture should not ignore
the App's supported orientations when the video element is in picture-in-picture.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup):

1:04 PM Changeset in webkit [264236] by Fujii Hironori
  • 6 edits in trunk

[WinCairo] WOFF2 font support
https://bugs.webkit.org/show_bug.cgi?id=214174

Reviewed by Per Arne Vollan.

.:

  • Source/cmake/OptionsWinCairo.cmake: Unmarked fast/text/woff2-totalsfntsize.html and fast/text/woff2.html.

Source/WebCore:

  • PlatformWinCairo.cmake: Added additional libraries for static WOFF2 library to WebCore_LIBRARIES.
  • platform/graphics/win/FontCustomPlatformDataCairo.cpp:

(WebCore::FontCustomPlatformData::supportsFormat): Added woff2.

12:56 PM Changeset in webkit [264235] by Chris Fleizach
  • 7 edits
    2 adds in trunk

AX: iOS VoiceOver should support definition lists
https://bugs.webkit.org/show_bug.cgi?id=210214
<rdar://problem/61478299>

Reviewed by Darin Adler.

Source/WebCore:

Expose bits to make definition lists accessibility on iOS.

Test: accessibility/ios-simulator/definition-list.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityDescriptionListAncestor]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListTerm]):
(-[WebAccessibilityObjectWrapper accessibilityIsInDescriptionListDefinition]):

LayoutTests:

  • accessibility/ios-simulator/definition-list.html: Added.
12:25 PM Changeset in webkit [264234] by dino@apple.com
  • 1 edit in trunk/WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme

Another attempt to fix the Xcode Workspace by ensuring that ANGLE builds the correct things.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
12:03 PM Changeset in webkit [264233] by Lauro Moura
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK/WPE debug crash gardening

  • platform/glib/TestExpectations:
11:51 AM Changeset in webkit [264232] by beidson@apple.com
  • 11 edits in trunk/Source

Limit MultiGamepadProvider to Catalina and Big Sur.
https://bugs.webkit.org/show_bug.cgi?id=214190

Unreviewed build fix.

Source/WebCore:

  • platform/gamepad/cocoa/GameControllerSPI.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:
  • platform/gamepad/mac/HIDGamepadProvider.mm:

(WebCore::HIDGamepadProvider::deviceAdded):

  • platform/gamepad/mac/MultiGamepadProvider.h:
  • platform/gamepad/mac/MultiGamepadProvider.mm:

Source/WebKit:

  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:

(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):

10:54 AM Changeset in webkit [264231] by Philippe Normand
  • 2 edits in trunk/LayoutTests

Unreviewed, GTK/WPE gardening

  • platform/glib/TestExpectations: Mark a few GStreamer-related tests as crashing on Debug.
10:36 AM Changeset in webkit [264230] by weinig@apple.com
  • 13 edits in trunk/Source/WebCore

Part 4 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=214158

Reviewed by Darin Adler.

Removes SimpleColor!

Alas, makeSimpleColor() remains for now, seeking a new name in a follow up.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor): Deleted.
(WebCore::SimpleColor::alphaComponent const): Deleted.
(WebCore::SimpleColor::alphaComponentAsFloat const): Deleted.
(WebCore::SimpleColor::isOpaque const): Deleted.
(WebCore::SimpleColor::isVisible const): Deleted.
(WebCore::SimpleColor::colorWithAlpha const): Deleted.
(WebCore::SimpleColor::invertedColorWithAlpha const): Deleted.
(WebCore::SimpleColor::asSRGBA const): Deleted.
(WebCore::SimpleColor::get const): Deleted.
(): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator!=): Deleted.
Remove the SimpleColor class.

  • platform/graphics/Color.cpp:

(WebCore::Color::operator=):
(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::invertedColorWithAlpha const):
(WebCore::Color::colorSpaceAndComponents const):

  • platform/graphics/Color.h:

(WebCore::Color::isHashTableDeletedValue const):
(WebCore::Color::isValid const):
(WebCore::Color::isSemantic const):
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alpha const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::isExtended const):
(WebCore::Color::isInline const):
(WebCore::Color::tagAsSemantic):
(WebCore::Color::tagAsValid):
(WebCore::operator==):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::Color):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::toSRGBALossy const):
(WebCore::Color::asInline const):
(WebCore::Color::setInlineColor):
(WebCore::Color::setExtendedColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::isSimple const): Deleted.
(WebCore::Color::asSimple const): Deleted.
(WebCore::Color::setSimpleColor): Deleted.

  • Rename existing uses of Simple with Inline, denoting the inline SRGBA<uint8_t>.
  • Move multiline functions out of line in the header.
  • Adds new constructor functions taking Optional<SRGBA<uint8_t>> to make Color(CGColorRef) constructors more straightforward.
  • Replaces uses of SimpleColor's interface with use of ColorUtilities.h helpers. e.g. Color::invertedColorWithAlpha() now uses the new invertedColorWithOverridenAlpha() helper function. Use of these utilities will be expanded to ExtendedColor in a follow up, allowing us to have just one implementation of these algorithms.
  • platform/graphics/ColorSerialization.cpp:

(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSerialization.h:

Replace serialization of SimpleColor with serialization of SRGBA<uint8_t>.

  • platform/graphics/ColorTypes.h:

(WebCore::forEachNonAlphaComponent): Deleted.
Removed forEachNonAlphaComponent. Uses replaced by new colorByModifingEachNonAlphaComponent
function in ColorUtilities.h

  • platform/graphics/ColorUtilities.h:

(WebCore::colorByModifingEachNonAlphaComponent):
(WebCore::convertComponentByteTo<uint8_t>):
(WebCore::convertComponentByteTo<float>):
(WebCore::convertComponentFloatTo<uint8_t>):
(WebCore::convertComponentFloatTo<float>):
(WebCore::colorWithOverridenAlpha):
(WebCore::invertComponent):
(WebCore::invertedColorWithOverridenAlpha):
Added heplers to implement color mutation behaviors.

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::Color::Color):
(WebCore::cachedCGColor):
Switch makeSimpleColorFromCGColor to return an Optional<SRGBA<uint8_t>> to streamline
the constructors. Update to use is/asInline functions.

  • platform/graphics/mac/ColorMac.mm:

(WebCore::nsColor):
Update to use is/asInline functions.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicComponentTransferFilterOperation::transformColor const):
Switch to using colorByModifingEachNonAlphaComponent().

10:21 AM Changeset in webkit [264229] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[EWS] layout-test results shouldn't be hosted on ews server
https://bugs.webkit.org/show_bug.cgi?id=201937

Rubber-stamped by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py:

(ExtractTestResults.resultDirectoryURL):

  • BuildSlaveSupport/ews-build/steps_unittest.py:
10:16 AM Changeset in webkit [264228] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.0.3

Tag Safari-610.1.21.0.3.

10:07 AM Changeset in webkit [264227] by Alan Coon
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.3

9:59 AM Changeset in webkit [264226] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] Unreviewed, prospective API test bot fix...

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setVolume): I suppose changing the audio volume to 0 wasn't intended :)

9:38 AM Changeset in webkit [264225] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, remove debug printf after r264219.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):

9:36 AM Changeset in webkit [264224] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Use MESSAGE_CHECK in WebPageProxy::setColorPickerColor()
https://bugs.webkit.org/show_bug.cgi?id=214168
<rdar://problem/58632672>

Reviewed by David Kilzer.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setColorPickerColor): Replace ASSERT with
MESSAGE_CHECK.

9:15 AM Changeset in webkit [264223] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-operations.https.html in Debug.

This test has been crashing in Debug since its import in r264202.

9:00 AM Changeset in webkit [264222] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/webrtc/protocol/split.https.html as flaky.

It has been flaky since import in r264202.

8:44 AM Changeset in webkit [264221] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression (r264202): imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https.html is consistently failing on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=214183
<rdar://problem/65335357>

Unreviewed, rebaseline test on mac-wk1 after resync in r264202.

  • platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/usvstring-reflection.https-expected.txt:
8:39 AM Changeset in webkit [264220] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] Normal flow element that establishes a new block formatting context must not overlap the margin box of any floats
https://bugs.webkit.org/show_bug.cgi?id=214185

Reviewed by Antti Koivisto.

Source/WebCore:

BFCs in general should avoid floats. This code was confusing the cases where the block container box (not necessarily a BFC) establishes an IFC.

<div>The div establishes an IFC only. It should not avoid floats.</div>
<div style="overflow: hidden">The div establishes both a new BFC and an IFC. It should avoid floats.</div>

Test: fast/layoutformattingcontext/float-avoider-with-inline-content.html

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isFloatAvoider const):

LayoutTests:

  • fast/layoutformattingcontext/float-avoider-with-inline-content-expected.html: Added.
  • fast/layoutformattingcontext/float-avoider-with-inline-content.html: Added.
7:57 AM Changeset in webkit [264219] by calvaris@igalia.com
  • 33 edits
    5 copies
    7 adds in trunk

[GStreamer][EME][OpenCDM] Implement OpenCDM support
https://bugs.webkit.org/show_bug.cgi?id=213550

Reviewed by Philippe Normand.

.:

Added support to enable OpenCDM and find it it needed.

  • Source/cmake/FindOpenCDM.cmake: Added.
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/WebCore:

Implemented the OpenCDM support in the CDMOpenCDM and
CDMProxyOpenCDM related classes. CDMOpenCDM classes check for
Widevine support in OpenCDM and glues the JavaScript API to the
OpenCDM/Thunder framework. Building this is optional and --opencdm
parameter needs to be passed to build-webkit to get it.

CDMProxy related needed changes because of several reasons. First
is that Key was considering only a Vector<uint8_t> as a type and
OpenCDM has session objects. Key is also renamed to KeyHandle as
this name reflects in a better way the purpose of the class. This
bleeds out to all CDMProxy related classes. CDMInstanceSessionProxy
gets support to remove itself from the CDMSessionProxy.

Regarding ClearKey, we adapt the changes to the CDMProxy classes
and de-cable protection system from the decryptors as the OpenCDM
decryptor could handle more than one system.

No new tests. YouTube TV 2019 tests are green.

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/GStreamer.cmake:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::dataAsUInt8Ptr const):

  • platform/SharedBuffer.h:
  • platform/encryptedmedia/CDMInstance.h:
  • platform/encryptedmedia/CDMOpenCDMTypes.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::KeyHandle::idAsString const):
(WebCore::KeyHandle::takeValueIfDifferent):
(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::merge):
(WebCore::KeyStore::allKeysAs const):
(WebCore::KeyStore::addKeys):
(WebCore::KeyStore::add):
(WebCore::KeyStore::remove):
(WebCore::KeyStore::keyHandle const):
(WebCore::CDMProxy::keyHandle const):
(WebCore::CDMProxy::tryWaitForKeyHandle const):
(WebCore::CDMProxy::keyAvailableUnlocked const):
(WebCore::CDMProxy::keyAvailable const):
(WebCore::CDMProxy::getOrWaitForKeyHandle const):
(WebCore::CDMProxy::getOrWaitForKeyValue const):
(WebCore::CDMInstanceSessionProxy::CDMInstanceSessionProxy):
(WebCore::CDMInstanceSessionProxy::removeFromInstanceProxy):

  • platform/encryptedmedia/CDMProxy.h:

(WebCore::KeyHandle::create):
(WebCore::KeyHandle::id const):
(WebCore::KeyHandle::value const):
(WebCore::KeyHandle::value):
(WebCore::KeyHandle::isStatusCurrentlyValid):
(WebCore::KeyHandle::operator==):
(WebCore::KeyHandle::operator<):
(WebCore::KeyHandle::KeyHandle):
(WebCore::KeyStore::isEmpty const):
(WebCore::CDMProxy::instance const):
(WebCore::CDMInstanceSessionProxy::releaseDecryptionResources):
(WebCore::CDMInstanceSessionProxy::cdmInstanceProxy const):
(WebCore::CDMInstanceProxy::proxy const):
(WebCore::CDMInstanceProxy::removeSession):

  • platform/encryptedmedia/CDMUtilities.cpp: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.

(WebCore::CDMUtilities::parseJSONObject):

  • platform/encryptedmedia/CDMUtilities.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat):
(WebCore::CDMPrivateClearKey::supportsInitData const):
(WebCore::CDMPrivateClearKey::sanitizeResponse const):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
(WebCore::CDMInstanceSessionClearKey::parentInstance const):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::isOpenCDMRanked):
(WebCore::initializeGStreamerAndRegisterWebKitElements):
(WebCore::GstMappedBuffer::createVector):

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::create):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):

  • platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp:

(WebCore::CDMFactory::platformRegisterFactories):

  • platform/graphics/gstreamer/eme/CDMOpenCDM.cpp: Added.

(openCDMLicenseType):
(WebCore::initDataMD5):
(WebCore::sessionLoadFailureFromOpenCDM):
(WebCore::OpenCDM::destructOpenCDMSession):
(WebCore::OpenCDM::createSharedOpenCDMSession):
(WebCore::CDMFactoryOpenCDM::singleton):
(WebCore::CDMFactoryOpenCDM::createCDM):
(WebCore::CDMFactoryOpenCDM::createCDMProxy):
(WebCore::CDMFactoryOpenCDM::supportedKeySystems const):
(WebCore::CDMFactoryOpenCDM::supportsKeySystem):
(WebCore::CDMPrivateOpenCDM::supportedInitDataTypes const):
(WebCore::CDMPrivateOpenCDM::supportsConfiguration const):
(WebCore::CDMPrivateOpenCDM::supportedRobustnesses const):
(WebCore::CDMPrivateOpenCDM::distinctiveIdentifiersRequirement const):
(WebCore::CDMPrivateOpenCDM::persistentStateRequirement const):
(WebCore::CDMPrivateOpenCDM::distinctiveIdentifiersAreUniquePerOriginAndClearable const):
(WebCore::CDMPrivateOpenCDM::createInstance):
(WebCore::CDMPrivateOpenCDM::loadAndInitialize):
(WebCore::CDMPrivateOpenCDM::supportsServerCertificates const):
(WebCore::CDMPrivateOpenCDM::supportsSessions const):
(WebCore::CDMPrivateOpenCDM::supportsInitData const):
(WebCore::CDMPrivateOpenCDM::sanitizeResponse const):
(WebCore::CDMPrivateOpenCDM::sanitizeSessionId const):
(WebCore::CDMInstanceOpenCDM::CDMInstanceOpenCDM):
(WebCore::CDMInstanceOpenCDM::initializeWithConfiguration):
(WebCore::CDMInstanceOpenCDM::setServerCertificate):
(WebCore::CDMInstanceOpenCDM::setStorageDirectory):
(WebCore::CDMInstanceSessionOpenCDM::CDMInstanceSessionOpenCDM):
(WebCore::CDMInstanceOpenCDM::createSession):
(WebCore::ParsedResponseMessage::ParsedResponseMessage):
(WebCore::ParsedResponseMessage::hasPayload const):
(WebCore::ParsedResponseMessage::payload const):
(WebCore::ParsedResponseMessage::payload):
(WebCore::ParsedResponseMessage::hasType const):
(WebCore::ParsedResponseMessage::type const):
(WebCore::ParsedResponseMessage::typeOr const):
(WebCore::CDMInstanceSessionOpenCDM::challengeGeneratedCallback):
(WebCore::toString):
(WebCore::CDMInstanceSessionOpenCDM::status const):
(WebCore::CDMInstanceSessionOpenCDM::keyUpdatedCallback):
(WebCore::CDMInstanceSessionOpenCDM::keysUpdateDoneCallback):
(WebCore::CDMInstanceSessionOpenCDM::errorCallback):
(WebCore::CDMInstanceSessionOpenCDM::requestLicense):
(WebCore::CDMInstanceSessionOpenCDM::sessionFailure):
(WebCore::CDMInstanceSessionOpenCDM::updateLicense):
(WebCore::CDMInstanceSessionOpenCDM::loadSession):
(WebCore::CDMInstanceSessionOpenCDM::closeSession):
(WebCore::CDMInstanceSessionOpenCDM::removeSessionData):
(WebCore::CDMInstanceSessionOpenCDM::storeRecordOfKeyUsage):
(WebCore:: const):

  • platform/graphics/gstreamer/eme/CDMOpenCDM.h: Added.

(WebCore::OpenCDM::OpenCDMSystemDeleter::operator() const):
(WebCore::OpenCDM::OpenCDMSessionDeleter::operator() const):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

(WebCore::CDMProxyClearKey::cencSetDecryptionKey):

  • platform/graphics/gstreamer/eme/CDMProxyOpenCDM.cpp: Added.

(WebCore::CDMProxyOpenCDM::getDecryptionSession const):
(WebCore::CDMProxyOpenCDM::decrypt):

  • platform/graphics/gstreamer/eme/CDMProxyOpenCDM.h: Copied from Source/WebCore/platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp.
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::InitData::InitData):
(WebCore::InitData::payload const):
(WebCore::GStreamerEMEUtilities::isWidevineKeySystem):
(WebCore::GStreamerEMEUtilities::keySystemToUuid):

  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:

(webkit_media_clear_key_decrypt_class_init):
(protectionSystemId):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(transformCaps):
(transformInPlace):

  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
  • platform/graphics/gstreamer/eme/WebKitOpenCDMDecryptorGStreamer.cpp: Added.

(webkit_media_opencdm_decrypt_class_init):
(webkit_media_opencdm_decrypt_init):
(finalize):
(protectionSystemId):
(cdmProxyAttached):
(decrypt):

  • platform/graphics/gstreamer/eme/WebKitOpenCDMDecryptorGStreamer.h: Added.

Source/WTF:

  • wtf/PlatformEnable.h: Disable OPENCDM by default.

Tools:

Added support to build OpenCDM and its dependencies. There is an
opt in env var to get JHBuild building Thunder its Widevine
dependencies. We also include a couple of GStreamer patches needed
to get key IDs in the decryptors.

Widevine is obviously proprietary and as you need to be licensed
to access it, you need credentials to build it.

  • Scripts/webkitperl/FeatureList.pm:
  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-bad-0006-mssdemux-parse-protection-data.patch: Added.
  • gstreamer/patches/gst-plugins-good-0002-Check-if-an-upstream-demuxer-provided-a-default-kid.patch: Added.
  • gtk/install-dependencies:
  • jhbuild/jhbuildrc_common.py:

(init):

  • wpe/install-dependencies:
7:01 AM Changeset in webkit [264218] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][TreeConstruction] Create block level container for unsupported renderer
https://bugs.webkit.org/show_bug.cgi?id=214182

Reviewed by Antti Koivisto.

It makes full LFC rendering on random pages less crashy.

  • layout/layouttree/LayoutTreeBuilder.cpp:

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

6:20 AM Changeset in webkit [264217] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: title of back-forward menu items needs to be truncated when it's too large
https://bugs.webkit.org/show_bug.cgi?id=214180

Reviewed by Adrian Perez de Castro.

The popover menu doesn't set ellipsize on the inner label, so we need to do it manually. In the case of GTK4 we
also need to markup escape it.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowCreateBackForwardMenu):

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

[GTK] Flush the cairo surface after painting when using software
https://bugs.webkit.org/show_bug.cgi?id=214177

Reviewed by Adrian Perez de Castro.

This is similar to bug #210636 but it happens under wayland when using GTK4. It's good idea to flush always
after painting in any case, so we do ity in case of GTK3 as well.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot): Call cairo_surface_flush() after drawing.
(WebKit::AcceleratedBackingStoreWayland::paint): Ditto.

4:08 AM Changeset in webkit [264215] by svillar@igalia.com
  • 9 edits in trunk/Source/WebCore

[WebXR] Retrieve WebGL framebuffer resolution from XR devices
https://bugs.webkit.org/show_bug.cgi?id=213886

Reviewed by Carlos Garcia Campos.

The recommended WebGL framebuffer resolution should be retrieved from the actual XR device being used.
Implemented the OpenXR machinery to retrieve it from the XR system. We are also moving the methods that
call the platform code to the XRSession as specs define, instead of having them inside the XRWebGLLayer.

Finally this patch is also removing a unused definition in OpenXR plaform code and properly initializing
a OpenXR struct. The missing initialization was the source of errors when querying api layer properties.
The patch is also properly setting the SessionMode::Inline when XR_VIEW_CONFIGURATION_TYPE_PRIMARY_MONO
is found. It used to set SessionMode::ImmersiveAr instead, but that's wrong, we should only care about
ImmersiveAr session mode once the WebXR AR module is implemented.

  • Modules/webxr/WebXRRenderState.cpp:

(WebCore::WebXRRenderState::outputCanvas const): Return render state's canvas.

  • Modules/webxr/WebXRRenderState.h: Added a m_outputCanvas member with its getter.
  • Modules/webxr/WebXRSession.cpp:

(WebCore::WebXRSession::nativeWebGLFramebufferResolution const): Moved from WebXRWebGLLayer and reimplemented.
(WebCore::WebXRSession::recommendedWebGLFramebufferResolution const): Ditto.

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRWebGLLayer.cpp:

(WebCore::WebXRWebGLLayer::WebXRWebGLLayer):
(WebCore::WebXRWebGLLayer::getNativeFramebufferScaleFactor): Call the session to get native and recommended
resolutions.
(WebCore::WebXRWebGLLayer::computeNativeWebGLFramebufferResolution): Deleted.
(WebCore::WebXRWebGLLayer::computeRecommendedWebGLFramebufferResolution): Ditto.

  • platform/xr/PlatformXR.h:

(PlatformXR::Device::recommendedResolution): New virtual method with default implementation.

  • platform/xr/openxr/PlatformXROpenXR.cpp:

(PlatformXR::Instance::Impl::enumerateApiLayerProperties const): Added initialization of the XrApiLayerProperties
objects. The call to xrEnumerateApiLayerProperties succeeds now.
(PlatformXR::OpenXRDevice::OpenXRDevice): Call enumerateConfigurationViews().
(PlatformXR::OpenXRDevice::collectSupportedSessionModes): Fill in the m_viewConfigurationProperties map.
(PlatformXR::OpenXRDevice::enumerateConfigurationViews): New method that retrieves the XR device views for each
supported configuration.
(PlatformXR::OpenXRDevice::recommendedResolution): Return the recommended resolution for a given SessionMode.

  • platform/xr/openxr/PlatformXROpenXR.h: Added some new methods and attributes.
3:48 AM Changeset in webkit [264214] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][MarginCollapsing] Margins do not collapse through when the box has clearance.
https://bugs.webkit.org/show_bug.cgi?id=214172

Reviewed by Antti Koivisto.

Source/WebCore:

https://www.w3.org/TR/CSS22/box.html#collapsing-margins
"Two margins are adjoining if and only if: no line boxes, no clearance, no padding and no border separate them"

Only adjoining margins can collapse through.

Test: fast/layoutformattingcontext/empty-block-level-box-with-clearance.html

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):

LayoutTests:

  • fast/layoutformattingcontext/empty-block-level-box-with-clearance-expected.html: Added.
  • fast/layoutformattingcontext/empty-block-level-box-with-clearance.html: Added.
2:16 AM Changeset in webkit [264213] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source

[GTK][WPE] Use mobile user-agent on tablet
https://bugs.webkit.org/show_bug.cgi?id=149496

Patch by Jan-Michael Brummer <jan.brummer@tabos.org> on 2020-07-10
Reviewed by Carlos Garcia Campos.

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):

  • platform/UserAgentQuirks.h:
  • platform/glib/UserAgentGLib.cpp:

(WebCore::getChassisType):
(WebCore::platformForUAString):
(WebCore::platformVersionForUAString):
(WebCore::buildUserAgentString):
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):

1:16 AM Changeset in webkit [264212] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit

Unreviewed. Fix GTK4 build

  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(fileChooserDialogResponseCallback):
(webkitWebViewRunFileChooser):

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

1:01 AM Changeset in webkit [264211] by aboya@igalia.com
  • 10 edits
    2 deletes in trunk/Source/WebCore

[MSE][GStreamer] Inline MediaSourceClientGStreamerMSE away
https://bugs.webkit.org/show_bug.cgi?id=214140

Reviewed by Xabier Rodriguez-Calvar.

MediaSourceClientGStreamerMSE is a superfluous class that adds
a layer of indirection and complexity to the GStreamer MSE codebase
for no gain. This patch gets rid of it.

This also gets rid of the friend access layer violations that
MediaSourceClientGStreamerMSE relied upon.

This patch is a refactor that doesn't introduce behavior changes and
it's covered by existing tests.

  • platform/GStreamer.cmake:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::setMediaSourceClient): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient): Deleted.

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:

(WebCore::MediaPlayerPrivateGStreamerMSE::playbackPipeline const):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp: Removed.
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h: Removed.
  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::MediaSourcePrivateGStreamer):
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
(WebCore::MediaSourcePrivateGStreamer::durationChanged):
(WebCore::MediaSourcePrivateGStreamer::markEndOfStream):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.h:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):
(WebCore::SourceBufferPrivateGStreamer::append):
(WebCore::SourceBufferPrivateGStreamer::abort):
(WebCore::SourceBufferPrivateGStreamer::resetParserState):
(WebCore::SourceBufferPrivateGStreamer::removedFromMediaSource):
(WebCore::SourceBufferPrivateGStreamer::flush):
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
12:02 AM Changeset in webkit [264210] by ysuzuki@apple.com
  • 1 edit
    2 copies
    17 adds
    1 delete in trunk/Tools

Add Slack-aware WebKitBot implementation
https://bugs.webkit.org/show_bug.cgi?id=211707

Reviewed by Devin Rousso and Brian Burg.

This patch adds Slack-aware WebKitBot implementation which supports "ping", "revert", and the other commands.
I decided to implement this feature in chat-bot because of the following reasons.

  1. It is the previous way we are familiar with.
  2. Creating a revert-patch sometimes takes long time because it involves working-copy clean-up, creating a revert, generating a patch... So asynchronous request-response is better for developers who do not want to watch whether the patch is created until it is done. Chat-bot can tell us when it is ready.
  3. Requesting a revert-patch in public channel can easily tell the other developers that reverting is going on now.

We reuse python's webkit-patch create-revert command as it was in the old webkitbot. We enhance WKR bot to support webkitbot feature.
Once webkitbot app is installed into a channel, it monitors messages in the channel and works when the mention to this bot's user happens.

We use Real Time Message Slack API instead of Event API, because Event API requires public facing HTTPS server which accepts incoming webhook.
Real Time Message Slack API just requires a server app which connects to Slack via WebSocket, so it is easier to deploy for now.

The implementation of webkitbot is client-server model inside one process. There is one AsyncTaskQueue, and there is one async main loop which
takes the task from the queue and replies when it is done. Every time we noticed the request, this request queues the task to this task queue.
This design ensures that only one task is using the working-copy WebKit repository at a time, this is required to make a revert-patch without
conflict.

  • WKR/ReadMe.md: Removed.
  • WKR/WKR.mjs: Removed.
  • WKR/package-lock.json: Removed.
  • WKR/package.json: Removed.
  • WebKitBot/.eslintrc: Added.
  • WebKitBot/.gitignore: Renamed from Tools/WKR/.gitignore.
  • WebKitBot/ReadMe.md: Added.
  • WebKitBot/data/.gitignore: Renamed from Tools/WKR/data/.gitignore.
  • WebKitBot/package-lock.json: Added.
  • WebKitBot/package.json: Added.
  • WebKitBot/src/AsyncTaskQueue.mjs: Added.
  • WebKitBot/src/Commit.mjs: Added.
  • WebKitBot/src/Contributors.mjs: Added.
  • WebKitBot/src/Utility.mjs: Added.
  • WebKitBot/src/WKR.mjs: Added.
  • WebKitBot/src/WebKitBot.mjs: Added.
  • WebKitBot/src/index.mjs: Added.
  • WebKitBot/tests/Commit.test.mjs: Added.
  • WebKitBot/tests/WebKitBot.test.mjs: Added.
  • WebKitBot/tests/resources/.gitattributes: Added.
  • WebKitBot/tests/resources/HaveRadarAndBugzilla.json: Added.
  • WebKitBot/tests/resources/HavingBugzilla.json: Added.
  • WebKitBot/tests/resources/NoRadarAndBugzilla.json: Added.

Jul 9, 2020:

11:00 PM Changeset in webkit [264209] by Russell Epstein
  • 1 copy in branches/safari-610.1.22-branch

New branch.

10:25 PM Changeset in webkit [264208] by Lauro Moura
  • 3 edits
    2 adds
    1 delete in trunk/LayoutTests

[GTK][WPE] Garden more failures/rebaselines after WPT updates.

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/xhr/send-entity-body-empty-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/xhr/send-entity-body-none-expected.txt: Added.
  • platform/gtk-wayland/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/xhr/send-network-error-sync-events.sub-expected.txt: Removed. This test is actually failing for gtk/wpe. Removed to fallback to the w3c baseline and marked it as a failure.
6:27 PM Changeset in webkit [264207] by beidson@apple.com
  • 16 edits
    1 copy
    1 move
    2 adds in trunk/Source

Multiplex the HID and GameController gamepad providers on Mac.
<rdar://problem/63192532> and https://bugs.webkit.org/show_bug.cgi?id=214126

Reviewed by Tim Horton.
Source/WebCore:

Mac has already supported both the HID provider and GameController provider.

By adding an intermediate provider to multiplex both and tweaking a few other things,
it can support both at the same time.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/gamepad/PlatformGamepad.h:

(WebCore::PlatformGamepad::lastUpdateTime const):
(WebCore::PlatformGamepad::source const):

  • platform/gamepad/cocoa/GameControllerGamepad.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::gamepadHadInput):
(WebCore::GameControllerGamepadProvider::makeInvisibleGamepadsVisible):
(WebCore::GameControllerGamepadProvider::inputNotificationTimerFired):
(WebCore::GameControllerGamepadProvider::makeInvisibileGamepadsVisible): Deleted.

  • platform/gamepad/cocoa/GameControllerSPI.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.h:
  • platform/gamepad/cocoa/GameControllerSoftLink.mm:
  • platform/gamepad/mac/HIDGamepad.h:
  • platform/gamepad/mac/HIDGamepadProvider.h:

(WebCore::HIDGamepadProvider::ignoreGameControllerFrameworkDevices):

  • platform/gamepad/mac/HIDGamepadProvider.mm: Renamed from Source/WebCore/platform/gamepad/mac/HIDGamepadProvider.cpp.

(WebCore::deviceMatchingDictionary):
(WebCore::deviceAddedCallback):
(WebCore::deviceRemovedCallback):
(WebCore::deviceValuesChangedCallback):
(WebCore::HIDGamepadProvider::singleton):
(WebCore::HIDGamepadProvider::HIDGamepadProvider):
(WebCore::HIDGamepadProvider::stopMonitoringInput):
(WebCore::HIDGamepadProvider::startMonitoringInput):
(WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::HIDGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::HIDGamepadProvider::openAndScheduleManager):
(WebCore::HIDGamepadProvider::closeAndUnscheduleManager):
(WebCore::HIDGamepadProvider::startMonitoringGamepads):
(WebCore::HIDGamepadProvider::stopMonitoringGamepads):
(WebCore::gameControllerFrameworkWillHandleHIDDevice):
(WebCore::HIDGamepadProvider::deviceAdded):
(WebCore::HIDGamepadProvider::deviceRemoved):
(WebCore::HIDGamepadProvider::valuesChanged):
(WebCore::HIDGamepadProvider::inputNotificationTimerFired):
(WebCore::HIDGamepadProvider::removeGamepadForDevice):

  • platform/gamepad/mac/MultiGamepadProvider.h: Added.

(WebCore::MultiGamepadProvider::isMockGamepadProvider const):
(WebCore::MultiGamepadProvider::PlatformGamepadWrapper::PlatformGamepadWrapper):

  • platform/gamepad/mac/MultiGamepadProvider.mm: Added.

(WebCore::MultiGamepadProvider::singleton):
(WebCore::MultiGamepadProvider::startMonitoringGamepads):
(WebCore::MultiGamepadProvider::stopMonitoringGamepads):
(WebCore::MultiGamepadProvider::indexForNewlyConnectedDevice):
(WebCore::MultiGamepadProvider::platformGamepadConnected):
(WebCore::MultiGamepadProvider::platformGamepadDisconnected):
(WebCore::MultiGamepadProvider::platformGamepadInputActivity):

Source/WebCore/PAL:

The current "IOKitSPI.h" is really weird.
It is mostly needed for iOS, but also used on Mac a little...
And since some of what it declares on Mac is actually public, anyone else
that uses public headers on Mac runs into redefinitions.

Since the use of it on iOS and Mac are so different, let's just make a Mac one.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/mac/IOKitSPIMac.h: Copied from Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h.

Source/WebKit:

  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:

(WebKit::UIGamepadProvider::platformSetDefaultGamepadProvider):

6:27 PM Changeset in webkit [264206] by Andres Gonzalez
  • 7 edits in trunk

Make accessibility/Mac/selected-visible-position-range.html time-deterministic.
https://bugs.webkit.org/show_bug.cgi?id=214154

Reviewed by Chris Fleizach.

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
Check passed parameter for null.

(WTR::AccessibilityUIElement::selectedTextMarkerRange):
Use attributeValue to run on secondary AX thread.

LayoutTests:

[WebAccessibilityObjectWrapper accessibilitySetValue] sets the selection
range and other properties asynchronously by dispatching the call to
another cycle of the run loop using callOnMainThread. thus for the JS to
retrieve the new value, it is necessary to wait until the value is
updated. this is even more so in isolated tree mode where all wrapper
calls come on the secondary AX thread. JS setTimeout doesn't help with
synchronizing these calls, so instead we are using Promises in the
function waitFor in accessibility-helper.js (thanks to Geoff Garen for
showing the way).

  • accessibility/mac/selected-visible-position-range-expected.txt:
  • accessibility/mac/selected-visible-position-range.html:

MOved waitFor(condition) to the accessibility-helper.js file to be used
in multiple tests.

  • accessibility/textarea-selected-text-range.html:
  • resources/accessibility-helper.js:

(waitFor):

5:07 PM Changeset in webkit [264205] by timothy_horton@apple.com
  • 5 edits in trunk/Source

"ESPN Fantasy Sports" does not respond to mouse events, only touch events
https://bugs.webkit.org/show_bug.cgi?id=214165
<rdar://problem/64671543>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isESPNFantasySports):

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldUseMouseGestureRecognizer]):
Add a bundle check.

5:05 PM Changeset in webkit [264204] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: title bar of undocked inspector should be white in BigSur
https://bugs.webkit.org/show_bug.cgi?id=214161
<rdar://problem/65289224>

Reviewed by Brian Burg.

Make the title bar white when the window is focused.

When the window is unfocused, the title bar background is
the same on Big Sur and Catalina. No changes were needed.

  • UserInterface/Views/Main.css:

(#undocked-title-area):
(body.big-sur #undocked-title-area):
(body:not(.big-sur) #undocked-title-area):
(@media (prefers-color-scheme: dark) #undocked-title-area):
(@media (prefers-color-scheme: dark) body.big-sur #undocked-title-area):
(@media (prefers-color-scheme: dark) body:not(.big-sur) #undocked-title-area):

4:37 PM Changeset in webkit [264203] by Simon Fraser
  • 12 edits
    2 adds in trunk

[macOS] Stuttery scrolling on tesla.com
https://bugs.webkit.org/show_bug.cgi?id=214159
<rdar://problem/64555500>

Reviewed by Wenson Hsieh.
Source/WebCore:

tesla.com uses scroll snapping, and also triggers layout during scrolling that could
cause scroll snap to yank the scroll position. This manifested as a change that affected
getBoundingClientRect which is used an an input to some transform math, causing the images
to move around.

Fix by ensuring that layout-triggered scroll snap does not happen if a user scroll is in progress,
when that scroll occurs via the scrolling thread. ScrollingTreeScrollingNodeDelegateMac has a
ScrollController that tracks when a gesture is in progress; push this state to
the ScrollingTree so it can be consulted from the main thread. The two subclasses
of ScrollableArea, RenderLayer and FrameView, then consult the ScrollingCoordinator
to ask whether a user scroll is in progress for their scrolling tree node.

Test: fast/scrolling/mac/adjust-scroll-snap-during-gesture.html

  • page/FrameView.cpp:

(WebCore::FrameView::isUserScrollInProgress const):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::isUserScrollInProgress const):

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::isUserScrollInProgress const):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::isUserScrollInProgressForNode):
(WebCore::ScrollingTree::setUserScrollInProgressForNode):
(WebCore::ScrollingTree::clearNodesWithUserScrollInProgress):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::isUserScrollProgress const):
(WebCore::ScrollingTreeScrollingNode::setUserScrollInProgress):
(WebCore::ScrollingTreeScrollingNode::setScrollSnapInProgress):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::isUserScrollInProgress const):

LayoutTests:

  • fast/scrolling/mac/adjust-scroll-snap-during-gesture-expected.txt: Added.
  • fast/scrolling/mac/adjust-scroll-snap-during-gesture.html: Added.
4:04 PM Changeset in webkit [264202] by Chris Dumez
  • 124 edits
    4 copies
    1 move
    79 adds
    3 deletes in trunk/LayoutTests

Resync web-platform-tests/webrtc from upstream
https://bugs.webkit.org/show_bug.cgi?id=214151

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/webrtc from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/webrtc/*: Updated.

LayoutTests:

  • tests-options.json:
3:41 PM Changeset in webkit [264201] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

[Bindings] Add default value support for union types in dictionary members
https://bugs.webkit.org/show_bug.cgi?id=214160

Reviewed by Sam Weinig.

Add default value support for union types in dictionary members. This is needed for the WebAudio specification:

"""
(AudioContextLatencyCategory or double) latencyHint = "interactive";
"""

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):

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

(WebCore::jsTestObjPrototypeFunctionOverloadWithOptionalUnion1Body):

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

(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/TestStandaloneDictionary.idl:
3:28 PM Changeset in webkit [264200] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Adopt the WebKit-specific PAC key and entitlements
https://bugs.webkit.org/show_bug.cgi?id=214162
<rdar://problem/65099687>

Reviewed by Geoffrey Garen.

Add the relevant entitlements for PAC use and exceptions on macOS. This will be
ignored on Intel, but will be a great thing on Apple Silicon!

  • Scripts/process-entitlements.sh:
2:54 PM Changeset in webkit [264199] by pvollan@apple.com
  • 11 edits
    4 moves in trunk

Move XPCEndpoint and XPCEndpointClient classes from WebCore to WebKit
https://bugs.webkit.org/show_bug.cgi?id=214099

Reviewed by Alex Christensen.

Source/WebCore:

These classes should not be in WebCore, but in WebKit, since they are only expected to be used there.

No new tests, since this patch is only moving source files.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/XPCEndpoint.h: Removed.
  • platform/cocoa/XPCEndpoint.mm: Removed.
  • platform/cocoa/XPCEndpointClient.h: Removed.
  • platform/cocoa/XPCEndpointClient.mm: Removed.

Source/WebKit:

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h:
  • Shared/Cocoa/XPCEndpoint.h: Copied from Source/WebCore/platform/cocoa/XPCEndpoint.h.
  • Shared/Cocoa/XPCEndpoint.mm: Copied from Source/WebCore/platform/cocoa/XPCEndpoint.mm.

(WebCore::XPCEndpoint::XPCEndpoint): Deleted.
(WebCore::XPCEndpoint::sendEndpointToConnection): Deleted.
(WebCore::XPCEndpoint::endpoint const): Deleted.

  • Shared/Cocoa/XPCEndpointClient.h: Copied from Source/WebCore/platform/cocoa/XPCEndpointClient.h.

(WebCore::XPCEndpointClient::~XPCEndpointClient): Deleted.

  • Shared/Cocoa/XPCEndpointClient.mm: Copied from Source/WebCore/platform/cocoa/XPCEndpointClient.mm.

(WebCore::XPCEndpointClient::setEndpoint): Deleted.
(WebCore::XPCEndpointClient::connection): Deleted.

  • UIProcess/Network/NetworkProcessProxyCocoa.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

Tools:

  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm:
2:36 PM Changeset in webkit [264198] by Antti Koivisto
  • 10 edits
    2 adds in trunk/LayoutTests/imported/w3c

Update css/selectors WPT tests for :is and :where
https://bugs.webkit.org/show_bug.cgi?id=214137

Reviewed by Chris Dumez.

Some more PASSes.

  • web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics-expected.txt:
  • web-platform-tests/css/selectors/attribute-selectors/attribute-case/semantics.html:
  • web-platform-tests/css/selectors/is-nested-expected.txt:
  • web-platform-tests/css/selectors/is-nested.html:
  • web-platform-tests/css/selectors/is-specificity-expected.txt:
  • web-platform-tests/css/selectors/is-specificity.html:
  • web-platform-tests/css/selectors/is-where-parsing-expected.txt: Added.
  • web-platform-tests/css/selectors/is-where-parsing.html: Added.
  • web-platform-tests/css/selectors/selectors-case-sensitive-001-expected.txt:
  • web-platform-tests/css/selectors/selectors-case-sensitive-001.html:
  • web-platform-tests/css/selectors/w3c-import.log:
2:25 PM Changeset in webkit [264197] by Chris Dumez
  • 21 edits
    30 copies
    19 moves
    38 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/url from upstream
https://bugs.webkit.org/show_bug.cgi?id=214145

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Resync web-platform-tests/url from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/url/*: Updated.

LayoutTests:

  • tests-options.json:
2:23 PM Changeset in webkit [264196] by aakash_jain@apple.com
  • 7 edits in trunk/Tools

Add EWS queues for tvOS and watchOS builders
https://bugs.webkit.org/show_bug.cgi?id=214147

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/ews-app/ews/views/statusbubble.py: Added status-bubbles for tvos and watchos queues.
  • BuildSlaveSupport/ews-build/config.json: Added watchos and tvos builders.
  • BuildSlaveSupport/ews-build/factories.py:

(watchOSBuildFactory):
(tvOSBuildFactory):

  • BuildSlaveSupport/ews-build/factories_unittest.py: Added unit-tests.
  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/steps.py:

(appendCustomBuildFlags): Added support for tvos and watchos.
(CompileWebKit.start): Ditto.
(PrintConfiguration.run): Ditto.

2:20 PM Changeset in webkit [264195] by BJ Burg
  • 2 edits in trunk/Source/WebKitLegacy/mac

REGRESSION(r217248): ASSERT_NOT_REACHED() in toWebFrameLoadType()
https://bugs.webkit.org/show_bug.cgi?id=214149

Reviewed by Joseph Pecoraro.

ASSERT_NOT_REACHED() is hit when the type is FrameLoadType::ReloadExpiredOnly. This happens
when remote inspection triggers a reload via InspectorPageAgent::reload() and the
'revalidateAllResources' optional argument is false or not specified.

  • WebView/WebFrame.mm:

(toWebFrameLoadType):
Remove the assert and add a note explaining why this load type that does not
naturally occur in WK1 may nonetheless be triggered while remote inspecting.

1:59 PM Changeset in webkit [264194] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit

[iOS] Conversation view messages in Mail are too small and scrollable
https://bugs.webkit.org/show_bug.cgi?id=214157
<rdar://problem/64788069>

Reviewed by Wenson Hsieh.

Revert the drive-by contentSize set optimization introduced in r262721.
iOS Mail relies on this delayed/late setContentSize call on WKScrollView (see rdar://problem/65277759).

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _setContentSizePreservingContentOffsetDuringRubberband:]):

1:44 PM Changeset in webkit [264193] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.28.3

WPE WebKit 2.28.3

1:44 PM Changeset in webkit [264192] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.3 release

.:

  • Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

  • wpe/NEWS: Add release notes for 2.28.3.
1:43 PM Changeset in webkit [264191] by Adrian Perez de Castro
  • 6 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Unreviewed non-unified build fixes.

No new tests needed.

  • SourcesWPE.txt: Add ScrollAnimationKinetic.cpp
  • rendering/RenderBlock.cpp: Add missing inclusion of ImageBuffer.h
  • svg/SVGClipPathElement.cpp: Ditto
  • workers/service/context/ServiceWorkerFetch.cpp: Add missing inclusion of

ServiceWorkerThread.h

  • xml/parser/XMLDocumentParserLibxml2.cpp: Add missinc inclusions of Page.h and

PageConsoleClient.h

1:01 PM Changeset in webkit [264190] by Simon Fraser
  • 8 edits
    2 adds in trunk

After a scroll gesture, content changes don't trigger re-snapping with scroll snap
https://bugs.webkit.org/show_bug.cgi?id=214123

Reviewed by Wenson Hsieh.

Source/WebCore:

ScrollController::m_inScrollGesture could get stuck as true after a scroll gesture, because
ScrollAnimatorMac::handleWheelEvent() didn't reliably call m_scrollController.handleWheelEvent() for
the event event based on the hokey shouldForwardWheelEventsToParent() code.

Fix by explicitly calling m_scrollController.updateGestureInProgressState() which maintains
m_inScrollGesture.

When m_inScrollGesture was stuck as true, ScrollableArea::updateScrollSnapState() would return early
because isScrollSnapInProgress() would return true. In addition,
ScrollController::isScrollSnapInProgress() was a lie for non-scroll-snapping scrollable areas, so
explicitly check for snap points there, using an explicit usesScrollSnap() function.

Rename some WheelEventStatus values to use "momentum" rather than "inertia".

Test: fast/scrolling/mac/adjust-scroll-snap-after-gesture.html

  • page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm:

(WebCore::ScrollingTreeScrollingNodeDelegateMac::handleWheelEvent):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::usesScrollSnap const):
(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/ScrollableArea.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::usesScrollSnap const):
(WebCore::ScrollController::isScrollSnapInProgress const):
(WebCore::ScrollController::snapRubberBand):
(WebCore::toWheelEventStatus):
(WebCore::operator<<):
(WebCore::ScrollController::shouldOverrideMomentumScrolling const):
(WebCore::ScrollController::scheduleStatelessScrollSnap):
(WebCore::ScrollController::statelessSnapTransitionTimerFired):
(WebCore::ScrollController::processWheelEventForScrollSnap):
(WebCore::ScrollController::updateGestureInProgressState):
(WebCore::ScrollController::scrollSnapTimerFired):
(WebCore::ScrollController::activeScrollSnapIndexForAxis const):
(WebCore::ScrollController::setActiveScrollSnapIndexForAxis):
(WebCore::ScrollController::setNearestScrollSnapIndexForAxisAndOffset):
(WebCore::ScrollController::setActiveScrollSnapIndicesForOffset):
(WebCore::ScrollController::shouldOverrideInertialScrolling const): Deleted.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::handleWheelEvent):

LayoutTests:

  • fast/scrolling/mac/adjust-scroll-snap-after-gesture-expected.txt: Added.
  • fast/scrolling/mac/adjust-scroll-snap-after-gesture.html: Added.
1:00 PM Changeset in webkit [264189] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] Remaining build fix after r264179

Like last revision, avoid "missing binary operator before(" errors
when WPE libraries are not installed.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::paint):

12:49 PM Changeset in webkit [264188] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Use /DELAYLOAD for mf.dll
https://bugs.webkit.org/show_bug.cgi?id=213330

Reviewed by Per Arne Vollan.

WinCairo failed to start up due to a missing dependency on some
versions of Windows in which Media Foundation is not available
such like Windows 10 N. Use delay load for Media Foundation. And,
check the availability.

  • PlatformWinCairo.cmake: Link with delayimp.lib. Added /DELAYLOAD linker options.
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::isAvailable): Check mf.dll is available.

12:46 PM Changeset in webkit [264187] by Wenson Hsieh
  • 11 edits in trunk

REGRESSION (r259840): Pressing Esc or ⌘+"." does not dismiss time picker on iOS
https://bugs.webkit.org/show_bug.cgi?id=214122
<rdar://problem/64940487>

Reviewed by Tim Horton.

Source/WebKit:

Prior to r259840, when presenting context menus for certain input types (i.e. "time" and "datetime-local") on
iOS, UIKit would tell the presented view controller's view (a UIDatePicker in this case) to become first
responder. As a result, WKContentView would resign first responder, which (by default) blurs the focused
element and dismisses the context menu. The result is thats time pickers would immediately dismiss upon
presentation.

To mitigate this, r259840 adopted the existing active focus retaining mechanism to temporarily decouple
WKContentView's first responder status from the currently focused form element. However, this also causes
-endEditingAndUpdateFocusAppearanceWithReason: to bail, due to self.webView._retainingActiveFocusedState
returning YES. This means that codepaths meant to immediately dismiss UI for the focused element (for example,
when pressing Escape on a hardware keyboard on iOS) will not be able to dismiss UI.

To fix this, push the flag that keeps track of whether we're relinquishing first responder to the focused
element down into WKContentView, and have WKContentView automatically stop relinquishing first responder to
the focused element in -[WKContentView accessoryDone].

Fixes an existing test: fast/forms/ios/dismiss-picker-using-keyboard.html

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

(-[WKContentView accessoryDone]):

Stop relinquishing focus to the focused element, so that form elements that require first responder can be
dismissed when triggering -accessoryDone (e.g. when pressing the Esc key on a hardware keyboard).

(-[WKContentView startRelinquishingFirstResponderToFocusedElement]):
(-[WKContentView stopRelinquishingFirstResponderToFocusedElement]):

Renamed from -preserveFocus and -releaseFocus, respectively. Also, made these methods idempotent using a new
BOOL flag, _isRelinquishingFirstResponderToFocusedElement.

(-[WKContentView preserveFocus]): Deleted.
(-[WKContentView releaseFocus]): Deleted.

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker controlBeginEditing]):
(-[WKDateTimePicker controlEndEditing]):

Use the renamed WKContentView methods, and also remove the _preservingFocus flag.

  • UIProcess/ios/forms/WKFormPopover.mm:

(-[WKRotatingPopover presentPopoverAnimated:]):
(-[WKRotatingPopover dismissPopoverAnimated:]):

Use the renamed WKContentView methods.

LayoutTests:

  • fast/forms/ios/dismiss-picker-using-keyboard.html:
  • fast/forms/ios/force-gregorian-calendar-for-credit-card-expiry.html:
  • fast/forms/ios/time-picker-value-change-expected.txt:
  • fast/forms/ios/time-picker-value-change.html:

Adjust a few layout tests to be compatible with date and time inputs.

  • resources/ui-helper.js:

(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
(window.UIHelper.waitForInputSessionToDismiss):

12:44 PM Changeset in webkit [264186] by Truitt Savell
  • 3 edits in trunk/LayoutTests

REGRESSION (r264117): [ Mac iOS ] imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/blob.https.html
https://bugs.webkit.org/show_bug.cgi?id=214155

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
12:16 PM Changeset in webkit [264185] by BJ Burg
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r262302): ITMLKit debuggables in listings are missing a title, use UUID instead
https://bugs.webkit.org/show_bug.cgi?id=214153

Reviewed by Devin Rousso.

  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::listingForInspectionTarget const):
Looks like this is due to copypasta.

11:51 AM Changeset in webkit [264184] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Stop telemetry collection for the 'hw.cpu64bit_capable' sysctl
https://bugs.webkit.org/show_bug.cgi?id=214148
<rdar://problem/65222086>

Reviewed by Per Arne Vollan.

Telemetry shows that SQLite3 on iOS-based builds needs read access to the
'hw.cpu64bit_capable' sysctl. We can stop logging this.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
11:38 AM Changeset in webkit [264183] by Chris Dumez
  • 109 edits
    4 copies
    79 adds
    13 deletes in trunk/LayoutTests

Resync web-platform-tests/workers from upstream
https://bugs.webkit.org/show_bug.cgi?id=214146

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Resync web-platform-tests/workers from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/workers/*: Updated.

LayoutTests:

  • tests-options.json:
11:29 AM Changeset in webkit [264182] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Local internal builds fail on Apple Silicon (building yasm)
https://bugs.webkit.org/show_bug.cgi?id=214129

Reviewed by Dan Bernstein.

  • Scripts/webkitdirs.pm:

(determineNativeArchitecture):
Build for arm64e when building with the internal SDK.
Importantly, this matches the ARCHS_STANDARD_* build settings, so this way we
won't set an ARCH that isn't in VALID_ARCHS for projects who use ARCHS_STANDARD_*.

(determineXcodeSDK):
Fall back to "macosx", so that other code can correctly identify that we're building for macOS.
This logic needs to be here, instead of in the caller (who could assume undefined means macOS),
because we want the ".internal" search to take place as well.

11:21 AM Changeset in webkit [264181] by Chris Dumez
  • 36 edits in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/webmessaging from upstream
https://bugs.webkit.org/show_bug.cgi?id=214143

Reviewed by Sam Weinig.

Resync web-platform-tests/webmessaging from upstream cef93b58e7cf31f1d47.

  • resources/import-expectations.json:
  • web-platform-tests/webmessaging/*: Updated.
10:33 AM Changeset in webkit [264180] by calvaris@igalia.com
  • 2 edits in trunk/Source/WTF

Simplify BoxPtr::create
https://bugs.webkit.org/show_bug.cgi?id=214144

Reviewed by Darin Adler.

  • wtf/BoxPtr.h:

(WTF::createBoxPtr): Use the alias instead of the unrolled type.

10:17 AM Changeset in webkit [264179] by Lauro Moura
  • 2 edits in trunk/Source/WebKit

[GTK] Buildfix when WPEBackend-fdo is not available

Using the && operator for WPE_FDO_CHECK_VERSION was giving the
"missing binary operator before(" error as the macro was not defined
when the backend is not installed, like in the LTS/Debian vanilla
bots.

Unreviewed build fix.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::AcceleratedBackingStoreWayland::snapshot):

10:06 AM Changeset in webkit [264178] by pvollan@apple.com
  • 21 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

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

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Added HAVE define for determining if the class LSDatabaseContext is present.

  • wtf/PlatformHave.h:
9:57 AM Changeset in webkit [264177] by eric.carlson@apple.com
  • 10 edits in trunk/Source

Reset AVSystemController_PIDToInheritApplicationStateFrom when mediaserverd dies
https://bugs.webkit.org/show_bug.cgi?id=214112
<rdar://problem/65229214>

Reviewed by Jer Noble.

Source/WebCore:

Tested manually because this can only be tested by killing a system process while
capturing on iOS hardware.

  • platform/audio/cocoa/MediaSessionManagerCocoa.h: Add task queue accessor.

(WebCore::MediaSessionManagerCocoa::taskQueue):

  • platform/audio/ios/MediaSessionHelperIOS.h:

(WebCore::MediaSessionHelperClient::mediaServerConnectionDied):

  • platform/audio/ios/MediaSessionHelperIOS.mm:

(MediaSessionHelperiOS::mediaServerConnectionDied): Renamed from carPlayServerDied.
Inform clients if we previously set the PID proxy.
(-[WebMediaSessionHelper initWithCallback:]): Call mediaServerConnectionDied.
(-[WebMediaSessionHelper mediaServerConnectionDied:]): Ditto.
(MediaSessionHelperiOS::carPlayServerDied): Deleted.
(-[WebMediaSessionHelper carPlayServerDied:]): Deleted.

  • platform/audio/ios/MediaSessionManagerIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::mediaServerConnectionDied): Call providePresentingApplicationPID
if we previously set the PID proxy.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::captureSessionRuntimeError): Don't try to restart the
session immediately since this is called directly from the notification handler.

Source/WebKit:

  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.cpp:

(WebKit::RemoteMediaSessionHelperProxy::providePresentingApplicationPID): Don't bother
tracking whether or not providePresentingApplicationPID has been called, the session
helper already does that.

  • GPUProcess/media/ios/RemoteMediaSessionHelperProxy.h:
9:31 AM Changeset in webkit [264176] by commit-queue@webkit.org
  • 22 edits
    4 copies in trunk

Set Restrictions for channelCount, channelCountMode for PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213992

Patch by Clark Wang <clark_wang@apple.com> on 2020-07-09
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined tests that now pass.

  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:

Source/WebCore:

Added setter methods to PannerNode that handle exceptions for channelCount, channelCountMode, according to spec:
https://www.w3.org/TR/webaudio/#dom-audionode-channelcount.
Moved ChannelCount, ChannelCountMode enums into their own files.

Re-baselined tests that now pass.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::AudioNode):
(WebCore::AudioNode::setChannelCount):
(WebCore::AudioNode::setChannelCountMode):
(WebCore::AudioNode::setChannelInterpretation):
(WebCore::AudioNode::channelCount): Deleted.
(WebCore::AudioNode::channelCountMode): Deleted.
(WebCore::AudioNode::channelInterpretation): Deleted.

  • Modules/webaudio/AudioNode.h:

(WebCore::AudioNode::channelCount const):
(WebCore::AudioNode::channelCountMode const):
(WebCore::AudioNode::channelInterpretation const):
(WebCore::AudioNode::internalChannelCountMode const): Deleted.
(WebCore::AudioNode::internalChannelInterpretation const): Deleted.

  • Modules/webaudio/AudioNode.idl:
  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::numberOfChannels const):
(WebCore::AudioNodeInput::bus):
(WebCore::AudioNodeInput::sumAllConnections):
(WebCore::AudioNodeInput::pull):

  • Modules/webaudio/AudioNodeOptions.h:
  • Modules/webaudio/AudioNodeOptions.idl:
  • Modules/webaudio/ChannelCountMode.h: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.h.
  • Modules/webaudio/ChannelCountMode.idl: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.idl.
  • Modules/webaudio/ChannelInterpretation.h: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.h.
  • Modules/webaudio/ChannelInterpretation.idl: Copied from Source/WebCore/Modules/webaudio/AudioNodeOptions.idl.
  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::ConvolverNode):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::create):
(WebCore::PannerNode::setChannelCount):
(WebCore::PannerNode::setChannelCountMode):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/WebKitAudioPannerNode.cpp:

(WebCore::WebKitAudioPannerNode::WebKitAudioPannerNode):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/AudioBus.cpp:

(WebCore::AudioBus::copyFrom):
(WebCore::AudioBus::sumFrom):

  • platform/audio/AudioBus.h:
9:22 AM Changeset in webkit [264175] by aboya@igalia.com
  • 9 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove m_appendPipelinesMap
https://bugs.webkit.org/show_bug.cgi?id=214132

Reviewed by Xabier Rodriguez-Calvar.

m_appendPipelinesMap was owned by MediaPlayerPrivateGStreamerMSE but
was only used by MediaPlayerPrivateGStreamerMSE to clear it during
destruction, while the other uses were in
MediaSourceClientGStreamerMSE.

After analysis, it was found keeping a HashMap of AppendPipelines is not
necessary. An AppendPipeline only needs to be used by the SourceBuffer
receiving the muxed data: making AppendPipeline a member of
SourceBufferPrivateGStreamer reflects this dependency in a much
clearer way. No need for a HashMap of AppendPipeline's.

Moreso, there are no other users of AppendPipeline, which means
AppendPipeline doesn't need to be ref counted. This patch removes that
feature, using std::unique_ptr<AppendPipeline> for ownership instead.

This patch is a refactor: it doesn't introduce behavior changes and
it's covered by existing tests.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::abort):
(WebCore::MediaSourceClientGStreamerMSE::resetParserState):
(WebCore::MediaSourceClientGStreamerMSE::append):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):

  • platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:

(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::create):
(WebCore::SourceBufferPrivateGStreamer::SourceBufferPrivateGStreamer):
(WebCore::SourceBufferPrivateGStreamer::finishCreation):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
9:07 AM Changeset in webkit [264174] by Chris Dumez
  • 125 edits
    3 copies
    2 moves
    10 adds
    5 deletes in trunk/LayoutTests

Resync web-platform-tests/xhr from upstream
https://bugs.webkit.org/show_bug.cgi?id=214105

Reviewed by Geoff Garen.

Resync web-platform-tests/xhr from upstream cef93b58e7cf31f1d47cc.

  • web-platform-tests/xhr/*: Updated.
9:00 AM Changeset in webkit [264173] by Caio Lima
  • 4 edits in trunk/JSTests

[JSC][32-bits] Test gardening July 9th
https://bugs.webkit.org/show_bug.cgi?id=214138

Unreviewed Gardening.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:
  • stress/butterfly-zero-unused-butterfly-properties.js:
  • stress/check-stack-overflow-before-value-profiling-arguments.js:
8:55 AM Changeset in webkit [264172] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark ref-test as flaky on iOS since import in r263987.

  • platform/ios-wk2/TestExpectations:
8:41 AM Changeset in webkit [264171] by Chris Dumez
  • 2 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline fetch test after resync in r264144.

  • web-platform-tests/fetch/content-encoding/bad-gzip-body.any.worker-expected.txt:
8:15 AM Changeset in webkit [264170] by Wenson Hsieh
  • 11 edits
    2 adds in trunk

[iOS] Occasional crash under -[UIView _setViewDelegate:] when presenting date and time pickers
https://bugs.webkit.org/show_bug.cgi?id=214120
<rdar://problem/65246918>

Reviewed by Darin Adler.

Source/WebKit:

This crash happens when attempting to present a date picker (<input type=date>) immediately after dismissing
it. We encounter an Objective-C exception thrown by UIKit, due to the WKDateTimeContextMenuViewController's
view (the UIDatePicker) being presented while it is still owned by the preview view controller. We often avoid
this crash because the WKDateTimeContextMenuViewController is usually only owned by WKDateTimePicker, so
when we set _viewController to a new instance of WKDateTimeContextMenuViewController, the old view
controller is destroyed, and thus no longer owns the UIDatePicker view.

However, it's possible for anything (e.g. animation blocks in UIKit) to cause the old view controller to live
past the creation of the new view controller. If this happens, when we go and call -setView: on the new view
controller with the date picker view, the date picker view may still be the view of the old controller, and we
end up crashing.

To fix this, explicitly unload the old view controller's view before attempting to create the new view
controller.

Test: fast/forms/ios/show-and-dismiss-date-input.html

  • UIProcess/ios/forms/WKDateTimeInputControl.mm:

(-[WKDateTimePicker contextMenuInteraction:configurationForMenuAtLocation:]):
(-[WKDateTimePicker contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
(-[WKDateTimePicker contextMenuInteraction:willEndForConfiguration:animator:]):

Make it possible to test date and time picker presentation and dismissal by calling into the private testing-
only subclassing hooks on WKWebView when we finish presenting and dismissing the date picker context menu.

(-[WKDateTimePicker removeContextMenuInteraction]):

Tools:

Implement additional support for testing date and time pickers presented using context menus on iOS 14.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::isShowingContextMenu const):

  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _didShowContextMenu]):
(-[TestRunnerWKWebView _didDismissContextMenu]):

  • WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::setDidDismissContextMenuCallback):

Call the completion callback with CallbackTypeDidDismissContextMenu, rather than
CallbackTypeDidEndFormControlInteraction.

(WTR::UIScriptControllerIOS::isShowingContextMenu const):

Add a new script controller to ask whether we're currently presenting a context menu. This is useful in the case
where we want to wait until we're no longer showing a context menu, since we'll either immediately invoke script
completion, or stash a completion callback on didDismissContextMenuCallback to invoke script completion after
the context menu is finished dismissing.

LayoutTests:

Add a new layout test to verify that presenting a date picker twice does not result in a crash.

  • fast/forms/ios/show-and-dismiss-date-input-expected.txt: Added.
  • fast/forms/ios/show-and-dismiss-date-input.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.activateAndWaitForInputSessionAt.return.new.Promise.):

Teach this helper method to wait for context menus as well (for the case of date and time pickers on iOS).

(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise.):
(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
(window.UIHelper.waitForInputSessionToDismiss):

Likewise, teach this to wait for context menu dismissal.

(window.UIHelper.waitForContextMenuToHide.return.new.Promise):
(window.UIHelper.waitForContextMenuToHide):

Add a new helper to wait for context menus to hide.

7:33 AM Changeset in webkit [264169] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Verification] Use the table wrapper box's margin when checking the table box
https://bugs.webkit.org/show_bug.cgi?id=214119

Reviewed by Darin Adler.

Source/WebCore:

Table margins are propagated to the table wrapper box.

Test: fast/layoutformattingcontext/table-with-margin-simple.html

  • layout/Verification.cpp:

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

LayoutTests:

  • fast/layoutformattingcontext/table-with-margin-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-margin-simple.html: Added.
7:10 AM Changeset in webkit [264168] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK] Add support for shm buffers in AcceleratedBackingStoreWayland when using the WPE renderer
https://bugs.webkit.org/show_bug.cgi?id=214135

Reviewed by Žan Doberšek.

It's available since wpe-fdo 1.7.0. This makes accelerated compositing work in platforms where
EGL_WL_bind_wayland_display is not available. It can also be forced with the environment variable
LIBGL_ALWAYS_SOFTWARE.

  • UIProcess/glib/WebProcessPoolGLib.cpp:

(WebKit::WebProcessPool::platformInitializeWebProcess): Use AcceleratedBackingStoreWayland::checkRequirements()
instead of calling wpe_fdo_initialize_for_egl_display() again.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::tryInitializeEGL): Moved EGL specific initialization here.
(WebKit::tryInitializeSHM): Added SHM initialization.
(WebKit::AcceleratedBackingStoreWayland::checkRequirements): Try to initialize EGL first and then SHM if EGL failed.
(WebKit::AcceleratedBackingStoreWayland::AcceleratedBackingStoreWayland): Create a EGL exportable only when
using EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::~AcceleratedBackingStoreWayland): Release EGL resources only when using
EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::unrealize): Ditto.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Return early when not using EGL implementation.
(WebKit::AcceleratedBackingStoreWayland::update): Add implementation for the SHM case.
(WebKit::AcceleratedBackingStoreWayland::displayImage): Renamed.
(WebKit::AcceleratedBackingStoreWayland::displayBuffer): SHM implementation, copy the shm buffer into a cairo
image surface.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureTexture):
(WebKit::AcceleratedBackingStoreWayland::downloadTexture):
(WebKit::AcceleratedBackingStoreWayland::snapshot): Handle the SHM case.
(WebKit::AcceleratedBackingStoreWayland::paint): Ditto.

  • UIProcess/gtk/AcceleratedBackingStoreWayland.h:
7:02 AM Changeset in webkit [264167] by commit-queue@webkit.org
  • 21 edits
    7 deletes in trunk/Source

Unreviewed, reverting r264148.
https://bugs.webkit.org/show_bug.cgi?id=214136

Introduced layout test failures

Reverted changeset:

"[Cocoa] Update Launch Services database in the WebContent
process from the Network process"
https://bugs.webkit.org/show_bug.cgi?id=213794
https://trac.webkit.org/changeset/264148

5:30 AM Changeset in webkit [264166] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't cache duration in MediaSourceClientGStreamerMSE
https://bugs.webkit.org/show_bug.cgi?id=214128

Reviewed by Xabier Rodriguez-Calvar.

MediaSource should be the single source of truth for the duration of
the MediaSource, and querying it to MediaSource is efficient enough
(trivial getter). There is no reason for MediaSourceClientGStreamerMSE
to store a separate m_duration field.

This patch introduces no behavior changes.

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::MediaSourceClientGStreamerMSE):
(WebCore::MediaSourceClientGStreamerMSE::duration):
(WebCore::MediaSourceClientGStreamerMSE::durationChanged):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
4:43 AM Changeset in webkit [264165] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Unable to build without Internet connection
https://bugs.webkit.org/show_bug.cgi?id=213920

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-09
Reviewed by Sergio Villar Senin.

Set the flathub ostree repo url explicitely in order to avoid retrieving it from the
flatpakrepo remote file. This is unlikely to change.

  • flatpak/flatpakutils.py:

(WebkitFlatpak._get_packages):

4:20 AM Changeset in webkit [264164] by aboya@igalia.com
  • 6 edits in trunk/Source/WebCore

[MSE][GStreamer] Make duration changes one way
https://bugs.webkit.org/show_bug.cgi?id=214083

Reviewed by Xabier Rodriguez-Calvar.

Until now, AppendPipeline emitted duration changes for the
MediaSource. This was done with
MediaSourcePrivateClient::durationChanged(const MediaTime&), a
method which was added to MediaSource in r207889 just to implement
this in the GStreamer port.

This is not necessary though. AppendPipeline only needs to inform
MediaSource of the duration of the initialization segment, and
MediaSource will in turn set duration from the multi-platform code.

This patch removes MediaSourcePrivateClient::durationChanged(const
MediaTime&) from the multi-platform API, along with its usages in the
GStreamer port, giving the multi-platform code sole responsibility on
duration changes.

This is a code cleanup and it's covered by existing tests.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::durationChanged): Deleted.

  • Modules/mediasource/MediaSource.h:
  • platform/graphics/MediaSourcePrivateClient.h:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::didReceiveInitializationSegment):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:

(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):

2:36 AM Changeset in webkit [264163] by calvaris@igalia.com
  • 6 edits
    2 adds in trunk

[WTF] Implement new BoxPtr alias
https://bugs.webkit.org/show_bug.cgi?id=212379

Reviewed by Darin Adler.

Source/WTF:

Added BoxPtr.h that includes BoxPtr<T> as alias of
Box<std::unique_ptr<T>>. We discussed about this class on bugzilla
and we agreed on this alias being the best idea. Apart from the
alias I'm adding a couple of helpers like a create function and
the operator== and operator!=.

Tests: BoxPtr API tests added.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/BoxPtr.h: Added.

(WTF::createBoxPtr):
(WTF::operator==):
(WTF::operator!=):

  • wtf/CMakeLists.txt:

Tools:

Tests for BoxPtr.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/BoxPtr.cpp: Added.

(TestWebKitAPI::BoxPtrLogger::create):
(TestWebKitAPI::BoxPtrLogger::BoxPtrLogger):
(TestWebKitAPI::boxPtrLoggerDeleter):
(TestWebKitAPI::TEST):

2:24 AM Changeset in webkit [264162] by Philippe Normand
  • 5 edits in trunk

[GStreamer][MSE] AV1 support
https://bugs.webkit.org/show_bug.cgi?id=207547

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

If only the av1dec decoder is available, consider AV1 decoding
support as disabled, because this plugin performs really badly.
However, if any other AV1 decoder is present, such as the
dav1d-based Rust decoder for instance, consider AV1 support as
enabled.

These checks are now performed by both RegistryScanner instances,
for MSE and non-MSE players.

  • platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:

(WebCore::GStreamerRegistryScanner::hasElementForMediaType const):
(WebCore::GStreamerRegistryScanner::initialize):

  • platform/graphics/gstreamer/GStreamerRegistryScanner.h:

LayoutTests:

  • platform/glib/TestExpectations: Mark media/media-can-play-av1.html as failing until the

Flatpak SDK ships gst-plugins-rs.

1:29 AM Changeset in webkit [264161] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Remove orphan code in SourceBufferPrivateGStreamer::append()
https://bugs.webkit.org/show_bug.cgi?id=214086

Reviewed by Xabier Rodriguez-Calvar.

A refactor in r240784 missed this line, which was unreachable code
before and should have removed.

Instead, it has been run every time after sending an append to the
AppendPipeline, and it just happens it doesn't have visible
consequences.

This patch cleans that up removing that line. No visible behavior
changes are introduced.

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::append):

1:23 AM Changeset in webkit [264160] by Alexey Shvayka
  • 3 edits
    1 add in trunk

ErrorInstance::finishCreation() puts "message" twice, with different attributes
https://bugs.webkit.org/show_bug.cgi?id=214089

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/error-source-appender.js: Added.

Source/JavaScriptCore:

This change refactors appendSourceToError() to return new message, making it almost pure
and eliminating extra JSString -> String -> JSString conversion and {get,put}Direct() calls
from ErrorInstance::finishCreation(). Also, moves null message check as early as possible.

Removed putDirect() call didn't pass PropertyAttribute::DontEnum. An implementation detail,
that is about to change in https://webkit.org/b/142933, prevented "message" property from
beind redefined with PropertyAttribute::None.

No behavior change. Advances provided microbenchmark by 5%.

  • runtime/ErrorInstance.cpp:

(JSC::appendSourceToErrorMessage):
(JSC::ErrorInstance::finishCreation):
(JSC::appendSourceToError): Deleted.

1:23 AM Changeset in webkit [264159] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.28.3

WebKitGTK 2.28.3

1:22 AM Changeset in webkit [264158] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.3 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.28.3.
12:57 AM Changeset in webkit [264157] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[SOUP] Initialize m_allowCookies and m_acceptEncoding in ResourceRequest::updateFromSoupMessage
https://bugs.webkit.org/show_bug.cgi?id=214077

Reviewed by Michael Catanzaro.

Check if SOUP_TYPE_CONTENT_DECODER and SOUP_TYPE_COOKIE_JAR are disabled in the given message.

  • platform/network/soup/ResourceRequestSoup.cpp:

(WebCore::ResourceRequest::updateFromSoupMessage):

12:57 AM Changeset in webkit [264156] by Carlos Garcia Campos
  • 11 edits
    2 deletes in trunk

[SOUP] Add support for HTTPCookieAcceptPolicy::OnlyFromMainDocumentDomain
https://bugs.webkit.org/show_bug.cgi?id=213954

Reviewed by Michael Catanzaro.

Source/WebCore:

Handle both OnlyFromMainDocumentDomain and ExclusivelyFromMainDocumentDomain.

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookieAcceptPolicy):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled):

Source/WebKit:

Use ExclusivelyFromMainDocumentDomain for WEBKIT_COOKIE_POLICY_ACCEPT_NO_THIRD_PARTY instead of
OnlyFromMainDocumentDomain.

  • UIProcess/API/glib/WebKitCookieManager.cpp:

(toWebKitCookieAcceptPolicy):
(toHTTPCookieAcceptPolicy):

  • UIProcess/WebProcessPool.h:

Tools:

Update libsoup to version 2.71.0.

  • buildstream/elements/sdk/libsoup.bst:
  • gtk/jhbuild.modules:

LayoutTests:

Update test expectations.

  • platform/glib/TestExpectations:
  • platform/glib/http/tests/websocket/tests/hybi/websocket-allowed-setting-cookie-as-third-party-expected.txt: Removed.
  • platform/glib/http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Removed.
  • platform/gtk/TestExpectations:
12:01 AM Changeset in webkit [264155] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r263388 - REGRESSION(r258741): [GTK] anchor-file-blob-download-includes-backslash.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209329

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Sanitize the suggested filename. We replace characters that can be problematic in filenames with '_' to match
what Chromium and Firefox do.

  • platform/network/soup/ResourceResponseSoup.cpp:

(WebCore::sanitizeFilename):
(WebCore::ResourceResponse::platformSuggestedFilename const):

LayoutTests:

Rebaseline tests.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-doublequote-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-slashes-expected.txt:
12:01 AM Changeset in webkit [264154] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28

Merge r258741 - Sanitize suggested download filename received from web process
https://bugs.webkit.org/show_bug.cgi?id=209300
<rdar://problem/59487723>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-03-19
Reviewed by Chris Dumez.

Source/WebKit:

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::decideDestinationWithSuggestedFilenameAsync):

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash-expected.txt:
  • fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-backslash.html:
12:01 AM Changeset in webkit [264153] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF

Merge r264015 - [GTK] WebProcess hangs when browsing GitHub
https://bugs.webkit.org/show_bug.cgi?id=213970

Reviewed by Sergio Villar Senin.

Use a lower priority for LayerFlushTimer and DisplayRefreshMonitorTimer. We were using a very high priority for
drawing with the idea of keeping a good rendering performance without being affected by other timers. The
problem is that animations can be controlled by timers, so we need to ensure that MainThreadSharedTimer has
higher priority than drawing.

  • wtf/glib/RunLoopSourcePriority.h: Use 110 for LayerFlushTimer and DisplayRefreshMonitorTimer.

Jul 8, 2020:

11:30 PM Changeset in webkit [264152] by ysuzuki@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] B3 PureCSE should ignore values which are moved to new BasicBlock
https://bugs.webkit.org/show_bug.cgi?id=214115
<rdar://problem/65189470>

Reviewed by Saam Barati.

We are performing "Select" specialization like this.

BB#target

...
@a = Select(@p, @x, 42)
@b = Add(@a, 35)
Check(@b)
@c = ...

becomes this:

BB#predecessor

...
Branch(@p, #truecase, #falsecase)

BB#truecase:

@b_truecase = Add(@x, 35)
Check(@b_truecase)
Upsilon(@x, a)
Upsilon(@b_truecase,
b)
Jump(#continuation)

BB#falsecase:

@b_falsecase = Add(42, 35)
Check(@b_falsecase)
Upsilon(42, a)
Upsilon(@b_falsecase,
b)
Jump(#continuation)

BB#continuation:

@a = Phi()
@b = Phi()
Jump(#target)

BB#target

@c = ...

In the above transformation, we create a new BasicBlock and move @a and @b to that one. This is good since we do not need to rewrite all the use of @a and @b.
However, this confuses PureCSE since @a and @b point to a BasicBlock (BB#continuation) which is not inserted into the graph yet.

This patch changes PureCSE so that it ignores values which owners are not inserted yet.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::isInserted const):

  • b3/B3GenericBlockInsertionSet.h:

(JSC::B3::GenericBlockInsertionSet::insert):

  • b3/B3PureCSE.cpp:

(JSC::B3::PureCSE::findMatch):
(JSC::B3::PureCSE::process):

  • b3/air/AirBasicBlock.h:
11:11 PM Changeset in webkit [264151] by Simon Fraser
  • 12 edits in trunk/Source/WebCore

Allow ScrollableArea to ask if a user scroll is in progress
https://bugs.webkit.org/show_bug.cgi?id=214121

Reviewed by Wenson Hsieh.

Work towards fixing scrolling stutters on layouting pages using scroll snap, like tesla.com.

ScrollableArea::updateScrollSnapState(), which happens as a result of layout, should not set a new
scroll position if a user scroll is in progress. ScrollController already tracks m_inScrollGesture,
so in the first instance just refactor the code to return that. Future changes will check
for scrolling thread activity.

  • page/FrameView.cpp:

(WebCore::FrameView::isUserScrollInProgress const):
(WebCore::FrameView::isRubberBandInProgress const):

  • page/FrameView.h:
  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::ScrollAnimator::isUserScrollInProgress const):

  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::isUserScrollInProgress const):

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

(WebCore::ScrollController::isUserScrollInProgress const):

  • platform/mac/ScrollAnimatorMac.h:
  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::ScrollAnimatorMac::isUserScrollInProgress const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::isUserScrollInProgress const):
(WebCore::RenderLayer::isRubberBandInProgress const):

  • rendering/RenderLayer.h:
11:10 PM Changeset in webkit [264150] by Lauro Moura
  • 1 edit
    8 deletes in trunk/LayoutTests/imported/w3c

Unreviewed. Remove uneeded the-offscreen-canvas files after update.

The HTML tests for these expectations were removed in r264117.

Also removing two HTML placeholders for already removed JS files from
the same revision.

Unreviewed test gardening.

  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.commit-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.constructor.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker-expected.txt: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.getcontext.worker.html: Removed.
  • web-platform-tests/html/canvas/offscreen/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen-expected.txt: Removed.
11:00 PM Changeset in webkit [264149] by Lauro Moura
  • 3 edits
    4 adds in trunk/LayoutTests

[GTK][WPE] Gardening after latest wpt resyncs

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/imported/w3c/web-platform-tests/fetch/redirect-navigate/preserve-fragment-expected.txt: Added.
  • platform/glib/imported/w3c/web-platform-tests/fetch/security/embedded-credentials.tentative.sub-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/flex-expected.txt: Added.
10:24 PM Changeset in webkit [264148] by pvollan@apple.com
  • 21 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

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

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

Added HAVE define for determining if the class LSDatabaseContext is present.

  • wtf/PlatformHave.h:
8:19 PM Changeset in webkit [264147] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Implementation of AXIsolatedObject::setSelectedVisiblePositionRange.
https://bugs.webkit.org/show_bug.cgi?id=214118

Reviewed by Chris Fleizach.

Covered by test: accessibility/mac/selected-visible-position-range.html.

Implemented AXIsolatedObject::setSelectedVisiblePositionRange() and
selection() by forwarding the call to the associated AX object.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selection const):
(WebCore::AXIsolatedObject::setSelectedVisiblePositionRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
call to the backing object should happen on the main thread since it
takes a VisiblePositionRange parameter.

8:19 PM Changeset in webkit [264146] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Clean up time values in ScrollController
https://bugs.webkit.org/show_bug.cgi?id=214117

Reviewed by Wenson Hsieh.

ScrollController used a mixture of [NSDate timeIntervalSinceReferenceDate], [NSProcessInfo processInfo].systemUptime
and wheelEvent.timestamp().secondsSinceEpoch(). Standardize on Seconds/MonotonicTime/WallTime.

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

(WebCore::elasticDeltaForTimeDelta):
(WebCore::ScrollController::handleWheelEvent):
(WebCore::ScrollController::snapRubberBandTimerFired):
(WebCore::ScrollController::snapRubberBand):

7:49 PM Changeset in webkit [264145] by Chris Dumez
  • 53 edits
    3 copies
    41 adds in trunk/LayoutTests/imported/w3c

Resync web-platform-tests/websockets from upstream
https://bugs.webkit.org/show_bug.cgi?id=214107

Reviewed by Sam Weinig.

Resync web-platform-tests/websockets from upstream cef93b58e7cf31f1d47cc.

  • web-platform-tests/websockets/*: Updated.
7:47 PM Changeset in webkit [264144] by Chris Dumez
  • 159 edits
    10 copies
    7 moves
    136 adds
    7 deletes in trunk/LayoutTests

Resync web-platform-tests/fetch from upstream
https://bugs.webkit.org/show_bug.cgi?id=214111

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync web-platform-tests/fetch from upstream cef93b58e7cf31f1d47.

  • web-platform-tests/fetch/*: Updated.

LayoutTests:

  • tests-options.json:
6:20 PM Changeset in webkit [264143] by beidson@apple.com
  • 6 edits in trunk/Source

Aggressively prime GameController.framework gamepad provider.
https://bugs.webkit.org/show_bug.cgi?id=214094

Reviewed by Darin Adler.

Source/WebCore:

GameController.framework gets itself going by listening for application activation,
assuming that it is hard linked.

Soft linking breaks this.

There's an SPI to manually kickstart it.

Also add some logging I'd added while exploring issues around this.

  • platform/gamepad/cocoa/GameControllerGamepadProvider.h:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:

(WebCore::GameControllerGamepadProvider::controllerDidConnect):
(WebCore::GameControllerGamepadProvider::prewarmGameControllerDevicesIfNecessary):
(WebCore::GameControllerGamepadProvider::startMonitoringGamepads):

  • platform/gamepad/cocoa/GameControllerSPI.h:

Source/WebKit:

  • WebProcess/Gamepad/WebGamepadProvider.cpp:

(WebKit::WebGamepadProvider::gamepadConnected):
(WebKit::WebGamepadProvider::gamepadDisconnected):
(WebKit::WebGamepadProvider::gamepadActivity):

5:14 PM Changeset in webkit [264142] by stephan.szabo@sony.com
  • 3 edits in trunk/Tools

[Windows] Fix errors from calls to uname when not available
https://bugs.webkit.org/show_bug.cgi?id=214101

Reviewed by Darin Adler.

As bare windows doesn't default to having uname, avoid calls
to it for architecture determination.

  • Scripts/webkitdirs.pm: Do not call uname on windows (non-cygwin) perl
  • Scripts/webkitpy/common/system/platforminfo.py: Do not call uname for windows (non-cygwin) python, os.uname() also doesn't necessarily exist there, so use platform.uname() instead.
4:47 PM Changeset in webkit [264141] by commit-queue@webkit.org
  • 19 edits
    7 deletes in trunk/Source

Unreviewed, reverting r264132 and r264139.
https://bugs.webkit.org/show_bug.cgi?id=214108

Introduced assert failure.

Reverted changesets:

"[Cocoa] Update Launch Services database in the WebContent
process from the Network process"
https://bugs.webkit.org/show_bug.cgi?id=213794
https://trac.webkit.org/changeset/264132

"Unreviewed build fix attempt after r264132."
https://trac.webkit.org/changeset/264139

4:15 PM Changeset in webkit [264140] by dino@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed. Remove some mentions of non-existant files in expectations.

3:57 PM Changeset in webkit [264139] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed build fix attempt after r264132.

  • pal/spi/cocoa/LaunchServicesSPI.h:
3:07 PM Changeset in webkit [264138] by Chris Dumez
  • 6 edits in trunk

ASSERTION FAILURE: Completion handlers not invalidated when WebPage::~WebPage() invoked navigating to docs.google.com and signing in
https://bugs.webkit.org/show_bug.cgi?id=214098
<rdar://problem/64848288>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure the WebPage destructor calls its "markLayersAsVolatile" CompletionHandlers before destroying
them.

Change is covered by new API test.

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

(-[WKWebView _processWillSuspendForTesting:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::~WebPage):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSuspension.mm:

(TEST):

2:59 PM Changeset in webkit [264137] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.1.2

Tag Safari-610.1.21.1.2.

2:46 PM Changeset in webkit [264136] by weinig@apple.com
  • 27 edits
    1 add in trunk

Part 3 of SimpleColor and SRGBA<uint8_t> are essentially the same - let's converge them
https://bugs.webkit.org/show_bug.cgi?id=214082

Reviewed by Darin Adler.

Source/WebCore:

  • Replaces all uses of SimpleColor that are not implementation details of Color, with SRGBA<uint8_t>.
  • Adds ColorBuilder<T> to allow maintaining the syntax SimpleColor for constant colors. e.g:

Color color = Color::yellow.colorWithAlpha(128);

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

Add ColorBuilder.h

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::semanticColor const):

  • platform/graphics/Color.h:

(WebCore::Color::Color):
(WebCore::Color::asSimple const):
(WebCore::Color::setSimpleColor):
(WebCore::Color::isBlackColor):
(WebCore::Color::isWhiteColor):
(WebCore::Color::encode const):
(WebCore::Color::decode):

  • Make constructor taking a SimpleColor private.
  • Add / modifiy constructors to take SRGBA<uint8_t>.
  • Make setSimpleColor() take a SRGBA<uint8_t> (this will be renamed along with other aspects of Color's internals in a subsequent change).
  • Update calls that still need SimpleColor to use an explicit construction from SRGBA<uint8_t>.
  • platform/graphics/ColorBuilder.h: Added.

(WebCore::ColorBuilder::ColorBuilder):
(WebCore::ColorBuilder::color const):
(WebCore::ColorBuilder::colorWithAlpha const):
Added to help maintain current syntax why constructing colors. Currently it only
supports color type with uint8_t components, but can be expanded to support more.

  • platform/graphics/ColorUtilities.h:

(WebCore::clampToComponentByte):
Remove unnecessary cast.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::SimpleColor):
Restrict to explicit construction via a SRGBA<uint8_t>.

(WebCore::makeSimpleColor):
Update to return ColorBuilder<SRGBA<uint8_t>>. A future change will update
the function name, but kept the same here to limit the size of the change.

  • platform/graphics/mac/ColorMac.mm:

(WebCore::makeSimpleColorFromNSColor):
(WebCore::nsColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::makeSimpleColorFromCGColor):
(WebCore::cachedCGColor):
Replace direct SimpleColor usage with SRGBA<uint8_t> and simplify Packed
construction now that .asSRGBA<uint8_t>() is not needed for color constants.

  • css/DeprecatedCSSOMRGBColor.h:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseNamedColor):
(WebCore::CSSParser::parseHexColor):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::finishParsingHexColor):
(WebCore::parseHexColorInternal):
(WebCore::parseNumericColor):
(WebCore::finishParsingNamedColor):
(WebCore::parseNamedColorInternal):
(WebCore::parseSimpleColorInternal):
(WebCore::CSSParserFastPaths::parseSimpleColor):
(WebCore::CSSParserFastPaths::parseHexColor):
(WebCore::CSSParserFastPaths::parseNamedColor):

  • css/parser/CSSParserFastPaths.h:
  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHexColor):

  • html/ColorInputType.cpp:

(WebCore::parseSimpleColorValue):

  • html/HTMLElement.cpp:

(WebCore::parseLegacyColorValue):

  • page/DebugPageOverlays.cpp:

(WebCore::touchEventRegionColors):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::HistoricMemoryCategoryInfo::HistoricMemoryCategoryInfo):

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendWithWhite):
(WebCore::blend):
(WebCore::blendWithoutPremultiply):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::makeSimpleColorFromARGBCFArray):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::cloneLayerDebugBorderColor):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::drawBoxes):

  • rendering/RenderLayerBacking.cpp:
  • rendering/RenderThemeMac.mm:

(WebCore::menuBackgroundColor):
Replace direct SimpleColor usage with SRGBA<uint8_t>.

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):
Update to account for makeSimpleColor no longer returning an object that has a
asSRGBA<uint8_t>() function (it is already a SRGBA<uint8_t>).

2:43 PM Changeset in webkit [264135] by Chris Dumez
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add iOS-specific baseline for WPT test after resync in r264117.

  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt: Added.
2:40 PM Changeset in webkit [264134] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Make a logging channel for ScrollSnap and improve its logging
https://bugs.webkit.org/show_bug.cgi?id=214096

Reviewed by Wenson Hsieh.

Pull existing scroll snap logging out of the Scrolling log channel into a new ScrollSnap channel,
add more logging, and make better use of TextStream-based logging.

  • page/scrolling/AxisScrollSnapOffsets.cpp:

(WebCore::operator<<):
(WebCore::updateSnapOffsetsForScrollableArea):
(WebCore::snapOffsetsToString): Deleted.
(WebCore::snapOffsetRangesToString): Deleted.
(WebCore::snapPortOrAreaToString): Deleted.

  • platform/Logging.h:
  • platform/ScrollableArea.cpp:

(WebCore::ScrollableArea::updateScrollSnapState):

  • platform/cocoa/ScrollController.mm:

(WebCore::operator<<):
(WebCore::ScrollController::processWheelEventForScrollSnap):
(WebCore::ScrollController::startScrollSnapTimer):
(WebCore::ScrollController::stopScrollSnapTimer):
(WebCore::ScrollController::scrollSnapTimerFired):
(WebCore::ScrollController::updateScrollSnapState):

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

(WebCore::operator<<):

2:33 PM Changeset in webkit [264133] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add a fuzzing toggle for LICM
https://bugs.webkit.org/show_bug.cgi?id=214093

Reviewed by Yusuke Suzuki.

We have an AI based safety checker for LICM, to determine if it's safe to
hoist nodes. Historically, we've had bugs here, where we allow unsafe
hoisting. In practice, we've been saved by safety checks also being hoisted
at the same time as the operation they're protecting, so even if we
have bugs in AI-based safeToExecute, things usually just work. Since
we've had security bugs here before, where the safety checks don't get hoisted,
leading to issues, it's helpful if we can fuzz this area. This patch implements
a way to says we won't hoist a node based on some probability, allowing us to play
with what does and doesn't get hoisted.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::run):

  • runtime/OptionsList.h:
2:13 PM Changeset in webkit [264132] by pvollan@apple.com
  • 19 edits
    7 adds in trunk/Source

[Cocoa] Update Launch Services database in the WebContent process from the Network process
https://bugs.webkit.org/show_bug.cgi?id=213794

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare interface for observing and consuming the Launch Services database.

  • pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

To be able to deny mach lookup access to the Launch Services database mapping service in the WebContent process, the database needs to be
sent from the Networking process to the WebContent process, represented by an xpc object. The Networking process is chosen instead of the UI
process, since WebKit is controlling the sandbox of the Networking process. There is already a direct connection between the Networking
process and the WebContent process, but this is a CoreIPC connection. Since the database is represented by an xpc object, an xpc connection
is requiered to transfer the database. This patch creates a direct xpc connection between the Networking process and the WebContent process,
by creating an xpc endpoint in the Networking process, sending this to the UI process over the bootstrap xpc connection, and then providing
each WebContent process with this endpoint by sending it over the bootstrap xpc connection between the UI process and the WebContent process.
This endpoint has to be sent via the xpc connections to the UI process, since the already existing direct connection between the Networking
process and the WebContent process is a lower level CoreIPC connection, which does not support transferring xpc objects like the xpc endpoint.
When the WebContent process receives the endpoint, it will create an xpc connection from the endpoint, which will create a direct connection
with the Networking process. A message is then sent over the connection to request the database xpc object. When the Networking process
receives this message, it checks the entitlement of the remote end to make sure it is communicating with a WebContent process, and then sends
the database if the entitlement check succeeds. When the WebContent process receives this message, it performs an entitlement check as well,
and if successful, the database object is consumed. Consuming this database object, will make sure UTI to MIME type mapping is working
correctly in the WebContent process.

For the UI process to be able to pick up xpc messages on the bootstrap connection, a new virtual method, handleXPCEvent, is added to the
ProcessLauncher Client class. This way, a ProcessLauncher client will be able to pick up xpc messages from the xpc bootstrap connection.
Previously the event handler for the bootstrap connection in the UI process would handle only xpc error messages. It has now been expanded
to handle normal messages, which are being forwarded to the ProcessLauncher client. In this case the client is the Network process proxy,
which will check the message received, and if it turns out to be a message containing an xpc endpoint, the message will be forwarded to
all Web processes. The ProcessLauncher client can be expanded to handle any xpc message, but right not the Network process proxy only
handles the xpc endpoint message. The handleXPCEvent virtual method return a RefPtr to an XPCEventHandler, which is captured in the event
handler of the bootstrap xpc connection.

No new tests, since there already exist tests for this. UTI to MIME type mapping is being used in WebKit and underlying framework, and many
tests would fail if this mapping was not working.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeConnection):

  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.h: Added.
  • NetworkProcess/cocoa/LaunchServicesDatabaseObserver.mm: Added.

(WebKit::LaunchServicesDatabaseObserver::singleton):
(WebKit::LaunchServicesDatabaseObserver::LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::startObserving):
(WebKit::LaunchServicesDatabaseObserver::~LaunchServicesDatabaseObserver):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageNameKey const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointMessageName const):
(WebKit::LaunchServicesDatabaseObserver::xpcEndpointNameKey const):
(WebKit::LaunchServicesDatabaseObserver::handleEvent):

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • Scripts/process-entitlements.sh:
  • Shared/Cocoa/LaunchServicesDatabaseXPCConstants.h: Added.
  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
  • SourcesCocoa.txt:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::xpcEndpointMessage const):
(WebKit::WebProcessPool::sendNetworkProcessXPCEndpointToWebProcess):

  • UIProcess/Cocoa/XPCEventHandler.h: Added.

(WebKit::XPCEventHandler::~XPCEventHandler):

  • UIProcess/Launcher/ProcessLauncher.h:

(WebKit::ProcessLauncher::Client::xpcEventHandler const):

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm: Added.

(WebKit::NetworkProcessProxy::xpcEventHandler const):
(WebKit::NetworkProcessProxy::XPCEventHandler::handleXPCEvent const):
(WebKit::NetworkProcessProxy::XPCEventHandler::XPCEventHandler):
(WebKit::NetworkProcessProxy::XPCEventHandler::~XPCEventHandler):

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

(WebKit::WebProcessProxy::didFinishLaunching):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::platformDidReceiveLoadParameters):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/LaunchServicesDatabaseManager.h: Added.
  • WebProcess/cocoa/LaunchServicesDatabaseManager.mm: Added.

(WebKit::LaunchServicesDatabaseManager::singleton):
(WebKit::LaunchServicesDatabaseManager::handleEvent):
(WebKit::LaunchServicesDatabaseManager::didConnect):
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::handleXPCEndpointMessages const):
(WebKit::WebProcess::platformInitializeWebProcess):

1:13 PM Changeset in webkit [264131] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:09 PM Changeset in webkit [264130] by dino@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

input button test needs rebaseline for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=214095
rdar://64911045

Unreviewed gardening. This test produces different results on Big Sur.

  • platform/mac-bigsur/fast/forms/input-button-sizes-expected.txt: Added.
12:54 PM Changeset in webkit [264129] by ggaren@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Reviewed by Darin Adler.

Make this test deterministic by waiting for the correct result.

  • accessibility/textarea-selected-text-range-expected.txt:
  • accessibility/textarea-selected-text-range.html:
12:42 PM Changeset in webkit [264128] by pvollan@apple.com
  • 6 edits
    5 adds in trunk

[Cocoa] Make it possible to establish direct XPC connections between WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=214079

Reviewed by Brent Fulgham.

Source/WebCore:

Add abstract classes XPCEndpoint and XPCEndpointClient to handle the creation of direct xpc connections between WebKit processes.
In order to create a direct xpc connection between two processes, these two classes can be subclassed, and the xpc endpoint created
by the XPCEndpoint object, can be sent via the UI process over the bootstrap xpc connection. The UI process can then forward this
endpoint to another WebKit process by sending it over the bootstrap xpc connection. The receiving process can then initialize an
XPCEndpointClient object with this endpoint, and a new direct connection will then be available, over which the two processes can
communicate.

API test: WebKit.XPCEndpoint

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/XPCEndpoint.h: Added.
  • platform/cocoa/XPCEndpoint.mm: Added.

(WebCore::XPCEndpoint::XPCEndpoint):
(WebCore::XPCEndpoint::sendEndpointToConnection):
(WebCore::XPCEndpoint::endpoint const):

  • platform/cocoa/XPCEndpointClient.h: Added.

(WebCore::XPCEndpointClient::~XPCEndpointClient):

  • platform/cocoa/XPCEndpointClient.mm: Added.

(WebCore::XPCEndpointClient::setEndpoint):
(WebCore::XPCEndpointClient::connection):

Source/WTF:

Declare function to create a xpc endpoint, as well as a function to create a connection from an endpoint.

  • wtf/spi/darwin/XPCSPI.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/XPCEndpoint.mm: Added.

(TEST):

12:34 PM Changeset in webkit [264127] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Limit layout tests failures to display in the status-bubble tooltip and buildbot summary
https://bugs.webkit.org/show_bug.cgi?id=214085

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/ews-build/steps.py: Limit NUM_FAILURES_TO_DISPLAY to 10.

(AnalyzeLayoutTestsResults.report_failure):
(AnalyzeLayoutTestsResults.report_pre_existing_failures):

  • BuildSlaveSupport/ews-build/steps_unittest.py:

(TestAnalyzeLayoutTestsResults.test_clean_tree_has_some_failures): Updated as per new behavior.
(TestAnalyzeLayoutTestsResults.test_failure_on_clean_tree): Updated to also test for build_summary.
(TestAnalyzeLayoutTestsResults.test_flaky_and_inconsistent_failures_with_clean_tree_failures): Ditto.
(TestAnalyzeLayoutTestsResults.test_mildly_flaky_patch_with_some_tree_redness_and_flakiness): Ditto.
(TestAnalyzeLayoutTestsResults.test_flaky_failures_in_first_run): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_clean_tree_has_lot_of_failures_and_no_new_failure): Added unit-test.
(TestAnalyzeLayoutTestsResults.test_patch_introduces_lot_of_failures): Added unit-test.

12:29 PM Changeset in webkit [264126] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

dyld: Symbol not found: ZN3WTF19initializeThreadingEv - webkit MacOSX
https://bugs.webkit.org/show_bug.cgi?id=214034

Reviewed by Mark Lam.

  • wtf/Threading.cpp:

(WTF::initializeThreading): Export the old symbol name for compatibility.

12:08 PM Changeset in webkit [264125] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Regression(r261756): webanimations/accelerated-animation-single-keyframe.html is consistently timing out on windows
https://bugs.webkit.org/show_bug.cgi?id=214088

Unreviewed test gardening.

  • platform/win/TestExpectations:
11:51 AM Changeset in webkit [264124] by chris.reid@sony.com
  • 2 edits in trunk/Source/WebInspectorUI

Heap Snapshot Object Graph view doesn't get populated in some cases when inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=214054

Reviewed by Devin Rousso.

When JSContexts are created with a custom globalObjectClass, that object is an
instance of CallbackGlobalObject and not GlobalObject so the view doesn't get populated.
Add instances of CallbackGlobalObject to the Object Graph view as top level nodes.

  • UserInterface/Views/HeapSnapshotDataGridTree.js:
11:45 AM Changeset in webkit [264123] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r263222-263223): [ macOS wk2 debug ] accessibility/textarea-selected-text-range.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214078

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:42 AM Changeset in webkit [264122] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Silence spam reports about deprecated logging system
https://bugs.webkit.org/show_bug.cgi?id=214090
<rdar://problem/63943836>

Reviewed by Per Arne Vollan.

Change the default 'block' behavior for 'com.apple.system.logger' to
block "with no-report" so that we don't spend time generating backtraces
when non-WebKit code attempts to use this deprecated logging system.

  • WebProcess/com.apple.WebProcess.sb.in:
11:39 AM Changeset in webkit [264121] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Build fix after r264050
https://bugs.webkit.org/show_bug.cgi?id=214091

Unreviewed build fix

No new tests, only build fix.

  • platform/playstation/ScrollbarThemePlayStation.cpp:
11:30 AM Changeset in webkit [264120] by commit-queue@webkit.org
  • 4 edits in trunk

Text manipulation should ignore white spaces between nodes
https://bugs.webkit.org/show_bug.cgi?id=213907

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Source/WebCore:

Reviewed by Wenson Hsieh.

Text returned by TextIterator contains white spaces (including tabs and line breaks) that do not belong to
content of nodes. Those spaces are emitted based on style of nodes. For example, line breaks can be emitted
before and after block-level element. These spaces should not be extracted as part of the content, because
they could change based on the style of nodes or range of TextIterator, and manipulation fails if content is
changed. We want to make sure TextManipulationController monitors the real content of nodes.

r262778 tried solving this issue by excluding text with empty node from TextIterator's result. That worked with
line break, but not space and tab. See radar and new test. To solve this, now we exclude text with zero-length
range.

This patch does not change the behavior of line breaks, which is covered by:
TextManipulation.StartTextManipulationExtractsVisibleLineBreaksInTextAsExcludedTokens
TextManipulation.CompleteTextManipulationCanMergeContentAndPreserveLineBreaks
TextManipulation.CompleteTextManipulationReplaceTwoSimpleParagraphs

New test: TextManipulation.CompleteTextManipulationIgnoreWhiteSpacesBetweenParagraphs
Modified existing tests: TextManipulation.StartTextManipulationExtractsValuesByNode

  • editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::ParagraphContentIterator):
(WebCore::ParagraphContentIterator::shouldAdvanceIteratorPastCurrentNode const):
(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):

Tools:

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

11:15 AM Changeset in webkit [264119] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Network process crashes in WebKit::WebIDBServer::removeConnection
https://bugs.webkit.org/show_bug.cgi?id=214071
<rdar://problem/64853929>

Patch by Sihui Liu <sihui_liu@appe.com> on 2020-07-08
Reviewed by Chris Dumez.

In network process, WebIDBServer may be removed and destroyed before web process using the same session
disconnects. Then a new WebIDBServer can be added before disconnection of web process and the new WebIDBServer
does not have information about the web process connection.

To solve this issue, now we only remove WebIDBServer when session is destroyed and there is no web process
connection of that session.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::removeWebIDBServerIfPossible):
(WebKit::NetworkProcess::connectionToWebProcessClosed):

  • NetworkProcess/NetworkProcess.h:
11:03 AM Changeset in webkit [264118] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Remove use of live ranges from AXObject.h
https://bugs.webkit.org/show_bug.cgi?id=214053

Reviewed by Sam Weinig.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange): Take SimpleRange.
(WebCore::AXObjectCache::lengthForRange): Take Optional<SimpleRange>.
(WebCore::AXObjectCache::rangeForNodeContents): Return SimpleRange, take reference
rather than pointer.
(WebCore::characterOffsetsInOrder): Use SimpleRange.
(WebCore::resetNodeAndOffsetForReplacedNode): Take a reference to the node rather than
a pointer.
(WebCore::boundaryPoint): Added. Could be used to replace calls to
setRangeStartOrEndWithCharacterOffset.
(WebCore::setRangeStartOrEndWithCharacterOffset): Take SimpleRange. Also use the
new boundaryPoint function above.
(WebCore::AXObjectCache::rangeForUnorderedCharacterOffsets): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange): Take SimpleRange.
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange): Take SimpleRange.
(WebCore::AXObjectCache::characterOffsetForNodeAndOffset): Use SimpleRange.
(WebCore::AXObjectCache::textMarkerDataForNextCharacterOffset): Ditto.
(WebCore::AXObjectCache::textMarkerDataForPreviousCharacterOffset): Ditto.
(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::leftWordRange): Return Optional<SimpleRange>.
(WebCore::AXObjectCache::rightWordRange): Ditto.
(WebCore::AXObjectCache::nextBoundary): Ditto.
(WebCore::AXObjectCache::previousBoundary): Ditto.
(WebCore::AXObjectCache::startCharacterOffsetOfParagraph): Use SimpleRange.
(WebCore::AXObjectCache::endCharacterOffsetOfParagraph): Ditto.
(WebCore::AXObjectCache::paragraphForCharacterOffset): Ditto.
(WebCore::AXObjectCache::sentenceForCharacterOffset): Ditto.
(WebCore::AXObjectCache::localCaretRectForCharacterOffset): Ditto.
(WebCore::AXObjectCache::characterOffsetForPoint): Ditto.
(WebCore::AXObjectCache::characterOffsetForIndex): Ditto.
(WebCore::AXObjectCache::indexForCharacterOffset): Ditto.

  • accessibility/AXObjectCache.h: Remove uses of Range and include of "Range.h".
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::elementRange const): Call createLiveRange.
(WebCore::AccessibilityObject::rangeForPlainTextRange const): Ditto.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::boundsForRange const): Pass SimpleRange.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(+[WebAccessibilityTextMarker startOrEndTextMarkerForRange:isStart:cache:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper positionForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper textMarkerForPosition:]): Ditto.
(-[WebAccessibilityObjectWrapper rangeForTextMarkers:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper lengthForTextMarkers:]): Pass SimpleRange.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(startOrEndTextmarkerForRange):
(-[WebAccessibilityObjectWrapper rangeForTextMarkerRange:]): Pass SimpleRange.
(-[WebAccessibilityObjectWrapper _indexForTextMarker:]): Call createLiveRange.
(-[WebAccessibilityObjectWrapper textMarkerRangeAtTextMarker:forUnit:]): Ditto.
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): Ditto.

  • dom/BoundaryPoint.h: Added makeBoundaryPointBefore/AfterNode.
  • dom/SimpleRange.cpp:

(WebCore::makeBoundaryPointBeforeNode): Added.
(WebCore::makeBoundaryPointAfterNode): Ditto.

10:57 AM Changeset in webkit [264117] by Chris Dumez
  • 123 edits
    32 copies
    9 moves
    310 adds
    107 deletes in trunk/LayoutTests

Resync all remaining web-platform-tests/html tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=214057

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Resync all remaining web-platform-tests/html tests from upstream cef93b58e7cf31f1d47ccb.

  • resources/resource-files.json:
  • web-platform-tests/html/*: Updated.

LayoutTests:

10:56 AM Changeset in webkit [264116] by Darin Adler
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Fix adjust-angle-include-paths.sh error seen building ANGLE library
https://bugs.webkit.org/show_bug.cgi?id=214059

Reviewed by Alexey Proskuryakov.

  • ANGLE.xcodeproj/project.pbxproj: Remove the build step that adjusts paths.

Dean Jackson told me we don't need it for the static library target.

10:50 AM Changeset in webkit [264115] by Alan Coon
  • 8 edits in branches/safari-610.1.21.1-branch/Source

Versioning.

WebKit-610.1.21.1.2

10:45 AM Changeset in webkit [264114] by weinig@apple.com
  • 7 edits
    1 delete in trunk/LayoutTests

Remove LayoutTests/fast/forms/datetime now that <input type="datetime"> code has been removed
https://bugs.webkit.org/show_bug.cgi?id=214064

Reviewed by Dan Bernstein.

  • fast/forms/datetime: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:

Stop skipping the removed tests.

10:43 AM Changeset in webkit [264113] by aestes@apple.com
  • 23 edits
    2 adds in trunk

REGRESSION (r207558): [Mac] Context clicks on links sometimes result in navigations
https://bugs.webkit.org/show_bug.cgi?id=213793
<rdar://problem/64294015>

Reviewed by Tim Horton.

Source/WebKit:

WebPageProxy::showContextMenu was written with the assumption that WebContextMenuProxy::show
would present a context menu and spin a nested run loop, blocking until the menu dismisses.
Once WebContextMenuProxy::show returns, showContextMenu would send the
WebPage::ContextMenuHidden message, telling the WebContent process that it's OK to resume
processing mouse events.

This assumption was invalidated in r207558 (and again in several subsequent changes), which
added asynchronous APIs to WKPageContextMenuClient. If the context menu client provides
context menu items asynchronously, WebContextMenuProxy::show would return -- and the
WebContent process would resume processing mouse events -- before the context menu was even
presented. Since context menu presentation is triggered by a mouse press event, it's
possible that the corresponding mouse release event would be delivered after
getContextMenuFromProposedMenuAsync was dispatched but before the client responded with menu
items to present. If this happened, since mouse event processing was not disabled, the
WebContent process would dispatch a DOM click event to the page, possibly triggering a
navigation.

Fix this by teaching WebPageProxy to defer sending WebPage::ContextMenuHidden until the
context menu has been dismissed, even in cases where the context menu client provides menu
items asynchronously. Also, take the opportunity to modernize WebContextMenuProxy and its
subclasses by, e.g., moving duplicated subclass code into the base class, using the client
pattern, and using WeakPtrs instead of raw pointers/references.

New API tests: ContextMenuMouseEvents.*

  • UIProcess/API/APIContextMenuClient.h:

(API::ContextMenuClient::showContextMenu):
(API::ContextMenuClient::canShowContextMenu const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageContextMenuClient): Added canShowContextMenu to determine whether the client
can show a context menu without actually showing it.

  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::createContextMenuProxy): Passed page to
WebContextMenuProxyWPE::create.

  • UIProcess/WebContextMenuListenerProxy.cpp:

(WebKit::WebContextMenuListenerProxy::WebContextMenuListenerProxy):
(WebKit::WebContextMenuListenerProxy::useContextMenuItems):
(WebKit::WebContextMenuListenerProxy::invalidate): Deleted. Not needed now that m_client is
a WeakPtr.

  • UIProcess/WebContextMenuListenerProxy.h:

(WebKit::WebContextMenuListenerProxy::create): Rather than store a raw pointer to a
WebContextMenuProxy, store a WeakPtr to a WebContextMenuListenerProxy::Client (which
WebContextMenuProxy implements).

  • UIProcess/WebContextMenuProxy.cpp:

(WebKit::WebContextMenuProxy::WebContextMenuProxy): Stored a WeakPtr to a WebPageProxy
rather than storing a raw pointer to the same in each subclass.
(WebKit::WebContextMenuProxy::proposedItems const): Added a virtual function to create
proposed WebContextMenuItems from m_context's menu items. WebContextMenuProxyGtk overrides
this to do something slightly different.
(WebKit::WebContextMenuProxy::show): Added a base class implementation that creates a
WebContextMenuListenerProxy and calls ContextMenuClient::getContextMenuFromProposedMenu.
(WebKit::WebContextMenuProxy::useContextMenuItems): Added a base class implementation that
performs the work previously done in WebPageProxy::showContextMenu. Calls
showContextMenuWithItems, which now always synchronously presents the menu.

  • UIProcess/WebContextMenuProxy.h: Inherited from WebContextMenuListenerProxy::Client.

(WebKit::WebContextMenuProxy::page const): Added for use by WKSharingServicePickerDelegate.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::showContextMenu): Moved code that assumes synchronous menu
presentation to WebContextMenuProxy::useContextMenuItems.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::proposedItems const): Implemented GTK's special version
that excludes ContextMenuItemTagShareMenu.
(WebKit::WebContextMenuProxyGtk::show): Deleted. WebContextMenuProxy::show handles this now.
(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h: Moved m_page to WebContextMenuProxy.
  • UIProcess/mac/WKSharingServicePickerDelegate.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Changed now that
WebContextMenuProxy::page returns a pointer.

  • UIProcess/mac/WebContextMenuProxyMac.h:

(WebKit::WebContextMenuProxyMac::page const): Deleted.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
(WebKit::WebContextMenuProxyMac::~WebContextMenuProxyMac): No need to invalidate
m_contextMenuListener now that it stores a WeakPtr to its WebContextMenuProxy.
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::showServicesMenu):
(WebKit::WebContextMenuProxyMac::show):
(WebKit::WebContextMenuProxyMac::showContextMenuWithItems): Overrode to handle service menus.
(WebKit::WebContextMenuProxyMac::useContextMenuItems): Overrode to get the standard Mac menu
items and dispatch ContextMenuClient::menuFromProposedMenu before showing the menu.
(WebKit::WebContextMenuProxyMac::showContextMenu): Deleted. WebContextMenuProxy::show now
handles this.

  • UIProcess/win/WebContextMenuProxyWin.cpp:

(WebKit::WebContextMenuProxyWin::showContextMenuWithItems):
(WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
(WebKit::WebContextMenuProxyWin::show): Deleted. WebContextMenuProxy::show now handles this.

  • UIProcess/win/WebContextMenuProxyWin.h:
  • UIProcess/wpe/WebContextMenuProxyWPE.h: Passed page to the WebContextMenuProxy ctor.

Tools:

Added API tests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/xcshareddata/xcschemes/TestWebKitAPI.xcscheme:
  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuMouseEvents.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKit/mac/ContextMenuControlClick.mm.

(TestWebKitAPI::runTest):
(TestWebKitAPI::TEST):

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

(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:mouseEventType:]):
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:eventType:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:eventType:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseUpAtPoint:withFlags:eventType:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebViewHostWindow _mouseUpAtPoint:clickCount:modifierFlags:]): Deleted.
(-[TestWKWebView mouseDownAtPoint:simulatePressure:withFlags:]): Deleted.
(-[TestWKWebView mouseUpAtPoint:withFlags:]): Deleted.

10:08 AM Changeset in webkit [264112] by Wenson Hsieh
  • 5 edits
    2 adds in trunk

autocapitalize="words" capitalizes every word's second character
https://bugs.webkit.org/show_bug.cgi?id=148504
<rdar://problem/57814304>

Reviewed by Tim Horton.

Source/WebKit:

This bug resurfaced in iOS 13 due to timing changes that caused a task added to UIKeyboardTaskQueue to no longer
get dequeued after the next editor state update is received in the UI process; as a result, UIKit asks us for
the context before the caret selection (i.e. characterBeforeSelection) before we have a chance to update it,
which means that UIKeyboardImpl's autoshift state will always be off by one character whie typing.

Note that solely deferring this update until after the next editor state update is received is insufficient to
fix this bug, since the keyboard's shift state will still be incorrect when typing characters very quickly (or
if the web process is unresponsive).

Instead, completely address this bug by adding a mechanism for WKContentView to cache the last character in the
string that is currently being inserted using -insertText:, and return it in -_characterBeforeCaretSelection
until the next editor state update comes in with the real character before the selection. This way, we're able
to respond to UIKit's requests immediately with a (reasonable) guess of what the character before the selection
should be, and then follow it up with the actual up-to-date value from the web process during the next editor
state update (invalidating the stale shift state if necessary). This cached last character should only be
incorrect in the case where the page uses script to influence what was typed, or the typed character was never
inserted at all (e.g. typing a newline character in a single line input element).

Test: fast/forms/ios/autocapitalize-words.html

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanUpInteraction]):
(-[WKContentView _characterBeforeCaretSelection]):

Use _lastInsertedCharacterToOverrideCharacterBeforeSelection, if it is set.

(-[WKContentView _characterInRelationToCaretSelection:]):
(-[WKContentView insertText:]):

Update _lastInsertedCharacterToOverrideCharacterBeforeSelection and ensure an editor state update immediately
after text is inserted, if we're currently editing an element with autocapitalize="words". The editor state
update could be unnecessarily expensive, so we don't want to do this unconditionally. Also,
autocapitalize="words" is special in the sense that it is the only autocapitalization type where the platform
(UIKit) will ask for the last character immediately and use it to unshift the keyboard. Even in the case of
autocapitalize="sentences", UIKit makes the decision to unshift using information from kbd instead.

(-[WKContentView _elementDidBlur]):
(-[WKContentView _selectionChanged]):

Clear out _lastInsertedCharacterToOverrideCharacterBeforeSelection when the next editor state update is
received, and invalidate the current keyboard shift state by calling -clearShiftState. This SPI method
automatically schedules a shift state update, as well.

Note the extra _usingGestureForSelection check here, which prevents the keyboard from autoshifting and
unshifting while changing the selection via loupe gesture.

LayoutTests:

Add a new layout test to verify that the bug does not occur.

  • fast/forms/ios/autocapitalize-words-expected.txt: Added.
  • fast/forms/ios/autocapitalize-words.html: Added.
10:03 AM Changeset in webkit [264111] by Alan Coon
  • 1 copy in tags/Safari-610.1.21.0.2

Tag Safari-610.1.21.0.2.

10:01 AM Changeset in webkit [264110] by Alan Coon
  • 5 edits in branches/safari-610.1.21.0-branch/Source/WebCore

Cherry-pick r264058. rdar://problem/65195012

[Apple Pay] Fix the build on Catalina internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=214066

Unreviewed build fix for the 10.15.0 Internal SDK.

Source/WebCore:

  • Modules/applepay/ApplePaySetupFeature.mm: (WebCore::ApplePaySetupFeature::supportsInstallments const):

Source/WebCore/PAL:

  • pal/spi/cocoa/PassKitInstallmentsSPI.h:
  • pal/spi/cocoa/PassKitSPI.h:

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

9:55 AM Changeset in webkit [264109] by Alan Coon
  • 8 edits in branches/safari-610.1.21.0-branch/Source

Versioning.

WebKit-610.1.21.0.2

9:47 AM Changeset in webkit [264108] by jer.noble@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening; "rebaseline" the video-orientation-canvas.html test to center the expected red color
results on observed output.

  • media/video-orientation-canvas-expected.txt:
  • media/video-orientation-canvas.html:
9:45 AM Changeset in webkit [264107] by Alan Bujtas
  • 4 edits
    2 adds in trunk

[LFC][IFC] Do not use the initial strut baseline values when the text content is inside an inline container
https://bugs.webkit.org/show_bug.cgi?id=214069

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):

  • layout/inlineformatting/InlineLineBuilder.h:

LayoutTests:

  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container-expected.html: Added.
  • fast/layoutformattingcontext/line-heigt-when-text-is-inside-inline-container.html: Added.
9:43 AM Changeset in webkit [264106] by jer.noble@apple.com
  • 3 edits in trunk/Tools

Flaky API Test: TestWebKitAPI.SleepDisabler.NavigateBack
https://bugs.webkit.org/show_bug.cgi?id=213513
<rdar://problem/64642715>

Reviewed by Eric Carlson.

Make the test less dependent on the specific behavior of restoring the history state by adding code within
the source HTML itself to explicitly play the contained video after state restoration.

  • TestWebKitAPI/Tests/WebKit/SleepDisabler.mm:

(TEST_F):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/video-with-audio.html:
9:42 AM Changeset in webkit [264105] by sbarati@apple.com
  • 19 edits in trunk/Source/JavaScriptCore

Add a way to return early from detected infinite loops to aid the fuzzer
https://bugs.webkit.org/show_bug.cgi?id=214067

Reviewed by Yusuke Suzuki.

It's useful for the fuzzer to not get stuck in infinite loops so its
test cases can make forward progress trying to find bugs. This patch
adds a new mechanism where we can early return if we've exceeded a total
execution count for a static loop in bytecode. Note: this is not on a
per-frame basis, but it's a way to implement this in a non-invasive way
which is also practical for the fuzzer to use.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:

(JSC::B3::Air::GenerateAndAllocateRegisters::generate):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::emitEpilogue):

  • b3/air/AirCode.h:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generateWithAlreadyAllocatedRegisters):

  • bytecode/BytecodeList.rb:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::~CodeBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileLoopHint):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_loop_hint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/mips.rb:
  • runtime/OptionsList.h:
  • runtime/VM.cpp:

(JSC::VM::addLoopHintExecutionCounter):
(JSC::VM::getLoopHintExecutionCounter):
(JSC::VM::removeLoopHintExecutionCounter):

  • runtime/VM.h:
9:42 AM Changeset in webkit [264104] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Skip a couple of WPT webaudio tests instead of marking them as crashing.

This avoids wasting resources on the bots since those tests are consistently crashing.

9:41 AM Changeset in webkit [264103] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][TFC] Table width is computed as if box-sizing was border-box
https://bugs.webkit.org/show_bug.cgi?id=214070

Reviewed by Antti Koivisto.

Source/WebCore:

Apparently the width property of the <table> works as if box-sizing were set to border-box (and <div style="display: table" does not).

Test: fast/layoutformattingcontext/table-with-padding-and-border-simple.html

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::buildTableStructure):

LayoutTests:

  • fast/layoutformattingcontext/table-with-padding-and-border-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-with-padding-and-border-simple.html: Added.
9:22 AM Changeset in webkit [264102] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win] The layout test webanimations/accelerated-animation-single-keyframe.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=214081

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:16 AM Changeset in webkit [264101] by graouts@webkit.org
  • 11 edits
    2 adds in trunk

[iOS] Sharing an <img> element with a base64-encoded URL shares the URL as raw text instead of an image
https://bugs.webkit.org/show_bug.cgi?id=214042
<rdar://problem/56669102>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • en.lproj/Localizable.strings:

Source/WebKit:

In the case where the <img> element that was the target when the share sheet was brought has its data encoded
as a base64 URL, we need to share the UIImage that was created as its snapshot as a file rather than the URL
to avoid a base64 string to be shared instead of the image data.

To support testing of this, we add a new optional WKShareSheet delegate to indicate that the share sheet will
show and the provided activity items, which we forward to a new optional WKUIDelegatePrivate delegate method.
API tests can thus be written to check the data provided to the share sheet.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/WKShareSheet.h:
  • UIProcess/Cocoa/WKShareSheet.mm:

(-[WKShareSheet presentWithShareDataArray:inRect:]):

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

(-[WKActionSheetAssistant handleElementActionWithType:element:needsInteraction:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shareSheet:willShowActivityItems:]):
(-[WKContentView actionSheetAssistant:shareElementWithURL:rect:]):
(-[WKContentView actionSheetAssistant:shareElementWithImage:rect:]):

Tools:

Add a test that loads a page with an <img> with its data encoded as a base64 URL, brings up the share sheet for it
and checks a single NSURL object is made available in the activity items.

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

(-[ShareSheetObserver _webView:actionsForElement:defaultActions:]):
(-[ShareSheetObserver _webView:willShareActivityItems:]):
(TestWebKitAPI::showShareSheet):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/img-with-base64-url.html: Added.
8:48 AM Changeset in webkit [264100] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 Release and iOS wk2 Release ] webrtc/libwebrtc/descriptionGetters.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=214084

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:16 AM Changeset in webkit [264099] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r262194 - [WPE] REGRESSION(r253675) Crash when using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=212404

Reviewed by Carlos Garcia Campos.

Check whether the GraphicsContext has a PlatformGraphicsContext before trying to paint with
it. If there's no PlatformGraphicsContext, paint using the GraphicsContext methods instead.

  • platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):

5:38 AM Changeset in webkit [264098] by Carlos Garcia Campos
  • 7 edits
    4 adds in releases/WebKitGTK/webkit-2.28

Merge r259137 - Hovering over countries at https://covidinc.io/ shows bizarre rendering artifacts
https://bugs.webkit.org/show_bug.cgi?id=209635
<rdar://problem/60935010>

Reviewed by Said Abou-Hallawa.
Source/WebCore:

RenderSVGResourceClipper::applyClippingToContext() cached an ImageBuffer per RenderObject
when using a image buffer mask. However, the function created and rendered into this image buffer
using repaintRect, which can change between invocations. Painting with different repaintRects
is very common when rendering into page tiles.

The buffer can only be re-used if the inputs used to create the buffer (objectBoundingBox, absoluteTransform)
are the same, so store those and compare them when determining when to use the cached buffer, and
don't use repaintRect when setting up the buffer.

This revealed another problem where renderers with visual overflow could be truncated by
the clipping, tested by imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml, which occurred
because RenderLayer::setupClipPath() used the 'svgReferenceBox' for the clipping bounds, which
is the content box of the renderer excluding overflow. Fix this by using the bounds of the layer,
which includes the bounds of descendants.

Tests: svg/clip-path/clip-path-on-overflowing.html

svg/clip-path/resource-clipper-multiple-repaints.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::setupClipPath):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::removeAllClientsFromCache):
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::addRendererToClipper):
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):

  • rendering/svg/RenderSVGResourceClipper.h:

LayoutTests:

Ref test that exercises the code path by painting into a tiled compositing
layer.

  • svg/clip-path/clip-path-on-overflowing-expected.html: Added.
  • svg/clip-path/clip-path-on-overflowing.html: Added.
  • svg/clip-path/mask-nested-clip-path-010-expected.svg:
  • svg/clip-path/mask-nested-clip-path-010.svg: Copied from imported/mozilla/svg/svg-integration/clipPath-html-03.xhtml,

and modified to have a non-zero offset for better testing of the clipping bounds computation.

  • svg/clip-path/resource-clipper-multiple-repaints-expected.html: Added.
  • svg/clip-path/resource-clipper-multiple-repaints.html: Added.
4:26 AM Changeset in webkit [264097] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[EME][GStreamer] web-platform-tests/encrypted-media/clearkey-events-session-closed-event.https.html random crashes
https://bugs.webkit.org/show_bug.cgi?id=210264

Reviewed by Philippe Normand.

  • platform/glib/TestExpectations: Change test expectations.
4:22 AM Changeset in webkit [264096] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Pre-start sccache server
https://bugs.webkit.org/show_bug.cgi?id=213973

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Pre-start the sccache-dist server when the flatpak sandbox is being invoked for a build.
Usually the first sccache client process would do it but it seems to be racy when a large
number of clients is being started simultaneously.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):

4:19 AM Changeset in webkit [264095] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

[WPE][Qt] Deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=214074

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/wpe/qt/WPEQtView.cpp:

(WPEQtView::updatePaintNode): Switch to new createTextureFromNativeObject API when building against Qt 5.15.

  • UIProcess/API/wpe/qt/WPEQtViewBackend.cpp:

(WPEQtViewBackend::dispatchWheelEvent): Switch to new WPE axis 2D event API.

4:02 AM Changeset in webkit [264094] by clopez@igalia.com
  • 3 edits in trunk/Tools

[GTK][WPE] install-dependencies should install the gstreamer plugins
https://bugs.webkit.org/show_bug.cgi?id=214045

Reviewed by Adrian Perez de Castro.

When building webkit against system libraries (without flatpak/jhbuild)
its needed to have installed the webkit plugins to play media files.
The install-dependencies script should install them.

gstreamer-plugins-ugly its likely not needed for the majority of the cases,
but it can be required by some ugly media files that require an ugly decoder.
Since we are installing it on the flatpak, let's add it here as well.

  • gtk/install-dependencies:
  • wpe/install-dependencies:
3:53 AM Changeset in webkit [264093] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't handle unicode urls
https://bugs.webkit.org/show_bug.cgi?id=214036

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Žan Doberšek.

Convert unregistered command-line arguments to utf-8 and append parsed URL. Previously
unrelated arguments (like the platform arg) were passed to the final MiniBrowser app, this
is no longer the case.

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main):

3:41 AM Changeset in webkit [264092] by clopez@igalia.com
  • 4 edits
    5 adds in trunk/Tools

[JHBuild] Add support for using a minimal moduleset
https://bugs.webkit.org/show_bug.cgi?id=213614

Reviewed by Carlos Garcia Campos.

This patch introduces a way of specifying a moduleset other than the default
via the environment variable WEBKIT_JHBUILD_MODULESET and adds a minimal moduleset
that allows building WebKit with it. This minimal moduleset includes the libraries
needed for building WebKit on Ubuntu-18.04, and those libraries are only build if
needed since they include the <pkg-config> entries that tells JHBuild to not build
them if those are already installed system wide. So this minimal moduleset should
work also on newer versions of Ubuntu or even other distributions.

Currently a recipe for newer libsoup than the one shipped by Ubuntu-18.04 is included
since we need this to have support for SameSite cookie support.
The minimal moduleset is shared between WPE and GTK to reduce code duplication.

To use this, you have to export on the build environment:
WEBKIT_JHBUILD=1
WEBKIT_JHBUILD_MODULESET=minimal

  • Scripts/update-webkit-libs-jhbuild:

(getJhbuildIncludedFilePaths):
(jhbuildModulesetNameChanged):
(jhbuildConfigurationChanged):
(saveJhbuildMd5):
(saveJhbuildModulesetName):
(saveJhbuildConfig):
(deleteJhbuildMd5):
(deleteJhbuildModulesetName):
(deleteJhbuildConfig):

  • Scripts/webkitdirs.pm:

(getJhbuildModulesetName):

  • gtk/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuild-minimal.modules: Added.
  • jhbuild/jhbuildrc_common.py:

(init):

  • jhbuild/patches/libsoup-lower-glib-dependency-to-2.38.patch: Added.
  • wpe/jhbuild-minimal.modules: Added.
3:07 AM Changeset in webkit [264091] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r263899 - [WPE][GTK] Bubblewrap sandbox should not attempt to bind empty paths
https://bugs.webkit.org/show_bug.cgi?id=202880

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-07-03
Reviewed by Carlos Garcia Campos.

If an empty path is set in LD_LIBRARY_PATH (e.g. /foo::/bar), we wind up passing
--ro-bind-try --ro-bind-try to bwrap, where the second --ro-bind-try is treated as the
source path to mount, and the next flag we pass gets treated as the destination path. The
web process crashes with this confusing error:

bwrap: Can't create file at /.flatpak-info: Read-only file system

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::bindIfExists):

3:07 AM WebKitGTK/2.28.x edited by Carlos Garcia Campos
(diff)
3:07 AM Changeset in webkit [264090] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262274 - [GTK][WPE] Buildfix after r262242

Unreviewed build fix.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264089] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262242 - [WPE][GTK] GVariant decoding must copy the serialized data
https://bugs.webkit.org/show_bug.cgi?id=212441

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Carlos Garcia Campos.

I tracked this down to ArgumentCodersGLib.cpp. The problem is that we construct a GVariant
using g_variant_new_from_data(), which does not copy or take ownership of the data, so here
we accidentally create the GVariant using data we don't own. (Here, the data is owned by the
Decoder itself in its internal m_buffer.) Anyway, this is fixable by manually copying and
freeing it with the GDestroyNotify parameter, but it's easier to switch to
g_variant_new_from_bytes() because GBytes takes ownership when constructed.

  • Shared/glib/ArgumentCodersGLib.cpp:

(IPC::decode):

3:07 AM Changeset in webkit [264088] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r261680 - [GStreamer] Can't replay blob videos in web.whatsapp.com
https://bugs.webkit.org/show_bug.cgi?id=192540

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-14
Reviewed by Xabier Rodriguez-Calvar.

This is a variant of bug 211627 but I could reproduce it only for videos. Unfortunately I
wasn't able to write a reliable test for this.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus): Prevent the fill timer from
running forever after buffering completed.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): Don't buffer blobs, this doesn't seem useful as they're already
in memory anyway.

3:07 AM Changeset in webkit [264087] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r261550 - [GStreamer] Audio messages in web.whatsapp.com only play once.
https://bugs.webkit.org/show_bug.cgi?id=211627

Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-12
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Test: media/video-src-blob-replay.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag): Make sure on-disk
buffering is disabled for blob URIs, because it messes up the pipeline for replays, and it's
useless for that use-case anyway.

LayoutTests:

  • media/video-src-blob-replay-expected.txt: Added.
  • media/video-src-blob-replay.html: Added.
3:07 AM Changeset in webkit [264086] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r261326 - REGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy broken on JSVALUE64 platforms other than x86_64 and aarch64
https://bugs.webkit.org/show_bug.cgi?id=210685

Patch by Daniel Kolesa <daniel@octaforge.org> on 2020-05-07
Reviewed by Michael Catanzaro.

Fix gcSafeMemcpy on non-x86_64/aarch64 64-bit architectures.

We were hitting an incorrect x86_64 assertion on values larger than
mediumCutoff on JSVALUE64 architectures other than x86_64 and aarch64,
as the control flow is wrong.

  • heap/GCMemoryOperations.h:

(JSC::gcSafeMemcpy):

3:07 AM Changeset in webkit [264085] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r261165 - [GStreamer] Video loops when ran in rr record --chaos
https://bugs.webkit.org/show_bug.cgi?id=211182

Reviewed by Philippe Normand.

Source/WebCore:

While trying to investigate a different bug, I ran the browser with
rr record --chaos, which makes it run very slowly and shuffles
thread scheduling to try to make existing race conditions more likely
to show up, also inevitably making the software run very slow.

Doing so I found something strange: the video kept looping even though
it didn't have the loop attribute set.

After some debugging I found that MediaPlayer decides if the video has
ended in part by checking currentMediaTime() is greater or equal to
the video duration, which was not guaranteed to be the case in
MediaPlayerPrivateGStreamer.

As a consequence of this patch, one new LayoutTest has passed.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):

LayoutTests:

imported/w3c/web-platform-tests/media-source/mediasource-getvideoplaybackquality.html
is now passing.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264084] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260892 - PlatformMediaResourceLoader should be destroyed on the main thread
https://bugs.webkit.org/show_bug.cgi?id=211155

Reviewed by Xabier Rodriguez-Calvar.

PlatformMediaResourceLoader is only safe to use from the main thread.
A tricky detail is this includes its destruction. The same is true for
PlatformMediaResource.

Both classes are ThreadSafeRefCounted<> classes and therefore
WTF::DestructionThread::Main can be used to ensure destruction is run
in the correct thread with no need for additional client code.

  • platform/graphics/PlatformMediaResourceLoader.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::StreamingMembers::~StreamingMembers):

3:07 AM Changeset in webkit [264083] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260886 - [GStreamer] Switch to audiointerleave
https://bugs.webkit.org/show_bug.cgi?id=211124

Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-29
Reviewed by Xabier Rodriguez-Calvar.

The audiointerleave element is a drop-in replacement of
interleave. It should behave a bit better in live.

No new tests, existing webaudio tests cover this change.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcConstructed):
(webKitWebAudioSrcChangeState):

3:07 AM Changeset in webkit [264082] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260938 - Unreviewed, GStreamer build warning fix after r260755.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcMakeRequest): There is no need to capture src in the
closure, its protector is used instead.

3:07 AM Changeset in webkit [264081] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.28

Merge r260755 - [GStreamer] Rework WebKitWebSrc threading
Source/WebCore:

https://bugs.webkit.org/show_bug.cgi?id=210284

Reviewed by Xabier Rodriguez-Calvar.

WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).

The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.

In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.

Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.

The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.

As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.

This patch introduces no visible behavior changes, just stability
improvements.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:

LayoutTests:

https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

A test improved its status in TestExpectations from the changes made
in this patch.

  • platform/gtk/TestExpectations:
3:07 AM Changeset in webkit [264080] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r260750 - [GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431

Reviewed by Carlos Garcia Campos.

Don't create a PlatformDisplayLibWPE as a fallback when using
Wayland or X11.

  • platform/graphics/PlatformDisplay.cpp:

(WebCore::PlatformDisplay::createPlatformDisplay):

3:06 AM Changeset in webkit [264079] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.28

Merge r260176 - [GTK] MiniBrowser opens new windows too small causing failures on some WPT tests
https://bugs.webkit.org/show_bug.cgi?id=210206

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Some WPT tests (when executed with the WPT runner via WebDriver)
open new browser windows via JavaScript invoking Window.open()
and then run the test on this new window.
The size of the new window is not specified, and we were failing
to provide a default window size, so it was using the minimum of
100x100 which its just too small for some test that later call
document.elementFromPoint() on some coordinates
that are outside of that size.

To fix that provide the size of the default GTK window to WebCore
if the application sets one via gtk_window_set_default_size().
And if not, then use the size of the previous window.

Also change the way we position the new window to work better when
the system uses more than one monitor. Previously to get the default
coordinates of the new window we were using gdk_display_get_monitor()
with just the first monitor available.
This causes issues in the calculation of the available space when
using several monitors. Instead get the monitor in use by looking
at the current GDK root window.

Tests: TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-default-size
and TestWebKitAPI/WebKit2Gtk/TestUIClient:/webkit/WebKitWebView/open-window-no-default-size

  • loader/FrameLoader.cpp:

(WebCore::createWindow):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::getCurrentScreenMonitor):
(WebCore::screenRect):
(WebCore::screenAvailableRect):

Source/WebKit:

Provide the size of the default window (if is set) when windowRect is called
before the window is shown.

  • UIProcess/API/glib/WebKitUIClient.cpp:

Tools:

Add two API test to check that window.open() by default gets a size
request equal to the old window if there is no default window size,
or to the default window if there is a default window size.

A new function helper setCreateNewWebViewsInWindowsWithDefaultSize()
its added to create new webviews in new windows automatically, which
its needed to test the case of having a default window size.

  • TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:

(testWebViewWindowProperties):
(testWebViewOpenWindowDefaultSize):
(testWebViewOpenWindowNoDefaultSize):
(beforeAll):

3:06 AM Changeset in webkit [264078] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28

Merge r259879 - [WTF] DataMutex: Add runUnlocked()
https://bugs.webkit.org/show_bug.cgi?id=209811

Reviewed by Xabier Rodriguez-Calvar.

Source/WTF:

This patch introduces a runUnlocked() method in WTF::DataMutex::LockedWrapper
to run a lambda function without the lock. This is intended to be used for
small sections of the code that need to be unlocked, in cases where using
scoping would prove non-ergonomic or where running the unlocked section is only
necessary or desired when a certain condition is met -- something that cannot
be done with C++ scoping.

Safety mechanisms are provided. First, because this is used with a lambda, all
variables to be used in the unlocked section have to be specified in the
capture (global capture is possible but not recommended to simplify analysis).
Second, additional checks have been added to DataMutex to detect unlocked
accesses among other conditions. This will detect among other things naive
access to protected members by means of capturing the LockedWrapper by
reference.

  • wtf/DataMutex.h:

(WTF::OwnerAwareLockAdapter::lock):
(WTF::OwnerAwareLockAdapter::unlock):
(WTF::OwnerAwareLockAdapter::tryLock):
(WTF::OwnerAwareLockAdapter::isLocked const):
(WTF::DataMutex::LockedWrapper::operator->):
(WTF::DataMutex::LockedWrapper::operator*):
(WTF::DataMutex::LockedWrapper::mutex):
(WTF::DataMutex::LockedWrapper::lockHolder):
(WTF::DataMutex::LockedWrapper::runUnlocked):

Tools:

Tests for runUnlocked() and DataMutex checks are introduced.

  • TestWebKitAPI/Tests/WTF/DataMutex.cpp:

(TestWebKitAPI::TEST):

3:06 AM Changeset in webkit [264077] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r263838 - [GTK] Kinetic scrolling is still triggered if you wait before lifting fingers
https://bugs.webkit.org/show_bug.cgi?id=213789

Patch by Alexander Mikhaylenko <Alexander Mikhaylenko> on 2020-07-02
Reviewed by Carlos Garcia Campos.

The intended behavior for kinetic scrolling is that it's possible to not trigger it by
stopping moving fingers before lifting them, as opposed to doing a fling/swipe. However,
right now it's broken and trying to do this triggers kinetic scrolling as well.

Currently, the last scroll event with (0, 0) deltas isn't added to the scroll history for
kinetic scrolling. However, this is wrong, because the last event, or rather the timespan
between it and the previous scroll event, actually determines the kinetic scrolling velocity:
if this event follows the previous one quickly, the velocity is large, but if there was a long
pause, the velocity would be close to 0.

See https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1902 and
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1903 for the equivalent GTK fixes.

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::handleWheelEvent):

3:06 AM Changeset in webkit [264076] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259325 - [PlayStation] Fix build breaks after r259112
https://bugs.webkit.org/show_bug.cgi?id=209830

Unreviewed build fix.

Source/WebCore:

Add USE(GLIB) guards around RunLoopSourcePriority usage.

  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):

Source/WebKit:

Replace PLATFORM(WPE) with USE(LIBWPE) within WebWheelEvent.

  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

3:06 AM Changeset in webkit [264075] by Carlos Garcia Campos
  • 22 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259112 - [GTK][WPE] Enable kinetic scrolling with async rendering
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Refactor ScrollAnimationKinetic so that it no longer depends on
ScrollableArea, uses RunLoop::Timer and is responsible for tracking
the history of scroll events. This allows it to be used in
ScrollingTree*ScrollingNodeNicosia to provide kinetic scrolling when
async scrolling is enabled, on GTK and WPE.

No new tests, this just enables existing functionality in more situations.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::scrollTo):

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:

(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):

  • page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
  • platform/ScrollAnimationKinetic.cpp:

(WebCore::ScrollAnimationKinetic::ScrollAnimationKinetic):
(WebCore::ScrollAnimationKinetic::appendToScrollHistory):
(WebCore::ScrollAnimationKinetic::clearScrollHistory):
(WebCore::ScrollAnimationKinetic::computeVelocity):
(WebCore::ScrollAnimationKinetic::start):

  • platform/ScrollAnimationKinetic.h:
  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation):
(WebCore::ScrollAnimatorGeneric::handleWheelEvent):
(WebCore::ScrollAnimatorGeneric::willEndLiveResize):
(WebCore::ScrollAnimatorGeneric::didAddVerticalScrollbar):
(WebCore::ScrollAnimatorGeneric::didAddHorizontalScrollbar):

  • platform/generic/ScrollAnimatorGeneric.h:

Source/WebKit:
[GTK][WPE] Enable kinetic scrolling with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=209230

Reviewed by Žan Doberšek.

Modify WPE mousewheel event delivery so that it includes the necessary
phases needed to infer press/release times and allow for kinetic
scrolling.

  • Shared/NativeWebWheelEvent.h:
  • Shared/WebEvent.h:
  • Shared/WebWheelEvent.cpp:

(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):

  • Shared/libwpe/NativeWebWheelEventLibWPE.cpp:

(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):

  • Shared/libwpe/WebEventFactory.cpp:

(WebKit::WebEventFactory::createWebWheelEvent):

  • Shared/libwpe/WebEventFactory.h:
  • UIProcess/API/wpe/PageClientImpl.cpp:

(WebKit::PageClientImpl::doneWithTouchEvent):

  • UIProcess/API/wpe/ScrollGestureController.cpp:

(WebKit::ScrollGestureController::handleEvent):

  • UIProcess/API/wpe/ScrollGestureController.h:

(WebKit::ScrollGestureController::phase):

  • UIProcess/API/wpe/WPEView.cpp:

(WKWPE::m_backend):

3:06 AM Changeset in webkit [264074] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r259037 - Syscall param sendmsg(msg.msg_iov[0]) points to uninitialised byte(s) in IPC::Connection::sendOutgoingMessage
https://bugs.webkit.org/show_bug.cgi?id=146729

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-03-26
Reviewed by Carlos Garcia Campos.

The entire MessageInfo is passed to write(), so we have to zero the padding bytes to avoid
writing uninitialized memory.

  • Platform/IPC/unix/UnixMessage.h:

(IPC::MessageInfo::MessageInfo):

2:02 AM Changeset in webkit [264073] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit

Merge r262368 - [WPE][GTK] pthread_create() fails with EPERM in the second WebKitWebProcess with sandbox on
https://bugs.webkit.org/show_bug.cgi?id=212380

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-01
Reviewed by Adrian Perez de Castro.

Dereference scmp_arg_cmp before use.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::setupSeccomp):

2:02 AM Changeset in webkit [264072] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r259798 - Use more WeakPtr in RenderTreeBuilder::FirstLetter
https://bugs.webkit.org/show_bug.cgi?id=210251
<rdar://problem/61180381>

Reviewed by Zalan Bujtas.

For safety.

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

2:02 AM Changeset in webkit [264071] by Carlos Garcia Campos
  • 70 edits in releases/WebKitGTK/webkit-2.28/Source

Merge r259355 - Bindings that override getOwnPropertySlotByIndex need to say they MayHaveIndexedAccessors
https://bugs.webkit.org/show_bug.cgi?id=209762

Reviewed by Darin Adler.

Source/JavaScriptCore:

Change indexingType to indexingModeIncludingHistory to more
clearly indicate the expected range of possible valid values.

  • runtime/StructureInlines.h:

(JSC::Structure::create):

Source/WebCore:

There may be places where we rely on this for semantic
correctness. I couldn't find any right now but we might as
well be conservative since this isn't a performance regression.

  • bindings/js/JSDOMWindowProperties.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSInterfaceName.h:

(WebCore::JSInterfaceName::createStructure):

  • bindings/scripts/test/JS/JSMapLike.h:

(WebCore::JSMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.h:

(WebCore::JSReadOnlyMapLike::createStructure):

  • bindings/scripts/test/JS/JSReadOnlySetLike.h:

(WebCore::JSReadOnlySetLike::createStructure):

  • bindings/scripts/test/JS/JSSetLike.h:

(WebCore::JSSetLike::createStructure):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

(WebCore::JSTestActiveDOMObject::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactions.h:

(WebCore::JSTestCEReactions::createStructure):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:

(WebCore::JSTestCEReactionsStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestCallTracer.h:

(WebCore::JSTestCallTracer::createStructure):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestDOMJIT.h:

(WebCore::JSTestDOMJIT::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:

(WebCore::JSTestEnabledBySetting::createStructure):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:

(WebCore::JSTestEnabledForContext::createStructure):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::createStructure):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::createStructure):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::createStructure):

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

(WebCore::JSTestGlobalObject::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:

(WebCore::JSTestIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:

(WebCore::JSTestIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:

(WebCore::JSTestIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:

(WebCore::JSTestInterfaceLeadingUnderscore::createStructure):

  • bindings/scripts/test/JS/JSTestIterable.h:

(WebCore::JSTestIterable::createStructure):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:

(WebCore::JSTestMediaQueryListListener::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedConstructor.h:

(WebCore::JSTestNamedConstructor::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:

(WebCore::JSTestNamedDeleterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:

(WebCore::JSTestNamedDeleterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:

(WebCore::JSTestNamedDeleterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:

(WebCore::JSTestNamedDeleterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:

(WebCore::JSTestNamedGetterCallWith::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:

(WebCore::JSTestNamedGetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:

(WebCore::JSTestNamedGetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:

(WebCore::JSTestNamedSetterNoIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:

(WebCore::JSTestNamedSetterThrowingException::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:

(WebCore::JSTestNamedSetterWithIdentifier::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.h:

(WebCore::JSTestNamedSetterWithUnforgableProperties::createStructure):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.h:

(WebCore::JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::createStructure):

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

(WebCore::JSTestOverloadedConstructors::createStructure):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:

(WebCore::JSTestOverloadedConstructorsWithSequence::createStructure):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

(WebCore::JSTestOverrideBuiltins::createStructure):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:

(WebCore::JSTestPluginInterface::createStructure):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.h:

(WebCore::JSTestPromiseRejectionEvent::createStructure):

  • bindings/scripts/test/JS/JSTestSerialization.h:

(WebCore::JSTestSerialization::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationIndirectInheritance.h:

(WebCore::JSTestSerializationIndirectInheritance::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInherit.h:

(WebCore::JSTestSerializationInherit::createStructure):

  • bindings/scripts/test/JS/JSTestSerializationInheritFinal.h:

(WebCore::JSTestSerializationInheritFinal::createStructure):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::createStructure):

  • bindings/scripts/test/JS/JSTestStringifier.h:

(WebCore::JSTestStringifier::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:

(WebCore::JSTestStringifierAnonymousOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:

(WebCore::JSTestStringifierNamedOperation::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:

(WebCore::JSTestStringifierOperationImplementedAs::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:

(WebCore::JSTestStringifierOperationNamedToString::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:

(WebCore::JSTestStringifierReadOnlyAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:

(WebCore::JSTestStringifierReadWriteAttribute::createStructure):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::createStructure):

2:02 AM Changeset in webkit [264070] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258799 - Content-Type & Nosniff Ignored on XML External Entity Resources
<https://webkit.org/b/191171>
<rdar://problem/45763222>

Reviewed by Darin Adler.

Source/WebCore:

Test: http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml

  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • platform/MIMETypeRegistry.h:

(WebCore::MIMETypeRegistry::isXMLEntityMIMEType): Add.

  • Checks for XML external entity MIME types.
  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::externalEntityMimeTypeAllowedByNosniff): Add.

  • Checks whether the MIME type is valid based on the presence of the "X-Content-Type-Options: nosniff" header.

(WebCore::openFunc):

  • Drop the contents of the resource that was returned and print an error message to the Web Inspector console if externalEntityMimeTypeAllowedByNosniff() says the MIME type is not allowed.

LayoutTests:

  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity-expected.txt: Add.
  • http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml: Add.
2:01 AM Changeset in webkit [264069] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r258278 - SVG filter triggers unstable layout.
https://bugs.webkit.org/show_bug.cgi?id=207444
rdar://problem/59297004

Reviewed by Simon Fraser.

SVG filter code marks DOM nodes dirty and schedules style recalc outside of the SVG root
while in layout. This could lead to unstable layout and cause battery drain.
(See webkit.org/b/208903)

  • rendering/RenderLayer.cpp: Remove filterNeedsRepaint(). It's a dangerously misleading name and should

not be part of RenderLayer.
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::notifyFinished):

  • rendering/svg/RenderSVGResourceContainer.cpp:

(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):

2:01 AM Changeset in webkit [264068] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.28

Merge r258459 - SVGMatrix should have the access right of its owner SVGTransform always
https://bugs.webkit.org/show_bug.cgi?id=207462

Reviewed by Simon Fraser.

Source/WebCore:

The SVGMatrix needs to be reattached to its owner SVGTransform when the
access right of this owner changes. The access right of the owner changes
when it gets attached to or detached from a higher level owner.

Test: svg/dom/SVGTransformList-anim-read-only.html

  • svg/SVGTransform.h:
  • svg/properties/SVGProperty.h:

(WebCore::SVGProperty::attach):
(WebCore::SVGProperty::detach):
(WebCore::SVGProperty::reattach):

LayoutTests:

  • svg/dom/SVGTransformList-anim-read-only-expected.txt: Added.
  • svg/dom/SVGTransformList-anim-read-only.html: Added.
2:01 AM Changeset in webkit [264067] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore

Merge r258452 - Missing arithMode for ArithAbs and ArithNegate in DFGClobberize
https://bugs.webkit.org/show_bug.cgi?id=208685
<rdar://problem/60115088>

Reviewed by Saam Barati.

In the pure case of ArithNegate and ArithAbs in DFGClobberize, their PureValues did not include their
respective ArithMode. That means that e.g. a CheckOverflow ArithNegate/Abs could be considered equivalent
to an Unchecked version of the same node.

Thanks to Samuel Groß of Google Project Zero for identifying this bug.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

2:01 AM Changeset in webkit [264066] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore

Merge r257746 - ScriptController::executeIfJavaScriptURL() uses wrong JSGlobalObject.
https://bugs.webkit.org/show_bug.cgi?id=208290
<rdar://problem/59839476>

Reviewed by Chris Dumez.

The call to executeScriptIgnoringException() may have changed the current global
object of the window. We should be using the original global object that produced
the result string.

Also added a missing exception check needed after a potential rope resolution.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeIfJavaScriptURL):

1:42 AM Changeset in webkit [264065] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[webkitpy] run-minibrowser doesn't default to mac and stdout/stderr are not displayed
https://bugs.webkit.org/show_bug.cgi?id=214072

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

  • Scripts/webkitpy/minibrowser/run_webkit_app.py:

(main): Default to mac platform, like in old-run-minibrowser.

  • Scripts/webkitpy/port/base.py:

(Port.run_minibrowser): Display MiniBrowser stdout and stderr on the terminal output.

1:39 AM Changeset in webkit [264064] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak] Avoid error message 'error: org.webkit.Sdk/*unspecified*/*unspecified*' not installed
https://bugs.webkit.org/show_bug.cgi?id=213871

Reviewed by Philippe Normand.

The error message happens when requesting a Flatpak SDK version but there's no Flatpak SDK installed yet.
In that case, ignore stderr to filter out the message.

  • flatpak/flatpakutils.py:

(run_sanitized):
(FlatpakObject.flatpak):
(FlatpakObject.version):

1:20 AM Changeset in webkit [264063] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Initial installation with IceCC enabled fails
https://bugs.webkit.org/show_bug.cgi?id=213833

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

Avoid attempting to use the IceCC environment during the toolchain
archive update. The initial SDK installation triggers this when
IceCC is enabled on the command-line or via CCACHE_PREFIX, after
resetting the internal toolchain mapping. So the solution is to
opt-out of this runtime configuration setup, which is useless
anyway when the toolchain archive is being generated.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.run_in_sandbox):
(WebkitFlatpak.pack_toolchain):

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

REGRESSION(r263836): [GStreamer] Debug ASSERT hits
https://bugs.webkit.org/show_bug.cgi?id=214047

Patch by Philippe Normand <pnormand@igalia.com> on 2020-07-08
Reviewed by Xabier Rodriguez-Calvar.

Reduce the element dependency on RefPtr<MediaStreamTrackPrivate> which is not MT-safe. The
data we need from it are its ID and the contents required to build a GstTagList. So we now
create this tag-list upfront and keep track of the trackID as well.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:

(webkitMediaStreamSrcAddPad):
(ProbeData::ProbeData):
(webkitMediaStreamSrcPadProbeCb):
(webkitMediaStreamSrcSetupSrc):

12:06 AM Changeset in webkit [264061] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.29.3

WebKitGTK 2.29.3

12:05 AM Changeset in webkit [264060] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.3 release

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.29.3.
Note: See TracTimeline for information about the timeline view.