Timeline
Aug 14, 2019:
- 11:39 PM Changeset in webkit [248710] by
-
- 7 edits in trunk/Source/JavaScriptCore
[JSC] Air does not appropriately propagate ConstFloatValue to stackmap
https://bugs.webkit.org/show_bug.cgi?id=200759
Reviewed by Saam Barati.
In B3MoveConstant phase, we convert ConstFloatValue and ConstDoubleValue to memory access to the table
to avoid large immediates *except for* stackmap argument case. This is because materializing constant doubles
and floats as memory-access before passing it to stackmap is wasteful: the stackmap may not use it actually, or
stackmap can do better job if it knows the parameter is constant.
Based on the above operation, B3LowerToAir phase strongly assumes that all ConstFloatValue and ConstDoubleValue
are removed except for the case used for parameter of stackmap. With r192377, B3LowerToAir catch this case, and
propagate constant double value as ValueRep in stackmap. While B3LowerToAir does this correctly for ConstDoubleValue,
we missed adding this support for ConstFloatValue.
This patch adds r192377's support for ConstFloatValue to propagate ConstFloatValue correctly to the stackmap.
This issue starts appearing since Wasm BBQ-B3 OSR starts putting ConstFloatValue to OSR-tier-up patchpoint.
- b3/B3LowerToAir.cpp:
- b3/B3ValueKey.h:
(JSC::B3::ValueKey::ValueKey):
(JSC::B3::ValueKey::floatValue const):
- b3/B3ValueRep.h:
(JSC::B3::ValueRep::constantFloat):
(JSC::B3::ValueRep::floatValue const):
- b3/testb3.h:
- b3/testb3_1.cpp:
(run):
- b3/testb3_5.cpp:
(testPatchpointManyWarmAnyImms):
(testPatchpointManyColdAnyImms):
(testPatchpointManyImms): Deleted.
- 11:20 PM Changeset in webkit [248709] by
-
- 4 edits1 add in trunk
JSTests:
ProxyObject should not be allow to access its target's private properties.
https://bugs.webkit.org/show_bug.cgi?id=200739
<rdar://problem/53972768>
Reviewed by Yusuke Suzuki.
- stress/proxy-should-not-be-allowed-to-access-private-properties-of-target.js: Added.
- stress/proxy-with-private-symbols.js: Rebased.
Source/JavaScriptCore:
Remove support for macOS < 10.13
https://bugs.webkit.org/show_bug.cgi?id=200694
<rdar://problem/54278851>
Patch by Keith Rollin <Keith Rollin> on 2019-08-14
Reviewed by Youenn Fablet.
Update conditionals that reference MAC_OS_X_VERSION_MIN_REQUIRED and
MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
- This means that expressions like
"MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
"MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.
- API/WebKitAvailability.h:
- 11:11 PM Changeset in webkit [248708] by
-
- 4 edits in trunk
Error thrown during "acceptNode" lookup is overridden
https://bugs.webkit.org/show_bug.cgi?id=200735
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-14
Reviewed by Ross Kirsling.
LayoutTests/imported/w3c:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-expected.html
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback): Catch and return exception of callback->get call.
- 9:55 PM Changeset in webkit [248707] by
-
- 1 copy in tags/Safari-609.1.2
Tag Safari-609.1.2.
- 8:36 PM Changeset in webkit [248706] by
-
- 3 edits2 adds in trunk
[WHLSL] Variables shouldn't be able to have void type
https://bugs.webkit.org/show_bug.cgi?id=200751
Reviewed by Robin Morisset.
Source/WebCore:
Trivial fix. Found by https://github.com/gpuweb/WHLSL/issues/320.
Test: webgpu/whlsl/void-variable-parameter.html
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::visit):
LayoutTests:
- webgpu/whlsl/void-variable-parameter-expected.txt: Added.
- webgpu/whlsl/void-variable-parameter.html: Added.
- 7:36 PM Changeset in webkit [248705] by
-
- 14 edits1 move2 adds in trunk/LayoutTests/imported/w3c
Re-sync web-platform-tests/dom/traversal from upstream
https://bugs.webkit.org/show_bug.cgi?id=200737
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-14
Reviewed by Ryosuke Niwa.
Re-sync web-platform-tests/dom/traversal from upstream 91adbef87678.
- resources/import-expectations.json:
- web-platform-tests/dom/traversal/*: Updated.
- 7:34 PM Changeset in webkit [248704] by
-
- 3 edits in trunk/Source/WebCore
[WebGPU] Use of WebGPU should not force discrete GPU
https://bugs.webkit.org/show_bug.cgi?id=200740
Reviewed by Myles C. Maxfield.
Request a low-power device from Metal by default.
No change in testable behavior.
- platform/graphics/gpu/GPURequestAdapterOptions.h:
- platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
(WebCore::GPUDevice::tryCreate):
- 7:20 PM Changeset in webkit [248703] by
-
- 3 edits in trunk/Source/WebCore
Potentially non thread-safe usage of WebCore::MediaSample
https://bugs.webkit.org/show_bug.cgi?id=200734
Reviewed by Eric Carlson.
ImageSource is a main thread object but ends up getting passed to a background queue for image
decoding. In some cases, the background queue ends up being the last one holding a ref to the
ImageSource which ends up destroying the ImageSource on a background thread. Doing so is not
safe as shown by the crash.
To address the issue, have ImageSource subclass ThreadSafeRefCounted<ImageSource, WTF::DestructionThread::Main>
so that it is always destroyed on the main thread.
No new tests, currently crashing on the debug bots.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::ImageSource):
(WebCore::ImageSource::~ImageSource):
- platform/graphics/ImageSource.h:
- 6:58 PM Changeset in webkit [248702] by
-
- 2 edits in trunk/Source/WTF
FileSystem::deleteFile should log error status (178347)
https://bugs.webkit.org/show_bug.cgi?id=178347
Patch by Kate Cheney <Kate Cheney> on 2019-08-14
Reviewed by Brent Fulgham.
I added logging to the FileSystem::deleteFile function so that the debugger will
be able to see the associated errno string and better understand the reason for an
unlink failure or will know if the fileSystemRepresentation call was not
successful (or returned null).
- wtf/posix/FileSystemPOSIX.cpp:
(WTF::FileSystemImpl::deleteFile):
- 6:17 PM Changeset in webkit [248701] by
-
- 2 edits in trunk/Tools
[iOS](REGRESSION: r200487): WebKit.RequestActivatedElementInfoForRotatedImage fails on iOS 13
https://bugs.webkit.org/show_bug.cgi?id=200726
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-14
Reviewed by Simon Fraser.
To get the pixels as an array of colors, draw the image into a memory
context. The backing memory buffer can then be accessed to get the image
pixels' colors.
- TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm:
(TestWebKitAPI::TEST):
- 5:54 PM Changeset in webkit [248700] by
-
- 3 edits in trunk/Source/WebKit
Remove m_blockRectForTextSelection (along with related code)
https://bugs.webkit.org/show_bug.cgi?id=200695
Reviewed by Megan Gardner.
This member variable was consulted by block selection codepaths which no longer exist.
No change in behavior.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::selectionBoxForRange): Deleted.
- 5:30 PM Changeset in webkit [248699] by
-
- 39 edits in trunk
Unreviewed, rolling out r248526.
Caused two IndexedDB perf tests to fail
Reverted changeset:
"Remove IDB-specific quota"
https://bugs.webkit.org/show_bug.cgi?id=196545
https://trac.webkit.org/changeset/248526
- 5:18 PM Changeset in webkit [248698] by
-
- 2 edits in trunk/Source/WebKit
Fix the build when ENABLE(APPLE_PAY) is false.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
- 5:17 PM Changeset in webkit [248697] by
-
- 76 edits in trunk
Remove support for macOS < 10.13
https://bugs.webkit.org/show_bug.cgi?id=200694
<rdar://problem/54278851>
Reviewed by Youenn Fablet.
Update conditionals that reference MAC_OS_X_VERSION_MIN_REQUIRED and
MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
- This means that expressions like
"MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
"MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.
PerformanceTests:
- StitchMarker/wtf/Platform.h:
- StitchMarker/wtf/dependencies/bmalloc/BPlatform.h:
- StitchMarker/wtf/text/icu/TextBreakIteratorICU.h:
(WTF::TextBreakIteratorICU::TextBreakIteratorICU):
(WTF::caretRules): Deleted.
Source/JavaScriptCore:
- API/WebKitAvailability.h:
Source/ThirdParty/libwebrtc:
- Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
- WebKit/libwebrtc.diff:
Source/WebCore:
No new tests -- no added or changed functionality.
- Modules/applepay/cocoa/PaymentContactCocoa.mm:
(WebCore::subLocality):
(WebCore::setSubLocality):
(WebCore::subAdministrativeArea):
(WebCore::setSubAdministrativeArea):
- WebCorePrefix.h:
- crypto/mac/CryptoKeyRSAMac.cpp:
- editing/cocoa/WebContentReaderCocoa.mm:
- page/mac/TextIndicatorWindow.mm:
(-[WebTextIndicatorView initWithFrame:textIndicator:margin:offset:]):
- platform/PlatformScreen.h:
- platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::initialize):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::seekableTimeRangesLastModifiedTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::liveUpdateInterval const):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::fontForPostScriptName):
(WebCore::variationCapabilitiesForFontDescriptor):
(WebCore::FontCache::lastResortFallbackFont):
- platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::cascadeToLastResortAndVariationsFontDescriptor):
- platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::setGPUByRegistryID):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::screenDidChange):
(WebCore::setGPUByDisplayMask): Deleted.
- platform/graphics/cv/VideoTextureCopierCV.cpp:
- platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
(WebCore::isAcceptableDevice):
- platform/graphics/mac/FontCacheMac.mm:
(WebCore::platformFontWithFamilySpecialCase):
- platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::createFontCustomPlatformData):
- platform/mac/DragImageMac.mm:
(WebCore::LinkImageLayout::LinkImageLayout):
(WebCore::createDragImageForLink):
- platform/mac/PlatformScreenMac.mm:
(WebCore::collectScreenProperties):
(WebCore::gpuIDForDisplayMask):
- platform/mac/WebPlaybackControlsManager.h:
- platform/mac/WebPlaybackControlsManager.mm:
(toAVTouchBarMediaSelectionOptionType):
(mediaSelectionOptions):
(-[WebPlaybackControlsManager generateFunctionBarThumbnailsForTimes:size:completionHandler:]): Deleted.
(-[WebPlaybackControlsManager generateFunctionBarAudioAmplitudeSamples:completionHandler:]): Deleted.
(-[WebPlaybackControlsManager canBeginFunctionBarScrubbing]): Deleted.
(-[WebPlaybackControlsManager beginFunctionBarScrubbing]): Deleted.
(-[WebPlaybackControlsManager endFunctionBarScrubbing]): Deleted.
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformActiveTextSearchHighlightColor const):
(WebCore::RenderThemeMac::systemColor const):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
- pal/spi/cocoa/AVKitSPI.h:
- pal/spi/cocoa/CommonCryptoSPI.h:
- pal/spi/cocoa/IOSurfaceSPI.h:
- pal/spi/cocoa/NEFilterSourceSPI.h:
- pal/spi/cocoa/NSAttributedStringSPI.h:
- pal/spi/cocoa/NSKeyedArchiverSPI.h:
- pal/spi/cocoa/NSTouchBarSPI.h:
- pal/spi/cocoa/PassKitSPI.h:
- pal/spi/mac/AVFoundationSPI.h:
Source/WebKit:
- NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm:
(-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCustomPasteboardDataEnabled):
- Shared/WebPreferencesDefaultValues.h:
- Shared/mac/AuxiliaryProcessMac.mm:
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKTextTouchBarItemController itemForIdentifier:]):
(WebKit::WebViewImpl::mediaPlaybackControlsView const):
(WebKit::WebViewImpl::updateMediaTouchBar):
- UIProcess/mac/WebColorPickerMac.mm:
- WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
- WebProcess/Plugins/PDF/PDFPlugin.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(-[WKPDFPluginAccessibilityObject setPdfLayerController:]):
(-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]):
(-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]):
(-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
(WebKit::PDFPlugin::pdfDocumentDidLoad):
(WebKit::PDFPlugin::handleMouseEvent):
(WebKit::PDFPlugin::handleMouseEnterEvent):
(WebKit::PDFPlugin::handleContextMenuEvent):
(WebKit::PDFPlugin::pluginHandlesContentOffsetForAccessibilityHitTest const):
(WebKit::PDFPlugin::accessibilityAssociatedPluginParentForElement const):
(WebKit::PDFPlugin::updateCursor): Deleted.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.mm:
- WebView/PDFViewSPI.h:
- WebView/WebHTMLView.mm:
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:]):
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:shouldChangeFontReferenceColor:]):
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inContext:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:stopAtLayerBackedViews:_recursive:displayRectIgnoringOpacity:inContext:shouldChangeFontReferenceColor:_recursive:displayRectIgnoringOpacity:inContext:topView:]): Deleted.
(-[WebHTMLView _recursive:displayRectIgnoringOpacity:inGraphicsContext:shouldChangeFontReferenceColor:_recursive:displayRectIgnoringOpacity:inGraphicsContext:CGContext:topView:shouldChangeFontReferenceColor:]): Deleted.
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
- WebView/WebView.mm:
(-[WebView performDragOperation:]):
(LayerFlushController::flushLayers):
(-[WebView updateMediaTouchBar]):
- WebView/WebViewData.h:
Source/WTF:
- wtf/FeatureDefines.h:
- wtf/Platform.h:
- wtf/mac/AppKitCompatibilityDeclarations.h:
- wtf/spi/darwin/SandboxSPI.h:
Tools:
- MiniBrowser/AppKitCompatibilityDeclarations.h:
- MiniBrowser/mac/SettingsController.m:
(-[SettingsController init]):
- TestWebKitAPI/Tests/WebCore/FontCache.cpp:
(TestWebKitAPI::FontCacheTest::SetUp): Deleted.
(TestWebKitAPI::createPlatformFont): Deleted.
(TestWebKitAPI::compareFonts): Deleted.
(TestWebKitAPI::TEST_F): Deleted.
- TestWebKitAPI/Tests/WebCore/cocoa/AVFoundationSoftLinkTest.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
- TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(runWebsiteDataStoreCustomPaths):
- TestWebKitAPI/mac/NSFontPanelTesting.mm:
- 4:57 PM Changeset in webkit [248696] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION(r245320): Web Automation: Perform Actions hangs when pointerdown happens near top of page
https://bugs.webkit.org/show_bug.cgi?id=200728
<rdar://problem/54260518>
Reviewed by Devin Rousso.
In the last major refactoring for this code, it seems that the argument to
platformSimulateMouseInteraction was not unified to use viewport coordinates
in all code paths. This patch fixes both callers to *not* add in topContentInset,
and instead this is added back in when doing platform-specific event simulation.
This has no effect on iOS since it's guarded by ENABLE(WEBDRIVER_MOUSE_INTERACTIONS),
which is only built on macOS.
- UIProcess/Automation/WebAutomationSession.h:
- UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::performMouseInteraction):
- UIProcess/Automation/mac/WebAutomationSessionMac.mm:
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
- 4:53 PM Changeset in webkit [248695] by
-
- 6 edits2 adds in trunk
[ContentChangeObserver] Any previously destroyed renderer should not be considered a candidate for content observation.
https://bugs.webkit.org/show_bug.cgi?id=200732
<rdar://problem/54319654>
Reviewed by Simon Fraser.
Source/WebCore:
A visible element should not be considered a candidate to content change observation when it loses the visiblity status momentarily.
This patch extends the check of re-constructed renderers for the duration of the content change observation (as opposed to just a single render tree update cycle)
Test: fast/events/touch/ios/content-observation/visible-content-gains-new-renderer2.html
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::reset):
(WebCore::ContentChangeObserver::rendererWillBeDestroyed):
(WebCore::ContentChangeObserver::adjustObservedState):
(WebCore::ContentChangeObserver::renderTreeUpdateDidStart): Deleted.
(WebCore::ContentChangeObserver::renderTreeUpdateDidFinish): Deleted.
(WebCore::ContentChangeObserver::stopContentObservation): Deleted.
(WebCore::ContentChangeObserver::willDestroyRenderer): Deleted.
(WebCore::ContentChangeObserver::RenderTreeUpdateScope::RenderTreeUpdateScope): Deleted.
(WebCore::ContentChangeObserver::RenderTreeUpdateScope::~RenderTreeUpdateScope): Deleted.
- page/ios/ContentChangeObserver.h:
(WebCore::ContentChangeObserver::isObservingContentChanges const):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeDestroyed):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRenderTree):
(WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
- fast/events/touch/ios/content-observation/visible-content-gains-new-renderer2-expected.txt: Added.
- fast/events/touch/ios/content-observation/visible-content-gains-new-renderer2.html: Added.
- 4:36 PM Changeset in webkit [248694] by
-
- 3 edits1 add in trunk
Missing exception check in string compare.
https://bugs.webkit.org/show_bug.cgi?id=200743
<rdar://problem/53975356>
Reviewed by Michael Saboff.
JSTests:
- stress/missing-exception-check-in-string-compare.js: Added.
Source/JavaScriptCore:
- runtime/JSString.cpp:
(JSC::JSString::equalSlowCase const):
- 4:33 PM Changeset in webkit [248693] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, rolling out r248638.
These test expectations aren't necessary
Reverted changeset:
"Unreviewed test gardening, land test expectations for
rdar://49790831."
https://trac.webkit.org/changeset/248638
- 3:55 PM Changeset in webkit [248692] by
-
- 13 edits in trunk/Source
[Cocoa] Add some WKA extension points
https://bugs.webkit.org/show_bug.cgi?id=200506
<rdar://problem/51682474>
Reviewed by Tim Horton.
Source/WebCore:
- Modules/applepay/ApplePayPayment.h:
- Modules/applepay/ApplePayPaymentMethod.h:
- Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::finishConverting):
(WebCore::convertAndValidate):
- Modules/applepay/ApplePayRequestBase.h:
- Modules/applepay/ApplePaySessionPaymentRequest.h:
- Modules/applepay/PaymentCoordinatorClient.cpp:
(WebCore::PaymentCoordinatorClient::supportsVersion):
- Modules/applepay/cocoa/PaymentCocoa.mm:
(WebCore::convert):
- Modules/applepay/cocoa/PaymentMethodCocoa.mm:
(WebCore::finishConverting):
(WebCore::convert):
Source/WebKit:
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::finishCreating):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::finishDecoding):
(IPC::finishEncoding):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::encode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
- Shared/WebCoreArgumentCoders.h:
- 3:38 PM Changeset in webkit [248691] by
-
- 1 copy in tags/Safari-608.2.5
Tag Safari-608.2.5.
- 3:13 PM Changeset in webkit [248690] by
-
- 2 edits in trunk/Source/WebKit
v3: CrashTracer: Regression : MobileSafari at UIKitCore: -[UITargetedPreview initWithView:parameters:]
https://bugs.webkit.org/show_bug.cgi?id=200634
Patch by Luming Yin <luming_yin@apple.com> on 2019-08-14
Reviewed by Simon Fraser.
Under rare race conditions, the WKContentView may no longer have an associated window. However,
UIContextMenuInteraction may still attempt initialize a UITargetedPreview with the orphaned
WKContentView. Speculative fix for crashes under such scenarios, so that we can continue without
a context menu configuration to prevent the UIKit exception.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView continueContextMenuInteraction:]):
- 3:08 PM Changeset in webkit [248689] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix for MacroAssemblerARM64E change
https://bugs.webkit.org/show_bug.cgi?id=200703
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::farJump):
- 2:59 PM Changeset in webkit [248688] by
-
- 5 edits in trunk
Web Inspector: support
console.screenshotwith dataURL strings
https://bugs.webkit.org/show_bug.cgi?id=199307
Reviewed by Joseph Pecoraro.
Source/WebCore:
Test: inspector/console/console-screenshot.html
- page/PageConsoleClient.cpp:
(WebCore::PageConsoleClient::screenshot):
LayoutTests:
- inspector/console/console-screenshot.html:
- inspector/console/console-screenshot-expected.txt:
- 1:33 PM Changeset in webkit [248687] by
-
- 7 edits in trunk
[JSC] Less contended MetaAllocator
https://bugs.webkit.org/show_bug.cgi?id=200278
Reviewed by Mark Lam.
Source/JavaScriptCore:
The profiler result of JetStream2/bomb-workers shows that we are having contention under MetaAllocator::currentStatistics.
This function is called in ExecutableAllocator::memoryPressureMultiplier, and it is called from ExecutableCounter's threshold
calculation. But MetaAllocator::currentStatistics takes a global lock inside MetaAllocator and causes contention. However,
we do not need to have a lock actually: clients of MetaAllocator::currentStatistics typically use bytesReserved and bytesAllocated
information. However, since our executable allocator is fixed-sized, bytesReserved is always the fixed size. So just reading bytesAllocated
racily is enough.
This patch attempts to reduce the contention by the following two things.
- Read bytesAllocated racily instead of calling MetaAllocator::currentStatistics. Then ExecutableCounter does not need to take a lock.
- page lifetime management APIs of MetaAllocator should take a second
countparameter to batch the system calls.
- jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::underMemoryPressure):
(JSC::ExecutableAllocator::memoryPressureMultiplier):
(JSC::ExecutableAllocator::allocate):
(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): Deleted.
(JSC::FixedVMPoolExecutableAllocator::memoryStart): Deleted.
(JSC::FixedVMPoolExecutableAllocator::memoryEnd): Deleted.
(JSC::FixedVMPoolExecutableAllocator::isJITPC): Deleted.
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps): Deleted.
(JSC::FixedVMPoolExecutableAllocator::jitWriteThunkGenerator): Deleted.
(JSC::FixedVMPoolExecutableAllocator::genericWriteToJITRegion): Deleted.
Source/WTF:
- wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::incrementPageOccupancy):
(WTF::MetaAllocator::decrementPageOccupancy):
- wtf/MetaAllocator.h:
Tools:
Update the interface.
- TestWebKitAPI/Tests/WTF/MetaAllocator.cpp:
- 1:15 PM Changeset in webkit [248686] by
-
- 26 edits in trunk/Source/JavaScriptCore
[JSC] Make PAC jump and return more explicit
https://bugs.webkit.org/show_bug.cgi?id=200703
Reviewed by Mark Lam.
This patch refactors our macro assembler, mainly related to PAC.
- Make far-jump explicit by renaming
jumptofarJump. - Remove unused makeTailRecursiveCall and tailRecursiveCall.
- Do not make
ARM64EAssembler::retasretab. MacroAssemblerARM64E should callretabexplicitly instead.
- assembler/ARM64EAssembler.h:
(JSC::ARM64EAssembler::ret): Deleted.
- assembler/MacroAssembler.h:
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::farJump):
(JSC::MacroAssemblerARM64::makeTailRecursiveCall): Deleted.
(JSC::MacroAssemblerARM64::tailRecursiveCall): Deleted.
- assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::farJump):
(JSC::MacroAssemblerARM64E::ret):
- assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::farJump):
(JSC::MacroAssemblerARMv7::relativeTableJump):
(JSC::MacroAssemblerARMv7::tailRecursiveCall): Deleted.
(JSC::MacroAssemblerARMv7::makeTailRecursiveCall): Deleted.
- assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::farJump):
(JSC::MacroAssemblerMIPS::tailRecursiveCall): Deleted.
(JSC::MacroAssemblerMIPS::makeTailRecursiveCall): Deleted.
- assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::farJump):
(JSC::MacroAssemblerX86::jump): Deleted.
(JSC::MacroAssemblerX86::tailRecursiveCall): Deleted.
(JSC::MacroAssemblerX86::makeTailRecursiveCall): Deleted.
- assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::farJump):
- assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::farJump):
(JSC::MacroAssemblerX86_64::jump): Deleted.
(JSC::MacroAssemblerX86_64::tailRecursiveCall): Deleted.
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3_6.cpp:
(testInterpreter):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::adjustAndJumpToTarget):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::emitSwitchStringOnString):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGThunks.cpp:
(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::jumpToExceptionHandler):
- jit/JIT.cpp:
(JSC::JIT::emitEnterOptimizationCheck):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):
(JSC::JIT::emit_op_switch_string):
(JSC::JIT::emitSlow_op_loop_hint):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_catch):
(JSC::JIT::emit_op_switch_imm):
(JSC::JIT::emit_op_switch_char):
(JSC::JIT::emit_op_switch_string):
- jit/ThunkGenerators.cpp:
(JSC::slowPathFor):
(JSC::virtualThunkFor):
- llint/LLIntThunks.cpp:
(JSC::LLInt::generateThunkWithJumpTo):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/WasmThunks.cpp:
(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
- wasm/js/WasmToJS.cpp:
(JSC::Wasm::emitThrowWasmToJSException):
- yarr/YarrJIT.cpp:
(JSC::Yarr::YarrGenerator::loadFromFrameAndJump):
- 12:47 PM Changeset in webkit [248685] by
-
- 5 edits in trunk/Source
[ContentChangeObserver] Stop content change observation explicitly.
https://bugs.webkit.org/show_bug.cgi?id=200689
<rdar://problem/54274887>
Reviewed by Simon Fraser.
Source/WebCore:
This helps to clean up some temporary state. There are 2 exit points when content observation needs to stop.
- Soon after the synthetic mouseMove event when we decide not to continue with further observation (see WebPage::handleSyntheticClick)
- When we asynchronously notify the client about the visible content change after all pending events have been processed.
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::stopContentObservation):
(WebCore::ContentChangeObserver::adjustObservedState):
- page/ios/ContentChangeObserver.h:
(WebCore::ContentChangeObserver::stopContentObservation const):
(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::observedContentChange const): Deleted.
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
- 12:16 PM Changeset in webkit [248684] by
-
- 2 edits in trunk/Tools
results.webkit.org: 500 errors on API endpoints don't return JSON
https://bugs.webkit.org/show_bug.cgi?id=200722
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/controller/api_routes.py:
(APIRoutes.response_500): We should return the response, instead of abort.
- 11:45 AM Changeset in webkit [248683] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: Computed: move the Box Model section to the top
https://bugs.webkit.org/show_bug.cgi?id=200555
Reviewed by Joseph Pecoraro.
For nodes that use a lot of different CSS properties, having the Box Model section all the
way at the bottom isn't as useful for taking a quick glance at the node's box model data.
- UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
- 11:43 AM Changeset in webkit [248682] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: Computed: the collapsed state of the Variables section should be separate from the collapsed state of the Properties section
https://bugs.webkit.org/show_bug.cgi?id=200725
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
Use a different identifier string for the Variable section so it preserves its own collapsed
collapsed state independent of the Properties section.
- 11:41 AM Changeset in webkit [248681] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: Computed: the background of the Properties/Variables sections should match the Box Model section when expanded
https://bugs.webkit.org/show_bug.cgi?id=200724
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ComputedStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style > .content > .computed > .details-section:not(.collapsed) > :matches(.header, .content)): Added.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties): Added.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .computed-style-properties .property:hover .go-to-arrow): Added.
(.sidebar > .panel.details.css-style > .content > .computed .details-section:matches(.computed-style-properties, .computed-style-variables) > .content): Added.
(.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)): Deleted.
(.computed-style-properties): Deleted.
(.computed-style-properties .property .go-to-arrow): Deleted.
(.computed-style-properties .property:hover .go-to-arrow): Deleted.
(.details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): Deleted.
(.details-section.computed-style-properties > .content): Deleted.
(@media (prefers-color-scheme: dark)): Deleted.
Use more specific selectors to match overall Web Inspector style.
- UserInterface/Views/ComputedStyleSection.css:
(.computed-style-section .computed-property-item.expanded):
Darken the background of any expanded computed property in light mode.
- 11:20 AM Changeset in webkit [248680] by
-
- 7 edits in trunk/Source/JavaScriptCore
Web Inspector: Remove bad semicolon in generation of ObjC methods
https://bugs.webkit.org/show_bug.cgi?id=200655
Reviewed by Devin Rousso.
- inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:
(ObjCFrontendDispatcherImplementationGenerator._generate_event_dispatcher_implementations):
Do not include a semicolon in the method implementation.
- inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
- inspector/scripts/tests/generic/expected/enum-values.json-result:
- inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
- inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
- inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
Updated results.
- 11:13 AM Changeset in webkit [248679] by
-
- 2 edits in trunk/LayoutTests
[WebAuthN] Enable LocalAuthenticator for macOS
https://bugs.webkit.org/show_bug.cgi?id=182772
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Skip two more tests that are only expected to run on internal bots.
- 11:05 AM Changeset in webkit [248678] by
-
- 2 edits in trunk/Tools
results.webkit.org: Don't save configuration multiple times in upload
https://bugs.webkit.org/show_bug.cgi?id=200719
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/model/upload_context.py:
(UploadContext.upload_test_results): Move registering of the configuration out
of the branch loop.
- 10:24 AM Changeset in webkit [248677] by
-
- 10 edits in trunk/Source/WebKit
Remove use of emptySessionID from NetworkLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=200712
Reviewed by Alex Christensen.
Make NetworkLoadParameters constructor take a session ID.
Update call sites accordingly.
- NetworkProcess/AdClickAttributionManager.cpp:
(WebKit::AdClickAttributionManager::fireConversionRequest):
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::startPreflight):
- NetworkProcess/NetworkLoadParameters.h:
(WebKit::NetworkLoadParameters::NetworkLoadParameters):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::preconnectTo):
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
(WebKit::WebLoaderStrategy::preconnectTo):
- 10:21 AM Changeset in webkit [248676] by
-
- 2 edits in trunk/Source/WebCore
Update Worker::notifyFinished to not use emptySessionID
https://bugs.webkit.org/show_bug.cgi?id=200710
Reviewed by Alex Christensen.
No change of behavior.
Exit early if context is gone since we should not dispatch events or create worker.
Make sure to unset pending activity using a ScopeExit.
- workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
- 10:16 AM Changeset in webkit [248675] by
-
- 4 edits in trunk/Source/WebKit
Remove use of emptySessionID from WebPageCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=200708
Reviewed by Alex Christensen.
Make WebPageCreationParameters constructor take a SessionID.
Update constructor call sites.
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
(WebKit::WebPageCreationParameters::WebPageCreationParameters):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
- 10:12 AM Changeset in webkit [248674] by
-
- 5 edits in trunk/Source/WebKit
Remove API::PageConfiguration::m_sessionID
https://bugs.webkit.org/show_bug.cgi?id=200670
Reviewed by Alex Christensen.
We can remove this member since it is only accessed for a debug assertion that can be removed without any harm.
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::copy const):
(API::PageConfiguration::setWebsiteDataStore):
- UIProcess/API/APIPageConfiguration.h:
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextCreatePageForWebView):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
- 10:10 AM Changeset in webkit [248673] by
-
- 2 edits in trunk/Tools
Reenable Update ContentFiltering.LazilyLoadPlatformFrameworks test for NetworkExtension
https://bugs.webkit.org/show_bug.cgi?id=200706
Reviewed by Alex Christensen.
Libwebrtc is now soft-linked so we can reenable this test.
- TestWebKitAPI/Tests/WebKitCocoa/ContentFiltering.mm:
(-[LazilyLoadPlatformFrameworksController expectParentalControlsLoaded:networkExtensionLoaded:]):
- 9:39 AM Changeset in webkit [248672] by
-
- 2 edits in trunk/Source/WTF
[JSCOnly] JSCOnly port doesn't build on macOS
https://bugs.webkit.org/show_bug.cgi?id=200667
spi/darwin/ProcessMemoryFootprint.h is required by jsc.cpp so we add it to the WTF_PUBLIC_HEADERS.
Patch by Samuel Groß <saelo@google.com> on 2019-08-14
Reviewed by Alex Christensen.
- wtf/PlatformJSCOnly.cmake:
- wtf/PlatformMac.cmake:
- 8:39 AM Changeset in webkit [248671] by
-
- 4 edits in trunk/Source/WebCore
[LFC][TFC] Implement TableFormattingContext::computePreferredWidthForColumns
https://bugs.webkit.org/show_bug.cgi?id=200701
<rdar://problem/54287828>
Reviewed by Antti Koivisto.
Compute cells' min/max width first.
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns const):
- layout/tableformatting/TableGrid.cpp:
(WebCore::Layout::TableGrid::slot):
(WebCore::Layout::TableGrid::appendCell):
- layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::cells):
- 6:42 AM Changeset in webkit [248670] by
-
- 34 edits in trunk/Source
ThreadableBlobRegistry::blobSize should take a SessionID as parameter
https://bugs.webkit.org/show_bug.cgi?id=200671
Source/WebCore:
Reviewed by Alex Christensen.
Update FormData to compute its byte size based on a SessionID.
We keep a WK1 byte length computation for FormDataElement.
Update FormData call sites accordingly.
Update CacheStorageConnection to implement a SessionID getter.
No change of behavior.
- Modules/cache/CacheStorageConnection.cpp:
(WebCore::CacheStorageConnection::computeRealBodySize):
(WebCore::computeRealBodySize): Deleted.
- Modules/cache/CacheStorageConnection.h:
- Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::sessionID const):
- Modules/cache/WorkerCacheStorageConnection.h:
- fileapi/Blob.cpp:
(WebCore::Blob::size const):
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::blobSize):
- fileapi/ThreadableBlobRegistry.h:
- loader/cache/KeepaliveRequestTracker.cpp:
(WebCore::KeepaliveRequestTracker::tryRegisterRequest):
(WebCore::KeepaliveRequestTracker::registerRequest):
(WebCore::KeepaliveRequestTracker::unregisterRequest):
- page/CacheStorageProvider.h:
(WebCore::CacheStorageProvider::createCacheStorageConnection):
- platform/network/BlobRegistry.h:
- platform/network/FormData.cpp:
(WebCore::computeLengthInBytes):
(WebCore::FormDataElement::lengthInBytes const):
(WebCore::FormData::lengthInBytes const):
- platform/network/FormData.h:
- platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::createHTTPBodyCFReadStream):
- platform/network/curl/CurlFormDataStream.cpp:
(WebCore::m_sessionID):
(WebCore::CurlFormDataStream::computeContentLength):
(WebCore::CurlFormDataStream::CurlFormDataStream): Deleted.
- platform/network/curl/CurlFormDataStream.h:
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::CurlRequest):
- platform/network/curl/CurlRequest.h:
(WebCore::CurlRequest::create):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):
Source/WebKit:
Reviewed by Alex Christensen.
Update WebCacheStorageConnection to implement sessionID getter.
Update NetworkConnectionToWebProcess to get a sessionID as parameter to blobSize computation.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::createCurlRequest):
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::blobSize):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):
- WebProcess/Cache/WebCacheStorageConnection.h:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::blobSize):
- WebProcess/FileAPI/BlobRegistryProxy.h:
Source/WebKitLegacy/mac:
Reviewed by ALex Christensen.
- WebCoreSupport/WebPlatformStrategies.mm:
Source/WebKitLegacy/win:
Reviewed by Alex Christensen.
- WebCoreSupport/WebPlatformStrategies.cpp:
- 4:54 AM Changeset in webkit [248669] by
-
- 3 edits in trunk/Source/WebCore
Remove TouchActionData
https://bugs.webkit.org/show_bug.cgi?id=199668
- dom/Element.cpp:
(WebCore::Element::nearestScrollingNodeIDUsingTouchOverflowScrolling const): Deleted.
As a follow-up also remove this now-unused function.
- dom/Element.h:
- 4:06 AM Changeset in webkit [248668] by
-
- 16 edits in trunk/Source
Remove SessionID default constructor
https://bugs.webkit.org/show_bug.cgi?id=200669
Reviewed by Alex Christensen.
Source/WebCore:
Remove SessionID default constructor
Update CookieRequestHeaderFiledProxy decoder to use an Optional<SessionID>.
Update ServiceWorkerContextData accordingly.
Update RegistrationStore/RegistrationDatabase to store a map of changed registration as follows:
- The RegistrationStore map contains an Optional value. In case of removing, the map will contain WTF::nullopt.
- RegistrationDatabase computes two vectors for removed registrations and updated registrations.
No change of behavior.
- dom/Document.cpp:
- loader/CookieJar.cpp:
(WebCore::CookieJar::cookieRequestHeaderFieldProxy):
- platform/network/CookieRequestHeaderFieldProxy.h:
(WebCore::CookieRequestHeaderFieldProxy::decode):
- workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
- workers/service/ServiceWorkerContextData.h:
(WebCore::ServiceWorkerContextData::decode):
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::pushChanges):
(WebCore::RegistrationDatabase::doPushChanges):
- workers/service/server/RegistrationDatabase.h:
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::pushChangesToDatabase):
(WebCore::RegistrationStore::clearAll):
(WebCore::RegistrationStore::flushChanges):
(WebCore::RegistrationStore::startSuspension):
(WebCore::RegistrationStore::removeRegistration):
- workers/service/server/RegistrationStore.h:
Source/WebCore/PAL:
- pal/SessionID.h:
Source/WebKit:
Update IPC decoder to use an Optional<SessionID>.
Update PageConfiguration to use emptySessionID instead of default constructor.
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::PageConfiguration):
(API::PageConfiguration::sessionID): Deleted.
(API::PageConfiguration::setSessionID): Deleted.
- 3:25 AM Changeset in webkit [248667] by
-
- 7 edits in trunk/Source/WebCore
Make privateBrowsingStateDidChange take an explicit SessionID
https://bugs.webkit.org/show_bug.cgi?id=200666
Reviewed by Alex Christensen.
Instead of stating that the page session ID changed and get it from the page,
pass it directly to privateBrowsingStateDidChange.
No change of behavior.
- dom/Document.cpp:
(WebCore::Document::privateBrowsingStateDidChange):
- dom/Document.h:
- dom/Element.h:
(WebCore::Element::privateBrowsingStateDidChange):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::privateBrowsingStateDidChange):
- html/HTMLMediaElement.h:
- page/Page.cpp:
(WebCore::Page::setSessionID):
- 3:13 AM Changeset in webkit [248666] by
-
- 3 edits in trunk/Source/WebKit
Make WebSWOriginStore::m_webSWServerConnections a WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=200661
Reviewed by Alex Christensen.
- NetworkProcess/ServiceWorker/WebSWOriginStore.cpp:
(WebKit::WebSWOriginStore::importComplete):
(WebKit::WebSWOriginStore::registerSWServerConnection):
(WebKit::WebSWOriginStore::unregisterSWServerConnection):
(WebKit::WebSWOriginStore::didInvalidateSharedMemory):
- NetworkProcess/ServiceWorker/WebSWOriginStore.h:
- 3:11 AM Changeset in webkit [248665] by
-
- 3 edits in trunk/Source/WebKit
NetworkProcess::m_swServerConnections should use WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=200660
Reviewed by Geoffrey Garen.
Use WeakPtr for SWServer connections as an extra safety measure.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::postMessageToServiceWorker):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
- NetworkProcess/NetworkProcess.h:
- 2:40 AM Changeset in webkit [248664] by
-
- 2 edits in trunk/Source/WebKit
Move some WebRTC runtime flags from experimental to internal
https://bugs.webkit.org/show_bug.cgi?id=200672
Reviewed by Eric Carlson.
- Shared/WebPreferences.yaml:
- 2:27 AM Changeset in webkit [248663] by
-
- 2 edits in trunk/Source/WebCore/PAL
Fail decoding an invalid SessionID
https://bugs.webkit.org/show_bug.cgi?id=200663
Reviewed by Alex Christensen.
- pal/SessionID.h:
(PAL::SessionID::isValid const):
(PAL::SessionID::isValidSessionIDValue):
(PAL::SessionID::encode const):
Add a release assert to catch bad sessionID senders.
(PAL::SessionID::decode):
Fail decoding if session ID is not a valid value.
Aug 13, 2019:
- 11:06 PM Changeset in webkit [248662] by
-
- 1 edit4 adds in trunk/LayoutTests
[iPadOS] slides.google.com: Cannot dismiss the context menu by tapping on the canvas
https://bugs.webkit.org/show_bug.cgi?id=200219
<rdar://problem/53650423>
Reviewed by Zalan Bujtas.
While the code change for this bug is all in code private to Safari, we add tests that check that removing implicit pointer capture
or removing the original target element while the pointer is active correctly fires the "pointerup" event at the element that hit tests
at the touch release point.
- pointerevents/ios/pointer-events-implicit-capture-element-removed-while-pointer-active-expected.txt: Added.
- pointerevents/ios/pointer-events-implicit-capture-element-removed-while-pointer-active.html: Added.
- pointerevents/ios/pointer-events-implicit-capture-released-while-pointer-active-expected.txt: Added.
- pointerevents/ios/pointer-events-implicit-capture-released-while-pointer-active.html: Added.
- 8:38 PM Changeset in webkit [248661] by
-
- 3 edits in trunk/Source/JavaScriptCore
Add a way to opt out of kern TCSM for layout tests
https://bugs.webkit.org/show_bug.cgi?id=200649
<rdar://problem/51304923>
Reviewed by Alexey Proskuryakov.
- assembler/CPU.cpp:
(JSC::isKernTCSMAvailable):
- runtime/Options.h:
- 8:17 PM Changeset in webkit [248660] by
-
- 2 edits in trunk/Source/WebCore
Fix the WPE build.
- platform/libwpe/PlatformKeyboardEventLibWPE.cpp:
(WebCore::PlatformKeyboardEvent::keyValueForWPEKeyCode):
(WebCore::PlatformKeyboardEvent::singleCharacterString):
Update for rename from StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).
- 8:15 PM Changeset in webkit [248659] by
-
- 15 edits in trunk
Rename StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32) to avoid accidental change in behavior when replacing append with flexibleAppend
https://bugs.webkit.org/show_bug.cgi?id=200675
Reviewed by Darin Adler.
Source/JavaScriptCore:
- yarr/YarrParser.h:
(JSC::Yarr::Parser::tryConsumeGroupName):
(JSC::Yarr::Parser::tryConsumeUnicodePropertyExpression):
Update for rename from StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).
Source/WebCore:
- bindings/js/JSDOMConvertStrings.cpp:
(WebCore::stringToUSVString):
- css/CSSMarkup.cpp:
(WebCore::serializeCharacter):
(WebCore::serializeIdentifier):
(WebCore::serializeString):
- css/parser/CSSTokenizer.cpp:
(WebCore::CSSTokenizer::consumeStringTokenUntil):
(WebCore::CSSTokenizer::consumeUrlToken):
(WebCore::CSSTokenizer::consumeName):
- html/parser/HTMLEntityParser.cpp:
(WebCore::HTMLEntityParser::consumeNamedEntity):
- platform/mock/mediasource/MockBox.cpp:
(WebCore::MockBox::peekType):
(WebCore::MockTrackBox::MockTrackBox):
- rendering/RenderText.cpp:
(WebCore::capitalize):
- xml/parser/CharacterReferenceParserInlines.h:
(WebCore::consumeCharacterReference):
Update for rename from StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).
Source/WTF:
When we switch StringBuilder::append(...) to be based on the StringConcatenate/makeString flexibleAppend
implementation, if we don't change anything, the behavior of StringBuilder::append(UChar32) will go from
appending a character to appending a stringified number.
To work around this, we can rename StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32)
and update all the call sites.
- wtf/text/StringBuilder.h:
(WTF::StringBuilder::appendCharacter):
Renamed StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::decodeFromFilename):
Update for new name.
Tools:
- TestWebKitAPI/Tests/WTF/StringBuilder.cpp:
(TestWebKitAPI::TEST):
Update for rename from StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).
- 8:00 PM Changeset in webkit [248658] by
-
- 4 edits4 adds in trunk
[WHLSL] Make lexing faster
https://bugs.webkit.org/show_bug.cgi?id=200596
Reviewed by Myles C. Maxfield.
Source/WebCore:
Previously, our lexer would just branch on a series of string compares.
We'd have code like this to match keywords:
`
...
if (matchCurrent("false"))
return FalseToken;
if (matchCurrent("true"))
return TrueToken;
...
`
However, this is extremely inefficient. We now lex using a trie, which means
we never backtrack in the lexer.
This patch is a 3ms speedup in compute_boids.
Tests: webgpu/whlsl/lexing.html
webgpu/whlsl/literals.html
- Modules/webgpu/WHLSL/WHLSLLexer.cpp:
(WebCore::WHLSL::isValidIdentifierStart):
(WebCore::WHLSL::isValidNonStartingIdentifierChar):
(WebCore::WHLSL::isHexadecimalCharacter):
(WebCore::WHLSL::isDigit):
(WebCore::WHLSL::Lexer::consumeTokenFromStream):
(WebCore::WHLSL::Lexer::recognizeKeyword): Deleted.
(WebCore::WHLSL::Lexer::coreDecimalIntLiteral const): Deleted.
(WebCore::WHLSL::Lexer::decimalIntLiteral const): Deleted.
(WebCore::WHLSL::Lexer::decimalUintLiteral const): Deleted.
(WebCore::WHLSL::Lexer::coreHexadecimalIntLiteral const): Deleted.
(WebCore::WHLSL::Lexer::hexadecimalIntLiteral const): Deleted.
(WebCore::WHLSL::Lexer::hexadecimalUintLiteral const): Deleted.
(WebCore::WHLSL::Lexer::intLiteral const): Deleted.
(WebCore::WHLSL::Lexer::uintLiteral const): Deleted.
(WebCore::WHLSL::Lexer::digit const): Deleted.
(WebCore::WHLSL::Lexer::digitStar const): Deleted.
(WebCore::WHLSL::Lexer::character const): Deleted.
(WebCore::WHLSL::Lexer::coreFloatLiteralType1 const): Deleted.
(WebCore::WHLSL::Lexer::coreFloatLiteral const): Deleted.
(WebCore::WHLSL::Lexer::floatLiteral const): Deleted.
(WebCore::WHLSL::Lexer::validIdentifier const): Deleted.
(WebCore::WHLSL::Lexer::identifier const): Deleted.
(WebCore::WHLSL::Lexer::completeOperatorName const): Deleted.
- Modules/webgpu/WHLSL/WHLSLLexer.h:
(WebCore::WHLSL::Lexer::string const): Deleted.
LayoutTests:
- webgpu/whlsl/lexing-expected.txt: Added.
- webgpu/whlsl/lexing.html: Added.
- webgpu/whlsl/literals-expected.txt: Added.
- webgpu/whlsl/literals.html: Added.
- 6:58 PM Changeset in webkit [248657] by
-
- 73 edits1 delete in trunk/Source
shouldRespectImageOrientation should be a value in ImageOrientation
https://bugs.webkit.org/show_bug.cgi?id=200553
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-08-13
Reviewed by Simon Fraser.
Source/WebCore:
This patch is a step towards implementing the css image-orientation.
Instead of having ImageOrientationEnum, ImageOrientationDescription,
ImageOrientation and RespectImageOrientationEnum we are going to have a
single structure named 'ImageOrientation' which is a wrapper for the enum
type "Orientation".
This structure will have a constructor and casting operator such that
assigning an enum value and comparing with an enum value will be done
implicitly.
RespectImageOrientation is represented as a new enum value 'FromImage'.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ImageOrientation const):
(WebCore::CSSPrimitiveValue::operator ImageOrientationEnum const): Deleted.
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::createDragImage const):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint):
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer const):
- page/DragController.cpp:
(WebCore::DragController::doImageDrag):
- platform/DragImage.cpp:
(WebCore::createDragImageFromSnapshot):
(WebCore::createDragImageFromImage):
- platform/DragImage.h:
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::drawPattern):
- platform/graphics/BitmapImage.h:
- platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
- platform/graphics/CrossfadeGeneratedImage.h:
- platform/graphics/CustomPaintImage.cpp:
(WebCore::CustomPaintImage::draw):
- platform/graphics/CustomPaintImage.h:
- platform/graphics/GeneratedImage.h:
- platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::draw):
- platform/graphics/GradientImage.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
- platform/graphics/GraphicsContext.h:
(WebCore::ImagePaintingOptions::ImagePaintingOptions):
- platform/graphics/GraphicsContextImpl.cpp:
(WebCore::GraphicsContextImpl::drawImageImpl):
(WebCore::GraphicsContextImpl::drawTiledImageImpl):
- platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
- platform/graphics/Image.h:
- platform/graphics/ImageFrame.h:
- platform/graphics/ImageOrientation.cpp: Removed.
- platform/graphics/ImageOrientation.h:
(WebCore::ImageOrientation::ImageOrientation):
(WebCore::ImageOrientation::fromEXIFValue):
(WebCore::ImageOrientation::operator Orientation const):
(WebCore::ImageOrientation::usesWidthAsHeight const):
(WebCore::ImageOrientation::transformFromDefault const):
(WebCore::ImageOrientation::isValidOrientation):
(WebCore::ImageOrientation::isValidEXIFOrientation):
(WebCore::ImageOrientationDescription::ImageOrientationDescription): Deleted.
(WebCore::ImageOrientationDescription::setRespectImageOrientation): Deleted.
(WebCore::ImageOrientationDescription::respectImageOrientation): Deleted.
(WebCore::ImageOrientationDescription::setImageOrientationEnum): Deleted.
(WebCore::ImageOrientationDescription::imageOrientation): Deleted.
(WebCore::ImageOrientation::operator ImageOrientationEnum const): Deleted.
(WebCore::ImageOrientation::operator== const): Deleted.
(WebCore::ImageOrientation::operator!= const): Deleted.
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::dump):
- platform/graphics/NamedImageGeneratedImage.cpp:
(WebCore::NamedImageGeneratedImage::draw):
- platform/graphics/NamedImageGeneratedImage.h:
- platform/graphics/NativeImage.h:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::frameOrientationAtIndex const):
- platform/graphics/cairo/CairoOperations.cpp:
(WebCore::Cairo::drawShadowLayerBuffer):
(WebCore::Cairo::drawShadowImage):
(WebCore::Cairo::drawNativeImage):
- platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::draw):
- platform/graphics/cairo/NativeImageCairo.cpp:
(WebCore::drawNativeImage):
- platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawNativeImage):
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::orientationFromProperties):
(WebCore::ImageDecoderCG::frameOrientationAtIndex const):
- platform/graphics/cg/NativeImageCG.cpp:
(WebCore::drawNativeImage):
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
- platform/graphics/cg/PDFDocumentImage.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
(WebCore::MediaPlayerPrivateGStreamerBase::setVideoSourceOrientation):
(WebCore::MediaPlayerPrivateGStreamerBase::updateTextureMapperFlags):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/VideoTextureCopierGStreamer.cpp:
(WebCore::VideoTextureCopierGStreamer::updateTextureSpaceMatrix):
(WebCore::VideoTextureCopierGStreamer::copyVideoTextureToPlatformTexture):
- platform/graphics/gstreamer/VideoTextureCopierGStreamer.h:
- platform/graphics/win/Direct2DOperations.cpp:
(WebCore::Direct2D::drawNativeImage):
- platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
- platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
- platform/graphics/win/ImageDecoderDirect2D.cpp:
(WebCore::ImageDecoderDirect2D::frameOrientationAtIndex const):
- platform/graphics/win/ImageDirect2D.cpp:
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
- platform/graphics/win/NativeImageDirect2D.cpp:
(WebCore::drawNativeImage):
- platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageFromImage):
- platform/image-decoders/ScalableImageDecoderFrame.h:
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::readImageOrientation):
- platform/ios/DragImageIOS.mm:
(WebCore::createDragImageFromImage):
- platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
- platform/win/DragImageCGWin.cpp:
(WebCore::createDragImageFromImage):
- platform/win/DragImageCairoWin.cpp:
(WebCore::createDragImageFromImage):
- platform/win/DragImageDirect2D.cpp:
(WebCore::createDragImageFromImage):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::imageOrientation const):
(WebCore::RenderElement::shouldRespectImageOrientation const): Deleted.
- rendering/RenderElement.h:
- rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage const):
- rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setImageOrientation):
(WebCore::RenderStyle::initialImageOrientation):
(WebCore::RenderStyle::imageOrientation const):
- rendering/style/StyleRareInheritedData.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
(WebCore::SVGImage::draw):
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::draw):
- svg/graphics/SVGImageForContainer.h:
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::imagePositionInformation):
- 6:36 PM Changeset in webkit [248656] by
-
- 2 edits in trunk/Source/WebCore
[WHLSL] Move Qualifiers and Semantic from VariableDeclaration to VariableDeclaration::RareData
https://bugs.webkit.org/show_bug.cgi?id=200696
Reviewed by Myles C. Maxfield.
Shrinking VariableDeclaration by 16 bytes in the common case.
No new tests as there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
- 6:19 PM Changeset in webkit [248655] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248634. rdar://problem/54282811
Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction()
https://bugs.webkit.org/show_bug.cgi?id=200688
Reviewed by Alex Christensen.
Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction().
It passes a RegistrableDomain to another thread without isolated copying it.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248634 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [248654] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248633. rdar://problem/54282803
Fix potential thread safety issue under StorageManager::getSessionStorageOrigins()
https://bugs.webkit.org/show_bug.cgi?id=200684
Reviewed by Geoffrey Garen.
Fix potential thread safety issue under StorageManager::getSessionStorageOrigins(). The origins are being
passed from the background queue to the main thread without isolated copy.
- NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::getSessionStorageOrigins):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248633 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [248653] by
-
- 6 edits2 adds in branches/safari-608-branch
Cherry-pick r248604. rdar://problem/54282801
Source/WebCore:
Event region collection should take clipping into account
https://bugs.webkit.org/show_bug.cgi?id=200668
<rdar://problem/53826561>
Reviewed by Simon Fraser.
Test: pointerevents/ios/touch-action-region-clip-and-transform.html
- rendering/EventRegion.cpp: (WebCore::EventRegionContext::pushClip): (WebCore::EventRegionContext::popClip):
Maintain clip rect stack.
(WebCore::EventRegionContext::unite):
Apply both transforms and clipping.
- rendering/EventRegion.h:
- rendering/RenderBlock.cpp:
- rendering/RenderBox.cpp: (WebCore::RenderBox::pushContentsClip): (WebCore::RenderBox::popContentsClip):
Update clip for non-self-painting layers.
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::clipToRect): (WebCore::RenderLayer::restoreClip):
Update clip for self-painting layers.
LayoutTests:
Event regions collection should take clipping into account
https://bugs.webkit.org/show_bug.cgi?id=200668
<rdar://problem/53826561>
Reviewed by Simon Fraser.
- pointerevents/ios/touch-action-region-clip-and-transform-expected.txt: Added.
- pointerevents/ios/touch-action-region-clip-and-transform.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [248652] by
-
- 5 edits in branches/safari-608-branch
Cherry-pick r248598. rdar://problem/54282797
Crash under IPC::Connection::markCurrentlyDispatchedMessageAsInvalid()
https://bugs.webkit.org/show_bug.cgi?id=200674
<rdar://problem/50692748>
Reviewed by Geoff Garen.
Source/WebKit:
When the client terminates a provisional process (e.g. via the [WKWebView _killWebContentProcessAndResetState]
SPI), the WebProcessProxy would notify its associated WebPageProxy objects that it had terminated but would fail
to notify its associated ProvisionalPageProxy objects. As a result, those objects would not get destroyed and
would still think that they were in the middle of a provisional load the next time a load started. This inconsistent
state would lead to crashes such as the one in the radar.
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::cancel):
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::requestTermination):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:19 PM Changeset in webkit [248651] by
-
- 5 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248597. rdar://problem/54282817
Make sure UniqueIDBDatabaseConnection unregister itself from IDBServer
https://bugs.webkit.org/show_bug.cgi?id=200650
<rdar://problem/54236010>
Reviewed by Youenn Fablet.
We register UniqueIDBDatabaseConnection unconditionally to IDBServer but fail to unregister if UniqueIDBDatabase
of UniqueIDBDatabaseConnection is gone.
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: (WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection): (WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h: (WebCore::IDBServer::UniqueIDBDatabaseConnection::server):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp: (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:05 PM Changeset in webkit [248650] by
-
- 8 edits in trunk/Source/WebCore
[WHLSL] Don't generate empty comma expressions for bare ';'
https://bugs.webkit.org/show_bug.cgi?id=200681
Reviewed by Myles C. Maxfield.
Currently we emit a comma expression with no sub-expression for bare ';', as well as for the initialization of for loops with no initializers.
This crashes the Checker, as it tries to access the last sub-expression of comma expressions.
Instead we should generate an empty statement block for that case.
This problem was found (and originally fixed before the commit was reverted) in https://bugs.webkit.org/show_bug.cgi?id=199726.
I am just isolating the fix here for easier review and debugging.
New test: LayoutTests/webgpu/whlsl/for-loop.html
- Modules/webgpu/WHLSL/AST/WHLSLForLoop.h:
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
- Modules/webgpu/WHLSL/WHLSLASTDumper.cpp:
(WebCore::WHLSL::ASTDumper::visit):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::visit):
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseForLoop):
(WebCore::WHLSL::Parser::parseStatement):
(WebCore::WHLSL::Parser::parseEffectfulExpression):
- Modules/webgpu/WHLSL/WHLSLParser.h:
- Modules/webgpu/WHLSL/WHLSLVisitor.cpp:
(WebCore::WHLSL::Visitor::visit):
- 6:03 PM Changeset in webkit [248649] by
-
- 3 edits in trunk/Tools
[results.webkit.org Timeline] Performance improvement - Skip render offscreen canvas
https://bugs.webkit.org/show_bug.cgi?id=200456
Reviewed by Jonathan Bedard.
This patch disable use the new batch draw method to render canvas directly without any caches, this will save a lot of memory, so that we won't go into the "low memory mode".
This patch also change the axis label collision detact box from a rect to polygon, so that we can dectact click more accurate.
- resultsdbpy/resultsdbpy/view/static/library/js/Utils.js:
- resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(pointPolygonCollisionDetect): Detact
(pointRightRayLineSegmentCollisionDetect):
(ColorBatchRender):
(ColorBatchRender.prototype.lazyCreateColorSeqs):
(ColorBatchRender.prototype.addSeq):
(ColorBatchRender.prototype.batchRender):
(ColorBatchRender.prototype.clear):
(xScrollStreamRenderFactory):
(Timeline.CanvasSeriesComponent):
(offscreenCachedRenderFactory): Deleted.
- 5:31 PM Changeset in webkit [248648] by
-
- 2 edits in trunk/Source/WebCore
Focus rings are black
https://bugs.webkit.org/show_bug.cgi?id=200593
<rdar://problem/54145925>
Patch by Daniel Bates <dabates@apple.com> on 2019-08-13
Reviewed by Wenson Hsieh.
Work around <rdar://problem/50838886> and make focus rings a pretty blue.
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::platformFocusRingColor const):
- 5:29 PM Changeset in webkit [248647] by
-
- 20 edits24 adds in trunk/LayoutTests
Re-sync web-platform-tests/dom/events from upstream
https://bugs.webkit.org/show_bug.cgi?id=200592
Patch by Alexey Shvayka <Alexey Shvayka> on 2019-08-13
Reviewed by Ryosuke Niwa.
Re-sync web-platform-tests/dom/events from upstream 1e6fef09eae3.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- web-platform-tests/dom/events/*: Updated.
LayoutTests:
- TestExpectations:
- platform/ios/TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
- tests-options.json:
- 4:58 PM Changeset in webkit [248646] by
-
- 3 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r248600. rdar://problem/53779679
Reverting change in r248379
rdar://53779679
Unreviewed Test Gardening.
Removed previously set TestExpectations.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@248600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [248645] by
-
- 3 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r248468. rdar://problem/54049321
Correcting Expectation Typo from r248388.
rdar://54049321
Unreviewed Test Gardening.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@248468 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [248644] by
-
- 26 edits25 copies19 adds in branches/safari-608-branch/LayoutTests
Cherry-pick r248424. rdar://problem/53836015
Add Catalina Baselines for Font-related Tests.
rdar://53836015
Unreviewed Test Gardening.
- platform/mac-mojave/css1/basic/inheritance-expected.txt: Copied from LayoutTests/platform/mac/css1/basic/inheritance-expected.txt.
- platform/mac-mojave/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt.
- platform/mac-mojave/css2.1/t0805-c5522-brdr-02-e-expected.txt: Copied from LayoutTests/platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt.
- platform/mac-mojave/css3/selectors3/html/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt.
- platform/mac-mojave/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt.
- platform/mac-mojave/css3/selectors3/xml/css3-modsel-18-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt.
- platform/mac-mojave/fast/block/basic/001-expected.txt: Copied from LayoutTests/platform/mac/fast/block/basic/001-expected.txt.
- platform/mac-mojave/fast/css/css3-nth-child-expected.txt: Copied from LayoutTests/platform/mac/fast/css/css3-nth-child-expected.txt.
- platform/mac-mojave/fast/dom/34176-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/34176-expected.txt.
- platform/mac-mojave/fast/dom/clone-node-dynamic-style-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/clone-node-dynamic-style-expected.txt.
- platform/mac-mojave/fast/forms/plaintext-mode-2-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/plaintext-mode-2-expected.txt.
- platform/mac-mojave/fast/invalid/003-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/003-expected.txt.
- platform/mac-mojave/fast/invalid/004-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/004-expected.txt.
- platform/mac-mojave/fast/invalid/nestedh3s-expected.txt: Copied from LayoutTests/platform/mac/fast/invalid/nestedh3s-expected.txt.
- platform/mac-mojave/fast/selectors/018-expected.txt: Copied from LayoutTests/platform/mac/fast/selectors/018-expected.txt.
- platform/mac-mojave/fast/table/frame-and-rules-expected.txt: Copied from LayoutTests/platform/mac/fast/table/frame-and-rules-expected.txt.
- platform/mac-mojave/fast/text/atsui-multiple-renderers-expected.txt: Copied from LayoutTests/platform/mac/fast/text/atsui-multiple-renderers-expected.txt.
- platform/mac-mojave/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Copied from LayoutTests/platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt.
- platform/mac-mojave/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
- platform/mac-mojave/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
- platform/mac-mojave/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt.
- platform/mac-mojave/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Copied from LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt.
- platform/mac-mojave/svg/batik/text/textStyles-expected.txt: Copied from LayoutTests/platform/mac/svg/batik/text/textStyles-expected.txt.
- platform/mac-mojave/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt.
- platform/mac-mojave/tables/mozilla/other/wa_table_tr_align-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt.
- platform/mac/css1/basic/inheritance-expected.txt:
- platform/mac/css2.1/t0602-c13-inh-underlin-00-e-expected.txt:
- platform/mac/css2.1/t0805-c5522-brdr-02-e-expected.txt:
- platform/mac/css3/selectors3/html/css3-modsel-18-expected.txt:
- platform/mac/css3/selectors3/xhtml/css3-modsel-18-expected.txt:
- platform/mac/css3/selectors3/xml/css3-modsel-18-expected.txt:
- platform/mac/fast/block/basic/001-expected.txt:
- platform/mac/fast/css/css3-nth-child-expected.txt:
- platform/mac/fast/dom/34176-expected.txt:
- platform/mac/fast/dom/clone-node-dynamic-style-expected.txt:
- platform/mac/fast/forms/plaintext-mode-2-expected.txt:
- platform/mac/fast/invalid/003-expected.txt:
- platform/mac/fast/invalid/004-expected.txt:
- platform/mac/fast/invalid/nestedh3s-expected.txt:
- platform/mac/fast/selectors/018-expected.txt:
- platform/mac/fast/table/frame-and-rules-expected.txt:
- platform/mac/fast/text/atsui-multiple-renderers-expected.txt:
- platform/mac/fast/text/bidi-embedding-pop-and-push-same-expected.txt:
- platform/mac/fast/text/font-weights-expected.txt:
- platform/mac/fast/text/font-weights-zh-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt:
- platform/mac/svg/batik/text/textStyles-expected.txt:
- platform/mac/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
- platform/mac/tables/mozilla/other/wa_table_tr_align-expected.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@248424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:58 PM Changeset in webkit [248643] by
-
- 2 edits in branches/safari-608-branch/Tools
Cherry-pick r248496. rdar://problem/54280310
KeyboardInputTests.CaretSelectionRectAfterRestoringFirstResponder API tests time out on iPad
https://bugs.webkit.org/show_bug.cgi?id=200604
<rdar://problem/51273130>
Reviewed by Megan Gardner.
Tweak some API tests so that they work on iPad simulator. These tests checked that the final caret rect was
{{16, 13}, {2, 15}}; however, this is only correct behavior on iPhone, where we will scale the page so that the
focused element's font size is legible. Note that when the page is scaled, we scale the height but not the
width of the caret, which is why the width of the caret (in content coordinates) decreases while the height
remains the same.
We don't have the same behavior on iPad, so the expected caret rect is {{16, 13}, {3, 15}}, which is equal to
the caret rect at initial scale 1.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@248496 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:31 PM Changeset in webkit [248642] by
-
- 9 edits in trunk/Source/JavaScriptCore
Add phase, block, and node numbers to left margin of DFG graph dumps.
https://bugs.webkit.org/show_bug.cgi?id=200693
Reviewed by Saam Barati.
When scrolling through the DFG graph dumps, it's easy to get lost as to which phase
or block one is looking at, especially if the blocks are long. This patch adds
node index, block number, and phase number on the left margin of the dumps.
Here's a sample:
53: %Bd:Function = 0x1079fd960:[Function, {}, NonArray, Proto:0x1079d8000, Leaf]
53: %Bf:Function = 0x1079b0700:[Function, {name:100, prototype:101, length:102, stackTraceLimit:103}, NonArray, Proto:0x1079d8000, Leaf]
53: %Bj:Function = 0x1079fd5e0:[Function, {name:100, length:101, toString:102, apply:103, call:104, bind:105, Symbol.hasInstance:106, caller:107, arguments:108, constructor:109}, NonArray, Proto:0x1079c0000, Leaf]
53: %CV:JSGlobalLexicalEnvironment = 0x1079fd6c0:[JSGlobalLexicalEnvironment, {}, NonArray, Leaf]
53: Phase liveness analysis changed the IR.
54: Beginning DFG phase OSR availability analysis.
54: Before OSR availability analysis:
54: DFG for foo#DXMNag:[0x1079a4850->0x1079a4130->0x1079c7600, DFGFunctionCall, 204 (NeverInline)]:
54: Fixpoint state: FixpointConverged; Form: SSA; Unification state: GloballyUnified; Ref count state: ExactRefCount
54: Argument formats for entrypoint index: 0 : FlushedJSValue, FlushedCell, FlushedJSValue
0 54: Block #0 (bc#0): (OSR target)
0 54: Execution count: 1.000000
0 54: Predecessors:
0 54: Successors:
0 54: Dominated by: #0
0 54: Dominates: #0
0 54: Dominance Frontier:
0 54: Iterated Dominance Frontier:
0 54: Backwards dominates by: #root #0
0 54: Backwards dominates: #0
0 54: Control equivalent to: #0
0 54: States: StructuresAreWatched
0 54: Live:
0 54: Values
0 0 54: 53:< 1:-> JSConstant(JS|UseAsOther, Other, Null, bc#0, ExitValid)
1 0 54: 64:< 2:-> JSConstant(JS|UseAsOther, NonBoolInt32, Int32: 10, bc#0, ExitValid)
2 0 54: 3:< 5:-> JSConstant(JS|PureInt, Other, Undefined, bc#0, ExitValid)
3 0 54: 32:< 1:-> JSConstant(JS|UseAsOther, Bool, False, bc#0, ExitValid)
4 0 54: 19:< 2:-> JSConstant(JS|UseAsOther, OtherObj, Weak:Object: 0x1079d4000 with butterfly 0x0 (Structure %CV:JSGlobalLexicalEnvironment), StructureID: 31423, bc#0, ExitValid)
The numbers in the left margin before the ':' are node index (i.e. the index of the
node in the block, not to be confused with node->index() which is the node ID), block
number, and phase number respectively. Now, we can scroll thru the dumps quickly
and tell at a glance when we've scrolled passed the end of a phase, or block.
These sets of numbers can also serve as a positional marker that we can search for
to return to a node in the dump after scrolling away.
Currently, these numbers are only added to the DFG part. The FTL (from lowering
to B3 onwards) does not have this feature yet.
- dfg/DFGDesiredWatchpoints.cpp:
(JSC::DFG::DesiredWatchpoints::dumpInContext const):
- dfg/DFGDesiredWatchpoints.h:
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dumpCodeOrigin):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):
(JSC::DFG::Prefix::dump const):
- dfg/DFGGraph.h:
(JSC::DFG::Prefix::Prefix):
(JSC::DFG::Prefix::clearBlockIndex):
(JSC::DFG::Prefix::clearNodeIndex):
(JSC::DFG::Prefix::enable):
(JSC::DFG::Prefix::disable):
(JSC::DFG::Graph::prefix):
(JSC::DFG::Graph::nextPhase):
- dfg/DFGPhase.cpp:
(JSC::DFG::Phase::beginPhase):
- dfg/DFGPhase.h:
(JSC::DFG::runAndLog):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGValueRepReductionPhase.cpp:
(JSC::DFG::ValueRepReductionPhase::convertValueRepsToDouble):
- 4:03 PM Changeset in webkit [248641] by
-
- 2 edits in trunk/Source/WebCore
[ContentChangeObserver] adjustStateAndNotifyContentChangeIfNeeded should check isObservationTimeWindowActive()
https://bugs.webkit.org/show_bug.cgi?id=200687
<rdar://problem/54271221>
Reviewed by Simon Fraser.
Move the check to adjustStateAndNotifyContentChangeIfNeeded.
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::adjustObservedState):
- 3:34 PM Changeset in webkit [248640] by
-
- 38 edits4 adds in trunk
Resource Load Statistics: Switch NSURLSession on top navigation to prevalent resource with user interaction
https://bugs.webkit.org/show_bug.cgi?id=200642
<rdar://problem/53962073>
Reviewed by Alex Christensen.
Source/WebCore:
Tests: http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html
http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html
This patch splits m_registrableDomainsToBlockCookieFor in WebCore:NetworkStorageSession into:
- m_registrableDomainsToBlockAndDeleteCookiesFor
- m_registrableDomainsToBlockButKeepCookiesFor
... to support different network load policies based on this distinction.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setITPSessionSwitchingEnabled):
(WebCore::RuntimeEnabledFeatures::itpSessionSwitchingEnabled const):
- page/Settings.yaml:
- platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookies const):
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor const):
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockAndDeleteCookiesFor):
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockButKeepCookiesFor):
(WebCore::NetworkStorageSession::removePrevalentDomains):
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor): Deleted.
- platform/network/NetworkStorageSession.h:
Source/WebKit:
Since prevalent resources with user interaction get to keep their cookies and website
data, we should use a different NSURLSessions for when they are first-party websites
and have access to that data. This patch achieves that.
The WebKit::NetworkDataTaskCocoa constructor now checks with the network storage session
if the first party for this load should be isolated. The category for which this is true
is checked in the new function
WebCore:NetworkStorageSession::shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor()
which in turn is backed by a new split of m_registrableDomainsToBlockCookieFor into:
- m_registrableDomainsToBlockAndDeleteCookiesFor
- m_registrableDomainsToBlockButKeepCookiesFor
... in WebCore:NetworkStorageSession.
Non-isolated sessions are now picked up through the convenience function
WebKit::NetworkSessionCocoa::session() whereas isolated sessions are created lazily and
picked up through WebKit::NetworkSessionCocoa::isolatedSession().
The number of isolated NSURLSessions in memory is capped to 10. When the cap is hit,
the session that's been unused the longest is aged out.
The C API changes are test infrastructure.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::clear):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockAndDeleteCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlockButKeepCookiesFor const):
(WebKit::ResourceLoadStatisticsDatabaseStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainsToBlock const): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsStore::debugLogDomainsInBatches):
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains): Deleted.
(WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains): Deleted.
Dead code.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
(WebKit::RegistrableDomainsToBlockCookiesFor::isolatedCopy const):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcess::scheduleClearInMemoryAndPersistent):
(WebKit::NetworkProcess::hasIsolatedSession const):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::shouldIsolateSessionsForPrevalentTopFrames const):
(WebKit::NetworkSession::hasIsolatedSession const):
(WebKit::NetworkSession::clearIsolatedSessions):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
(WebKit::NetworkSessionCocoa::session):
(WebKit::NetworkSessionCocoa::isolatedSession):
(WebKit::NetworkSessionCocoa::hasIsolatedSession const):
(WebKit::NetworkSessionCocoa::clearIsolatedSessions):
(WebKit::NetworkSessionCocoa::invalidateAndCancel):
(WebKit::NetworkSessionCocoa::clearCredentials):
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsHasIsolatedSession):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasIsolatedSession):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasLocalStorageForTesting const):
(WebKit::WebsiteDataStore::hasIsolatedSessionForTesting const):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
This patch adds test infrastructure to query whether an origin has an
isolated NSURLSession or not.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::hasStatisticsIsolatedSession):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::hasStatisticsIsolatedSession):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-expected.txt: Added.
- http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html: Added.
- http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-expected.txt: Added.
- http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html: Added.
- 3:30 PM Changeset in webkit [248639] by
-
- 2 edits in trunk/LayoutTests
[WebAuthN] Enable LocalAuthenticator for macOS
https://bugs.webkit.org/show_bug.cgi?id=182772
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations: Skip tests that are only expected to run on internal bots.
- 3:30 PM Changeset in webkit [248638] by
-
- 3 edits in trunk/LayoutTests
Unreviewed test gardening, land test expectations for rdar://49790831.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
- 3:14 PM Changeset in webkit [248637] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: content.isJSON is not a function selecting image resource
https://bugs.webkit.org/show_bug.cgi?id=200680
Reviewed by Devin Rousso.
- UserInterface/Views/ResourceClusterContentView.js:
(WI.ResourceClusterContentView.prototype._canUseJSONContentViewForContent):
Protect against non-string data, such as Blob response content.
- 3:13 PM Changeset in webkit [248636] by
-
- 2 edits in trunk/Tools
Update my status in contributors.json to committer.
Reviewed by Unreviewed
- Scripts/webkitpy/common/config/contributors.json:
- 3:12 PM Changeset in webkit [248635] by
-
- 3 edits in trunk/Source/WebCore
[ContentChangeObserver] setShouldObserveDOMTimerScheduling and setShouldObserveTransitions are always called in pairs.
https://bugs.webkit.org/show_bug.cgi?id=200685
<rdar://problem/54269778>
Reviewed by Simon Fraser.
Let's merge these 2 functions.
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::stopObservingPendingActivities):
(WebCore::ContentChangeObserver::adjustObservedState):
- page/ios/ContentChangeObserver.h:
(WebCore::ContentChangeObserver::isObservingDOMTimerScheduling const):
(WebCore::ContentChangeObserver::isObservingContentChanges const):
(WebCore::ContentChangeObserver::setShouldObserveDOMTimerSchedulingAndTransitions):
(WebCore::ContentChangeObserver::setShouldObserveDOMTimerScheduling): Deleted.
(WebCore::ContentChangeObserver::setShouldObserveTransitions): Deleted.
- 2:00 PM Changeset in webkit [248634] by
-
- 2 edits in trunk/Source/WebKit
Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction()
https://bugs.webkit.org/show_bug.cgi?id=200688
Reviewed by Alex Christensen.
Fix potential thread safety issue under WebResourceLoadStatisticsStore::hasHadUserInteraction().
It passes a RegistrableDomain to another thread without isolated copying it.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
- 1:58 PM Changeset in webkit [248633] by
-
- 2 edits in trunk/Source/WebKit
Fix potential thread safety issue under StorageManager::getSessionStorageOrigins()
https://bugs.webkit.org/show_bug.cgi?id=200684
Reviewed by Geoffrey Garen.
Fix potential thread safety issue under StorageManager::getSessionStorageOrigins(). The origins are being
passed from the background queue to the main thread without isolated copy.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
- 1:55 PM Changeset in webkit [248632] by
-
- 3 edits in branches/safari-608-branch/Source/WebKit
Apply patch. rdar://problem/54236234
- 1:43 PM Changeset in webkit [248631] by
-
- 6 edits1 copy4 moves in trunk/Source/WebKit
[WebAuthn] Make CtapHidAuthenticator/U2fHidAuthenticator to CtapAuthenticator/U2fAuthenticator
https://bugs.webkit.org/show_bug.cgi?id=191527
<rdar://problem/54237146>
Reviewed by Chris Dumez.
This patch makes an ABC CtapDriver, which services as an abstract interface for CtapAuthenticator/U2fAuthenticator to talk to
the actual object that implement the specific CTAP protocol that mananges communications over different transports, for example,
CtapHidDriver, such that CtapAuthenticator/U2fAuthenticator can be shared across different transports.
This patch also renames CtapHidAuthenticator/U2fHidAuthenticator to CtapAuthenticator/U2fAuthenticator correspondingly.
- Sources.txt:
- UIProcess/WebAuthentication/Cocoa/HidService.mm:
(WebKit::HidService::continueAddDeviceAfterGetInfo):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.cpp.
(WebKit::CtapAuthenticator::CtapAuthenticator):
(WebKit::CtapAuthenticator::makeCredential):
(WebKit::CtapAuthenticator::continueMakeCredentialAfterResponseReceived const):
(WebKit::CtapAuthenticator::getAssertion):
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::tryDowngrade):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.h: Copied from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h.
- UIProcess/WebAuthentication/fido/CtapDriver.h: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/CtapHidAuthenticator.h.
- UIProcess/WebAuthentication/fido/CtapHidDriver.h:
(WebKit::CtapHidDriver::setProtocol):
- UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.cpp.
(WebKit::U2fAuthenticator::U2fAuthenticator):
(WebKit::U2fAuthenticator::makeCredential):
(WebKit::U2fAuthenticator::checkExcludeList):
(WebKit::U2fAuthenticator::issueRegisterCommand):
(WebKit::U2fAuthenticator::getAssertion):
(WebKit::U2fAuthenticator::issueSignCommand):
(WebKit::U2fAuthenticator::issueNewCommand):
(WebKit::U2fAuthenticator::issueCommand):
(WebKit::U2fAuthenticator::responseReceived):
(WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueCheckOnlyCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueBogusCommandAfterResponseReceived):
(WebKit::U2fAuthenticator::continueSignCommandAfterResponseReceived):
- UIProcess/WebAuthentication/fido/U2fAuthenticator.h: Renamed from Source/WebKit/UIProcess/WebAuthentication/fido/U2fHidAuthenticator.h.
- WebKit.xcodeproj/project.pbxproj:
- 1:26 PM Changeset in webkit [248630] by
-
- 3 edits in trunk/Source/WebCore
[ContentChangeObserver] Scope events in adjustObservedState
https://bugs.webkit.org/show_bug.cgi?id=200679
<rdar://problem/54266172>
Reviewed by Simon Fraser.
This is in preparation for simplifying adjustObservedState.
- page/ios/ContentChangeObserver.cpp:
(WebCore::ContentChangeObserver::didFinishTransition):
(WebCore::ContentChangeObserver::adjustObservedState):
- page/ios/ContentChangeObserver.h:
- 1:08 PM Changeset in webkit [248629] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248499. rdar://problem/54237800
Can’t sort videos on a YouTube channel page on iPad
https://bugs.webkit.org/show_bug.cgi?id=200573
<rdar://problem/53415195>
Reviewed by Darin Adler.
Add a quirk to make touch events non-cancelable (preventDefault() does nothing).
- page/Quirks.cpp: (WebCore::Quirks::shouldMakeTouchEventNonCancelableForTarget const):
- page/Quirks.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248499 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:08 PM Changeset in webkit [248628] by
-
- 7 edits in branches/safari-608-branch/Source
Cherry-pick r248440. rdar://problem/54237795
[Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=200543
Source/WebKit:
Reviewed by Brent Fulgham.
Adopt SPI to issue a process-specific sandbox extension for local file read, passing it the process
identifier of the WebContent process.
- Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::sandboxExtensionForType): (WebKit::SandboxExtension::createHandleForReadByPid):
- Shared/SandboxExtension.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
Source/WTF:
<rdar://problem/49394015>
Reviewed by Brent Fulgham.
Add new SPI.
- wtf/Platform.h:
- wtf/spi/darwin/SandboxSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248627] by
-
- 4 edits in branches/safari-608-branch
Cherry-pick r248548. rdar://problem/54237813
Fix Crash in Mail Search
https://bugs.webkit.org/show_bug.cgi?id=200589
Source/WebKit:
<rdar://problem/53666720>
Reviewed by Tim Horton.
If we search in Mail backwards first, for AppKit reasons
we get a -1 for the index of the found item.
Do not try and insert data in this case.
- UIProcess/mac/WKTextFinderClient.mm:
Tools:
Reviewed by Tim Horton.
If you search backwards first in mail, we would crash,
this tests that codepath.
- TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248548 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248626] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248543. rdar://problem/54237801
Clear m_sessionStorageNamespaces on the background thread
https://bugs.webkit.org/show_bug.cgi?id=200631
<rdar://problem/54149638>
Reviewed by Chris Dumez.
Network process receives messages about web page state from web process and destroys sessionStorageNamespace if
needed. It also receives messages about session state from UI process and destroys StorageManager, which owns
SessionStorageNamespaces, if needed. Because of the race in receiving the messages from different processes,
network process may decide to destroy StorageManager before destroying all SessionStorageNamespaces, and
SessionStorageNamespaces are destroyed with StorageManager on the main thread.
- NetworkProcess/WebStorage/StorageManager.cpp: (WebKit::StorageManager::waitUntilTasksFinished):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248543 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248625] by
-
- 7 edits in branches/safari-608-branch
Cherry-pick r248513. rdar://problem/54237806
Accessibility client cannot navigate to internal links targets on iOS.
https://bugs.webkit.org/show_bug.cgi?id=200559
<rdar://problem/45242534>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-08-10
Reviewed by Zalan Bujtas.
Source/WebCore:
The cause of the problem on iOS is that AccessibilityObject::firstAccessibleObjectFromNode
used in AccessibilityRenderObject::linkedUIElements may return an object
that is ignored by accessibility clients on iOS, and thus the client
would not track the target of an internal link. This change ensures that
accessibilityLinkedElement will return a valid accessibility element to
the client, if it is exists.
- accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::firstAccessibleObjectFromNode): (WebCore::firstAccessibleObjectFromNode):
- accessibility/AccessibilityObject.h:
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper accessibilityLinkedElement]):
LayoutTests:
Extneded this test to not only check that internal links expose their
target, but also that the target is an accessible element. Added a
second test case where the target is contained in a grouping element.
- accessibility/ios-simulator/internal-link-expected.txt:
- accessibility/ios-simulator/internal-link.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248513 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248624] by
-
- 6 edits in branches/safari-608-branch
Cherry-pick r248166. rdar://problem/54237837
[macOS 10.15] Image dragged from Safari does not appear in Notes
https://bugs.webkit.org/show_bug.cgi?id=188490
<rdar://problem/39462717>
Reviewed by Andy Estes.
Source/WebKit:
Removes some logic that clears out the cached promised drag image in the UI process when WebKit is asked to
provide TIFF image data. This prevents the drop destination from asking for promised image data, if anything
else (e.g. the system) also asks the web view to provide the same data. Additionally, this logic didn't
previously guarantee that the promised image would be cleared anyways, since it is dependent on the drop target
actually requesting the promised image in order to perform the cleanup.
In lieu of clearing the promised drag image when it's requested, we instead clear it out upon mainframe
navigation, in PageClientImpl::didCommitLoadForMainFrame.
Test: DragAndDropTests.MultiplePromisedImageDataRequests
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::clearPromisedDragImage): (WebKit::WebViewImpl::pasteboardChangedOwner): (WebKit::WebViewImpl::provideDataForPasteboard):
Fix the bug by not immediately clearing out the promised drag image.
- UIProcess/mac/PageClientImplMac.mm: (WebKit::PageClientImpl::didCommitLoadForMainFrame):
Tools:
Add a test to verify that promised image data can be delivered to multiple pasteboards when performing a drop.
- TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248166 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248623] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248550. rdar://problem/54237677
Contextual menu Hide and Show Link Previews should not have a symbol
https://bugs.webkit.org/show_bug.cgi?id=200645
<rdar://problem/54129647>
Reviewed by Wenson Hsieh.
Don't use an image on the UIMenuItem.
- UIProcess/API/Cocoa/_WKElementAction.mm: (+[_WKElementAction imageForElementActionType:]): Return nil for Show/Hide Link Previews.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248550 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248622] by
-
- 4 edits in branches/safari-608-branch
Cherry-pick r248541. rdar://problem/54237768
[iPadOS] Web pages sometimes load at half width in Safari
https://bugs.webkit.org/show_bug.cgi?id=200624
<rdar://problem/52694257>
Reviewed by Simon Fraser.
Source/WebKit:
- Whenever WKWebView's size changes, it normally notifies the web …
- setViewportConfigurationViewLayoutSize, which remembers this view layout size using a member variable, m_viewportConfigurationViewLayoutSize. Later, m_viewportConfigurationViewLayoutSize is consulted as a part of constructing the creation parameters used to set up a new page.
However, during animated resize, WKWebView avoids these calls to setViewportConfigurationViewLayoutSize via the
dynamic viewport update mode check in -[WKWebView _frameOrBoundsChanged]. Instead, the new view layout size is
pushed to the web process by calling WebPageProxy::dynamicViewportSizeUpdate.
Since dynamicViewportSizeUpdate doesn't update m_viewportConfigurationViewLayoutSize, the next
WebPageCreationParameters that are created with this WebPageProxy (e.g. after a process swap, or after
reloading, if the process was terminated) will use the size of the WKWebView prior to the most recent animated
resize.
To fix the bug, we simply make sure that m_viewportConfigurationViewLayoutSize is updated in the dynamic
viewport size update (i.e. animated resize) case as well.
Test: WebKit.CreateWebPageAfterAnimatedResize
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate):
Tools:
Add an API test to verify that after performing an animated resize and killing the web process, the subsequent
web page is created using the post-animated-resize web view dimensions, rather than the original layout
dimensions.
- TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248541 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248621] by
-
- 6 edits3 adds in branches/safari-608-branch
Cherry-pick r248514. rdar://problem/54236213
REGRESSION (r245974): Missing content on habitburger.com, amazon.com
https://bugs.webkit.org/show_bug.cgi?id=200618
rdar://problem/53920224
Reviewed by Zalan Bujtas.
Source/WebCore:
In r245974 TileController::adjustTileCoverageRect() started to intersect the coverage
rect with the bounds of the layer, which is wrong because this coverage rect is passed down
to descendant layers, and they may project outside the bounds of this tiled layer.
This caused missing dropdowns on amazon.com, and a missing menu on habitburger.com on iPhone.
The fix is to just not do the intersection with the bounds. TileGrid::getTileIndexRangeForRect()
already ensures that we never make tiles outside the bounds of a TileController.
Test: compositing/backing/layer-outside-tiled-parent.html
- platform/graphics/ca/TileController.cpp: (WebCore::TileController::adjustTileCoverageRect):
- platform/graphics/ca/TileGrid.cpp: (WebCore::TileGrid::ensureTilesForRect):
LayoutTests:
- compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
- compositing/backing/layer-outside-tiled-parent.html: Added.
- platform/ios-wk2/compositing/backing/layer-outside-tiled-parent-expected.txt: Added.
- tiled-drawing/tile-coverage-iframe-to-zero-coverage-expected.txt:
- tiled-drawing/tiled-backing-in-window-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248514 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248620] by
-
- 5 edits in branches/safari-608-branch
Cherry-pick r248487. rdar://problem/54237679
[iOS 13] Google Docs/Slides/Sheets: paste often doesn't work and sometimes produces an error
https://bugs.webkit.org/show_bug.cgi?id=200591
<rdar://problem/54102238>
Reviewed by Ryosuke Niwa and Tim Horton.
Source/WebKit:
Adopts UIKit SPI to avoid incrementing the general pasteboard's change count whenever an editable element is
focused. This is due to how, in iOS 13, UIKit temporarily writes an image to the pasteboard when showing the
keyboard, to determine whether or not to show the Memojis in the input view.
This causes UIPasteboard's changeCount to increment twice due to adding and then removing the image, which means
that the changeCount sanity checks in the web process will race against the pasteboard gaining and then losing
this temporary image.
Instead, the new -supportsImagePaste SPI may be used to short-circuit this step, and avoid updating the
changeCount when UIKeyboardImpl's delegate changes.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView supportsImagePaste]):
Tools:
Add a new API test to exercise -supportsImagePaste.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/ios/UIKitSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248487 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248619] by
-
- 6 edits6 adds in branches/safari-608-branch
Cherry-pick r248433. rdar://problem/54237689
[iOS 13] Taps that interrupt momentum scrolling are recognized as clicks
https://bugs.webkit.org/show_bug.cgi?id=200516
<rdar://problem/53889373>
Reviewed by Tim Horton.
Source/WebKit:
After <https://trac.webkit.org/r247656>, the -tracksImmediatelyWhileDecelerating property of WKScrollView and
WKChildScrollView is set to NO. This means that if a user interacts with the page while the scroll view is
decelerating (e.g. after momentum scrolling), the pan gesture recognizer will not be immediately recognized.
This gives other gesture recognizers, such as the synthetic click (single tap) gesture a chance to instead
recognize first. In this particular bug, this causes taps on the web view that are intended to only stop
momentum scrolling to instead activate clickable elements beneath the touch, such as links and buttons.
To mitigate this, we add some logic to prevent the click gesture recognizer from firing in the case where the
tap also causes the scroll view to decelerate. This heuristic is similar to the one introduced in r219310, which
has the same purpose of hiding gestures that stop momentum scrolling from the page, and also consults
-[UIScrollView _isInterruptingDeceleration].
Tests: fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html
fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html
fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizerShouldBegin:]):
Return NO in the case of the single tap gesture if the UIScrollView most recently touched by the single tap
gesture (or one of its enclosing scroll views, up to the main WKScrollView) is being interrupted while
decelerating.
- UIProcess/ios/WKSyntheticTapGestureRecognizer.h:
- UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: (-[WKSyntheticTapGestureRecognizer reset]): (-[WKSyntheticTapGestureRecognizer touchesBegan:withEvent:]):
Teach WKSyntheticTapGestureRecognizer to keep track of the last WKScrollView that was touched, for later use in
-gestureRecognizerShouldBegin:. To do this, we keep a weak reference to the first UIScrollView we find in the
set of touches.
(-[WKSyntheticTapGestureRecognizer lastTouchedScrollView]):
LayoutTests:
Add new layout tests. See below for details.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame-expected.txt: Added.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-main-frame.html: Added.
Add a test to verify that interrupting scrolling in the main frame using a tap doesn't fire a click event.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body-expected.txt: Added.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-after-tap-on-body.html: Added.
Add a test to verify that after triggering momentum scrolling in a fast subscrollable region, tapping outside of
the scroller will still fire a click event.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow-expected.txt: Added.
- fast/scrolling/ios/click-events-during-momentum-scroll-in-overflow.html: Added.
Add a test to verify that interrupting scrolling in a fast subscrollable region using a tap doesn't fire a
click event.
- resources/ui-helper.js: (window.UIHelper.dragFromPointToPoint): (window.UIHelper):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248618] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248430. rdar://problem/54237652
Use "safari" glyph for "Show Link Previews" contextual menu
https://bugs.webkit.org/show_bug.cgi?id=200544
<rdar://problem/54087842>
Reviewed by Tim Horton.
Use the system image for the compass.
- UIProcess/API/Cocoa/_WKElementAction.mm: (+[_WKElementAction imageForElementActionType:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248430 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248617] by
-
- 7 edits1 copy1 add2 deletes in branches/safari-608-branch
Cherry-pick r248338. rdar://problem/54237654
[iPadOS] slides.google.com: tapping near cursor in a slide title focuses the speaker notes
https://bugs.webkit.org/show_bug.cgi?id=200216
Reviewed by Wenson Hsieh.
Source/WebKit:
The bug was caused by a race condition between Google slides removing inputmode="none" from the hidden
content editable and updating the focused region upon receiving a pointerup event, which happens after
the Google slides had already updated its page layout & coordinates based on new visual viewport with
the software keyboard's boudning rect taken into account.
Delay bringing up the software keyboard for a inputmode change until all touches are released.
In the future, we could consider also delaying the software keyboard to be brought in general until
touchend / pointerup events are dispatched but this is rather risky since that could affact random
other websites while Google suites is the only major site to make use of inputmode="none".
This patch also reverts r243044, which was added for Google slides, since it's no longer needed and
interferes with this patch by adding another way to bring up the software keyboard.
Note: Adjusting touchend / pointerup coordinates while the keyboard is being brought up doesn't work
because the page had already updated the layout by then based on new visual viewport size.
Test: fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleTouchEventSynchronously): Call didReleaseAllTouchPoints when all touches are released. (WebKit::WebPageProxy::handleTouchEventAsynchronously): Ditto. (WebKit::WebPageProxy::handleTouchEvent): Ditto.
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::didReleaseAllTouchPoints): Added for non-iOS platforms. (WebKit::WebPageProxy::m_pendingInputModeChange): Added. Used when inputmode is changed while there is an on-going touch interaction.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::elementDidFocus): Clear m_pendingInputModeChange when a new element is focused. (WebKit::WebPageProxy::elementDidBlur): Ditto for bluring. (WebKit::WebPageProxy::focusedElementDidChangeInputMode): Don't bring up the software keyboard now if there are on-going touches by exiting early after setting m_pendingInputModeChange. (WebKit::WebPageProxy::didReleaseAllTouchPoints): Bring up the software keyboard if inputmode had changed from "none" to something else.
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::dispatchTouchEvent): Removed the code added by r243044.
LayoutTests:
Added a new regression test and removed the one added for r243044.
- fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt: Removed.
- fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html: Removed.
- fast/forms/ios/inputmode-change-update-keyboard-after-pointerup-expected.txt: Added.
- fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html: Added.
- fast/forms/ios/inputmode-change-update-keyboard.html: Fixed the test for manual testing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248338 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:01 PM Changeset in webkit [248616] by
-
- 12 edits2 adds in branches/safari-608-branch
Cherry-pick r248301. rdar://problem/54237793
Adopt -expectMinimumUpcomingSampleBufferPresentationTime:
https://bugs.webkit.org/show_bug.cgi?id=200457
<rdar://problem/53961130>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-minimumupcomingpresentationtime.html
Adopt a new API vended by AVSampleBufferDisplayLayer, piped from SourceBuffer down
through SourceBufferPrivate to SourceBufferPrivateAVFObjC. This value should be
reset and updated when new samples are appended.
- Modules/mediasource/SourceBuffer.cpp: (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): (WebCore::SourceBuffer::provideMediaData): (WebCore::SourceBuffer::updateMinimumUpcomingPresentationTime): (WebCore::SourceBuffer::resetMinimumUpcomingPresentationTime): (WebCore::SourceBuffer::minimumUpcomingPresentationTimeForTrackID): (WebCore::SourceBuffer::setMaximumQueueDepthForTrackID):
- Modules/mediasource/SourceBuffer.h:
- platform/graphics/SourceBufferPrivate.h: (WebCore::SourceBufferPrivate::canSetMinimumUpcomingPresentationTime const): (WebCore::SourceBufferPrivate::setMinimumUpcomingPresentationTime): (WebCore::SourceBufferPrivate::clearMinimumUpcomingPresentationTime): (WebCore::SourceBufferPrivate::enqueuedSamplesForTrackID): (WebCore::SourceBufferPrivate::minimumUpcomingPresentationTimeForTrackID): (WebCore::SourceBufferPrivate::setMaximumQueueDepthForTrackID):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const): (WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime): (WebCore::SourceBufferPrivateAVFObjC::clearMinimumUpcomingPresentationTime):
- platform/mock/mediasource/MockSourceBufferPrivate.cpp: (WebCore::MockSourceBufferPrivate::minimumUpcomingPresentationTimeForTrackID): (WebCore::MockSourceBufferPrivate::setMaximumQueueDepthForTrackID): (WebCore::MockSourceBufferPrivate::canSetMinimumUpcomingPresentationTime const): (WebCore::MockSourceBufferPrivate::setMinimumUpcomingPresentationTime): (WebCore::MockSourceBufferPrivate::clearMinimumUpcomingPresentationTime):
- platform/mock/mediasource/MockSourceBufferPrivate.h:
- testing/Internals.cpp: (WebCore::Internals::minimumUpcomingPresentationTimeForTrackID): (WebCore::Internals::setMaximumQueueDepthForTrackID):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/media-source/media-source-minimumupcomingpresentationtime-expected.txt: Added.
- media/media-source/media-source-minimumupcomingpresentationtime.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248615] by
-
- 2 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248295. rdar://problem/54237762
REGRESSION: Cannot tap on any buttons on m.naver.com home screen on iPad
https://bugs.webkit.org/show_bug.cgi?id=200466
Reviewed by Zalan Bujtas.
The page calls preventDefault() for a mouse event generated by a site specific quirk.
- page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
Disable the quirk for the "m." subdomain. This is a mobile site that don't need or expect them.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248295 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248614] by
-
- 4 edits6 adds in branches/safari-608-branch
Cherry-pick r248292. rdar://problem/54236220
[iPadOS] Unable to increase zoom level on Google using the Aa menu
https://bugs.webkit.org/show_bug.cgi?id=200453
<rdar://problem/52278579>
Reviewed by Tim Horton.
Source/WebCore:
Makes a couple of minor adjustments to how layout size scale factor is handled in ViewportConfiguration, to
address some scenarios in which adjusting WKWebView's _viewScale does not have any apparent effect on the page.
See changes below for more detail.
Tests: fast/viewport/ios/non-responsive-viewport-after-changing-view-scale.html
fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale.html
- page/ViewportConfiguration.cpp: (WebCore::ViewportConfiguration::initialScaleFromSize const):
When the page is either zoomed in or zoomed out using _viewScale, let the specified initial scale take
precedence over the scale computed by fitting the content width to the view width, or the scale computed by
fitting the content height to the view height.
This avoids a scenario in which nothing happens when increasing view scale in a responsively designed web page
that has a fixed minimum width. Before this change, when computing the initial scale at a view scale that would
not allow the entire content width of the page to fit within the viewport, the new initial scale would remain
unchanged if the initial scale in the meta viewport is not also set to 1, because a new initial scale would be
computed in ViewportConfiguration::initialScaleFromSize to accomodate for the entire content width.
Our new behavior allows us to zoom into the page, even if doing so would cause horizontal scrolling.
(WebCore::ViewportConfiguration::updateConfiguration):
When the page is either zoomed in or zoomed out using _viewScale and the default viewport configuration has a
fixed width (e.g. on iPhone), then adjust the width of the default viewport configuration to account for the
_viewScale. For example, the default width of a viewport-less web page is 980px on iPhone; at a view scale of 2,
this would become 490px instead, and at 0.5 view scale, it would become 1960px.
This ensures that on iPhone, for web pages without a meta viewport, changing the view scale still changes the
layout and initial scale of the web page.
- page/ViewportConfiguration.h: (WebCore::ViewportConfiguration::layoutSizeIsExplicitlyScaled const):
LayoutTests:
Adds a couple of layout tests (with device-specific expectations) to verify that the two scenarios targeted by
this change are fixed.
- fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
- fast/viewport/ios/non-responsive-viewport-after-changing-view-scale.html: Added.
Verifies that, for a page with no viewport meta tag (where we fall back to a fixed 980px viewport on iPhone),
changing view scale still changes page scale and window size.
- fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
- fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale.html: Added.
Verifies that, for a page with a responsive meta viewport tag containing a fixed-width element that forces a
minimum width for the page, setting the view scale such that the page scrolls horizontally (2.5) doesn't result
in the initial scale being adjusted back to the maximum scale that would accomodate the full contents of the
page (2).
- platform/ipad/fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
- platform/ipad/fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248292 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248613] by
-
- 4 edits in branches/safari-608-branch
Cherry-pick r248281. rdar://problem/54237787
iOS 13: Overflow:hidden on body prevents PDF scroll
https://bugs.webkit.org/show_bug.cgi?id=200435
rdar://problem/53942888
Reviewed by Tim Horton.
Source/WebKit:
When we navigate from an overflow:hidden HTML page to a custom view (like PDF), we need
to make sure that the scroll view is scrollable.
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
Tools:
When we navigate from an overflow:hidden HTML page to a custom view (like PDF), we need
to make sure that the scroll view is scrollable.
- TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248281 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248612] by
-
- 3 edits1 add in branches/safari-608-branch
Cherry-pick r248271. rdar://problem/54237771
JSC: assertion failure in SpeculativeJIT::compileGetByValOnIntTypedArray
https://bugs.webkit.org/show_bug.cgi?id=199997
Reviewed by Saam Barati.
JSTests:
New test.
- stress/typedarray-no-alreadyChecked-assert.js: Added. (checkIntArray): (checkFloatArray):
Source/JavaScriptCore:
No need to ASSERT(node->arrayMode().alreadyChecked(...)) in SpeculativeJIT::compileGetByValOnIntTypedArray()
and compileGetByValOnFloatTypedArray() as the abstract interpreter is conservative and can insert a
CheckStructureOrEmpty which will fail the ASSERT as it checks for the SpecType of the array
and not for SpecEmpty. If we added a check for the SpecEmpty in the ASSERT, there are cases where
it won't be set.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray): (JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248271 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248611] by
-
- 2 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r248189. rdar://problem/54237682
[ Mac ] Layout Test accessibility/mac/press-not-work-for-disabled-menu-list.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196505
<rdar://problem/49532620>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-08-02
Reviewed by Chris Fleizach.
Re-wrote test in a timing independent way. This should fix the intermittent failures.
- accessibility/mac/press-not-work-for-disabled-menu-list.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248189 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248610] by
-
- 2 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r248188. rdar://problem/54237663
Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
https://bugs.webkit.org/show_bug.cgi?id=200394
<rdar://problem/52914964>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-08-02
Reviewed by Chris Fleizach.
Explicitly returning BOOL to avoid error in some compiler configurations.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248609] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r248174. rdar://problem/54237758
[iPadOS] slides.google.com: Full Screen API warning is presented when swiping through slides
https://bugs.webkit.org/show_bug.cgi?id=200313
<rdar://problem/53777001>
Reviewed by Eric Carlson.
Only run the secheuristic scoring during UIGestureRecognizerStateEnded, rather than both
UIGestureRecognizerStateEnded and UIGestureRecognizerStateBegan. The goal of the heuristic is
to detect fake on-screen keyboards by detecting gestures that look like "typing". Using only
UIGestureRecognizerStateEnded still allows us to do this (as typing will usually have identical
geometries for both Ended and Began) without generating false-positives during swipe gestures.
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController _touchDetected:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248174 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248608] by
-
- 8 edits2 adds in branches/safari-608-branch
Cherry-pick r248169. rdar://problem/54237663
Add accessibility object method to determine whether an element is inside a table cell. Needed for iOS accessibility client.
https://bugs.webkit.org/show_bug.cgi?id=200394
<rdar://problem/52914964>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-08-02
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/ios-simulator/element-in-table-cell.html
Added _accessibilityIsInTableCell needed for iOS accessibility client.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm: (-[WebAccessibilityObjectWrapper _accessibilityIsInTableCell]):
Tools:
Glue code to exercise new method [WebAccessibilityObjectWrapper _accessibilityIsInTableCell].
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp: (WTR::AccessibilityUIElement::isInTableCell const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm: (WTR::AccessibilityUIElement::isInTableCell const):
LayoutTests:
New test that exercises [WebAccessibilityObjectWrapper _accessibilityIsInTableCell].
- accessibility/ios-simulator/element-in-table-cell-expected.txt: Added.
- accessibility/ios-simulator/element-in-table-cell.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248169 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:00 PM Changeset in webkit [248607] by
-
- 5 edits1 add in branches/safari-608-branch
Cherry-pick r248149. rdar://problem/54237692
GetterSetter type confusion during DFG compilation
https://bugs.webkit.org/show_bug.cgi?id=199903
Reviewed by Mark Lam.
JSTests:
- stress/cse-propagated-constant-may-not-follow-structure-restrictions.js: Added.
Source/JavaScriptCore:
In AI, we are strongly assuming that GetGetter's child constant value should be GetterSetter if it exists.
However, this can be wrong since nobody ensures that. AI assumed so because the control-flow and preceding
CheckStructure ensures that. But this preceding check can be eliminated if the node becomes (at runtime) unreachable.
Let's consider the following graph.
129:<!0:-> PutByOffset(KnownCell:@115, KnownCell:@115, Check:Untyped:@124, MustGen, id5{length}, 0, W:NamedProperties(5), ClobbersExit, bc#154, ExitValid)
130:<!0:-> PutStructure(KnownCell:@115, MustGen, %C8:Object -> %C3:Object, ID:7726, R:JSObject_butterfly, W:JSCell_indexingType,JSCell_structureID,JSCell_typeInfoFlags,JSCell_typeInfoType, ClobbersExit, bc#154, ExitInvalid)
...
158:<!0:-> GetLocal(Check:Untyped:@197, JS|MustGen|UseAsOther, Final, loc7(R<Final>/FlushedCell), R:Stack(-8), bc#187, ExitValid) predicting Final
210:< 1:-> DoubleRep(Check:NotCell:@158, Double|PureInt, BytecodeDouble, Exits, bc#187, ExitValid)
...
162:<!0:-> CheckStructure(Cell:@158, MustGen, [%Ad:Object], R:JSCell_structureID, Exits, bc#192, ExitValid)
163:< 1:-> GetGetterSetterByOffset(KnownCell:@158, KnownCell:@158, JS|UseAsOther, OtherCell, id5{length}, 0, R:NamedProperties(5), Exits, bc#192, ExitValid)
164:< 1:-> GetGetter(KnownCell:@163, JS|UseAsOther, Function, R:GetterSetter_getter, Exits, bc#192, ExitValid)
At @163 and @164, AI proves that @158's AbstractValue is None because @210's edge filters out Cells @158 is a cell. But we do not invalidate graph status as "Invalid" even if edge filters out all possible value.
This is because the result of edge can be None in a valid program. For example, we can put a dependency edge between a consuming node and a producing node, where the producing node is just like a check and it
does not produce a value actually. So, @163 and @164 are not invalidated. This is totally fine in our compiler pipeline right now.
But after that, global CSE phase found that @115 and @158 are same and @129 dominates @158. As a result, we can replace GetGetter child's @163 with @124. Since CheckStructure is already removed (and now, at runtime,
@163 and @164 are never executed), we do not have any structure guarantee on @158 and the result of @163. This means that @163's CSE result can be non-GetterSetter value.
124:< 2:-> JSConstant(JS|UseAsOther, Final, Weak:Object: 0x1199e82a0 with butterfly 0x0 (Structure %B4:Object), StructureID: 49116, bc#0, ExitValid)
...
126:< 2:-> GetGetter(KnownCell:Kill:@124, JS|UseAsOther, Function, R:GetterSetter_getter, Exits, bc#192, ExitValid)
AI filters out @124's non-cell values. But @126 can get non-GetterSetter cell at AI phase. But our AI code is like the following.
JSValue base = forNode(node->child1()).m_value;
if (base) {
GetterSetter* getterSetter = jsCast<GetterSetter*>(base);
...
Then, jsCast casts the above object with GetterSetter accidentally.
In general, DFG AI can get a proven constant value, which could not be shown at runtime. This happens if the processing node is unreachable at runtime while the graph is not invalid yet, because preceding edge
filters already filter out all the possible execution. DFG AI already considered about this possibility, and it attempts to fold a node into a constant only when the constant input matches against the expected one.
But several DFG nodes are not handling this correctly: GetGetter, GetSetter, and SkipScope.
In this patch, we use
jsDynamicCastto ensure that the constant input matches against the expected (foldable) one, and fold it only when the expectation is met.
We also remove DFG::Node::castConstant and its use. We should not rely on the constant folded value based on graph's control-flow.
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGNode.h: (JSC::DFG::Node::castConstant): Deleted.
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248149 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:49 PM Changeset in webkit [248606] by
-
- 23 edits1 copy1 add in trunk
[WebGPU] Improve GPUBindGroup performance using one device-shared argument MTLBuffer
https://bugs.webkit.org/show_bug.cgi?id=200606
Reviewed by Myles C. Maxfield.
Source/WebCore:
Manage all argument buffer storage for GPUBindGroups in one large MTLBuffer for a GPUDevice.
Vastly improves GPUProgrammablePassEncoder.setBindGroup performance; in alpha MotionMark WebGPU benchmark,
score improves from ~12000 to ~90000.
No expected change in WebGPU behavior, though bind-groups.html has been updated to cover more cases.
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::createBindGroup const):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/gpu/GPUBindGroup.h: No longer manages one unique MTLBuffer per MTLArgumentEncoder.
(WebCore::GPUBindGroup::argumentBuffer const): Delegates to GPUBindGroupAllocator for current argument buffer.
(WebCore::GPUBindGroup::vertexArgsBuffer const): Deleted.
(WebCore::GPUBindGroup::fragmentArgsBuffer const): Deleted.
(WebCore::GPUBindGroup::computeArgsBuffer const): Deleted.
- platform/graphics/gpu/GPUBindGroupAllocator.h: Added. Allocates MTLBuffer for and assigns offsets for argument buffers.
(WebCore::GPUBindGroupAllocator::argumentBuffer const):
- platform/graphics/gpu/GPUBindGroupLayout.h:
- platform/graphics/gpu/GPUBuffer.h: Move MTLResourceUsage calculation to GPUBuffer construction.
(WebCore::GPUBuffer::platformUsage const):
- platform/graphics/gpu/GPUComputePassEncoder.h: Prevent any potiential narrowing issues, as offset can be large.
- platform/graphics/gpu/GPUDevice.cpp: Now owns a GPUBindGroupAllocator for owning all its argument buffer storage.
(WebCore::GPUDevice::tryCreateBindGroup const):
- platform/graphics/gpu/GPUDevice.h:
- platform/graphics/gpu/GPUProgrammablePassEncoder.h:
(WebCore::GPUProgrammablePassEncoder::setVertexBuffer):
(WebCore::GPUProgrammablePassEncoder::setFragmentBuffer):
(WebCore::GPUProgrammablePassEncoder::setComputeBuffer):
- platform/graphics/gpu/GPURenderPassEncoder.h:
- platform/graphics/gpu/GPUTexture.h: Move MTLResourceUsage calculation to GPUTexture construction.
(WebCore::GPUTexture::platformUsage const):
- platform/graphics/gpu/cocoa/GPUBindGroupAllocatorMetal.mm: Added.
(WebCore::GPUBindGroupAllocator::create):
(WebCore::GPUBindGroupAllocator::GPUBindGroupAllocator):
(WebCore::GPUBindGroupAllocator::allocateAndSetEncoders): Ensures that MTLArgumentEncoders have appropriate allocation for encoding.
(WebCore::GPUBindGroupAllocator::reallocate): Create new MTLBuffer large enough for new encoder requirement, and copy over old argument buffer data.
(WebCore::GPUBindGroupAllocator::tryReset): For now, resets argument buffer if all GPUBindGroups created with this allocator are destroyed.
- platform/graphics/gpu/cocoa/GPUBindGroupMetal.mm:
(WebCore::tryGetResourceAsBufferBinding): Add size check.
(WebCore::GPUBindGroup::tryCreate): No longer owns new MTLBuffers. Requests argument buffer space from GPUBindGroupAllocator.
(WebCore::GPUBindGroup::GPUBindGroup):
(WebCore::GPUBindGroup::~GPUBindGroup): Remind allocator to check for possible reset.
(WebCore::tryCreateArgumentBuffer): Deleted.
- platform/graphics/gpu/cocoa/GPUBufferMetal.mm:
(WebCore::GPUBuffer::GPUBuffer):
- platform/graphics/gpu/cocoa/GPUComputePassEncoderMetal.mm:
(WebCore::GPUComputePassEncoder::setComputeBuffer):
- platform/graphics/gpu/cocoa/GPUDeviceMetal.mm:
- platform/graphics/gpu/cocoa/GPUProgrammablePassEncoderMetal.mm:
(WebCore::GPUProgrammablePassEncoder::setBindGroup): No need to recalculate usage every time. Set appropriate argument buffer and offsets for new bind group model.
- platform/graphics/gpu/cocoa/GPURenderPassEncoderMetal.mm:
(WebCore::GPURenderPassEncoder::setVertexBuffer):
(WebCore::GPURenderPassEncoder::setFragmentBuffer):
- platform/graphics/gpu/cocoa/GPUTextureMetal.mm:
(WebCore::GPUTexture::GPUTexture):
LayoutTests:
Update bind-groups.html to better stress GPUBindGroup implementation.
- webgpu/bind-groups-expected.txt:
- webgpu/bind-groups.html:
- 12:35 PM Changeset in webkit [248605] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION (r248533): JSC Command - Need to initializeMainThread() before processing config file
https://bugs.webkit.org/show_bug.cgi?id=200677
Reviewed by Mark Lam.
We need to initialize the main thread before calling processConfigFile() since it uses RefCounted objects
which have "is main thread" ASSERTS.
- jsc.cpp:
(jscmain):
- 12:26 PM Changeset in webkit [248604] by
-
- 6 edits2 adds in trunk
Source/WebCore:
Event region collection should take clipping into account
https://bugs.webkit.org/show_bug.cgi?id=200668
<rdar://problem/53826561>
Reviewed by Simon Fraser.
Test: pointerevents/ios/touch-action-region-clip-and-transform.html
- rendering/EventRegion.cpp:
(WebCore::EventRegionContext::pushClip):
(WebCore::EventRegionContext::popClip):
Maintain clip rect stack.
(WebCore::EventRegionContext::unite):
Apply both transforms and clipping.
- rendering/EventRegion.h:
- rendering/RenderBlock.cpp:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::pushContentsClip):
(WebCore::RenderBox::popContentsClip):
Update clip for non-self-painting layers.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipToRect):
(WebCore::RenderLayer::restoreClip):
Update clip for self-painting layers.
LayoutTests:
Event regions collection should take clipping into account
https://bugs.webkit.org/show_bug.cgi?id=200668
<rdar://problem/53826561>
Reviewed by Simon Fraser.
- pointerevents/ios/touch-action-region-clip-and-transform-expected.txt: Added.
- pointerevents/ios/touch-action-region-clip-and-transform.html: Added.
- 11:54 AM Changeset in webkit [248603] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, build fix for Windows
https://bugs.webkit.org/show_bug.cgi?id=200611
- wtf/win/GDIObject.h:
- 11:28 AM Changeset in webkit [248602] by
-
- 20 edits1 move in trunk
Web Inspector: Styles: show @supports CSS groupings
https://bugs.webkit.org/show_bug.cgi?id=200419
<rdar://problem/53971948>
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/CSS.json:
Rename
CSSMediatoGroupingand remove thesourceLinevalue, as it was never populated
and wasn't used by Web Inspector.
- inspector/scripts/codegen/objc_generator_templates.py:
- inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator.generate_output):
Add support for including files at the end of <WebInspector/RWIProtocol.h> for compatibility
statements so that changes to the Web Inspector protocol don't break other clients.
Source/WebCore:
Test: inspector/css/getMatchedStylesForNode.html
- inspector/InspectorStyleSheet.cpp:
(WebCore::buildArrayForGroupings): Added.
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::buildMediaObject): Deleted.
(WebCore::fillMediaListChain): Deleted.
- css/MediaList.h:
- css/MediaList.cpp:
(WebCore::MediaQuerySet::MediaQuerySet):
Remove thelastLineas it was never set by anyone and wasn't used by Web Inspector.
Source/WebInspectorUI:
- UserInterface/Models/CSSGrouping.js: Renamed from Source/WebInspectorUI/UserInterface/Models/CSSMedia.js.
(WI.CSSGrouping):
(WI.CSSGrouping.prototype.get type):
(WI.CSSGrouping.prototype.get text):
(WI.CSSGrouping.prototype.get sourceCodeLocation):
(WI.CSSGrouping.prototype.get isMedia): Added.
(WI.CSSGrouping.prototype.get isSupports): Added.
(WI.CSSGrouping.prototype.get prefix): Added.
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.get groupings): Added.
(WI.CSSStyleDeclaration.prototype.generateCSSRuleString):
(WI.CSSStyleDeclaration.prototype.get mediaList): Deleted.
- UserInterface/Models/CSSRule.js:
(WI.CSSRule):
(WI.CSSRule.prototype.get groupings): Added.
(WI.CSSRule.prototype.update):
(WI.CSSRule.prototype._selectorResolved):
(WI.CSSRule.prototype.get mediaList): Deleted.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._parseRulePayload):
(WI.DOMNodeStyles.prototype.rulesForSelector): Deleted.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader): Deleted.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration :matches(.header, .header-groupings)): Added.
(.spreadsheet-css-declaration :matches(.header, .header-groupings):first-child): Added.
(.spreadsheet-css-declaration .header-groupings > .grouping): Added.
(.spreadsheet-css-declaration :matches(.header, .header-media)): Deleted.
(.spreadsheet-css-declaration :matches(.header, .header-media):first-child): Deleted.
(.spreadsheet-css-declaration .media-label): Deleted.
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.protocolGroupingTypeToEnum): Added.
(WI.CSSManager.protocolMediaSourceToEnum): Deleted.
- UserInterface/Main.html:
- UserInterface/Test.html:
LayoutTests:
- inspector/css/getMatchedStylesForNode.html:
- inspector/css/getMatchedStylesForNode-expected.txt:
- 11:11 AM Changeset in webkit [248601] by
-
- 2 edits in trunk/Tools
Adds WebAuthn and AppSSO into watchlist
https://bugs.webkit.org/show_bug.cgi?id=200647
Reviewed by Dewei Zhu.
- Scripts/webkitpy/common/config/watchlist:
- 10:34 AM Changeset in webkit [248600] by
-
- 3 edits in trunk/LayoutTests
Reverting change in r248379
rdar://53779679
Unreviewed Test Gardening.
Removed previously set TestExpectations.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
- 10:16 AM Changeset in webkit [248599] by
-
- 2 edits in trunk/LayoutTests
Incorrect head in fast/canvas/webgl/gl-get-calls.html causes test failure
https://bugs.webkit.org/show_bug.cgi?id=200673
Patch by Chris Lord <Chris Lord> on 2019-08-13
Reviewed by Alexey Proskuryakov.
- fast/canvas/webgl/gl-get-calls.html:
- 10:12 AM Changeset in webkit [248598] by
-
- 5 edits in trunk
Crash under IPC::Connection::markCurrentlyDispatchedMessageAsInvalid()
https://bugs.webkit.org/show_bug.cgi?id=200674
<rdar://problem/50692748>
Reviewed by Geoff Garen.
Source/WebKit:
When the client terminates a provisional process (e.g. via the [WKWebView _killWebContentProcessAndResetState]
SPI), the WebProcessProxy would notify its associated WebPageProxy objects that it had terminated but would fail
to notify its associated ProvisionalPageProxy objects. As a result, those objects would not get destroyed and
would still think that they were in the middle of a provisional load the next time a load started. This inconsistent
state would lead to crashes such as the one in the radar.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::cancel):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::requestTermination):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 10:08 AM Changeset in webkit [248597] by
-
- 5 edits in trunk/Source/WebCore
Make sure UniqueIDBDatabaseConnection unregister itself from IDBServer
https://bugs.webkit.org/show_bug.cgi?id=200650
<rdar://problem/54236010>
Reviewed by Youenn Fablet.
We register UniqueIDBDatabaseConnection unconditionally to IDBServer but fail to unregister if UniqueIDBDatabase
of UniqueIDBDatabaseConnection is gone.
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):
- Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
(WebCore::IDBServer::UniqueIDBDatabaseConnection::server):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction):
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction):
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
- 10:05 AM Changeset in webkit [248596] by
-
- 8 edits1 copy1 add in trunk/Source/WebCore
[LFC][TFC] Introduce TableGrid
https://bugs.webkit.org/show_bug.cgi?id=200656
<rdar://problem/54240833>
Reviewed by Antti Koivisto.
table grid:
A matrix containing as many rows and columns as needed to describe the position of all the table-rows
and table-cells of a table-root, as determined by the grid-dimensioning algorithm.
Each row of the grid might correspond to a table-row, and each column to a table-column.
slot of the table grid:
A slot (r,c) is an available space created by the intersection of a row r and a column c in the table grid.
https://www.w3.org/TR/css-tables-3/#terminology
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isTableHeader const):
(WebCore::Layout::Box::isTableBody const):
(WebCore::Layout::Box::isTableFooter const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layout const):
(WebCore::Layout::TableFormattingContext::ensureTableGrid const):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns const):
(WebCore::Layout::TableFormattingContext::computeTableWidth const):
(WebCore::Layout::TableFormattingContext::distributeAvailabeWidth const):
(WebCore::Layout::TableFormattingContext::computeTableHeight const):
(WebCore::Layout::TableFormattingContext::distributeAvailableHeight const):
- layout/tableformatting/TableFormattingContext.h:
(WebCore::Layout::TableFormattingContext::formattingState const):
- layout/tableformatting/TableFormattingState.h:
(WebCore::Layout::TableFormattingState::tableGrid):
- layout/tableformatting/TableGrid.cpp: Added.
(WebCore::Layout::TableGrid::CellInfo::CellInfo):
(WebCore::Layout::TableGrid::SlotInfo::SlotInfo):
(WebCore::Layout::TableGrid::TableGrid):
(WebCore::Layout::TableGrid::appendCell):
(WebCore::Layout::TableGrid::insertCell):
(WebCore::Layout::TableGrid::removeCell):
- layout/tableformatting/TableGrid.h: Copied from Source/WebCore/layout/tableformatting/TableFormattingContext.h.
- 8:34 AM Changeset in webkit [248595] by
-
- 2 edits in trunk/Source/JavaScriptCore
JSContext Inspector: Basic CommandLineAPI doesn't work
https://bugs.webkit.org/show_bug.cgi?id=200659
<rdar://problem/54245476>
Reviewed by Brian Burg.
- inspector/InjectedScriptSource.js:
(BasicCommandLineAPI):
Usemethoddirectly since it already has been setup nicely and doesn't
need to be bound. Technically this allows someone to add properties to
the CommandLineAPI methods in basic mode (dir.property = 1) but that
seems harmless.
- 8:11 AM Changeset in webkit [248594] by
-
- 4 edits in trunk/Source/WebCore
[LFC][TFC] Add rowSpan and colSpan to Box
https://bugs.webkit.org/show_bug.cgi?id=200654
<rdar://problem/54239281>
Reviewed by Antti Koivisto.
colSpan and rowSpan are not part of the RenderStyle. We eventually need to find a more appropriate place for the "random DOM things".
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::setRowSpan):
(WebCore::Layout::Box::setColumnSpan):
(WebCore::Layout::Box::rowSpan const):
(WebCore::Layout::Box::columnSpan const):
- layout/layouttree/LayoutBox.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
- 3:06 AM Changeset in webkit [248593] by
-
- 45 edits1 delete in trunk/Source
Blob registries should be keyed by session IDs
https://bugs.webkit.org/show_bug.cgi?id=200567
Source/WebCore:
<rdar://problem/54120212>
Reviewed by Alex Christensen.
Pass session IDs to all BlobRegistry methods in particular ThreadableLoaderRegistry.
The only exception is blobSize which should be dealt with a follow-up patch.
blobSize blob registry is retrieved from the connection -> sessionID map in Network Process.
Covered by existing tests.
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::~FetchLoader):
(WebCore::FetchLoader::startLoadingBlobURL):
- Modules/fetch/FetchLoader.h:
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::~FileReaderLoader):
(WebCore::FileReaderLoader::start):
- fileapi/FileReaderLoader.h:
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::registerFileBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked):
- fileapi/ThreadableBlobRegistry.h:
- html/PublicURLManager.cpp:
- loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::extendBlobURLLifetimeIfNecessary const):
- platform/network/BlobRegistry.h:
- platform/network/BlobRegistryImpl.cpp:
(WebCore::createBlobResourceHandle):
(WebCore::loadBlobResourceSynchronously):
(WebCore::BlobRegistryImpl::filesInBlob const):
- platform/network/BlobRegistryImpl.h:
- platform/network/FormData.cpp:
(WebCore::appendBlobResolved):
(WebCore::FormData::resolveBlobReferences):
- platform/network/FormData.h:
- platform/network/cf/FormDataStreamCFNet.cpp:
(WebCore::createHTTPBodyCFReadStream):
- platform/network/soup/ResourceRequest.h:
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageBody const):
(WebCore::ResourceRequest::updateSoupMessage const):
Source/WebKit:
<rdar://problem/54120212>
Reviewed by Alex Christensen.
Move blob registry to NetworkSession so that it is partitioned by session ID.
In case session ID is not given through IPC, use the connection as key to get the network session.
This is used for blobSize.
- NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::startDownload):
- NetworkProcess/Downloads/DownloadManager.h:
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
- NetworkProcess/FileAPI/NetworkBlobRegistry.h: Removed.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::resolveBlobReferences):
(WebKit::NetworkConnectionToWebProcess::registerFileBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):
(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):
(WebKit::NetworkConnectionToWebProcess::unregisterBlobURL):
(WebKit::NetworkConnectionToWebProcess::blobSize):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
(WebKit::NetworkConnectionToWebProcess::filesInBlob):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::blobRegistry):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcessPlatformStrategies.cpp:
(WebKit::NetworkProcessPlatformStrategies::createBlobRegistry):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::startNetworkLoad):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::blobRegistry):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::createRequest):
- NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):
- WebProcess/FileAPI/BlobRegistryProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):
- WebProcess/Network/NetworkProcessConnection.h:
Source/WebKitLegacy/mac:
Reviewed by Alex Christensen.
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::createBlobRegistry):
Ignore sessionID parameter for WK1.
Source/WebKitLegacy/win:
<rdar://problem/54120212>
Reviewed by Alex Christensen.
- WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::createBlobRegistry):
- 1:54 AM Changeset in webkit [248592] by
-
- 19 edits1 add in trunk/Source
User Agent and SessionID should be given to NetworkRTCProvider to set up the correct proxy information
https://bugs.webkit.org/show_bug.cgi?id=200583
Reviewed by Eric Carlson.
Source/ThirdParty/libwebrtc:
Export of some symbols.
- Configurations/libwebrtc.iOS.exp:
- Configurations/libwebrtc.iOSsim.exp:
- Configurations/libwebrtc.mac.exp:
Source/WebCore:
Use a socket factory that is specific to the user agent and session ID.
This factory is stored in the media endpoint.
Not testable without proxy infrastructure.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::setConfiguration):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
(WebCore::LibWebRTCProvider::createPeerConnection):
- platform/mediastream/libwebrtc/LibWebRTCProvider.h:
Source/WebKit:
Pass session id and user agent whenever creating a TCP client socket.
Use this information to get the proxy information from NetworkSession and pass it to libwebrtc socket creation.
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::proxyInfoFromSession):
(WebKit::NetworkRTCProvider::createClientTCPSocket):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- NetworkProcess/webrtc/NetworkRTCProvider.mm: Added.
(WebKit::NetworkRTCProvider::proxyInfoFromSession):
- WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
(WebKit::LibWebRTCProvider::createPeerConnection):
(WebKit::LibWebRTCProvider::createSocketFactory):
- WebProcess/Network/webrtc/LibWebRTCProvider.h:
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createServerTcpSocket):
(WebKit::LibWebRTCSocketFactory::createUdpSocket):
(WebKit::LibWebRTCSocketFactory::createClientTcpSocket):
(WebKit::LibWebRTCSocketFactory::createAsyncResolver):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h: