[webkit-changes] [WebKit/WebKit] 3b2f1f: Branch WebKitGTK for 2.30

Adrian Perez noreply at github.com
Thu Dec 1 11:54:54 PST 2022


  Branch: refs/heads/webkitgtk/2.30
  Home:   https://github.com/WebKit/WebKit
  Commit: 3b2f1f256e3981c37a7c30713b61bbd053fed53d
      https://github.com/WebKit/WebKit/commit/3b2f1f256e3981c37a7c30713b61bbd053fed53d
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-08-12 (Wed, 12 Aug 2020)

  Changed paths:

  Log Message:
  -----------
  Branch WebKitGTK for 2.30


  Commit: f02f6df4e31611b32feeb947a1f1b277fff1cd6e
      https://github.com/WebKit/WebKit/commit/f02f6df4e31611b32feeb947a1f1b277fff1cd6e
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/accessibility/AccessibilityMenuListOption.cpp
    M Source/WebCore/page/Quirks.h
    M Source/WebCore/page/UndoItem.cpp

  Log Message:
  -----------
  Merge r265559 - Unreviewed non-unified build fix.

No new tests needed.

* accessibility/AccessibilityMenuListOption.cpp: Add missing inclusion of
HTMLSelectElement.h.
* page/Quirks.h: Add mising forward declaration of HTMLVideoElement.
* page/UndoItem.cpp: Add missing inclusion of Document.h.


  Commit: 3071f7ccbd6f3e67d730180ca6338cedea80ee16
      https://github.com/WebKit/WebKit/commit/3071f7ccbd6f3e67d730180ca6338cedea80ee16
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Merge r265560 - WebPageProxy::registerEditCommand should be robust against invalid undo step identifiers
https://bugs.webkit.org/show_bug.cgi?id=215412
<rdar://problem/66296820>

Reviewed by Tim Horton.

Add a `MESSAGE_CHECK` to avoid ever creating a `WebEditCommandProxy` with an invalid command identifier.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::registerEditCommand):


  Commit: 4659503efd4b8fc30c3a8a46b0b08dd32fb3c981
      https://github.com/WebKit/WebKit/commit/4659503efd4b8fc30c3a8a46b0b08dd32fb3c981
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/editing/TextManipulationController.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm

  Log Message:
  -----------
  Merge r265561 - Broken formatting in price table on yandex.ru after translating to English
https://bugs.webkit.org/show_bug.cgi?id=215416
<rdar://problem/66354018>

Reviewed by Tim Horton.

Source/WebCore:

Extend the behavior added in r265188 so that it applies to all elements that have `display: table-cell;`, rather
than only table data cell elements.

* editing/TextManipulationController.cpp:
(WebCore::isEnclosingItemBoundaryElement):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
(TestWebKitAPI::TEST):


  Commit: 5a30bb48cd8c222882d5e4880f342201bb0851ca
      https://github.com/WebKit/WebKit/commit/5a30bb48cd8c222882d5e4880f342201bb0851ca
  Author: Stephan Szabo <stephan.szabo at sony.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/accessibility/AXObjectCache.h

  Log Message:
  -----------
  Merge r265564 - [PlayStation] Build fix for !ENABLE(ACCESSIBILITY) after r265514
https://bugs.webkit.org/show_bug.cgi?id=215426

AXObjectCache::getOrCreate(AccessibilityRole) changed names
in the above, but the short definition for
!ENABLE(ACCESSIBILITY) didn't update.

Unreviewed build fix.

* accessibility/AXObjectCache.h: Update name to match new name


  Commit: af5041b94788d89936704365a50424c2ddfe7647
      https://github.com/WebKit/WebKit/commit/af5041b94788d89936704365a50424c2ddfe7647
  Author: Devin Rousso <drousso at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebInspectorUI/ChangeLog
    M Source/WebInspectorUI/UserInterface/Views/BoxShadowEditor.js

  Log Message:
  -----------
  Merge r265597 - Web Inspector: REGRESSION(r259170): text inputs in box-shadow editor push sliders offscreen
https://bugs.webkit.org/show_bug.cgi?id=215436

Reviewed by Darin Adler.

* UserInterface/Views/BoxShadowEditor.js:
(WI.BoxShadowEditor.createInputRow):
Make sure the inputs are `type="text"` so that CSS is able to distinguish them from sliders.


  Commit: 5463e37a9874d31e4850050b87c557dc86f80dc2
      https://github.com/WebKit/WebKit/commit/5463e37a9874d31e4850050b87c557dc86f80dc2
  Author: Lauro Moura <lmoura at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/imported/w3c/ChangeLog
    M LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt
    M LayoutTests/platform/mac-wk2/TestExpectations
    R LayoutTests/webaudio/biquad-allpass-expected.txt
    R LayoutTests/webaudio/biquad-allpass.html
    R LayoutTests/webaudio/biquad-bandpass-expected.txt
    R LayoutTests/webaudio/biquad-bandpass.html
    R LayoutTests/webaudio/biquad-getFrequencyResponse-expected.txt
    R LayoutTests/webaudio/biquad-getFrequencyResponse.html
    R LayoutTests/webaudio/biquad-highpass-expected.txt
    R LayoutTests/webaudio/biquad-highpass.html
    R LayoutTests/webaudio/biquad-highshelf-expected.txt
    R LayoutTests/webaudio/biquad-highshelf.html
    R LayoutTests/webaudio/biquad-lowpass-expected.txt
    R LayoutTests/webaudio/biquad-lowpass.html
    R LayoutTests/webaudio/biquad-lowshelf-expected.txt
    R LayoutTests/webaudio/biquad-lowshelf.html
    R LayoutTests/webaudio/biquad-notch-expected.txt
    R LayoutTests/webaudio/biquad-notch.html
    R LayoutTests/webaudio/biquad-peaking-expected.txt
    R LayoutTests/webaudio/biquad-peaking.html
    R LayoutTests/webaudio/biquadfilternode-basic-expected.txt
    R LayoutTests/webaudio/biquadfilternode-basic.html
    R LayoutTests/webaudio/resources/biquad-testing.js
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/audio/Biquad.cpp

  Log Message:
  -----------
  Merge r265599 - Highpass Biquads use old formulas
https://bugs.webkit.org/show_bug.cgi?id=181191

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

*
web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt:
Rebaselined

Source/WebCore:

Like r265517, but for the highpass filter.

Spec: https://www.w3.org/TR/webaudio/#dom-biquadfiltertype-highpass

Covered by existing tests

* platform/audio/Biquad.cpp:
(WebCore::Biquad::setHighpassParams):

LayoutTests:

Gardening r265517 (lowpass) showed our test failing for GStreamer due
to a different threshold than used by the imported WPT biquad tests.

As they test the same functionality, remove the old webaudio/biquad
tests and keep using the imported WPT ones with the detailed
thresholds.

* platform/glib/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-biquadfilternode-interface/biquad-highpass-expected.txt: Removed.
* platform/mac-wk2/TestExpectations: Removed expectation regarding
deleted file.
* webaudio/biquad-allpass-expected.txt: Removed.
* webaudio/biquad-allpass.html: Removed.
* webaudio/biquad-bandpass-expected.txt: Removed.
* webaudio/biquad-bandpass.html: Removed.
* webaudio/biquad-getFrequencyResponse-expected.txt: Removed.
* webaudio/biquad-getFrequencyResponse.html: Removed.
* webaudio/biquad-highpass-expected.txt: Removed.
* webaudio/biquad-highpass.html: Removed.
* webaudio/biquad-highshelf-expected.txt: Removed.
* webaudio/biquad-highshelf.html: Removed.
* webaudio/biquad-lowpass-expected.txt: Removed.
* webaudio/biquad-lowpass.html: Removed.
* webaudio/biquad-lowshelf-expected.txt: Removed.
* webaudio/biquad-lowshelf.html: Removed.
* webaudio/biquad-notch-expected.txt: Removed.
* webaudio/biquad-notch.html: Removed.
* webaudio/biquad-peaking-expected.txt: Removed.
* webaudio/biquad-peaking.html: Removed.
* webaudio/biquadfilternode-basic-expected.txt: Removed.
* webaudio/biquadfilternode-basic.html: Removed.
* webaudio/resources/biquad-testing.js: Removed.


  Commit: bfd7ec1c8bcc1e4eadf83eedfe9e17eb6fa8bae5
      https://github.com/WebKit/WebKit/commit/bfd7ec1c8bcc1e4eadf83eedfe9e17eb6fa8bae5
  Author: Myles C. Maxfield <mmaxfield at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/fast/loader/font-load-timer-expected.html
    A LayoutTests/fast/loader/font-load-timer.html
    A LayoutTests/fast/loader/resources/font-load-timer-navigation-destination.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/css/CSSFontSelector.cpp
    M Source/WebCore/css/CSSFontSelector.h
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/loader/DocumentLoader.cpp

  Log Message:
  -----------
  Merge r265603 - Font loads quickly followed by navigations may fail indefinitely
https://bugs.webkit.org/show_bug.cgi?id=215435
<rdar://problem/65560550>

Reviewed by Darin Adler.

Source/WebCore:

Font loads are coalesced using a zero-delay timer. However, that zero-delay timer
can fire while the page is in the middle of a navigation, which will cause the font
loads to fail. Then, the second page can request those same fonts, which are marked
as failed, and as such will never actually load/use the desired web font.

This patch just stops the zero-delay timer during navigations, and resumes it
when resuming the document. This means:

1. The second page in the above story will not see that the font has failed, or
even started, and will then re-request the font and load it successfully
2. If the user goes "back" to the previous page, the zero-delay timer is restarted,
the CachedFont realizes it's already succeeded, and the previous page is rendered
as expected.

Test: fast/loader/font-load-timer.html

* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::suspendFontLoadingTimer):
(WebCore::CSSFontSelector::restartFontLoadingTimer):
* css/CSSFontSelector.h:
* dom/Document.cpp:
(WebCore::Document::resume):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoading):

LayoutTests:

1) The page has some content that has “font-family: WebFont” but there are no @font-face blocks on the page
2) In script, after the page has loaded, add an @font-face rule to the page with “font-family: WebFont” and some valid font URL
3) Synchronously, within the same turn of the run loop, trigger a synchronous layout of the element (using offsetWidth or something). This will add the font to the 0-delay time work list.
4) Synchronously, within the same turn of the run loop, navigate to a second page that doesn’t use the web font.
5) The second page waits some small-but-positive amount of time. This will cause the 0-delay timer to fire, but because the page is in the middle of navigating, the font load should fail.
6) The second page adds the same @font-face rule to itself using script. This should pull the same (failed) CachedResource object out of the memory cache.
7) Use the CSS Font Loading API to wait for the font load to complete
8) Make sure that the font is used on the second page (as a reference test). Today, the second page’s font load will fail because it pulled the failed font out of the memory cache. The test makes sure the second page’s font load succeeds.

* fast/loader/font-load-timer-expected.html: Added.
* fast/loader/font-load-timer.html: Added.
* fast/loader/resources/font-load-timer-navigation-destination.html: Added.


  Commit: 14115c67f6167c668b76ba8616d6c1dc21d7b185
      https://github.com/WebKit/WebKit/commit/14115c67f6167c668b76ba8616d6c1dc21d7b185
  Author: Alan Bujtas <zalan at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/rendering/RenderLayer.cpp
    A Source/WebCore/rendering/RenderTreeMutationDisallowedScope.cpp
    A Source/WebCore/rendering/RenderTreeMutationDisallowedScope.h
    M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

  Log Message:
  -----------
  Merge r265630 - Add RenderTreeMutationDisallowedScope to track intrusive render tree mutations
https://bugs.webkit.org/show_bug.cgi?id=215463
<rdar://problem/67012831>

Reviewed by Simon Fraser.

RenderLayer::enclosingScrollableLayer should not mutate the render tree accidentally.
This is related to <rdar://problem/64739768>.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderTreeMutationDisallowedScope.cpp: Added.
* rendering/RenderTreeMutationDisallowedScope.h: Added.
(WebCore::RenderTreeMutationDisallowedScope::RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::~RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::isMutationAllowed):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroy):


  Commit: 85b6d76948a3cb5e4c416f83fa533633dcfa00f8
      https://github.com/WebKit/WebKit/commit/85b6d76948a3cb5e4c416f83fa533633dcfa00f8
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/editing/pasteboard/copy-across-shadow-boundaries-crash-expected.txt
    A LayoutTests/editing/pasteboard/copy-across-shadow-boundaries-crash.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/editing/markup.cpp

  Log Message:
  -----------
  Merge r265647 - Crash in WebCore::StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=199224

Reviewed by Michael Catanzaro.

Source/WebCore:

The crash happens in StyledMarkupAccumulator::traverseNodesForSerialization() when we can't enter the node and
nextSkippingChildren() returns nullptr.

Test: editing/pasteboard/copy-across-shadow-boundaries-crash.html

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Set next to pastEnd if nextSkippingChildren()
returns nullptr.

LayoutTests:

* editing/pasteboard/copy-across-shadow-boundaries-crash-expected.txt: Added.
* editing/pasteboard/copy-across-shadow-boundaries-crash.html: Added.


  Commit: 1ac9ba1aa0f19e2e51a1203fad3c3be2d2a3760f
      https://github.com/WebKit/WebKit/commit/1ac9ba1aa0f19e2e51a1203fad3c3be2d2a3760f
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/cairo/CairoOperations.cpp

  Log Message:
  -----------
  Merge r265648 - REGRESSION(r254506): [Freetype] Spektra variable font does not work properly
https://bugs.webkit.org/show_bug.cgi?id=215214
<rdar://problem/66984524>

Reviewed by Adrian Perez de Castro.

This regressed in r254506, when a font smoothing mode is passed to drawGlyphsToContext() a new cairo font
options is set, using the default font options and changing the antialiasing. This means the font options from
the font (the ones containing the variation settings) set in the context by cairo_set_scaled_font() are
lost. We should copy the scaled font options instead, then set the antialiasing and apply them.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawGlyphsToContext): Use cairo_scaled_font_get_font_options() instead of getDefaultCairoFontOptions().


  Commit: fbc33455b317a8babf9810ff752b365a0f881385
      https://github.com/WebKit/WebKit/commit/fbc33455b317a8babf9810ff752b365a0f881385
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/gtk/DropTargetGtk3.cpp

  Log Message:
  -----------
  Merge r265649 - [GTK] Do not accept drag operations when the matched target list is empty
https://bugs.webkit.org/show_bug.cgi?id=215372

Reviewed by Adrian Perez de Castro.

Do not initialize m_selectionData if we don't have valid targets.

* UIProcess/API/gtk/DropTargetGtk3.cpp:
(WebKit::DropTarget::accept):
(WebKit::DropTarget::leaveTimerFired):


  Commit: 260c5aa7ebca8b31de1aed828c47b012cf439e16
      https://github.com/WebKit/WebKit/commit/260c5aa7ebca8b31de1aed828c47b012cf439e16
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/gtk/DropTargetGtk4.cpp

  Log Message:
  -----------
  Merge r265650 - [GTK4] Notify the web process on drag leave
https://bugs.webkit.org/show_bug.cgi?id=215373

Reviewed by Adrian Perez de Castro.

We missed this when implemented drag and drop support for GTK4.

* UIProcess/API/gtk/DropTargetGtk4.cpp:
(WebKit::DropTarget::leave): Call dragExited() and resetCurrentDragInformation() on WebPageProxy.


  Commit: 27be87733345ebeb61de68cfc67b46ade5268d55
      https://github.com/WebKit/WebKit/commit/27be87733345ebeb61de68cfc67b46ade5268d55
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.90 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.29.90.


  Commit: c794137d359387cb68931ef11087c768f0f8fb0a
      https://github.com/WebKit/WebKit/commit/c794137d359387cb68931ef11087c768f0f8fb0a
  Author: Alan Bujtas <zalan at apple.com>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/rendering/RenderLayer.cpp
    R Source/WebCore/rendering/RenderTreeMutationDisallowedScope.cpp
    R Source/WebCore/rendering/RenderTreeMutationDisallowedScope.h
    M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

  Log Message:
  -----------
  Revert r265658 - Merge r265630 - REGRESSION(r254506): [Freetype] Spektra variable font does not work properly
https://bugs.webkit.org/show_bug.cgi?id=215214
<rdar://problem/66984524>

Reviewed by Adrian Perez de Castro.

This regressed in r254506, when a font smoothing mode is passed to drawGlyphsToContext() a new cairo font
options is set, using the default font options and changing the antialiasing. This means the font options from
the font (the ones containing the variation settings) set in the context by cairo_set_scaled_font() are
lost. We should copy the scaled font options instead, then set the antialiasing and apply them.

* platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawGlyphsToContext): Use cairo_scaled_font_get_font_options() instead of getDefaultCairoFontOptions().


  Commit: 1e0375704bc7304404354e9705407ec93d2364d6
      https://github.com/WebKit/WebKit/commit/1e0375704bc7304404354e9705407ec93d2364d6
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-08-14 (Fri, 14 Aug 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.91 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.29.91.


  Commit: 2c04b18c2fa11638d629b3c646f752602fd96a37
      https://github.com/WebKit/WebKit/commit/2c04b18c2fa11638d629b3c646f752602fd96a37
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-08-15 (Sat, 15 Aug 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.90 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.29.90.


  Commit: ab49a4a4d556966308b97d699abb4cacf82e4449
      https://github.com/WebKit/WebKit/commit/ab49a4a4d556966308b97d699abb4cacf82e4449
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-08-15 (Sat, 15 Aug 2020)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/heap/RegisterState.h

  Log Message:
  -----------
  Merged r265692 - [ARMv7][JSC] Conservative GC is not considering `r7` as a root
https://bugs.webkit.org/show_bug.cgi?id=215512

Reviewed by Yusuke Suzuki.

Since `r7` is a callee-saved register on ARMv7
we need to consider it as a conservative root.

See the statement "A subroutine must preserve
the contents of the registers r4-r8, r10, r11
and SP (and r9 in PCS variants that designate
r9 as v6) form page 15 of
https://developer.arm.com/documentation/ihi0042/f/.

* heap/RegisterState.h:


  Commit: d2bad8f89f3d6f2ccc1e345e1246637d48d7ff13
      https://github.com/WebKit/WebKit/commit/d2bad8f89f3d6f2ccc1e345e1246637d48d7ff13
  Author: Piotr Drąg <piotrdrag at gmail.com>
  Date:   2020-08-17 (Mon, 17 Aug 2020)

  Changed paths:
    M Source/WebCore/platform/gtk/po/ChangeLog
    M Source/WebCore/platform/gtk/po/pl.po

  Log Message:
  -----------
  Merge r265754 - [GTK][l10n] Updated Polish translation of WebKitGTK for 2.30
https://bugs.webkit.org/show_bug.cgi?id=215547

Patch by Piotr Drąg <piotrdrag at gmail.com> on 2020-08-17
Rubber-stamped by Carlos Garcia Campos.

* pl.po:


  Commit: f5a258ace9c6eb583ef362782820f48c0a05ccba
      https://github.com/WebKit/WebKit/commit/f5a258ace9c6eb583ef362782820f48c0a05ccba
  Author: Alan Bujtas <zalan at apple.com>
  Date:   2020-09-01 (Tue, 01 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/rendering/RenderLayer.cpp
    A Source/WebCore/rendering/RenderTreeMutationDisallowedScope.cpp
    A Source/WebCore/rendering/RenderTreeMutationDisallowedScope.h
    M Source/WebCore/rendering/updating/RenderTreeBuilder.cpp

  Log Message:
  -----------
  Merge r265630 - Add RenderTreeMutationDisallowedScope to track intrusive render tree mutations
https://bugs.webkit.org/show_bug.cgi?id=215463
<rdar://problem/67012831>

Reviewed by Simon Fraser.

RenderLayer::enclosingScrollableLayer should not mutate the render tree accidentally.
This is related to <rdar://problem/64739768>.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderTreeMutationDisallowedScope.cpp: Added.
* rendering/RenderTreeMutationDisallowedScope.h: Added.
(WebCore::RenderTreeMutationDisallowedScope::RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::~RenderTreeMutationDisallowedScope):
(WebCore::RenderTreeMutationDisallowedScope::isMutationAllowed):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroy):


  Commit: baed3bfd0a9817504bceff40abd0748a43295e88
      https://github.com/WebKit/WebKit/commit/baed3bfd0a9817504bceff40abd0748a43295e88
  Author: Alan Bujtas <zalan at apple.com>
  Date:   2020-09-01 (Tue, 01 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/rendering/RenderTextControlSingleLine.cpp

  Log Message:
  -----------
  Merge r265722 - RenderTextControlSingleLine::scroll* functions should not call Element::scroll* on the inner text content
https://bugs.webkit.org/show_bug.cgi?id=215516
<rdar://problem/64739768>

Reviewed by Simon Fraser.

Normally the RenderBox::content*, border*, padding* and scroll* functions grab the geometry information from the renderer itself.
The clients of these functions expect the geometry data to be consistent with the rest of the rendering context
(e.g coordinates are in the coordinate system of the containing block, paint time operations are not applied etc).
Also these functions are supposed to be const. They should not mutate the geometry or the render tree itself.
Forwarding ::scroll* calls to Element::scroll* can't guarantee neither of these above.

* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::scrollWidth const):
(WebCore::RenderTextControlSingleLine::scrollHeight const):
(WebCore::RenderTextControlSingleLine::scrollLeft const):
(WebCore::RenderTextControlSingleLine::scrollTop const):


  Commit: 83a609db1ec73f60a5e6492e8078d667c8fcb7f3
      https://github.com/WebKit/WebKit/commit/83a609db1ec73f60a5e6492e8078d667c8fcb7f3
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp

  Log Message:
  -----------
  Merge r265856 - WebSocketChannel::didClose should correctly compute whether a closing handshake was received
https://bugs.webkit.org/show_bug.cgi?id=215644

Reviewed by Darin Adler.

Covered by LayoutTests/http/tests/websocket/tests/hybi/close-code-and-reason.html with NSURLSession code path enabled.

* WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::didClose):
As noted by Jiten Mehta, absence of closing handshake from the server is notified by WebSocketChannel::CloseEventCodeAbnormalClosure.
Update check accordingly.


  Commit: bbc42fb9d79632aefa45ae0f1ca1fe99c2c8263d
      https://github.com/WebKit/WebKit/commit/bbc42fb9d79632aefa45ae0f1ca1fe99c2c8263d
  Author: Lauro Moura <lmoura at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/glib/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt
    M LayoutTests/platform/glib/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp

  Log Message:
  -----------
  Merge r265940 - REGRESSION(r265856) [GTK][WPE] hybi websockets tests failing
https://bugs.webkit.org/show_bug.cgi?id=215679

Reviewed by Carlos Garcia Campos.

Source/WebKit:

r265856 changed WebSocketChannel to expect AbnormalClosure when the
closing handshake is not received.

Covered by existing tests.

* NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::didFail):

LayoutTests:

Rebaseline and update expectations.

* platform/glib/TestExpectations:
* platform/glib/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
* platform/glib/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt:


  Commit: e7320c8a74c0f085df4ceba06ce6f011f9be2bda
      https://github.com/WebKit/WebKit/commit/e7320c8a74c0f085df4ceba06ce6f011f9be2bda
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/RunLoop.h
    M Source/WTF/wtf/glib/RunLoopGLib.cpp
    M Source/WebCore/ChangeLog
    M Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp
    M Source/WebCore/inspector/agents/InspectorTimelineAgent.h

  Log Message:
  -----------
  Merge r266103 - [GTK] Implement rendering frames timeline panel for GTK+ port
https://bugs.webkit.org/show_bug.cgi?id=150392
<rdar://problem/23200510>

Reviewed by Brian Burg.

Source/WebCore:

Use new RunLoop API to observe the run loop events when the GLib event loop is used.

* inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
* inspector/agents/InspectorTimelineAgent.h:

Source/WTF:

Add API to observe RunLoop events for GLib event loop implementation.

* wtf/RunLoop.h:
* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::RunLoop): Use RunLoopSource struct and initialize the RunLoop.
(WTF::RunLoop::observe): Add the given observer to the set.
(WTF::RunLoop::notify): Notife observers of the given event.
(WTF::RunLoop::TimerBase::TimerBase): Use RunLoopSource struct and initialize the RunLoop.


  Commit: d94788ab4d776b09c7b13971e8a816e4d9292993
      https://github.com/WebKit/WebKit/commit/d94788ab4d776b09c7b13971e8a816e4d9292993
  Author: Jim Mason <jmason at ibinx.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/glib/RunLoopGLib.cpp

  Log Message:
  -----------
  Merge r266331 - [GTK] REGRESSION(r150392) insufficient space allocation results in heap corruption
https://bugs.webkit.org/show_bug.cgi?id=215976

Patch by Jim Mason <jmason at ibinx.com> on 2020-08-30
Reviewed by Carlos Garcia Campos.

* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::TimerBase):


  Commit: 4b72b4ec7833bd7cd0ee03ab44b43ddc1308d576
      https://github.com/WebKit/WebKit/commit/4b72b4ec7833bd7cd0ee03ab44b43ddc1308d576
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/RunLoop.h
    M Source/WTF/wtf/glib/RunLoopGLib.cpp
    M Source/WebCore/ChangeLog
    M Source/WebCore/inspector/TimelineRecordFactory.cpp
    M Source/WebCore/inspector/TimelineRecordFactory.h
    M Source/WebCore/inspector/agents/InspectorTimelineAgent.cpp
    M Source/WebInspectorUI/ChangeLog
    M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
    M Source/WebInspectorUI/UserInterface/Controllers/TimelineManager.js
    M Source/WebInspectorUI/UserInterface/Models/RenderingFrameTimelineRecord.js
    M Source/WebInspectorUI/UserInterface/Views/TimelineTabContentView.js

  Log Message:
  -----------
  Merge r266227 - [GTK] Include the run loop source name in frame rendering timeline
https://bugs.webkit.org/show_bug.cgi?id=215847

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Include the given name in rendering frame record data.

* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createRenderingFrameData):
* inspector/TimelineRecordFactory.h:
* inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::internalStart):

Source/WebInspectorUI:

Show the frame name if present in timeline panel.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager.prototype._processRecord):
* UserInterface/Models/RenderingFrameTimelineRecord.js:
(WI.RenderingFrameTimelineRecord):
(WI.RenderingFrameTimelineRecord.prototype.get name):
* UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView.displayNameForRecord):

Source/WTF:

Pass the run loop source name to the observer.

* wtf/RunLoop.h:
* wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::notify):


  Commit: 3e3e9cd287a32dba10325f4d6739975210c1462e
      https://github.com/WebKit/WebKit/commit/3e3e9cd287a32dba10325f4d6739975210c1462e
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/runtime/SamplingProfiler.cpp
    M Source/JavaScriptCore/runtime/SamplingProfiler.h
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/Threading.cpp
    M Source/WTF/wtf/Threading.h
    M Source/WTF/wtf/ThreadingPrimitives.h
    M Source/WTF/wtf/posix/ThreadingPOSIX.cpp
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/ResourceUsageThread.h
    M Source/WebCore/page/cocoa/ResourceUsageThreadCocoa.mm
    M Source/WebCore/page/linux/ResourceUsageThreadLinux.cpp

  Log Message:
  -----------
  Merge r266388 - [Linux] Web Inspector: show per thread cpu usage
https://bugs.webkit.org/show_bug.cgi?id=215883

Reviewed by Adrian Perez de Castro.

Source/JavaScriptCore:

Remove platform specific getter machThread() and add thread() to return the Thread instead. The caller knows how
to get the machThread or id from a Thread.

* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::reportTopBytecodes):
(JSC::SamplingProfiler::machThread): Deleted.
* runtime/SamplingProfiler.h:
(JSC::SamplingProfiler::thread):

Source/WebCore:

Get per thread CPU usage and information to fill ResourceUsageData in Linux.

* page/ResourceUsageThread.h:
* page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformSaveStateBeforeStarting): Update to new API in SamplingProfiler.
* page/linux/ResourceUsageThreadLinux.cpp:
(WebCore::ResourceUsageThread::platformSaveStateBeforeStarting): Initialize m_samplingProfilerThreadID.
(WebCore::threadInfoMap):
(WebCore::threadCPUUsage):
(WebCore::collectCPUUsage):
(WebCore::ResourceUsageThread::platformCollectCPUData):
(WebCore::cpuUsage): Deleted.

Source/WTF:

Add API to get the thread ID in Linux platform.

* wtf/Threading.cpp:
(WTF::Thread::initializeInThread):
* wtf/Threading.h:
(WTF::Thread::id const):
* wtf/ThreadingPrimitives.h:
* wtf/posix/ThreadingPOSIX.cpp:
(WTF::Thread::currentID):


  Commit: f942bcf28210adb9ad0a100b01f7d9c06f3c3517
      https://github.com/WebKit/WebKit/commit/f942bcf28210adb9ad0a100b01f7d9c06f3c3517
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/nicosia/NicosiaAnimation.cpp
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h
    M Source/WebKit/ChangeLog
    M Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp

  Log Message:
  -----------
  Merge r266000 - [GTK][WPE] Debug crashes in backdrop filter tests
https://bugs.webkit.org/show_bug.cgi?id=215209

Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2020-08-20
Reviewed by Adrian Perez de Castro.

Source/WebCore:

This only happens in WKTR because RenderLayerCompositor::flushPendingLayerChanges() is called from
RenderLayerCompositor::layerTreeAsText(), so the coordinator doesn't know layers are being flushed and we don't
return early from notifyFlushRequired(). We don't really need to have a coordinator associated to the backdrop
layer, we just need to attach the layer to the coordinator to ensure it's updated.

* platform/graphics/nicosia/NicosiaAnimation.cpp:
(Nicosia::Animation::applyInternal): Handle AnimatedPropertyWebkitBackdropFilter.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer): Detach also the backdrop layer.
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): Attach the backdrop layer to the
coordinator if there's one.
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers): Do not call this for the
backdrop layer.
(WebCore::CoordinatedGraphicsLayer::invalidateCoordinator): Set coordinator to nullptr.
(WebCore::CoordinatedGraphicsLayer::setCoordinatorIncludingSubLayersIfNeeded): Set the coordinator and attach
the layer. Also attach the backdrop layer.
(WebCore::CoordinatedGraphicsLayer::setCoordinator): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit:

* WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::~CompositingCoordinator): Use invalidateCoordinator() instead of setCoordinator()
that has been removed.
(WebKit::CompositingCoordinator::createGraphicsLayer): Use setCoordinatorIncludingSubLayersIfNeeded() instead of
attaching the layer directly.
(WebKit::CompositingCoordinator::attachLayer): Do not call setCoordinator(), the caller is expected to set the
coordinator.

LayoutTests:

Remove expectations for tests that are now passing.

* platform/glib/TestExpectations:


  Commit: f7fbdf36577290f36e4b2bf2b81eacec20fba782
      https://github.com/WebKit/WebKit/commit/f7fbdf36577290f36e4b2bf2b81eacec20fba782
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp

  Log Message:
  -----------
  Merge r266389 - [GTK][WPE] Do not use the default WebsiteDataStore for downloads
https://bugs.webkit.org/show_bug.cgi?id=216001

Reviewed by Adrian Perez de Castro.

Use the web context one instead.

* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextStartDownload):


  Commit: 3fbd46fcda9a3d227947abb4406bc7ba07820dd2
      https://github.com/WebKit/WebKit/commit/3fbd46fcda9a3d227947abb4406bc7ba07820dd2
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
    M Source/WebKit/UIProcess/API/glib/WebKitDownloadClient.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/UIProcess/mac/WebPageProxyMac.mm
    M Source/WebKit/UIProcess/playstation/WebPageProxyPlayStation.cpp
    M Source/WebKit/UIProcess/win/WebPageProxyWin.cpp
    M Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp
    M Tools/TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp

  Log Message:
  -----------
  Merge r266576 - [GTK] Unexpected User-Agent on redirect
https://bugs.webkit.org/show_bug.cgi?id=191858

Reviewed by Youenn Fablet.

Source/WebKit:

Clear the user agent on new request after a redirect to ensure a new one is computed taking into account the
quirks if needed. Also ensure quirks are applied for downloads started in the UI process.

* NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection): Clear the user agent on new request.
* UIProcess/API/glib/WebKitDownloadClient.cpp:
* UIProcess/WebPageProxy.h: Add userAgentForURL().
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::download): Use userAgentForURL() instead of userAgent().
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::userAgentForURL): Implement it to apply quirks if needed.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::userAgentForURL): Just return the web page user agent.
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::userAgentForURL): Ditto.
* UIProcess/playstation/WebPageProxyPlayStation.cpp:
(WebKit::WebPageProxy::userAgentForURL): Ditto.
* UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::userAgentForURL): Ditto.
* UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::userAgentForURL): Ditto.

Tools:

Add unit tests to check the user agent is sent in headers and preserved after a redirect for both main resource
and subresources.

* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(serverCallback):
(testDownloadUserAgent):
(beforeAll):
* TestWebKitAPI/Tests/WebKitGLib/TestLoaderClient.cpp:
(testUserAgent):
(serverCallback):
(beforeAll):


  Commit: 4910c41706d85987f143b99f0176258e2dcf9f70
      https://github.com/WebKit/WebKit/commit/4910c41706d85987f143b99f0176258e2dcf9f70
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/JavaScriptCore/API/glib/JSCValue.cpp
    M Source/JavaScriptCore/ChangeLog

  Log Message:
  -----------
  Merge r266577 - Unreviewed. [GLIB] Add missing return

There's no change in behavior because jsObjectCall() returns undefined in case of failure, but fixes a memory leak.

* API/glib/JSCValue.cpp:
(jsc_value_object_invoke_methodv):


  Commit: b877ce0f127ea4b6c17e81601eecc4e5d3138b52
      https://github.com/WebKit/WebKit/commit/b877ce0f127ea4b6c17e81601eecc4e5d3138b52
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M ChangeLog
    M LayoutTests/ChangeLog
    M LayoutTests/platform/wpe/TestExpectations
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Merge r266297 - [WPE] Enable Notifications support
https://bugs.webkit.org/show_bug.cgi?id=215924

Reviewed by Philippe Normand.

.:

Enable web notifications support for the WPE port. The code is shared with the GTK
port, but as we do not try to find and enable libnotify the default implementation
is a stub: embedders can customize how to display notifications by connecting to
the WebKitWebView:show-notification signal. This way we do not add any additional
build dependencies.

* Source/cmake/OptionsWPE.cmake: Flip ENABLE_NOTIFICATIONS to ON.

LayoutTests:

* platform/wpe/TestExpectations: Update test expectations.


  Commit: 3bb0edff39dfe05f3cd1647516773ebb20854c4c
      https://github.com/WebKit/WebKit/commit/3bb0edff39dfe05f3cd1647516773ebb20854c4c
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/UserAgentQuirks.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/PlatformGTK.cmake
    M Tools/TestWebKitAPI/PlatformWPE.cmake
    M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp

  Log Message:
  -----------
  Merge r266584 - [GLIB] Stop using firefox user agent quirk for google docs
https://bugs.webkit.org/show_bug.cgi?id=215845

Reviewed by Adrian Perez de Castro.

Source/WebCore:

It causes problems with the CSP headers when accounts.youtube.com is used by google login and it no longer works
for google docs in any case.

* platform/UserAgentQuirks.cpp:
(WebCore::isGoogle):
(WebCore::urlRequiresFirefoxBrowser):

Tools:

Update API tests. Bring back UserAgentQuirks.cpp to the build that was removed in r244857.

* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/PlatformWPE.cmake:
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):


  Commit: 61cd0b4d26e5d0e978db6fea54560a92748e4f47
      https://github.com/WebKit/WebKit/commit/61cd0b4d26e5d0e978db6fea54560a92748e4f47
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.29.92 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.29.92.


  Commit: 789e2066c9fd7e1b7ab95f32c8f3e2a23feacecc
      https://github.com/WebKit/WebKit/commit/789e2066c9fd7e1b7ab95f32c8f3e2a23feacecc
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-09-04 (Fri, 04 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.29.91 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for the 2.29.91 release.


  Commit: 5567459b755a34a356a91b160fae0843a2810c76
      https://github.com/WebKit/WebKit/commit/5567459b755a34a356a91b160fae0843a2810c76
  Author: Mike Gorse <mgorse at suse.com>
  Date:   2020-09-11 (Fri, 11 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/PlatformGTK.cmake

  Log Message:
  -----------
  Merge r266702 - Build failure; cannot find seccomp.h
https://bugs.webkit.org/show_bug.cgi?id=216226

Patch by Mike Gorse <mgorse at suse.com> on 2020-09-07
Reviewed by Darin Adler.

No new tests (build fix only).

* PlatformGTK.cmake: Add LIBSECCOMP_INCLUDE_DIRS to
WebKit_SYSTEM_INCLUDE_DIRECTORIES.


  Commit: 6aa4d879b84cd9bf0878cebc7e066b562a4e26b7
      https://github.com/WebKit/WebKit/commit/6aa4d879b84cd9bf0878cebc7e066b562a4e26b7
  Author: Mike Gorse <mgorse at suse.com>
  Date:   2020-09-11 (Fri, 11 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp

  Log Message:
  -----------
  Merge r266726 - [GTK] AcceleratedBackingStoreWayland might erroneously try to use SHM with older wpebackend-fdo
https://bugs.webkit.org/show_bug.cgi?id=216254

Patch by Mike Gorse <mgorse at suse.com> on 2020-09-08
Reviewed by Adrian Perez de Castro.

* UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::tryInitializeSHM): Return false for wpebackend-fdo < 1.7.0.


  Commit: d41c972d2d728ecbcad3aebe8df57c8126d5b796
      https://github.com/WebKit/WebKit/commit/d41c972d2d728ecbcad3aebe8df57c8126d5b796
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-11 (Fri, 11 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/network/soup/SoupNetworkSession.cpp

  Log Message:
  -----------
  Merge r266819 - [GTK][WPE] Support NTLM authentication
https://bugs.webkit.org/show_bug.cgi?id=122952

Reviewed by Adrian Perez de Castro.

Add SoupAuthNTLM feature to the session.

* platform/network/soup/SoupNetworkSession.cpp:
(WebCore::SoupNetworkSession::SoupNetworkSession):


  Commit: 585c813f090cd659ee7dd629c1854d4c02a2098a
      https://github.com/WebKit/WebKit/commit/585c813f090cd659ee7dd629c1854d4c02a2098a
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-09-11 (Fri, 11 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.0 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.0


  Commit: 5fefd87abd14eedaf6e83f7f925c58ca13cd08ed
      https://github.com/WebKit/WebKit/commit/5fefd87abd14eedaf6e83f7f925c58ca13cd08ed
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-09-11 (Fri, 11 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.0 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.0


  Commit: 6e779d1229191824908d36344dd046957beb2532
      https://github.com/WebKit/WebKit/commit/6e779d1229191824908d36344dd046957beb2532
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-09-18 (Fri, 18 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp

  Log Message:
  -----------
  Unreviewed. [GTK] Add an env var to force single process model

WEBKIT_USE_SINGLE_WEB_PROCESS=1 can be used to force the single process model when PSON is disabled. This is a
temporary solution for applications still depending on the single process mode behavior. It will be only
available in 2.28 series.

* UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextConstructed):


  Commit: f6e223f72997db72292f455c1acf20ae8df2db57
      https://github.com/WebKit/WebKit/commit/f6e223f72997db72292f455c1acf20ae8df2db57
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-18 (Fri, 18 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp

  Log Message:
  -----------
  Merge r267226 - [GTK] Epiphany does not make connections in Incognito Mode after clearing .cache
https://bugs.webkit.org/show_bug.cgi?id=216430

Reviewed by Adrian Perez de Castro.

Source/WebKit:

The problem is that when using an ephemeral context, the download is started before the ephemeral session has
been registered in the network process, so it's just ignored.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createDownloadProxy): Pass the given WebsiteDataStore to ensureNetworkProcess().

Tools:

Add unit test to check we can start downloads in ephemeral sessions before a web view is created.

* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(testDownloadEphemeralContext):
(beforeAll):


  Commit: e9c1f39c21113e0e11aea91006ec80866be5f946
      https://github.com/WebKit/WebKit/commit/e9c1f39c21113e0e11aea91006ec80866be5f946
  Author: Rafael Fontenelle <rafaelff at gnome.org>
  Date:   2020-09-18 (Fri, 18 Sep 2020)

  Changed paths:
    M Source/WebCore/platform/gtk/po/ChangeLog
    M Source/WebCore/platform/gtk/po/pt_BR.po

  Log Message:
  -----------
  Merge r267228 - [l10n] [pt_BR] Updated Brazilian Portuguese translation
https://bugs.webkit.org/show_bug.cgi?id=216436

Patch by Rafael Fontenelle <rafaelff at gnome.org> on 2020-09-18
Rubber-stamped by Carlos Garcia Campos.

* pt_BR.po:


  Commit: 53c75dae9f76b4acf1bed3166a60833a841f51e8
      https://github.com/WebKit/WebKit/commit/53c75dae9f76b4acf1bed3166a60833a841f51e8
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-09-21 (Mon, 21 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.1 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.1.


  Commit: 700b5db16b37900d04d0e99fbc0aed373abb88a0
      https://github.com/WebKit/WebKit/commit/700b5db16b37900d04d0e99fbc0aed373abb88a0
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-09-21 (Mon, 21 Sep 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.1 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.1.


  Commit: 399465a7a6a7fa535fd9c3ca77f3e7c3ac119f45
      https://github.com/WebKit/WebKit/commit/399465a7a6a7fa535fd9c3ca77f3e7c3ac119f45
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-28 (Mon, 28 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp

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

Reviewed by Michael Catanzaro.

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

* Modules/websockets/ThreadableWebSocketChannel.cpp:
(WebCore::ThreadableWebSocketChannel::webSocketConnectRequest): Add same site information to WebSocket requests.


  Commit: 5905824c6d97b00ad70b79d00131dc841d0acb6f
      https://github.com/WebKit/WebKit/commit/5905824c6d97b00ad70b79d00131dc841d0acb6f
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-28 (Mon, 28 Sep 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp

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

Reviewed by Michael Catanzaro.

Source/WebCore:

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

* platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageMembers const):

Source/WebKit:

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

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


  Commit: 00b10281cba85963e11e07d5d29af5a6479fc8f9
      https://github.com/WebKit/WebKit/commit/00b10281cba85963e11e07d5d29af5a6479fc8f9
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-09-28 (Mon, 28 Sep 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp

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

Reviewed by Michael Catanzaro.

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

* NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::WebSocketTask): Connect to SoupMessage::starting to notify the web process the handshake
request has been sent.


  Commit: efcbd209f02027fa5de0568d0589ffc4a8d5195c
      https://github.com/WebKit/WebKit/commit/efcbd209f02027fa5de0568d0589ffc4a8d5195c
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M ChangeLog
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioData.h
    M Source/cmake/GStreamerChecks.cmake

  Log Message:
  -----------
  Merge r267882 - [GTK] Build broken with ENABLE_MEDIA_STREAM enabled and ENABLE_WEB_RTC_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=217128

Reviewed by Philippe Normand.

.:

* Source/cmake/GStreamerChecks.cmake: Only enable USE_LIBWEBRTC when both
ENABLE_MEDIA_STREAM and ENABLE_WEB_RTC is defined. This prevents trying to
build code that uses libwebrtc types when ENABLE_WEB_RTC is disabled but
ENABLE_MEDIA_STREAM is enabled.

Source/WebCore:

No new tests needed.

* platform/mediastream/gstreamer/GStreamerAudioData.h: Remove USE(LIBWEBRTC) guard, as
there is nothing specific to WebRTC in this file, and it is needed when building with
ENABLE_MEDIA_STREAM enabled.


  Commit: 84ecf513960dcb456cd97edd58b536a41fc03100
      https://github.com/WebKit/WebKit/commit/84ecf513960dcb456cd97edd58b536a41fc03100
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-04 (Sun, 04 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioStreamDescription.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.h
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp
    M Source/WebCore/platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h
    M Source/WebCore/platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp
    M Source/WebCore/platform/mock/MockRealtimeAudioSource.cpp
    M Source/WebCore/platform/mock/MockRealtimeVideoSource.cpp

  Log Message:
  -----------
  Merge r267934 - [GTK] Build broken with ENABLE_MEDIA_STREAM enabled and ENABLE_WEB_RTC_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=217128

Remove USE(LIBWEBRTC) guards from media stream code, as it does not actually
depend on libwebrtc and can be built by itself. This allows using e.g. live
audio recording inputs with WebAudio.

Reviewed by Philippe Normand.

No new tests needed.

* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.h:
* platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp:
(WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer):
* platform/mediastream/gstreamer/GStreamerAudioCapturer.h:
* platform/mediastream/gstreamer/GStreamerAudioStreamDescription.h:
* platform/mediastream/gstreamer/GStreamerCapturer.cpp:
* platform/mediastream/gstreamer/GStreamerCapturer.h:
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.h:
* platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
* platform/mediastream/gstreamer/GStreamerVideoCapturer.h:
* platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.cpp:
* platform/mediastream/gstreamer/MockRealtimeAudioSourceGStreamer.h:
* platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
* platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.h:
* platform/mediastream/gstreamer/RealtimeMediaSourceCenterLibWebRTC.cpp:
* platform/mock/MockRealtimeAudioSource.cpp:
* platform/mock/MockRealtimeVideoSource.cpp:


  Commit: 25ace15960e1b1181e0729c85619fb4e1184b3c4
      https://github.com/WebKit/WebKit/commit/25ace15960e1b1181e0729c85619fb4e1184b3c4
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-12 (Mon, 12 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.h

  Log Message:
  -----------
  Merge r268350 - REGRESSION(r256892): [WPE][GTK] Build broken with ENABLE_ACCELERATED_2D_CANVAS=ON
https://bugs.webkit.org/show_bug.cgi?id=217384

Most of the patch by Žan Doberšek.

Reviewed by Darin Adler.

No new tests needed.

* platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.cpp: Move the namespace
declaration after the #include statements, to avoid incorrect nested WebCore::WebCore
namespace declarations.
(WebCore::ImageBufferCairoGLSurfaceBackend::create): Add missing semicolon to statement,
use getter for Cairo surface.
(WebCore::ImageBufferCairoGLSurfaceBackend::platformLayer const): Rename from
ImageBuffer::platformLayer.
(WebCore::ImageBufferCairoGLSurfaceBackend::copyToPlatformTexture const): Add missing
first argument.
* platform/graphics/cairo/ImageBufferCairoGLSurfaceBackend.h: Adapt.


  Commit: b2fa4080a5b218bfd57f9d15cf5caa815f7e0e2c
      https://github.com/WebKit/WebKit/commit/b2fa4080a5b218bfd57f9d15cf5caa815f7e0e2c
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-14 (Wed, 14 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Headers.cmake
    M Source/WebCore/platform/gamepad/EmptyGamepadProvider.h
    M Source/WebCore/platform/gamepad/manette/ManetteGamepad.cpp
    M Source/WebCore/platform/gamepad/manette/ManetteGamepad.h
    M Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.cpp
    M Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.h
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/Gamepad/UIGamepadProvider.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/WebProcess/Gamepad/WebGamepadProvider.h

  Log Message:
  -----------
  Merge r268312 - [GTK] Build broken with ENABLE_GAMEPAD enabled

https://bugs.webkit.org/show_bug.cgi?id=217226

Reviewed by Darin Adler.

Source/WebCore:

No new tests needed.

* Headers.cmake: List SharedGamepadValue.h in WebCore_PRIVATE_FRAMEWORK_HEADERS, which
was missing.
* platform/gamepad/EmptyGamepadProvider.h: Mark class as final, because the destructor
is final itself.
* platform/gamepad/manette/ManetteGamepad.cpp:
(WebCore::ManetteGamepad::ManetteGamepad): Adapt to use SharedGamepadValue.
(WebCore::ManetteGamepad::buttonPressedOrReleased): Ditto.
(WebCore::ManetteGamepad::absoluteAxisChanged): Ditto.
* platform/gamepad/manette/ManetteGamepad.h: Ditto.
* platform/gamepad/manette/ManetteGamepadProvider.cpp: Rename m_connectionDelayTimer
to m_initialGamepadsConnectedTimer, which better reflects the usage and also makes the
provider a bit more similar to HIDGamepadProvider (from the Mac port). Arrange to use
the EventMakesGamepadsVisible flag.
(WebCore::ManetteGamepadProvider::ManetteGamepadProvider): Remove the loop that iterates
over the pre-detected gamepads because they are being added too early before any client
has had the chance to be attached.
(WebCore::ManetteGamepadProvider::startMonitoringGamepads): The loop that iterates and
adds pre-detected gamepads is moved here, once there is at least a client. This solves
hitting an assertion later on when UIGamepadProvider checks that the number of gamepads
it has been notified of matches the amount tracked by ManetteGamepadProvider.
(WebCore::ManetteGamepadProvider::stopMonitoringGamepads):
(WebCore::ManetteGamepadProvider::deviceConnected):
(WebCore::ManetteGamepadProvider::deviceDisconnected):
(WebCore::ManetteGamepadProvider::initialGamepadsConnectedTimerFired):
(WebCore::ManetteGamepadProvider::inputNotificationTimerFired):
* platform/gamepad/manette/ManetteGamepadProvider.h: Ditto.

Source/WebKit:

* UIProcess/Gamepad/UIGamepadProvider.h: Mark class as final, because the destructor is
final itself.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::numberOfConnectedGamepadsForTesting): Reorganize PLATFORM(MAC)
guards to use GameControllerGamepadProvider only on macOS, as it is unavailable on other
ports.
* WebProcess/Gamepad/WebGamepadProvider.h: Mark class as final, because the destructor
is final itself.


  Commit: 38b62a935f8980177dd584b2409a87b6d1a5a335
      https://github.com/WebKit/WebKit/commit/38b62a935f8980177dd584b2409a87b6d1a5a335
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-14 (Wed, 14 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/gamepad/manette/ManetteGamepadProvider.cpp

  Log Message:
  -----------
  Merge r268390 - [GTK] Make gamepads visible after their first input is received
https://bugs.webkit.org/show_bug.cgi?id=217494

Reviewed by Carlos Garcia Campos.

Turns out this was mostly working already, with a small caveat: Sometimes there would
be a timing issue if m_inputNotificationTimer would be fired before having a chance
of setting the m_initialGamepadsConnected flag, and in that case the early return
would prevent dispatchPlatformGamepadInputActivity() from ever being called. This
re-arms the timer to be fired again in the next event loop iteration if the flag was
unset, so it will be checked again after it has been toggled. This same approach is
used by HIDGamepadProvider in the Mac port, for example.

* platform/gamepad/manette/ManetteGamepadProvider.cpp:
(WebCore::ManetteGamepadProvider::inputNotificationTimerFired): Re-arm timer if
m_initialGamepadsConnected was not yet set.


  Commit: 8ff713697b8b424239c1359517fb031ad11101e4
      https://github.com/WebKit/WebKit/commit/8ff713697b8b424239c1359517fb031ad11101e4
  Author: Philippe Normand <pnormand at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/media/media-can-play-mpeg4-video-expected.txt
    M LayoutTests/media/media-can-play-mpeg4-video.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp

  Log Message:
  -----------
  Merge r268392 - [GStreamer] Crash in WebCore::GStreamerRegistryScanner::isAVC1CodecSupported
https://bugs.webkit.org/show_bug.cgi?id=217647

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

The registry scanner was assuming the avc1 codec field is always of the form
avc1.codecprofile, which is wrong.

Covered by test: media/media-can-play-mpeg4-video.html

* platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::isAVC1CodecSupported const): Check for '.' presence and
fallback to unconstrained check if no profile or level information was extracted.

LayoutTests:

* media/media-can-play-mpeg4-video-expected.txt:
* media/media-can-play-mpeg4-video.html: Add test for "avc1" codec.


  Commit: d7de385662b95bdd8b61e7dfb29fdfcec6eca401
      https://github.com/WebKit/WebKit/commit/d7de385662b95bdd8b61e7dfb29fdfcec6eca401
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/network/soup/CertificateInfo.h
    M Source/WebCore/platform/network/soup/CertificateInfoSoup.cpp

  Log Message:
  -----------
  Merge r268394 - [SOUP] webkit_web_view_get_https_status() broken with service workers
https://bugs.webkit.org/show_bug.cgi?id=216038

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-10-13
Reviewed by Carlos Garcia Campos.

This implements CertificateInfo::isolatedCopy for libsoup ports. This is impossible to do
completely, because we cannot copy the private key portion of the GTlsCertificate, because
it is a write-only property, because it might be backed by a hardware token and therefore
really impossible to write software to get it. If we were to implement g_tls_certificate_copy()
in GLib -- which I will probably do eventually, because I need this outside WebKit as well --
then GTlsCertificate implementations could copy the private key or PKCS#11 handle or
whatever.

But anyway, let not perfect be the enemy of the good. We only need this for service workers
currently. (Probably that's all we'll *ever* need it for.) So we are only working with
server certificates, and the private portion of the certificate is guaranteed to not exist
(because servers don't send us their private keys), and we can just forget about it. As
long as nobody tries to copy a client certificate in the future -- where we really would
need the private key portion of the certificate -- this will be perfectly fine.

Actually copying the certificate is kind of annoying, because a chain of certificates is
represented by having the main (server) certificate keep a reference to its issuer, which is
not referenced anywhere else, so we have to reconstruct the chain in reverse order starting
from the final certificate, working back towards the server cert. Fun. Let's also be
careful to construct a completely new GByteArray rather than expecting the GTlsCertificate
implementation to copy it for us. Because GTlsCertificate is implemented by an extension
point and applications and system administrators can -- and do -- implement their own,
implementations could do anything, including keep a reference to the GByteArray that we
pass in.

It would be nice to have a test for this, but writing tests is hard. Also, I don't really
want to learn what service workers are. :)

Drive-by fix: also remove explicit from a constructor that doesn't need it.

* platform/network/soup/CertificateInfo.h:
(WebCore::CertificateInfo::isolatedCopy const):
* platform/network/soup/CertificateInfoSoup.cpp:
(WebCore::createCertificate):
(WebCore::CertificateInfo::isolatedCopy const):


  Commit: 1f6b01d3cb04d4be0a82b6da85028e7f770be2eb
      https://github.com/WebKit/WebKit/commit/1f6b01d3cb04d4be0a82b6da85028e7f770be2eb
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp

  Log Message:
  -----------
  Merge r268906 - [SOUP] Fix crash in WebSocketTask
https://bugs.webkit.org/show_bug.cgi?id=217892

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-10-23
Reviewed by Carlos Garcia Campos.

The WebSocketTask connects to the "starting" signal of its SoupMessage and never disconnects
this signal, which is only safe if it is guaranteed to outlive its SoupMessage. However, it
is not. We crash when the signal is emitted after the WebSocketTask is destroyed. To solve
this, we just need to disconnect the signal when required. Normally that would be done in
the destructor, but the WebSocketTask drops its ownership of the SoupMessage prior to that
point, so we need to disconnect on each possible paths.

* NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::~WebSocketTask):
(WebKit::WebSocketTask::didConnect):
(WebKit::WebSocketTask::didFail):


  Commit: 9326a02f63584fb14a3c987ffe7d64db459153af
      https://github.com/WebKit/WebKit/commit/9326a02f63584fb14a3c987ffe7d64db459153af
  Author: Alexander Mikhaylenko <alexm at gnome.org>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/glib/ChassisType.cpp

  Log Message:
  -----------
  Merge r267789 - [GTK] Chassis type check fails if the value is quoted
https://bugs.webkit.org/show_bug.cgi?id=217123

Patch by Alexander Mikhaylenko <alexm at gnome.org> on 2020-09-30
Reviewed by Carlos Garcia Campos.

Sometimes the chassis type can be quoted, in this case we'll fail to
parse it and fall back to desktop type. Unquote the string before
attempting to parse it.

* wtf/glib/ChassisType.cpp:
(WTF::readMachineInfoChassisType):


  Commit: 52e4986d32ddd13a247695dc2592b422672d3d9d
      https://github.com/WebKit/WebKit/commit/52e4986d32ddd13a247695dc2592b422672d3d9d
  Author: Chris Lord <clord at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h
    M Source/WebCore/platform/ScrollAnimation.h
    M Source/WebCore/platform/ScrollAnimationKinetic.cpp
    M Source/WebCore/platform/ScrollAnimationKinetic.h
    M Source/WebCore/platform/ScrollAnimationSmooth.cpp
    M Source/WebCore/platform/ScrollAnimationSmooth.h
    M Source/WebCore/platform/ScrollAnimator.cpp
    M Source/WebCore/platform/generic/ScrollAnimatorGeneric.cpp

  Log Message:
  -----------
  Merge r266390 - [GTK][WPE] Add support for smooth scrolling animation with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=210382

Reviewed by Carlos Garcia Campos.

This removes the dependency on ScrollableArea from
ScrollAnimationSmooth, which allows its use as a utility class for
smooth scrolling. This class is then used in the Nicosia async layer
composition scrolling code to provide smooth scrolling, when the
feature is enabled. This mirrors the work done in bug 209230 for
kinetic scrolling.

No new tests, enabling existing functionality in more situations.

* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::scrollTo):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
* platform/ScrollAnimation.h:
(WebCore::ScrollAnimation::serviceAnimation):
* platform/ScrollAnimationKinetic.cpp:
* platform/ScrollAnimationKinetic.h:
* platform/ScrollAnimationSmooth.cpp:
(WebCore::ScrollAnimationSmooth::ScrollAnimationSmooth):
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::stop):
(WebCore::ScrollAnimationSmooth::updateVisibleLengths):
(WebCore::ScrollAnimationSmooth::animationTimerFired):
* platform/ScrollAnimationSmooth.h:
* platform/ScrollAnimator.cpp:
(WebCore::ScrollAnimator::ScrollAnimator):
* platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::ScrollAnimatorGeneric):
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):


  Commit: 704848853294b6dea16542a1ef16b8c5630ea2ab
      https://github.com/WebKit/WebKit/commit/704848853294b6dea16542a1ef16b8c5630ea2ab
  Author: Chris Lord <clord at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h
    M Source/WebCore/page/scrolling/ThreadedScrollingTree.cpp
    M Source/WebCore/page/scrolling/ThreadedScrollingTree.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h
    M Source/WebCore/platform/PlatformWheelEvent.h
    M Source/WebCore/platform/ScrollAnimation.h
    M Source/WebCore/platform/ScrollAnimationKinetic.cpp
    M Source/WebCore/platform/ScrollAnimationKinetic.h
    M Source/WebCore/platform/ScrollAnimationSmooth.cpp
    M Source/WebCore/platform/ScrollAnimationSmooth.h
    M Source/WebCore/platform/generic/ScrollAnimatorGeneric.cpp
    M Source/WebKit/ChangeLog
    M Source/WebKit/Shared/WebEvent.h
    M Source/WebKit/Shared/WebEventConversion.cpp
    M Source/WebKit/Shared/WebWheelEvent.cpp
    M Source/WebKit/Shared/gtk/NativeWebWheelEventGtk.cpp
    M Source/WebKit/Shared/gtk/WebEventFactory.cpp
    M Source/WebKit/Shared/libwpe/WebEventFactory.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Merge r268522 - [GTK][WPE] Add support for smooth scrolling animation with async scrolling
https://bugs.webkit.org/show_bug.cgi?id=210382

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Respect smooth-scrolling setting and fix deadlock issues with async
scrolling on nicosia path.

No new tests, no functional change.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollAnimatorEnabled const):
* page/scrolling/AsyncScrollingCoordinator.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::ThreadedScrollingTree):
* page/scrolling/ThreadedScrollingTree.h:
(WebCore::ThreadedScrollingTree::scrollAnimatorEnabled const):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ScrollingTreeFrameScrollingNodeNicosia):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ensureScrollAnimationKinetic):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::ensureScrollAnimationSmooth):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::stopScrollAnimations):
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::repositionRelatedLayers):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ScrollingTreeOverflowScrollingNodeNicosia):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateAfterChildren):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::repositionScrollingLayers):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ensureScrollAnimationKinetic):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::ensureScrollAnimationSmooth):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::handleWheelEvent):
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::stopScrollAnimations):
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
* platform/PlatformWheelEvent.h:
* platform/ScrollAnimation.h:
* platform/ScrollAnimationKinetic.cpp:
(WebCore::ScrollAnimationKinetic::isActive const):
* platform/ScrollAnimationKinetic.h:
* platform/ScrollAnimationSmooth.cpp:
(WebCore::ScrollAnimationSmooth::scroll):
(WebCore::ScrollAnimationSmooth::isActive const):
* platform/ScrollAnimationSmooth.h:
* platform/generic/ScrollAnimatorGeneric.cpp:
(WebCore::ScrollAnimatorGeneric::ensureSmoothScrollingAnimation):

Source/WebKit:

Add hasPreciseScrollingDeltas to GTK/WPE wheel events.

No new tests needed.

* Shared/WebEventConversion.cpp:
(WebKit::WebKit2PlatformWheelEvent::WebKit2PlatformWheelEvent):
* Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
* Shared/WebWheelEvent.h:
* Shared/WebWheelEventCoalescer.cpp:
(WebKit::WebWheelEventCoalescer::canCoalesce):
(WebKit::WebWheelEventCoalescer::coalesce):
* Shared/gtk/NativeWebWheelEventGtk.cpp:
(WebKit::NativeWebWheelEvent::NativeWebWheelEvent):
* Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebWheelEvent):
* Shared/libwpe/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebWheelEvent):


  Commit: 14a609ee4c13abd51764febc555973d615bf66ac
      https://github.com/WebKit/WebKit/commit/14a609ee4c13abd51764febc555973d615bf66ac
  Author: Sergio Villar Senin <svillar at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp

  Log Message:
  -----------
  Merge r268472 - [GLIB] Fix linking error for systems not providing <sys/memfd.h>
https://bugs.webkit.org/show_bug.cgi?id=217514

Reviewed by Carlos Garcia Campos.

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp: Unconditionally check for <sys/mman.h> which should always exist instead
of <sys/memfd.h>. Also define the fallback with syscall() only for linux systems (as it requires <linux/memfd.h>).


  Commit: fd12a6a24203926ffc7278159830292afe2791b6
      https://github.com/WebKit/WebKit/commit/fd12a6a24203926ffc7278159830292afe2791b6
  Author: Enrique Ocaña González <eocanha at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/glx/GLContextGLX.cpp

  Log Message:
  -----------
  Merge r268000 - [GTK][X11] WebProcess crash in WebCore::GLContextGLX::createPbufferContext() with NVidia proprietary drivers
https://bugs.webkit.org/show_bug.cgi?id=217323

Reviewed by Adrian Perez de Castro.

The returnedElements variable might remain uninitialized if the glXChooseFBConfig()
function call fails, leading to execution of the wrong code branch later.

* platform/graphics/glx/GLContextGLX.cpp:
(WebCore::GLContextGLX::createPbufferContext): Initialized the returnedElements variable.


  Commit: c323ca60e783a1c296c18ef1bdb341aa5c06ac9b
      https://github.com/WebKit/WebKit/commit/c323ca60e783a1c296c18ef1bdb341aa5c06ac9b
  Author: Alexander Mikhaylenko <alexm at gnome.org>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp

  Log Message:
  -----------
  Merge r267875 - [GTK] WPE and backend versions are mixed up in webkit://gpu
https://bugs.webkit.org/show_bug.cgi?id=217210

Patch by Alexander Mikhaylenko <alexm at gnome.org> on 2020-10-02
Reviewed by Adrian Perez de Castro.

* UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):


  Commit: 2512f8d4f70e210f46d4c8b96287adb886b067be
      https://github.com/WebKit/WebKit/commit/2512f8d4f70e210f46d4c8b96287adb886b067be
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.2 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.2.


  Commit: 7db915a1d517f30382612c6464f26a8edbcd934f
      https://github.com/WebKit/WebKit/commit/7db915a1d517f30382612c6464f26a8edbcd934f
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-10-23 (Fri, 23 Oct 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.2 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.2.


  Commit: 3d61e043c1a165425495eec9b6d554913bada651
      https://github.com/WebKit/WebKit/commit/3d61e043c1a165425495eec9b6d554913bada651
  Author: Philippe Normand <pnormand at igalia.com>
  Date:   2020-10-27 (Tue, 27 Oct 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/fast/images/animated-image-mp3-crash-expected.txt
    A LayoutTests/fast/images/animated-image-mp3-crash.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp

  Log Message:
  -----------
  Merge r269055 - [GStreamer] Bad handling of audio files in the ImageDecoder
https://bugs.webkit.org/show_bug.cgi?id=218239

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

Source/WebCore:

The final main thread notification needs to be blocking otherwise the decoder might get
disposed of too early.

Test: fast/images/animated-image-mp3-crash.html

* platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::pushEncodedData):

LayoutTests:

* fast/images/animated-image-mp3-crash-expected.txt: Added.
* fast/images/animated-image-mp3-crash.html: Added.


  Commit: 95a180e07ecb7f2a0790b510265575491f1c6cab
      https://github.com/WebKit/WebKit/commit/95a180e07ecb7f2a0790b510265575491f1c6cab
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2020-11-13 (Fri, 13 Nov 2020)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/b3/B3ReduceStrength.cpp
    M Source/JavaScriptCore/b3/testb3.h
    M Source/JavaScriptCore/b3/testb3_1.cpp
    M Source/JavaScriptCore/b3/testb3_5.cpp

  Log Message:
  -----------
  Merge r265891 - B3 IntRange is incorrect for negative masks
https://bugs.webkit.org/show_bug.cgi?id=215536
<rdar://problem/67130430>

Reviewed by Michael Saboff and Robin Morisset.

In the B3 ReduceStrength phase, we compute rangeForMask as (0, mask).  This is correct for
positive values, but incorrect when negative. To fix it, we use `(INT_MIN & mask, INT_MAX & mask)`
as the range for negative masks.

* b3/B3ReduceStrength.cpp:
* b3/testb3.h:
* b3/testb3_1.cpp:
(run):
* b3/testb3_5.cpp:
(testCheckSubBitAnd):


  Commit: 4248216d4628b4cde35b15ece16802c55d886da2
      https://github.com/WebKit/WebKit/commit/4248216d4628b4cde35b15ece16802c55d886da2
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/Modules/webaudio/AudioContext.cpp
    M Source/WebKit/ChangeLog
    M Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp

  Log Message:
  -----------
  [GTK][WPE] Build broken in stable 2.30.x releases with ENABLE_VIDEO=OFF
https://bugs.webkit.org/show_bug.cgi?id=218921

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No new tests needed.

* Modules/webaudio/AudioContext.cpp: Add missing Document.h include.

Source/WebKit:

* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner): Use ENABLE(VIDEO)
guard to prevent usage of function which does not get compiled in when video support
disabled


  Commit: 2628cb15e7aa075f0b4935f57bb9dd1c79dd37f8
      https://github.com/WebKit/WebKit/commit/2628cb15e7aa075f0b4935f57bb9dd1c79dd37f8
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/network/ResourceResponseBase.cpp

  Log Message:
  -----------
  Merge r269948 - Unreviewed. Fix the build with GCC 10

Add a temporary workaround for a GCC 10 bug.

* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):


  Commit: 3658215d444b8d46e1e4085e770f878d50e76a51
      https://github.com/WebKit/WebKit/commit/3658215d444b8d46e1e4085e770f878d50e76a51
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M ChangeLog
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/PageBlock.h
    M Source/cmake/WebKitFeatures.cmake

  Log Message:
  -----------
  Merge r269396 - Add new build option USE(64KB_PAGE_BLOCK)
https://bugs.webkit.org/show_bug.cgi?id=217989

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-11-04
Reviewed by Yusuke Suzuki.

.:

Why do we need this option? Because JSC and bmalloc both want to know the userspace page
size at compile time, which is impossible on Linux because it's a runtime setting. We
cannot test the system page size at build time in hopes that it will be the same on the
target system, because (a) cross compiling wouldn't work, and (b) the build system could
use a different page size than the target system (which will be true for Fedora aarch64,
because Fedora is built using RHEL), so the best we can do is guess based on the target CPU
architecture. In practice, guessing works for all architectures except aarch64 (unless
unusual page sizes are used), but it fails for aarch64 because distros are split between
using 4 KB and 64 KB pages there. Most distros (including Fedora) use 4 KB, but RHEL uses
64 KB. SUSE actually supports both. Since there is no way to guess correctly, the best we
can do is provide an option for it. You should probably only use this if building for
aarch64. Otherwise, known CPUs except PowerPC will use 4 KB, while PowerPC and unknown CPUs
will use 64 KB (see wtf/PageBlock.h). aarch64 will continue to default to 4 KB because this
is a much better default on systems where it doesn't crash.

Having one flag will help avoid mistakes. E.g. both RHEL and SUSE were manually passing
-DENABLE_JIT=OFF and -DUSE_SYSTEM_MALLOC=ON, but we missed -DENABLE_C_LOOP=ON and
-DENABLE_SAMPLING_PROFILER=OFF, so wound up running with both JIT and cloop disabled, a
configuration not otherwise used on Linux (and not supported by GTK or WPE ports). It will
be easier to not mess up if we only have to pass one special build option. This will also
allow us to stop patching PageBlock.h downstream, because I don't like downstream patches
that we have to keep forever.

* Source/cmake/WebKitFeatures.cmake:

Source/WTF:

* wtf/PageBlock.h:


  Commit: 5094cf2561aa4abbe70bc1416827a0734ab52806
      https://github.com/WebKit/WebKit/commit/5094cf2561aa4abbe70bc1416827a0734ab52806
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M ChangeLog
    M Source/cmake/WebKitFeatures.cmake

  Log Message:
  -----------
  Merge r269586 - Enable llint asm on aarch64 when USE(64KB_PAGE_BLOCK) is enabled
https://bugs.webkit.org/show_bug.cgi?id=218613

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-11-09
Reviewed by Carlos Alberto Lopez Perez.

Normally we fall back to cloop when JIT is not supported. But on aarch64, llint asm is well-
supported, so it is safe to use that here. This will only happen on aarch64, and only when
USE(64KB_PAGE_BLOCK) is enabled, which should probably only be used by RHEL and SUSE.
Everyone else should get the JIT.

* Source/cmake/WebKitFeatures.cmake:


  Commit: 4ac67409b8006beea681d6b60b54a39b26bf4c69
      https://github.com/WebKit/WebKit/commit/4ac67409b8006beea681d6b60b54a39b26bf4c69
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/TestExpectations
    M LayoutTests/imported/w3c/ChangeLog
    R LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.html
    A LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.js
    A LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker.html
    R LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.html
    M LayoutTests/imported/w3c/web-platform-tests/tools/wptserve/wptserve/utils.py
    M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js
    M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/URL.cpp

  Log Message:
  -----------
  Merge r269436 - Consider blocking ports 5060 and 5061
https://bugs.webkit.org/show_bug.cgi?id=218557
<rdar://problem/71031479>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt: Added.
* web-platform-tests/fetch/api/request/request-bad-port.any.html: Added.
* web-platform-tests/fetch/api/request/request-bad-port.any.js: Added.
(BLOCKED_PORTS_LIST.map):
* web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt: Added.
* web-platform-tests/fetch/api/request/request-bad-port.any.worker.html: Added.
* web-platform-tests/fetch/api/request/request-bad-port.html: Removed.
* web-platform-tests/tools/wptserve/wptserve/utils.py:
(is_bad_port):
* web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
* web-platform-tests/websockets/Create-blocked-port.any.js:
* web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

* wtf/URL.cpp:
(WTF::portAllowed):

LayoutTests:

* TestExpectations:


  Commit: 44514e9a1466f5059ce3f97b01b845c4ec254a7f
      https://github.com/WebKit/WebKit/commit/44514e9a1466f5059ce3f97b01b845c4ec254a7f
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp

  Log Message:
  -----------
  Merge r269504 - [GTK] dlopen libWPEBackend-fdo-1.0.so.1 instead of libWPEBackend-fdo-1.0.so
https://bugs.webkit.org/show_bug.cgi?id=218584

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-11-06
Reviewed by Carlos Garcia Campos.

wpe_loader_init() tries to dlopen a development symlink, but these will not usually be
installed. It only works in the GNOME flatpak runtime because we don't use devel split
rules in the GNOME runtime, but we really ought to, and freedesktop-sdk already does, so
it's going to break upstream too once that gets implemented. It's easier for everyone if
we tackle this now. Since all major distros except Arch Linux use devel split, this patch
is really required for almost every distro to use WPE renderer.

The downside is that this makes it harder to update the wpebackend-fdo library version,
since minor changes there will now unnecessarily break WebKit. This is not good, but it's
better than forcing distros to apply this same patch downstream. I considered trying a bunch
of different library versions in a loop in order to maximize the chance of success in case
the wpebackend-fdo library version increases in the future, but it's probably nicer to just
be careful about not changing its library version until we find a better solution for this.

* UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):


  Commit: 5043b5a51cccd4f7762889c5d1c40d98aaa5b59a
      https://github.com/WebKit/WebKit/commit/5043b5a51cccd4f7762889c5d1c40d98aaa5b59a
  Author: Milan Crha <mcrha at redhat.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/gtk/DropTargetGtk3.cpp

  Log Message:
  -----------
  Merge r269505 - [GTK] Application cannot override drag&drop callbacks
https://bugs.webkit.org/show_bug.cgi?id=218562

Patch by Milan Crha <mcrha at redhat.com> on 2020-11-06
Reviewed by Michael Catanzaro.

* UIProcess/API/gtk/DropTargetGtk3.cpp:
(WebKit::DropTarget::DropTarget): Use g_signal_connect_after(), thus
any descendants can override the callbacks.
(WebKit::DropTarget::didPerformAction): Always call gdk_drag_status(),
to have gtk+ notified about drag progress.


  Commit: 85dae20f1f5365d360cb3779e0db28d36411fa81
      https://github.com/WebKit/WebKit/commit/85dae20f1f5365d360cb3779e0db28d36411fa81
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/API/gtk/DropTarget.h
    M Source/WebKit/UIProcess/API/gtk/DropTargetGtk3.cpp
    M Source/WebKit/UIProcess/API/gtk/DropTargetGtk4.cpp

  Log Message:
  -----------
  Merge r269620 - [GTK] Crash in WebKit::DropTarget::drop
https://bugs.webkit.org/show_bug.cgi?id=217482

Reviewed by Michael Catanzaro.

If we don't have selection data when drop is called, just return early to let leave continue. Also change
accept() to receive the drop context and position to be set after leaving any previous operation.

* UIProcess/API/gtk/DropTarget.h:
* UIProcess/API/gtk/DropTargetGtk3.cpp:
(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):
(WebKit::DropTarget::drop):
* UIProcess/API/gtk/DropTargetGtk4.cpp:
(WebKit::DropTarget::DropTarget):
(WebKit::DropTarget::accept):


  Commit: a53741e5e52a86abaf6272ee9f33d05b348a80e4
      https://github.com/WebKit/WebKit/commit/a53741e5e52a86abaf6272ee9f33d05b348a80e4
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/UserAgentQuirks.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp

  Log Message:
  -----------
  Merge r269955 - [WPE][GTK] Update Outlook user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=219049

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-11-18
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Users report that our user agent quirk for Outlook no longer works. Problem is
outlook.live.com has moved to outlook.office.com. Thanks to Adrian Vovk for rebuilding
WebKit to confirm that this patch fixes the issue.

* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresMacintoshPlatform):

Tools:

* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):


  Commit: ff493f89860ff3b922f3e0dbe570724bf18de303
      https://github.com/WebKit/WebKit/commit/ff493f89860ff3b922f3e0dbe570724bf18de303
  Author: Chris Lord <clord at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/scrolling/ThreadedScrollingTree.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeNicosia.h
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h
    M Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h

  Log Message:
  -----------
  Merge r269579 - [GTK][WPE] Scrolling with mouse wheel doesn't work on iframes with async scrolling enabled
https://bugs.webkit.org/show_bug.cgi?id=214179

Reviewed by Žan Doberšek.

Implement ScrollingTree::scrollingNodeForPoint in
ScrollingTreeNicosia. This fixes overflow and iframe scrolling when
async scrolling is enabled on WPE and GTK ports.

* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.h:
* page/scrolling/nicosia/ScrollingTreeNicosia.cpp:
(WebCore::collectDescendantLayersAtPoint):
(WebCore::ScrollingTreeNicosia::scrollingNodeForPoint):
* page/scrolling/nicosia/ScrollingTreeNicosia.h:
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeOverflowScrollingNodeNicosia::commitStateBeforeChildren):
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
* platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::CompositionLayer::flushState):
(Nicosia::CompositionLayer::accessPending):


  Commit: c178338f3e2f6ed630495a71d74c5560d7e62b03
      https://github.com/WebKit/WebKit/commit/c178338f3e2f6ed630495a71d74c5560d7e62b03
  Author: Chris Lord <clord at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp
    M Source/WebCore/page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h

  Log Message:
  -----------
  Merge r269909 - REGRESSION(r269579) [WPE] Many tests with scrolling flaky after this revision
https://bugs.webkit.org/show_bug.cgi?id=218859

Reviewed by Simon Fraser.

Set scrolling node ID correctly on CoordinatedGraphicsLayer.

* page/scrolling/nicosia/ScrollingTreeFrameScrollingNodeNicosia.cpp:
(WebCore::ScrollingTreeFrameScrollingNodeNicosia::commitStateBeforeChildren):
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.cpp:
* page/scrolling/nicosia/ScrollingTreeOverflowScrollingNodeNicosia.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setScrollingNodeID):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:


  Commit: c84ada0dc7c7d45f8a7372c2b55a15b03f5052bd
      https://github.com/WebKit/WebKit/commit/c84ada0dc7c7d45f8a7372c2b55a15b03f5052bd
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/gtk/TestExpectations
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/ClipStack.cpp
    M Source/WebCore/platform/graphics/texmap/ClipStack.h
    M Source/WebCore/platform/graphics/texmap/TextureMapper.h
    M Source/WebCore/platform/graphics/texmap/TextureMapperGL.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperGL.h
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.h
    M Source/WebKit/ChangeLog
    M Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp

  Log Message:
  -----------
  Merge r268923 - [GTK][WPE] Implement antialiased rounded rectangle clipping in TextureMapper
https://bugs.webkit.org/show_bug.cgi?id=174457

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Implement rounded rectangle clipping in TextureMapperGL, supporting up to 10 simultaneous
rounded rectangle clips. TextureMapper::beginClip() now receives a rounded rectangle, and
it applies the appropriate clipping method as required.

The rounded rectangle clip implementation uses the fragment shader to calculate whether
each pixel is inside the defined rounded rectangles, and paints or skips it as needed.

* platform/graphics/texmap/ClipStack.cpp:
(WebCore::ClipStack::addRoundedRect):
* platform/graphics/texmap/ClipStack.h:
(WebCore::ClipStack::State::State):
(WebCore::ClipStack::roundedRectComponents const):
(WebCore::ClipStack::roundedRectInverseTransformComponents const):
(WebCore::ClipStack::roundedRectCount const):
(WebCore::ClipStack::isRoundedRectClipEnabled const):
(WebCore::ClipStack::isRoundedRectClipAllowed const):
* platform/graphics/texmap/TextureMapper.h:
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::prepareRoundedRectClip):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawTexturePlanarYUV):
(WebCore::TextureMapperGL::drawTextureSemiPlanarYUV):
(WebCore::TextureMapperGL::drawTexturePackedYUV):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::beginRoundedRectClip):
(WebCore::TextureMapperGL::beginClip):
* platform/graphics/texmap/TextureMapperGL.h:
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
* platform/graphics/texmap/TextureMapperShaderProgram.h:

Source/WebKit:

Use the new TextureMapper::beginClip() method that receives a FloatRoundedRect.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

LayoutTests:

Update expectations for passing test.

* platform/gtk/TestExpectations:


  Commit: 3b381b8491392cfe8248a17da0f1e605101ff001
      https://github.com/WebKit/WebKit/commit/3b381b8491392cfe8248a17da0f1e605101ff001
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp
    M Source/WebCore/platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp

  Log Message:
  -----------
  Merge r269179 - [GTK] Direct composited images may not be rendered after a window resize
https://bugs.webkit.org/show_bug.cgi?id=218292

Reviewed by Carlos Garcia Campos.

Ensure that valid buffers passed for ImageBackings are not destroyed until the
CoordinatedGraphicsScene consumes them.

* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp:
(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
(WebCore::CoordinatedGraphicsLayer::purgeBackingStores):


  Commit: 050c7582dda6a68204e016e71acff7835008e81c
      https://github.com/WebKit/WebKit/commit/050c7582dda6a68204e016e71acff7835008e81c
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/BitmapTextureGL.cpp

  Log Message:
  -----------
  Merge r269765 - [GTK][WPE] FilterInfo must cleared when reusing BitmapTextureGL
https://bugs.webkit.org/show_bug.cgi?id=218854

Reviewed by Carlos Garcia Campos.

Clear the FilterInfo attribute when reusing a BitmapTextureGL.

* platform/graphics/texmap/BitmapTextureGL.cpp:
(WebCore::BitmapTextureGL::didReset):


  Commit: 942bff4528842fc15f0955c0c33502d83e55e89c
      https://github.com/WebKit/WebKit/commit/942bff4528842fc15f0955c0c33502d83e55e89c
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

  Log Message:
  -----------
  Merge r268992 - [TextureMapper] min(genIType) isn't supported for GLSL ES < 3.0
https://bugs.webkit.org/show_bug.cgi?id=218164

Reviewed by Don Olmstead.

Nothing is drawn in AC mode of WinCairo port since r268923.
r268923 added a shader code of using min of int type which is
supported since GLSL ES 3.0.

* platform/graphics/texmap/TextureMapperShaderProgram.cpp: Added fragmentTemplateES to define int type of min.
(WebCore::TextureMapperShaderProgram::create):


  Commit: 627c82387fe6414ec6c780c3262e72287f352a48
      https://github.com/WebKit/WebKit/commit/627c82387fe6414ec6c780c3262e72287f352a48
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

  Log Message:
  -----------
  Merge r269040 - [WPE] REGRESSION(r268992) Redefinition of min() inside TextureMapperShaderProgram for GLES > 3.0
https://bugs.webkit.org/show_bug.cgi?id=218231

Reviewed by Sergio Villar Senin.

Remove the definition of the min() function and replace its usage with an if. This works for
every GLSL version.

* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(WebCore::TextureMapperShaderProgram::create):
(WebCore::STRINGIFY): Deleted.


  Commit: 3b8dbbabc6cb6a458091f74ca307467d4dca9068
      https://github.com/WebKit/WebKit/commit/3b8dbbabc6cb6a458091f74ca307467d4dca9068
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/gtk/TestExpectations
    M LayoutTests/platform/gtk/compositing/reflections/nested-reflection-transformed-expected.png
    M LayoutTests/platform/gtk/compositing/reflections/nested-reflection-transformed2-expected.png
    M LayoutTests/platform/gtk/compositing/reflections/reflection-positioning2-expected.png
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h

  Log Message:
  -----------
  Merge r269072 - [TextureMapper][GTK] Test compositing/clipping/border-radius-stacking-context-clip.html is failing
https://bugs.webkit.org/show_bug.cgi?id=214868

Reviewed by Carlos Garcia Campos.

Source/WebCore:

If a replica layer has m_state.pos, m_layerTransforms.combined
should be translated by them.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
* platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

* platform/gtk/TestExpectations: Unmarked compositing/clipping/border-radius-stacking-context-clip.html.
* platform/gtk/compositing/reflections/nested-reflection-transformed-expected.png: Updated.
* platform/gtk/compositing/reflections/nested-reflection-transformed2-expected.png: Updated.
* platform/gtk/compositing/reflections/reflection-positioning2-expected.png: Updated.


  Commit: f7229baa635a81cbfee600bf9d2690454eece826
      https://github.com/WebKit/WebKit/commit/f7229baa635a81cbfee600bf9d2690454eece826
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h

  Log Message:
  -----------
  Merge r269116 - TextureMapperLayer::paintWithIntermediateSurface: Reduce BitmapTextures by unifying replicaSurface and mainSurface
https://bugs.webkit.org/show_bug.cgi?id=217943

Reviewed by Don Olmstead.

TextureMapperLayer::paintWithIntermediateSurface was using two
BitmapTextures for the main layer and replica layer. But, a single
BitmapTexture suffices. Create a BitmapTexture and render both
layers onto it.

No new tests, no behavior changes.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
* platform/graphics/texmap/TextureMapperLayer.h:


  Commit: b9f5295aeb324f1499c0aa518c48c79c674aa3e8
      https://github.com/WebKit/WebKit/commit/b9f5295aeb324f1499c0aa518c48c79c674aa3e8
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/compositing/reflections/opacity-in-reflection-expected.html
    A LayoutTests/compositing/reflections/opacity-in-reflection.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h

  Log Message:
  -----------
  Merge r269204 - [TextureMapper] Replica layers don't blend correctly because computeOverlapRegions doesn't take TextureMapperPaintOptions::transform into account
https://bugs.webkit.org/show_bug.cgi?id=218307

Reviewed by Don Olmstead.

Source/WebCore:

Blending in replica layers didn't work as expected because
computeOverlapRegions didn't take the transform of
TextureMapperPaintOptions into account. Rendering replica layers
are achieved by using the transform.

TextureMapperLayer::paintWithIntermediateSurface also should take
the transform. commitSurface no longer needs to transform by it.

Test: compositing/reflections/opacity-in-reflection.html

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
(WebCore::commitSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
* platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

* compositing/reflections/opacity-in-reflection-expected.html: Added.
* compositing/reflections/opacity-in-reflection.html: Added.


  Commit: 579fe23597f23efbb581b3e70b3e9e80d2d1a539
      https://github.com/WebKit/WebKit/commit/579fe23597f23efbb581b3e70b3e9e80d2d1a539
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/compositing/tiling/huge-layer-with-opacity-expected.html
    A LayoutTests/compositing/tiling/huge-layer-with-opacity.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp

  Log Message:
  -----------
  Merge r269328 - [TextureMapper] Crashed in TextureMapperLayer::paintUsingOverlapRegions
https://bugs.webkit.org/show_bug.cgi?id=214817
<rdar://problem/66489090>

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::paintUsingOverlapRegions has the expression
`overlapRegion.bounds().size().area()` which crashes for a very
large layer.

computeOverlapRegions returned very large overlap and non-overlap
regions without taking the clip bounds into account.

Change computeOverlapRegions to return clipped regions.
paintUsingOverlapRegions no longer needs to clip the returned
regions.

Test: compositing/tiling/huge-layer-with-opacity.html

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
* platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

* compositing/tiling/huge-layer-with-opacity-expected.html: Added.
* compositing/tiling/huge-layer-with-opacity.html: Added.


  Commit: 40a828aa084b1ae4330d7b5807e1a7635ac87f54
      https://github.com/WebKit/WebKit/commit/40a828aa084b1ae4330d7b5807e1a7635ac87f54
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp

  Log Message:
  -----------
  Merge r269569 - [GraphicsLayerTextureMapper] reflection masks aren't applied
https://bugs.webkit.org/show_bug.cgi?id=218429

Reviewed by Don Olmstead.

The backing store of the mask layer of replica layers aren't
updated at all since r178111.

* platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIncludingSubLayers):
Use updateBackingStoreIncludingSubLayers for the replica layer to
update backing stores recursively instead of updating only one
layer by using updateBackingStoreIfNeeded.


  Commit: 66a605fe335781e13a53e8850443dabe5ca987b1
      https://github.com/WebKit/WebKit/commit/66a605fe335781e13a53e8850443dabe5ca987b1
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/compositing/reflections/nested-reflection-opacity2-expected.html
    A LayoutTests/compositing/reflections/nested-reflection-opacity2.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h

  Log Message:
  -----------
  Merge r269570 - TextureMapperLayer::computeOverlapRegions: Accumulate nested replica transform matrices recursively
https://bugs.webkit.org/show_bug.cgi?id=218364

Reviewed by Don Olmstead.

Source/WebCore:

Transformed nested reflection layers were wrongly clipped because
computeOverlapRegions applied replica transform matrices
incorrectly.

Test: compositing/reflections/nested-reflection-opacity2.html

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::resolveOverlaps):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::paintUsingOverlapRegions):
* platform/graphics/texmap/TextureMapperLayer.h:

LayoutTests:

* compositing/reflections/nested-reflection-opacity2-expected.html: Added.
* compositing/reflections/nested-reflection-opacity2.html: Added.


  Commit: 866dfa8bf72930910c053b15cf39e0221f07b830
      https://github.com/WebKit/WebKit/commit/866dfa8bf72930910c053b15cf39e0221f07b830
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/compositing/filters/drop-shadow-expected.html
    A LayoutTests/compositing/filters/drop-shadow.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

  Log Message:
  -----------
  Merge r269588 - [TextureMapper] The top and left sides of drop-shadow are clipped
https://bugs.webkit.org/show_bug.cgi?id=218647

Reviewed by Don Olmstead.

Source/WebCore:

TextureMapperLayer::computeOverlapRegions incorrectly calculated
the local bounding rect for top and left of outsets.

The drop-shadow was incorrectly blended with the content.

Test: compositing/filters/drop-shadow.html

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Stopped
using std::max for the left and top of outsets. Stopped taking the
unite with unfilteredTargetRect because outsets are always
positive.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
Fixed sourceOver().

LayoutTests:

* compositing/filters/drop-shadow-expected.html: Added.
* compositing/filters/drop-shadow.html: Added.


  Commit: 77a72d0cf7361928606bdf5b78783862cd151376
      https://github.com/WebKit/WebKit/commit/77a72d0cf7361928606bdf5b78783862cd151376
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp

  Log Message:
  -----------
  Merge r269599 - [TextureMapper] backdrop-filter should use the identity transform to render the root layer
https://bugs.webkit.org/show_bug.cgi?id=218699

Reviewed by Don Olmstead.

Source/WebCore:

Even thouth CSS reflections mirror the content, backdrop-filter in
the reflection doesn't. It sees through the background.
css3/filters/backdrop/backdrop-filter-with-reflection.html is the
test case.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::paintIntoSurface):
(WebCore::TextureMapperLayer::paintWithIntermediateSurface):
Removed TextureMapperPaintOptions::isReplica.

LayoutTests:

* platform/glib/TestExpectations: Unmarked
css3/filters/backdrop/{backdrop-filter-with-reflection-add-backdrop.html,
backdrop-filter-with-reflection-value-change.html,backdrop-filter-with-reflection.html}


  Commit: 01a08498c6e1be7ab4b4594a131ead3b76d84172
      https://github.com/WebKit/WebKit/commit/01a08498c6e1be7ab4b4594a131ead3b76d84172
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/platform/glib/TestExpectations
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/nicosia/NicosiaPlatformLayer.h
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h
    M Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp
    M Source/WebKit/ChangeLog
    M Source/WebKit/Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp

  Log Message:
  -----------
  Merge r269772 - [GTK][WPE] CSS backdrop overlay corners are not rounded on results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=215445

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Pass the backdropFiltersRect from CoordinatedGraphicsLayer through Nicosia to TextureMapperLayer. The
latter will use this value to clip when painting the backdrop layer.

Based on a patch created by Carlos Garcia Campos  <cgarcia at igalia.com>.

* platform/graphics/nicosia/NicosiaPlatformLayer.h:
(Nicosia::CompositionLayer::flushState):
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::setBackdropFiltersRect):
* platform/graphics/texmap/TextureMapperLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::setBackdropFilters):
(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):

Source/WebKit:

Pass the backdropFiltersRect from the state to TextureMapperLayer.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::updateSceneState):

LayoutTests:

Update expectations for passing tests.

* platform/glib/TestExpectations:


  Commit: 531ac651dc65d43914695bc86db17087a13b5101
      https://github.com/WebKit/WebKit/commit/531ac651dc65d43914695bc86db17087a13b5101
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

  Log Message:
  -----------
  Merge r269837 - [TextureMapper] The edges of blur backdrop-filter look gradient tranparent
https://bugs.webkit.org/show_bug.cgi?id=218645
<rdar://problem/71356999>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The blur backdrop-filter needs a larger input image than an output
image. However, it's not easy to get a larger input image in the
edges of the windows. Cocoa port is doing extrapolation by
duplicating edges pixels of the input image which has the same
size with the output image (Bug 146215). Take the same approach.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Don't
inflate the local bounding rect by the outsets for backdrop
layers.
* platform/graphics/texmap/TextureMapperShaderProgram.cpp:
(sampleColorAtRadius): Don't clamp 'coord'.

LayoutTests:

* platform/glib/css3/filters/backdrop/blur-input-bounds-expected.png: Added.


  Commit: 94b173d6cc277e86e10205d1b4e43aa44ab227ba
      https://github.com/WebKit/WebKit/commit/94b173d6cc277e86e10205d1b4e43aa44ab227ba
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp

  Log Message:
  -----------
  Merge r270021 - Protect WebSocketChannel before calling client methods
https://bugs.webkit.org/show_bug.cgi?id=216791

Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2020-11-19
Reviewed by Youenn Fablet.

Ensure we keep a reference to the WebSocketChannel before calling client methods that might close the channel.

* WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::close):
(WebKit::WebSocketChannel::fail):
(WebKit::WebSocketChannel::didClose):
(WebKit::WebSocketChannel::resume):


  Commit: 57b881d2d13f0a415f499d24e8630cf601ef0201
      https://github.com/WebKit/WebKit/commit/57b881d2d13f0a415f499d24e8630cf601ef0201
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.3 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.3.


  Commit: 2cd2cc7cc1d3c3253b50851536912ed5fd174f66
      https://github.com/WebKit/WebKit/commit/2cd2cc7cc1d3c3253b50851536912ed5fd174f66
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-11-20 (Fri, 20 Nov 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.3 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.3.


  Commit: 478c406e015ab542de44c03975b1f1cf194d6e18
      https://github.com/WebKit/WebKit/commit/478c406e015ab542de44c03975b1f1cf194d6e18
  Author: Stephan Szabo <stephan.szabo at sony.com>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/text/icu/UTextProvider.h
    M Source/WTF/wtf/text/icu/UTextProviderLatin1.cpp
    M Source/WTF/wtf/text/icu/UTextProviderUTF16.cpp
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/text/TextCodecICU.cpp
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp

  Log Message:
  -----------
  Merge r269325 - [WinCairo/PlayStation] ICU 68.1 no longer exposes FALSE and TRUE macros by default
https://bugs.webkit.org/show_bug.cgi?id=218522

Reviewed by Don Olmstead.

Source/WebCore:

* platform/text/TextCodecICU.cpp: Replace use of TRUE with true

Source/WebKit:

* UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: Replace FALSE with false

Source/WTF:

Replace uses of FALSE and TRUE with false and true.

* wtf/text/icu/UTextProvider.h:
* wtf/text/icu/UTextProviderLatin1.cpp:
* wtf/text/icu/UTextProviderUTF16.cpp:


  Commit: 279dc4e17ae7507bc7182cde277d04eefe854c73
      https://github.com/WebKit/WebKit/commit/279dc4e17ae7507bc7182cde277d04eefe854c73
  Author: Fujii Hironori <Hironori.Fujii at sony.com>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/compositing/masks/clip-path-composited-descendent-2-expected.html
    A LayoutTests/compositing/masks/clip-path-composited-descendent-2.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp
    M Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h

  Log Message:
  -----------
  Merge r270698 - [TextureMapper] REGRESION(r269570): mask layer doesn't clip descendent layers
https://bugs.webkit.org/show_bug.cgi?id=219136
<rdar://problem/71742605>

Reviewed by Carlos Garcia Campos.

Source/WebCore:

computeOverlapRegions shouldn't include the descendent layer
region for layers with a mask layer. Add a new mode Mask to
ComputeOverlapRegionMode which is like Union mode but doesn't
include descendent layers.

Test: compositing/masks/clip-path-composited-descendent-2.html

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeOverlapRegions): Skip
children for the Mask mode.
(WebCore::TextureMapperLayer::paintUsingOverlapRegions): Use
ComputeOverlapRegionMode::Mask for a layer with mask layer.
* platform/graphics/texmap/TextureMapperLayer.h (ComputeOverlapRegionMode): Added Mask.

LayoutTests:

* compositing/masks/clip-path-composited-descendent-2-expected.html: Added.
* compositing/masks/clip-path-composited-descendent-2.html: Added.


  Commit: 3cfa5fd804b8e6c6b3079142f443bbb7827a689d
      https://github.com/WebKit/WebKit/commit/3cfa5fd804b8e6c6b3079142f443bbb7827a689d
  Author: Miguel Gomez <magomez at igalia.com>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/graphics/texmap/TextureMapperShaderProgram.cpp

  Log Message:
  -----------
  Merge r270675 - REGRESSION(r268923): [WPE] Nothing renders on the rpi3 using the proprietary video driver
https://bugs.webkit.org/show_bug.cgi?id=219739

Reviewed by Carlos Garcia Campos.

Rewrite the GLSL code to perform rounded rectangle clipping so it works with the limitations
of the raspberrypi3 proprietary video driver.

* platform/graphics/texmap/TextureMapperShaderProgram.cpp:


  Commit: 5fa7995881d1ebadf2df226003baec33fac9efdc
      https://github.com/WebKit/WebKit/commit/5fa7995881d1ebadf2df226003baec33fac9efdc
  Author: Carlos Garcia Campos <cgarcia at igalia.com>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/NetworkProcess/soup/WebSocketTaskSoup.cpp

  Log Message:
  -----------
  Merge r270825 - [SOUP] WebSockets: wrong data sent in some cases with libsoup < 2.68
https://bugs.webkit.org/show_bug.cgi?id=219850

Patch by Carlos Garcia Campos <cgarcia at igalia.com> on 2020-12-15
Reviewed by Michael Catanzaro.

We are using soup_websocket_connection_send_text() when libsoup < 2.68, which expects a null terminated string,
but we are receiving a IPC::DataReference that needs to be converted to a null terminated string by taking into
account its size.

* NetworkProcess/soup/WebSocketTaskSoup.cpp:
(WebKit::WebSocketTask::sendString):


  Commit: 81dace66bf00ef35f25e9bcd64505d6b5f4d04d7
      https://github.com/WebKit/WebKit/commit/81dace66bf00ef35f25e9bcd64505d6b5f4d04d7
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2020-12-15 (Tue, 15 Dec 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.4 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.4.


  Commit: c0c040b6b4d937c9f63af18358de57b5b6530393
      https://github.com/WebKit/WebKit/commit/c0c040b6b4d937c9f63af18358de57b5b6530393
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2020-12-16 (Wed, 16 Dec 2020)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.4 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.4.


  Commit: ad9d2ec5366260b777c683a6fff5a1bcbc267eab
      https://github.com/WebKit/WebKit/commit/ad9d2ec5366260b777c683a6fff5a1bcbc267eab
  Author: Jim Mason <jmason at ibinx.com>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M Source/WebKit/CMakeLists.txt
    M Source/WebKit/ChangeLog

  Log Message:
  -----------
  [GTK] WebKitPluginProcess is built but not installed
https://bugs.webkit.org/show_bug.cgi?id=220154

Patch by Jim Mason <jmason at ibinx.com> on 2020-12-27
Reviewed by Carlos Garcia Campos.

* CMakeLists.txt:


  Commit: 7082b19c0720ccabbfc010e5b1dd0963fc7e62a3
      https://github.com/WebKit/WebKit/commit/7082b19c0720ccabbfc010e5b1dd0963fc7e62a3
  Author: Žan Doberšek <zdobersek at igalia.com>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/RunLoop.cpp
    M Source/WTF/wtf/RunLoop.h
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WTF/RunLoop.cpp

  Log Message:
  -----------
  Merge r270496 - [GLib] Leaked RunLoop objects on worker threads
https://bugs.webkit.org/show_bug.cgi?id=219232
<rdar://problem/71772277>

Patch by Zan Dobersek <zdobersek at igalia.com> on 2020-12-07
Reviewed by Geoffrey Garen.

Source/WTF:

During the thread-local RunLoop::Holder destruction, explicitly clear out
the iteration Deque objects on the held RunLoop, destroying any Function
objects that never got to execute on this thread. Generally, this allows
for any RunLoop reference stored in these objects to be released.

Specifically, this would allow for destruction of the RunLoop::Timer
object that's queued up in the JSRunLoopTimer::Manager::PerVMData
destructor but never gets dispatched because the thread (a JS worker) is
shut down before that happens. Destruction of the timer will release the
reference of the RunLoop that's held by the RunLoop::Holder, finally
enabling the RunLoop object itself be destroyed once the RunLoop::Holder
reference is let go.

* wtf/RunLoop.cpp:
(WTF::RunLoop::Holder::~Holder):
(WTF::RunLoop::threadWillExit):
* wtf/RunLoop.h:

Tools:

Add a unit test covering proper RunLoop teardown upon thread destruction
even if RunLoop references are stored in the dispatch queues.

* TestWebKitAPI/Tests/WTF/RunLoop.cpp:
(TestWebKitAPI::TEST):


  Commit: 96ef55af9aa04b32a3dcd85f085af92b215e412b
      https://github.com/WebKit/WebKit/commit/96ef55af9aa04b32a3dcd85f085af92b215e412b
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/PlatformGTK.cmake
    M Source/WebKit/ChangeLog
    M Source/WebKit/PlatformGTK.cmake

  Log Message:
  -----------
  Merge r271580 - [GTK] Multilib conflicts in gir files
https://bugs.webkit.org/show_bug.cgi?id=220636

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-01-18
Reviewed by Carlos Garcia Campos.

Source/JavaScriptCore:

* PlatformGTK.cmake:

Source/WebKit:

By passing --sources-top-dirs to g-ir-scanner, we ensure all paths in the generated gir
files are relative to the toplevel builddir. This avoids multilib conflicts when the
builddir contains the target architecture.

* PlatformGTK.cmake:


  Commit: 04d858a22f767e89bd3bf4da6c9c87fe5e98fbbc
      https://github.com/WebKit/WebKit/commit/04d858a22f767e89bd3bf4da6c9c87fe5e98fbbc
  Author: Lauro Moura <lmoura at igalia.com>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M ChangeLog
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/PlatformGTK.cmake
    M Source/WebKit/ChangeLog
    M Source/WebKit/PlatformGTK.cmake
    M Source/cmake/FindGObjectIntrospection.cmake

  Log Message:
  -----------
  Merge r271608 - REGRESSION(r271580) [GTK] LTS/Debian build failure due to unsupported g-ir-scanner parameter
https://bugs.webkit.org/show_bug.cgi?id=220730

Reviewed by Philippe Normand.

.:

* Source/cmake/FindGObjectIntrospection.cmake: Expose variable about the
presence of --sources-top-dirs.

Source/JavaScriptCore:

No new behavior. No new tests.

* PlatformGTK.cmake: Expose --sources-top-dirs only if available.

Source/WebKit:

No new behavior. No new tests.

* PlatformGTK.cmake: Expose --sources-top-dirs only if available.


  Commit: 2d97056952b10cadd3a75e39d0adcabebe3d01a6
      https://github.com/WebKit/WebKit/commit/2d97056952b10cadd3a75e39d0adcabebe3d01a6
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/assembler/ARM64Assembler.h
    M Source/JavaScriptCore/assembler/AbstractMacroAssembler.h
    M Source/JavaScriptCore/assembler/LinkBuffer.cpp
    M Source/JavaScriptCore/jit/ExecutableAllocator.cpp
    M Source/JavaScriptCore/jit/ExecutableAllocator.h
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/PlatformEnable.h

  Log Message:
  -----------
  Merge r270377 - aarch64 llint does not build with JIT disabled
https://bugs.webkit.org/show_bug.cgi?id=219288
<rdar://problem/71855960>

Source/JavaScriptCore:

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-12-02
Reviewed by Darin Adler.

* assembler/ARM64Assembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::ARM64Assembler::replaceWithJump):
(JSC::ARM64Assembler::linkJumpOrCall):
* assembler/AbstractMacroAssembler.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::AbstractMacroAssembler::prepareForAtomicRepatchNearCallConcurrently):
* assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode): Guard JIT-specific code with ENABLE(JIT).
* jit/ExecutableAllocator.cpp: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).
(JSC::initializeJITPageReservation):
* jit/ExecutableAllocator.h: Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS).

Source/WTF:

Rename USE(JUMP_ISLANDS) to ENABLE(JUMP_ISLANDS), and make it depend on ENABLE(JIT). We need
it to depend on ENABLE(JIT) to fix the build, but this is awkward to do otherwise, because
USE macros are defined in PlatformUse.h before ENABLE macros in PlatformEnable.h. But it
makes sense, since USE macros should be used for "a particular third-party library or
optional OS service," and jump islands are neither, so ENABLE is more suitable anyway.

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-12-02
Reviewed by Darin Adler.

* wtf/PlatformEnable.h:
* wtf/PlatformUse.h:


  Commit: dfff805b0e20d06fb3819ccb8144db81f0f03624
      https://github.com/WebKit/WebKit/commit/dfff805b0e20d06fb3819ccb8144db81f0f03624
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2021-02-01 (Mon, 01 Feb 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/UserAgentQuirks.cpp
    M Source/WebCore/platform/UserAgentQuirks.h
    M Source/WebCore/platform/glib/UserAgentGLib.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp

  Log Message:
  -----------
  Merge r270168 - [WPE][GTK] Use Internet Explorer quirk for Google Docs
https://bugs.webkit.org/show_bug.cgi?id=219278

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2020-11-26
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Since r266584, we've suffered from an annoying unsupported browser warning when using Google
Docs. We don't have many options to avoid it. I'm afraid that Firefox or Chrome quirks are
too risky, since these seem to tempt Google into using web platform features that WebKit
does not support. The safest quirk is the macOS platform quirk, but that doesn't work well
here because it breaks various keyboard shortcuts like Ctrl+A and Ctrl+Z. So an Internet
Explorer quirk is really the last card we have left.

I think this is the safest Google quirk we've ever had, in that it's pretty unlikely that
Google will try to send Internet Explorer anything that doesn't work in WebKit. However, it
will break eventually, whenever Google decides that Internet Explorer is no longer
supported. I guess that date is probably at least five years away, so we can only hope that
Google drops this anticompetitive nonsense before then.

P.S. Let's also switch Google Drive to this new quirk. The unsupported browser warning on
Google Drive seems to be completely independent, but the IE quirk seems safer that the
existing Firefox quirk, so why not?

* platform/UserAgentQuirks.cpp:
(WebCore::isGoogle):
(WebCore::urlRequiresInternetExplorerBrowser):
(WebCore::urlRequiresWindowsPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
* platform/UserAgentQuirks.h:
* platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):

Tools:

* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk):
(TestWebKitAPI::TEST):


  Commit: 64fc76b2d0e0d259f38476d85a8f1b67eb81c48f
      https://github.com/WebKit/WebKit/commit/64fc76b2d0e0d259f38476d85a8f1b67eb81c48f
  Author: Philippe Normand <pnormand at igalia.com>
  Date:   2021-02-11 (Thu, 11 Feb 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp

  Log Message:
  -----------
  Merge r270184 - [GStreamer] AudioSourceProvider can potentially invoke an already-freed client
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Xabier Rodriguez-Calvar.

* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::deinterleavePadsConfigured): Check the provider has
a client before setting up the audio format.


  Commit: bbba6bd7de984a03dd6a26c51abfa1270f38b60a
      https://github.com/WebKit/WebKit/commit/bbba6bd7de984a03dd6a26c51abfa1270f38b60a
  Author: Xabier Rodriguez-Calvar <calvaris at igalia.com>
  Date:   2021-02-11 (Thu, 11 Feb 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/audio/AudioSourceProviderClient.h
    M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp
    M Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.h

  Log Message:
  -----------
  Merge r272646 - [GStreamer] Make m_client WeakPtr in AudioSourceProviderGStreamer
https://bugs.webkit.org/show_bug.cgi?id=217952

Reviewed by Carlos Garcia Campos.

* platform/audio/AudioSourceProviderClient.h: Turned into
CanMakeWeakPtr.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp:
(WebCore::AudioSourceProviderGStreamer::setClient): Adapt to use
WeakPtr.
* platform/audio/gstreamer/AudioSourceProviderGStreamer.h: Turned
m_client into WeakPtr.


  Commit: 86e8b80c954b23ca53bdcc64c00653dfb5fe0abe
      https://github.com/WebKit/WebKit/commit/86e8b80c954b23ca53bdcc64c00653dfb5fe0abe
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2021-02-11 (Thu, 11 Feb 2021)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.5 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.5.


  Commit: 5c0e297b1e81f3e598acf2000d10b8c446a42960
      https://github.com/WebKit/WebKit/commit/5c0e297b1e81f3e598acf2000d10b8c446a42960
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2021-02-12 (Fri, 12 Feb 2021)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.5 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.5.


  Commit: 0f8615351bf03124844fbc696da25c7cf77cd620
      https://github.com/WebKit/WebKit/commit/0f8615351bf03124844fbc696da25c7cf77cd620
  Author: Michael Catanzaro <mcatanzaro at gnome.org>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/platform/UserAgentQuirks.cpp
    M Source/WebCore/platform/glib/UserAgentGLib.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp

  Log Message:
  -----------
  Merge r272921 - [GTK] Need new user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=221845

Patch by Michael Catanzaro <mcatanzaro at gnome.org> on 2021-02-16
Reviewed by Adrian Perez de Castro.

Source/WebCore:

Switch Google Docs to use a Chrome browser quirk instead of an Internet Explorer quirk.
Remove the Google Drive quirk altogether. Remove the Internet Explorer and Windows platform
quirks, which are no longer used. Retarget the Google Docs quirk to apply only to
docs.google.com because we no longer need to send the quirk to accounts.youtube.com for it
to be effective. Lastly, update Chrome and Firefox version strings for good measure.

* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresInternetExplorerBrowser): Deleted.
(WebCore::urlRequiresWindowsPlatform): Deleted.
* platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):

Tools:

* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasInternetExplorerBrowserQuirk): Deleted.
(TestWebKitAPI::assertUserAgentForURLHasWindowsPlatformQuirk): Deleted.


  Commit: 807fa65c5ba0ec3772789f1003c2c8a21d179ea9
      https://github.com/WebKit/WebKit/commit/807fa65c5ba0ec3772789f1003c2c8a21d179ea9
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/css/MediaQueryMatcher.cpp
    M Source/WebCore/dom/EventTarget.cpp
    M Source/WebCore/page/FrameView.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/ios/WKApplicationStateTrackingView.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in

  Log Message:
  -----------
  Merge r265623 - REGRESSION (r260684): Messages YouTube inline video: after Multitasking away and Back, Audio is heard but icon indicates "muted"
https://bugs.webkit.org/show_bug.cgi?id=215453
<rdar://problem/66136673>

Reviewed by Tim Horton.

Source/WebCore:

r260684 silenced all JS events during the snapshot sequence that occurs whenever the user homes out of Safari.
This was meant to address compatibility with websites that did not expect various resize/orientationchange
events when homing out. However, the snapshot sequence is fairly long and this was causing us to silence JS
events which have nothing to do with the snapshot sequence, like window.postMessage()'s message events. This is
what caused this regression.

To address the issue, this patch basically reverts r260684 and deals with websites-compatibility issues via
less risky site-specific and event-specific quirks:
- We silence Window resize events on nytimes.com to address <rdar://problem/59763843>.
- We silence Window resize events and MediaQueryList change events on twitter.com to address <rdar://problem/58804852>
  and <rdar://problem/61731801>.

* css/MediaQueryMatcher.cpp:
(WebCore::MediaQueryMatcher::evaluateAll):
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* page/FrameView.cpp:
(WebCore::FrameView::sendResizeEventIfNeeded):
* page/Page.h:
(WebCore::Page::isTakingSnapshotsForApplicationSuspension const):
(WebCore::Page::setIsTakingSnapshotsForApplicationSuspension):
(WebCore::Page::shouldFireEvents const): Deleted.
(WebCore::Page::setShouldFireEvents): Deleted.
* page/Quirks.cpp:
(WebCore::Quirks::shouldSilenceWindowResizeEvents const):
(WebCore::Quirks::shouldSilenceMediaQueryListChangeEvents const):
* page/Quirks.h:

Source/WebKit:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setIsDoingSnapshotSequence):
(WebKit::WebPageProxy::setShouldFireEvents): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setIsDoingSnapshotSequence):
(WebKit::WebPage::setShouldFireEvents): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:


  Commit: e917816c75c1786b32e65243956db4203ae34e02
      https://github.com/WebKit/WebKit/commit/e917816c75c1786b32e65243956db4203ae34e02
  Author: Brady Eidson <beidson at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Tools/ChangeLog
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm

  Log Message:
  -----------
  Merge r266798 - Make sure WKWebsiteDataStore operations reuse existing process pools even when all WKWebViews have closed.
<rdar://problem/62978295> and https://bugs.webkit.org/show_bug.cgi?id=216317

Reviewed by Geoffrey Garen.

Source/WebKit:

Covered by new API test.

When WebsiteDataStores are gathering all the NetworkProcesses they might need to message, they miss some
obvious candidates if there are no longer any related WKWebViews.

Fix that by tracking which sessions a NetworkProcess knows about.

* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::addSession):
(WebKit::NetworkProcessProxy::hasSession const):
(WebKit::NetworkProcessProxy::removeSession):
* UIProcess/Network/NetworkProcessProxy.h:

* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::isAssociatedProcessPool const):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::TEST):


  Commit: 0172de7274030fc3393b7cec15489e00b83ed02d
      https://github.com/WebKit/WebKit/commit/0172de7274030fc3393b7cec15489e00b83ed02d
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/WebCore/ChangeLog
    M Source/WebCore/page/FrameView.cpp

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

Reviewed by Darin Adler.

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

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


  Commit: 3b798aab71cc20953a6baa19b0cc87e08b7ac54d
      https://github.com/WebKit/WebKit/commit/3b798aab71cc20953a6baa19b0cc87e08b7ac54d
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M LayoutTests/ChangeLog
    M LayoutTests/imported/w3c/ChangeLog
    M LayoutTests/webrtc/rtcpeerconnection-error-messages-expected.txt
    M LayoutTests/webrtc/stun-server-filtering.html
    M Source/WebCore/CMakeLists.txt
    M Source/WebCore/ChangeLog
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.h
    M Source/WebCore/Modules/mediastream/RTCPeerConnection.idl
    A Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp
    A Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.h
    A Source/WebCore/Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl
    M Source/WebCore/Sources.txt
    M Source/WebCore/bindings/js/WebCoreBuiltinNames.h
    M Source/WebCore/dom/EventNames.h
    M Source/WebCore/dom/EventNames.in

  Log Message:
  -----------
  Merge r270101 - Add support for RTCPeerConnection.onicecandidateerror event
https://bugs.webkit.org/show_bug.cgi?id=169644

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

* web-platform-tests/webrtc/idlharness.https.window-expected.txt:

Source/WebCore:

Expose RTCPeerConnection.onicecandidateerror and use it for wrong STUN/TURN server URLs.
For that matter, add RTCPeerConnectionIceErrorEvent as per spec with a slight change to the init directory to keep the same terminology between event and init dictionary.

Covered by updated webrtc/stun-server-filtering.html test.

* CMakeLists.txt:
* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::iceServersFromConfiguration):
(WebCore::iceServersFromConfiguration): Deleted.
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCPeerConnection.idl:
* Modules/mediastream/RTCPeerConnectionIceErrorEvent.cpp: Added.
(WebCore::RTCPeerConnectionIceErrorEvent::create):
(WebCore::RTCPeerConnectionIceErrorEvent::RTCPeerConnectionIceErrorEvent):
(WebCore::RTCPeerConnectionIceErrorEvent::eventInterface const):
* Modules/mediastream/RTCPeerConnectionIceErrorEvent.h: Added.
* Modules/mediastream/RTCPeerConnectionIceErrorEvent.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/EventNames.h:
* dom/EventNames.in:

LayoutTests:

* webrtc/rtcpeerconnection-error-messages-expected.txt:
* webrtc/stun-server-filtering.html:


  Commit: cccd1da691e069702aba0a80daf4e19788f98da2
      https://github.com/WebKit/WebKit/commit/cccd1da691e069702aba0a80daf4e19788f98da2
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M LayoutTests/imported/w3c/ChangeLog
    M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.js
    M LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/websockets/Create-blocked-port.any.js
    M Source/WTF/ChangeLog
    M Source/WTF/wtf/URL.cpp

  Log Message:
  -----------
  Merge r270321 - Update list of block ports according fetch spec
https://bugs.webkit.org/show_bug.cgi?id=219154

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

* web-platform-tests/fetch/api/request/request-bad-port.any-expected.txt:
* web-platform-tests/fetch/api/request/request-bad-port.any.js:
* web-platform-tests/fetch/api/request/request-bad-port.any.worker-expected.txt:
* web-platform-tests/websockets/Create-blocked-port.any-expected.txt:
* web-platform-tests/websockets/Create-blocked-port.any.js:
* web-platform-tests/websockets/Create-blocked-port.any.worker-expected.txt:

Source/WTF:

* wtf/URL.cpp:
(WTF::portAllowed):


  Commit: 32a48e13287bfffe453dcf1f6d8b06046878c706
      https://github.com/WebKit/WebKit/commit/32a48e13287bfffe453dcf1f6d8b06046878c706
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe-expected.txt
    A LayoutTests/http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html
    A LayoutTests/http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-sandboxed-iframe.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/dom/Document.cpp

  Log Message:
  -----------
  Merge r270367 - Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified
https://bugs.webkit.org/show_bug.cgi?id=219408
<rdar://problem/71049726>

Reviewed by Geoffrey Garen.

Source/WebCore:

Block suspicious top level navigations by iframes even if sandbox=allow-top-navigation is specified,
when the parent of the sandboxed iframe is not first-party.

Test: http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html

* dom/Document.cpp:
(WebCore::Document::isNavigationBlockedByThirdPartyIFrameRedirectBlocking):

LayoutTests:

Add layout test coverage.

* http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe-expected.txt: Added.
* http/tests/security/block-top-level-navigations-by-third-party-sandboxed-iframe.html: Added.
* http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-sandboxed-iframe.html: Added.


  Commit: 8fbd4d2238e544775d3cadfafb5b0c5214012985
      https://github.com/WebKit/WebKit/commit/8fbd4d2238e544775d3cadfafb5b0c5214012985
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M LayoutTests/ChangeLog
    A LayoutTests/http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture-expected.txt
    A LayoutTests/http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html
    A LayoutTests/http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-message-handler.html
    M Source/WebCore/ChangeLog
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/UserGestureIndicator.cpp
    M Source/WebCore/dom/UserGestureIndicator.h

  Log Message:
  -----------
  Merge r270373 - iframe with `sandbox=allow-top-navigation-by-user-activation` can navigate top frame when the user interacts with an iframe from another origin
https://bugs.webkit.org/show_bug.cgi?id=219413
<rdar://problem/64887657>

Reviewed by Geoffrey Garen.

Source/WebCore:

An iframe with `sandbox=allow-top-navigation-by-user-activation` can navigate the top frame when the user
interacts with an frame from another origin. This is not strict enough and does not match the behavior of
Chrome.

In Chrome, the user activation is only valid for the purpose of navigation if the user interacted with either:
- The iframe triggering the navigation
- A descendant iframe of the iframe triggering the navigation
- A frame from the same origin as the iframe triggering the navigation

This patch aligns our behavior with Chrome's.

Test: http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html

* dom/Document.cpp:
(WebCore::Document::canNavigateInternal):
* dom/UserGestureIndicator.cpp:
(WebCore::UserGestureToken::UserGestureToken):
(WebCore::UserGestureToken::isValidForDocument const):
(WebCore::UserGestureIndicator::processingUserGesture):
* dom/UserGestureIndicator.h:
(WebCore::UserGestureToken::create):

LayoutTests:

Add layout test coverage.

* http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture-expected.txt: Added.
* http/tests/security/block-top-level-navigations-by-sandboxed-iframe-with-propagated-user-gesture.html: Added.
* http/tests/security/resources/navigate-top-level-frame-to-failure-page-via-message-handler.html: Added.


  Commit: 70661b7e60103960ae75661f29a2bf803dcd5f67
      https://github.com/WebKit/WebKit/commit/70661b7e60103960ae75661f29a2bf803dcd5f67
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h

  Log Message:
  -----------
  Merge r271144 - propertyNameEnumerator must check it can still take the fast path after getGenericPropertyNames
https://bugs.webkit.org/show_bug.cgi?id=219957
<rdar://71156284>

Reviewed by Yusuke Suzuki.

We need to check if we still `canAccessPropertiesQuicklyForEnumeration` on
`structureAfterGettingPropertyNames`, since we might call out out to a proxy's
`getPrototypeOf` callback through `getGenericPropertyNames`.

* runtime/JSPropertyNameEnumerator.h:
(JSC::propertyNameEnumerator):


  Commit: 27cb7bb0299766cb969e6e6b06b6ec8c03bb6624
      https://github.com/WebKit/WebKit/commit/27cb7bb0299766cb969e6e6b06b6ec8c03bb6624
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M Source/JavaScriptCore/ChangeLog
    M Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h

  Log Message:
  -----------
  Merge r271544 - [JSC] Clean up DFGPreciseLocalClobberize to avoid duplicate code
https://bugs.webkit.org/show_bug.cgi?id=220670

Reviewed by Filip Pizlo.

This patch cleans up DFGPreciseLocalClobberize by extracting code to lambda to remove duplicate code.

* dfg/DFGPreciseLocalClobberize.h:
(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):


  Commit: 49170e8549e939f0cb64d2ce2774682a9afca1db
      https://github.com/WebKit/WebKit/commit/49170e8549e939f0cb64d2ce2774682a9afca1db
  Author: Carlos Garcia Campos <carlosgc at webkit.org>
  Date:   2021-03-18 (Thu, 18 Mar 2021)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/gtk/NEWS
    M Source/cmake/OptionsGTK.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsGTK.cmake and NEWS for 2.30.6 release

.:

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

Source/WebKit:

* gtk/NEWS: Add release notes for 2.30.6.


  Commit: 3dc67d0e08ab86d4abf01bed2431b6eafd5a9c4c
      https://github.com/WebKit/WebKit/commit/3dc67d0e08ab86d4abf01bed2431b6eafd5a9c4c
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2021-03-19 (Fri, 19 Mar 2021)

  Changed paths:
    M Source/WebKit/ChangeLog
    M Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp

  Log Message:
  -----------
  Unreviewed non-unified build fixes

* GPUProcess/media/RemoteMediaResourceLoader.cpp:
* NetworkProcess/webrtc/NetworkRTCProvider.cpp:


  Commit: 31da42f0b1ee02a9a4920486ec8fcb54f7e0be84
      https://github.com/WebKit/WebKit/commit/31da42f0b1ee02a9a4920486ec8fcb54f7e0be84
  Author: Adrian Perez de Castro <aperez at igalia.com>
  Date:   2021-03-23 (Tue, 23 Mar 2021)

  Changed paths:
    M ChangeLog
    M Source/WebKit/ChangeLog
    M Source/WebKit/wpe/NEWS
    M Source/cmake/OptionsWPE.cmake

  Log Message:
  -----------
  Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.30.6 release

.:

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

Source/WebKit:

* wpe/NEWS: Add release notes for 2.30.6.


Compare: https://github.com/WebKit/WebKit/compare/3b2f1f256e39%5E...31da42f0b1ee


More information about the webkit-changes mailing list