Timeline
Feb 20, 2020:
- 11:44 PM Changeset in webkit [257128] by
-
- 6 edits in trunk
[GTK] Improve user agent quirk for Google Docs and Google Drive
https://bugs.webkit.org/show_bug.cgi?id=206506
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-20
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Stop using our macOS platform quirk for Google Docs and Google Drive. It is not successfully
suppressing the unsupported browser warnings that it was added to avoid. It is also
responsible for complaints from users who do not like seeing macOS-style shortcuts with
the Command key rather than Ctrl.
Replace it with a new Firefox browser quirk. We can avoid the unsupported browser warning in
Google Docs by using this quirk on accounts.youtube.com. There's no need for any other quirk
specific to Google Docs (although removing the macOS platform quirk means we'll instead
begin using the x86_64 Linux quirk that we send to other Google domains). Google Drive will
also use this new quirk.
Also, remove a stale comment instructing developers to test downloading the Hangouts browser
plugin. We no longer support NPAPI, so Google Hangouts is a lost cause until we get WebRTC
working.
- platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
- platform/UserAgentQuirks.h:
- platform/glib/UserAgentGLib.cpp:
(WebCore::buildUserAgentString):
Tools:
- TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::assertUserAgentForURLHasFirefoxBrowserQuirk):
(TestWebKitAPI::TEST):
- 10:57 PM Changeset in webkit [257127] by
-
- 15 edits6 adds in trunk/Source
[Media in GPU process] Synchronize the properties of video layers in the GPU process with the hosting layer in the web process
https://bugs.webkit.org/show_bug.cgi?id=206132
Reviewed by Jer Noble.
Source/WebCore:
Update the name (for debugging) of the CALayer created by _web_renderLayerWithContextID (The CALayer will not be only used as video layers).
This patch also fixes the ordering issue related to VideoLayerManagerObjC.h and VideoLayerManagerObjC.mm in the Xcode project file.
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/cocoa/WebCoreCALayerExtras.mm:
(+[CALayer _web_renderLayerWithContextID:]):
Source/WebCore/PAL:
Update the CAContext interface to expose currentContext for external builds.
- pal/spi/cocoa/QuartzCoreSPI.h:
Source/WebKit:
MediaPlayerPrivateRemote creates WKVideoLayerRemote whose sublayer is created by LayerHostingContext::createPlatformLayerForHostingContext().
The WKVideoLayerRemote will be used by the renderer to manage the video element in the Web process. When its size is changed by the renderer,
it applies a transform without changing its actual size, and sends a message to MediaPlayerPrivateProxy in the GPU process
to change the size of the container layer. After that, WKVideoLayerRemote will set its size to the correct one in the Web process side.
We need to use a MachSendRight to synchronize the transactions in the Web process and the GPU process.
We have to use such a process to change the appearance of WKVideoLayerRemote in order to guarantee the smoothness when a user
change the size of a video element.
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::load):
(WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerFirstVideoFrameAvailable):
(WebKit::RemoteMediaPlayerProxy::setVideoInlineSizeFenced):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerContentBoxRect const): Deleted.
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- SourcesCocoa.txt:
- UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::firstVideoFrameAvailable):
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setVideoInlineSizeFenced):
(WebKit::MediaPlayerPrivateRemote::paint):
(WebKit::MediaPlayerPrivateRemote::paintCurrentFrameInContext):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/VideoLayerRemote.h: Added.
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.h: Added.
- WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm: Added.
(-[WKVideoLayerRemote init]):
(-[WKVideoLayerRemote dealloc]):
(-[WKVideoLayerRemote mediaPlayerPrivateRemote]):
(-[WKVideoLayerRemote setMediaPlayerPrivateRemote:]):
(-[WKVideoLayerRemote videoSublayer]):
(-[WKVideoLayerRemote setVideoSublayer:]):
(-[WKVideoLayerRemote layoutSublayers]):
(-[WKVideoLayerRemote resolveBounds]):
(WebKit::createVideoLayerRemote):
- WebProcess/WebPage/ios/WebPageIOS.mm: Fixed a unified build failure.
- 7:40 PM Changeset in webkit [257126] by
-
- 2 edits in trunk/Source/WebCore
[First paint] Let optional style recalcs go through while in visually-non-empty state.
https://bugs.webkit.org/show_bug.cgi?id=208020
<rdar://problem/59636549>
Reviewed by Simon Fraser.
This is the final step to ensure we don't end up delaying the qualifiesAsVisuallyNonEmpty check when
the page happens to not trigger synchronous style recalcs.
Here is the optimized flow:
Optional style realc -> FrameView::styleAndRenderTreeDidChange -> qualifiesAsVisuallyNonEmpty -> Document::shouldScheduleLayout true.
This could be a slight regression in certain cases because now we let the optional style recalcs through and
only delay the redundant layouts (as opposed to delay both).
- dom/Document.cpp:
(WebCore::Document::scheduleStyleRecalc):
(WebCore::Document::shouldScheduleLayout):
- 7:35 PM Changeset in webkit [257125] by
-
- 32 edits2 copies in trunk
Support in-band metadata cues when loading media in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207904
<rdar://problem/59561647>
Reviewed by Dean Jackson.
Source/WebCore:
No new tests, unskipped existing tests.
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::mediaEngineWasUpdated):
(WebCore::HTMLMediaElement::mediaPlayerEngineUpdated):
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::findIncompleteCue):
(WebCore::InbandDataTextTrack::updateDataCue):
(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):
- html/track/InbandDataTextTrack.h:
- html/track/TextTrack.cpp:
(WebCore::TextTrack::addCue):
- html/track/TextTrack.h:
(WebCore::TextTrack::cuesInternal const):
- html/track/TextTrackCue.cpp:
(WebCore::TextTrackCue::cueIndex const):
- platform/SerializedPlatformDataCue.h:
(WebCore::SerializedPlatformDataCue::deserialize const):
(WebCore::SerializedPlatformDataCue::data const):
(WebCore::SerializedPlatformDataCue::isEqual const):
(WebCore::SerializedPlatformDataCue::platformType const):
(WebCore::SerializedPlatformDataCue::encodingRequiresPlatformData const):
(WebCore::SerializedPlatformDataCue::encodableValue const):
- platform/graphics/MediaPlayer.cpp:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
- platform/mac/SerializedPlatformDataCueMac.h:
- platform/mac/SerializedPlatformDataCueMac.mm:
(WebCore::SerializedPlatformDataCue::create):
(WebCore::SerializedPlatformDataCueMac::SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::isEqual const):
(WebCore::toSerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::allowedClassesForNativeValues):
(WebCore::SerializedPlatformDataCueMac::encodableValue const):
(WebCore::jsValueWithAVMetadataItemInContext):
(WebCore::NSDictionaryWithAVMetadataItem):
(WebCore::SerializedPlatformDataCueMac::create): Deleted.
Source/WebKit:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteTextTrackProxy.cpp:
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encode):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/mac/WebCoreArgumentCodersMac.mm:
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decodePlatformData):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::setConfiguration):
(WebKit::MediaPlayerPrivateRemote::addDataCue):
(WebKit::MediaPlayerPrivateRemote::addDataCueWithType):
(WebKit::MediaPlayerPrivateRemote::updateDataCue):
(WebKit::MediaPlayerPrivateRemote::removeDataCue):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
- WebProcess/GPU/media/TextTrackPrivateRemote.cpp:
(WebKit::TextTrackPrivateRemote::addGenericCue):
(WebKit::TextTrackPrivateRemote::updateGenericCue):
(WebKit::TextTrackPrivateRemote::removeGenericCue):
(WebKit::TextTrackPrivateRemote::parseWebVTTFileHeader):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueData):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueDataStruct):
(WebKit::TextTrackPrivateRemote::addDataCue):
(WebKit::TextTrackPrivateRemote::addDataCueWithType):
(WebKit::TextTrackPrivateRemote::updateDataCue):
(WebKit::TextTrackPrivateRemote::removeDataCue):
- WebProcess/GPU/media/TextTrackPrivateRemote.h:
LayoutTests:
- gpu-process/TestExpectations:
- 7:04 PM Changeset in webkit [257124] by
-
- 3 edits in trunk/Tools
check-webkit-style: Check if *_EXPORT and *_EXPORT_PRIVATE macros are used under corresponding directories
https://bugs.webkit.org/show_bug.cgi?id=207380
Reviewed by Jonathan Bedard.
Added a new rule 'build/export_macro'.
Removed a obsolete rule 'readability/webkit_export' which was used
only by Chromium port (r148185).
- Scripts/webkitpy/style/checkers/cpp.py:
(_FunctionState.export_macro):
(check_function_definition):
(_unix_path): Added.
(is_generated_file): Use _unix_path.
(check_has_config_header): Ditto.
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_export_macro_check):
(WebKitStyleTest.test_webkit_export_check): Deleted.
- 6:57 PM Changeset in webkit [257123] by
-
- 2 edits in trunk/Source/WebCore
Fix crash in Page::updateRendering when document has no domWindow
https://bugs.webkit.org/show_bug.cgi?id=207975
<rdar://56999099>
Patch by Sunny He <sunny_he@apple.com> on 2020-02-20
Reviewed by Ryosuke Niwa.
When a subframe is navigated, a new document is created and
the window is transfered asynchronously. It is possible to have
a call to updateRendering in the middle of this process, resulting
in an attempt to update a document with no window. Add a check for
this case and skip such documents.
No test, since this crash relies on sensitive timing that cannot be
consistently replicated in a test case.
- page/Page.cpp:
(WebCore::Page::updateRendering):
- 6:47 PM Changeset in webkit [257122] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit
Cherry-pick r256933. rdar://problem/59618839
[iOS] Safari sometimes crashes under ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=207929
<rdar://problem/59493326>
Reviewed by Tim Horton.
Make ViewGestureController::beginSwipeGesture robust in the case where the target back/forward item no longer
exists. This means that a back/forward target item existed when UIKit called into us in canSwipeInDirection, but
this item was removed by the time beginSwipeGesture is called.
A couple of conditions could make this possible, such as handling incoming synchronous IPC in the UI process
that could change the back/forward list before sending outgoing IPC to the web process; alternately, an SPI
client could be overriding -_webViewDidBeginNavigationGesture: to run some logic that removes the would-be
target back/forward item.
To protect against these scenarios, null-check targetItem before attempting to dereference it; if it is null,
then reset some state that might've been set as a result of beginning the swipe (that is, m_activeGestureType
and m_currentGestureID) and then immediately bail before attempting to install the snapshot view and proceed
with the swipe.
- UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:33 PM Changeset in webkit [257121] by
-
- 15 edits in branches/safari-609.1.20.111-branch
Apply patch. rdar://problem/59576775
- 6:33 PM Changeset in webkit [257120] by
-
- 17 edits in branches/safari-609.1.20.111-branch/Source/WebCore
Apply patch. rdar://problem/59576779
- 6:33 PM Changeset in webkit [257119] by
-
- 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit
Cherry-pick r256932. rdar://problem/59618840
Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>
Reviewed by Geoffrey Garen.
Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::updateCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:32 PM Changeset in webkit [257118] by
-
- 9 edits2 adds in branches/safari-609.1.20.111-branch
Cherry-pick r256859. rdar://problem/59612087
[macOS] Web process may crash under ServicesOverlayController::buildPotentialHighlightsIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=207899
<rdar://problem/55658207>
Reviewed by Tim Horton and Simon Fraser.
Source/WebCore:
Mitigates a null pointer crash in ServicesOverlayController::buildPotentialHighlightsIfNeeded(), wherein the
focused frame may not have a FrameView when the ServicesOverlayController's selection invalidation timer fires.
This is possible if, while being focused, the newly focused subframe is unparented and reparented, which causes
it to momentarily have a null view. During this time, if a selection change had occurred earlier in the runloop,
it will schedule the page overlay controller invalidation timer, which will fire and discover that the currently
focused frame no longer has a FrameView.
Test: editing/selection/selection-change-in-disconnected-frame-crash.html
- page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::buildSelectionHighlight):
Source/WebKit:
Add another missing null check on iOS, for the case where FrameView is null.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState const):
Tools:
Make it possible to run tests on macOS with services controls enabled, via a new TestOptions flag.
- WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView):
LayoutTests:
Add a new layout test to verify that we don't crash under this circumstance.
- editing/selection/selection-change-in-disconnected-frame-crash-expected.txt: Added.
- editing/selection/selection-change-in-disconnected-frame-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:32 PM Changeset in webkit [257117] by
-
- 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit
Cherry-pick r256790. rdar://problem/59575905
Data detectors do not trigger on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=207860
<rdar://problem/59038913>
Reviewed by Tim Horton.
The lookup gesture which run data detection needs touch information to function. Allow touches to be sent to the gesture.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:16 PM Changeset in webkit [257116] by
-
- 1 edit in branches/safari-609.1.20.0-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652987
- 6:13 PM Changeset in webkit [257115] by
-
- 1 edit in branches/safari-609.1.20.111-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652979
- 6:11 PM Changeset in webkit [257114] by
-
- 1 edit in branches/safari-609-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm
Apply fix. rdar://problem/59652984
- 6:07 PM Changeset in webkit [257113] by
-
- 8 edits in branches/safari-609.1.20.111-branch/Source
Versioning.
- 6:06 PM Changeset in webkit [257112] by
-
- 13 edits in branches/safari-609.1.20.0-branch
Revert r256995. rdar://problem/59478837
- 6:06 PM Changeset in webkit [257111] by
-
- 4 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Revert r256996. rdar://problem/59478911
- 6:06 PM Changeset in webkit [257110] by
-
- 17 edits in branches/safari-609.1.20.0-branch/Source/WebCore
Apply patch. rdar://problem/59298138
Apply the second patch.
- 6:06 PM Changeset in webkit [257109] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit
Cherry-pick r257013. rdar://problem/59614284
Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973
Reviewed by Chris Dumez.
Use RefPtr to store Frame*.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:40 PM Changeset in webkit [257108] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256933. rdar://problem/59618836
[iOS] Safari sometimes crashes under ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=207929
<rdar://problem/59493326>
Reviewed by Tim Horton.
Make ViewGestureController::beginSwipeGesture robust in the case where the target back/forward item no longer
exists. This means that a back/forward target item existed when UIKit called into us in canSwipeInDirection, but
this item was removed by the time beginSwipeGesture is called.
A couple of conditions could make this possible, such as handling incoming synchronous IPC in the UI process
that could change the back/forward list before sending outgoing IPC to the web process; alternately, an SPI
client could be overriding -_webViewDidBeginNavigationGesture: to run some logic that removes the would-be
target back/forward item.
To protect against these scenarios, null-check targetItem before attempting to dereference it; if it is null,
then reset some state that might've been set as a result of beginning the swipe (that is, m_activeGestureType
and m_currentGestureID) and then immediately bail before attempting to install the snapshot view and proceed
with the swipe.
- UIProcess/ios/ViewGestureControllerIOS.mm: (WebKit::ViewGestureController::beginSwipeGesture):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:40 PM Changeset in webkit [257107] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256932. rdar://problem/59618845
Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>
Reviewed by Geoffrey Garen.
Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.
- UIProcess/WebProcessCache.cpp: (WebKit::WebProcessCache::updateCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:25 PM Changeset in webkit [257106] by
-
- 2 edits in trunk/Source/WebKit
Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037
<rdar://problem/59480381>
Reviewed by Brent Fulgham.
No new tests. This patch just adds a domain name to a quirks function.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommendedForRequest):
fidelity.com and its subdomains now return false.
- 4:41 PM Changeset in webkit [257105] by
-
- 1 copy in tags/Safari-609.1.20.111.1
Tag Safari-609.1.20.111.1.
- 4:39 PM Changeset in webkit [257104] by
-
- 8 edits in branches/safari-609.1.20.111-branch/Source
Versioning.
- 4:20 PM Changeset in webkit [257103] by
-
- 2 edits in trunk/Source/WebKit
WebIDBServer resume should return early if suspend does not happen
https://bugs.webkit.org/show_bug.cgi?id=208027
<rdar://problem/59617654>
Reviewed by Geoffrey Garen.
We should not try releasing a lock that is not held.
- NetworkProcess/IndexedDB/WebIDBServer.cpp:
(WebKit::WebIDBServer::resume):
- 4:15 PM Changeset in webkit [257102] by
-
- 1 copy in branches/safari-609.1.20.111-branch
New branch.
- 4:12 PM Changeset in webkit [257101] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/cache-storage/cache-put-keys.https.any.worker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208036
Unreviewed test gardening.
Removed the old slow expectation because it no longer appears to be relevant, added pass on failing.
- platform/ios-simulator-wk2/TestExpectations:
- 3:45 PM Changeset in webkit [257100] by
-
- 2 edits in trunk/LayoutTests
(r256583) [ iOS ] http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207944
<rdar://problem/59592361>
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 3:39 PM Changeset in webkit [257099] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r256805?) [ Mojave wk2 Release ] webrtc/video-replace-muted-track.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207941
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:25 PM Changeset in webkit [257098] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Unreviewed re-application of patch. rdar://problem/59611915
- 3:16 PM Changeset in webkit [257097] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Expose caret color for clients
https://bugs.webkit.org/show_bug.cgi?id=207963
<rdar://problem/57383170>
Reviewed by Daniel Bates.
Expose caret color for clients to use.
- WebView/WebFrame.mm:
(-[WebFrame textInsertionColor]):
- WebView/WebFramePrivate.h:
- 3:12 PM Changeset in webkit [257096] by
-
- 4 edits1 add in trunk/Tools
[Win][MiniBrowser] Add prettier toolbar button icons
https://bugs.webkit.org/show_bug.cgi?id=207999
Reviewed by Ross Kirsling.
Use a custom toolbar button icons instead of system stock icons.
Fixed a bug toolbar button dropdown arrows always looked being
hovered. TBSTYLE_FLAT should be given.
Removed the window border line of Progress Indicator.
- MiniBrowser/win/MainWindow.cpp:
(MainWindow::createToolbar):
- MiniBrowser/win/MiniBrowserLib.rc:
- MiniBrowser/win/MiniBrowserLibResource.h:
- MiniBrowser/win/toolbar.bmp: Added.
- 3:01 PM Changeset in webkit [257095] by
-
- 8 edits in branches/safari-609.1.20.0-branch/Source
Versioning.
- 2:59 PM Changeset in webkit [257094] by
-
- 2 edits in trunk/Source/WebCore
[First paint] FrameView::loadProgressingStatusChanged should check m_firstVisuallyNonEmptyLayoutMilestoneIsPending
https://bugs.webkit.org/show_bug.cgi?id=208008
<rdar://problem/59630957>
Reviewed by Antti Koivisto.
If we haven't had a chance to issue a visually-non-empty milestone, we definitely need to check the content again when the load
is finally completed.
- page/FrameView.cpp:
(WebCore::FrameView::loadProgressingStatusChanged):
- 2:54 PM Changeset in webkit [257093] by
-
- 5 edits in branches/safari-609-branch/Source
Cherry-pick r256806. rdar://problem/59576023
Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
https://bugs.webkit.org/show_bug.cgi?id=207876
Reviewed by Wenson Hsieh.
- wtf/Platform.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView cleanupInteraction]): (-[WKContentView _removeDefaultGestureRecognizers]): (-[WKContentView _addDefaultGestureRecognizers]): (-[WKContentView gestureRecognizer:shouldReceiveTouch:]): For symmetry's sake, introduce a HAVE for this gesture.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256806 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:33 PM Changeset in webkit [257092] by
-
- 1 copy in tags/Safari-609.1.20.1.2
Tag Safari-609.1.20.1.2.
- 2:31 PM Changeset in webkit [257091] by
-
- 2 edits in trunk/LayoutTests
Regression: fast/hidpi/image-* are failing consistently on iOS EWS
https://bugs.webkit.org/show_bug.cgi?id=207038#c8
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:31 PM Changeset in webkit [257090] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Fix race in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=208001
Reviewed by Xabier Rodriguez-Calvar.
TextCombinerGStreamer uses the CAPS event to determine whether adding
a webvttenc between the text track pad and the funnel element used to
be able to display several subtitles at the same time.
The way this was done previously had a race though: all text track
pads were preemptively linked directly to the funnel, only adding the
webvttenc element later in the middle when receiving the CAPS event.
When two or more text tracks were present, it wasn't infrequent that
one track had its CAPS event processed (causing the webvttenc element
to be added) and propagated (fixating the funnel caps) before another
track attempted caps negotiation. Because the pads were connected to
the funnel preemptively, and because without the webvttenc element the
caps of the text pad don't match the funnel's, this causes a caps
mismatch error, stopping playback completely. The CAPS event is
therefore never sent.
To avoid this race, we must avoid linking elements until we get the
CAPS events, when we actually know where we should link them to,
therefore avoiding early caps negotiation errors.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkitTextCombinerPadDispose):
(webkitTextCombinerPadEvent):
(webkitTextCombinerRequestNewPad):
(webkitTextCombinerReleasePad):
(webkit_text_combiner_class_init):
(webkitTextCombinerPadFinalize): Deleted.
- 2:23 PM Changeset in webkit [257089] by
-
- 5 edits in trunk
NetworkCache should use 4KB threshold for mmap-ed files instead of 16KB
https://bugs.webkit.org/show_bug.cgi?id=207882
Reviewed by Alex Christensen.
Source/WebKit:
We found that a lot of Vectors in Membuster is holding resource content. This is because we have 16KB threshold for mmap-ed files.
If a file is smaller than 16KB, it is copied to Vector instead. But this is costly in terms of memory. If we use mmap-ed files,
it becomes named-pages instead of anonymous-pages. File-backed non-dirty named-pages have a lot of benefit.
- The application is offering a hint that pages are file-backed. This means that OS can purge them at any time since the content can be recovered from the disk. This is cheaper than swapping / compressing anonymous pages since just discarding works.
- The application is offering a hint that pages have spatial locality. Purging pages in one named-pages region is better compared to purging the same # of anonymous pages randomly. Anonymous pages are split by malloc implementation and access pattern of pages in one VA is random. On the other hand, named-pages are accessed together because it is file, and file typically has sequential locality. And recovery of named pages are also cheap compared to anonymous pages since OS can prefetch pages once access happens because of sequential locality of files. This tendency makes OS like purging named pages instead of anonymous pages. In WebKit use case, this works perfectly. CachedResource typically has decoded content. So typically WebProcess does not access SharedBuffer after the content is decoded.
This patch reduces the threshold from 16KB to page size (4KB in macOS, 16KB in iOS). This is pre-2015 behavior.
This offers 2.56% progression with 98% probability in Membuster.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::maximumInlineBodySize):
(WebKit::NetworkCache::estimateRecordsSize):
(WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):
LayoutTests:
The test is assuming that 12KB file is served via non-mmap-file.
This assumption is flaky and broken by this change. For now, we pick smaller
file to meet this assumption.
- http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:
- http/tests/inspector/network/resource-sizes-disk-cache.html:
- 2:21 PM Changeset in webkit [257088] by
-
- 8 edits in branches/safari-609.1.20.1-branch/Source
Versioning.
- 2:13 PM Changeset in webkit [257087] by
-
- 2 edits in trunk/Tools
Update run-webkit-tests help description for skip-failing-tests
https://bugs.webkit.org/show_bug.cgi?id=208031
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
- 2:10 PM Changeset in webkit [257086] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:05 PM Changeset in webkit [257085] by
-
- 16 edits1 delete in trunk
[WebAuthn] Replace DeviceIdentity.framework
https://bugs.webkit.org/show_bug.cgi?id=207985
<rdar://problem/59369223>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch replaces the DeviceIdentity.framework with a new framework that better suits our needs.
The new experimental authentication logic is handled by WebKtAdditions. Please refer to the radar
for detailed information.
Besides the replacement, this patch also:
1) changes how user consent is obtained to avoid multiple prompts for biometric input.
2) removes keychain workarounds for DeviceIdentity given the credential private key is now under our possession.
3) removes everything that is related to DeviceIdentity.
Covered by new tests within existing test files.
- Configurations/WebKit.xcconfig:
- Platform/spi/Cocoa/DeviceIdentitySPI.h: Removed.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::toNSData):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
- UIProcess/WebAuthentication/Cocoa/LocalConnection.h:
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::createCredentialPrivateKey const):
(WebKit::LocalConnection::getAttestation const):
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::createCredentialPrivateKey const):
(WebKit::MockLocalConnection::getAttestation const):
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/PlatformHave.h:
LayoutTests:
- http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
- http/wpt/webauthn/public-key-credential-create-success-local.https.html:
- 2:05 PM WebKitGTK/2.26.x edited by
- (diff)
- 2:05 PM Changeset in webkit [257084] by
-
- 3 edits1 add in branches/safari-610.1.4-branch
Cherry-pick r256766. rdar://problem/59618203
[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
JSTests:
- wasm/regress/regress-256665.js: Added. (f):
Source/JavaScriptCore:
When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.
- wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:50 PM Changeset in webkit [257083] by
-
- 5 edits in trunk/Source
AX: Adopt _AXSCopyPathForAccessibilityBundle for WebKit
https://bugs.webkit.org/show_bug.cgi?id=207828
Source/WebKit:
Use the new SPI _AXSCopyPathForAccessibilityBundle.
Patch by Eric Liang <ericliang@apple.com> on 2020-02-20
Reviewed by Darin Adler.
Covered by checkAccessibilityWebProcessLoaderBundleIsLoaded
- Platform/spi/ios/AccessibilitySupportSPI.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::webProcessLoaderAccessibilityBundlePath):
Source/WTF:
Use the _AXSCopyPathForAccessibilityBundle new API. Updated the required SDK version.
Patch by Eric Liang <ericliang@apple.com> on 2020-02-20
Reviewed by Darin Adler.
- wtf/PlatformHave.h:
- 1:21 PM Changeset in webkit [257082] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/tests/workers/service/registration-clear-redundant-worker.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208030
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:14 PM Changeset in webkit [257081] by
-
- 2 edits in trunk/Source/WebCore
[First paint] Let's check visually-non-empty state in FrameView::styleAndRenderTreeDidChange
https://bugs.webkit.org/show_bug.cgi?id=208013
<rdar://problem/59633427>
Reviewed by Antti Koivisto.
This patch completely decouples m_contentQualifiesAsVisuallyNonEmpty and m_firstVisuallyNonEmptyLayoutMilestoneIsPending.
Now FrameView can be in the state where m_contentQualifiesAsVisuallyNonEmpty is true while
m_firstVisuallyNonEmptyLayoutMilestoneIsPending is false (which is a perfectly valid state to be in).
This will enable us to delay optional layouts after style recalcs when the content is still visually empty.
(If a FrameView::isVisuallyNonEmpty() caller regresses after this change, it means that the caller is interested in
whether the non-empty milestone has been issued or not and it needs to switch over to a different API.)
- page/FrameView.cpp:
(WebCore::FrameView::styleAndRenderTreeDidChange):
(WebCore::FrameView::loadProgressingStatusChanged):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
- 1:12 PM Changeset in webkit [257080] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r256784): [ iOS ] fast/images/exif-orientation-webgl-texture.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207943
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:56 PM Changeset in webkit [257079] by
-
- 6 edits in trunk/Source/WebKit
Unreviewed, rolling out r257045.
https://bugs.webkit.org/show_bug.cgi?id=208024
Membuster ~16% regression (Requested by yusukesuzuki on
#webkit).
Reverted changeset:
"Regression(r246188) WebProcess is launched too eagerly when
[WKWebView _restoreSessionState] is called"
https://bugs.webkit.org/show_bug.cgi?id=207908
https://trac.webkit.org/changeset/257045
- 12:06 PM Changeset in webkit [257078] by
-
- 9 edits2 deletes in trunk/Source
[Curl] Simplify Cookie class.
https://bugs.webkit.org/show_bug.cgi?id=207930
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-02-20
Reviewed by Don Olmstead.
Removed redundant CookieJarCurl.cpp and made NetworkDataTaskCurl access CookieJarDB directly.
CookieJarCurl was used for supporting file based cookie database but now it is no longer used.
No new tests. Covered by existing tests.
Source/WebCore:
- platform/Curl.cmake:
- platform/network/NetworkStorageSession.h:
- platform/network/curl/CookieJarCurl.cpp: Removed.
- platform/network/curl/CookieJarCurl.h: Removed.
- platform/network/curl/CurlResourceHandleDelegate.cpp:
(WebCore::handleCookieHeaders):
- platform/network/curl/NetworkStorageSessionCurl.cpp:
(WebCore::cookiesForSession):
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookiesFromHTTPResponse const):
(WebCore::NetworkStorageSession::setCookieAcceptPolicy const):
(WebCore::NetworkStorageSession::cookieAcceptPolicy const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getAllCookies):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::createCurlRequest):
Source/WebKit:
- NetworkProcess/Cookies/curl/WebCookieManagerCurl.cpp:
(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::appendCookieHeader):
(WebKit::NetworkDataTaskCurl::handleCookieHeaders):
- 12:06 PM Changeset in webkit [257077] by
-
- 4 edits in trunk
REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>
Reviewed by Geoffrey Garen.
Source/WebKit:
Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm:
(TEST):
- 11:42 AM Changeset in webkit [257076] by
-
- 2 edits in trunk/Source/WTF
Unreviewed comment fix.
- wtf/RunLoop.cpp:
(WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
Words by Simon.
- 11:39 AM Changeset in webkit [257075] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk1 Debug ] http/tests/history/back-to-post.php is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208022
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:36 AM Changeset in webkit [257074] by
-
- 6 edits in trunk/Source/WebCore
Move system listeners from PlatformMediaSessionManager to MediaSessionManagerCocoa
https://bugs.webkit.org/show_bug.cgi?id=208011
Reviewed by Eric Carlson.
We will want the listeners to be running in GPUProcess.
The plan is to have a generic PlatformMediaSessionManager that is hooked to GPUProcess
through a counterpart session manager in GPUProcess.
Given listeners are only supported in Cocoa ports, it is fine moving them to MediaSessionManagerCocoa.
This way we can decide to instantiate either a MediaSessionManagerCocoa in WebProcess or in GPUProcess.
For this to work, we have to make addSession virtual to be able to create the listeners lazily when adding a session.
No change of behavior.
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::hasNoSession const):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::setCurrentSession):
(WebCore::PlatformMediaSessionManager::processDidReceiveRemoteControlCommand):
(WebCore::PlatformMediaSessionManager::computeSupportsSeeking const):
(WebCore::PlatformMediaSessionManager::processSystemWillSleep):
(WebCore::PlatformMediaSessionManager::processSystemDidWake):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(MediaSessionManagerCocoa::MediaSessionManagerCocoa):
(MediaSessionManagerCocoa::updateSessionState):
(MediaSessionManagerCocoa::addSession):
(MediaSessionManagerCocoa::removeSession):
(MediaSessionManagerCocoa::setCurrentSession):
- testing/Internals.cpp:
(WebCore::Internals::postRemoteControlCommand):
(WebCore::Internals::simulateSystemSleep const):
(WebCore::Internals::simulateSystemWake const):
- 11:33 AM Changeset in webkit [257073] by
-
- 4 edits in trunk
GraphicsContextGLOpenGL::transformFeedbackVaryings passes deallocated memory to gl::TransformFeedbackVaryings
https://bugs.webkit.org/show_bug.cgi?id=207526
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by WebGL2 Transform Feedback tests.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
LayoutTests:
Unskip known WebGL 2.0.0 conformance suite progressions.
- 11:22 AM Changeset in webkit [257072] by
-
- 7 edits in trunk/Source
[macOS] Disable RunLoop function dispatch when there is a pending rendering update
https://bugs.webkit.org/show_bug.cgi?id=207931
Reviewed by Geoffrey Garen.
Source/WebCore:
Functions dispatched via RunLoop::dispatch() are executed before the rendering update runloop observer.
This can significantly delay rendering updates as asyncronous IPC is handled via this mechanism.
Most importantly network resources are dispatched to the main thread this way, sometimes triggering expensive
synchronous parsing and script execution.
This patch adds a mechanims for disabling function dispatch temporarily while there is a pending rendering update.
- dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::breakToAllowRenderingUpdate):
Source/WebKit:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::scheduleRenderingUpdateRunLoopObserver):
Don't do anything if the runloop is already scheduled. This frequently happens
from inside updateRendering.
Source/WTF:
- wtf/RunLoop.cpp:
(WTF::RunLoop::performWork):
Simplify the code by factoring it into a single loop.
Bail out if the runloop is initially suspended or if it becomes suspended by function execution.
Clear the suspended state so it last a single cycle only.
(WTF::RunLoop::suspendFunctionDispatchForCurrentCycle):
Set the suspended state and wake up the runloop to guarantee the state is cleared.
- wtf/RunLoop.h:
- 11:17 AM Changeset in webkit [257071] by
-
- 4 edits in trunk/Source/WebKit
[iOS] GPUProcess needs to provide the parent PID before starting camera capture
https://bugs.webkit.org/show_bug.cgi?id=208009
Reviewed by Eric Carlson.
Like we do when capturing in WebProcess, we need to provide the parent PID before starting camera capture.
Implement this in GPU process whenever creating a camera source.
- GPUProcess/GPUConnectionToWebProcess.cpp:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
(WebKit::UserMediaCaptureManagerProxy::ConnectionProxy::willStartCameraCapture):
- 11:05 AM Changeset in webkit [257070] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 Release ] perf/clone-with-focus.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208018
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:39 AM Changeset in webkit [257069] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Debug ] http/tests/websocket/tests/hybi/no-subprotocol.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208014
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:38 AM Changeset in webkit [257068] by
-
- 2 edits in branches/safari-609.1.20.1-branch/Source/WebCore
WebCore fails to build: use of undeclared identifier 'CGContextDrawPDFPageWithAnnotations'
<rdar://problem/59623059>
- platform/graphics/cg/PDFDocumentImage.cpp:
- 9:40 AM Changeset in webkit [257067] by
-
- 2 edits in trunk
[GTK][WPE] Not set ccache compiler prefix if ccache its already the compiler binary in path.
https://bugs.webkit.org/show_bug.cgi?id=208007
Reviewed by Tim Horton.
Detect if the compiler binary already points to the ccache binary and in that case don't
set the ccache compiler prefix. Also export CCACHE_SLOPPINESS=time_macros if its not
defined to other thing on the environment and add a some logging of related messages.
- Source/cmake/WebKitCCache.cmake:
- 9:35 AM WPE edited by
- (diff)
- 9:34 AM Changeset in webkit [257066] by
-
- 4 edits1 move in trunk
WKWebView with non-zero origin has the wrong top content inset with NSWindowStyleMaskFullSizeContentView
https://bugs.webkit.org/show_bug.cgi?id=207998
<rdar://problem/40942425>
Reviewed by Sam Weinig.
Source/WebKit:
New API tests: TopContentInset.{AutomaticAdjustment, AutomaticAdjustmentDisabled, AutomaticAdjustmentDoesNotAffectInsetViews}
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateContentInsetsIfAutomatic):
Previously, a WKWebView with frame.origin anywhere other than {0, 0}
would end up with the same top content inset as if it overlapped the
titlebar.
It's not clear what the original code was going for; we can determine
the overlapping portion of the contentLayoutRect by simply converting
it from window coordinates to WKWebView coordinates and looking at the
origin (ensuring we don't let it go negative).
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/TopContentInset.mm: Renamed from Tools/TestWebKitAPI/Tests/WebKitCocoa/FullscreenTopContentInset.mm.
(-[FullscreenChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
Add some tests for top content insets.
- 9:20 AM Changeset in webkit [257065] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] crypto/subtle/rsa-indexeddb.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=208010
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:44 AM Changeset in webkit [257064] by
-
- 3 edits2 adds in trunk
[LFC] Sometimes subframes don't even have document elements.
https://bugs.webkit.org/show_bug.cgi?id=208006
<rdar://problem/59629147>
Source/WebCore:
Reviewed by Antti Koivisto.
Test: fast/layoutformattingcontext/subframe-with-display-none-html.html
Do not try to layout a formatting context when it has no content at all.
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
LayoutTests:
Reviewed by Antti Koivisto.
- fast/layoutformattingcontext/subframe-with-display-none-html-expected.html: Added.
- fast/layoutformattingcontext/subframe-with-display-none-html.html: Added.
- 8:37 AM Changeset in webkit [257063] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257025) [ Mac wk2 ] http/tests/inspector/network/resource-sizes-disk-cache.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208004
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:22 AM Changeset in webkit [257062] by
-
- 2 edits in trunk/Source/WebCore/PAL
NSUserDefaultsSPI.h is copied to an incorrect path
https://bugs.webkit.org/show_bug.cgi?id=207977
rdar://problem/59609174
Reviewed by Per Arne Vollan.
- PAL.xcodeproj/project.pbxproj: Change the header from Private to Project - these
headers are copied into the right location by a script phase, so Xcode shouldn't
do it itself.
- 8:14 AM Changeset in webkit [257061] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r257025.
This commit broke a test on Mac wk2.
Reverted changeset:
"NetworkCache should use 4KB threshold for mmap-ed files
instead of 16KB"
https://bugs.webkit.org/show_bug.cgi?id=207882
https://trac.webkit.org/changeset/257025
- 7:49 AM Changeset in webkit [257060] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/zero-initialize-values.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208005
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:36 AM Changeset in webkit [257059] by
-
- 3 edits2 adds in trunk
[LFC][BFC] Fix geometryForBox::isOkToAccessDisplayBox for EscapeReason::FindFixedHeightAncestorQuirk
https://bugs.webkit.org/show_bug.cgi?id=207983
<rdar://problem/59615246>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/height-percentage-quirk-to-icb.html
The height percentage quirk walks the ancestor chain and looks for fixed height block level boxes.
It can potentially walk all the way up to the ICB. This patch gives access to the ICB's geometry when
FormattingContext::geometryForBox() has EscapeReason::FindFixedHeightAncestorQuirk.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometryForBox const):
LayoutTests:
- fast/layoutformattingcontext/height-percentage-quirk-to-icb-expected.html: Added.
- fast/layoutformattingcontext/height-percentage-quirk-to-icb.html: Added.
- 7:27 AM Changeset in webkit [257058] by
-
- 2 edits in trunk/Tools
results.webkit.org: Correctly report JSC tests for windows (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=207910
Unreviewed infrastructure fix.
- Scripts/run-javascriptcore-tests:
(configurationForUpload): Use the major version instead of the sub-minor version
for version name.
- 7:24 AM Changeset in webkit [257057] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r257025?) [ Mac wk2 ] http/tests/inspector/network/resource-sizes-disk-cache.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=208004
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:19 AM Changeset in webkit [257056] by
-
- 3 edits2 adds in trunk
[LFC][Out-of-flow] FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned should ignore inline boxes
https://bugs.webkit.org/show_bug.cgi?id=207994
<rdar://problem/59618280>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling.html
https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-height
"For the purposes of this section and the next, the term "static position" (of an element) refers, roughly,
to the position an element would have had in the normal flow."
This does not seem to be well-defined for sibling inline boxes. Let's just stick with block level boxes for now.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
LayoutTests:
- fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling-expected.html: Added.
- fast/layoutformattingcontext/absolute-positioned-box-with-inline-sibling.html: Added.
- 7:00 AM Changeset in webkit [257055] by
-
- 9 edits in trunk
[CMake] Add WebP targets
https://bugs.webkit.org/show_bug.cgi?id=207982
Reviewed by Adrian Perez de Castro.
.:
Modernize the FindWebP.cmake module so it creates targets that can be
referenced rather than using WEBP_LIBRARIES and WEBP_INCLUDE_DIRS.
Also making demux a component within the module, and allowing alternate names
for the library to be set by the platform.
- Source/cmake/FindWebP.cmake:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsPlayStation.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWinCairo.cmake:
Source/WebCore:
Use the WebP targets.
- platform/ImageDecoders.cmake:
- 6:46 AM Changeset in webkit [257054] by
-
- 6 edits in trunk
Lazy load images using base url at parse time
https://bugs.webkit.org/show_bug.cgi?id=207902
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-20
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update improved test results.
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-expected.txt:
Source/WebCore:
The spec says to use the base url at parse time for request
url, ignoring changes to base url after that [1]. To fix this
add a new state LoadImmediately to LazyImageLoadState where
the parse time url from the initial request is reused.
[1] https://html.spec.whatwg.org/multipage/images.html#update-the-image-data
Tests: imported/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html
imported/web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::loadDeferredImage):
- loader/ImageLoader.h:
- 6:28 AM Changeset in webkit [257053] by
-
- 14 edits in trunk
[CMake] Add WPE::libwpe target
https://bugs.webkit.org/show_bug.cgi?id=207970
Reviewed by Adrian Perez de Castro.
.:
Redo the WPE find module to export a target.
- Source/cmake/FindWPE.cmake:
Source/WebCore:
Use the WPE::libwpe target.
- PlatformGTK.cmake:
- PlatformPlayStation.cmake:
- PlatformWPE.cmake:
Source/WebKit:
Use the WPE::libwpe target.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
Tools:
Use the WPE::libwpe target.
- MiniBrowser/wpe/CMakeLists.txt:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/glib/PlatformWPE.cmake:
- wpe/backends/CMakeLists.txt:
- 6:06 AM Changeset in webkit [257052] by
-
- 2 edits in trunk/Source/WebCore
[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange] must run on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=207958
Reviewed by Darin Adler.
Covered by existing tests.
[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange]
calls into TextIterator and Node, thus it must be dispatched to the
main thread.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:spellCheck:]):
- 5:06 AM Changeset in webkit [257051] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening of Web inspector tests.
Unreviewed gardening.
Mark all Web test inspector tests as slow Debug and some timing out.
- platform/gtk/TestExpectations:
- 2:40 AM Changeset in webkit [257050] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Use custom colors for text and listbox selection
https://bugs.webkit.org/show_bug.cgi?id=207836
Reviewed by Adrian Perez de Castro.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformActiveSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformInactiveSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeWPE::platformActiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeWPE::platformInactiveListBoxSelectionForegroundColor const):
(WebCore::RenderThemeWPE::paintTextField):
- platform/wpe/RenderThemeWPE.h:
- 2:32 AM Changeset in webkit [257049] by
-
- 7 edits in trunk/Source/WebCore
[WPE] Use the theme to render the focus ring
https://bugs.webkit.org/show_bug.cgi?id=207758
Reviewed by Adrian Perez de Castro.
This makes form controls consistent with elements having an auto outline.
- PlatformWPE.cmake: Add platform/wpe to include dirs.
- platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing): Use ThemeWPE::focusColor.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::platformFocusRingColor const): Implement it to return the focus color used by ThemeWPE.
- platform/wpe/RenderThemeWPE.h:
- platform/wpe/ThemeWPE.cpp:
(WebCore::ThemeWPE::focusColor): Return the focus color.
(WebCore::ThemeWPE::paintFocus): Add new methods receiving a path or list of rectangles and a color.
- platform/wpe/ThemeWPE.h:
- 2:03 AM Changeset in webkit [257048] by
-
- 3 edits in trunk/Source/WebCore
[WPE] Add support for rendering sliders for range elements
https://bugs.webkit.org/show_bug.cgi?id=207694
Reviewed by Adrian Perez de Castro.
- platform/wpe/RenderThemeWPE.cpp:
(WebCore::RenderThemeWPE::supportsFocusRing const):
(WebCore::RenderThemeWPE::paintSliderTrack):
(WebCore::RenderThemeWPE::adjustSliderThumbSize const):
(WebCore::RenderThemeWPE::paintSliderThumb):
- platform/wpe/RenderThemeWPE.h:
- 1:36 AM Changeset in webkit [257047] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, mark several WPT's CSS animation tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=207988
Unreviewed gardening.
- platform/gtk/TestExpectations:
Feb 19, 2020:
- 10:41 PM Changeset in webkit [257046] by
-
- 5 edits2 adds in trunk
ASSERTION FAILED: roundedIntPoint(LayoutPoint(rendererMappedResult)) == result in WebCore::RenderGeometryMap::mapToContainer
https://bugs.webkit.org/show_bug.cgi?id=151030
<rdar://problem/27711142>
Patch by Jack Lee <Jack Lee> on 2020-02-19
Reviewed by Darin Adler.
Track if m_accumulatedOffset ever becomes saturated, and if so, do not assert on unexpected rendererMappedResult.
Source/WebCore:
Test: fast/layers/geometry-map-saturated-offset-assert.html
- platform/graphics/LayoutSize.h:
(WebCore::LayoutSize::mightBeSaturated const):
- rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::mapToContainer const):
(WebCore::RenderGeometryMap::stepInserted):
(WebCore::RenderGeometryMap::stepRemoved):
- rendering/RenderGeometryMap.h:
LayoutTests:
- fast/layers/geometry-map-saturated-offset-assert-expected.txt: Added.
- fast/layers/geometry-map-saturated-offset-assert.html: Added.
- 10:25 PM Changeset in webkit [257045] by
-
- 6 edits in trunk/Source/WebKit
Regression(r246188) WebProcess is launched too eagerly when [WKWebView _restoreSessionState] is called
https://bugs.webkit.org/show_bug.cgi?id=207908
Reviewed by Darin Adler.
Since r246188, the WebProcess is launched eagerly when [WKWebView _restoreSessionState] is called. This is bad
for performance because we are unable to leverage the process cache at this point (since we don't know which
domain will be loaded).
This patch thus reverts r246188 and fixes what r246188 was trying to address in a different way. If the process
was not launched yet when restoreSessionState() is called, the session state properly gets sent to the WebProcess
after launch, via the WebPageCreationParameters. What was missing at that point was that the session state was
restore by an API Request. To fix this, we now pass an extra itemStatesWereRestoredByAPIRequest flag in
WebPageCreationParameters.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::restoreFromSessionState):
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_overriddenMediaType):
- 10:24 PM Changeset in webkit [257044] by
-
- 4 edits1 move in trunk/Source
Unreviewed, rolling out r257029.
https://bugs.webkit.org/show_bug.cgi?id=207996
Doesn't fix the issue (Requested by ap on #webkit).
Reverted changeset:
"[iOS] Rename NSUserDefaultsSPI.h"
https://bugs.webkit.org/show_bug.cgi?id=207977
https://trac.webkit.org/changeset/257029
- 10:19 PM Changeset in webkit [257043] by
-
- 2 edits in trunk/Source/WebInspectorUI
Fixed object trees using the wrong theme of type icon
https://bugs.webkit.org/show_bug.cgi?id=207980
Reviewed by Darin Adler.
- UserInterface/Views/ObjectTreePropertyTreeElement.css:
(.object-tree-property.boolean > .icon):
(.object-tree-property.function > .icon):
(.object-tree-property.number > .icon):
(.object-tree-property.bigint > .icon):
(.object-tree-property.object > .icon):
(.object-tree-property.object.null > .icon):
(.object-tree-property.object.node > .icon):
(.object-tree-property.regex > .icon):
(.object-tree-property.string > .icon):
(.object-tree-property.symbol > .icon):
(.object-tree-property.accessor > .icon,):
(.object-tree-property.had-error > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.boolean > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.function > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.number > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.bigint > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.null > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.object.node > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.regex > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.string > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.symbol > .icon):
(@media (prefers-color-scheme: dark) .object-tree-property.accessor > .icon,):
(@media (prefers-color-scheme: dark) .object-tree-property.had-error > .icon):
- 10:11 PM Changeset in webkit [257042] by
-
- 2 edits in trunk/Source/WebKit
Web Automation: Automation.setWindowFrameOfBrowsingContext should accept negative x and y-origin values
https://bugs.webkit.org/show_bug.cgi?id=207974
<rdar://problem/59606705>
Reviewed by Darin Adler.
According to the spec, negative origin values are supported:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):
- 10:08 PM Changeset in webkit [257041] by
-
- 3 edits in trunk/Source/WebKit
Resources larger than 10MB are not stored in the disk cache
https://bugs.webkit.org/show_bug.cgi?id=207967
<rdar://problem/59572084>
Reviewed by Darin Adler.
This patch makes two policy changes to our disk cache:
- The capacity of the disk cache is now doubled. Based on available disk space, it could previously use up to 500MB of disk space. The limit is now 1GB.
- The per cache-entry limit is raised from 10MB to 1/8 of the disk cache capacity (so up to 128MB based on new maximum capacity).
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveBuffer):
- Shared/CacheModel.cpp:
(WebKit::calculateURLCacheSizes):
- 9:36 PM Changeset in webkit [257040] by
-
- 2 edits in trunk/Source/WebKit
Use consistent capitalization and spacing in process-related feature names
https://bugs.webkit.org/show_bug.cgi?id=207989
Reviewed by Zalan Bujtas.
No new tests, we don't test feature flag names.
- Shared/WebPreferences.yaml: Adjust some feature names and descriptions.
- 7:51 PM Changeset in webkit [257039] by
-
- 32 edits in trunk
Add support for AudioSession handling in GPUProcess for capture
https://bugs.webkit.org/show_bug.cgi?id=207950
Reviewed by Eric Carlson.
Source/WebCore:
Add a dedicated interface for handling audio capture in session manager.
This was previoulsy PlatformMediaSessionClient, but this one is more related to audio/video rendering.
Use this new interface for MediaStreamTrack capture sources.
The session manager now owns a WeakHashSet of capture sources to compute the correct AudioSession category.
Modernize the code, for instance use an enum class for MediaType to remove some debug asserts.
Add a new PlatformMediaSessionManager::create that is used for sharedManager.
Remove the direct use of PlatformMediaSessionManager::sharedManager from classes that can be used outside of WebProcess.
This includes BaseAudioSharedUnit, for which we add a audioUnitWillStart callback
so that we compute the right AudioSession category before starting the capture.
Covered by existing tests and debug assertions to check for AudioSession category computation.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::isCapturingAudio const):
- Modules/mediastream/MediaStreamTrack.h:
- Modules/webaudio/AudioContext.h:
- html/HTMLAudioElement.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldDisableSleep const):
(WebCore::HTMLMediaElement::mediaType const):
(WebCore::HTMLMediaElement::presentationType const):
- html/HTMLVideoElement.h:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canShowControlsManager const):
- html/MediaElementSession.h:
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::activeAudioSessionRequired const):
- platform/audio/PlatformMediaSession.h:
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::sharedPlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::sharedManagerIfExists):
(WebCore::PlatformMediaSessionManager::create):
(WebCore::indexFromMediaType):
(WebCore::PlatformMediaSessionManager::resetRestrictions):
(WebCore::PlatformMediaSessionManager::has const):
(WebCore::PlatformMediaSessionManager::count const):
(WebCore::PlatformMediaSessionManager::countActiveAudioCaptureSources):
(WebCore::PlatformMediaSessionManager::addRestriction):
(WebCore::PlatformMediaSessionManager::removeRestriction):
(WebCore::PlatformMediaSessionManager::restrictions):
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::applicationWillBecomeInactive):
(WebCore::PlatformMediaSessionManager::applicationDidBecomeActive):
(WebCore::PlatformMediaSessionManager::applicationDidEnterBackground):
(WebCore::PlatformMediaSessionManager::applicationWillEnterForeground):
(WebCore::PlatformMediaSessionManager::sessionIsPlayingToWirelessPlaybackTargetChanged):
(WebCore::PlatformMediaSessionManager::addAudioCaptureSource):
(WebCore::PlatformMediaSessionManager::removeAudioCaptureSource):
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(PlatformMediaSessionManager::create):
(MediaSessionManagerCocoa::updateSessionState):
- platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::PlatformMediaSessionManager::create):
(WebCore::MediaSessionManageriOS::resetRestrictions):
- platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::audioUnitWillStart):
- platform/mediastream/MediaStreamTrackPrivate.h:
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
(WebCore::BaseAudioSharedUnit::startUnit):
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::audioUnitWillStart):
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- testing/Internals.cpp:
(WebCore::mediaTypeFromString):
(WebCore::Internals::setMediaSessionRestrictions):
(WebCore::Internals::mediaSessionRestrictions const):
Source/WebKit:
Create a session manager for the GPUConnectionToWebProcess.
Pass it to any audio capture source proxy.
For UIProcesss audio capture, we still use the shared manager.
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::sessionManager):
- GPUProcess/GPUConnectionToWebProcess.h:
- GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::setMockCaptureDevicesEnabled):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::createMediaSourceForCaptureDeviceWithConstraints):
(WebKit::UserMediaCaptureManagerProxy::clone):
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.h:
- UIProcess/WebProcessProxy.cpp:
LayoutTests:
- platform/ios/TestExpectations:
- 7:48 PM Changeset in webkit [257038] by
-
- 15 edits in branches/safari-609-branch
Apply patch. rdar://problem/59611912
- 7:48 PM Changeset in webkit [257037] by
-
- 17 edits in branches/safari-609-branch/Source/WebCore
Apply patch. rdar://problem/59611915
- 7:36 PM Changeset in webkit [257036] by
-
- 3 edits2 adds in trunk
Fix crash when Node::normalize() triggers mutation event that modifies child order
https://bugs.webkit.org/show_bug.cgi?id=207875
<rdar://58976682>
Patch by Sunny He <sunny_he@apple.com> on 2020-02-19
Reviewed by Ryosuke Niwa.
When Node::normalize() merges two text nodes, it calls appendData
before textNodesMerged. If there is a mutator event registered, it
will fire on the call to appendData, potentially changing the child
order and causing a nullptr crash due to incorrect sibling pointers.
Reverse the order of these calls to ensure order gets correctly
updated.
Source/WebCore:
Test: fast/dom/Node/normalize-mutation-event.html
- dom/Node.cpp:
(WebCore::Node::normalize):
LayoutTests:
- fast/dom/Node/normalize-mutation-event-expected.txt: Added.
- fast/dom/Node/normalize-mutation-event.html: Added.
- 7:25 PM Changeset in webkit [257035] by
-
- 73 edits in trunk/LayoutTests
[GTK][WPE] Gardening, update baselines of websocket tests
https://bugs.webkit.org/show_bug.cgi?id=207947
Unreviewed gardening.
- platform/gtk/http/tests/websocket/tests/hybi/broken-utf8-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/compressed-control-frame-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/fragmented-control-frame-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-error-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-maxlength-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/invalid-continuation-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/invalid-masked-frames-from-server-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/long-control-frame-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/long-invalid-header-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/reserved-bits-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/reserved-opcodes-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/too-long-payload-expected.txt:
- platform/gtk/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/broken-utf8-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/close-code-and-reason-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/compressed-control-frame-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/error-event-ready-state-non-existent-url-with-server-responding-404-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/fragmented-control-frame-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-error-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-extensions-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-invalid-http-version-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-maxlength-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-mismatch-protocol-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-more-accept-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-more-extensions-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-accept-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-connection-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-no-upgrade-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-accept-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-extensions-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-header-value-sec-websocket-protocol-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-non-ascii-status-line-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-null-char-in-status-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-prepended-null-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-fail-by-wrong-accept-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/handshake-ok-with-http-version-beyond-1_1-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/imported/blink/permessage-deflate-invalid-parameter-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/interleaved-fragments-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/invalid-continuation-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/invalid-encode-length-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/invalid-masked-frames-from-server-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/long-control-frame-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/long-invalid-header-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/network-process-crash-error-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/reserved-bits-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/reserved-opcodes-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/too-long-payload-expected.txt:
- platform/wpe/http/tests/websocket/tests/hybi/workers/close-code-and-reason-expected.txt:
- 7:01 PM Changeset in webkit [257034] by
-
- 4 edits1 add in trunk
Computed Properties with increment sometimes produces incorrect results
https://bugs.webkit.org/show_bug.cgi?id=170934
Reviewed by Yusuke Suzuki.
JSTests:
- stress/computed-property-increment.js: Added.
- test262/expectations.yaml: Mark two test cases as passing.
Source/JavaScriptCore:
When the key and value of a computed property each have side effects, the eval order should be key-before-value.
Not only have we had this backwards, we've also been giving them both the same target register.
- bytecompiler/NodesCodegen.cpp:
(JSC::PropertyListNode::emitPutConstantProperty):
- 7:00 PM Changeset in webkit [257033] by
-
- 4 edits in branches/safari-609-branch/Source/JavaScriptCore
Apply patch. rdar://problem/59611919
- 6:59 PM Changeset in webkit [257032] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r257013. rdar://problem/59614282
Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973
Reviewed by Chris Dumez.
Use RefPtr to store Frame*.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257013 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:59 PM Changeset in webkit [257031] by
-
- 9 edits2 adds in branches/safari-609-branch
Cherry-pick r256859. rdar://problem/59576018
[macOS] Web process may crash under ServicesOverlayController::buildPotentialHighlightsIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=207899
<rdar://problem/55658207>
Reviewed by Tim Horton and Simon Fraser.
Source/WebCore:
Mitigates a null pointer crash in ServicesOverlayController::buildPotentialHighlightsIfNeeded(), wherein the
focused frame may not have a FrameView when the ServicesOverlayController's selection invalidation timer fires.
This is possible if, while being focused, the newly focused subframe is unparented and reparented, which causes
it to momentarily have a null view. During this time, if a selection change had occurred earlier in the runloop,
it will schedule the page overlay controller invalidation timer, which will fire and discover that the currently
focused frame no longer has a FrameView.
Test: editing/selection/selection-change-in-disconnected-frame-crash.html
- page/mac/ServicesOverlayController.mm: (WebCore::ServicesOverlayController::buildSelectionHighlight):
Source/WebKit:
Add another missing null check on iOS, for the case where FrameView is null.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState const):
Tools:
Make it possible to run tests on macOS with services controls enabled, via a new TestOptions flag.
- WebKitTestRunner/TestController.cpp: (WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateWebView):
LayoutTests:
Add a new layout test to verify that we don't crash under this circumstance.
- editing/selection/selection-change-in-disconnected-frame-crash-expected.txt: Added.
- editing/selection/selection-change-in-disconnected-frame-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:59 PM Changeset in webkit [257030] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256790. rdar://problem/59576023
Data detectors do not trigger on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=207860
<rdar://problem/59038913>
Reviewed by Tim Horton.
The lookup gesture which run data detection needs touch information to function. Allow touches to be sent to the gesture.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256790 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:43 PM Changeset in webkit [257029] by
-
- 4 edits1 move in trunk/Source
[iOS] Rename NSUserDefaultsSPI.h
https://bugs.webkit.org/show_bug.cgi?id=207977
<rdar://problem/59609174>
Source/WebCore/PAL:
Reviewed by Brent Fulgham.
- PAL.xcodeproj/project.pbxproj:
- pal/spi/cocoa/NSUserDefaultsSPI.h: Removed.
- pal/spi/cocoa/UserDefaultsSPI.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/NSUserDefaultsSPI.h.
Source/WebKit:
Reviewed by Brent Fulgham.
No new tests, no behavior change.
- UIProcess/Cocoa/PreferenceObserver.h:
- 6:33 PM Changeset in webkit [257028] by
-
- 1 copy in tags/Safari-609.1.20.0.2
Tag Safari-609.1.20.0.2.
- 6:31 PM Changeset in webkit [257027] by
-
- 1 edit in branches/safari-609.1.20.0-branch/Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp
Unreviewed build fix.
- 6:29 PM Changeset in webkit [257026] by
-
- 8 edits in branches/safari-609.1.20.0-branch/Source
Versioning.
- 6:12 PM Changeset in webkit [257025] by
-
- 2 edits in trunk/Source/WebKit
NetworkCache should use 4KB threshold for mmap-ed files instead of 16KB
https://bugs.webkit.org/show_bug.cgi?id=207882
Reviewed by Alex Christensen.
We found that a lot of Vectors in Membuster is holding resource content. This is because we have 16KB threshold for mmap-ed files.
If a file is smaller than 16KB, it is copied to Vector instead. But this is costly in terms of memory. If we use mmap-ed files,
it becomes named-pages instead of anonymous-pages. File-backed non-dirty named-pages have a lot of benefit.
- The application is offering a hint that pages are file-backed. This means that OS can purge them at any time since the content can be recovered from the disk. This is cheaper than swapping / compressing anonymous pages since just discarding works.
- The application is offering a hint that pages have spatial locality. Purging pages in one named-pages region is better compared to purging the same # of anonymous pages randomly. Anonymous pages are split by malloc implementation and access pattern of pages in one VA is random. On the other hand, named-pages are accessed together because it is file, and file typically has sequential locality. And recovery of named pages are also cheap compared to anonymous pages since OS can prefetch pages once access happens because of sequential locality of files. This tendency makes OS like purging named pages instead of anonymous pages. In WebKit use case, this works perfectly. CachedResource typically has decoded content. So typically WebProcess does not access SharedBuffer after the content is decoded.
This patch reduces the threshold from 16KB to page size (4KB in macOS, 16KB in iOS). This is pre-2015 behavior.
This offers 2.56% progression with 98% probability in Membuster.
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::maximumInlineBodySize):
(WebKit::NetworkCache::estimateRecordsSize):
(WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):
- 6:09 PM Changeset in webkit [257024] by
-
- 7 edits in trunk/Tools
[Win][MiniBrowser] Add 'Go Home' menu item and toolbar button
https://bugs.webkit.org/show_bug.cgi?id=207749
Reviewed by Ross Kirsling.
Added "Set Default URL to Current URL" menu item like Mac MiniBrowser.
- MiniBrowser/win/MainWindow.cpp:
(MainWindow::createToolbar):
(MainWindow::WndProc):
(MainWindow::setDefaultURLToCurrentURL):
(MainWindow::goHome): Added.
(MainWindow::onURLBarEnter):
- MiniBrowser/win/MainWindow.h:
- MiniBrowser/win/MiniBrowserLib.rc:
- MiniBrowser/win/MiniBrowserLibResource.h:
- MiniBrowser/win/MiniBrowserReplace.h:
- MiniBrowser/win/WinMain.cpp:
(wWinMain):
- 5:55 PM Changeset in webkit [257023] by
-
- 1 copy in tags/Safari-609.1.20.0.1
Tag Safari-609.1.20.0.1.
- 5:54 PM Changeset in webkit [257022] by
-
- 1 delete in tags/Safari-609.1.20.0.1
Delete tag.
- 5:52 PM Changeset in webkit [257021] by
-
- 18 edits in branches/safari-609.1.20.0-branch
Apply patch. rdar://problem/59465474
- 5:52 PM Changeset in webkit [257020] by
-
- 26 edits in branches/safari-609.1.20.0-branch
Cherry-pick r256632. rdar://problem/59478906
NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747
Reviewed by Keith Miller.
Source/WebCore:
ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.
While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.
This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.
We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.
No behavior change.
- inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::buildObjectForTiming): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
- inspector/agents/InspectorNetworkAgent.h:
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::loadRequest):
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFinishLoading):
- page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::domainLookupStart const): (WebCore::PerformanceTiming::domainLookupEnd const): (WebCore::PerformanceTiming::connectStart const): (WebCore::PerformanceTiming::connectEnd const): (WebCore::PerformanceTiming::secureConnectionStart const): (WebCore::PerformanceTiming::requestStart const): (WebCore::PerformanceTiming::responseStart const):
- platform/network/NetworkLoadMetrics.h:
- platform/network/ParsedContentRange.cpp: (WebCore::areContentRangeValuesValid): (WebCore::parseContentRange): (WebCore::ParsedContentRange::ParsedContentRange): (WebCore::ParsedContentRange::headerValue const):
- platform/network/ParsedContentRange.h: (WebCore::ParsedContentRange::isValid const): (WebCore::ParsedContentRange::invalidValue): (WebCore::ParsedContentRange::MarkableTraits::isEmptyValue): (WebCore::ParsedContentRange::MarkableTraits::emptyValue): (WebCore::ParsedContentRange::ParsedContentRange): Deleted.
- platform/network/ResourceHandle.h:
- platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::ResourceResponseBase): (WebCore::ResourceResponseBase::crossThreadData const): (WebCore::ResourceResponseBase::fromCrossThreadData): (WebCore::ResourceResponseBase::compare):
- platform/network/ResourceResponseBase.h: (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const): (WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics): (WebCore::ResourceResponseBase::encode const): (WebCore::ResourceResponseBase::decode): (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.
- platform/network/cf/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse):
- platform/network/cocoa/NetworkLoadMetrics.mm: (WebCore::copyTimingData):
- platform/network/curl/CurlResourceHandleDelegate.cpp: (WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
- platform/network/curl/ResourceResponse.h:
- platform/network/curl/ResourceResponseCurl.cpp: (WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.
- platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::getConnectionTimingData):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Source/WebKit:
Add ArgumentCoder support for Box<T>.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<Box<T>>::encode): (IPC::ArgumentCoder<Box<T>>::decode):
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [257019] by
-
- 17 edits2 copies in branches/safari-609.1.20.0-branch/Source/WebCore
Cherry-pick r256610. rdar://problem/59478918
[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629
Reviewed by Simon Fraser.
Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.
In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.
Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.
No new test since this should not introduce any behavior change.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationEventBase.cpp: Added. (WebCore::AnimationEventBase::AnimationEventBase):
- animation/AnimationEventBase.h: Added. (WebCore::AnimationEventBase::create): (WebCore::AnimationEventBase::isAnimationPlaybackEvent const): (WebCore::AnimationEventBase::isAnimationEvent const): (WebCore::AnimationEventBase::isTransitionEvent const): (WebCore::AnimationEventBase::timelineTime const): (WebCore::AnimationEventBase::animation const):
- animation/AnimationPlaybackEvent.cpp: (WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent): (WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
- animation/AnimationPlaybackEvent.h:
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::createEvent):
- animation/CSSAnimation.h:
- animation/CSSTransition.cpp: (WebCore::CSSTransition::createEvent):
- animation/CSSTransition.h:
- animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::enqueueDOMEvent):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
- dom/AnimationEvent.cpp: (WebCore::AnimationEvent::AnimationEvent):
- dom/AnimationEvent.h:
- dom/TransitionEvent.cpp: (WebCore::TransitionEvent::TransitionEvent):
- dom/TransitionEvent.h:
- page/animation/CSSAnimationController.cpp: (WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [257018] by
-
- 4 edits2 adds in branches/safari-609.1.20.0-branch
Cherry-pick r256513. rdar://problem/59446986
REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866
Reviewed by Antti Koivisto.
Source/WebCore:
Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.
Test: fast/scrolling/programmatic-scroll-to-zero-zero.html
- page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::setRequestedScrollData):
LayoutTests:
Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.
- fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
- fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
- platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [257017] by
-
- 2 edits in branches/safari-609.1.20.0-branch/LayoutTests
Cherry-pick r256435. rdar://problem/59446986
REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207631
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256435 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [257016] by
-
- 3 edits in branches/safari-609.1.20.0-branch/Source/WebCore
Cherry-pick r256400. rdar://problem/59446986
Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [257015] by
-
- 29 edits4 copies6 adds in branches/safari-609.1.20.0-branch
Cherry-pick r256191. rdar://problem/59447003
Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136
Source/WebCore:
Reviewed by Brent Fulgham.
Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.
Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.
On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.
For all other ports, this restriction is enabled by default.
Tests: fast/url/relative2.html
fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html
- dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
- html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
- html/parser/HTMLPreloadScanner.h:
- page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
- page/SecurityPolicy.h:
- page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.
Source/WebKit:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
- UIProcess/Cocoa/VersionChecks.h:
Source/WebKitLegacy/mac:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Misc/WebKitVersionChecks.h:
- WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.
Source/WTF:
Reviewed by Brent Fulgham.
Add some more macro definitions.
- wtf/spi/darwin/dyldSPI.h:
LayoutTests:
RReviewed by Brent Fulgham.
Add some tests. Update others to toggle the setting to apply or unapply the new behavior.
The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.
- fast/url/relative-expected.txt:
- fast/url/relative.html:
- fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
- fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
- fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
- fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
- fetch/fetch-url-serialization-expected.txt:
- http/tests/plugins/navigation-during-load-embed.html:
- http/tests/plugins/navigation-during-load.html:
- http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
- http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
- http/tests/security/denied-base-url-data-url-expected.txt: Added.
- http/tests/security/denied-base-url-data-url.html: Added.
- http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
- http/tests/security/denied-base-url-javascript-url.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:51 PM Changeset in webkit [257014] by
-
- 43 edits5 adds in branches/safari-609.1.20.0-branch
Cherry-pick r255037. rdar://problem/59446986
Fixed elements no longer stay fixed with elastic overscroll
https://bugs.webkit.org/show_bug.cgi?id=206227
rdar://problem/58707084
Reviewed by Antti Koivisto.
Source/WebCore:
Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.
The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).
"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.
Internals::unconstrainedScrollTo() needs one weird hack to trigger a layout (and thus a scrolling tree commit),
because the layout is normally triggered by a layout viewport change, but when rubber-banding we clamp the layoutViewport
used for layout, so those layouts are never triggered.
Tests: tiled-drawing/scrolling/fixed/fixed-during-rubberband.html
tiled-drawing/scrolling/sticky/sticky-during-rubberband.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Element.cpp: (WebCore::Element::scrollTo):
- page/DOMWindow.cpp: (WebCore::DOMWindow::scrollTo const):
- page/FrameView.cpp: (WebCore::FrameView::setScrollPosition): (WebCore::FrameView::requestScrollPositionUpdate):
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.cpp:
- page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
- page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::setRequestedScrollData): (WebCore::ScrollingStateScrollingNode::dumpProperties const): (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition): Deleted.
- page/scrolling/ScrollingStateScrollingNode.h: (WebCore::RequestedScrollData::operator== const): (WebCore::ScrollingStateScrollingNode::requestedScrollData const): (WebCore::ScrollingStateScrollingNode::requestedScrollPosition const): Deleted. (WebCore::ScrollingStateScrollingNode::requestedScrollPositionRepresentsProgrammaticScroll const): Deleted.
- page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const): (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportRespectingRubberBanding const):
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren): (WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const): (WebCore::ScrollingTreeScrollingNode::scrollBy): (WebCore::ScrollingTreeScrollingNode::scrollTo): (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
- platform/ScrollTypes.cpp: Added. (WebCore::operator<<):
- platform/ScrollTypes.h:
- platform/ScrollView.cpp: (WebCore::ScrollView::setContentsScrollPosition): (WebCore::ScrollView::setScrollPosition):
- platform/ScrollView.h:
- platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
- platform/ScrollableArea.h: (WebCore::ScrollableArea::requestScrollPositionUpdate):
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset):
- testing/Internals.cpp: (WebCore::Internals::unconstrainedScrollTo):
Source/WebKit:
Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.
The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).
"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateScrollingNode>::encode): (ArgumentCoder<ScrollingStateScrollingNode>::decode): (ArgumentCoder<RequestedScrollData>::encode): (ArgumentCoder<RequestedScrollData>::decode): (WebKit::dump):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
LayoutTests:
- tiled-drawing/scrolling/fixed/fixed-during-rubberband-expected.html: Added.
- tiled-drawing/scrolling/fixed/fixed-during-rubberband.html: Added.
- tiled-drawing/scrolling/sticky/sticky-during-rubberband-expected.html: Added.
- tiled-drawing/scrolling/sticky/sticky-during-rubberband.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:50 PM Changeset in webkit [257013] by
-
- 2 edits in trunk/Source/WebKit
Crash in WebPageProxy::didStartProvisionalLoadForFrameShared
https://bugs.webkit.org/show_bug.cgi?id=207973
Reviewed by Chris Dumez.
Use RefPtr to store Frame*.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
- 5:27 PM Changeset in webkit [257012] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207978
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:26 PM Changeset in webkit [257011] by
-
- 1 copy in tags/Safari-609.1.20.1.1
Tag Safari-609.1.20.1.1.
- 5:26 PM Changeset in webkit [257010] by
-
- 1 delete in tags/Safari-609.1.20.1.1
Delete tag.
- 5:24 PM Changeset in webkit [257009] by
-
- 1 edit in branches/safari-609.1.20.1-branch/Source/WebKit/Shared/WebPreferences.yaml
Unreviewed build fix. rdar://problem/59576820
- 5:12 PM Changeset in webkit [257008] by
-
- 2 edits in trunk/Source/WebKit
Avoid preconnecting to custom URL schemes
https://bugs.webkit.org/show_bug.cgi?id=207964
Patch by Ben Nham <Ben Nham> on 2020-02-19
Reviewed by Ryosuke Niwa.
This makes NetworkProcess::preconnectTo not preconnect to custom URL schemes. This matches
the existing behavior in NetworkConnectionToWebProcess::preconnectTo.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
- 5:12 PM Changeset in webkit [257007] by
-
- 1 copy in tags/Safari-609.1.20.101.1
Tag Safari-609.1.20.101.1.
- 5:07 PM Changeset in webkit [257006] by
-
- 8 edits in branches/safari-609.1.20.101-branch/Source
Versioning.
- 5:01 PM Changeset in webkit [257005] by
-
- 1 copy in tags/Safari-609.1.20.1.1
Tag Safari-609.1.20.1.1.
- 4:59 PM Changeset in webkit [257004] by
-
- 1 copy in tags/Safari-609.1.20.0.1
Tag Safari-609.1.20.0.1.
- 4:57 PM Changeset in webkit [257003] by
-
- 5 edits in trunk
Fix check-webkit-style errors related to AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=207834
Reviewed by Daniel Bates.
Source/WebCore:
No new tests, no functional change.
Revert the change in r256770 regarding the headers ordering.
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
Tools:
Revert the change in r256770 regarding the headers ordering.
Headers in the same category should be in sorted order (case sensitive, as done by the command-line sort tool or the Xcode sort selection command).
- Scripts/webkitpy/style/checkers/cpp.py:
(check_include_line):
- 4:55 PM Changeset in webkit [257002] by
-
- 1 copy in tags/Safari-609.1.20.100.1
Tag Safari-609.1.20.100.1.
- 4:49 PM Changeset in webkit [257001] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Do not try to lay out a formatting context unless there's some content in it
https://bugs.webkit.org/show_bug.cgi?id=207956
<rdar://problem/59455700>
Reviewed by Simon Fraser.
LineLayout::layout() normally don't get called when the block level box has not children (canUse() returns false for such cases), but we are probably missing some invalidation here
so we end up with an "empty" formatting context.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
- 4:49 PM Changeset in webkit [257000] by
-
- 8 edits in branches/safari-609.1.20.100-branch/Source
Versioning.
- 4:48 PM Changeset in webkit [256999] by
-
- 3 edits in trunk/Source/WebCore
[First paint] Introduce FrameView::m_firstVisuallyNonEmptyLayoutMilestoneIsPending
https://bugs.webkit.org/show_bug.cgi?id=207966
<rdar://problem/59606528>
Reviewed by Simon Fraser.
This is in preparation for decoupling the "content is qualified as visually non-empty" check and layout, when
the check happens soon after style recalc/render tree building and we need to wait until after layout to
issue the milestone.
- page/FrameView.cpp:
(WebCore::FrameView::resetLayoutMilestones):
(WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
- page/FrameView.h:
- 4:45 PM Changeset in webkit [256998] by
-
- 1 delete in tags/Safari-609.1.20.0.1
Delete tag.
- 4:41 PM Changeset in webkit [256997] by
-
- 17 edits in branches/safari-609.1.20.0-branch/Source/WebCore
Revert r256989. rdar://problem/59298138
- 4:41 PM Changeset in webkit [256996] by
-
- 4 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Revert r256988. rdar://problem/59478911
- 4:41 PM Changeset in webkit [256995] by
-
- 13 edits in branches/safari-609.1.20.0-branch
Revert r256963. rdar://problem/59478837
- 4:40 PM Changeset in webkit [256994] by
-
- 1 copy in branches/safari-609.1.20.101-branch
New branch.
- 4:37 PM Changeset in webkit [256993] by
-
- 1 copy in branches/safari-609.1.20.100-branch
New branch.
- 4:29 PM Changeset in webkit [256992] by
-
- 15 edits in branches/safari-609.1.20.1-branch/Source/JavaScriptCore
Apply patch. rdar://problem/59576803
- 4:29 PM Changeset in webkit [256991] by
-
- 1 edit in branches/safari-609.1.20.1-branch/Source/JavaScriptCore/runtime/OptionsList.h
Apply patch. rdar://problem/59576777
- 3:59 PM Changeset in webkit [256990] by
-
- 1 copy in tags/Safari-609.1.20.0.1
Tag Safari-609.1.20.0.1.
- 3:56 PM Changeset in webkit [256989] by
-
- 17 edits in branches/safari-609.1.20.0-branch/Source/WebCore
Apply patch. rdar://problem/59298138
- 3:54 PM Changeset in webkit [256988] by
-
- 4 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Apply patch. rdar://problem/59478911
- 3:45 PM Changeset in webkit [256987] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] css3/selectors3/xml/css3-modsel-d1.xml is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207971
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:39 PM Changeset in webkit [256986] by
-
- 18 edits in branches/safari-609.1.20.1-branch
Apply patch. rdar://problem/59576808
- 3:39 PM Changeset in webkit [256985] by
-
- 34 edits2 adds in branches/safari-609.1.20.1-branch/Source
Apply patch. rdar://problem/59576778
- 3:38 PM Changeset in webkit [256984] by
-
- 2 edits in branches/safari-609.1.20.1-branch/Source/WebCore
Cherry-pick r256584. rdar://problem/59576819
MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>
Reviewed by Maciej Stachowiak.
- platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256983] by
-
- 11 edits in branches/safari-609.1.20.1-branch/Source
Cherry-pick r255881. rdar://problem/59576819
Adopt MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207275
<rdar://problem/58837093>
Reviewed by Eric Carlson.
Source/WebCore:
- platform/PlatformScreen.h:
- platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):
Source/WebCore/PAL:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
Source/WebKit:
The WebProcess sandbox can block access to the services necessary for MediaToolbox to determine whether
the current display is capable of displaying HDR. Rather than opening up the sandbox, provide the information
gathered by the UIProcess by way of MTOverrideShouldPlayHDRVideo().
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowScreenDidChange): (WebKit::WebPage::displayID const):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::setScreenProperties): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::setScreenProperties): (WebKit::WebProcess::updatePageScreenProperties):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256982] by
-
- 2 edits in branches/safari-609.1.20.1-branch/Source/JavaScriptCore
Cherry-pick r256898. rdar://problem/59576798
Unreviewed build fix.
- jit/JITThunks.cpp: (JSC::JITThunks::hostFunctionStub):
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609-branch@256898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256981] by
-
- 3 edits in branches/safari-609.1.20.1-branch/JSTests
Cherry-pick r256698. rdar://problem/59576809
Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727
Our inline WAT doesn't seem to like named blocks/branch targets.
- wasm/regress/llint-callee-saves-with-fast-memory.js:
- wasm/regress/llint-callee-saves-without-fast-memory.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256980] by
-
- 9 edits2 adds in branches/safari-609.1.20.1-branch
Cherry-pick r256665. rdar://problem/59576809
[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727
JSTests:
Reviewed by Mark Lam.
- wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
- wasm/regress/llint-callee-saves-without-fast-memory.js: Added.
Source/JavaScriptCore:
Reviewed by Mark Lam.
The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:
- When entering Wasm from JS, the wrapper must:
- Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
- Preserve the memory base in either mode, and the size for BoundsChecking.
- Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
- Changes to memoryBase and memorySize are visible to the caller. This means that:
- Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
- Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
- A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::addCall):
- wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::addCall):
- wasm/WasmCallee.cpp: (JSC::Wasm::LLIntCallee::calleeSaveRegisters):
- wasm/WasmCallingConvention.h:
- wasm/WasmLLIntPlan.cpp: (JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmMemoryInformation.cpp: (JSC::Wasm::PinnedRegisterInfo::get): (JSC::Wasm::getPinnedRegisters): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256979] by
-
- 4 edits in branches/safari-609.1.20.1-branch
Cherry-pick r256432. rdar://problem/59576791
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256978] by
-
- 4 edits in branches/safari-609.1.20.1-branch
Cherry-pick r256383. rdar://problem/59576791
Unreviewed, rolling out r256314.
https://bugs.webkit.org/show_bug.cgi?id=207594
It is breaking an API test (Requested by youenn on #webkit).
Reverted changeset:
"WebSWServerConnection::registerServiceWorkerClient is not
sending IPC message to UIProcess when it should"
https://bugs.webkit.org/show_bug.cgi?id=207537
https://trac.webkit.org/changeset/256314
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256977] by
-
- 9 edits1 add in branches/safari-609.1.20.1-branch
Cherry-pick r256779. rdar://problem/59576798
[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715
Reviewed by Darin Adler.
JSTests:
- stress/stress-jitthunks.js: Added. (let.set newGlobal): (set catch):
Source/JavaScriptCore:
This patch refines JITThunks GC-aware Weak hash map for NativeExecutable. Previously, we have
HashMap<std::tuple<TaggedNativeFunction, TaggedNativeFunction, String>, Weak<NativeExecutable>> table.
But this is not good because the first tuple's information is already in NativeExecutable.
But we were using this design since Weak<NativeExecutable> can be nullified because of Weak<>. If this
happens, we could have invalid Entry in HashMap which does not have corresponding values. This will
cause crash when rehasing requires hash code for this entry.
But this HashMap is very bad in terms of memory usage. Each entry has 32 bytes, and this table gets enough
large. We identified that this table is consuming much memory in Membuster. So it is worth designing
carefully crafted data structure which only holds Weak<NativeExecutable> by leveraging the deep interaction
with our GC implementation.
This patch implements new design of JITThunks, which uses HashSet<Weak<NativeExecutable>> and carefully crafted
HashTraits / KeyTraits to handle Weak<> well.
- Each Weak should have finalizer, and this finalizer should remove dead Weak<NativeExecutable> from HashSet.
This is ensuring that all the keys in HashSet is, even if Weak<> is saying it is Dead, it still has an way
to access content of NativeExecutable if the content is not a JS objects. For example, we can get function
pointer from dead Weak<NativeExecutable> if it is not yet finalized. Since we remove all finalized Weak<>
from the table, this finalizer mechanism allows us to access function pointers etc. from Weak<NativeExecutable>
so long as it is held in this table.
- Getting NativeExecutable* from JITThunks should have special protocol.
When getting NativeExecutable* from JITThunks, we do the following,
- First, we check we have an Entry in JITThunks. If it does not exist, we should insert it anyway.
1.1. If it exists, we should check whether this Weak<NativeExecutable> is dead or not. It is possible that
dead one is still in the table because "dead" does not mean that it is "finalized". Until finalizing happens (and
it can be delayed by incremental-sweeper), Weak<NativeExecutable> can be dead but still accessible. So the table
is still holding dead one. If we get dead one, we should insert a new one.
1.2. If it is not dead, we return it.
- Second, we create a new NativeExecutable and insert it. In that case, it is possible that the table already has Weak<NativeExecutable>, but it is dead. In that case, we need to explicitly replace it with newly created one since old one is holding old content. If we replaced, finalizer of Weak<> will not be invoked since it immediately deallocates Weak<>. So, it does not happen that this newly inserted NativeExecutable* is removed by the finalizer registered by the old Weak<>.
This change makes memory usage of JITThunks table 1/4.
- heap/Weak.cpp: (JSC::weakClearSlowCase):
- heap/Weak.h: (JSC::Weak::Weak): (JSC::Weak::isHashTableEmptyValue const): (JSC::Weak::unsafeImpl const): (WTF::HashTraits<JSC::Weak<T>>::isEmptyValue):
- heap/WeakInlines.h: (JSC::Weak<T>::Weak):
- jit/JITThunks.cpp: (JSC::JITThunks::JITThunks): (JSC::JITThunks::WeakNativeExecutableHash::hash): (JSC::JITThunks::WeakNativeExecutableHash::equal): (JSC::JITThunks::HostKeySearcher::hash): (JSC::JITThunks::HostKeySearcher::equal): (JSC::JITThunks::NativeExecutableTranslator::hash): (JSC::JITThunks::NativeExecutableTranslator::equal): (JSC::JITThunks::NativeExecutableTranslator::translate): (JSC::JITThunks::finalize): (JSC::JITThunks::hostFunctionStub): (JSC::JITThunks::clearHostFunctionStubs): Deleted.
- jit/JITThunks.h:
- runtime/NativeExecutable.h:
- tools/JSDollarVM.cpp: (JSC::functionGCSweepAsynchronously): (JSC::functionCreateEmptyFunctionWithName): (JSC::JSDollarVM::finishCreation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256976] by
-
- 3 edits1 add in branches/safari-609.1.20.1-branch
Cherry-pick r256766. rdar://problem/59576813
[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
JSTests:
- wasm/regress/regress-256665.js: Added. (f):
Source/JavaScriptCore:
When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.
- wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:38 PM Changeset in webkit [256975] by
-
- 26 edits in branches/safari-609.1.20.1-branch
Cherry-pick r256632. rdar://problem/59576783
NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747
Reviewed by Keith Miller.
Source/WebCore:
ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.
While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.
This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.
We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.
No behavior change.
- inspector/agents/InspectorNetworkAgent.cpp: (WebCore::InspectorNetworkAgent::buildObjectForTiming): (WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
- inspector/agents/InspectorNetworkAgent.h:
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::loadRequest):
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::didFinishLoading):
- page/PerformanceTiming.cpp: (WebCore::PerformanceTiming::domainLookupStart const): (WebCore::PerformanceTiming::domainLookupEnd const): (WebCore::PerformanceTiming::connectStart const): (WebCore::PerformanceTiming::connectEnd const): (WebCore::PerformanceTiming::secureConnectionStart const): (WebCore::PerformanceTiming::requestStart const): (WebCore::PerformanceTiming::responseStart const):
- platform/network/NetworkLoadMetrics.h:
- platform/network/ParsedContentRange.cpp: (WebCore::areContentRangeValuesValid): (WebCore::parseContentRange): (WebCore::ParsedContentRange::ParsedContentRange): (WebCore::ParsedContentRange::headerValue const):
- platform/network/ParsedContentRange.h: (WebCore::ParsedContentRange::isValid const): (WebCore::ParsedContentRange::invalidValue): (WebCore::ParsedContentRange::MarkableTraits::isEmptyValue): (WebCore::ParsedContentRange::MarkableTraits::emptyValue): (WebCore::ParsedContentRange::ParsedContentRange): Deleted.
- platform/network/ResourceHandle.h:
- platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::ResourceResponseBase): (WebCore::ResourceResponseBase::crossThreadData const): (WebCore::ResourceResponseBase::fromCrossThreadData): (WebCore::ResourceResponseBase::compare):
- platform/network/ResourceResponseBase.h: (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const): (WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics): (WebCore::ResourceResponseBase::encode const): (WebCore::ResourceResponseBase::decode): (WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.
- platform/network/cf/ResourceResponse.h: (WebCore::ResourceResponse::ResourceResponse):
- platform/network/cocoa/NetworkLoadMetrics.mm: (WebCore::copyTimingData):
- platform/network/curl/CurlResourceHandleDelegate.cpp: (WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
- platform/network/curl/ResourceResponse.h:
- platform/network/curl/ResourceResponseCurl.cpp: (WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.
- platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::getConnectionTimingData):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Source/WebKit:
Add ArgumentCoder support for Box<T>.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- Platform/IPC/ArgumentCoders.h: (IPC::ArgumentCoder<Box<T>>::encode): (IPC::ArgumentCoder<Box<T>>::decode):
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256632 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256974] by
-
- 17 edits2 copies in branches/safari-609.1.20.1-branch/Source/WebCore
Cherry-pick r256610. rdar://problem/59576806
[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629
Reviewed by Simon Fraser.
Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.
In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.
Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.
No new test since this should not introduce any behavior change.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationEventBase.cpp: Added. (WebCore::AnimationEventBase::AnimationEventBase):
- animation/AnimationEventBase.h: Added. (WebCore::AnimationEventBase::create): (WebCore::AnimationEventBase::isAnimationPlaybackEvent const): (WebCore::AnimationEventBase::isAnimationEvent const): (WebCore::AnimationEventBase::isTransitionEvent const): (WebCore::AnimationEventBase::timelineTime const): (WebCore::AnimationEventBase::animation const):
- animation/AnimationPlaybackEvent.cpp: (WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent): (WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
- animation/AnimationPlaybackEvent.h:
- animation/CSSAnimation.cpp: (WebCore::CSSAnimation::createEvent):
- animation/CSSAnimation.h:
- animation/CSSTransition.cpp: (WebCore::CSSTransition::createEvent):
- animation/CSSTransition.h:
- animation/DeclarativeAnimation.cpp: (WebCore::DeclarativeAnimation::enqueueDOMEvent):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
- dom/AnimationEvent.cpp: (WebCore::AnimationEvent::AnimationEvent):
- dom/AnimationEvent.h:
- dom/TransitionEvent.cpp: (WebCore::TransitionEvent::TransitionEvent):
- dom/TransitionEvent.h:
- page/animation/CSSAnimationController.cpp: (WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256973] by
-
- 4 edits2 adds in branches/safari-609.1.20.1-branch
Cherry-pick r256513. rdar://problem/59576794
REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866
Reviewed by Antti Koivisto.
Source/WebCore:
Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.
Test: fast/scrolling/programmatic-scroll-to-zero-zero.html
- page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::setRequestedScrollData):
LayoutTests:
Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.
- fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
- fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
- platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256972] by
-
- 2 edits in branches/safari-609.1.20.1-branch/Source/WebKit
Cherry-pick r256426. rdar://problem/59576790
[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
<rdar://problem/59325466>
Reviewed by Chris Dumez.
Covered by existing tests.
- NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::writeSizeFile): Make sure completion handler is always called on the main thread. Minor refactoring to make things more efficient.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256426 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256971] by
-
- 3 edits in branches/safari-609.1.20.1-branch/Source/WebCore
Cherry-pick r256400. rdar://problem/59576794
Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256970] by
-
- 4 edits in branches/safari-609.1.20.1-branch
Cherry-pick r256314. rdar://problem/59576791
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256969] by
-
- 29 edits4 copies6 adds in branches/safari-609.1.20.1-branch
Cherry-pick r256191. rdar://problem/59576820
Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136
Source/WebCore:
Reviewed by Brent Fulgham.
Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.
Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.
On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.
For all other ports, this restriction is enabled by default.
Tests: fast/url/relative2.html
fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html
- dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
- html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
- html/parser/HTMLPreloadScanner.h:
- page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
- page/SecurityPolicy.h:
- page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.
Source/WebKit:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
- UIProcess/Cocoa/VersionChecks.h:
Source/WebKitLegacy/mac:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Misc/WebKitVersionChecks.h:
- WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.
Source/WTF:
Reviewed by Brent Fulgham.
Add some more macro definitions.
- wtf/spi/darwin/dyldSPI.h:
LayoutTests:
RReviewed by Brent Fulgham.
Add some tests. Update others to toggle the setting to apply or unapply the new behavior.
The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.
- fast/url/relative-expected.txt:
- fast/url/relative.html:
- fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
- fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
- fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
- fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
- fetch/fetch-url-serialization-expected.txt:
- http/tests/plugins/navigation-during-load-embed.html:
- http/tests/plugins/navigation-during-load.html:
- http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
- http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
- http/tests/security/denied-base-url-data-url-expected.txt: Added.
- http/tests/security/denied-base-url-data-url.html: Added.
- http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
- http/tests/security/denied-base-url-javascript-url.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:37 PM Changeset in webkit [256968] by
-
- 44 edits5 adds in branches/safari-609.1.20.1-branch
Cherry-pick r255037. rdar://problem/59576794
Fixed elements no longer stay fixed with elastic overscroll
https://bugs.webkit.org/show_bug.cgi?id=206227
rdar://problem/58707084
Reviewed by Antti Koivisto.
Source/WebCore:
Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.
The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).
"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.
Internals::unconstrainedScrollTo() needs one weird hack to trigger a layout (and thus a scrolling tree commit),
because the layout is normally triggered by a layout viewport change, but when rubber-banding we clamp the layoutViewport
used for layout, so those layouts are never triggered.
Tests: tiled-drawing/scrolling/fixed/fixed-during-rubberband.html
tiled-drawing/scrolling/sticky/sticky-during-rubberband.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/Element.cpp: (WebCore::Element::scrollTo):
- page/DOMWindow.cpp: (WebCore::DOMWindow::scrollTo const):
- page/FrameView.cpp: (WebCore::FrameView::setScrollPosition): (WebCore::FrameView::requestScrollPositionUpdate):
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp: (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
- page/scrolling/AsyncScrollingCoordinator.h:
- page/scrolling/ScrollingCoordinator.cpp:
- page/scrolling/ScrollingCoordinator.h: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
- page/scrolling/ScrollingStateScrollingNode.cpp: (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode): (WebCore::ScrollingStateScrollingNode::setRequestedScrollData): (WebCore::ScrollingStateScrollingNode::dumpProperties const): (WebCore::ScrollingStateScrollingNode::setRequestedScrollPosition): Deleted.
- page/scrolling/ScrollingStateScrollingNode.h: (WebCore::RequestedScrollData::operator== const): (WebCore::ScrollingStateScrollingNode::requestedScrollData const): (WebCore::ScrollingStateScrollingNode::requestedScrollPosition const): Deleted. (WebCore::ScrollingStateScrollingNode::requestedScrollPositionRepresentsProgrammaticScroll const): Deleted.
- page/scrolling/ScrollingTree.h: (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
- page/scrolling/ScrollingTreeFrameScrollingNode.cpp: (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportForScrollPosition const): (WebCore::ScrollingTreeFrameScrollingNode::layoutViewportRespectingRubberBanding const):
- page/scrolling/ScrollingTreeFrameScrollingNode.h:
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::commitStateAfterChildren): (WebCore::ScrollingTreeScrollingNode::adjustedScrollPosition const): (WebCore::ScrollingTreeScrollingNode::scrollBy): (WebCore::ScrollingTreeScrollingNode::scrollTo): (WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: (WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustedScrollPosition const):
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.h:
- page/scrolling/mac/ScrollingTreeOverflowScrollingNodeMac.mm: (WebCore::ScrollingTreeOverflowScrollingNodeMac::commitStateAfterChildren): (WebCore::ScrollingTreeOverflowScrollingNodeMac::adjustedScrollPosition const):
- page/scrolling/mac/ScrollingTreeScrollingNodeDelegateMac.mm: (WebCore::ScrollingTreeScrollingNodeDelegateMac::immediateScrollByWithoutContentEdgeConstraints):
- platform/ScrollTypes.cpp: Added. (WebCore::operator<<):
- platform/ScrollTypes.h:
- platform/ScrollView.cpp: (WebCore::ScrollView::setContentsScrollPosition): (WebCore::ScrollView::setScrollPosition):
- platform/ScrollView.h:
- platform/ScrollableArea.cpp: (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
- platform/ScrollableArea.h: (WebCore::ScrollableArea::requestScrollPositionUpdate):
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::scrollToOffset):
- testing/Internals.cpp: (WebCore::Internals::unconstrainedScrollTo):
Source/WebKit:
Intended behavior on iOS and macOS is for position:fixed and sticky elements to maintain
their position relative to the view bounds when rubber-banding ("overscrolling"). This broke
some time back. This change restores the correct behavior with the call to layoutViewportRespectingRubberBanding()
in ScrollingTreeFixedNode::applyLayerPositions() and ScrollingTreeStickyNode::computeLayerPosition().
layoutViewportRespectingRubberBanding() computes a layout viewport without clamping.
The rest of the changes are to support testing. internals.unconstrainedScrollTo()
didn't work for main frame scrolling because of scroll position clamping in various places,
so propagate ScrollClamping in more places (and replace the redundant ScrollPositionClamp with ScrollClamping).
"requested scroll position" updates now carry along both clamping and "is programmatic" data, wrapped in a struct
which is passed around the scrolling tree. This allows us to not clamp the scroll position (for testing) in more places.
- Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp: (ArgumentCoder<ScrollingStateScrollingNode>::encode): (ArgumentCoder<ScrollingStateScrollingNode>::decode): (ArgumentCoder<RequestedScrollData>::encode): (ArgumentCoder<RequestedScrollData>::decode): (WebKit::dump):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp: (WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
- UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp: (WebKit::RemoteScrollingTree::scrollingTreeNodeRequestsScroll):
- UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
- UIProcess/RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS.mm: (WebKit::ScrollingTreeFrameScrollingNodeRemoteIOS::commitStateAfterChildren):
- UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm: (WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):
LayoutTests:
- tiled-drawing/scrolling/fixed/fixed-during-rubberband-expected.html: Added.
- tiled-drawing/scrolling/fixed/fixed-during-rubberband.html: Added.
- tiled-drawing/scrolling/sticky/sticky-during-rubberband-expected.html: Added.
- tiled-drawing/scrolling/sticky/sticky-during-rubberband.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:33 PM Changeset in webkit [256967] by
-
- 10 edits in trunk/Source/WebKit
Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>
Reviewed by Alex Christensen.
NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).
To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting):
(WebKit::NetworkProcess::setCacheModel):
- NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::cacheModel const):
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::initialize):
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::computeCapacity):
(WebKit::NetworkCache::Cache::open):
(WebKit::NetworkCache::Cache::capacity const):
(WebKit::NetworkCache::Cache::updateCapacity):
(WebKit::NetworkCache::Cache::setCapacity): Deleted.
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::open):
(WebKit::NetworkCache::Storage::Storage):
(WebKit::NetworkCache::Storage::setCapacity):
- NetworkProcess/cache/NetworkCacheStorage.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setCacheModel):
- 3:24 PM Changeset in webkit [256966] by
-
- 3 edits in trunk/LayoutTests
[GTK] More media tests gardening
https://bugs.webkit.org/show_bug.cgi?id=207965
Unreviewed test gardening.
- platform/gtk-wayland/TestExpectations:
- platform/gtk/TestExpectations:
- 3:14 PM Changeset in webkit [256965] by
-
- 2 edits in trunk/LayoutTests
Flaky Test: editing/spelling/spellcheck-attribute.html
https://bugs.webkit.org/show_bug.cgi?id=206178
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Mark test as flaky on Mojave so
since the commit queue bots keep hitting it.
- 3:09 PM Changeset in webkit [256964] by
-
- 1 copy in tags/Safari-609.1.20.2.2
Tag Safari-609.1.20.2.2.
- 3:08 PM Changeset in webkit [256963] by
-
- 13 edits in branches/safari-609.1.20.0-branch
Apply patch. rdar://problem/59478837
- 3:08 PM Changeset in webkit [256962] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Cherry-pick r256898. rdar://problem/59551695
Unreviewed build fix.
- jit/JITThunks.cpp: (JSC::JITThunks::hostFunctionStub):
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-609-branch@256898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:08 PM Changeset in webkit [256961] by
-
- 9 edits1 add in branches/safari-609.1.20.0-branch
Cherry-pick r256779. rdar://problem/59551695
[JSC] JITThunk should be HashSet<Weak<NativeExecutable>> with appropriate GC weakness handling
https://bugs.webkit.org/show_bug.cgi?id=207715
Reviewed by Darin Adler.
JSTests:
- stress/stress-jitthunks.js: Added. (let.set newGlobal): (set catch):
Source/JavaScriptCore:
This patch refines JITThunks GC-aware Weak hash map for NativeExecutable. Previously, we have
HashMap<std::tuple<TaggedNativeFunction, TaggedNativeFunction, String>, Weak<NativeExecutable>> table.
But this is not good because the first tuple's information is already in NativeExecutable.
But we were using this design since Weak<NativeExecutable> can be nullified because of Weak<>. If this
happens, we could have invalid Entry in HashMap which does not have corresponding values. This will
cause crash when rehasing requires hash code for this entry.
But this HashMap is very bad in terms of memory usage. Each entry has 32 bytes, and this table gets enough
large. We identified that this table is consuming much memory in Membuster. So it is worth designing
carefully crafted data structure which only holds Weak<NativeExecutable> by leveraging the deep interaction
with our GC implementation.
This patch implements new design of JITThunks, which uses HashSet<Weak<NativeExecutable>> and carefully crafted
HashTraits / KeyTraits to handle Weak<> well.
- Each Weak should have finalizer, and this finalizer should remove dead Weak<NativeExecutable> from HashSet.
This is ensuring that all the keys in HashSet is, even if Weak<> is saying it is Dead, it still has an way
to access content of NativeExecutable if the content is not a JS objects. For example, we can get function
pointer from dead Weak<NativeExecutable> if it is not yet finalized. Since we remove all finalized Weak<>
from the table, this finalizer mechanism allows us to access function pointers etc. from Weak<NativeExecutable>
so long as it is held in this table.
- Getting NativeExecutable* from JITThunks should have special protocol.
When getting NativeExecutable* from JITThunks, we do the following,
- First, we check we have an Entry in JITThunks. If it does not exist, we should insert it anyway.
1.1. If it exists, we should check whether this Weak<NativeExecutable> is dead or not. It is possible that
dead one is still in the table because "dead" does not mean that it is "finalized". Until finalizing happens (and
it can be delayed by incremental-sweeper), Weak<NativeExecutable> can be dead but still accessible. So the table
is still holding dead one. If we get dead one, we should insert a new one.
1.2. If it is not dead, we return it.
- Second, we create a new NativeExecutable and insert it. In that case, it is possible that the table already has Weak<NativeExecutable>, but it is dead. In that case, we need to explicitly replace it with newly created one since old one is holding old content. If we replaced, finalizer of Weak<> will not be invoked since it immediately deallocates Weak<>. So, it does not happen that this newly inserted NativeExecutable* is removed by the finalizer registered by the old Weak<>.
This change makes memory usage of JITThunks table 1/4.
- heap/Weak.cpp: (JSC::weakClearSlowCase):
- heap/Weak.h: (JSC::Weak::Weak): (JSC::Weak::isHashTableEmptyValue const): (JSC::Weak::unsafeImpl const): (WTF::HashTraits<JSC::Weak<T>>::isEmptyValue):
- heap/WeakInlines.h: (JSC::Weak<T>::Weak):
- jit/JITThunks.cpp: (JSC::JITThunks::JITThunks): (JSC::JITThunks::WeakNativeExecutableHash::hash): (JSC::JITThunks::WeakNativeExecutableHash::equal): (JSC::JITThunks::HostKeySearcher::hash): (JSC::JITThunks::HostKeySearcher::equal): (JSC::JITThunks::NativeExecutableTranslator::hash): (JSC::JITThunks::NativeExecutableTranslator::equal): (JSC::JITThunks::NativeExecutableTranslator::translate): (JSC::JITThunks::finalize): (JSC::JITThunks::hostFunctionStub): (JSC::JITThunks::clearHostFunctionStubs): Deleted.
- jit/JITThunks.h:
- runtime/NativeExecutable.h:
- tools/JSDollarVM.cpp: (JSC::functionGCSweepAsynchronously): (JSC::functionCreateEmptyFunctionWithName): (JSC::JSDollarVM::finishCreation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256779 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256960] by
-
- 3 edits1 add in branches/safari-609.1.20.0-branch
Cherry-pick r256766. rdar://problem/59551706
[Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
JSTests:
- wasm/regress/regress-256665.js: Added. (f):
Source/JavaScriptCore:
When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.
- wasm/js/WebAssemblyFunction.cpp: (JSC::WebAssemblyFunction::calleeSaves const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256766 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256959] by
-
- 3 edits in branches/safari-609.1.20.0-branch/JSTests
Cherry-pick r256698. rdar://problem/59551715
Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727
Our inline WAT doesn't seem to like named blocks/branch targets.
- wasm/regress/llint-callee-saves-with-fast-memory.js:
- wasm/regress/llint-callee-saves-without-fast-memory.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256698 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256958] by
-
- 9 edits2 adds in branches/safari-609.1.20.0-branch
Cherry-pick r256665. rdar://problem/59551715
[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727
JSTests:
Reviewed by Mark Lam.
- wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
- wasm/regress/llint-callee-saves-without-fast-memory.js: Added.
Source/JavaScriptCore:
Reviewed by Mark Lam.
The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:
- When entering Wasm from JS, the wrapper must:
- Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
- Preserve the memory base in either mode, and the size for BoundsChecking.
- Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
- Changes to memoryBase and memorySize are visible to the caller. This means that:
- Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
- Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
- A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp: (JSC::Wasm::AirIRGenerator::addCall):
- wasm/WasmB3IRGenerator.cpp: (JSC::Wasm::B3IRGenerator::addCall):
- wasm/WasmCallee.cpp: (JSC::Wasm::LLIntCallee::calleeSaveRegisters):
- wasm/WasmCallingConvention.h:
- wasm/WasmLLIntPlan.cpp: (JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmMemoryInformation.cpp: (JSC::Wasm::PinnedRegisterInfo::get): (JSC::Wasm::getPinnedRegisters): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256665 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256957] by
-
- 4 edits in branches/safari-609.1.20.0-branch
Cherry-pick r256432. rdar://problem/59446974
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256956] by
-
- 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit
Cherry-pick r256426. rdar://problem/59447008
[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
<rdar://problem/59325466>
Reviewed by Chris Dumez.
Covered by existing tests.
- NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::writeSizeFile): Make sure completion handler is always called on the main thread. Minor refactoring to make things more efficient.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256426 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256955] by
-
- 4 edits in branches/safari-609.1.20.0-branch
Cherry-pick r256383. rdar://problem/59446974
Unreviewed, rolling out r256314.
https://bugs.webkit.org/show_bug.cgi?id=207594
It is breaking an API test (Requested by youenn on #webkit).
Reverted changeset:
"WebSWServerConnection::registerServiceWorkerClient is not
sending IPC message to UIProcess when it should"
https://bugs.webkit.org/show_bug.cgi?id=207537
https://trac.webkit.org/changeset/256314
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256383 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256954] by
-
- 4 edits in branches/safari-609.1.20.0-branch
Cherry-pick r256314. rdar://problem/59446974
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::registerServiceWorkerClient): Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:07 PM Changeset in webkit [256953] by
-
- 1 edit in branches/safari-609.1.20.0-branch/Source/JavaScriptCore/runtime/OptionsList.h
Apply patch. rdar://problem/59447266
- 3:07 PM Changeset in webkit [256952] by
-
- 34 edits2 adds in branches/safari-609.1.20.0-branch/Source
Apply patch. rdar://problem/59447004
- 3:07 PM Changeset in webkit [256951] by
-
- 15 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore
Apply patch. rdar://problem/59446991
- 2:19 PM Changeset in webkit [256950] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] accessibility/mac/aria-menu-item-selected-notification.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207962
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:10 PM Changeset in webkit [256949] by
-
- 2 edits in trunk/Source/WebCore
[mac debug] Regression: http/tests/websocket/tests/hybi/workers/worker-reload.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=207940
<rdar://problem/59592000>
Reviewed by Chris Dumez.
Covered by debug asserts.
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::connect):
Pass registrable domain instead of URL.
Isolate copy the domain before hopping to main thread for extra protection.
- 2:02 PM Changeset in webkit [256948] by
-
- 6 edits in trunk/Source/WebKitLegacy
[iOS][LegacyWebKit] Override EditorClient::shouldRevealCurrentSelectionAfterInsertion()
https://bugs.webkit.org/show_bug.cgi?id=207955
<rdar://problem/59602916>
Reviewed by Wenson Hsieh.
Source/WebKitLegacy/ios:
Adds a stub function for -shouldRevealCurrentSelectionAfterInsertion that returns YES,
to keep our current behavior.
- DefaultDelegates/WebDefaultUIKitDelegate.m:
(-[WebDefaultUIKitDelegate shouldRevealCurrentSelectionAfterInsertion]): Added.
- WebView/WebUIKitDelegate.h:
Source/WebKitLegacy/mac:
Wire up EditorClient::shouldRevealCurrentSelectionAfterInsertion() in Legacy WebKit. This
allows Legacy WebKit clients to toggle whether the current selection is revealed after
an insertion, which they may want to do to achieve a desired UI effect.
- WebCoreSupport/WebEditorClient.h:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::shouldRevealCurrentSelectionAfterInsertion const): Added. Ask the _UIKitDelegateForwarder
if it responds to -shouldRevealCurrentSelectionAfterInsertion. If it does then return its
response. Otherwise, return true to do what we do now: reveal the current selection after
an insertion.
- 1:54 PM Changeset in webkit [256947] by
-
- 2 edits in trunk/LayoutTests
[GTK] Layout Test media/track/audio-track.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=134573
Unreviewed test gardening.
This test has not timeout (on its own) since r180689 (Feb 2015) other
than 4 timeouts on a bot hiccup up to r2545640 with other media tests.
Updating its expectation to reflect the new behavior affected by
bug198830.
- platform/gtk/TestExpectations:
- 1:43 PM Changeset in webkit [256946] by
-
- 1 copy in tags/Safari-609.1.20.3.2
Tag Safari-609.1.20.3.2.
- 1:42 PM Changeset in webkit [256945] by
-
- 29 edits4 copies6 adds in branches/safari-609.1.20.3-branch
Cherry-pick r256191. rdar://problem/59576822
Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136
Source/WebCore:
Reviewed by Brent Fulgham.
Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.
Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.
On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.
For all other ports, this restriction is enabled by default.
Tests: fast/url/relative2.html
fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html
- dom/Document.cpp: (WebCore::Document::processBaseElement): Condition updating the parsed base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise, do what we do now. If the scheme is disallowed then log a message to the console to explain this to web developers.
- html/parser/HTMLPreloadScanner.cpp: (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL to updatePredictedBaseURL(). This depends on whether the setting is enabled or not. (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to whether to apply restrictions. If restrictions are not to be applied do what we do now. Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
- html/parser/HTMLPreloadScanner.h:
- page/SecurityPolicy.cpp: (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
- page/SecurityPolicy.h:
- page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.
Source/WebKit:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WKWebView _setupPageConfiguration:]): Update settings.
- UIProcess/Cocoa/VersionChecks.h:
Source/WebKitLegacy/mac:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Misc/WebKitVersionChecks.h:
- WebView/WebView.mm: (shouldRestrictBaseURLSchemes): Added. (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.
Source/WTF:
Reviewed by Brent Fulgham.
Add some more macro definitions.
- wtf/spi/darwin/dyldSPI.h:
LayoutTests:
RReviewed by Brent Fulgham.
Add some tests. Update others to toggle the setting to apply or unapply the new behavior.
The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.
- fast/url/relative-expected.txt:
- fast/url/relative.html:
- fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
- fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
- fast/url/resources/utilities.js: (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching. Otherwise, file URLs could be machine-specific. (canonicalizedPathname): Added. (segments): Modified to optionally call canonicalizedPathname. (canonicalize): Ditto.
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
- fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
- fetch/fetch-url-serialization-expected.txt:
- http/tests/plugins/navigation-during-load-embed.html:
- http/tests/plugins/navigation-during-load.html:
- http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
- http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
- http/tests/security/denied-base-url-data-url-expected.txt: Added.
- http/tests/security/denied-base-url-data-url.html: Added.
- http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
- http/tests/security/denied-base-url-javascript-url.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256191 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:40 PM Changeset in webkit [256944] by
-
- 8 edits in branches/safari-609.1.20.1-branch/Source
Versioning.
- 1:34 PM Changeset in webkit [256943] by
-
- 8 edits in branches/safari-609.1.20.3-branch/Source
Versioning.
- 1:31 PM Changeset in webkit [256942] by
-
- 4 edits1 add in branches/safari-609.1.20.2-branch
Cherry-pick r256225. rdar://problem/59446983
[watchOS] Notification listener is never unregistered
https://bugs.webkit.org/show_bug.cgi?id=207459
Source/WebKit:
<rdar://problem/58923393>
Reviewed by Maciej Stachowiak.
On watchOS, the backlight changed notification is registered in WebProcessPool::registerNotificationObservers(),
but not unregistered in WebProcessPool::unregisterNotificationObservers().
API test: WebKit.BacklightLevelNotificationCrash
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::unregisterNotificationObservers):
Tools:
Reviewed by Maciej Stachowiak.
Add a test which tests that posting a backlight level change notification will not cause a crash.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/BacklightLevelNotification.mm: Added. (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256225 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:23 PM Changeset in webkit [256941] by
-
- 6 edits in trunk
Disable Wasm reference types by default
https://bugs.webkit.org/show_bug.cgi?id=207952
Reviewed by Mark Lam.
JSTests:
- wasm/stress/immutable-globals.js:
- wasm/stress/local-ref.js:
- wasm/stress/mutable-globals.js:
Source/JavaScriptCore:
- runtime/OptionsList.h:
- 1:22 PM Changeset in webkit [256940] by
-
- 8 edits in branches/safari-609.1.20.2-branch/Source
Versioning.
- 1:08 PM Changeset in webkit [256939] by
-
- 8 edits in branches/safari-609.1.20.0-branch/Source
Versioning.
- 12:56 PM Changeset in webkit [256938] by
-
- 1 copy in branches/safari-609.1.20.1-branch
New branch.
- 12:56 PM Changeset in webkit [256937] by
-
- 1 copy in branches/safari-609.1.20.0-branch
New branch.
- 12:54 PM Changeset in webkit [256936] by
-
- 8 edits in trunk/Source/WebCore
Remove PlatformMediaSession::characteristics()
https://bugs.webkit.org/show_bug.cgi?id=207926
Reviewed by Eric Carlson.
No change of behavior, removing no longer used code.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::characteristics const): Deleted.
- Modules/mediastream/MediaStreamTrack.h:
- Modules/webaudio/AudioContext.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::characteristics const): Deleted.
- html/HTMLMediaElement.h:
- platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::characteristics const): Deleted.
- platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::displayType const):
- 12:39 PM Changeset in webkit [256935] by
-
- 2 edits in trunk/Source/WebKit
[iOS] fast/dom/focus-shift-crash.html and editing/selection/selection-change-in-disconnected-frame-crash.html crash after r256864
https://bugs.webkit.org/show_bug.cgi?id=207939
Reviewed by Tim Horton.
Fix two layout tests that began to crash after r256864 due to a missing null check for EditorClient.
To make this conditional a bit easier to read, pull out each case where we should avoid calling
didChangeSelection() into a separate early return. The EditorClient may be null on iOS in the case where the
Frame has been detached from its Page.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionAppearance):
- 12:22 PM Changeset in webkit [256934] by
-
- 12 edits1 add in trunk/Source/WebKit
WebPageProxy::PolicyDecisionSender should send a struct instead of many parameters
https://bugs.webkit.org/show_bug.cgi?id=207936
<rdar://problem/59590676>
Reviewed by Alex Christensen.
- Shared/PolicyDecision.h: Added.
(WebKit::PolicyDecision::encode const):
(WebKit::PolicyDecision::decode):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::PolicyDecisionSender::send):
(WebKit::WebPageProxy::PolicyDecisionSender::identifier):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsyncShared):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSyncShared):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponseShared):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::didReceivePolicyDecision):
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceivePolicyDecision):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 12:04 PM Changeset in webkit [256933] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Safari sometimes crashes under ViewGestureController::beginSwipeGesture
https://bugs.webkit.org/show_bug.cgi?id=207929
<rdar://problem/59493326>
Reviewed by Tim Horton.
Make ViewGestureController::beginSwipeGesture robust in the case where the target back/forward item no longer
exists. This means that a back/forward target item existed when UIKit called into us in canSwipeInDirection, but
this item was removed by the time beginSwipeGesture is called.
A couple of conditions could make this possible, such as handling incoming synchronous IPC in the UI process
that could change the back/forward list before sending outgoing IPC to the web process; alternately, an SPI
client could be overriding -_webViewDidBeginNavigationGesture: to run some logic that removes the would-be
target back/forward item.
To protect against these scenarios, null-check targetItem before attempting to dereference it; if it is null,
then reset some state that might've been set as a result of beginning the swipe (that is, m_activeGestureType
and m_currentGestureID) and then immediately bail before attempting to install the snapshot view and proceed
with the swipe.
- UIProcess/ios/ViewGestureControllerIOS.mm:
(WebKit::ViewGestureController::beginSwipeGesture):
- 12:01 PM Changeset in webkit [256932] by
-
- 2 edits in trunk/Source/WebKit
Disable the process cache when process-per-tab is disabled in the debug menu
https://bugs.webkit.org/show_bug.cgi?id=207949
<rdar://problem/57094837>
Reviewed by Geoffrey Garen.
Disable the process cache when process-per-tab is disabled in the debug menu. The process cache is a
process-swap-on-navigation optimization and process-swap-on-navigation is already disabled when
process-per-tab is disabled. The process cache is not useful with such configuration and actually
leads to crashes too.
- UIProcess/WebProcessCache.cpp:
(WebKit::WebProcessCache::updateCapacity):
- 11:57 AM Changeset in webkit [256931] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/tests/inspector/network/har/har-page.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207954
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:46 AM Changeset in webkit [256930] by
-
- 2 edits in trunk/Source/JavaScriptCore
[PlayStation] Get jsc test wrappers using find_package
https://bugs.webkit.org/show_bug.cgi?id=207914
Reviewed by Ross Kirsling.
- shell/PlatformPlayStation.cmake:
- 11:36 AM Changeset in webkit [256929] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Release ] fast/scrolling/latching/scroll-iframe-in-overflow.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207953
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:30 AM Changeset in webkit [256928] by
-
- 5 edits2 adds in trunk
[LFC][Floats] FloatingContext::constraints should be able to handle empty candidate ranges (points)
https://bugs.webkit.org/show_bug.cgi?id=207937
<rdar://problem/59591109>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/floats-shrinking-line-simple.html
Handle the case when the incoming vertical range is empty (line is empty).
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::constraints const):
- layout/floats/FloatingContext.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
LayoutTests:
- fast/layoutformattingcontext/floats-shrinking-line-simple-expected.html: Added.
- fast/layoutformattingcontext/floats-shrinking-line-simple.html: Added.
- 11:04 AM Changeset in webkit [256927] by
-
- 1 copy in tags/Safari-610.1.3.4
Tag Safari-610.1.3.4.
- 10:54 AM Changeset in webkit [256926] by
-
- 8 edits in branches/safari-610.1.3-branch/Source
Versioning.
- 10:36 AM Changeset in webkit [256925] by
-
- 5 edits in trunk/Source
Re-disable top-level data URL navigations
https://bugs.webkit.org/show_bug.cgi?id=207917
<rdar://problem/59568037>
Reviewed by Darin Adler.
Source/WebCore:
Calls to WKPage and WKWebView API used to load data and strings directly should be recognized by
the loading code as being from client API calls. This brings these API behaviors into alignment
with similar API for loading URLs and URLRequests directly. This change also allows us to enforce
stricter handling of Data URLs, and to remove the need to explicitly permit top-level data URL
navigation when client APIs are used.
Tested by TestWebKitAPI Navigation tests.
- page/Settings.yaml:
Source/WebKit:
In Bug 207719 we allowed top-level navigations to data URLs by default. This
patch updates client loading API calls so that we can go back to a default
block of these loads without breaking WebKit clients.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadDataImpl): Recognize direct data loads started from client API.
- WebProcess/WebPage/WebPage.h:
- 10:15 AM Changeset in webkit [256924] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Anonymous inline text box container is not the only type of anonymous containers
https://bugs.webkit.org/show_bug.cgi?id=207945
<rdar://problem/59592411>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: fast/layoutformattingcontext/anonymous-inline-container-simple.html
We construct anonymous inline containers for certain features like first-letter.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::nextInlineLevelBoxToLayout):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
LayoutTests:
- fast/layoutformattingcontext/anonymous-inline-container-simple-expected.html: Added.
- fast/layoutformattingcontext/anonymous-inline-container-simple.html: Added.
- 9:59 AM Changeset in webkit [256923] by
-
- 2 edits in trunk/LayoutTests
Skip lazy iframe load test
https://bugs.webkit.org/show_bug.cgi?id=207946
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-19
Reviewed by Frédéric Wang.
The WPT test html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html
should have been skipped in https://trac.webkit.org/changeset/256916/webkit.
- 8:57 AM Changeset in webkit [256922] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r256805?) [ Mojave wk2 Release ] webrtc/video-replace-muted-track.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207941
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:57 AM Changeset in webkit [256921] by
-
- 6 edits in trunk/Source
Ensure that contenteditable carets on macCatalyst are the right color, especially in Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=207789
<rdar://problem/59429715>
Reviewed by Tim Horton.
Source/WebCore:
Factor out caret color calculation to be used in WebPageIOS.
Fixes EditorStateTests.CaretColorInContentEditable.
- editing/FrameSelection.cpp:
(WebCore::CaretBase::computeCaretColor):
(WebCore::CaretBase::paintCaret const):
- editing/FrameSelection.h:
Source/WebKit:
Because UIKit only uses label color for the caret in macCatalyst,
we need skip text input traits and send the correctly calculated color
to UIKit.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView insertionPointColor]):
(-[WKContentView getInteractionTintColor]):
(-[WKContentView _updateInteractionTintColor]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState const):
- 8:37 AM Changeset in webkit [256920] by
-
- 3 edits in trunk/Tools
results.webkit.org: Correctly report JSC tests for windows
https://bugs.webkit.org/show_bug.cgi?id=207910
Rubber-stamped by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(configurationForUpload): Give Windows a version name.
- Scripts/webkitdirs.pm:
(determineWinVersion): Correctly parse Windows 10 version numbers, conform to
Version dictionary.
- 8:33 AM Changeset in webkit [256919] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (r256842?) [ Mac wk2 ] http/wpt/crypto/derive-hmac-key-crash.any.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207938
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:31 AM Changeset in webkit [256918] by
-
- 8 edits in trunk
Unreviewed, fix assertions in storage access API layout tests after r256882.
Source/WebCore:
- dom/DocumentStorageAccess.idl:
Only expose the storage access API operations to the Web when the corresponding setting is
enabled instead of relying on an assertion.
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Stop disabling the storage access API since the API is enabled by default.
Tools:
Drop dead testRunner code to toggle storage access API feature.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStorageAccessAPIEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- 4:50 AM Changeset in webkit [256917] by
-
- 2 edits in trunk
[GTK][WPE] Set ccache as compiler launcher, add opt-in sccache support
https://bugs.webkit.org/show_bug.cgi?id=207838
Reviewed by Carlos Alberto Lopez Perez.
This change allows for more granular control over the compiler
launcher configuration. The build host should no longer need to
set ccache symbolic links. Additionally optional support for
sccache is added, enabled when the WEBKIT_USE_SCCACHE environment
variable is set to YES.
- Source/cmake/WebKitCCache.cmake:
- 2:37 AM Changeset in webkit [256916] by
-
- 17 edits in trunk/LayoutTests
Main implementation for lazy image loading
https://bugs.webkit.org/show_bug.cgi?id=200764
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-19
Reviewed by Frédéric Wang.
LayoutTests/imported/w3c:
When updating WPT tests in a lost minute change I forgot to add webkit-test-runner headers.
Remaining failures are tracked in https://bugs.webkit.org/show_bug.cgi?id=207902 and
https://bugs.webkit.org/show_bug.cgi?id=207901.
- web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-001.sub.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/image-loading-lazy-in-cross-origin-ifame-002.sub.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-2.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied-iframe.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-base-url-applied.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-crossorigin-applied.sub.html:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub-expected.txt:
- web-platform-tests/html/semantics/embedded-content/the-img-element/original-referrer-policy-applied.sub.html:
LayoutTests:
Update test expectations to skip
image-loading-lazy-in-cross-origin-ifame-001.sub.html and
image-loading-lazy-in-cross-origin-ifame-002.sub.html.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 2:32 AM Changeset in webkit [256915] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r188639): Several inspector tests timeout because they are slow after r188639
https://bugs.webkit.org/show_bug.cgi?id=149916
Unreviewed GTK gardening. Add some more tests as Pass Slow for the inspector bug.
- platform/gtk/TestExpectations:
- 1:25 AM Changeset in webkit [256914] by
-
- 2 edits in trunk/Source/WebKit
Enable AspectRatioOfImgFromWidthAndHeightEnabled by default
https://bugs.webkit.org/show_bug.cgi?id=207880
Reviewed by Frédéric Wang.
- Shared/WebPreferences.yaml: