Timeline
May 28, 2020:
- 10:58 PM Changeset in webkit [262281] by
-
- 4 edits in trunk/Source/WebKit
Clean up WebKit.xcodeproj/project.pbxproj
https://bugs.webkit.org/show_bug.cgi?id=212491
Reviewed by Tim Horton.
A follow-up patch to add AudioSessionRoutingArbitratorProxyCocoa.mm to the unified build.
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
Add AudioSessionRoutingArbitratorProxyCocoa.mm to the unified build.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
Fix a unified build failure.
- 10:41 PM Changeset in webkit [262280] by
-
- 2 edits in trunk/Source/WebKit
Avoid unnecessary sync IPC messages when togging the callout bar for selections.
https://bugs.webkit.org/show_bug.cgi?id=212508
The loupe gesture only needs to be activated and evaluated if the tap is inside
an existing selectionView. We can do that test in the UIProcess without resorting to a sync IPC message.
Doing that evaluation locally will eliminate unnecessary hangs in the UIProcess.
Reviewed by Wenson Hsieh.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _pointIsInsideSelectionRect:outBoundingRect:]):
(-[WKContentView _shouldToggleSelectionCommandsAfterTapAt:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
- 9:08 PM Changeset in webkit [262279] by
-
- 11 edits4 adds in trunk
[Apple Pay] Buttons render with a corner radius of PKApplePayButtonDefaultCornerRadius even when explicitly specifying "border-radius: 0px"
https://bugs.webkit.org/show_bug.cgi?id=212476
<rdar://problem/63401433>
Reviewed by Antti Koivisto.
Source/WebCore:
r256648 added support for customizing the corner radius of Apple Pay buttons using the
border-radius CSS property. PassKit buttons have a default corner radius of 4, but
border-radius has an initial value of 0, so to maintain web compatibility with existing
buttons we only want to customize the corner radius when a border-radius value has been
explicitly specified (otherwise, previously rounded buttons would all become squared off due
to border-radius's initial value).
r256648 checked for a non-initial border-radius by calling RenderStyle::hasBorderRadius, but
this check does not distinguish between an initial value and an explicit declaration of
"border-radius: 0px". As a result, authors are unable to create Apple Pay buttons with
square corners.
This patch adds a flag to RenderStyle::NonInheritedFlags that tracks whether any
border-radius longhand has been explicitly set (or has explicitly inherited an explicitly set
value), and uses that flag to adjust the computed border radius for Apple Pay buttons.
The addition of RenderStyle::NonInheritedFlags::hasExplicitlySetBorderRadius did not change
the size of RenderStyle.
Tests: fast/css/appearance-apple-pay-button-border-radius.html
fast/css/getComputedStyle/computed-style-apple-pay-button.html
- css/CSSProperties.json:
- rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::adjustApplePayButtonStyle const):
(WebCore::RenderThemeCocoa::paintApplePayButton):
(WebCore::largestCornerRadius): Deleted.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasExplicitlySetBorderRadius const):
(WebCore::RenderStyle::setHasExplicitlySetBorderRadius):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInheritBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderBottomRightRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopLeftRadius):
(WebCore::Style::BuilderCustom::applyInheritBorderTopRightRadius):
(WebCore::Style::BuilderCustom::applyValueBorderTopRightRadius):
LayoutTests:
- TestExpectations:
- fast/css/appearance-apple-pay-button-border-radius-expected.html: Added.
- fast/css/appearance-apple-pay-button-border-radius.html: Added.
- fast/css/appearance-apple-pay-button-expected.html:
- fast/css/appearance-apple-pay-button.html:
- fast/css/getComputedStyle/computed-style-apple-pay-button-expected.txt: Added.
- fast/css/getComputedStyle/computed-style-apple-pay-button.html: Added.
- platform/mac/TestExpectations:
- 8:58 PM Changeset in webkit [262278] by
-
- 2 edits in trunk/Source/WebKit
Fix the macOS build
- WebKit.xcodeproj/project.pbxproj:
Can't have this file in both the Xcode target and SourcesCocoa.txt...
- 8:00 PM Changeset in webkit [262277] by
-
- 80 edits17 adds2 deletes in trunk/LayoutTests
Update web-platform-tests/interfaces from upstream
https://bugs.webkit.org/show_bug.cgi?id=212501
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
Unreviewed, rebaseline web-platform-tests/interfaces from upstream 6a76a185f913e3c027e369a.
- web-platform-tests/IndexedDB/idlharness.any-expected.txt:
- web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:
- web-platform-tests/credential-management/idlharness.https.window-expected.txt:
- web-platform-tests/css/css-animations/idlharness-expected.txt:
- web-platform-tests/css/css-transitions/idlharness-expected.txt:
- web-platform-tests/css/cssom-view/idlharness-expected.txt:
- web-platform-tests/css/cssom/interfaces-expected.txt:
- web-platform-tests/dom/idlharness.any.worker-expected.txt:
- web-platform-tests/dom/idlharness.window-expected.txt:
- web-platform-tests/domparsing/idlharness.window-expected.txt:
- web-platform-tests/html/dom/idlharness.worker-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-all-global-events-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-body-window-expected.txt:
- web-platform-tests/html/webappapis/scripting/events/event-handler-attributes-windowless-body-expected.txt:
- web-platform-tests/interfaces/DOM-Parsing.idl:
- web-platform-tests/interfaces/IndexedDB.idl:
- web-platform-tests/interfaces/WebCryptoAPI.idl:
- web-platform-tests/interfaces/appmanifest.idl:
- web-platform-tests/interfaces/badging.idl: Added.
- web-platform-tests/interfaces/clipboard-apis.idl:
- web-platform-tests/interfaces/construct-stylesheets.idl: Added.
- web-platform-tests/interfaces/cookie-store.idl:
- web-platform-tests/interfaces/css-font-loading.idl:
- web-platform-tests/interfaces/css-regions.idl: Removed.
- web-platform-tests/interfaces/css-shadow-parts.idl:
- web-platform-tests/interfaces/css-typed-om.idl:
- web-platform-tests/interfaces/cssom-view.idl:
- web-platform-tests/interfaces/cssom.idl:
- web-platform-tests/interfaces/device-memory.idl: Added.
- web-platform-tests/interfaces/dom.idl:
- web-platform-tests/interfaces/encrypted-media.idl:
- web-platform-tests/interfaces/event-timing.idl:
- web-platform-tests/interfaces/fullscreen.idl:
- web-platform-tests/interfaces/geolocation-sensor.idl:
- web-platform-tests/interfaces/hit-test.idl: Added.
- web-platform-tests/interfaces/html.idl:
- web-platform-tests/interfaces/image-capture.idl:
- web-platform-tests/interfaces/intersection-observer.idl:
- web-platform-tests/interfaces/js-self-profiling.idl: Added.
- web-platform-tests/interfaces/layout-instability.idl:
- web-platform-tests/interfaces/media-capabilities.idl:
- web-platform-tests/interfaces/media-playback-quality.idl:
- web-platform-tests/interfaces/media-source.idl:
- web-platform-tests/interfaces/mediasession.idl:
- web-platform-tests/interfaces/mediastream-recording.idl:
- web-platform-tests/interfaces/mst-content-hint.idl:
- web-platform-tests/interfaces/native-file-system.idl: Added.
- web-platform-tests/interfaces/netinfo.idl:
- web-platform-tests/interfaces/origin-policy.idl: Added.
- web-platform-tests/interfaces/page-lifecycle.idl: Added.
- web-platform-tests/interfaces/payment-method-basic-card.idl:
- web-platform-tests/interfaces/payment-request.idl:
- web-platform-tests/interfaces/periodic-background-sync.idl: Added.
- web-platform-tests/interfaces/permissions-request.idl: Added.
- web-platform-tests/interfaces/permissions-revoke.idl: Added.
- web-platform-tests/interfaces/permissions.idl:
- web-platform-tests/interfaces/pointerevents.idl:
- web-platform-tests/interfaces/reporting.idl:
- web-platform-tests/interfaces/requestidlecallback.idl:
- web-platform-tests/interfaces/resize-observer.idl:
- web-platform-tests/interfaces/scroll-animations.idl:
- web-platform-tests/interfaces/shape-detection-api.idl:
- web-platform-tests/interfaces/storage-access-api.tentative.idl: Added.
- web-platform-tests/interfaces/text-detection-api.tentative.idl: Added.
- web-platform-tests/interfaces/trusted-types.tentative.idl:
- web-platform-tests/interfaces/video-rvfc.idl: Added.
- web-platform-tests/interfaces/visual-viewport.idl: Added.
- web-platform-tests/interfaces/w3c-import.log:
- web-platform-tests/interfaces/wai-aria.idl:
- web-platform-tests/interfaces/wake-lock.idl:
- web-platform-tests/interfaces/web-animations.idl:
- web-platform-tests/interfaces/web-bluetooth.idl:
- web-platform-tests/interfaces/web-locks.idl: Added.
- web-platform-tests/interfaces/web-nfc.idl:
- web-platform-tests/interfaces/web-share.idl:
- web-platform-tests/interfaces/webaudio.idl:
- web-platform-tests/interfaces/webauthn.idl:
- web-platform-tests/interfaces/webmidi.idl:
- web-platform-tests/interfaces/webrtc-dscp.idl: Removed.
- web-platform-tests/interfaces/webrtc-identity.idl:
- web-platform-tests/interfaces/webrtc-stats.idl:
- web-platform-tests/interfaces/webrtc-svc.idl: Added.
- web-platform-tests/interfaces/webrtc.idl:
- web-platform-tests/interfaces/webxr-ar-module.idl:
- web-platform-tests/interfaces/webxr.idl:
- web-platform-tests/interfaces/worklets.idl:
- web-platform-tests/intersection-observer/idlharness.window-expected.txt:
- web-platform-tests/mathml/relations/html5-tree/math-global-event-handlers.tentative-expected.txt:
- web-platform-tests/mediacapture-record/idlharness.window-expected.txt:
- web-platform-tests/mst-content-hint/idlharness.window-expected.txt:
- web-platform-tests/remote-playback/idlharness.window-expected.txt:
- web-platform-tests/resize-observer/idlharness.window-expected.txt:
- web-platform-tests/svg/idlharness.window-expected.txt:
- web-platform-tests/web-animations/idlharness.window-expected.txt:
- web-platform-tests/websockets/basic-auth.any.js:
- web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js:
- web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt:
- web-platform-tests/xhr/idlharness.any-expected.txt:
- web-platform-tests/xhr/idlharness.any.worker-expected.txt:
- web-platform-tests/xhr/sync-no-timeout.any-expected.txt:
- web-platform-tests/xhr/sync-no-timeout.any.worker-expected.txt:
LayoutTests:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 5:22 PM Changeset in webkit [262276] by
-
- 8 edits in trunk
Make fast/text/user-installed-fonts/extended-character.html more robust
https://bugs.webkit.org/show_bug.cgi?id=212487
<rdar://problem/63235370>
Unreviewed.
Tools:
Update the font to use the new character.
- WebKitTestRunner/fonts/FakeHelvetica-SingleExtendedCharacter.ttf:
LayoutTests:
The test tries to make sure that, even if a user-installed font is the only font that supports
a certain character, it still isn't used if user-installed fonts are disallowed. This patch
updates the test to make the character less likely to be used by preinstalled fonts.
- TestExpectations: Run the test everywhere, but it might not pass, rather than skipping it.
- fast/text/user-installed-fonts/extended-character-expected.html:
- fast/text/user-installed-fonts/extended-character-with-user-font-expected-mismatch.html:
- fast/text/user-installed-fonts/extended-character-with-user-font.html:
- fast/text/user-installed-fonts/extended-character.html:
- 5:06 PM Changeset in webkit [262275] by
-
- 3 edits in trunk/Source/WebCore
Shrink StyleRareNonInheritedData by 8 bytes (on 64-bit platforms)
https://bugs.webkit.org/show_bug.cgi?id=212484
Reviewed by Tim Horton.
There were 4 bytes of padding after shapeImageThreshold, enough to fit order and shrink the
overall size of StyleRareNonInheritedData by 8 bytes on 64-bit platforms.
Before:
Total byte size: 480
Total pad bytes: 50
Padding percentage: 10.42 %
After:
Total byte size: 472
Total pad bytes: 42
Padding percentage: 8.90 %
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- 4:43 PM Changeset in webkit [262274] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Buildfix after r262242
Unreviewed build fix.
- Shared/glib/ArgumentCodersGLib.cpp:
(IPC::decode):
- 4:27 PM Changeset in webkit [262273] by
-
- 3 edits in trunk/Source/WebKit
watchOS: Upstream WKNumberPadView
https://bugs.webkit.org/show_bug.cgi?id=212499
<rdar://problem/63736073>
Reviewed by Wenson Hsieh.
- UIProcess/ios/forms/WKNumberPadView.h: Moved from WebKitAdditions.
- UIProcess/ios/forms/WKNumberPadView.mm: Ditto.
- 4:19 PM Changeset in webkit [262272] by
-
- 5 edits in trunk/Source
Responding to post commit review comments for https://bugs.webkit.org/show_bug.cgi?id=212060
- editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
- 4:06 PM Changeset in webkit [262271] by
-
- 3 edits in trunk/Source/WebKit
watchOS: Upstream WKTextInputListViewController
https://bugs.webkit.org/show_bug.cgi?id=212495
<rdar://problem/63733949>
Reviewed by Wenson Hsieh.
- UIProcess/ios/forms/WKTextInputListViewController.h: Moved from WebKitAdditions.
- UIProcess/ios/forms/WKTextInputListViewController.mm: Ditto.
- 3:56 PM Changeset in webkit [262270] by
-
- 2 edits in trunk/Tools
[Flatpak] Use subprocess.call instead of os.system to forward the return code correctly.
os.system reports error codes from the child process like wait(),
which seems to not be playing well with flatpak/bwrap.
This was causing flatpak to return 0 to some failed commands (like
build-webkit), making failures show as successes in the bots.
Unreviewed build fix.
- flatpak/webkit-bwrap:
- 3:52 PM Changeset in webkit [262269] by
-
- 3 edits2 copies in trunk/LayoutTests
http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html is slow
https://bugs.webkit.org/show_bug.cgi?id=212496
Reviewed by Geoffrey Garen.
Split test into two so that we don't lose any coverage but so that each test can run faster
individually.
- http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt:
- http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-high-priority-expected.txt: Copied from LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-expected.txt.
- http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy-high-priority.html: Copied from LayoutTests/http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html.
- http/tests/cache/disk-cache/disk-cache-validation-back-navigation-policy.html:
- 3:50 PM Changeset in webkit [262268] by
-
- 10 edits in trunk/Source
Simplify EventDispatcher wheel event dispatch
https://bugs.webkit.org/show_bug.cgi?id=212490
Reviewed by Tim Horton.
The various cross-thread bounces and completion lambdas in EventDispatcher::wheelEvent()
and ScrollingTree code made the logic very hard to follow.
Moving the ScrollingThread::dispatch() into EventHandler code simplifies things a little,
and allows for removal of the hokey "try to handle" ScrollingTree function, as well
as the clunky completion function.
Now, EventHandler call shouldHandleWheelEventSynchronously(), then does the
ScrollingThread::dispatch() which allows the lambda to easily call back into
EventHandler for the main thread dispatch.
Source/WebCore:
- page/scrolling/ScrollingTree.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::tryToHandleWheelEvent): Deleted.
- page/scrolling/ThreadedScrollingTree.h:
Source/WebKit:
RemoteScrollingCoordinatorProxy/RemoteLayerTree code is unused at present, and
will need work.
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::handleWheelEvent):
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::tryToHandleWheelEvent): Deleted.
- UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::dispatchWheelEventViaMainThread):
- WebProcess/WebPage/EventDispatcher.h:
- 3:46 PM Changeset in webkit [262267] by
-
- 2 edits in trunk/Source/WebKit
Clean up WebKit.xcodeproj/project.pbxproj
https://bugs.webkit.org/show_bug.cgi?id=212491
Reviewed by Simon Fraser.
Remove the references to deleted files and merge duplicated folders.
- WebKit.xcodeproj/project.pbxproj:
- 3:44 PM Changeset in webkit [262266] by
-
- 10 edits in trunk/Source/JavaScriptCore
Web Inspector: add missing condition guards when generating objc protocol files
https://bugs.webkit.org/show_bug.cgi?id=212494
Reviewed by Timothy Hatcher.
- inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator._generate_objc_forward_declarations):
- inspector/scripts/codegen/generate_objc_configuration_header.py:
(ObjCConfigurationHeaderGenerator._generate_properties_for_domain):
- inspector/scripts/codegen/generate_objc_configuration_implementation.py:
(ObjCConfigurationImplementationGenerator._generate_configuration_implementation_for_domains):
(ObjCConfigurationImplementationGenerator._generate_ivars):
(ObjCConfigurationImplementationGenerator._generate_dealloc):
(ObjCConfigurationImplementationGenerator._generate_event_dispatcher_getter_for_domain):
(ObjCConfigurationImplementationGenerator._variable_name_prefix_for_domain): Deleted.
- inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
(ObjCFrontendDispatcherImplementationGenerator._generate_event):
- inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_event_interfaces):
(ObjCHeaderGenerator._generate_single_event_interface):
- inspector/scripts/codegen/generate_objc_internal_header.py:
(ObjCInternalHeaderGenerator._generate_event_dispatcher_private_interfaces):
- inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
- inspector/scripts/tests/definitions-with-mac-platform.json:
- inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
- 3:35 PM Changeset in webkit [262265] by
-
- 6 edits4 moves in trunk
Minimum user interaction time in ResourceLoadStatistics should handle the case of -1
https://bugs.webkit.org/show_bug.cgi?id=212445
<rdar://problem/63696470>
Reviewed by John Wilander.
Source/WebKit:
Tests: http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database.html
http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html
Adds a getter for mostRecentUserInteractionTime which returns WTF::nullopt if the
timestamp is -1. Then does not consider this case in calculating the
minimum timestamp.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::getMostRecentUserInteractionTime):
(WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
Flip sign to be less than, so we hold off on deleting data if the
oldest interaction was less than the minimum time between removal.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::getMostRecentUserInteractionTime):
(WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToDeleteOrRestrictWebsiteDataFor):
Flip sign to be less than, so we hold off on deleting data if the
oldest interaction was less than the minimum time between removal.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
LayoutTests:
30 day website data deletion is covered by operating-dates-all-website-data-removed.html.
These new test cases check that deletion occurs when including statistics with no
user interaction (most recent user interaction time of -1) and with
the check for ITP testing turned off to test using the hour long wait
to delete expired data.
It also deletes
http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed.html
because 7 day website data deletion is covered by the new test cases.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-database.html: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction-expected.txt: Added.
- http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-statistics-with-no-user-interaction.html: Added.
- LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-database-expected.txt: Removed.
- LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-expected.txt: Removed.
- LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed.html: Removed.
- LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-removed-database.html: Removed.
- 3:32 PM Changeset in webkit [262264] by
-
- 1 copy in tags/Safari-609.3.2
Tag Safari-609.3.2.
- 3:24 PM Changeset in webkit [262263] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: statistics don't update when filtering
https://bugs.webkit.org/show_bug.cgi?id=212394
Reviewed by Timothy Hatcher.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._updateFilteredEntries):
(WI.NetworkTableContentView.prototype._updateStatistics):
(WI.NetworkTableContentView.prototype._updateLoadTimeStatistic):
If the URL/type filter is active, hide the load time statistic, similar to how it's hidden
when viewing imported HARs. Additionally, update the other statistics to show info based on
the entries that are still shown.
- 3:03 PM Changeset in webkit [262262] by
-
- 10 edits4 adds in trunk
[css-grid] Fix referencing grid line names with auto repeat()
https://bugs.webkit.org/show_bug.cgi?id=209572
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Import WPT tests.
- web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008-expected.xht: Added.
- web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008.html: Added.
- web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009-expected.xht: Added.
- web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html: Added.
- web-platform-tests/css/css-grid/placement/w3c-import.log:
Source/WebCore:
This patch fixes multiple problems when referencing named grid lines with the presence of
the auto repeat() syntax:
- If the 1st track was defined with auto repeat(), then the code used to assume that the referenced line appeared after the repeated tracks. But it may actually precede them.
- If the referenced line appeared both inside and outside the auto repeat(), then it could resolve to the outside raw index, without expanding the auto repeat().
- The logic for placing a placement property set to both an integer and an identifier was wrong with auto repeat(). This patch fixes it by using the same proper logic that was already implemented in OrderedNamedLinesCollectorInGridLayout::collectLineNamesForIndex
- The indices of both implicit grid lines defined with grid-template-areas and explicit ones defined with grid-template-rows/columns used to be stored together in NamedGridColumnLines and NamedGridRowLines. This was problematic because the former indices already refer to the final explicit grid so they don't have to be increased when expanding an auto repeat(), but the latter ones should. Therefore, this patch stores the indices in separate fields and uses the correct logic for each one. This also fixes 'grid-template-areas: inherit'.
This patch is a port of these Chromium patches:
- https://crrev.com/744426
- https://crrev.com/745925
- https://crrev.com/747631
- https://crrev.com/747669
- https://crrev.com/771984
Tests: imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-002.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-004.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-005.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-008.html
imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-using-named-grid-lines-009.html
- rendering/style/GridPositionsResolver.cpp:
(WebCore::NamedLineCollection::NamedLineCollection):
(WebCore::NamedLineCollection::hasExplicitNamedLines const):
(WebCore::NamedLineCollection::hasNamedLines const):
(WebCore::NamedLineCollection::contains const):
(WebCore::NamedLineCollection::firstExplicitPosition const):
(WebCore::NamedLineCollection::firstPosition const):
- rendering/style/GridPositionsResolver.h:
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::implicitNamedGridColumnLines const):
(WebCore::RenderStyle::implicitNamedGridRowLines const):
(WebCore::RenderStyle::setImplicitNamedGridColumnLines):
(WebCore::RenderStyle::setImplicitNamedGridRowLines):
- rendering/style/StyleGridData.cpp:
(WebCore::StyleGridData::StyleGridData):
- rendering/style/StyleGridData.h:
(WebCore::StyleGridData::operator== const):
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyInheritGridTemplateAreas):
(WebCore::Style::BuilderCustom::applyValueGridTemplateAreas):
- 2:29 PM Changeset in webkit [262261] by
-
- 1 copy in tags/Safari-610.1.15
Tag Safari-610.1.15.
- 2:07 PM Changeset in webkit [262260] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] media/video-play-audio-require-user-gesture.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212488
Unreviewed test gardening
- platform/mac/TestExpectations:
- 2:06 PM Changeset in webkit [262259] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/editing/Editor.h
Unreviewed formatting fix. rdar://problem/63461919
- 2:01 PM Changeset in webkit [262258] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Apply patch. rdar://problem/63461919
- 1:48 PM Changeset in webkit [262257] by
-
- 2 edits in trunk/Source/WebCore
[ macOS Debug ] accessibility/roles-exposed.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212478
<rdar://problem/63411656>
Reviewed by Chris Fleizach.
Logging the backingObject in every call to accessibilityAttributeValue
seems to be causing this long test to take too long and timeout in slow
systems.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
- 1:40 PM Changeset in webkit [262256] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r261940): [ iPadOS wk2 ] fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-after-changing-initial-scale.html is failing consistently.
https://bugs.webkit.org/show_bug.cgi?id=212483
Unreviewed test gardening.
- platform/ipad/TestExpectations:
- 1:10 PM Changeset in webkit [262255] by
-
- 3 edits in trunk/Source/WebKit
Do not send a second sync request for positition information to the web process if we have not recieved information since the previous sync request.
https://bugs.webkit.org/show_bug.cgi?id=212289
<rdar://problem/58494578>
Reviewed by Tim Horton.
If we have sent a sync requests to the web process for position information, and timed out, and have not
received a message with position information in the interim, do not send another sync request. The web
process is likely still hung, and there is no reason to hang the UIProcess again if we suspect that it
is unlikely that we will receive a reply.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView ensurePositionInformationIsUpToDate:]):
(-[WKContentView _positionInformationDidChange:]):
- 1:05 PM Changeset in webkit [262254] by
-
- 256 edits1 move94 adds in trunk/LayoutTests
Resync dom web-platform tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=212443
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Resync dom web-platform tests from upstream 6a76a185f913e3c027e3.
- resources/resource-files.json:
- web-platform-tests/dom/*: Updated.
- web-platform-tests/resources/idlharness.js: Updated.
- web-platform-tests/resources/testharness.js: Updated.
LayoutTests:
- platform/mac-wk2/imported/w3c/web-platform-tests/dom/nodes/Node-cloneNode-expected.txt:
- 12:16 PM Changeset in webkit [262253] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Follow-up build fix: [Cocoa] Pass all defines from Platform.h to various scripts, not just the ones from .xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212451
Fixes the following build error:
PhaseScriptExecution Migrate\ Headers BUILD_DIR/WebKitLegacy.build/Debug/WebKitLegacy.build/Script-1C6CB0510AA63EB000D23BFD.sh
cd SOURCE_DIR/Source/WebKitLegacy
/bin/sh -c BUILD_DIR/WebKitLegacy.build/Debug/WebKitLegacy.build/Script-1C6CB0510AA63EB000D23BFD.sh
clang: warning: no such sysroot directory: 'macosx.internal' [-Wmissing-sysroot]
In file included from <built-in>:1:
In file included from BUILD_DIR/Debug/usr/local/include/wtf/Platform.h:44:
BUILD_DIR/Debug/usr/local/include/wtf/PlatformOS.h:36:10: fatal error: 'Availability.h' file not found
#include <Availability.h>
~
1 error generated.
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/WebKitAvailability.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/WebKitAvailability.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/WebScriptObject.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/WebScriptObject.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npapi.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npapi.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npfunctions.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npfunctions.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/npruntime.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/npruntime.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
sed -E -e 's/<WebCore\<WebKitLegacy\' -e "s/( *)WEBCORE_EXPORT /\1/" BUILD_DIR/Debug/DerivedSources/WebKitLegacy/WebCorePrivateHeaders/nptypes.h > BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders/nptypes.h; touch BUILD_DIR/Debug/WebKitLegacy.framework/Versions/A/PrivateHeaders
clang: warning: no such sysroot directory: 'macosx.internal' [-Wmissing-sysroot]
In file included from <built-in>:1:
In file included from BUILD_DIR/Debug/usr/local/include/wtf/Platform.h:44:
BUILD_DIR/Debug/usr/local/include/wtf/PlatformOS.h:36:10: fatal error: 'Availability.h' file not found
#include <Availability.h>
~
1 error generated.
make[4]: Nothing to be done for `reexport_headers'.
Command /bin/sh emitted errors but did not return a nonzero exit code to indicate failure
- migrate-headers.sh: Pass SDKROOT environment variable on the
command-line
makeinvocations after r262245 added code to
MigrateHeaders.make to set -isysroot based on the SDKROOT value.
- 11:38 AM Changeset in webkit [262252] by
-
- 36 edits1 add in trunk
for-of should check the iterable is a JSArray for FastArray in DFG iterator_open
https://bugs.webkit.org/show_bug.cgi?id=212383
Reviewed by Saam Barati.
JSTests:
- stress/check-sub-class.js:
- stress/for-of-iterator-open-fast-array-should-check-js-type.js: Added.
(foo):
Source/JavaScriptCore:
This patch fixes an issue where we didn't check that the iterable operand to
iterator_open was a JSArray when lowering the FastArray only variant of the bytecode to the DFG.
This meant we would OSR exit at the iterator_next's lowering then assertion failure in the
checkpoint OSR exit helper. To make this work, this patch extends (and renames from CheckSubClass)
CheckJSCast to use the same JSType information that we use for the jsCast function. In order to
get the JSType range from a ClassInfo* the macro that autogenerates MethodTable now also fills
a Optional<JSTypeRange> into the ClassInfo as well.
Lastly, speculationFromClassInfo was misused by AI. This patch
renames it to speculationFromClassInfoInheritance to better
reflect how AI was using it. The only other user of
speculationFromClassInfo was speculationFromStructure. Any case
where speculationFromClassInfoInteritance would differ from what a
Structure would tell you has been hoisted to
speculationFromStructure.
- assembler/testmasm.cpp:
(JSC::testBranchIfType):
(JSC::testBranchIfNotType):
- bytecode/SpeculatedType.cpp:
(JSC::speculationFromClassInfoInheritance):
(JSC::speculationFromStructure):
(JSC::speculationFromClassInfo): Deleted.
- bytecode/SpeculatedType.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::filterClassInfo):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::attemptToMakeCallDOM):
(JSC::DFG::FixupPhase::fixupCheckJSCast):
(JSC::DFG::FixupPhase::fixupCheckSubClass): Deleted.
- dfg/DFGNode.h:
(JSC::DFG::Node::hasClassInfo const):
- dfg/DFGNodeType.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkArray):
(JSC::DFG::SpeculativeJIT::compileCheckJSCast):
(JSC::DFG::SpeculativeJIT::compileCheckSubClass): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):
(JSC::FTL::DFG::LowerDFGToB3::isCellWithType):
(JSC::FTL::DFG::LowerDFGToB3::isTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass): Deleted.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfType):
(JSC::AssemblyHelpers::branchIfNotType):
- runtime/ClassInfo.h:
- runtime/JSCast.h:
(JSC::JSTypeRange::contains const):
(JSC::JSCastingHelpers::inheritsJSTypeImpl):
- runtime/JSFunction.cpp:
(JSC::JSFunction::assertTypeInfoFlagInvariants):
- tools/JSDollarVM.cpp:
(JSC::functionCreateDOMJITCheckJSCastObject):
(JSC::JSDollarVM::finishCreation):
(JSC::functionCreateDOMJITCheckSubClassObject): Deleted.
Source/WebCore:
Update various InheritsTraits specializations to contain a typeRange member.
Also, change the inherits function to use inheritsJSTypeImpl like the JSC
variants.
- bindings/js/JSDocumentCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSDocument>::inherits):
- bindings/js/JSElementCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSElement>::inherits):
- bindings/js/JSEventCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSEvent>::inherits):
- bindings/js/JSNodeCustom.h:
(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSNode>::inherits):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
Source/WTF:
Optional should be able to copy/move constructor itself as long as <T> is
trivially copyable. This lets us copy Optionals into const globals without
global constructors.
- wtf/Optional.h:
(WTF::Optional::Optional):
(WTF::Optional::NOEXCEPT_):
- 11:35 AM Changeset in webkit [262251] by
-
- 8 edits in branches/safari-609-branch/Source
Versioning.
- 11:09 AM Changeset in webkit [262250] by
-
- 2 edits in trunk/LayoutTests
Make fast/loader/create-frame-in-DOMContentLoaded.html less flaky
https://bugs.webkit.org/show_bug.cgi?id=212454
<rdar://problem/61833551>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-28
Reviewed by Chris Dumez.
We have records of this test failing extremely rarely going back at least a few months.
I think it may have become flaky related to r253279 because eventLoop().performMicrotaskCheckpoint() is now called more often
and the test runner's logic to gather the text nodes for test output is tied up with the load and DOMContentLoaded event handlers
if you don't use waitUntilDone/notifyDone. In any case, this test was added in r90038 to verify incorrect behavior that we've been
meaning to fix in the last 9 years, and with waitUntilDone/notifyDone it does that, but without being a burden on our bot watchers
who do such good work and help find real problems.
- fast/loader/create-frame-in-DOMContentLoaded.html:
- 11:06 AM Changeset in webkit [262249] by
-
- 10 edits in trunk
ReadableByteStream should be enabled/disabled in service workers as done in pages
https://bugs.webkit.org/show_bug.cgi?id=212466
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/streams/readable-byte-streams/brand-checks.serviceworker.https-expected.txt:
- web-platform-tests/streams/readable-byte-streams/detached-buffers.serviceworker.https-expected.txt:
- web-platform-tests/streams/readable-byte-streams/general.serviceworker.https-expected.txt:
- web-platform-tests/streams/readable-byte-streams/properties.serviceworker.https-expected.txt:
Source/WebKit:
Introduce a WebPreference for readable byte stream.
Use it for enabling it in web processes running service workers as per the given store.
- Shared/WebPreferences.yaml:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
LayoutTests:
Skipping timing out tests.
- 11:02 AM Changeset in webkit [262248] by
-
- 2 edits in trunk/LayoutTests
fast/dom/vertical-scrollbar-in-rtl.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=212474
<rdar://problem/63692473>
Reviewed by Geoffrey Garen.
Unreviewed, use assertClose() instead of assertEqual() due to floating point
precision.
- fast/dom/vertical-scrollbar-in-rtl.html:
- 10:18 AM Changeset in webkit [262247] by
-
- 2 edits in branches/safari-610.1.15-branch/Tools
Cherry-pick r262143. rdar://problem/63517635
webkitpy: simctl list may have stderr logging
https://bugs.webkit.org/show_bug.cgi?id=212376
<rdar://problem/63517635>
Unreviewed infrastructure fix.
- Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDeviceManager.populate_available_devices): Only parse stdout, log error when json decoding fails. (SimulatedDevice.is_usable): Only parse stdout. (SimulatedDevice.launch_app): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:16 AM Changeset in webkit [262246] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r262143. rdar://problem/63517635
webkitpy: simctl list may have stderr logging
https://bugs.webkit.org/show_bug.cgi?id=212376
<rdar://problem/63517635>
Unreviewed infrastructure fix.
- Scripts/webkitpy/xcode/simulated_device.py: (SimulatedDeviceManager.populate_available_devices): Only parse stdout, log error when json decoding fails. (SimulatedDevice.is_usable): Only parse stdout. (SimulatedDevice.launch_app): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:56 AM Changeset in webkit [262245] by
-
- 6 edits in trunk/Source
[Cocoa] Pass all defines from Platform.h to various scripts, not just the ones from .xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212451
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- DerivedSources.make: Run the preprocessor on Platform.h and parse the output into
FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.
Source/WebCore:
- DerivedSources.make: Run the preprocessor on Platform.h and parse the output into
FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.
Source/WebKitLegacy/mac:
- MigrateHeaders.make: Run the preprocessor on Platform.h and parse the output into
FEATURE_AND_PLATFORM_DEFINES. Use that and FEATURE_AND_PLATFORM_DEFINE_DEPENDENCIES
whenever we need a list of defines. Also took out some Windows-specific stuff since
this is now only used on Mac platforms.
- 9:44 AM Changeset in webkit [262244] by
-
- 2 edits in trunk/Tools
makeValueRefForValue should be robust against the type encoding of a NSNumber backed by a boolean
https://bugs.webkit.org/show_bug.cgi?id=212456
Reviewed by Anders Carlsson.
- WebKitTestRunner/InjectedBundle/mac/AccessibilityCommonMac.mm:
(WTR::makeValueRefForValue):
Apply the fix from r260515 to this second copy of the code too.
- 8:36 AM WebKitGTK/2.28.x edited by
- (diff)
- 8:31 AM Changeset in webkit [262243] by
-
- 2 edits in trunk/Source/JavaScriptCore
Web Inspector: generate_cpp_protocol_types_header.py:294: SyntaxWarning: "is" with a literal. Did you mean "=="?
https://bugs.webkit.org/show_bug.cgi?id=212468
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Timothy Hatcher.
Use "==" instead of "is" to compare against 0.
- inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
- 8:28 AM Changeset in webkit [262242] by
-
- 2 edits in trunk/Source/WebKit
[WPE][GTK] GVariant decoding must copy the serialized data
https://bugs.webkit.org/show_bug.cgi?id=212441
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-28
Reviewed by Carlos Garcia Campos.
I tracked this down to ArgumentCodersGLib.cpp. The problem is that we construct a GVariant
using g_variant_new_from_data(), which does not copy or take ownership of the data, so here
we accidentally create the GVariant using data we don't own. (Here, the data is owned by the
Decoder itself in its internal m_buffer.) Anyway, this is fixable by manually copying and
freeing it with the GDestroyNotify parameter, but it's easier to switch to
g_variant_new_from_bytes() because GBytes takes ownership when constructed.
- Shared/glib/ArgumentCodersGLib.cpp:
(IPC::decode):
- 8:19 AM Changeset in webkit [262241] by
-
- 4 edits in trunk/Source/WebCore
ScrollingTreeMac::eventListenerRegionTypesForPoint() needs to convert the point to local coordinates
https://bugs.webkit.org/show_bug.cgi?id=212440
Reviewed by Tim Horton.
ScrollingTreeMac::eventListenerRegionTypesForPoint() needs to convert the point to local coordinates
before consulting the event region.
Also made EventListenerRegionType loggabale.
Will be tested by wheel event tests once we switch to using these kinds of regions.
- page/scrolling/mac/ScrollingTreeMac.mm:
(collectDescendantLayersAtPoint):
(ScrollingTreeMac::scrollingNodeForPoint):
(ScrollingTreeMac::eventListenerRegionTypesForPoint const):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- 7:47 AM Changeset in webkit [262240] by
-
- 2 edits in trunk/Source/WebKit
RemoteAudio::audioSamplesAvailable should check for m_buffer to be null
https://bugs.webkit.org/show_bug.cgi?id=212462
<rdar://problem/63627642>
Reviewed by Eric Carlson.
- WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::audioSamplesAvailable):
m_buffer is initialized by a StorageChanged IPC message which might not always be successful, for instance if the shared memory mapping fails.
Return early if m_buffer is not yet initialized properly.
- 7:28 AM Changeset in webkit [262239] by
-
- 2 edits in trunk/Source/JavaScriptCore
Gardening: Add an assertNoException() to placate the exception checker and green the bots.
https://bugs.webkit.org/show_bug.cgi?id=212248
Not reviewed.
This solution was pointed out by Caio Lima in https://bugs.webkit.org/show_bug.cgi?id=212248#c10.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- 1:40 AM Changeset in webkit [262238] by
-
- 10 edits in trunk/Source
RealtimeIncomingVideoSourceCocoa::OnFrame should use video frame timestamp
https://bugs.webkit.org/show_bug.cgi?id=212402
Reviewed by Eric Carlson.
Source/WebCore:
Use timestamp provided from the libwebrtc backend instread of marking the frames as display immediately.
Update LocalSampleBufferDisplayLayer to mark the frame as display immediately if their presentation time is in the past since we guarantee the frames are in order.
Remove the offset correction in MediaPlayerPrivateMediaStreamAVFObjC.
This does not work well when the display layer is in GPU process and it is simpler to use the system clock which is what AVSampleBufferDisplayLayser is using if controlTimebase is not set.
Manually tested.
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferDisplayLayerStatusDidChange):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::applicationDidBecomeActive):
- platform/mediastream/VideoTrackPrivateMediaStream.h:
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
Source/WebKit:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
(WebKit::RemoteSampleBufferDisplayLayer::enqueueSample):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
- 1:13 AM Changeset in webkit [262237] by
-
- 6 edits4 adds in trunk
Incorrect clipping of absolute and fixed elements inside stacking-context composited overflow:hidden
https://bugs.webkit.org/show_bug.cgi?id=212419
<rdar://problem/55856170>
Reviewed by Simon Fraser.
Source/WebCore:
We incorrectly clip descendants that are not in containing block chain.
There is already code to do the correct clipping, it just needs be enabled in this case.
Tests: compositing/overflow/non-contained-descendant-clipping-absolute.html
compositing/overflow/non-contained-descendant-clipping-fixed.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::RenderLayer):
- rendering/RenderLayer.h:
Add hasCompositedNonContainedDescendants bit.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::CompositingState::stateForPaintOrderChildren const):
(WebCore::RenderLayerCompositor::CompositingState::updateWithDescendantStateAndLayer):
Check if the parent layer is for a containing block of this layer.
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Update the bit.
(WebCore::RenderLayerCompositor::traverseUnchangedSubtree):
(WebCore::RenderLayerCompositor::clipsCompositingDescendants):
Pick the clipping path where descendants are not clipped.
LayoutTests:
- compositing/overflow/non-contained-descendant-clipping-absolute-expected.html: Added.
- compositing/overflow/non-contained-descendant-clipping-absolute.html: Added.
- compositing/overflow/non-contained-descendant-clipping-fixed-expected.html: Added.
- compositing/overflow/non-contained-descendant-clipping-fixed.html: Added.
May 27, 2020:
- 10:53 PM Changeset in webkit [262236] by
-
- 2 edits in trunk/Source/WebKit
Add output file specifications to "Copy Custom WebContent Resources to Framework Private Headers" build phase in WebKit/WebContent
https://bugs.webkit.org/show_bug.cgi?id=212452
<rdar://problem/63700546>
Reviewed by Timothy Hatcher.
The "Copy Custom WebContent Resources to Framework Private Headers"
build phase in the WebContent target of the WebKit project doesn't
advertise the files that it produces. This has consequences on later
build phases that consume those files. In particular, XCBuild is left
not knowing where those files are coming from, and it fails saying
that those files don't exist. Fix this by adding the output files to
the "output files" section of the custom build phase.
No new tests -- this is just a build fix.
- WebKit.xcodeproj/project.pbxproj:
- 10:32 PM Changeset in webkit [262235] by
-
- 20 edits2 adds in trunk
Implement AccessKeyLabel attribute.
https://bugs.webkit.org/show_bug.cgi?id=72715
LayoutTests/imported/w3c:
Reviewed by Darin Adler.
- web-platform-tests/html/dom/idlharness.https-expected.txt:
Source/WebCore:
Spec: https://html.spec.whatwg.org/multipage/interaction.html#dom-accesskeylabel
As per spec, return the modifiers+accessKey when requesting the element accessKeyLabel.
Equivalent to the existing Firefox implementation and (pending) Chrome implementation.
Alt is the hardcoded modifier for any non-cocoa platform, so hardcode it also for the label.
Use modifier text for Mac/iOS as it can change (e.g. for voice-over).
Reviewed by Darin Adler.
Test: fast/forms/access-key-label.html
- html/HTMLElement.cpp:
(WebCore::HTMLElement::accessKeyLabel const):
- html/HTMLElement.h:
- html/HTMLElement.idl:
Source/WTF:
Reviewed by Darin Adler.
Added character names for upArrow/option, as they're needed for accessKeyLabel.
- wtf/unicode/CharacterNames.h:
LayoutTests:
Reviewed by Darin Adler.
- fast/forms/access-key-label-expected.txt: Added.
- fast/forms/access-key-label.html: Added.
Added a test to cover accessKeyLabel scenarios.
- js/dom/dom-static-property-for-in-iteration-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ios-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/js/dom/dom-static-property-for-in-iteration-expected.txt:
- platform/win/js/dom/dom-static-property-for-in-iteration-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:
HTML elements now have an accessKeyLabel property, fix expected results.
- 10:23 PM Changeset in webkit [262234] by
-
- 2 edits1 delete in trunk/LayoutTests
[GTK] Skip inspector/page/archive.html
Unreviewed test gardening.
It is a feature not supported by the GTK port.
- platform/gtk/TestExpectations:
- platform/gtk/inspector/page/archive-expected.txt: Removed.
- 7:43 PM Changeset in webkit [262233] by
-
- 41 edits2 adds in trunk
hasOwnProperty inside structure property for-in loop should use an opcode like has_structure_property but for hasOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=212248
Reviewed by Keith Miller.
JSTests:
- microbenchmarks/has-own-property-for-in-loop.js: Added.
- stress/has-own-property-structure-for-in-loop-correctness.js: Added.
Source/JavaScriptCore:
This patch applies the same principles from r262083 but to hasOwnProperty.
In this patch, we have a fast path for this syntactic pattern when
iterating structure properties:
for (let <p> in <o>)
if (<o>.hasOwnProperty(<p>))
We look for both <p> and <o> as resolve nodes, and we look for them being the
same values both in the header and inside the body.
Using a simple static analysis, when we detect this pattern, we compare the
result of<o>.hasOwnPropertyto the original hasOwnProperty function. If
it's the same, we execute the fast path new bytecode has_own_structure_property,
which on the fast path is two loads, a compare and branch, and a materialization of
the boolean constant true.
On the slow path, has_own_structure_property just executes the runtime code
for hasOwnProperty.
In my testing, this seems like it might be 3-5% faster on Speedometer 2's
react subtests. I was getting some noise when running the tests locally,
so I can't say for certain it's a definite speedup. But the data implies
it has a good chance at being a speedup.
- builtins/BuiltinNames.h:
- bytecode/BytecodeList.rb:
- bytecode/BytecodeUseDef.cpp:
(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):
- bytecode/LinkTimeConstant.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitWideJumpIfNotFunctionHasOwnProperty):
(JSC::BytecodeGenerator::recordHasOwnStructurePropertyInForInLoop):
(JSC::BytecodeGenerator::emitHasOwnStructureProperty):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::StructureForInContext::finalize):
(JSC::BytecodeGenerator::findStructureForInContext):
- bytecompiler/BytecodeGenerator.h:
(JSC::StructureForInContext::StructureForInContext):
(JSC::StructureForInContext::base const):
(JSC::StructureForInContext::addHasOwnPropertyJump):
- bytecompiler/Label.h:
(JSC::GenericBoundLabel::GenericBoundLabel):
- bytecompiler/NodesCodegen.cpp:
(JSC::HasOwnPropertyFunctionCallDotNode::emitBytecode):
(JSC::ForInNode::emitBytecode):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
(JSC::DFG::SpeculativeJIT::compileHasOwnStructurePropertyImpl):
(JSC::DFG::SpeculativeJIT::compileHasOwnStructureProperty):
(JSC::DFG::SpeculativeJIT::compileInStructureProperty):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileHasOwnStructureProperty):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_has_structure_propertyImpl):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emit_op_has_own_structure_property):
(JSC::JIT::emit_op_in_structure_property):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_has_structure_propertyImpl):
(JSC::JIT::emit_op_has_structure_property):
(JSC::JIT::emit_op_has_own_structure_property):
(JSC::JIT::emit_op_in_structure_property):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter64.asm:
- parser/ASTBuilder.h:
(JSC::ASTBuilder::makeFunctionCallNode):
- parser/NodeConstructors.h:
(JSC::HasOwnPropertyFunctionCallDotNode::HasOwnPropertyFunctionCallDotNode):
- parser/Nodes.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- runtime/ObjectPrototype.cpp:
(JSC::objectPrototypeHasOwnProperty):
(JSC::objectProtoFuncHasOwnProperty):
- runtime/ObjectPrototype.h:
- 7:30 PM Changeset in webkit [262232] by
-
- 21 edits1 add in trunk/Source/WebCore
Extended Color: Refactor FloatComponents and ColorComponents into a single templatized ColorComponents class
https://bugs.webkit.org/show_bug.cgi?id=212446
Reviewed by Simon Fraser.
Merge FloatComponents and ColorComponents into ColorComponents<T> and move them to their own
header. This avoids duplicate code and paves the way for further generalization down the line.
Also moves some utility functions to ColorUtilities.h from SimpleColor.h as they make more sense
in the former.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
Add ColorComponents.h
- platform/graphics/ColorComponents.h: Copied from Source/WebCore/platform/graphics/ColorUtilities.h.
Moved ColorComponents to its own header and templatized it to allow it to serve the
needs of both the old ColorComponents and old FloatComponents classes.
- platform/graphics/ColorUtilities.cpp:
- platform/graphics/ColorUtilities.h:
Removed ColorComponents/FloatComponents and update existing usages to their new names.
Also moved roundAndClampColorChannel, fastMultiplyBy255, fastDivideBy255
and colorFloatToSimpleColorByte here from SimpleColor to make it clear where
general helper functions can go.
- platform/graphics/Color.h:
- platform/graphics/Color.cpp:
(WebCore::Color::colorSpaceAndComponents const):
(WebCore::Color::toSRGBAComponentsLossy const):
- platform/graphics/ExtendedColor.h:
(WebCore::ExtendedColor::channels const):
Update for rename of FloatComponents to ColorComponents<float>.
- platform/graphics/SimpleColor.cpp:
(WebCore::makeSimpleColorFromHSLA):
Use structured bindings and simplify code.
- platform/graphics/SimpleColor.h:
(WebCore::roundAndClampColorChannel): Deleted.
(WebCore::fastMultiplyBy255): Deleted.
(WebCore::fastDivideBy255): Deleted.
(WebCore::colorFloatToSimpleColorByte): Deleted.
As noted above, moved roundAndClampColorChannel, fastMultiplyBy255, fastDivideBy255
and colorFloatToSimpleColorByte to ColorUtilities.h
- platform/graphics/filters/FEColorMatrix.cpp:
Update for rename of FloatComponents to ColorComponents<float>.
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::byteOffsetOfPixel):
Moved byteOffsetOfPixel here from ColorUtilities. This file is the only user
and it wasn't general in a way that was clear for other users.
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::drawLighting):
Update for rename of FloatComponents to ColorComponents<float>.
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::makeColorComponentsfromPixelValue):
Added. Used to be ColorComponents::fromRGBA(), but was only used here
and didn't seem generally useful.
(WebCore::makePixelValueFromColorComponents):
Added. Used to be ColorComponents::toRGBA(), but was only used here
and didn't seem generally useful.
(WebCore::minOrMax):
(WebCore::columnExtremum):
(WebCore::kernelExtremum):
(WebCore::FEMorphology::platformApplyGeneric):
Update for rename of FloatComponents to ColorComponents<float> and ColorComponents
to ColorComponents<uint8_t>.
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::noise2D const):
(WebCore::toIntBasedColorComponents):
(WebCore::FETurbulence::calculateTurbulenceValueForPoint const):
(WebCore::FETurbulence::fillRegion const):
- platform/graphics/filters/FETurbulence.h:
Update for rename of FloatComponents to ColorComponents<float> and ColorComponents
to ColorComponents<uint8_t>. Also renames toColorComponents to toIntBasedColorComponents
as the former was no longer specific enough. Updated to use std::clamp.
- platform/graphics/filters/FilterOperation.cpp:
(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):
- platform/graphics/filters/FilterOperation.h:
(WebCore::FilterOperation::transformColor const):
(WebCore::FilterOperation::inverseTransformColor const):
- platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
Update for rename of FloatComponents to ColorComponents<float>.
- 7:27 PM Changeset in webkit [262231] by
-
- 4 edits1 add in trunk
[ macOS iOS ] REGRESSION(r261600?): imported/w3c/web-platform-tests/html/dom/reflection-embedded.html & imported/w3c/web-platform-tests/html/dom/reflection-forms.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=212430
Reviewed by Saam Barati.
JSTests:
- stress/is-constructor-should-be-correct-in-ai.js: Added.
(shouldBe):
(test):
Source/JavaScriptCore:
r261600 added IsConstructor rule to DFG AI. That rule is saying that if the object is not JSFunction and not ProxyObject,
then it must not be a constructor. But this is wrong since any objects can implement getConstructData and DOM constructors
are actually implementing it while it is not JSFunction and it is not ProxyObject. This patch removes that rule.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- tools/JSDollarVM.cpp:
- 6:34 PM Changeset in webkit [262230] by
-
- 2 edits in trunk/Source/WebInspectorUI
[WebInspectorUI] Inconsistent check for WI.ImageUtilities.supportsCanvasPathDebugging
https://bugs.webkit.org/show_bug.cgi?id=212450
Reviewed by Devin Rousso.
In RecordContentView.js _updateCanvasPath() should not be called if CanvasPathDebugging
is not supported otherwise _updateCanvasPath() tries to access _showPathButtonNavigationItem,
which is created only if CanvasPathDebugging is supported, but fails and raises an exception.
- UserInterface/Views/RecordingContentView.js:
Check if WI.ImageUtilities.supportsCanvasPathDebugging() before
calling _updateCanvasPath()
- 6:01 PM Changeset in webkit [262229] by
-
- 2 edits in trunk/Tools
revert logging for detecting failures in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=212447
Reviewed by Alexey Proskuryakov.
- Scripts/run-jsc-stress-tests:
- 5:48 PM Changeset in webkit [262228] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r260023): ITP sparse plist decoding.
<https://bugs.webkit.org/show_bug.cgi?id=212424>
<rdar://problem/63683055>
Reviewed by John Wilander.
Reverted changeset:
"KeyedDecoder functions in ResourceLoadStatistics.{cpp,h} should return bool and use WARN_UNUSED_RETURN"
https://bugs.webkit.org/show_bug.cgi?id=210414
https://trac.webkit.org/changeset/260023
The revert did not compile due to changes in the KeyedDecoder
class that require checking the return value of its methods, so
additional changes were made below.
- loader/ResourceLoadStatistics.cpp:
(WebCore::decodeHashCountedSet):
(WebCore::decodeHashSet):
- Use IGNORE_WARNINGS_BEGIN("unused-result")/IGNORE_WARNINGS_END to suppress warning about ignoring the return value from KeyeDecoder::decodeObjects() since decoding these objects is optional.
(WebCore::decodeOptionSet):
- Check return value of KeyedDecoder::decodeUInt64() before
setting
optionSetparameter.
- 5:46 PM Changeset in webkit [262227] by
-
- 5 edits in trunk
Limit memory used by wasm/references/multitable.js on memory limited devices
https://bugs.webkit.org/show_bug.cgi?id=212437
Reviewed by Keith Miller.
JSTests:
wasm/references/multitable.js was using around ~700MB of memory.
This looks like it's causing jetsams on some of our iOS test runners.
This patch makes this test use less memory on memory limited devices.
- wasm/assert.js:
- wasm/references/multitable.js:
(string_appeared_here.tableInsanity):
Source/JavaScriptCore:
- tools/JSDollarVM.cpp:
(JSC::functionIsMemoryLimited):
(JSC::JSDollarVM::finishCreation):
- 5:36 PM Changeset in webkit [262226] by
-
- 5 edits in trunk
REGRESSION (PSON): Resizing WKWebView during cross-site navigation results in the page laying out at the wrong size
https://bugs.webkit.org/show_bug.cgi?id=212434
<rdar://problem/51621621>
Reviewed by Chris Dumez.
Source/WebKit:
New API test: ProcessSwap.ResizeWebViewDuringCrossSiteProvisionalNavigation.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::swapToProvisionalPage):
Set m_hasRunningProcess before calling setDrawingArea, instead of immediately after,
so that setDrawingArea can call methods that check m_hasRunningProcess.
(WebKit::WebPageProxy::setDrawingArea):
When swapping DrawingAreas, push the current view size down. DrawingArea
is initially created with a size, but the size can change while the DrawingArea
is still provisional.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::viewSize):
Simplify this implementation now that we don't ever need to support WKContentView
outside of WKWebView (since 2014 or so).
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Add a test ensuring that we correctly update the view size if it changes
during the provisional phase of the navigation.
- 4:48 PM Changeset in webkit [262225] by
-
- 2 edits in trunk/Tools
Unreviewed. A couple transformations missing from r262214.
Was making fast/events/touch/tap-highlight-color.html to fail.
- WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::addTouchPoint):
- 4:41 PM Changeset in webkit [262224] by
-
- 12 edits2 moves in trunk
Empty alt attribute does not ignore the image for accessibility clients in Safari.
https://bugs.webkit.org/show_bug.cgi?id=212432
Source/WebCore:
Reviewed by Chris Fleizach.
Test: accessibility/img-alt-attribute-unassigned-empty.html
- AccessibilityRenderObject::computeAccessibilityIsIgnored was handling
the case of images too late, after checking for ariaRoleAttribute(). So
if an image had a role attribute, it was exposed regardless whether its
alt attribute was an empty string. This change moves the handling of
images above the check for ariaroleAttribute and hence honors the empty
alt attribute rule.
- Also images that have an aria-label attribute are now exposed.
- Added logging of AccessibilityObjectInclusion.
- Changed signature of log(RefPtr<AXCoreObject>) as pointed out by Darin Adler in a separate review.
- accessibility/AXLogger.cpp:
(WebCore::AXLogger::log):
(WebCore::operator<<):
- accessibility/AXLogger.h:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::determineAccessibilityRole):
(WebCore::AccessibilityNodeObject::isImage const): Moved to base class.
- accessibility/AccessibilityNodeObject.h:
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::isImage const):
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::objectInclusionFromAltText):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedObject.h:
LayoutTests:
<rdar://problem/60597768>
Reviewed by Chris Fleizach.
- accessibility/img-alt-attribute-unassigned-empty-expected.txt: Renamed from LayoutTests/accessibility/img-alt-attribute-unassigned-value-expected.txt.
- accessibility/img-alt-attribute-unassigned-empty.html: Renamed from LayoutTests/accessibility/img-alt-attribute-unassigned-value.html.
Added the test case for alt="" in addition to unassigned alt.
- accessibility/self-referencing-aria-labelledby.html:
Removed unnecessary alt="" since now that causes the image element not
to be exposed.
- 4:14 PM Changeset in webkit [262223] by
-
- 3 edits in trunk/Source/WTF
Improve comments about OS/PLATFORM(IOS) and friends
https://bugs.webkit.org/show_bug.cgi?id=212438
Reviewed by Tim Horton.
- wtf/PlatformLegacy.h:
- wtf/PlatformOS.h:
- 4:02 PM Changeset in webkit [262222] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION: Build errors during JavaScriptCore "Generate Derived Sources" about missing Availability.h header and invalid SDKROOT [-Wmissing-sysroot]
<https://webkit.org/b/212436>
Unreviewed build fix.
- Scripts/generate-derived-sources.sh: Pass SDKROOT to
make
command from the current environment.
- 3:49 PM Changeset in webkit [262221] by
-
- 4 edits2 adds in trunk
pageshow only fires the first time the back button is pressed
https://bugs.webkit.org/show_bug.cgi?id=156356
<rdar://problem/29256489>
Reviewed by Alexey Proskuryakov.
Source/WebCore:
When FrameLoader::commitProvisionalLoad() would restore a page from the back/forward
cache, it would only call FrameLoader::checkCompleted() in the main frame and fail
to do so in subframes. Calling checkCompleted() is important, not only because it
sets m_isComplete to true but also because it calls checkCallImplicitClose(), which
resets m_didCallImplicitClose to true and m_wasUnloadEventEmitted to false.
Because checkCompleted() was not called, FrameLoader::dispatchUnloadEvents() would then
fail to fire the pagehide event because them_didCallImplicitClose && !m_wasUnloadEventEmitted
was not met. Also, even though checkCompleted() was called for the main frame, if there
are subframes, it would just return early because allChildrenAreComplete() returned false.
Later on, when trying to fire the pageshow event, it would fail to because we have logic
in DOMWindow::dispatchEvent() to avoid firing a pageshow event if we did not previously
send a pagehide event.
To address the issue, I now call checkCompleted() in FrameLoader::open() for subframes, as
this gets called for every frame during restoration from the back/forward cache. For the main
frame, we keep calling checkCompleted(), after we've called sendRemainingDelegateMessages().
Test: fast/history/multiple-back-forward-navigations.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::open):
LayoutTests:
- fast/history/multiple-back-forward-navigations-expected.txt: Added.
- fast/history/multiple-back-forward-navigations.html: Added.
Add layout test coverage.
- fast/history/resources/page-cache-helper.html:
Update page cache helper to navigate back even if the page is coming out of
the back/forward cache, by listening to the pageshow event.
- 3:21 PM Changeset in webkit [262220] by
-
- 4 edits in trunk
Update MobileMiniBrowser project settings to current Xcode
https://bugs.webkit.org/show_bug.cgi?id=212428
Patch by Kenneth Russell <kbr@chromium.org> on 2020-05-27
Reviewed by Dean Jackson.
.:
Accept Xcode's suggested upgrade to use the new build system.
- WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings:
Tools:
Apply suggestions from Dean to automatically switch between the
internal and public SDKs.
- MobileMiniBrowser/Configurations/Base.xcconfig:
- 2:53 PM Changeset in webkit [262219] by
-
- 2 edits in trunk/Source/JavaScriptCore
Add missing #include for when LLINT_TRACING is enabled.
https://bugs.webkit.org/show_bug.cgi?id=212433
Reviewed by Tadeu Zagallo.
- llint/LLIntExceptions.cpp:
- 2:40 PM Changeset in webkit [262218] by
-
- 7 edits2 adds in trunk/Source/WebCore
Extended Color: Move ColorMatrix to its own files
https://bugs.webkit.org/show_bug.cgi?id=212431
Reviewed by Dean Jackson.
Move ColorMatrix to its own files from ColorUtilities.h/cpp
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ColorMatrix.cpp: Copied from Source/WebCore/platform/graphics/ColorUtilities.cpp.
- platform/graphics/ColorMatrix.h: Copied from Source/WebCore/platform/graphics/ColorUtilities.h.
- platform/graphics/ColorUtilities.cpp:
- platform/graphics/ColorUtilities.h:
- platform/graphics/filters/FilterOperation.cpp:
- 2:27 PM Changeset in webkit [262217] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r260318): [WPE][GTK] Uninitialized memory read in MemoryPressureMonitor
https://bugs.webkit.org/show_bug.cgi?id=212412
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-27
Reviewed by Adrian Perez de Castro.
I think this is a false-positive, but let's suppress the warning by zero-initializing this
buffer.
- UIProcess/linux/MemoryPressureMonitor.cpp:
(WebKit::systemMemoryUsedAsPercentage):
- 2:04 PM Changeset in webkit [262216] by
-
- 4 edits in trunk/Source
Add OptionSetTraits<> and use with WebCore::DragDestinationAction
<https://webkit.org/b/212397>
Reviewed by Alex Christensen.
Source/WebCore:
- page/DragActions.h:
(WTF::OptionSetTraits<WebCore::DragDestinationAction>):
- Add for use with OptionSet<>.
Source/WTF:
Add OptionSetTraits<> (similar to EnumTraits<>) to define all
valid values for a given enum type. This allows us to use that
bitmask with OptionSet<>::fromRaw() to clear undefined bits, and
to validate enum values used with the OptionSet<> constructors.
Note that the extra validation possible with OptionSetTraits<>
is enabled based on the existence of that type using the new
WTF::is_type_complete_v<> type trait. Other OptionSet<> enums
fall back to the original validation checks.
Finally, typename <T> is changed to <E> for OptionSet<> to
emphasize that it's an enum typename.
- wtf/OptionSet.h:
(WTF::is_type_complete_v): Add.
(WTF::OptionSetTraits): Add.
(WTF::OptionSetValues): Add.
(WTF::OptionSetValueChecker): Add.
(WTF::isValidOptionSetEnum): Add.
(WTF::maskRawValue): Add.
(WTF::OptionSet::Iterator::operator* const):
(WTF::OptionSet::fromRaw):
(WTF::OptionSet::OptionSet):
(WTF::OptionSet::contains const):
- 1:54 PM Changeset in webkit [262215] by
-
- 2 edits in trunk/Source/WebKit
App-bound sessions should be for iOS only
https://bugs.webkit.org/show_bug.cgi?id=212426
<rdar://problem/63678147>
Reviewed by Darin Adler.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::SessionWrapper::initialize):
(WebKit::NetworkSessionCocoa::sessionWrapperForTask):
- 1:45 PM Changeset in webkit [262214] by
-
- 6 edits2 adds in trunk
[WPE] Avoid possible WTR event timing going back in time and fix conversion from s to ms
https://bugs.webkit.org/show_bug.cgi?id=212338
Reviewed by Michael Catanzaro.
Source/WebKit:
When converting the input timestamps to WallTime, we must somehow
adjust them to give meaningful timestamps (due to Dom::Event
conversion from timestamp wall time to the time origin from document
loading).
As WPE timestamps are just intended to be compared among themselves,
we use the first processed event as the origin, comparing the
following events to it to get an actual time.
Test: fast/events/monotonic-event-time.html
- Shared/libwpe/WebEventFactory.cpp:
(WebKit::wallTimeForEventTime):
Tools:
Make sure we cast the double m_time timestamp from seconds to uint32_t
milliseconds expected by WPE input events.
- WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:
(WTR::secToMsTimestamp):
(WTR::EventSenderProxy::EventSenderProxy): Use monotonic time instead
of zero as the time origin. This is used only in a relative manner,
and we need monotonic behavior so conversion to DOM event timestamps
makes sense.
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::prepareAndDispatchTouchEvent):
(WTR::EventSenderProxy::releaseTouchPoint):
LayoutTests:
Added new test to check if input events timestamps are actually
monotonically increasing since the start.
- fast/events/monotonic-event-time-expected.txt: Added.
- fast/events/monotonic-event-time.html: Added.
- platform/ios/TestExpectations: Skipped the test as it relies on
mouseDown
- 1:42 PM Changeset in webkit [262213] by
-
- 4 edits in trunk/LayoutTests
[ Mac wk2 ] http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209622
<rdar://problem/60938860>
Reviewed by Darin Adler.
The test is flaky by nature as the event source load and navigation load are happening asynchronously.
In most cases but not always, the loading of the CachedResource will fail synchronously and will trigger the console message.
Do not output the console log message since the goal of the test is to not crash.
- http/tests/eventsource/eventsource-reconnect-during-navigate-crash-expected.txt:
- http/tests/eventsource/eventsource-reconnect-during-navigate-crash.html:
- platform/mac-wk2/TestExpectations:
- 1:38 PM Changeset in webkit [262212] by
-
- 13 edits in trunk
Make sure bundle identifier testing override is set in the network process
https://bugs.webkit.org/show_bug.cgi?id=212288
<rdar://problem/63539061>
Reviewed by Chris Dumez.
Set the bundle identifier in the network process if a layout test
updates it. This value usually only gets updated when a new network
process is initialized, which does not happen for every test. So it
should be set/cleared as needed.
Source/WebKit:
No new tests, will fix http/tests/in-app-browser-privacy/ tests.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updateBundleIdentifierInNetworkProcess):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreUpdateBundleIdentifierInNetworkProcess):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::updateBundleIdentifierInNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updateBundleIdentifierInNetworkProcess):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::createWebViewWithOptions):
(WTR::TestController::updateBundleIdentifierInNetworkProcess):
- WebKitTestRunner/TestController.h:
- 1:15 PM Changeset in webkit [262211] by
-
- 2 edits in trunk/Source/WTF
-Wdeprecated-copy caused by Bitmap copy assignment operator
https://bugs.webkit.org/show_bug.cgi?id=212421
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-27
Reviewed by Mark Lam.
This copy assignment operator is not needed, and causes warnings because we do not have a
corresponding copy constructor. We could add a copy constructor, but it's easiest to just
remove the copy assignment operator.
- wtf/Bitmap.h:
- 1:08 PM Changeset in webkit [262210] by
-
- 2 edits in trunk/JSTests
Unreviwed, catch expected exception in new test.
- stress/for-in-in-structure-property-constant-virtual-register.js:
- 12:50 PM Changeset in webkit [262209] by
-
- 20 edits8 adds in trunk
[Clipboard API] Support reading "image/png" on ClipboardItem
https://bugs.webkit.org/show_bug.cgi?id=212339
<rdar://problem/63588957>
Reviewed by Tim Horton.
Source/WebCore:
Adds support for reading "image/png" data via ClipboardItem.getType(). See below for more details.
Tests: ClipboardTests.ConvertTIFFToPNGWhenPasting
editing/async-clipboard/clipboard-read-write-images.html
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::getType):
(WebCore::Clipboard::updateSessionValidity):
Factor out logic for invalidating the
Clipboard's activePasteboardobject into a helper method. This is
invoked after reading data from the clipboard, and verifies that the changeCount of the pasteboard is still the
same as it was upon initially reading the contents of the clipboard. If the clipboard contents changed, we
invalidate the session, andClipboardis subsequently denied pasteboard access (until the next time the user
explicitly grants programmatic pasteboard access).
Note that this step is here for correctness rather than security. While it is true that a compromised web
process could fake the changeCount at any given moment, other fairly recent changes around WebPasteboardProxy in
the UI process makes it impossible to take advantage of this fact to arbitrarily read content from the system
pasteboard. Instead of simply reading the empty string, this invalidation ensures that we actually reject the
promise returned by the async clipboard API.
- Modules/async-clipboard/Clipboard.h:
- Modules/async-clipboard/ClipboardImageReader.cpp: Added.
Add a PasteboardFileReader subclass that is responsible for sanitizing image data from the pasteboard into
data that may be exposed to the page via clipboard API. On both macOS and iOS, this ensures that potentially
sensitive EXIF data is stripped via conversion to the platform image type and back. On macOS, this additionally
allows us to handle transcoding TIFF data on the pasteboard to PNG (this is covered by the new API test).
(WebCore::ClipboardImageReader::readBuffer):
Add a stub implementation for non-Cocoa platforms for now, which don't implement this part of the API.
(WebCore::ClipboardImageReader::shouldReadBuffer const):
Add a new hook to skip over certain types when reading pasteboard data into Files. In particular,
ClipboardImageReaderskips over any MIME type that does not match the MIME type specified (for now, this is
limited to "image/png", but may be extended to include more image types in the future after we implement more
transcoding logic).
- Modules/async-clipboard/ClipboardImageReader.h: Added.
(WebCore::ClipboardImageReader::ClipboardImageReader):
(WebCore::ClipboardImageReader::takeResult):
- Modules/async-clipboard/ios/ClipboardImageReaderIOS.mm: Added.
(WebCore::ClipboardImageReader::readBuffer):
Add iOS-specific
(PNG) => PNGtranscoding logic.
- Modules/async-clipboard/mac/ClipboardImageReaderMac.mm: Added.
(WebCore::ClipboardImageReader::readBuffer):
Add macOS-specific
(PNG, TIFF) => PNGtranscoding logic.
- Sources.txt:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/Pasteboard.h:
(WebCore::PasteboardFileReader::shouldReadBuffer const):
- platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::read):
Add support for targeting a given pasteboard item index when reading files on Cocoa platforms.
- platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::read):
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::safeTypeForDOMToReadAndWriteForPlatformType):
(WebCore::webSafeTypes):
(WebCore::PlatformPasteboard::informationForItemAtIndex):
Expose "image/png" as one of the readable pasteboard types on iOS when using the async clipboard API. For some
reason, this adjustment was made on macOS, but wasn't done on iOS, which led to a missing "image/png" type when
asking forClipboardItem.types.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
Add support for writing "image/png "data to the system pasteboard (note that this data has been sanitized
already, as it has been processed throughClipboardItemTypeLoader::sanitizeDataIfNeeded()). We simply needed
to useforEachPlatformStringOrBufferinstead of justforEachPlatformStringwhen writing the custom
pasteboard data.
(WebCore::createItemProviderRegistrationList):
- platform/libwpe/PasteboardLibWPE.cpp:
(WebCore::Pasteboard::read):
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::read):
Source/WebCore/PAL:
Soft link
UIImagePNGRepresentation.
- pal/ios/UIKitSoftLink.h:
- pal/ios/UIKitSoftLink.mm:
Tools:
Add a new API test to verify that TIFF images on the system pasteboard on macOS are automatically converted to
PNG data, and is accessible throughClipboardItemthrough the "image/png" type.
- TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:
LayoutTests:
Add a new layout test to verify that
Clipboard.writeandClipboard.readcan be used to copy and then read
back PNG image data.
- editing/async-clipboard/clipboard-read-write-images-expected.txt: Added.
- editing/async-clipboard/clipboard-read-write-images.html: Added.
- editing/async-clipboard/resources/async-clipboard-helpers.js:
(sampleBase64PNGImageData1):
(sampleBase64PNGImageData2):
(imageBlob):
(sampleBase64PNGImageData): Deleted.
- platform/win/TestExpectations:
- 12:48 PM Changeset in webkit [262208] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r254541): Valid mime types can only be added to the HashSet of the supported types for encoding
https://bugs.webkit.org/show_bug.cgi?id=212427
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-05-27
Reviewed by Darin Adler.
Add back a check for the mime type validity which was removed in r254541.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):
- 12:35 PM Changeset in webkit [262207] by
-
- 7 edits in trunk
Unreviewed, reverting r260840.
This patch is no longer needed after preferences root cause
has been fixed.
Reverted changeset:
"[Cocoa] Global preferences are not accessible in the
WebContent process when CFPrefs direct mode is enabled"
https://bugs.webkit.org/show_bug.cgi?id=211075
https://trac.webkit.org/changeset/260840
- 12:24 PM Changeset in webkit [262206] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/page/PointerCaptureController.cpp
Apply patch. rdar://problem/63626656
- 12:10 PM Changeset in webkit [262205] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix -Wcomment build warning after r261986
https://bugs.webkit.org/show_bug.cgi?id=211950
<rdar://problem/63482718>
If we replace the /* with /* then GCC won't complain that it looks like a comment.
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-05-27
- UIProcess/API/glib/WebKitSettings.cpp:
(webkit_settings_class_init):
- 11:18 AM Changeset in webkit [262204] by
-
- 2 edits in trunk/Source/WebKit
Adjust HTTP3 label to the more correct HTTP/3
https://bugs.webkit.org/show_bug.cgi?id=212416
<rdar://problem/63514072>
Reviewed by Darin Adler.
No new tests. No change in behavior.
- Shared/WebPreferences.yaml: Correct label.
- 11:09 AM Changeset in webkit [262203] by
-
- 64 edits96 copies2 adds4 deletes in trunk
Web Inspector: replace
featureGuardandavailabilitywith a combinedconditionthat accepts any macro
https://bugs.webkit.org/show_bug.cgi?id=210014
Reviewed by Brian Burg.
Previously, the generated InspectorBackendCommands.js would include code for things that the
backend doesn't actually support. By using actual macros and preprocessing that file, we can
ensure that the frontend doesn't incorrectly think that something is supported by the page
being inspected:
- the
Canvascommands and events related to shader programs/pipelines should only exist when the corresponding context type exists, namelyENABLE(WEBGL)andENABLE(WEBGPU). - iOS doesn't support showing rulers, so create a variant of
DOM.setInspectModeEnabledthat only exists forPLATFORM(IOS_FAMILY)that doesn't have theshowRulersoptional parameter, as well as removingPage.setShowRulersentirely. - setting the forced appearance should only be possible if dark mode is supported.
- web archives only exist if CF is used.
Source/JavaScriptCore:
- inspector/protocol/CPUProfiler.json:
- inspector/protocol/Canvas.json:
- inspector/protocol/DOM.json:
- inspector/protocol/IndexedDB.json:
- inspector/protocol/Inspector.json:
- inspector/protocol/Memory.json:
- inspector/protocol/Page.json:
- inspector/protocol/ServiceWorker.json:
- Scripts/generate-derived-sources.sh:
Set
CCif it hasn't already been set.
- DerivedSources.make:
- DerivedSources-input.xcfilelist:
Preprocess
InspectorBackendCommands.js.into get an accurateInspectorBackendCommands.js
that follows the logic/description above.
- CMakeLists.txt:
Create a new
InspectorBackendCommandstarget now thatInspectorBackendCommands.jsis
generated seprately from the rest of the protocol files.
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
- inspector/scripts/generate-inspector-protocol-bindings.py:
(generate_from_specification):
(generate_from_specification.load_specification):
- inspector/scripts/codegen/generator.py:
(Generator.init):
(Generator.model):
(Generator.set_generator_setting):
(Generator.type_declarations_for_domain):
(Generator.commands_for_domain):
(Generator.events_for_domain):
(Generator.wrap_with_guard_for_condition): Added.
(Generator.platform): Deleted.
(Generator.can_generate_platform): Deleted.
(Generator.wrap_with_guard_for_domain): Deleted.
(Generator.wrap_with_guard): Deleted.
- inspector/scripts/codegen/models.py:
(Frameworks):
(Protocol.parse_domain):
(Protocol.parse_type_declaration):
(Protocol.parse_command):
(Protocol.parse_event):
(Domain.init):
(TypeDeclaration.init):
(Command.init):
(Event.init):
(Platform): Deleted.
(Platform.init): Deleted.
(Platform.fromString): Deleted.
(Platforms): Deleted.
(Platforms.metaclass): Deleted.
(Platforms.metaclass.iter): Deleted.
- inspector/scripts/codegen/generator_templates.py:
Remove
platformas it is handled bycondition.
- inspector/scripts/codegen/preprocess.pl: Copied from Source/WebCore/bindings/scripts/preprocessor.pm.
- inspector/scripts/codegen/generate_js_backend_commands.py:
(JSBackendCommandsGenerator.output_filename):
(JSBackendCommandsGenerator.generate_domain):
Output toInspectorBackendCommands.js.inthat includes#iffor preprocessing.
- inspector/scripts/codegen/cpp_generator_templates.py:
- inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:
(CppAlternateBackendDispatcherHeaderGenerator.generate_output):
(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppAlternateBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
- inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator._generate_alternate_handler_forward_declarations_for_domains.Alternate):
(CppBackendDispatcherHeaderGenerator._generate_handler_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_async_handler_declaration_for_command):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_command):
- inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:
(CppBackendDispatcherImplementationGenerator.generate_output):
(CppBackendDispatcherImplementationGenerator._generate_handler_class_destructor_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_small_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_large_dispatcher_switch_implementation_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_async_dispatcher_class_for_domain):
(CppBackendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_command):
- inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:
(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):
(CppFrontendDispatcherHeaderGenerator._generate_dispatcher_declaration_for_event):
- inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:
(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementations_for_domain):
(CppFrontendDispatcherImplementationGenerator._generate_dispatcher_implementation_for_event):
- inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
(CppProtocolTypesHeaderGenerator._generate_versions):
- inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain.generate_conversion_method_body):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
- inspector/scripts/codegen/objc_generator_templates.py:
- inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:
(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declarations_for_domain):
(ObjCBackendDispatcherHeaderGenerator._generate_objc_handler_declaration_for_command):
- inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_domain):
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command):
- inspector/scripts/codegen/generate_objc_header.py:
(add_newline):
(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_forward_declarations):
(ObjCHeaderGenerator._generate_enums):
(ObjCHeaderGenerator._generate_types):
(ObjCHeaderGenerator._generate_type_interface):
(ObjCHeaderGenerator._generate_command_protocols):
(ObjCHeaderGenerator._generate_single_command_protocol):
(ObjCHeaderGenerator._generate_event_interfaces):
(ObjCHeaderGenerator._generate_single_event_interface):
(ObjCHeaderGenerator._generate_enum_for_platforms): Deleted.
- inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:
(add_newline):
(ObjCProtocolTypeConversionsHeaderGenerator.generate_output):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_functions):
(ObjCProtocolTypeConversionsHeaderGenerator._generate_enum_conversion_for_platforms): Deleted.
- inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:
(add_newline):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_interface):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_declaration):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_category_implementation):
(ObjCProtocolTypeConversionsImplementationGenerator._generate_type_factory_method_implementation):
- inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:
(add_newline):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementations):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementation):
Wrap each domain, type, command, and event with the associatedcondition(if it exists).
- inspector/scripts/tests/command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/command-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/commands-with-async-attribute.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-async-attribute.json.
- inspector/scripts/tests/commands-with-optional-call-return-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/commands-with-optional-call-return-parameters.json.
- inspector/scripts/tests/definitions-with-mac-platform.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/definitions-with-mac-platform.json.
- inspector/scripts/tests/domain-debuggableTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-debuggableTypes.json.
- inspector/scripts/tests/domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/domain-targetTypes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domain-targetTypes.json.
- inspector/scripts/tests/domains-with-varying-command-sizes.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/domains-with-varying-command-sizes.json.
- inspector/scripts/tests/enum-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/enum-values.json.
- inspector/scripts/tests/event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/event-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/events-with-optional-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/events-with-optional-parameters.json.
- inspector/scripts/tests/expected/command-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/command-targetType-matching-domain-debuggableType.json-result.
- inspector/scripts/tests/expected/commands-with-async-attribute.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result.
- inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result.
- inspector/scripts/tests/expected/definitions-with-mac-platform.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result.
- inspector/scripts/tests/expected/domain-debuggableTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-debuggableTypes.json-result.
- inspector/scripts/tests/expected/domain-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetType-matching-domain-debuggableType.json-result.
- inspector/scripts/tests/expected/domain-targetTypes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domain-targetTypes.json-result.
- inspector/scripts/tests/expected/domains-with-varying-command-sizes.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result.
- inspector/scripts/tests/expected/enum-values.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/enum-values.json-result.
- inspector/scripts/tests/expected/event-targetType-matching-domain-debuggableType.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/event-targetType-matching-domain-debuggableType.json-result.
- inspector/scripts/tests/expected/events-with-optional-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result.
- inspector/scripts/tests/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetType-matching-domain-debuggableType.json-error.
- inspector/scripts/tests/expected/fail-on-command-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-type.json-error.
- inspector/scripts/tests/expected/fail-on-command-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-command-targetTypes-value.json-error.
- inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-type.json-error.
- inspector/scripts/tests/expected/fail-on-domain-debuggableTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-debuggableTypes-value.json-error.
- inspector/scripts/tests/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetType-matching-domain-debuggableType.json-error.
- inspector/scripts/tests/expected/fail-on-domain-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-type.json-error.
- inspector/scripts/tests/expected/fail-on-domain-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-domain-targetTypes-value.json-error.
- inspector/scripts/tests/expected/fail-on-duplicate-command-call-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-call-parameter-names.json-error.
- inspector/scripts/tests/expected/fail-on-duplicate-command-return-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-command-return-parameter-names.json-error.
- inspector/scripts/tests/expected/fail-on-duplicate-event-parameter-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-event-parameter-names.json-error.
- inspector/scripts/tests/expected/fail-on-duplicate-type-declarations.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-declarations.json-error.
- inspector/scripts/tests/expected/fail-on-duplicate-type-member-names.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-duplicate-type-member-names.json-error.
- inspector/scripts/tests/expected/fail-on-enum-with-no-values.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-enum-with-no-values.json-error.
- inspector/scripts/tests/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetType-matching-domain-debuggableType.json-error.
- inspector/scripts/tests/expected/fail-on-event-targetTypes-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-type.json-error.
- inspector/scripts/tests/expected/fail-on-event-targetTypes-value.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-event-targetTypes-value.json-error.
- inspector/scripts/tests/expected/fail-on-number-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-parameter-flag.json-error.
- inspector/scripts/tests/expected/fail-on-number-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-number-typed-optional-type-member.json-error.
- inspector/scripts/tests/expected/fail-on-string-typed-optional-parameter-flag.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-parameter-flag.json-error.
- inspector/scripts/tests/expected/fail-on-string-typed-optional-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-string-typed-optional-type-member.json-error.
- inspector/scripts/tests/expected/fail-on-type-declaration-using-type-reference.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-declaration-using-type-reference.json-error.
- inspector/scripts/tests/expected/fail-on-type-reference-as-primitive-type.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-reference-as-primitive-type.json-error.
- inspector/scripts/tests/expected/fail-on-type-with-lowercase-name.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-type-with-lowercase-name.json-error.
- inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-declaration.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-declaration.json-error.
- inspector/scripts/tests/expected/fail-on-unknown-type-reference-in-type-member.json-error: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/fail-on-unknown-type-reference-in-type-member.json-error.
- inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result.
- inspector/scripts/tests/expected/same-type-id-different-domain.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/same-type-id-different-domain.json-result.
- inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result.
- inspector/scripts/tests/expected/should-strip-comments.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/should-strip-comments.json-result.
- inspector/scripts/tests/expected/type-declaration-aliased-primitive-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-aliased-primitive-type.json-result.
- inspector/scripts/tests/expected/type-declaration-array-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-array-type.json-result.
- inspector/scripts/tests/expected/type-declaration-enum-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-enum-type.json-result.
- inspector/scripts/tests/expected/type-declaration-object-type.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result.
- inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result.
- inspector/scripts/tests/expected/type-with-open-parameters.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result.
- inspector/scripts/tests/expected/version.json-result: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/expected/version.json-result.
- inspector/scripts/tests/fail-on-command-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/fail-on-command-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-type.json.
- inspector/scripts/tests/fail-on-command-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-command-targetTypes-value.json.
- inspector/scripts/tests/fail-on-domain-debuggableTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-type.json.
- inspector/scripts/tests/fail-on-domain-debuggableTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-debuggableTypes-value.json.
- inspector/scripts/tests/fail-on-domain-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/fail-on-domain-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-type.json.
- inspector/scripts/tests/fail-on-domain-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-targetTypes-value.json.
- inspector/scripts/tests/fail-on-duplicate-command-call-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-call-parameter-names.json.
- inspector/scripts/tests/fail-on-duplicate-command-return-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-command-return-parameter-names.json.
- inspector/scripts/tests/fail-on-duplicate-event-parameter-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-event-parameter-names.json.
- inspector/scripts/tests/fail-on-duplicate-type-declarations.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-declarations.json.
- inspector/scripts/tests/fail-on-duplicate-type-member-names.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-duplicate-type-member-names.json.
- inspector/scripts/tests/fail-on-enum-with-no-values.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-enum-with-no-values.json.
- inspector/scripts/tests/fail-on-event-targetType-matching-domain-debuggableType.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetType-matching-domain-debuggableType.json.
- inspector/scripts/tests/fail-on-event-targetTypes-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-type.json.
- inspector/scripts/tests/fail-on-event-targetTypes-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-event-targetTypes-value.json.
- inspector/scripts/tests/fail-on-number-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-parameter-flag.json.
- inspector/scripts/tests/fail-on-number-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-number-typed-optional-type-member.json.
- inspector/scripts/tests/fail-on-string-typed-optional-parameter-flag.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-parameter-flag.json.
- inspector/scripts/tests/fail-on-string-typed-optional-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-string-typed-optional-type-member.json.
- inspector/scripts/tests/fail-on-type-declaration-using-type-reference.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-declaration-using-type-reference.json.
- inspector/scripts/tests/fail-on-type-reference-as-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-reference-as-primitive-type.json.
- inspector/scripts/tests/fail-on-type-with-lowercase-name.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-type-with-lowercase-name.json.
- inspector/scripts/tests/fail-on-unknown-type-reference-in-type-declaration.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-declaration.json.
- inspector/scripts/tests/fail-on-unknown-type-reference-in-type-member.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-unknown-type-reference-in-type-member.json.
- inspector/scripts/tests/generate-domains-with-feature-guards.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/generate-domains-with-feature-guards.json.
- inspector/scripts/tests/same-type-id-different-domain.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/same-type-id-different-domain.json.
- inspector/scripts/tests/shadowed-optional-type-setters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/shadowed-optional-type-setters.json.
- inspector/scripts/tests/should-strip-comments.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/should-strip-comments.json.
- inspector/scripts/tests/type-declaration-aliased-primitive-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-aliased-primitive-type.json.
- inspector/scripts/tests/type-declaration-array-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-array-type.json.
- inspector/scripts/tests/type-declaration-enum-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-enum-type.json.
- inspector/scripts/tests/type-declaration-object-type.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-declaration-object-type.json.
- inspector/scripts/tests/type-requiring-runtime-casts.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-requiring-runtime-casts.json.
- inspector/scripts/tests/type-with-open-parameters.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/type-with-open-parameters.json.
- inspector/scripts/tests/version.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/version.json.
- inspector/scripts/tests/generic/definitions-with-mac-platform.json: Removed.
- inspector/scripts/tests/generic/expected/definitions-with-mac-platform.json-result: Removed.
- inspector/scripts/tests/generic/fail-on-command-with-invalid-platform.json: Removed.
- inspector/scripts/tests/generic/expected/fail-on-command-with-invalid-platform.json-error: Removed.
- inspector/scripts/tests/generic/fail-on-type-with-invalid-platform.json: Removed.
- inspector/scripts/tests/generic/expected/fail-on-type-with-invalid-platform.json-error: Removed.
- inspector/scripts/tests/ios/definitions-with-mac-platform.json: Removed.
- inspector/scripts/tests/ios/expected/definitions-with-mac-platform.json-result: Removed.
- inspector/scripts/tests/all/definitions-with-mac-platform.json: Removed.
- inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result: Removed.
Don't separate the inspector generator tests by platform.
Source/WebCore:
- inspector/InspectorInstrumentation.h:
- inspector/InspectorInstrumentation.cpp:
- inspector/agents/InspectorCanvasAgent.h:
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::InspectorCanvasAgent::enable):
(WebCore::InspectorCanvasAgent::startRecording):
(WebCore::InspectorCanvasAgent::reset):
(WebCore::InspectorCanvasAgent::unbindCanvas):
- inspector/InspectorShaderProgram.h:
- inspector/InspectorShaderProgram.cpp:
(WebCore::InspectorShaderProgram::requestShaderSource):
(WebCore::InspectorShaderProgram::updateShader):
- inspector/agents/InspectorDOMAgent.h:
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setInspectModeEnabled):
- inspector/agents/InspectorPageAgent.h:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::setForcedAppearance):
(WebCore::InspectorPageAgent::archive):
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
- inspector/InspectorFrontendHost.idl:
Drive-by: replace the
#ifwith the IDL[Conditional=].
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
Source/WebInspectorUI:
- CMakeLists.txt:
Add a dependency on the new
InspectorBackendCommandstarget.
- UserInterface/Base/Main.js:
(WI._updateDownloadTabBarButton):
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
- DerivedSources.make:
- PlatformMac.cmake:
Remove
platformas it is handled bycondition.
- UIProcess/Automation/Automation.json:
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
Tools:
- Configurations/FeatureDefines.xcconfig:
Add
ENABLE_WEB_ARCHIVEsince it's always enabled in wtf/PlatformEnableCocoa.h.
- Scripts/webkitpy/inspector/main.py:
(InspectorGeneratorTests.generate_from_json):
(InspectorGeneratorTests.run_tests):
(InspectorGeneratorTests.main):
- 11:04 AM Changeset in webkit [262202] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] http/tests/media/now-playing-info.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206699
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Remove flaky expectation since the test is consistently passing.
- 10:52 AM Changeset in webkit [262201] by
-
- 3 edits in trunk
[GTK] Manette_INCLUDE_DIR and Manette_LIBRARY are undefined.
https://bugs.webkit.org/show_bug.cgi?id=212236
Reviewed by Michael Catanzaro.
The cmake complains Manette_INCLUDE_DIR and Manette_LIBRARY are missing
in finding the manette package where GAMEPAD is enabled for the gtk port.
In r261965, we thought they would be automatically defined with IMPORTED_TARGET
but they seem not. We explicitly find the header and library paths, following FindOpenJPEG.cmake.
- Source/cmake/FindManette.cmake:
- Source/cmake/OptionsGTK.cmake: REQUIRED removed.
- 10:40 AM Changeset in webkit [262200] by
-
- 2 edits in trunk/Source/WebKit
[Quirk] Remove stackoverflow.com desktop content quirk.
https://bugs.webkit.org/show_bug.cgi?id=212414
Reviewed by Antti Koivisto.
Mobile content is fixed now.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):
- 10:22 AM Changeset in webkit [262199] by
-
- 2 edits in trunk/Source/WTF
Sort PlatformEnableCocoa.h and add definitions for the simple cases from FeatureDefines.xcconfig
https://bugs.webkit.org/show_bug.cgi?id=212389
Reviewed by Anders Carlsson.
Added more PlatformEnableCocoa.h; allowing us to later remove things from
FeatureDefines.xcconfig (patch forthcoming).
- wtf/PlatformEnableCocoa.h: Added definitions from FeatureDefines.xcconfig that
were simple, and that differ from the defaults in PlatformEnable.h. That includes
3D_TRANSFORMS, ACCESSIBILITY_ISOLATED_TREE (macOS >= 10.6), APPLICATION_MANIFEST,
ASYNC_SCROLLING, ATTACHMENT_ELEMENT, AVF_CAPTIONS, CACHE_PARTITIONING,
CSS_COMPOSITING, CSS_PAINTING_API, CSS_SCROLL_SNAP, CSS_SELECTORS_LEVEL4,
CSS_TRAILING_WORD, CSS_TYPED_OM, DATACUE_VALUE, DATALIST_ELEMENT, FILTERS_LEVEL_2,
GPU_PROCESS, INDEXED_DATABASE, INDEXED_DATABASE_IN_WORKERS, INSPECTOR_TELEMETRY,
INTERSECTION_OBSERVER, LAYOUT_FORMATTING_CONTEXT, LEGACY_CSS_VENDOR_PREFIXES,
LEGACY_CUSTOM_PROTOCOL_MANAGER, MEDIA_CONTROLS_SCRIPT, MEMORY_SAMPLER,
MOUSE_CURSOR_SCALE (macOS), NETWORK_CACHE_SPECULATIVE_REVALIDATION,
NETWORK_CACHE_STALE_WHILE_REVALIDATE, NOTIFICATIONS (macOS), PDFKIT_PLUGIN (macOS),
PERIODIC_MEMORY_MONITOR (macOS), PUBLIC_SUFFIX_LIST, RESIZE_OBSERVER,
RESOURCE_LOAD_STATISTICS, RUBBER_BANDING (macOS), SANDBOX_EXTENSIONS,
SERVER_PRECONNECT, SERVICE_CONTROLS (macOS), SHAREABLE_RESOURCE,
TELEPHONE_NUMBER_DETECTION, TEXT_AUTOSIZING, USERSELECT_ALL, USER_MESSAGE_HANDLERS,
VARIATION_FONTS, VIDEO, VIDEO_USES_ELEMENT_FULLSCREEN (macOS),
WEBDRIVER_KEYBOARD_INTERACTIONS, WEBDRIVER_MOUSE_INTERACTIONS (macOS),
WEBGL, WEBGL2, WEB_AUDIO, WEB_CRYPTO, and WIRELESS_PLAYBACK_TARGET. Sorted and
merged all the existing settings.
- 9:59 AM Changeset in webkit [262198] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac wk2 ] fast/mediastream/mock-media-source-webaudio.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=212413
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:28 AM Changeset in webkit [262197] by
-
- 3 edits1 add in trunk
in_structure_property needs to handle constants on the RHS of the "in"
https://bugs.webkit.org/show_bug.cgi?id=212399
Reviewed by Saam Barati.
JSTests:
- stress/for-in-in-structure-property-constant-virtual-register.js: Added.
Source/JavaScriptCore:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- 9:11 AM Changeset in webkit [262196] by
-
- 3 edits3 adds in trunk
Crash under WebNotificationManager::removeNotificationFromContextMap()
https://bugs.webkit.org/show_bug.cgi?id=212410
<rdar://63496726>
Reviewed by Alex Christensen.
Source/WebKit:
Protect the notification object in WebNotificationManager::didDestroyNotification() since
removing it from m_notificationIDMap will deref it and may end up destroying the notification
object otherwise.
Test: http/tests/notifications/crash-on-navigation.html
- WebProcess/Notifications/WebNotificationManager.cpp:
(WebKit::WebNotificationManager::didDestroyNotification):
LayoutTests:
Add layout test coverage.
- http/tests/notifications/crash-on-navigation-expected.txt: Added.
- http/tests/notifications/crash-on-navigation.html: Added.
- http/tests/notifications/resources/crash-on-navigation-iframe.html: Added.
- 8:45 AM Changeset in webkit [262195] by
-
- 2 edits in trunk/LayoutTests
[ Catalina wk2 ] webrtc/video-autoplay1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209018
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 6:25 AM Changeset in webkit [262194] by
-
- 2 edits in trunk/Source/WebCore
[WPE] REGRESSION(r253675) Crash when using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=212404
Reviewed by Carlos Garcia Campos.
Check whether the GraphicsContext has a PlatformGraphicsContext before trying to paint with
it. If there's no PlatformGraphicsContext, paint using the GraphicsContext methods instead.
- platform/graphics/cairo/ImageBufferCairoBackend.cpp:
(WebCore::ImageBufferCairoBackend::draw):
(WebCore::ImageBufferCairoBackend::drawPattern):
- 5:04 AM Changeset in webkit [262193] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. [GTK] Make webkitWebViewBaseSnapshot static
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSnapshot):
- 5:03 AM Changeset in webkit [262192] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix build warning with GTK4
- platform/gtk/GtkUtilities.cpp:
(WebCore::widgetRootCoords):
- 3:34 AM Changeset in webkit [262191] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Update openxr recipe
https://bugs.webkit.org/show_bug.cgi?id=212403
Patch by Philippe Normand <pnormand@igalia.com> on 2020-05-27
Reviewed by Sergio Villar Senin.
- buildstream/elements/sdk/openxr.bst: Explicitely list dependencies and bump to latest git master.
- 3:23 AM Changeset in webkit [262190] by
-
- 15 edits in trunk/Source
Use OptionSet<DragDestinationAction> for mask values
<https://webkit.org/b/212115>
<rdar://problem/63423380>
Reviewed by Alex Christensen.
Source/WebCore:
DragDestinationAction is used as both individual values and as a
bit mask. This changes bit mask uses to OptionSet<> and renames
variables to denote masks.
- page/DragActions.h:
(WebCore::DragDestinationAction):
- Convert to enum class and remove *None and *Any values.
(WebCore::DragDestinationActionAny):
- Add helper function to return OptionSet<DragDestinationAction> with all values set.
- page/DragController.cpp:
(WebCore::DragController::performDragOperation):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
- page/DragController.h:
(WebCore::DragController::dragDestinationAction const): Rename.
(WebCore::DragController::dragDestinationActionMask const):
- Rename dragDestinationAction() to dragDestinationActionMask().
- platform/DragData.cpp:
(WebCore::DragData::DragData):
- platform/DragData.h:
(WebCore::DragData::DragData):
- Use DragDestinationActionAny() in place of removed DragDestinationActionAny.
(WebCore::DragData::dragDestinationAction const): Rename.
(WebCore::DragData::dragDestinationActionMask const):
- Rename dragDestinationAction() to dragDestinationActionMask().
(WebCore::DragData::operator =):
- platform/cocoa/DragDataCocoa.mm:
(WebCore::DragData::DragData):
Source/WebKit:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):
- Switch from decodeEnum() and encodeEnum() to modern equivalents that check for valid enum values.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView dragDataForDropSession:dragDestinationAction:]):
- WebProcess/WebCoreSupport/WebDragClient.cpp:
(WebKit::WebDragClient::willPerformDragDestinationAction):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebDragClient.mm:
(WebDragClient::willPerformDragDestinationAction):
- WebView/WebView.mm:
(-[WebView dragDataForSession:client:global:operation:]):
(-[WebView actionMaskForDraggingInfo:]):
- 2:38 AM Changeset in webkit [262189] by
-
- 7 edits in trunk/Source/WebCore
Video freezes when attaching a local MediaStream to multiple elements
https://bugs.webkit.org/show_bug.cgi?id=194802
<rdar://problem/63613107>
Reviewed by Eric Carlson.
AVSampleBufferDisplayLayer sometimes does not update the rendering when the same local source is rendered several times.
To workaround this, we set kCMSampleAttachmentKey_DisplayImmediately to true, which fixes the issue as per my testing.
We clone the sample buffer before setting this property as it might not be thread safe to modify the attachments of a sample
that might also be encoded.
We implement this at LocalSampleBufferDisplayLayer level and enable this for local capture sources only.
Manually tested.
- platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
(WebCore::SampleBufferDisplayLayer::setRenderPolicy):
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.h:
(WebCore::LocalSampleBufferDisplayLayer::setRenderPolicy):
- platform/graphics/avfoundation/objc/LocalSampleBufferDisplayLayer.mm:
(WebCore::LocalSampleBufferDisplayLayer::enqueueSample):
(WebCore::LocalSampleBufferDisplayLayer::removeOldSamplesFromPendingQueue):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack):
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::setSampleBufferAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::setAsDisplayImmediately):
(WebCore::MediaSampleAVFObjC::cloneSampleBuffer):
- 2:36 AM Changeset in webkit [262188] by
-
- 11 edits3 adds in trunk
[WebXR] Implement XRSession::requestAnimationFrame()
https://bugs.webkit.org/show_bug.cgi?id=212099
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/webxr/xrSession_cancelAnimationFrame.https-expected.txt: Added.
- web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt: Added.
- web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt: Added.
Source/WebCore:
The WebXR spec defines a requestAnimationFrame() mechanism to provide information about XR tracking devices
using callbacks. It's pretty similar to the requestAnimationFrame() exposed by Window but only used
to update WebXR content. We're adding a basic implementation of this mechanism as long as cancellation
support. It requires some platform code that will be added in follow up patches. That platform code will
provide information like devices' refresh rates, pose (position & orientation), display resolution, etc...
This patch also replaces the type of the callback id from int to unsigned int as per the following change
in specs https://github.com/immersive-web/webxr/pull/1062.
Apart from that we're adding a missing adoptRef() in the testing code that was causing assertions in some
of the tests that are being unskipped as part of this change.
- Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::animationTimerFired): Added.
(WebCore::WebXRSession::scheduleAnimation): Ditto.
(WebCore::WebXRSession::requestAnimationFrame): Ditto.
(WebCore::WebXRSession::cancelAnimationFrame):
- Modules/webxr/WebXRSession.h:
- Modules/webxr/XRFrameRequestCallback.h:
(WebCore::XRFrameRequestCallback::callbackId):
(WebCore::XRFrameRequestCallback::setCallbackId):
(WebCore::XRFrameRequestCallback::cancel):
(WebCore::XRFrameRequestCallback::isCancelled const):
- testing/WebFakeXRDevice.cpp:
(WebCore::WebFakeXRDevice::simulateInputSourceConnection):
- testing/WebFakeXRDevice.h:
- testing/WebFakeXRInputController.h:
LayoutTests:
- platform/wpe/TestExpectations: Unskipped several tests that are now passing.
- 1:09 AM Changeset in webkit [262187] by
-
- 15 edits in trunk/Source
[GTK4] Make PointerLock work
https://bugs.webkit.org/show_bug.cgi?id=212314
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- platform/gtk/GtkUtilities.cpp:
(WebCore::widgetDevicePosition): Helper function to avoid #ifdefs due to GTK version differences.
- platform/gtk/GtkUtilities.h:
Source/WebKit:
Use XLib API for warp and grab, since they are no longer available in GTK4. The grab was not actuially needed
under Wayland. Also stop using GdkEvent to keep track of motion events and create the PointerLockManager to be
able to test pointer lock and movement delta.
- Shared/NativeWebMouseEvent.h:
- Shared/gtk/NativeWebMouseEventGtk.cpp:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Use FloatSize instead of FloatPoint for movement delta.
- Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebMouseEvent): Ditto.
- Shared/gtk/WebEventFactory.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(MotionEvent::MotionEvent): Helper struct to keep track of motion events without using GdkEvent.
(MotionEvent::delta): Return the movement delta for the given current event.
(webkitWebViewBaseHandleMouseEvent): Use MotionEvent instead of GdkEvent.
(webkitWebViewBaseMotionNotifyEvent): Pass the event coordinates to the pointer lock manager since that's the
only thing needed.
(webkitWebViewBaseRequestPointerLock): Use MotionEvent instead of GdkEvent.
(webkitWebViewBaseDidLosePointerLock): Remove GTK4 ifdefs.
(webkitWebViewBaseSynthesizeMouseEvent): Forward the event to the pointer lock manager if present. Also keep
track of the motion event and set the movement delta.
- UIProcess/gtk/PointerLockManager.cpp:
(WebKit::PointerLockManager::create): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManager::PointerLockManager): Ditto.
(WebKit::PointerLockManager::~PointerLockManager):
(WebKit::PointerLockManager::lock): Remove the grab.
(WebKit::PointerLockManager::unlock): Remove the ungrab.
(WebKit::PointerLockManager::handleMotion): Use NativeWebMouseEvent constructor taking all information as parameters.
- UIProcess/gtk/PointerLockManager.h:
- UIProcess/gtk/PointerLockManagerWayland.cpp:
(WebKit::PointerLockManagerWayland::PointerLockManagerWayland): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManagerWayland::lock): Hide the cursor.
(WebKit::PointerLockManagerWayland::unlock): Unhide the cursor.
- UIProcess/gtk/PointerLockManagerWayland.h:
- UIProcess/gtk/PointerLockManagerX11.cpp:
(WebKit::PointerLockManagerX11::PointerLockManagerX11): Receive event information as parameters instead of using GdkEvent.
(WebKit::PointerLockManagerX11::lock): Use XGrabPointer.
(WebKit::PointerLockManagerX11::unlock): Use XUngrabPointer.
(WebKit::PointerLockManagerX11::didReceiveMotionEvent): Use XWarpPointer.
- UIProcess/gtk/PointerLockManagerX11.h:
- 12:53 AM Changeset in webkit [262186] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, build warning fix after r261986
- UIProcess/API/glib/WebKitSettings.cpp: A colon is needed after the transfer annotation.
- 12:50 AM Changeset in webkit [262185] by
-
- 6 edits in trunk/Source
VideoFullscreenInterfaceAVKit is leaking when a video element enters and exits fullscreen/picture-in-picture
https://bugs.webkit.org/show_bug.cgi?id=212293
Source/WebCore:
Reviewed by Youenn Fablet.
WebAVPlayerViewControllerDelegate is created and retained by VideoFullscreenInterfaceAVKit,
but it has a RefPtr to VideoFullscreenInterfaceAVKit. This leads to a memory leak
when a video element enters and exit fullscreen or Picture-in-Picture. This patch
replaces the RefPtr with a WeakPtr to fix the leak.
With this patch, we config playerController in VideoFullscreenInterfaceAVKit::setupFullscreen()
and VideoFullscreenInterfaceAVKit::cleanupFullscreen(), so that we can avoid relying on
VideoFullscreenManagerProxy::setHasVideo() and VideoFullscreenManagerProxy::setVideoDimensions().
Those two functions are driven by IPC messages from the Web process, which may come before
VideoFullscreenInterfaceAVKit is constructed or after VideoFullscreenInterfaceAVKit
is destroyed.
Manually tested.
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerViewControllerDelegate setFullscreenInterface:]):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
Source/WebKit:
VideoFullscreenManagerProxy::ensureInterface() makes sure a fullscreen interface object exists (an object
will be created if it does not exit). That means an extra object will be created by an IPC message from
the Web process after the original video fullscreen interface object has been destroyed (thats happens
when a video element is returning to inline from fullscreen or picture-in-picture).
Reviewed by Youenn Fablet.
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::setHasVideo):
Don't call VideoFullscreenInterface[AVKit|Mac]::hasVideoChanged() before the instance of
VideoFullscreenInterface[AVKit|Mac] is ready.
(WebKit::VideoFullscreenManagerProxy::setVideoDimensions):
Don't call VideoFullscreenInterface[AVKit|Mac]::videoDimensionsChanged() after the instance of
VideoFullscreenInterface[AVKit|Mac] is destroyed.
- 12:49 AM Changeset in webkit [262184] by
-
- 23 edits1 copy1 delete in trunk
[GTK][WTR] EventSender: stop using GdkEvent API in preparation for GTK4
https://bugs.webkit.org/show_bug.cgi?id=212298
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Add helpers to GtkUtilities to avoid #ifdefs due to GTK version differences.
- platform/gtk/GtkUtilities.cpp:
(WebCore::widgetRootCoords):
(WebCore::widgetKeyvalToKeycode):
- platform/gtk/GtkUtilities.h:
Source/WebKit:
Add internal API to WebKitWebViewBase to synthesize events, because with GTK4 it's not possible to
create events. In the case of layout tests, the web view is always the target of the events, so we don't really
need to send the events to GTK to process them.
- Shared/NativeWebKeyboardEvent.h: Add new constructor that doesn't receive a GdkEvent.
- Shared/NativeWebMouseEvent.h: Ditto.
- Shared/NativeWebWheelEvent.h: Ditto.
- Shared/gtk/NativeWebKeyboardEventGtk.cpp:
(WebKit::NativeWebKeyboardEvent::NativeWebKeyboardEvent): Create without a GdkEvent.
- Shared/gtk/NativeWebMouseEventGtk.cpp:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent): Ditto.
- Shared/gtk/NativeWebWheelEventGtk.cpp:
(WebKit::NativeWebWheelEvent::NativeWebWheelEvent): Ditto.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::doneWithKeyEvent): Return early if event doesn't have a GdkEvent.
(WebKit::PageClientImpl::doneWithTouchEvent): Ditto.
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore): Ditto.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(toWebKitModifiers):
(webkitWebViewBaseSynthesizeMouseEvent):
(webkitWebViewBaseSynthesizeKeyEvent):
(toWebKitWheelEventPhase):
(webkitWebViewBaseSynthesizeWheelEvent):
- UIProcess/API/gtk/WebKitWebViewBaseInternal.h: Added.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::activePopupMenu const): Return the active popup menu proxy.
- UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::handleKeyBindingsForMap): Make it generic by receiving the map as parameter.
(WebKit::handleCustomKeyBindings): Call handleKeyBindingsForMap() passing the custom key bindings map.
(WebKit::KeyBindingTranslator::commandsForKeyval): Get commands for the predefined key bindings. This is used
only when synthesizing key events since we don't have a GdkEVent to forward to the GtkTextView.
- UIProcess/gtk/KeyBindingTranslator.h:
- UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::popupMenuWidget): Take a ref of the GdkWindow when creating the GdkEvent, since the event will unref it
on destroy.
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::handleKeyPress): Handle a key press event from its keyval and timestamp.
(WebKit::WebPopupMenuProxyGtk::activateSelectedItem): Activate the currently selected item.
(WebKit::WebPopupMenuProxyGtk::keyPressEventCallback): Call handleKeyPress().
(WebKit::WebPopupMenuProxyGtk::typeAheadFindIndex): Receive a keyval and timestamp instead of a GdkEvent.
(WebKit::WebPopupMenuProxyGtk::typeAheadFind): Ditto.
- UIProcess/gtk/WebPopupMenuProxyGtk.h:
Tools:
Use WebKitWebViewBase internal API to synthesize events instead of GdkEvents. The touch events support has been
removed because we are no longer testing touch events, since they need an actual touchscreen.
- WebKitTestRunner/EventSenderProxy.h:
- WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:
(WTR::getGDKKeySymForKeyRef):
(WTR::toWebKitGLibAPI):
(WTR::EventSenderProxy::keyDown):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo):
(WTR::EventSenderProxy::mouseScrollBy):
(WTR::EventSenderProxy::continuousMouseScrollBy):
(WTR::EventSenderProxy::mouseScrollByWithWheelAndMomentumPhases):
(WTR::EventSenderProxy::leapForward):
(WTR::EventSenderProxy::addTouchPoint):
(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::touchStart):
(WTR::EventSenderProxy::touchMove):
(WTR::EventSenderProxy::touchEnd):
(WTR::EventSenderProxy::touchCancel):
(WTR::EventSenderProxy::clearTouchPoints):
(WTR::EventSenderProxy::releaseTouchPoint):
(WTR::EventSenderProxy::cancelTouchPoint):
(WTR::EventSenderProxy::setTouchPointRadius):
(WTR::EventSenderProxy::setTouchModifier):
LayoutTests:
Update expectations for tests that are passing now.
- platform/gtk/TestExpectations:
- platform/gtk/editing/selection/5195166-1-expected.txt: Removed.
- 12:48 AM Changeset in webkit [262183] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r261277): [ Mac iOS ] webrtc/datachannel/gather-candidates-networkprocess-crash.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=212218
<rdar://problem/63496692>
Reviewed by Eric Carlson.
- webrtc/datachannel/gather-candidates-networkprocess-crash.html:
Create a new peer connection after the network process crash to validate it does not stay hanging.
- 12:40 AM Changeset in webkit [262182] by
-
- 8 edits in trunk/Source
Enable the use of XCBuild by default in Apple builds
https://bugs.webkit.org/show_bug.cgi?id=209890
<rdar://problem/44182078>
Unreviewed build fix. Check the value of XCODE_VERSION_ACTUAL rather
than XCODE_VERSION_MAJOR when determining whether to use the XCBuild
or non-XCBuild method of running header post-processing scripts.
Source/JavaScriptCore:
- JavaScriptCore.xcodeproj/project.pbxproj:
Source/ThirdParty/ANGLE:
- ANGLE.xcodeproj/project.pbxproj:
Source/WebKit:
No new tests -- this is a build fix.
- WebKit.xcodeproj/project.pbxproj:
Source/WebKitLegacy:
- WebKitLegacy.xcodeproj/project.pbxproj:
- 12:13 AM Changeset in webkit [262181] by
-
- 67 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo/css2.1/t0804-c5509-padn-l-03-f-g-expected.txt:
- platform/wincairo/css3/flexbox/flexbox-baseline-expected.txt:
- platform/wincairo/fast/css-generated-content/details-summary-before-after-expected.txt:
- platform/wincairo/fast/gradients/list-item-gradient-expected.txt:
- platform/wincairo/fast/html/details-add-child-1-expected.txt:
- platform/wincairo/fast/html/details-add-child-2-expected.txt:
- platform/wincairo/fast/html/details-add-details-child-1-expected.txt:
- platform/wincairo/fast/html/details-add-details-child-2-expected.txt:
- platform/wincairo/fast/html/details-add-summary-1-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-1-expected.txt:
- platform/wincairo/fast/html/details-add-summary-10-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-10-expected.txt:
- platform/wincairo/fast/html/details-add-summary-2-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-2-expected.txt:
- platform/wincairo/fast/html/details-add-summary-3-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-3-expected.txt:
- platform/wincairo/fast/html/details-add-summary-4-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-4-expected.txt:
- platform/wincairo/fast/html/details-add-summary-5-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-5-expected.txt:
- platform/wincairo/fast/html/details-add-summary-6-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-6-expected.txt:
- platform/wincairo/fast/html/details-add-summary-7-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-7-expected.txt:
- platform/wincairo/fast/html/details-add-summary-8-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-8-expected.txt:
- platform/wincairo/fast/html/details-add-summary-9-and-click-expected.txt:
- platform/wincairo/fast/html/details-add-summary-9-expected.txt:
- platform/wincairo/fast/html/details-add-summary-child-1-expected.txt:
- platform/wincairo/fast/html/details-add-summary-child-2-expected.txt:
- platform/wincairo/fast/html/details-marker-style-expected.txt:
- platform/wincairo/fast/html/details-nested-1-expected.txt:
- platform/wincairo/fast/html/details-nested-2-expected.txt:
- platform/wincairo/fast/html/details-no-summary1-expected.txt:
- platform/wincairo/fast/html/details-no-summary2-expected.txt:
- platform/wincairo/fast/html/details-no-summary3-expected.txt:
- platform/wincairo/fast/html/details-no-summary4-expected.txt:
- platform/wincairo/fast/html/details-open-javascript-expected.txt:
- platform/wincairo/fast/html/details-open1-expected.txt:
- platform/wincairo/fast/html/details-open2-expected.txt:
- platform/wincairo/fast/html/details-open3-expected.txt:
- platform/wincairo/fast/html/details-open4-expected.txt:
- platform/wincairo/fast/html/details-open5-expected.txt:
- platform/wincairo/fast/html/details-open6-expected.txt:
- platform/wincairo/fast/html/details-position-expected.txt:
- platform/wincairo/fast/html/details-remove-child-1-expected.txt:
- platform/wincairo/fast/html/details-remove-child-2-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-1-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-1-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-2-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-2-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-3-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-3-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-4-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-4-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-5-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-5-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-6-and-click-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-6-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-child-1-expected.txt:
- platform/wincairo/fast/html/details-remove-summary-child-2-expected.txt:
- platform/wincairo/fast/html/details-replace-summary-child-expected.txt:
- platform/wincairo/fast/html/details-replace-text-expected.txt:
- platform/wincairo/fast/html/details-writing-mode-expected.txt:
- platform/wincairo/fast/text/international/text-combine-image-test-expected.txt:
- platform/wincairo/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-012-expected.txt: