Timeline
Jul 3, 2019:
- 8:39 PM Changeset in webkit [247134] by
-
- 2 edits in trunk/Source/WebKit
Crash in WebDragClient::startDrag because GraphicsContext is nullptr
https://bugs.webkit.org/show_bug.cgi?id=199491
Reviewed by Wenson Hsieh.
Added a nullptr check.
Unfortunately no new tests since we don't have a reproducible test case.
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
- 8:23 PM Changeset in webkit [247133] by
-
- 4 edits in trunk/Source/WebCore
[MSE] Add more debug and error logging
https://bugs.webkit.org/show_bug.cgi?id=199473
<rdar://problem/52615882>
Reviewed by Jer Noble.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::provideMediaData): Log if we don't enqueue every buffer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): Log if we return
without starting playback.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::enqueueSample): Log if
prerollDecodeWithCompletionHandler fails.
- 7:35 PM Changeset in webkit [247132] by
-
- 2 edits in trunk/Source/WebKit
Data Detectors are not working for context menus in clients that use the legacy preview API
https://bugs.webkit.org/show_bug.cgi?id=199486
<rdar://problem/52117322>
Reviewed by Dean Jackson.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
The Data Detectors code in the legacy preview path is guarded by a
#define that did not survive upstreaming. Remove it.
- 6:45 PM Changeset in webkit [247131] by
-
- 6 edits in trunk/Tools
[ews-build] Enable WPE and GTK queues on new EWS
https://bugs.webkit.org/show_bug.cgi?id=199234
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/config.json: Enabled the triggers for GTK and WPE builders.
- BuildSlaveSupport/ews-build/factories.py: Added required build steps for GTKFactory and WPEFactory.
- BuildSlaveSupport/ews-build/steps.py:
(CompileWebKit.evaluateCommand): Added InstallGtkDependencies/InstallWpeDependencies step before Compiling WebKit without patch.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Enable gtk and wpe status-bubbles.
- 6:30 PM Changeset in webkit [247130] by
-
- 4 edits in trunk/LayoutTests
[WHLSL] Support float4x4 in test harness
https://bugs.webkit.org/show_bug.cgi?id=199484
Reviewed by Myles C. Maxfield.
Support WHLSL float4x4 parameters in the WHLSL test harness.
- webgpu/js/whlsl-test-harness.js:
(isScalar):
(convertTypeToArrayType):
(convertTypeToWHLSLType):
(Data):
(makeFloat4):
(makeFloat4x4):
(processArrays):
(async.callFloat4x4Function):
(isVectorType): Deleted. Replaced with isScalar.
Add some float4x4 sanity checks:
- webgpu/whlsl-test-harness-test-expected.txt:
- webgpu/whlsl-test-harness-test.html:
- 6:29 PM Changeset in webkit [247129] by
-
- 4 edits2 adds in trunk
RELEASE_ASSERT in WebCore: WebCore::ScrollingStateTree::insertNode()
https://bugs.webkit.org/show_bug.cgi?id=199479
rdar://problem/52392556
Reviewed by Zalan Bujtas.
Source/WebCore:
Certain compositing tree updates could leave a layer with a ScrollingProxy role, but having an
AncestorClippingStack with no overflow scrolling layers - for example, a related scroller could become
scrollable, but we failed to mark the layer with the ancestor clippings stack as needing a geometry update.
When this happened updateScrollingNodeForScrollingProxyRole() would return 0, causing the next child to be
inserted with a parent of 0 (which should only happen for the root), and triggering a release assert in
ScrollingStateTree::insertNode().
Fix by ensuring that updateScrollingNodeForScrollingProxyRole() always returns the existing parentNodeID if we
don't have a new node to insert.
Test: scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAncestorClippingStack):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingProxyRole):
LayoutTests:
- scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer-expected.txt: Added.
- scrollingcoordinator/scrolling-tree/scrolling-proxy-with-no-scrolling-layer.html: Added.
- 6:18 PM Changeset in webkit [247128] by
-
- 2 edits in trunk/Source/WebCore
RenderLayerCompositor.cpp should include RenderImage.h
https://bugs.webkit.org/show_bug.cgi?id=199478
Reviewed by Michael Catanzaro.
- rendering/RenderLayerCompositor.cpp:
- 6:15 PM Changeset in webkit [247127] by
-
- 8 edits in trunk/Source/WebCore
[WHLSL] Remove the phase resolveCallsInFunctions
https://bugs.webkit.org/show_bug.cgi?id=199474
Reviewed by Myles C. Maxfield.
This pass only stores into each property access and call expression vectors of all the functions it might be calling, for use by the Checker afterwards.
But the checker is perfectly able to compute a pointer to these vectors by itself.
So by removing this pass, we gain the following:
- One less pass over the AST
- No need to copy these vectors (which can be large for heavily overloaded functions, of which there are quite a few in the stdlib)
- No need to have these vectors in the expressions, saving 24 bytes per CallExpression and 72 bytes per PropertyAccessExpression
- No need to allocate and then destroy these vectors.
No new tests as there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:
(WebCore::WHLSL::AST::CallExpression::castReturnType):
- Modules/webgpu/WHLSL/AST/WHLSLPropertyAccessExpression.h:
- Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:
(WebCore::WHLSL::AutoInitialize::visit):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveFunction):
(WebCore::WHLSL::Checker::finishVisiting):
(WebCore::WHLSL::Checker::visit):
- Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
(WebCore::WHLSL::NameResolver::NameResolver):
(WebCore::WHLSL::NameResolver::visit):
- Modules/webgpu/WHLSL/WHLSLNameResolver.h:
- Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
- 6:13 PM Changeset in webkit [247126] by
-
- 2 edits in trunk/Source/WebKit
StorageManager::suspend() sometimes fails to call its completion handler
https://bugs.webkit.org/show_bug.cgi?id=199482
Reviewed by Youenn Fablet.
Make sure the completion handler gets called in the early return cases.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::suspend):
- 6:10 PM Changeset in webkit [247125] by
-
- 3 edits in trunk/Source/WebKit
Make CacheStorage::Engine directory listing operations in a background thread
https://bugs.webkit.org/show_bug.cgi?id=199470
Reviewed by Chris Dumez.
Use the io work queue to get the list of directories.
Then go back to main thread and trigger clear/fetch operation as currently done.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::ReadOriginsTaskCounter::create):
(WebKit::CacheStorage::ReadOriginsTaskCounter::ReadOriginsTaskCounter):
(WebKit::CacheStorage::Engine::getDirectories):
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::Engine::fetchDirectoryEntries):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDisk):
(WebKit::CacheStorage::Engine::clearCachesForOriginFromDirectories):
- NetworkProcess/cache/CacheStorageEngine.h:
- 6:06 PM Changeset in webkit [247124] by
-
- 7 edits1 delete in trunk/Source/WebCore
[WHLSL] Make the destructor of VariableDeclaration non-virtual
https://bugs.webkit.org/show_bug.cgi?id=199460
Reviewed by Myles C. Maxfield.
Three steps:
- Remove WHLSL::AST::Value, inlining it into its children (it is trivial, it just has one field m_origin with a getter and nothing else)
- Mark WHLSL::AST::VariableDeclaration final
- Now that it inherits from nothing and nothing can inherit from it, there is no reason for it to have any virtual method, including its destructor.
This not only saves 8 bytes from every variable declaration (for the virtual table pointer), it also should make destructing the AST at the end of compilation a bit faster by removing the virtual destructor call.
No new tests as there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLAST.h:
- Modules/webgpu/WHLSL/AST/WHLSLExpression.h:
(WebCore::WHLSL::AST::Expression::Expression):
(WebCore::WHLSL::AST::Expression::origin const):
- Modules/webgpu/WHLSL/AST/WHLSLStatement.h:
(WebCore::WHLSL::AST::Statement::Statement):
(WebCore::WHLSL::AST::Statement::origin const):
- Modules/webgpu/WHLSL/AST/WHLSLValue.h: Removed.
- Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
- Modules/webgpu/WHLSL/WHLSLParser.h:
- WebCore.xcodeproj/project.pbxproj:
- 5:58 PM Changeset in webkit [247123] by
-
- 12 edits in trunk
Only allow fetching and removing session credentials from WebsiteDataStore
https://bugs.webkit.org/show_bug.cgi?id=199385
Reviewed by Alex Christensen.
Source/WebCore:
Fetch and remove only session credentials from NSURLCredentialStorage.
Modified existing API tests: WKWebsiteDataStore.FetchPersistentCredentials
- platform/network/CredentialStorage.cpp:
(WebCore::CredentialStorage::originsWithCredentials const):
(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
- platform/network/CredentialStorage.h:
- platform/network/mac/CredentialStorageMac.mm:
(WebCore::CredentialStorage::originsWithSessionCredentials):
(WebCore::CredentialStorage::removeSessionCredentialsWithOrigins):
(WebCore::CredentialStorage::clearSessionCredentials):
(WebCore::CredentialStorage::originsWithPersistentCredentials): Deleted.
Source/WebKit:
Stop sending an extra message to network process for fetching or removing persistent credentials.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::deleteWebsiteDataForRegistrableDomains):
(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::originsWithPersistentCredentials): Deleted.
(WebKit::NetworkProcess::removeCredentialsWithOrigins): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
(TestWebKitAPI::TEST):
- 5:57 PM Changeset in webkit [247122] by
-
- 2 edits in trunk/Websites/webkit.org
Added a domain check for validation URLs in Apple Pay demo.
https://bugs.webkit.org/show_bug.cgi?id=199433
Patch by Jon Davis <Jon Davis> on 2019-07-03
Reviewed by David Kilzer.
- demos/payment-request/merchant-validation.php:
- 5:49 PM Changeset in webkit [247121] by
-
- 2 edits in trunk/Source/WebCore
The destructor of CSSAnimationControllerPrivate must explicitly clear the composite animations
https://bugs.webkit.org/show_bug.cgi?id=199415
Reviewed by Simon Fraser.
After the destructor of CSSAnimationControllerPrivate exists, the non
static members are deleted. When the HashMap m_compositeAnimations is
deleted, its entries are deleted. The destructor of CompositeAnimation
calls the method CSSAnimationControllerPrivate::animationWillBeRemoved()
back through its back reference m_animationController. The non static
members of CSSAnimationControllerPrivate are being deleted and it is
incorrect to try to use any of these members after exiting the destructor.
We need to explicitly clear the composite animations before exiting the
destructor of CSSAnimationControllerPrivate.
- page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::~CSSAnimationControllerPrivate):
- 5:42 PM Changeset in webkit [247120] by
-
- 5 edits in trunk
UI process exception when dragging an <attachment> with no content type
https://bugs.webkit.org/show_bug.cgi?id=199480
<rdar://problem/44351353>
Reviewed by Wenson Hsieh.
Source/WebKit:
- UIProcess/API/Cocoa/APIAttachmentCocoa.mm:
(API::Attachment::mimeType const):
(API::Attachment::utiType const):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::startDrag):
Make null or empty contentType fail the drag, instead of crashing.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
Add a test; before the change, it crashes.
- 5:23 PM Changeset in webkit [247119] by
-
- 9 edits in trunk/Source/WebKit
Clarify threading model for WebResourceLoadStatisticsStore::dumpResourceLoadStatistics()
https://bugs.webkit.org/show_bug.cgi?id=199468
Reviewed by Youenn Fablet.
Our convention is that the WebResourceLoadStatisticsStore is always created, used and
destroyed on the main thread, while the ResourceLoadStatisticsStore is always created,
used and destroyed on the background queue.
r245517 broke this convention by introducing a tryDumpResourceLoadStatistics() method
to WebResourceLoadStatisticsStore which gets called on the background queue. This patch
fixes this since this has been a huge source of thread-safety bugs in the past.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::dumpResourceLoadStatistics):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::dumpResourceLoadStatistics):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
(WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved const):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::dumpResourceLoadStatistics):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- 5:08 PM Changeset in webkit [247118] by
-
- 6 edits in trunk/Source/WebCore
HTMLMediaElement can hold onto display sleep assertion while process is suspended.
https://bugs.webkit.org/show_bug.cgi?id=199471
<rdar://problem/52124320>
If the WebContent process is suspended before HTMLMediaElement gets a callback telling it
that the MediaPlayer has stopped playing, the SleepDisabler may stay set (and hold a display
or system sleep assertion) for the entire duration the process is suspended, causing excess
power drain.
Add a PlatformMediaSessionClient method (and an implementation in HTMLMediaElement) which will
be called during the preperation for process suspension, and in this callback, clear the
SleepDisabler token.
Reviewed by Eric Carlson.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::shouldDisableSleep const):
(WebCore::HTMLMediaElement::processIsSuspendedChanged):
- html/HTMLMediaElement.h:
- platform/audio/PlatformMediaSession.h:
(WebCore::PlatformMediaSessionClient::processIsSuspendedChanged):
- platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::processWillSuspend):
(WebCore::PlatformMediaSessionManager::processDidResume):
- platform/audio/PlatformMediaSessionManager.h:
(WebCore::PlatformMediaSessionManager::processIsSuspended const):
- 4:26 PM Changeset in webkit [247117] by
-
- 18 edits4 adds in trunk
[Catalina] Enable WebKit build
https://bugs.webkit.org/show_bug.cgi?id=199209
Reviewed by Darin Adler.
Source/WebCore:
No new tests, Catalina test expectations will be migrated in the near future.
- WebCorePrefix.h: Exclude the header which declares SecTrustedApplicationCreateFromPath unavailable on Mac.
- crypto/mac/SerializedCryptoKeyWrapMac.mm: Ensure that we define SecTrustedApplicationCreateFromPath
before other headers declare it unavailable on Mac.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h: Add new NSURLSessionConfiguration SPI.
- pal/spi/mac/AVFoundationSPI.h: resourceConservationLevelWhilePaused should
be defined after AVPlayerResourceConservationLevel.
- pal/spi/mac/NSViewSPI.h: Add subviewsIvar.
Source/WebKit:
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.h: AppSSO is SPI.
- WebKit2Prefix.h: SecTask.h declares SecTaskGetCodeSignStatus(...) unavailable
on Mac, exclude this header.
Source/WebKitLegacy:
- mac/WebView/WebHTMLView.mm: Move NSView declaration to SPI header.
- mac/WebView/WebView.mm: Use _subviewsIvar instead of _subviews.
Source/WTF:
- wtf/spi/cocoa/SecuritySPI.h: Declare SecTrustedApplicationCreateFromPath(...).
Tools:
- TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Add Mac framework stubs.
WebKitLibraries:
- WebKitPrivateFrameworkStubs/Mac: Added.
- WebKitPrivateFrameworkStubs/Mac/101500: Added.
- WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework: Added.
- WebKitPrivateFrameworkStubs/Mac/101500/AuthKit.framework/AuthKit.tbd: Added.
- 4:22 PM Changeset in webkit [247116] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r246817): fast/events/ios/key-events-comprehensive/key-events-{control, control-shift}.html are failing
https://bugs.webkit.org/show_bug.cgi?id=199465
<rdar://problem/52613496>
Reviewed by Wenson Hsieh.
Don't advertise that WebKit can perform cursor movements when there isn't some kind of selection.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView canPerformAction:withSender:]):
- 3:52 PM Changeset in webkit [247115] by
-
- 24 edits3 copies3 adds in trunk
[WHLSL] Standard library is too big to directly include in WebCore
https://bugs.webkit.org/show_bug.cgi?id=198186
<rdar://problem/51288898>
Reviewed by Saam Barati.
Source/WebCore:
This patch adds almost the entire remainder of the standard library. There are a few
pieces missing:
- step() because of https://bugs.webkit.org/show_bug.cgi?id=199289
- sign() also because of https://bugs.webkit.org/show_bug.cgi?id=199289
- faceforward() because it calls sign()
- Some of the more rarely-used texturing functions (e.g. Gather()) https://bugs.webkit.org/show_bug.cgi?id=195813
- RWTextures https://bugs.webkit.org/show_bug.cgi?id=198985
There were two problems with adding so many standard library functions:
- We didn't want to increase the WebCore binary size that much
- Compiling all the functions at runtime took 7 seconds, which is much too long
This patch addresses the first problem by gzipping the standard library before including it in the binary.
At runtime, we use libcompression to unzip it.
To address the second problem, we did some analysis and found that 14% of that 7 seconds was simply
destroying all the AST nodes. Even if we eliminated all processing of the AST, simply having the AST
of the entire standard library built and destroyed would still be too slow. Therefore, this patch limits
which parts of the standard library get parsed in the first place. All the functions in the standard library
file are sorted by name, and each group of functions with the same name are preceeded by a comment of the
form /* Functions named xyz */. At build time, a Python script looks for all these comments, and builds a
map from function name to character offset inside the file where those functions begin. At run time, we
parse the user program first, look for all function calls within it, and look up those function call names
in the map to see which part of the standard library holds those functions. We then parse just that part.
Because the standard library can call other functions in the standard library, we do this in a loop until
we have exhausted all the functions.
Covered by existing tests.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make: gzip the standard library, and add a build step to generate the offset map.
- Modules/webgpu/WHLSL/AST/WHLSLCallExpression.h:
(WebCore::WHLSL::AST::CallExpression::setOverloads):
(WebCore::WHLSL::AST::CallExpression::function): Every caller of this ASSERT()s the result. Might as well
move the ASSERT() into the function.
(WebCore::WHLSL::AST::CallExpression::setFunction):
- Modules/webgpu/WHLSL/Cocoa/WHLSLStandardLibraryUtilities.cpp: Added.
(WebCore::WHLSL::decompressStandardLibrary): Use libcompression. This is why this file is in a Cocoa/
subfolder, and is listed in SourcesCocoa.txt instead of Sources.txt.
(WebCore::WHLSL::decompressAndDecodeStandardLibrary):
(WebCore::WHLSL::NameFinder::takeFunctionNames):
(WebCore::WHLSL::includeStandardLibrary): Include only the bits of the standard library which are relevant,
as described above.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp: Only emit MSL code for functions which are actually
reached. The MSL compiler is a significant amount of our compile time, so reducing the size of the emitted
program can significantly improve compile times.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::sharedMetalFunctions):
(WebCore::WHLSL::Metal::metalFunctions):
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::writeNativeFunction):
- Change how load() and store() are written. We need explicit functions because we have explicit atomic types, which HLSL doesn't have. load() and store() aren't present in HLSL.
- Delete f16tof32 because they're probably not important and are not obvious how to implement. We can re-add them again later if necessary.
- Various fixes to make us generate the correct MSL code for each standard library function.
- Modules/webgpu/WHLSL/WHLSLBuildStandardLibraryFunctionMap.py: Added. Build the function map as described
above.
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveByInstantiation): Previously, the standard library included an operator== for two
pointers. However, that function should be generated by the compiler instead. This fixes the bug in the
compiler which allows the compiler to correctly generate the right function. This also prompted me to file
https://bugs.webkit.org/show_bug.cgi?id=199335
(WebCore::WHLSL::checkOperatorOverload):
(WebCore::WHLSL::Checker::visit):
- Modules/webgpu/WHLSL/WHLSLFunctionStageChecker.cpp: Update to the new function() signature.
- Modules/webgpu/WHLSL/WHLSLLexer.h: Add a new position() method to the lexer. This isn't actually used
in this patch, but it's useful when doing some analysis during parsing.
(WebCore::WHLSL::Lexer::Lexer):
(WebCore::WHLSL::Lexer::consumeToken):
(WebCore::WHLSL::Lexer::peek const):
(WebCore::WHLSL::Lexer::peekFurther const):
(WebCore::WHLSL::Lexer::position const):
(WebCore::WHLSL::Lexer::state const):
(WebCore::WHLSL::Lexer::setState):
(WebCore::WHLSL::Lexer::isFullyConsumed const): Fixes a bug where isFullyConsumed() might return true even
when there is a token in the ring buffer.
(WebCore::WHLSL::Lexer::peek): Deleted.
(WebCore::WHLSL::Lexer::peekFurther): Deleted.
- Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
(WebCore::WHLSL::NameResolver::visit): Drive-by partial fix of https://bugs.webkit.org/show_bug.cgi?id=199347
- Modules/webgpu/WHLSL/WHLSLPrepare.cpp: Call includeStandardLibrary().
(WebCore::WHLSL::prepareShared):
- Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
- Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp:
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
- Modules/webgpu/WHLSL/WHLSLStandardLibraryFunctionMap.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp.
- Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.h: Copied from Source/WebCore/Modules/webgpu/WHLSL/WHLSLRecursionChecker.cpp.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
LayoutTests:
The standard library doesn't include any matrix constructors that broadcast a single value
to every field in a matrix. https://bugs.webkit.org/show_bug.cgi?id=199333
- webgpu/whlsl-matrix.html:
- 3:42 PM Changeset in webkit [247114] by
-
- 2 edits in trunk/LayoutTests
Skip the test added in r246810 as it requires the simulator to be preconfigured with a Pinyin keyboard
<rdar://problem/52608620>
We will remove this prerequisite in <https://bugs.webkit.org/show_bug.cgi?id=199472>.
- platform/ios/TestExpectations:
- 3:16 PM Changeset in webkit [247113] by
-
- 2 edits in trunk/Source/WebCore
Exception thrown from -[AVSampleBufferRenderSynchronizer addRenderer:], not a valid renderer.
https://bugs.webkit.org/show_bug.cgi?id=199419
<rdar://problem/52141139>
Reviewed by Eric Carlson.
Sometimes, -[AVSampleBufferDisplayLayer init] will return nil. When that happens, passing a nil
pointer to -addRenderer: will throw an exception.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
- 3:16 PM Changeset in webkit [247112] by
-
- 2 edits in trunk/Source/WebKit
Fix a couple of thread safety issues in ResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=199463
Reviewed by Alex Christensen.
The ResourceLoadStatisticsStore object is constructed / used / destroyed on a background queue.
It is therefore not safe to use a WeakPtr to the ResourceLoadStatisticsStore on the main thread.
The safe pattern is to have the ResourceLoadStatisticsStore capture a Ref<> of its m_store before
dispatching to the main thread and use this store on the main thread instead of weakThis->m_store.
ResourceLoadStatisticsStore's m_store is constructed / used / destroyed on the main thread.
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::removeDataRecords):
(WebKit::ResourceLoadStatisticsStore::processStatisticsAndDataRecords):
- 3:14 PM Changeset in webkit [247111] by
-
- 2 edits in trunk/Source/WebKit
Isolate CacheStorage::Engine path when hopping to a background thread
https://bugs.webkit.org/show_bug.cgi?id=199461
Reviewed by Chris Dumez.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::initialize):
- 3:11 PM Changeset in webkit [247110] by
-
- 15 edits in trunk/Source/WebCore
[WHLSL] "Semantic" should be held by a unique_ptr, not an Optional
https://bugs.webkit.org/show_bug.cgi?id=199462
Reviewed by Myles C. Maxfield.
Most StructureElement, FunctionDeclaration and (especially) VariableDeclaration don't have a 'Semantic' field.
Using an Optional<Semantic> to represent this is a major memory waste, as Semantic is 56 bytes, so Optional<Semantic> is 64 bytes!
Putting one level of indirection through a unique_ptr thus saves 56 bytes for each VariableDeclaration (and FunctionDeclaration and StructureElement) that does not have a Semantic,
at the low cost of one pointer dereference when accessing the field for those that have one.
This patch also reorders the fields of FunctionDefinition to save another 8 bytes.
No new tests as there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:
(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::semantic):
- Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):
- Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:
(WebCore::WHLSL::AST::StructureElement::StructureElement):
(WebCore::WHLSL::AST::StructureElement::semantic):
- Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
(WebCore::WHLSL::AST::VariableDeclaration::VariableDeclaration):
(WebCore::WHLSL::AST::VariableDeclaration::semantic):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
- Modules/webgpu/WHLSL/WHLSLGatherEntryPointItems.cpp:
(WebCore::WHLSL::Gatherer::visit):
(WebCore::WHLSL::gatherEntryPointItems):
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseSemantic):
- Modules/webgpu/WHLSL/WHLSLParser.h:
- Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
(WebCore::WHLSL::preserveVariableLifetimes):
- Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::visit):
- Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:
(WebCore::WHLSL::synthesizeArrayOperatorLength):
- Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:
(WebCore::WHLSL::synthesizeConstructors):
- Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:
(WebCore::WHLSL::synthesizeEnumerationFunctions):
- Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:
(WebCore::WHLSL::synthesizeStructureAccessors):
- 2:59 PM Changeset in webkit [247109] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r246053.
This changeset caused media playback to break when the hosting app was backgrounded.
- UIProcess/ApplicationStateTracker.mm:
- UIProcess/ios/ProcessAssertionIOS.mm:
(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _scheduleReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _cancelPendingReleaseTask]):
(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):
- 2:43 PM Changeset in webkit [247108] by
-
- 1 edit in tags/Safari-608.1.33.1/Source/WTF/wtf/Platform.h
Apply patch. rdar://problem/52001635
- 2:38 PM Changeset in webkit [247107] by
-
- 7 edits in tags/Safari-608.1.33.1/Source
Versioning.
- 2:36 PM Changeset in webkit [247106] by
-
- 1 copy in tags/Safari-608.1.33.1
New tag.
- 2:20 PM Changeset in webkit [247105] by
-
- 17 edits1 move in trunk/Source/WebCore
[WHLSL] WHLSL::AST::Node is useless
https://bugs.webkit.org/show_bug.cgi?id=199391
Reviewed by Dean Jackson.
It has no member, no non-trivial method, and we never access an AST node completely generically.
So WHLSL::AST::Node can be removed, as a first step towards removing the virtual table pointer from most AST nodes (and avoiding a virtual destructor call at the end of the compiler).
No new test because there is no functional change.
- Modules/webgpu/WHLSL/AST/WHLSLAST.h:
- Modules/webgpu/WHLSL/AST/WHLSLBaseFunctionAttribute.h:
- Modules/webgpu/WHLSL/AST/WHLSLBaseSemantic.h:
- Modules/webgpu/WHLSL/AST/WHLSLEnumerationMember.h:
- Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:
- Modules/webgpu/WHLSL/AST/WHLSLNamedType.h:
- Modules/webgpu/WHLSL/AST/WHLSLReplaceWith.h: Renamed from Source/WebCore/Modules/webgpu/WHLSL/AST/WHLSLNode.h.
(WebCore::WHLSL::AST::replaceWith):
- Modules/webgpu/WHLSL/AST/WHLSLStructureElement.h:
- Modules/webgpu/WHLSL/AST/WHLSLType.h:
- Modules/webgpu/WHLSL/AST/WHLSLTypeDefinition.h:
- Modules/webgpu/WHLSL/AST/WHLSLUnnamedType.h:
- Modules/webgpu/WHLSL/AST/WHLSLValue.h:
- Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
- Modules/webgpu/WHLSL/WHLSLParser.h:
- Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
- Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
- WebCore.xcodeproj/project.pbxproj:
- 2:16 PM Changeset in webkit [247104] by
-
- 8 edits in trunk/Source/WebCore
Strengthen updating/removing of registrations from the database
https://bugs.webkit.org/show_bug.cgi?id=199450
rdar://problem/51891395
Reviewed by Chris Dumez.
SWServerWorker is ref counted and has a ref to its SWServer.
There is thus a possibility for SWServerWorker to live longer than its SWServer.
To mitigate this, have SWServerWorker use a WeakPtr<SWServer> and
check whether SWServer is null when receiving messages from WebProcess.
Make also sure that RegistrationStore updated registration map does not get corrupted by checking
the registration keys explicitly.
Covered by existing tests.
- workers/service/ServiceWorkerRegistrationKey.h:
(WebCore::ServiceWorkerRegistrationKey::operator!= const):
(WebCore::ServiceWorkerRegistrationKey::isEmpty const):
- workers/service/server/RegistrationStore.cpp:
(WebCore::RegistrationStore::updateRegistration):
(WebCore::RegistrationStore::removeRegistration):
(WebCore::RegistrationStore::addRegistrationFromDatabase):
- workers/service/server/RegistrationStore.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::workerByID const):
(WebCore::SWServer::removeRegistration):
- workers/service/server/SWServer.h:
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::SWServerWorker):
(WebCore::m_scriptResourceMap):
(WebCore::SWServerWorker::contextData const):
(WebCore::SWServerWorker::terminate):
(WebCore::SWServerWorker::scriptContextFailedToStart):
(WebCore::SWServerWorker::scriptContextStarted):
(WebCore::SWServerWorker::didFinishInstall):
(WebCore::SWServerWorker::didFinishActivation):
(WebCore::SWServerWorker::contextTerminated):
(WebCore::SWServerWorker::findClientByIdentifier const):
(WebCore::SWServerWorker::matchAll):
(WebCore::SWServerWorker::userAgent const):
(WebCore::SWServerWorker::claim):
(WebCore::SWServerWorker::skipWaiting):
(WebCore::SWServerWorker::setHasPendingEvents):
(WebCore::SWServerWorker::setState):
- workers/service/server/SWServerWorker.h:
(WebCore::SWServerWorker::server):
- 2:01 PM Changeset in webkit [247103] by
-
- 5 edits in trunk/Source/WebKit
Use smarter pointers in WKDownloadProgress
https://bugs.webkit.org/show_bug.cgi?id=199456
<rdar://problem/51392926>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-03
Reviewed by Chris Dumez.
There's still a problem related to our use of raw pointers. Let's just not use raw pointers.
- NetworkProcess/Downloads/Download.h:
- NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:
(WebKit::Download::publishProgress):
- NetworkProcess/Downloads/cocoa/WKDownloadProgress.h:
- NetworkProcess/Downloads/cocoa/WKDownloadProgress.mm:
(-[WKDownloadProgress performCancel]):
(-[WKDownloadProgress initWithDownloadTask:download:URL:sandboxExtension:]):
(-[WKDownloadProgress progressCancelled]): Deleted.
- 1:46 PM Changeset in webkit [247102] by
-
- 33 edits in trunk
Adopt simple structured bindings in more places
https://bugs.webkit.org/show_bug.cgi?id=199247
Reviewed by Alex Christensen.
Replaces simple uses of std::tie() with structured bindings. Does not touch
uses of std::tie() that are not initial declarations, use std::ignore or in
case where the binding is captured by a lambda, as structured bindings don't
work for those cases yet.
Source/JavaScriptCore:
- runtime/PromiseDeferredTimer.cpp:
(JSC::PromiseDeferredTimer::doWork):
- wasm/WasmFaultSignalHandler.cpp:
(JSC::Wasm::trapHandler):
- wasm/js/JSWebAssemblyHelpers.h:
(JSC::createSourceBufferFromValue):
- wasm/js/WebAssemblyPrototype.cpp:
(JSC::webAssemblyValidateFunc):
Source/WebCore:
- css/StyleResolver.cpp:
(WebCore::checkForOrientationChange):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
- platform/graphics/PathUtilities.cpp:
(WebCore::PathUtilities::pathWithShrinkWrappedRectsForOutline):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::lastResortFallbackFont):
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
- platform/network/SocketStreamHandleImpl.cpp:
(WebCore::cookieDataForHandshake):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState):
(WebCore::createMarkedTextFromSelectionInBox):
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintSelectionBackground):
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::constructAttributeName const):
Source/WebKit:
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::printSpeculativeLoadingDiagnosticMessageCounts):
- NetworkProcess/cache/PrefetchCache.cpp:
(WebKit::PrefetchCache::clearExpiredEntries):
- Platform/IPC/MessageReceiverMap.cpp:
(IPC::MessageReceiverMap::removeMessageReceiver):
- UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
(WebKit::PlaybackSessionManagerProxy::invalidate):
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::requestHideAndExitFullscreen):
(WebKit::VideoFullscreenManagerProxy::hasMode const):
(WebKit::VideoFullscreenManagerProxy::mayAutomaticallyShowVideoPictureInPicture const):
(WebKit::VideoFullscreenManagerProxy::isPlayingVideoInEnhancedFullscreen const):
(WebKit::VideoFullscreenManagerProxy::applicationDidBecomeActive):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::didCleanupFullscreen):
- UIProcess/ios/SmartMagnificationController.mm:
(WebKit::SmartMagnificationController::zoomFactorForTargetRect):
(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
(WebKit::SmartMagnificationController::magnify):
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit:: const):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation):
(WebKit::WebPage::performDictionaryLookupForSelection):
- WebProcess/cocoa/PlaybackSessionManager.mm:
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::removeContext):
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::removeContext):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::willExitFullscreen):
(WebKit::VideoFullscreenManager::didEnterFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):
(WebKit::VideoFullscreenManager::setVideoLayerFrameFenced):
Source/WebKitLegacy/mac:
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForText]):
Tools:
- TestWebKitAPI/ios/PreferredContentMode.mm:
(TestWebKitAPI::TEST):
- 1:25 PM Changeset in webkit [247101] by
-
- 10 edits in trunk/Source
PACCage should first cage leaving PAC bits intact then authenticate
https://bugs.webkit.org/show_bug.cgi?id=199372
Reviewed by Saam Barati.
Source/bmalloc:
- bmalloc/ProcessCheck.mm:
(bmalloc::shouldProcessUnconditionallyUseBmalloc):
Source/JavaScriptCore:
This ordering prevents someone from taking a signed pointer from
outside the gigacage and using it in a struct that expects a caged
pointer. Previously, the PACCaging just double checked that the PAC
bits were valid for the original pointer.
+---------------------------+
| | | |
| "PAC" | "base" | "offset" +----+
| | | | |
+---------------------------+ | Caging
| |
| |
| v
| +---------------------------+
| | | | |
| Bit Merge | 00000 | base | "offset" |
| | | | |
| +---------------------------+
| |
| |
v | Bit Merge
+---------------------------+ |
| | | | |
| "PAC" | base | "offset" +<--------+
| | | |
+---------------------------+
|
|
| Authenticate
|
v
+---------------------------+
| | | |
| Auth | base | "offset" |
| | | |
+---------------------------+
The above ascii art graph shows how the PACCage system works. The
key take away is that even if someone passes in a valid, signed
pointer outside the cage it will still fail to authenticate as the
"base" bits will change before authentication.
- assembler/MacroAssemblerARM64E.h:
- assembler/testmasm.cpp:
(JSC::testCagePreservesPACFailureBit):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::caged):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cageConditionally):
- llint/LowLevelInterpreter64.asm:
Source/WTF:
- wtf/CagedPtr.h:
(WTF::CagedPtr::get const):
(WTF::CagedPtr::getMayBeNull const):
(WTF::CagedPtr::mergePointers):
- 12:59 PM Changeset in webkit [247100] by
-
- 3 edits2 moves2 adds in trunk
REGRESSION (iOS 13): Tapping an element with a click event handler no longer clears the selection
https://bugs.webkit.org/show_bug.cgi?id=199430
Reviewed by Tim Horton.
Source/WebCore:
After <trac.webkit.org/r245067>, we no longer immediately clear the text selection when recognizing a single tap
in WKContentView, and instead only clear it out in the case where the single tap didn't result in a click event
in the web process. This fixed an issue wherein the text selection would be prematurely cleared when tapping,
but also made it such that tapping on an element with a click event handler would not cause the selection to
change, even if preventDefault() is not called on mousedown. On web pages that add a click event listener to
document.body, it's nearly impossible to dismiss text selections by tapping elsewhere in the body.
On macOS, this works because EventHandler::handleMousePressEventSingleClick contains logic to modify the
selection when handling a mousedown, as a part of default behavior. However, there is platform-specific logic
added in <trac.webkit.org/r233311> that avoids changing the selection when handling a synthetic mousedown on
iOS; this is because we defer to the single tap text interaction gesture on iOS, which (among other things)
provides additional support for moving the selection to word boundaries, instead of the editing position
directly under the click.
However, no such platform-specific text interaction single tap gesture exists for non-editable text, so there's
no reason we need to bail in the case where the root editable element is null. We can fix this bug without
breaking the fix in r233311 by matching macOS behavior and not bailing via early return in the case where the
single tap would move selection into non-editable text.
Tests: editing/selection/ios/clear-selection-after-tapping-on-element-with-click-handler.html
editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html
- page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick):
LayoutTests:
Add and adjust layout tests to verify that calling preventDefault() on mousedown on iOS causes an existing
selection to not be cleared, and that tapping in an element with a click handler clears out the selection.
- editing/selection/ios/clear-selection-after-tapping-on-element-with-click-handler-expected.txt: Added.
- editing/selection/ios/clear-selection-after-tapping-on-element-with-click-handler.html: Added.
- editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler-expected.txt: Renamed.
- editing/selection/ios/persist-selection-after-tapping-on-element-with-mousedown-handler.html:
Renamed from LayoutTests/editing/selection/ios/persist-selection-after-tapping-on-element-with-click-handler.html,
and adjusted to call preventDefault() on mousedown events instead of click events. Also, remove a bit of
trailing whitespace.
- 12:53 PM Changeset in webkit [247099] by
-
- 2 edits in trunk/LayoutTests
Rebaseline fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html
https://bugs.webkit.org/show_bug.cgi?id=199459
Unreviewed Test Gardening.
Patch by Russell Epstein <russell_e@apple.com> on 2019-07-03
- fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
- 12:53 PM Changeset in webkit [247098] by
-
- 6 edits2 copies2 adds in trunk
Source/WebKit:
[ContentChangeObserver] REGRESSION (r244356): Drop down menus collapse without user input - Ebay.com
https://bugs.webkit.org/show_bug.cgi?id=199457
<rdar://problem/52386563>
Reviewed by Simon Fraser.
There's a fixed, 32ms window for observing content changes after the tap is committed. r244356 introduced the fast-click behavior on form elements by omitting this fixed window and
dispatch the synthetic click on the target node.
This patch preserves the fast-click behavior, but now we stay at hover if the mouseMove event triggers a synchronous actionable visiblity change (as opposed to always proceed with click).
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleSyntheticClick):
LayoutTests:
REGRESSION (r244356): Drop down menus collapse without user input - Ebay.com
https://bugs.webkit.org/show_bug.cgi?id=199457
<rdar://problem/52386563>
Reviewed by Simon Fraser.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change-expected.txt: Added.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-async-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change-expected.txt: Added.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element-with-clickable-change.html: Copied from LayoutTests/fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html.
- fast/events/touch/ios/content-observation/tap-on-input-type-button-element.html:
- 12:52 PM Changeset in webkit [247097] by
-
- 9 edits6 adds in trunk/Source/JavaScriptCore
Refactoring of architectural Register Information
https://bugs.webkit.org/show_bug.cgi?id=198604
Patch by Paulo Matos <Paulo Matos> on 2019-07-03
Reviewed by Keith Miller.
The goal of this patch is to centralize the register information per platform
but access it in a platform independent way. The patch as been implemented for all
known platforms: ARM64, ARMv7, MIPS, X86 and X86_64. Register information has
been centralized in an architecture per-file: each file is called assembler/<arch>Registers.h.
RegisterInfo.h is used as a forwarding header to choose which register information to load.
assembler/<arch>Assembler.h and jit/RegisterSet.cpp use this information in a platform
independent way.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::gprName): Use register names from register info file.
(JSC::ARM64Assembler::sprName): likewise.
(JSC::ARM64Assembler::fprName): likewise.
- assembler/ARM64Registers.h: Added.
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::gprName): Use register names from register info file.
(JSC::ARMv7Assembler::sprName): likewise.
(JSC::ARMv7Assembler::fprName): likewise.
- assembler/ARMv7Registers.h: Added.
- assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::gprName): Use register names from register info file.
(JSC::MIPSAssembler::sprName): likewise.
(JSC::MIPSAssembler::fprName): likewise.
- assembler/MIPSRegisters.h: Added.
- assembler/RegisterInfo.h: Added.
- assembler/X86Assembler.h:
(JSC::X86Assembler::gprName): Use register names from register info file.
(JSC::X86Assembler::sprName): likewise.
(JSC::X86Assembler::fprName): likewise.
- assembler/X86Registers.h: Added.
- assembler/X86_64Registers.h: Added.
- jit/GPRInfo.h: Fix typo in comment (s/basline/baseline).
- jit/RegisterSet.cpp:
(JSC::RegisterSet::reservedHardwareRegisters): Use register properties from register info file.
(JSC::RegisterSet::calleeSaveRegisters): likewise.
- 12:50 PM Changeset in webkit [247096] by
-
- 4 edits2 deletes in trunk/Source/WebKit
[GTK][WPE] Remove Flatpak sandbox
https://bugs.webkit.org/show_bug.cgi?id=199416
Patch by Patrick Griffis <Patrick Griffis> on 2019-07-03
Reviewed by Michael Catanzaro.
The flatpak-spawn based sandbox was only a proof of concept and
lacks flexibility for our needs so we ended up using it with very
permissive permissions and it still imposed limitations that our main
bubblewrap sandbox didn't have.
So in order to get as many applications using the sandbox as possible we
will just remove this for now and focus on bubblewrap. At some point
it may be possible to improve flatpak-spawn to fit our needs.
- SourcesGTK.txt:
- SourcesWPE.txt:
- UIProcess/Launcher/glib/FlatpakLauncher.cpp: Removed.
- UIProcess/Launcher/glib/FlatpakLauncher.h: Removed.
- UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:
(WebKit::ProcessLauncher::launchProcess):
- 11:11 AM Changeset in webkit [247095] by
-
- 8 edits in trunk/Source
Unreviewed, rolling out r246616.
Caused http/tests/inspector/network/har/har-page.html to fail
on Catalina.
Reverted changeset:
"Web Inspector: Network: replace CFNetwork SPI with new API
where able"
https://bugs.webkit.org/show_bug.cgi?id=198762
https://trac.webkit.org/changeset/246616
- 10:48 AM Changeset in webkit [247094] by
-
- 3 edits in trunk/Source/WebKit
Crash under WTF::RefCounted<WebKit::TaskCounter>::deref()
https://bugs.webkit.org/show_bug.cgi?id=199453
<rdar://problem/51991477>
Reviewed by Youenn Fablet.
The crash was caused by StorageManager::suspend() getting called on the main thread but calling
its completion handler on a background queue. The completion handler was capturing a TaskCounter
object which is RefCounted (not ThreadSafeRefCounted).
Address the issue by making sure StorageManager::suspend() calls its completion handler on the
main thread. Also get rid of TaskCounter and use a WTF::CallbackAggregator instead.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::actualPrepareToSuspend):
(WebKit::TaskCounter::TaskCounter): Deleted.
(WebKit::TaskCounter::~TaskCounter): Deleted.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::suspend):
- 10:40 AM Changeset in webkit [247093] by
-
- 5 edits in trunk
Safari hanging while loading pages - WebCore::AccessibilityRenderObject::visiblePositionRangeForLine.
https://bugs.webkit.org/show_bug.cgi?id=199434
<rdar://problem/52475140>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-03
Reviewed by Chris Fleizach.
Source/WebCore:
Tests were disabled until underlying bug is fixed.
Rolling out a workaround for CharacterIterator::advance bug because it
seems to be causing a hang in Safari.
- editing/Editing.cpp:
(WebCore::visiblePositionForIndexUsingCharacterIterator):
LayoutTests:
Disabled the tests that were passing for workaround. The workaround had
to be roll out cause it is hanging Safari.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- 10:28 AM Changeset in webkit [247092] by
-
- 3 edits in trunk/Source/WebKit
Make sure to cross-thread copy in StorageManager when hopping back to the main thread
https://bugs.webkit.org/show_bug.cgi?id=199423
Reviewed by Chris Dumez.
Make sure to isolate copy some strings that may not be isolated in case of ephemeral sessions.
Small refactoring to use crossThreadCopy instead of doing vector copy ourselves.
- NetworkProcess/WebStorage/LocalStorageDatabaseTracker.h:
(WebKit::LocalStorageDatabaseTracker::OriginDetails::isolatedCopy const):
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
- 5:26 AM Changeset in webkit [247091] by
-
- 2 edits in trunk/Tools
Unreviewed follow-up fix to r247049, default the platform to '*' when platform property is not set.
- BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration.run):
- 1:04 AM BuildingCairoOnWindows edited by
- (diff)
- 12:00 AM Changeset in webkit [247090] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed. Fix build break introduced in r247058.
Patch by Joonghun Park <jh718.park@samsung.com> on 2019-07-02
- UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
Jul 2, 2019:
- 11:13 PM Changeset in webkit [247089] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r246723): ScrollingTreeOverflowScrollProxyNode::m_overflowScrollingNodeID is uninitialized sometimes
https://bugs.webkit.org/show_bug.cgi?id=199432
Reviewed by Antti Koivisto.
I noticed while debugging rdar://problem/52291642 that m_overflowScrollingNodeID was uninitialized in
ScrollingTreeOverflowScrollProxyNode. This could lead to the wrong node being found by m_scrollingTree->nodeForID(),
which could result in type confusion bugs.
This can happen with negative z-order layers when we fail to find their related scrolling tree node
on the first pass.
- page/scrolling/cocoa/ScrollingTreeOverflowScrollProxyNode.h:
- 11:01 PM Changeset in webkit [247088] by
-
- 3 edits1 add in trunk
JSTests:
Exception from For..of loop assignment eliminates TDZ checks in subsequent code
https://bugs.webkit.org/show_bug.cgi?id=199395
Reviewed by Filip Pizlo.
New regession test.
- stress/for-of-tdz-with-try-catch.js: Added.
(test):
(i.catch):
Source/JavaScriptCore:
Exception from For..of loop destructured assignment eliminates TDZ checks in subsequent code
https://bugs.webkit.org/show_bug.cgi?id=199395
Reviewed by Filip Pizlo.
For destructuring assignmests, the assignment might throw a reference error if
the RHS cannot be coerced. The current bytecode generated for such assignments
optimizes out the TDZ check after the coercible check.
By saving the current state of the TDZ stack before processing the setting of
target destructured values and then restoring afterwards, we won't optimize out
later TDZ check(s).
A similar change of saving / restoring the TDZ stack where exceptions might
happen was done for for..in loops in change set r232219.
- bytecompiler/NodesCodegen.cpp:
(JSC::ObjectPatternNode::bindValue const):
- 10:43 PM Changeset in webkit [247087] by
-
- 3 edits in trunk/Source/WebCore
FetchResponse::BodyLoader should not be movable
https://bugs.webkit.org/show_bug.cgi?id=199380
Reviewed by Youenn Fablet.
The FetchResponse::BodyLoader class has a FetchLoader member that is
initialized in the start() method with the reference of the owning
FetchResponse::BodyLoader object. This reference doesn't change when
the FetchResponse::BodyLoader object is moved into a different object
and the FetchLoader unique_ptr along with it, leading to problems when
that FetchLoader tries to invoke the FetchLoaderClient methods on the
FetchResponse::BodyLoader object that's been moved from and is possibly
already destroyed.
To avoid this, the FetchResponse::BodyLoader has the move constructor
removed and is now managed through std::unique_ptr instead of Optional,
ensuring the FetchResponse::BodyLoader object itself isn't moved around.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::didFail):
- Modules/fetch/FetchResponse.h:
- 8:42 PM Changeset in webkit [247086] by
-
- 4 edits4 deletes in trunk/LayoutTests
imported/blink/animations/display-inline-style-adjust.html isn't a valid ref test
https://bugs.webkit.org/show_bug.cgi?id=199311
Reviewed by Simon Fraser.
These tests are depending on platform font metrics. They were
created for a Blink bug, doesn't seem useful for WebKit. Just
removed them.
- imported/blink/animations/display-inline-style-adjust.html: Deleted.
- legacy-animation-engine/imported/blink/animations/display-inline-style-adjust.html: Deleted.
- platform/gtk/TestExpectations: Unmarked them.
- platform/ios/TestExpectations: Ditto.
- platform/wpe/TestExpectations: Ditto.
- 6:41 PM Changeset in webkit [247085] by
-
- 7 edits7 adds in trunk
Assertion fires when animating the 'class' attribute of an SVG element
https://bugs.webkit.org/show_bug.cgi?id=197372
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-07-02
Reviewed by Ryosuke Niwa.
Source/WebCore:
All instances of SVG animated properties have to share a single animVal
such that once its value is progressed, all the instances will see the
change. This was not happening for SVGAnimatedPrimitiveProperty. To do
that we need to:
-- Introduce the new template class SVGSharedPrimitiveProperty which is
derived from SVGProperty. This class manages a single primitive value.
-- Change the type of SVGAnimatedPrimitiveProperty::m_animVal to
RefPtr<SVGSharedPrimitiveProperty<PropertyType>>. The master property
creates it and all the instances hold references to the same pointer.
-- Change the type of SVGAnimatedPrimitiveProperty::m_baseVal to
Ref<SVGSharedPrimitiveProperty<PropertyType>> for simplicity and get
rid of SVGAnimatedPrimitiveProperty::m_state.
-- Override the virtual methods instanceStartAnimation() and
instanceStopAnimation() of SVGAnimatedPrimitiveProperty.
-- SVGAnimatedStringAnimator should invalidate the style of the target
element if attribute name is 'class' and when its animVal changes.
- WebCore.xcodeproj/project.pbxproj:
- svg/properties/SVGAnimatedPrimitiveProperty.h:
(WebCore::SVGAnimatedPrimitiveProperty::setBaseVal):
(WebCore::SVGAnimatedPrimitiveProperty::setBaseValInternal):
(WebCore::SVGAnimatedPrimitiveProperty::baseVal const):
(WebCore::SVGAnimatedPrimitiveProperty::setAnimVal):
(WebCore::SVGAnimatedPrimitiveProperty::animVal const):
(WebCore::SVGAnimatedPrimitiveProperty::animVal):
(WebCore::SVGAnimatedPrimitiveProperty::currentValue const):
(WebCore::SVGAnimatedPrimitiveProperty::SVGAnimatedPrimitiveProperty):
(WebCore::SVGAnimatedPrimitiveProperty::ensureAnimVal):
- svg/properties/SVGAnimatedPropertyAnimatorImpl.h:
- svg/properties/SVGAttributeAnimator.cpp:
(WebCore::SVGAttributeAnimator::invalidateStyle):
(WebCore::SVGAttributeAnimator::applyAnimatedStylePropertyChange):
(WebCore::SVGAttributeAnimator::removeAnimatedStyleProperty):
- svg/properties/SVGAttributeAnimator.h:
- svg/properties/SVGSharedPrimitiveProperty.h: Added.
(WebCore::SVGSharedPrimitiveProperty::create):
(WebCore::SVGSharedPrimitiveProperty::value const):
(WebCore::SVGSharedPrimitiveProperty::value):
(WebCore::SVGSharedPrimitiveProperty::setValue):
(WebCore::SVGSharedPrimitiveProperty::SVGSharedPrimitiveProperty):
LayoutTests:
- svg/animations/animated-bool-externalResourcesRequired-instances-expected.svg: Added.
- svg/animations/animated-bool-externalResourcesRequired-instances.svg: Added.
- svg/animations/animated-string-class-instances-expected.svg: Added.
- svg/animations/animated-string-class-instances.svg: Added.
- svg/animations/animated-string-href-expected.svg: Added.
- svg/animations/animated-string-href.svg: Added.
- 6:10 PM Changeset in webkit [247084] by
-
- 1 copy in tags/Safari-607.3.8
Tag Safari-607.3.8.
- 5:15 PM Changeset in webkit [247083] by
-
- 3 edits in trunk/LayoutTests
[macOS WK2] REGRESSION (r242313): Layout Test scrollingcoordinator/mac/multiple-fixed.html is a flaky time out and image diff
https://bugs.webkit.org/show_bug.cgi?id=195635
Unreviewed test gardening.
Move test expectation entry to a more specific file.
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 4:58 PM Changeset in webkit [247082] by
-
- 2 edits in trunk/Source/WebKit
StorageManager does not need to be a WorkQueueMessageReceiver anymore
https://bugs.webkit.org/show_bug.cgi?id=199421
Reviewed by Chris Dumez.
- NetworkProcess/WebStorage/StorageManager.h:
- 4:53 PM Changeset in webkit [247081] by
-
- 2 edits in trunk/LayoutTests
[WHLSL] Change whlsl-two-dimensional-array.html to not be flaky on AMD Radeon Pro GPUs
https://bugs.webkit.org/show_bug.cgi?id=199424
Reviewed by Myles C. Maxfield.
- webgpu/whlsl-two-dimensional-array.html:
- 4:44 PM Changeset in webkit [247080] by
-
- 3 edits in trunk/Tools
[ews-build] Add build steps to Install Wpe and Gtk dependencies
https://bugs.webkit.org/show_bug.cgi?id=199408
Reviewed by Michael Catanzaro.
- BuildSlaveSupport/ews-build/steps.py:
(InstallGtkDependencies): Build step to install dependencies for GTK. Set haltOnFailure=False so that in case of failure, build isn't
marked as failed (which would indicated patch failed EWS), instead subsequent steps would be run and the build would be marked as RETRY.
(InstallWpeDependencies): Ditto for WPE.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 4:29 PM Changeset in webkit [247079] by
-
- 10 edits in trunk/Source
Unreviewed, rolling out r247041.
https://bugs.webkit.org/show_bug.cgi?id=199425
broke some iOS arm64e tests (Requested by keith_miller on
#webkit).
Reverted changeset:
"PACCage should first cage leaving PAC bits intact then
authenticate"
https://bugs.webkit.org/show_bug.cgi?id=199372
https://trac.webkit.org/changeset/247041
- 4:07 PM Changeset in webkit [247078] by
-
- 7 edits in trunk/Source
ThreadSafeRefCounted<DestructionThread::Main> is not safe to use in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=199420
<rdar://problem/52289717>
Reviewed by Ryosuke Niwa.
Source/WebKit:
Update IPC::Connection and DeviceIdHashSaltStorage to use DestructionThread::MainRunLoop
instead of DestructionThread::Main, since both classes are used in the UIProcess.
Using DestructionThread::Main is not safe in the UIProcess because its implementation relies
on isMainThread() / callOnMainThread(). Those get confused about which thread is the main
thread when an application uses both WK1 and WK2.
- Platform/IPC/Connection.h:
- UIProcess/DeviceIdHashSaltStorage.h:
Source/WTF:
- wtf/MainThread.cpp:
(WTF::isMainRunLoop):
(WTF::callOnMainRunLoop):
- wtf/MainThread.h:
Add some function to MainThread.h to be used by ThreadSafeRefCounted to interact with the
main RunLoop. This is used to avoid a circular dependency between RunLoop (which is
ThreadSafeRefCounted) and ThreadSafeReCounted.
- wtf/ThreadSafeRefCounted.h:
(WTF::ThreadSafeRefCounted::deref const):
Add a new DestructionThread::MainRunLoop enum value to be used by classes that need to
be destroyed on the main RunLoop rather than the main thread (which may be different
when WK1 is invoved)
- 4:05 PM Changeset in webkit [247077] by
-
- 7 edits2 deletes in tags/Safari-608.1.33
Revert r247015. rdar://problem/52552864
- 4:05 PM Changeset in webkit [247076] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Explicitly blacklist problematic directories for sandbox
https://bugs.webkit.org/show_bug.cgi?id=199367
Patch by Patrick Griffis <Patrick Griffis> on 2019-07-02
Reviewed by Michael Catanzaro.
There are some directories that simply do not make sense to bind into the sandbox
and will only cause issues such as/procso lets just block them.
- UIProcess/API/glib/WebKitWebContext.cpp:
(path_is_not_blacklisted):
(webkit_web_context_add_path_to_sandbox):
- 4:03 PM Changeset in webkit [247075] by
-
- 2 edits in trunk/Tools
[ews-build] Allow skipping uploading built product for few builders
https://bugs.webkit.org/show_bug.cgi?id=199422
Reviewed by Michael Catanzaro.
- BuildSlaveSupport/ews-build/steps.py:
(CompileWebKit.init): Added optional skipUpload parameter.
(CompileWebKit.evaluateCommand): Allow to skip upload if there are no triggers and skipUpload is True.
- 3:43 PM Changeset in webkit [247074] by
-
- 1 edit in branches/safari-607-branch/Source/WebCore/loader/DocumentWriter.cpp
Unreviewed build fix. rdar://problem/52054321
- 3:04 PM Changeset in webkit [247073] by
-
- 4 edits in trunk
REGRESSION (r243240): Unable to swipe back in Safari
https://bugs.webkit.org/show_bug.cgi?id=199394
<rdar://problem/51137447>
Reviewed by Wenson Hsieh.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _processDidExit]):
r243240 started nilling out the ViewGestureController, but we don't actually
expect that; the only time WKWebView's ViewGestureController goes away
is if the client turns off the gestures... and so nothing ever puts it back.
Instead, just always disconnect, don't nil it out.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
Make sure that we actually end up with swipe gesture recognizers installed
after process swap and crash.
- 1:52 PM Changeset in webkit [247072] by
-
- 6 edits in trunk/Source/WebKit
Protect NetworkProcess::m_networkSessions against corruption
https://bugs.webkit.org/show_bug.cgi?id=199418
<rdar://problem/50614019>
Reviewed by Youenn Fablet.
I believe the most likely reason for the crash at <rdar://problem/50614019> is that NetworkProcess::m_networkSessions
is getting corrupted and is returning us a bad pointer.
To harden our code, I added debug assertions to make sure that this HashMap is only used on the main thread and
to make sure that the sessionID used as key is always valid. I have also added if checks to avoid crashing in
release whenever possible.
Note that we came to a similar conclusion for NetworkProcess::m_swServers when investigating rdar://problem/51859081,
so the two radars are potentially related. Both HashMaps are owned by the NetworkProcess and use a SessionID
as key.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::logUserInteraction):
(WebKit::NetworkConnectionToWebProcess::logWebSocketLoading):
(WebKit::NetworkConnectionToWebProcess::logSubresourceLoading):
(WebKit::NetworkConnectionToWebProcess::logSubresourceRedirect):
(WebKit::NetworkConnectionToWebProcess::hasStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccess):
(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::networkSession const):
(WebKit::NetworkProcess::setSession):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::addKeptAliveLoad):
(WebKit::NetworkProcess::removeKeptAliveLoad):
(WebKit::NetworkProcess::webProcessWasDisconnected):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):
(WebKit::NetworkResourceLoader::shouldLogCookieInformation):
- NetworkProcess/ios/NetworkConnectionToWebProcessIOS.mm:
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorBoundInterfaceIdentifier):
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorCTDataConnectionServiceType):
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorSourceApplicationBundleIdentifier):
(WebKit::NetworkConnectionToWebProcess::paymentCoordinatorSourceApplicationSecondaryIdentifier):
- 1:24 PM Changeset in webkit [247071] by
-
- 23 edits in trunk
Enhance support of aria-haspopup per ARIA 1.1 specification.
https://bugs.webkit.org/show_bug.cgi?id=199216
<rdar://problem/46221342>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-02
Reviewed by Chris Fleizach.
Source/WebCore:
Test button-with-aria-haspopup-role.html was expanded to cover testing
of new functionality.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::popupValue const): replaces hasPopupValue.
(WebCore::AccessibilityObject::hasPopupValue const): Deleted.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::hasPopup const): method rename.
- accessibility/atk/WebKitAccessible.cpp:
(webkitAccessibleGetAttributes): method rename.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityPopupValue]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
Tools:
- DumpRenderTree/AccessibilityUIElement.cpp:
(getPopupValueCallback):
(AccessibilityUIElement::getJSClass):
- DumpRenderTree/AccessibilityUIElement.h:
- DumpRenderTree/mac/AccessibilityUIElementMac.mm:
(AccessibilityUIElement::popupValue const):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::popupValue const):
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::popupValue const):
LayoutTests:
- accessibility/button-with-aria-haspopup-role-expected.txt:
- accessibility/button-with-aria-haspopup-role.html:
- accessibility/ios-simulator/button-with-aria-haspopup-role-expected.txt:
- accessibility/ios-simulator/button-with-aria-haspopup-role.html:
- 1:02 PM Changeset in webkit [247070] by
-
- 5 edits in branches/safari-607.3.1.2-branch/Source/JavaScriptCore
Revert r246801. rdar://problem/52505032
- 12:51 PM Changeset in webkit [247069] by
-
- 3 edits in trunk/Tools
[ews-build] Do not print worker environment variables in each build step [part 2]
https://bugs.webkit.org/show_bug.cgi?id=199405
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(CheckOutSpecificRevision.init): Disabled logging of environment variables.
(CleanWorkingDirectory.init): Ditto.
(RunBindingsTests.init): Ditto.
(RunWebKitPerlTests.init): Ditto.
(RunWebKitPyTests.init): Ditto.
(CompileWebKit.init): Ditto.
(ArchiveTestResults.init): Ditto.
- BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
- 12:51 PM Changeset in webkit [247068] by
-
- 5 edits in branches/safari-607-branch/Source/JavaScriptCore
Revert r246801. rdar://problem/52505041
- 12:06 PM Changeset in webkit [247067] by
-
- 6 edits2 adds in trunk
[WHLSL] Import bitwise bool tests
https://bugs.webkit.org/show_bug.cgi?id=199093
Reviewed by Myles C. Maxfield.
Source/WebCore:
Add standard library functions for:
- bool bit ops
- converting from bool to number
- converting from number to bool
Test: webgpu/whlsl-bitwise-bool-ops.html
- Modules/webgpu/WHLSL/WHLSLStandardLibrary.txt:
LayoutTests:
This patch makes it so that we can mark bools as input and output types in the
WHLSL harness. Since bool is not something WHLSL itself allows as an entrypoint
input/output type (because we don't specify its bit pattern), we convert between
bool and int in the input and output of the function. For now, we don't support
a buffer of bools for the input type as a simplification, so we don't have to worry
about dynamically converting an int buffer to a bool buffer. We could add this
in the future if we found it helpful, but we don't have a strong reason for supporting
it right now.
This patch also starts the process of importing the WHLSL test suite by importing bool
bit op tests.
- webgpu/js/whlsl-test-harness.js:
(convertTypeToArrayType):
(whlslArgumentType):
(convertToWHLSLOutputType):
(convertToWHLSLInputType):
(Data):
(Harness.prototype.get isWHLSL):
(Harness.prototype.async.callTypedFunction):
(Harness.prototype._setUpArguments):
(callVoidFunction):
- webgpu/whlsl-bitwise-bool-ops-expected.txt: Added.
- webgpu/whlsl-bitwise-bool-ops.html: Added.
- webgpu/whlsl-test-harness-test-expected.txt:
- webgpu/whlsl-test-harness-test.html:
- 11:55 AM Changeset in webkit [247066] by
-
- 6 edits in branches/safari-607-branch/Source/WebCore
Cherry-pick r247017. rdar://problem/52054321
More judiciously handle clearing/creation of DOMWindows for new Documents.
<rdar://problem/51665406> and https://bugs.webkit.org/show_bug.cgi?id=198786
Reviewed by Chris Dumez.
- bindings/js/ScriptController.cpp: (WebCore::ScriptController::executeIfJavaScriptURL):
- loader/DocumentWriter.cpp: (WebCore::DocumentWriter::replaceDocumentWithResultOfExecutingJavascriptURL): Rename for clarity. (WebCore::DocumentWriter::begin): Handle DOMWindow taking/creation inside FrameLoader::clear via a lambda. (WebCore::DocumentWriter::replaceDocument): Deleted.
- loader/DocumentWriter.h:
- loader/FrameLoader.cpp: (WebCore::FrameLoader::clear): Take a "handleDOMWindowCreation" lambda to run after clearing the previous document.
- loader/FrameLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247017 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:46 AM Changeset in webkit [247065] by
-
- 3 edits1 add in trunk
Frozen Arrays length assignment should throw in strict mode
https://bugs.webkit.org/show_bug.cgi?id=199365
Reviewed by Yusuke Suzuki.
JSTests:
- stress/frozen-array-length-should-throw-strict.js: Added.
(test):
Source/JavaScriptCore:
- runtime/JSArray.cpp:
(JSC::JSArray::put):
- 11:28 AM Changeset in webkit [247064] by
-
- 5 edits3 adds in trunk
[Curl] Fix CookieJarCurl::getRawCookie.
https://bugs.webkit.org/show_bug.cgi?id=199300
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-07-02
Reviewed by Fujii Hironori.
Source/WebCore:
On wincairo some cookie information was not displayed in WebInspector's storage tab as
CookieJarCurl::getRawCookies was calling CookieJarDB::searchCookies with wrong arguments.
This patch fixes it.
Test: http/tests/inspector/page/get-cookies.html
- platform/network/curl/CookieJarCurl.cpp:
(WebCore::CookieJarCurl::getRawCookies const):
LayoutTests:
- http/tests/inspector/page/get-cookies-expected.txt: Added.
- http/tests/inspector/page/get-cookies.html: Added.
- http/tests/inspector/page/resources/set-cookie.php: Added.
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 11:20 AM Changeset in webkit [247063] by
-
- 7 edits in trunk/Source
Versioning.
- 11:13 AM Changeset in webkit [247062] by
-
- 14 edits in trunk/Source
[WHLSL] the initializer in VariableDeclaration should be a std::unique_ptr, not Optional<UniqueRef<..>>
https://bugs.webkit.org/show_bug.cgi?id=199389
Reviewed by Sam Weinig.
Source/WebCore:
Optional<UniqueRef<..>> is not only semantically weird (UniqueRef is basically a unique_ptr that promises not to be null), but also inefficient, wasting 8 bytes for the boolean in Optional.
It is a pattern that appears throughout the AST. In this patch I start by removing it in a fairly simple spot: the initializer for VariableDeclaration.
No test because there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLReadModifyWriteExpression.h:
(WebCore::WHLSL::AST::ReadModifyWriteExpression::ReadModifyWriteExpression):
- Modules/webgpu/WHLSL/AST/WHLSLVariableDeclaration.h:
(WebCore::WHLSL::AST::VariableDeclaration::VariableDeclaration):
(WebCore::WHLSL::AST::VariableDeclaration::initializer):
(WebCore::WHLSL::AST::VariableDeclaration::takeInitializer):
(WebCore::WHLSL::AST::VariableDeclaration::setInitializer):
- Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp:
(WebCore::WHLSL::AutoInitialize::visit):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseParameter):
(WebCore::WHLSL::Parser::parseVariableDeclaration):
- Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
- Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::visit):
- Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:
(WebCore::WHLSL::synthesizeArrayOperatorLength):
- Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:
(WebCore::WHLSL::synthesizeConstructors):
- Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:
(WebCore::WHLSL::synthesizeEnumerationFunctions):
- Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:
(WebCore::WHLSL::synthesizeStructureAccessors):
Source/WTF:
- wtf/UniqueRef.h:
(WTF::UniqueRef::moveToUniquePtr): Added.
- 11:12 AM Changeset in webkit [247061] by
-
- 7 edits in tags/Safari-608.1.33/Source
Versioning.
- 11:08 AM Changeset in webkit [247060] by
-
- 1 copy in tags/Safari-608.1.33
Tag Safari-608.1.33.
- 11:00 AM Changeset in webkit [247059] by
-
- 11 edits in trunk
Pipe suport for 'cenc' init data type into CDMFairPlayStreaming
https://bugs.webkit.org/show_bug.cgi?id=199381
Source/WebCore:
Reviewed by Eric Carlson.
Expose the parsing of 'cenc' init data from InitDataRegistry, so it can be used in the
evaluation steps inside CDMFairPlayStreaming.
+ Add a new method, extractPsshBoxesFromCenc() which returns an optional array of
unique_ptrs to different types of ISOPSSHBoxes.
+ Add a peekScheme() method to ISOPSSHBox so that we can create the correct subclass
of ISOPSSHBox from the above method.
+ Remove an extra definition of fairPlaySystemID() from CDMFairPlayStreaming.
+ Add 'cenc' to the list of supported types in CDMPrivateFairPlayStreaming::vaildInitDataTypes().
+ Add support for 'cenc' in CDMPrivateFairPlayStreaming::supportsInitData().
+ Format the 'cenc' init data as an encodec-JSON structure for AVContentKeySession.
+ Update the ISOFairPlayStreamingKeyRequestInfoBox to be a ISOFullBox.
+ Update the box name of ISOFairPlayStreamingInitDataBox.
- Modules/encryptedmedia/InitDataRegistry.cpp:
(WebCore::InitDataRegistry::extractPsshBoxesFromCenc):
(WebCore::InitDataRegistry::extractKeyIDsCenc):
(WebCore::InitDataRegistry::sanitizeCenc):
(WebCore::InitDataRegistry::cencName):
(WebCore::InitDataRegistry::keyidsName):
(WebCore::InitDataRegistry::webmName):
(WebCore::extractKeyIDsCenc): Deleted.
(WebCore::sanitizeCenc): Deleted.
- Modules/encryptedmedia/InitDataRegistry.h:
(WebCore::SourceBuffer::changeType):
- platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:
(WebCore::validInitDataTypes):
(WebCore::CDMPrivateFairPlayStreaming::supportsInitData const):
(WebCore::CDMPrivateFairPlayStreaming::fairPlaySystemID): Deleted.
- platform/graphics/avfoundation/CDMFairPlayStreaming.h:
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
(isType):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
- platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.cpp:
(WebCore::ISOProtectionSystemSpecificHeaderBox::peekSystemID):
- platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
Tools:
<rdar://problem/52483103>
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebCore/ISOBox.cpp:
- 10:47 AM Changeset in webkit [247058] by
-
- 9 edits in trunk/Source/WebKit
VisitedLinkStore does not need to subclass WebProcessLifetimeObserver
https://bugs.webkit.org/show_bug.cgi?id=199407
Reviewed by Sam Weinig.
VisitedLinkStore does not need to subclass WebProcessLifetimeObserver, it overrides
only 2 of WebProcessLifetimeObserver's functions and the implementation of those
overrides is empty. It also does not use WebProcessLifetimeObserver::processes()
since the VisitedLinkStore maintains its own list of processes.
- UIProcess/API/mac/WKView.mm:
- UIProcess/Automation/WebAutomationSession.cpp:
- UIProcess/VisitedLinkStore.cpp:
- UIProcess/VisitedLinkStore.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::m_resetRecentCrashCountTimer):
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
- 10:37 AM Changeset in webkit [247057] by
-
- 2 edits in trunk/Source/WebKit
Null dereference under StorageManager::destroySessionStorageNamespace()
https://bugs.webkit.org/show_bug.cgi?id=199388
<rdar://problem/52030641>
Reviewed by Youenn Fablet.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::createSessionStorageNamespace):
Call HashMap::ensure() instead of contains() + set() to avoid double hash lookup.
(WebKit::StorageManager::destroySessionStorageNamespace):
Add null check to address top crasher, similarly to what was done in r246552.
I am keeping the debug assertion since this is not supposed to happen.
- 10:23 AM Changeset in webkit [247056] by
-
- 5 edits4 adds in trunk
[iOS] Cannot tab cycle through credit card fields on antonsvpatisserie.com checkout page
https://bugs.webkit.org/show_bug.cgi?id=196053
<rdar://problem/49093034>
Reviewed by Wenson Hsieh.
Source/WebCore:
Remove the iOS override for isKeyboardFocusable() so that the focus controller allows
iframes to be keyboard focusable.
Tests: fast/events/ios/tab-cycle.html
fast/events/ios/tab-into-text-field-inside-iframe.html
- html/HTMLIFrameElement.h:
Source/WebKit:
Allow iframes to be keyboard focusable when pressing the Tab key on the keyboard. This
also allow the that the focus controller to search their content document for other
editable elements. This makes iOS match the behavior on Mac.
Although iframes can be focused by pressing the Tab key we maintain the current UI
restriction on iOS of not allowing iframes themselves to be focusable via the next and
previous accessory bar buttons. We do this because it's unclear what value supporting
such focusing brings, but it's clear that doing so makes tab cycling more confusing
since the default focus appearance for an iframe is indistinguishable from its non-
focused appearance.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::isAssistableElement): Do not consider an iframe as assistable.
LayoutTests:
Add some tests.
- fast/events/ios/tab-cycle-expected.txt: Added.
- fast/events/ios/tab-cycle.html: Added.
- fast/events/ios/tab-into-text-field-inside-iframe-expected.txt: Added.
- fast/events/ios/tab-into-text-field-inside-iframe.html: Added.
- 10:04 AM Changeset in webkit [247055] by
-
- 7 edits in trunk
Left and right option key has Unidentified key identifier
https://bugs.webkit.org/show_bug.cgi?id=199392
<rdar://problem/52497604>
Reviewed by Wenson Hsieh.
Source/WebCore:
Fix up switch case for left Option key and add a case statement for the right Option key.
- platform/ios/PlatformEventFactoryIOS.mm:
(WebCore::codeForKeyEvent):
LayoutTests:
Update test results.
- fast/events/ios/key-events-comprehensive/key-events-control-option-expected.txt:
- fast/events/ios/key-events-comprehensive/key-events-meta-option-expected.txt:
- fast/events/ios/key-events-comprehensive/key-events-option-expected.txt:
- fast/events/ios/key-events-comprehensive/key-events-option-shift-expected.txt:
- 9:18 AM Changeset in webkit [247054] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: allow nodes to be copied and pasted
https://bugs.webkit.org/show_bug.cgi?id=199182
Reviewed by Matt Baker.
Copy is already supported, so there's nothing that needs to be done there.
Pasting is as simple as calling
insertAdjacentHTML("afterend", ...)on the selected node.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI._paste): Added.
- UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype.handlePasteEvent): Added.
- 9:15 AM Changeset in webkit [247053] by
-
- 12 edits in trunk/Source/WebInspectorUI
Web Inspector: DOM Debugger: descendant breakpoints should be able to be enabled/disabled/deleted from a collapsed parent
https://bugs.webkit.org/show_bug.cgi?id=199332
Reviewed by Matt Baker.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.prototype.get domBreakpoints):
(WI.DOMDebuggerManager.prototype.domBreakpointsForNode):
(WI.DOMDebuggerManager.prototype.domBreakpointsInSubtree): Added.
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._detachDOMBreakpoint):
(WI.DOMDebuggerManager.prototype._detachBreakpointsForFrame):
(WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpointsForURL):
(WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint):
Provide a way of getting a "summary" array ofDOMBreakpoints for all descendant nodes.
Rework the data structure for holdingDOMBreakpoints to use aMultimapso no duplicates
can be added (it uses aSetinstead of anArray).
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype.get hasBreakpoint):
(WI.DOMTreeElement.prototype.set breakpointStatus):
(WI.DOMTreeElement.prototype.bindRevealDescendantBreakpointsMenuItemHandler): Added.
(WI.DOMTreeElement.prototype._subtreeBreakpointChanged): Added.
(WI.DOMTreeElement.prototype._updateBreakpointStatus):
(WI.DOMTreeElement.prototype._statusImageContextmenu):
(WI.DOMTreeElement.prototype.subtreeBreakpointCountDidChange): Deleted.
- UserInterface/Views/DOMTreeOutline.js:
(WI.DOMTreeOutline.prototype.populateContextMenu):
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForDOMNode):
(WI.appendContextMenuItemsForDOMNodeBreakpoints):
Keep track of the actual descendantDOMNodeTreeElementthat have breakpoints, rather than
just a count, so that the "Reveal Descendant Breakpoints" action is able to access them.
Change "Reveal Descendant Breakpoints" to reveal and select all descendant breakpoints
instead of just the first one.
Drive-by: don't remove specific (event) listener breakpoints when invoking the
"Delete Descendant Breakpoints" action, as that's not obvious from the UI.
- UserInterface/Controllers/BreakpointPopoverController.js:
(WI.BreakpointPopoverController.prototype.appendContextMenuItems):
- UserInterface/Views/DOMBreakpointTreeElement.js:
(WI.DOMBreakpointTreeElement.prototype.populateContextMenu):
- UserInterface/Views/DOMNodeTreeElement.js:
(WI.DOMNodeTreeElement.prototype.populateContextMenu):
- UserInterface/Views/EventBreakpointTreeElement.js:
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
- UserInterface/Views/URLBreakpointTreeElement.js:
(WI.URLBreakpointTreeElement.prototype.populateContextMenu):
Remove the separator before "Delete Breakpoint" so all breakpoint actions are in the same section.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Multimap.js:
(Multimap.prototype.get size): Added.
- 9:14 AM Changeset in webkit [247052] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r238563): Web Inspector: Selection is erratic when holding Up/Down on Network Table
https://bugs.webkit.org/show_bug.cgi?id=193841
<rdar://problem/47559124>
Reviewed by Devin Rousso.
Selecting and revealing a row after reloading Table data, but before the
layout that populates visible rows, could cause the Table to always be
scrolled so that the revealed row is first.
This patch fixes
revealRowby calculating the position of the row being
revealed in the absence of its DOM element, so that the Table is only
scrolled when necessary.
- UserInterface/Views/Table.js:
(WI.Table.prototype.revealRow):
(WI.Table.prototype._resizeColumnsAndFiller):
Drive-by fix: use realOffsetWidth for consistency.
(WI.Table.prototype._updateVisibleRows):
(WI.Table.prototype._calculateOffsetHeight):
(WI.Table.prototype._calculateScrollTop):
- 9:00 AM Changeset in webkit [247051] by
-
- 2 edits in trunk/Tools
[ews-build] Update bot configuration for WPE and GTK
https://bugs.webkit.org/show_bug.cgi?id=199238
Reviewed by Michael Catanzaro.
- BuildSlaveSupport/ews-build/config.json:
- 7:54 AM Changeset in webkit [247050] by
-
- 3 edits2 adds in trunk
Crash when adding inline stylesheet to shadow tree in document with null base URL
https://bugs.webkit.org/show_bug.cgi?id=199400
Reviewed by Zalan Bujtas.
Source/WebCore:
We compute CSSParserContextHash for the inline stylesheet cache but that hits a nullptr crash
if the document happens to have null base URL (which is uncommon but possible).
Test: fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash.html
- css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
Null check the base URL (like other strings), it is a valid case.
LayoutTests:
- fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash-expected.txt: Added.
- fast/shadow-dom/stylesheet-in-shadow-without-base-url-crash.html: Added.
- 7:42 AM Changeset in webkit [247049] by
-
- 3 edits in trunk/Tools
[ews-build] Make PrintConfiguration platform aware
https://bugs.webkit.org/show_bug.cgi?id=196657
Reviewed by Lucas Forschler.
- BuildSlaveSupport/ews-build/steps.py:
(PrintConfiguration): Specified platform-specific command lists.
(PrintConfiguration.run): Override run method and specify platform specific commands.
- BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
- 6:54 AM Changeset in webkit [247048] by
-
- 6 edits in trunk/Source/WebKit
[GTK] Support cancelling touchscreen back/forward gesture
https://bugs.webkit.org/show_bug.cgi?id=199401
Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2019-07-02
Reviewed by Michael Catanzaro.
It should be possible to cancel the gesture when performing it on
touchscreen, for example, by moving pen too far from the screen.
Handle this case properly.
Only DragGesture in GestureController needs to handle this,
SwipeGesture simply won't emit the relevant event in this case.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
- UIProcess/ViewGestureController.h:
- UIProcess/gtk/GestureController.cpp:
(WebKit::GestureController::DragGesture::cancelDrag):
(WebKit::GestureController::DragGesture::cancel):
(WebKit::GestureController::DragGesture::DragGesture):
- UIProcess/gtk/GestureController.h:
- UIProcess/gtk/ViewGestureControllerGtk.cpp:
(WebKit::ViewGestureController::platformTeardown):
(WebKit::ViewGestureController::cancelSwipe):
- 5:40 AM Changeset in webkit [247047] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix typo in if/else block and remove dead assignment
https://bugs.webkit.org/show_bug.cgi?id=199352
Patch by Paulo Matos <pmatos@linki.tools> on 2019-07-02
Reviewed by Alexey Proskuryakov.
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPattern::dumpPattern): Fix typo in if/else block and remove dead assignment
- 2:17 AM Changeset in webkit [247046] by
-
- 1 copy in releases/WebKitGTK/webkit-2.24.3
WebKitGTK 2.24.3
- 2:16 AM Changeset in webkit [247045] by
-
- 4 edits in releases/WebKitGTK/webkit-2.24
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.24.3 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.24.3.
- 2:16 AM Changeset in webkit [247044] by
-
- 8 edits in releases/WebKitGTK/webkit-2.24/Source
[GStreamer] Cannot play Bert's Bytes radio stream from http://radio.dos.nl/
https://bugs.webkit.org/show_bug.cgi?id=198376
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The delayed startup was due to a mix of buffering feedback
messages not handled correctly by the player. We were handling
download and streaming buffering metrics without distinction.
Range requests (used for seeking) were also triggering on-disk
buffering in some cases. The buffering percentage estimation based
on network read position was not working either because uint64_t
division doesn't return a floating point value.
No new tests, existing media tests cover this patch.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
(WebCore::MediaPlayerPrivateGStreamer::updateBufferingStatus):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded const):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress const):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::updateDownloadBufferingFlag):
(WebCore::MediaPlayerPrivateGStreamer::setPreload):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webkitWebSrcReset):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
Source/WTF:
- wtf/glib/GLibUtilities.h:
(enumToString): Utility function to get a string representation of of a GLib enum.
- 12:47 AM Changeset in webkit [247043] by
-
- 46 edits in trunk/Source
Web Inspector: Debug: "Reset Web Inspector" should also clear the saved window size and attachment side
https://bugs.webkit.org/show_bug.cgi?id=198956
Reviewed by Matt Baker.
Source/WebCore:
- inspector/InspectorFrontendClient.h:
- inspector/InspectorFrontendClientLocal.h:
- inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::Settings::deleteProperty): Added.
(WebCore::InspectorFrontendClientLocal::resetWindowState): Added.
- inspector/InspectorFrontendHost.idl:
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::reset): Added.
Source/WebInspectorUI:
- UserInterface/Base/Main.js:
(WI.reset): Added.
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createDebugSettingsView):
Source/WebKit:
- UIProcess/WebPreferences.h:
- UIProcess/WebPreferences.cpp:
(WebKit::WebPreferences::deleteKey): Added.
- UIProcess/gtk/WebPreferencesGtk.cpp:
(WebKit::WebPreferences::platformDeleteKey): Added.
- UIProcess/mac/WebPreferencesMac.mm:
(WebKit::WebPreferences::platformDeleteKey): Added.
- UIProcess/wpe/WebPreferencesWPE.cpp:
(WebKit::WebPreferences::platformDeleteKey): Added.
- UIProcess/win/WebPreferencesWin.cpp:
(WebKit::WebPreferences::platformDeleteKey): Added.
- Shared/WebPreferencesStore.h:
- Shared/WebPreferencesStore.cpp:
(WebKit::WebPreferencesStore::deleteKey): Added.
- UIProcess/WebInspectorProxy.messages.in:
- UIProcess/WebInspectorProxy.h:
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::resetWindowState): Added.
(WebKit::WebInspectorProxy::platformResetWindowState): Added.
- UIProcess/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformResetWindowState): Added.
- UIProcess/mac/WebInspectorProxyMac.mm:
(WebKit::WebInspectorProxy::platformResetWindowState): Added.
- UIProcess/wpe/WebInspectorProxyWPE.cpp:
(WebKit::WebInspectorProxy::platformResetWindowState): Added.
- UIProcess/win/WebInspectorProxyWin.cpp:
(WebKit::WebInspectorProxy::platformResetWindowState): Added.
- WebProcess/WebPage/WebInspectorUI.h:
- WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::resetWindowState): Added.
- UIProcess/RemoteWebInspectorProxy.messages.in:
- UIProcess/RemoteWebInspectorProxy.h:
- UIProcess/RemoteWebInspectorProxy.cpp:
(WebKit::RemoteWebInspectorProxy::resetWindowState): Added.
(WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added.
- UIProcess/gtk/RemoteWebInspectorProxyGtk.cpp:
(WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added.
- UIProcess/mac/RemoteWebInspectorProxyMac.mm:
(WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added.
- UIProcess/win/RemoteWebInspectorProxyWin.cpp:
(WebKit::RemoteWebInspectorProxy::platformResetWindowState): Added.
- WebProcess/WebPage/RemoteWebInspectorUI.h:
- WebProcess/WebPage/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::resetWindowState): Added.
Source/WebKitLegacy/cf:
- WebCoreSupport/WebInspectorClientCF.cpp:
(deleteSetting): Added.
(WebInspectorClient::deleteInspectorStartsAttached): Added.
(WebInspectorClient::deleteInspectorAttachDisabled): Added.
(WebInspectorClient::createFrontendSettings):
Source/WebKitLegacy/ios:
- WebCoreSupport/WebInspectorClientIOS.mm:
(WebInspectorFrontendClient::resetWindowState): Added.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebInspectorClient.h:
- WebCoreSupport/WebInspectorClient.mm:
(WebInspectorFrontendClient::resetWindowState): Added.
Source/WebKitLegacy/win:
- WebCoreSupport/WebInspectorClient.h:
- WebCoreSupport/WebInspectorClient.cpp:
(WebInspectorFrontendClient::resetWindowState): Added.
- 12:09 AM Changeset in webkit [247042] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Audit: missing demo audits for WebInspectorAudit functions
https://bugs.webkit.org/show_bug.cgi?id=198719
Reviewed by Matt Baker.
Other than the LayoutTests, there's no way to see an example of the functionality of many of
the exposedWebInspectorAuditfunctions. There should be a demo audit for every exposed
function so they're more discoverable.
- UserInterface/Controllers/AuditManager.js:
(WI.AuditManager.prototype._addDefaultTests):
(WI.AuditManager.prototype._addDefaultTests.removeWhitespace): Added.
Move all demo audit test functions to be actual JavaScript functions, which are then
stringified and stripped of unnecessary white-space.
- Localizations/en.lproj/localizedStrings.js:
- 12:00 AM Changeset in webkit [247041] by
-
- 10 edits in trunk/Source
PACCage should first cage leaving PAC bits intact then authenticate
https://bugs.webkit.org/show_bug.cgi?id=199372
Reviewed by Saam Barati.
Source/bmalloc:
- bmalloc/ProcessCheck.mm:
(bmalloc::shouldProcessUnconditionallyUseBmalloc):
Source/JavaScriptCore:
This ordering prevents someone from taking a signed pointer from
outside the gigacage and using it in a struct that expects a caged
pointer. Previously, the PACCaging just double checked that the PAC
bits were valid for the original pointer.
+---------------------------+
| | | |
| "PAC" | "base" | "offset" +----+
| | | | |
+---------------------------+ | Caging
| |
| |
| v
| +---------------------------+
| | | | |
| Bit Merge | 00000 | base | "offset" |
| | | | |
| +---------------------------+
| |
| |
v | Bit Merge
+---------------------------+ |
| | | | |
| "PAC" | base | "offset" +<--------+
| | | |
+---------------------------+
|
|
| Authenticate
|
v
+---------------------------+
| | | |
| Auth | base | "offset" |
| | | |
+---------------------------+
The above ascii art graph shows how the PACCage system works. The
key take away is that even if someone passes in a valid, signed
pointer outside the cage it will still fail to authenticate as the
"base" bits will change before authentication.
- assembler/MacroAssemblerARM64E.h:
- assembler/testmasm.cpp:
(JSC::testCagePreservesPACFailureBit):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::caged):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::cageConditionally):
- llint/LowLevelInterpreter64.asm:
Source/WTF:
- wtf/CagedPtr.h:
(WTF::CagedPtr::get const):
(WTF::CagedPtr::getMayBeNull const):
(WTF::CagedPtr::mergePointers):