Timeline
Jan 6, 2018:
- 10:31 PM Changeset in webkit [226492] by
-
- 6 edits2 adds in trunk
Possible crash computing event regions
https://bugs.webkit.org/show_bug.cgi?id=181368
rdar://problem/34847081
Reviewed by Zalan Bujtas.
Source/WebCore:
Don't trigger layout in Element::absoluteEventHandlerBounds(), since this can run arbirary script
which might delete elements or re-enter Document::absoluteRegionForEventTargets().
It's OK to not trigger layout, because if layout is dirty, the next layout will update event regions again.
Add a LayoutDisallowedScope to check that Document::absoluteRegionForEventTargets() doesn't
trigger layout, and move the check for LayoutDisallowedScope::isLayoutAllowed() from Document::updateLayout()
to LayoutContext::layout(), since some layouts don't happen via the former (e.g. the one being removed here).
The test checks that the assertion does not fire. I was not able to get a reliable test for any crash.
Test: fast/events/event-handler-regions-layout.html
- dom/Document.cpp:
(WebCore::Document::updateLayout):
(WebCore::Document::absoluteRegionForEventTargets):
- dom/Element.cpp:
(WebCore::Element::absoluteEventHandlerBounds):
- page/LayoutContext.cpp:
(WebCore::LayoutContext::layout):
- rendering/LayoutDisallowedScope.h: Move the #ifdefs around to avoid defining the enum twice.
(WebCore::LayoutDisallowedScope::LayoutDisallowedScope):
(WebCore::LayoutDisallowedScope::isLayoutAllowed):
LayoutTests:
- fast/events/event-handler-regions-layout-expected.txt: Added.
- fast/events/event-handler-regions-layout.html: Added.
- 9:48 PM Changeset in webkit [226491] by
-
- 5 edits2 adds in trunk
Crash under RenderLayer::scrollTo() with marquee
https://bugs.webkit.org/show_bug.cgi?id=181349
rdar://problem/36190168
Reviewed by Zalan Bujtas.
Source/WebCore:
Don't call updateWidgetPositions() synchonously during RenderLayer scrolling, because it
can run arbitrary script which may trigger destruction of this RenderLayer.
Instead, queue up updateWidgetPositions() on a zero-delay timer.
Under some circumstances this may allow a paint to occur before the widgets have been
updated (which could be fixed with a more invasive change), but in practice I saw no
painting issues with plug-ins or iframes inside overflow scroll, in WebKit or LegacyWebKit.
Test: fast/scrolling/marquee-scroll-crash.html
- page/FrameView.cpp:
(WebCore::FrameView::FrameView):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::scheduleUpdateWidgetPositions):
(WebCore::FrameView::updateWidgetPositionsTimerFired):
- page/FrameView.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):
LayoutTests:
- fast/scrolling/marquee-scroll-crash-expected.txt: Added.
- fast/scrolling/marquee-scroll-crash.html: Added.
- 9:18 PM Changeset in webkit [226490] by
-
- 4 edits4 adds in trunk
Accurately clip copyTexImage2D and copyTexSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=181356
<rdar://problem/35083877>
Reviewed by Eric Carlson.
Source/WebCore:
The code to make sure copyTexSubImage2D and copyTexImage2D will not try to read
out of bounds had a bad bug introduced here:
https://bugs.webkit.org/show_bug.cgi?id=51421
With appropriate parameters, it would produce a rectangle with
negative dimensions. Most GL drivers just ignored this, but some
are not happy.
Test: fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::clip2D): Reimplement this in a more sane manner, and use
checked arithmetic while here.
- html/canvas/WebGLRenderingContextBase.h:
(WebCore::clip1D): Deleted.
(WebCore::clip2D): Deleted.
LayoutTests:
- fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt: Added.
- fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input.html: Added.
- 4:15 PM Changeset in webkit [226489] by
-
- 9 edits1 add in trunk
Object.getOwnPropertyNames includes "arguments" and "caller" for bound functions
https://bugs.webkit.org/show_bug.cgi?id=181321
Reviewed by Saam Barati.
JSTests:
- stress/bound-function-does-not-have-caller-and-arguments.js: Added.
(shouldBe):
(testFunction):
- test262.yaml:
Source/JavaScriptCore:
According to ECMA262 16.2[1], functions created using the bind method must not have
"caller" and "arguments" own properties.
[1]: https://tc39.github.io/ecma262/#sec-forbidden-extensions
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::finishCreation):
LayoutTests:
- inspector/model/remote-object-get-properties-expected.txt:
- inspector/runtime/getProperties-expected.txt:
- js/script-tests/strict-throw-type-error.js:
- js/strict-throw-type-error-expected.txt:
- 1:01 PM Changeset in webkit [226488] by
-
- 3 edits in trunk/Source/WebCore
Use WeakPtr for RenderTreePosition::m_nextSibling
https://bugs.webkit.org/show_bug.cgi?id=181363
Reviewed by Zalan Bujtas.
For safety. In most cases it is null and won't cause us to instantiate WeakReferences for
many new objects.
- rendering/updating/RenderTreePosition.cpp:
(WebCore::RenderTreePosition::computeNextSibling):
- rendering/updating/RenderTreePosition.h:
(WebCore::RenderTreePosition::RenderTreePosition):
(WebCore::RenderTreePosition::nextSibling const):
- 8:52 AM Changeset in webkit [226487] by
-
- 5 edits2 moves2 adds in trunk/Source/WebKit
REGRESSION (r226218): iOS-only assets are installed on macOS
https://bugs.webkit.org/show_bug.cgi?id=181362
Reviewed by Anders Carlsson.
- Configurations/WebKit.xcconfig: Exclude everything under Resources/ios when not targeting iOS.
- Resources/ios: Added.
- Resources/ios/iOS.xcassets: Moved from Source/WebKit/WebKit.xcassets.
- Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Set the svn:mime-type property.
- Resources/ios/iOS.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Ditto.
- Resources/mac: Added.
- Resources/mac/mediaIcon.pdf: Moved here…
- Resources/mediaIcon.pdf: …from here.
- WebKit.xcassets: Moved under Resources/ios.
- WebKit.xcodeproj/project.pbxproj: Created an ios group under the Resources group, and cleaned up the mac group. Removed the Recovered References group.
- 12:56 AM Changeset in webkit [226486] by
-
- 2 edits in trunk/Tools
Unreviewed, remove my Cisco email from contributors.json
- Scripts/webkitpy/common/config/contributors.json:
Jan 5, 2018:
- 11:01 PM Changeset in webkit [226485] by
-
- 14 edits in trunk
WebAssembly: poison JS object's secrets
https://bugs.webkit.org/show_bug.cgi?id=181339
<rdar://problem/36325001>
Reviewed by Mark Lam.
Source/JavaScriptCore:
Separating WebAssembly's JS objects from their non-JS
implementation means that all interesting information lives
outside of the JS object itself. This patch poisons each JS
object's pointer to non-JS implementation using the poisoning
mechanism and a unique key per JS object type origin.
- runtime/JSCPoison.h:
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper): JS -> wasm stores the JS
object in a stack slot when fast TLS is disabled. This requires
that we unpoison the Wasm::Instance.
- wasm/js/JSWebAssemblyCodeBlock.h:
- wasm/js/JSWebAssemblyInstance.h:
(JSC::JSWebAssemblyInstance::offsetOfPoisonedInstance): renamed to
be explicit that the pointer is poisoned.
- wasm/js/JSWebAssemblyMemory.h:
- wasm/js/JSWebAssemblyModule.h:
- wasm/js/JSWebAssemblyTable.h:
Source/WTF:
swapping a poisoned pointer with a non-poisoned one (as is done in
JSWebAssembyMemory::adopt) was missing.
- wtf/Poisoned.h:
(WTF::PoisonedImpl::swap):
(WTF::ConstExprPoisonedPtrTraits::swap):
Tools:
Update tests for swap(Poisoned<k, T>, T*)
- TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Poisoned.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/PoisonedRef.cpp:
(TestWebKitAPI::TEST):
- 7:48 PM Changeset in webkit [226484] by
-
- 2 edits in trunk/Tools
REGRESSION(r226396) DataInteractionTests: ContentEditableToContentEditable and ContentEditableToTextarea are failing
https://bugs.webkit.org/show_bug.cgi?id=181359
Reviewed by Tim Horton.
Ensure that these tests still pass using older SDKs.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- 7:19 PM Changeset in webkit [226483] by
-
- 22 edits in trunk/Source
Re-enable -Wcast-qual in WebCore for Apple ports
<https://webkit.org/b/177895>
<rdar://problem/34960830>
Reviewed by Joseph Pecoraro.
Source/WebCore:
- Configurations/Base.xcconfig:
(WARNING_CFLAGS): Remove FIXME and add -Wcast-qual back to
arguments.
- crypto/mac/SerializedCryptoKeyWrapMac.mm:
(WebCore::createAndStoreMasterKey):
- Use checked_cf_cast<SecACLRef>().
- editing/cocoa/DataDetection.mm:
(WebCore::detectItemAtPositionWithRange):
- Manually cast CFTypeRef to DDResultRef until DDResultGetTypeID() is available as SPI.
- platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::initElementsFromArray):
- Use checked_cf_cast<IOHIDElementRef>().
- platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
(WebCore::MediaSampleAVFObjC::createImageSample):
(WebCore::CMSampleBufferIsRandomAccess):
(WebCore::CMSampleBufferIsNonDisplaying):
(WebCore::MediaSampleAVFObjC::createNonDisplayingCopy const):
- Use checked_cf_cast<CFMutableDictionaryRef>() and checked_cf_cast<CFDictionaryRef>().
- platform/graphics/cocoa/IOSurface.h:
(WebCore::IOSurface::asLayerContents):
- Use reinterpret_cast<id>() to cast from IOSurfaceRef to id.
- platform/graphics/cocoa/WebCoreDecompressionSession.mm:
(WebCore::WebCoreDecompressionSession::getFirstVideoFrame):
(WebCore::WebCoreDecompressionSession::automaticDequeue):
(WebCore::WebCoreDecompressionSession::imageForTime):
(WebCore::WebCoreDecompressionSession::getDecodeTime):
(WebCore::WebCoreDecompressionSession::getPresentationTime):
(WebCore::WebCoreDecompressionSession::getDuration):
- Use checked_cf_cast<CMSampleBufferRef>().
- platform/graphics/Font.h:
(WebCore::Font::m_kernedCFStringAttributes):
(WebCore::Font::m_nonKernedCFStringAttributes):
- Change type from RetainPtr<CFDictionaryRef> to RetainPtr<CFMutableDictionaryRef> since that's what they are.
- platform/graphics/mac/SimpleFontDataCoreText.cpp:
(WebCore::Font::getCFStringAttributes const):
- Replace local
mutableAttributesvariable withattributesDictionary.get()since it returns the correct type now.
- platform/ios/wak/WAKView.mm:
(-[WAKView _initWithViewRef:]):
(_WAKCopyWrapper):
- platform/ios/wak/WKView.mm:
(_WKViewClearSuperview):
(WKViewFirstChild):
(WKViewNextSibling):
- Use static_cast<WKViewRef>(const_cast<void*>()) to convert const void* variable to WKViewRef.
- platform/mac/PasteboardMac.mm:
(WebCore::flipImageSpec):
(WebCore::setDragImageImpl):
- Use const_cast<> to remove 'const' modifier from unsigned char pointers. This regressed while -Wcast-qual was disabled for WebCore.
- platform/mac/SSLKeyGeneratorMac.mm:
(WebCore::signedPublicKeyAndChallengeString):
- Use checked_cf_cast<SecACLRef>().
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
- Use checked_cf_cast<CFMutableDictionaryRef>().
- platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::copyCONNECTProxyResponse):
- Use checked_cf_cast<CFHTTPMessageRef>().
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::platformCertificateInfo const):
- Use checked_cf_cast<SecTrustRef>().
- platform/network/mac/CertificateInfoMac.mm:
(WebCore::CertificateInfo::containsNonRootSHA1SignedCertificate const):
(WebCore::CertificateInfo::dump const):
- Use checked_cf_cast<SecCertificateRef>().
- testing/cocoa/WebArchiveDumpSupport.mm:
(WebCoreTestSupport::createCFURLResponseFromResponseData):
- Use checked_cf_cast<>() for CFMutable* types.
Source/WTF:
- wtf/RetainPtr.h:
(WTF::RetainPtr::fromStorageTypeHelper const): Add const_cast<>
operator here since some CFTypes are not defined as const
pointers, which triggers a warning in C++ source with
-Wcast-qual when casting from CFTypeRef back to the original
type. Note that we use const_cast<CF_BRIDGED_TYPE(id) void*>()
here (and in TypeCastsCF.h below) since this is what CFTypeRef
is defined as in CFBase.h, but without the 'const' modifier.
(WTF::RetainPtr::fromStorageType const): Ditto.
- wtf/cf/TypeCastsCF.h: Use #pragma once.
(WTF_DECLARE_CF_TYPE_TRAIT): Rename from DECLARE_CF_TYPE_TRAIT.
Don't #undef it so that it can be used in other source files.
(WTF_DECLARE_CF_MUTABLE_TYPE_TRAIT): Add new macro that is used
for declaring CFMutable types. The CFTypeID for CF_Foo_ and
CFMutable_Foo_ are the same, so we have to use a different macro
to declare type traits for those types.
(WTF::dynamic_cf_cast): Add assertion to catch issues in Debug
builds.
(WTF::checked_cf_cast): Inline code from WTF::dynamic_cf_cast
and change behavior to be more consistent between Debug and
Release builds, as well as other "checked" functions.
Previously this function would return nullptr in Release builds
if nullptr or the wrong type of object was passed in, but crash
in both cases on Debug builds. The new behavior always returns
nullptr if nullptr was passed in (but never crashes), and always
crashes if the wrong type of object is passed in.
- 6:16 PM Changeset in webkit [226482] by
-
- 17 edits in trunk/Source
Storage Access API: Refactor to make naming accurate and explicit, simplify access table, and prepare for access removal for page
https://bugs.webkit.org/show_bug.cgi?id=181357
<rdar://problem/36331031>
Reviewed by Alex Christensen.
Source/WebCore:
No new tests. The only changed functionality that isn't covered
by existing tests is cross-origin iframes in the same partition
should be handled as already having access. This cannot be
tested in layout tests since they don't support subdomains.
This change does the following:
- Changes function and message names to reflect how this feature was eventually implemented, i.e. access per frame.
- Makes it explicit that the UI process is only involved in granting storage access and not removing storage access. The latter is done directly by the web process.
- Simplifies the network process' entry map since only needs to be able to give access to one domain in one frame at a time. Access goes away on frame navigation so there can only be one domain at a time per frame. Also, the map now uses pageIDs as main keys to prepare for efficient access removal for all frames under a page.
- Fixes a bug in so that a cross-origin iframe with the same partition as the top frame correctly is handled as already having access.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::cookieStoragePartition const):
The only change here is the changed named of the call to
NetworkStorageSession::hasStorageAccessForFrame().
(WebCore::NetworkStorageSession::hasStorageAccessForFrame const):
(WebCore::NetworkStorageSession::grantStorageAccessForFrame):
(WebCore::NetworkStorageSession::removeStorageAccessForFrame):
(WebCore::NetworkStorageSession::isStorageAccessGranted const): Deleted.
(WebCore::NetworkStorageSession::setStorageAccessGranted): Deleted.
(WebCore::NetworkStorageSession::removeStorageAccess): Deleted.
Source/WebKit:
This change does the following:
- Changes function and message names to reflect how this feature was eventually implemented, i.e. access per frame.
- Makes it explicit that the UI process is only involved in granting storage access and not removing storage access. The latter is done directly by the web process.
- Simplifies the network process' entry map since only needs to be able to give access to one domain in one frame at a time. Access goes away on frame navigation so there can only be one domain at a time per frame. Also, the map now uses pageIDs as main keys to prepare for efficient access removal for all frames under a page.
- Fixes a bug in so that a cross-origin iframe with the same partition as the top frame correctly is handled as already having access.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccess): Deleted.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::hasStorageAccessForFrame):
(WebKit::NetworkProcess::grantStorageAccessForFrame):
(WebKit::NetworkProcess::hasStorageAccessForPrevalentDomains): Deleted.
(WebKit::NetworkProcess::updateStorageAccessForPrevalentDomains): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::hasStorageAccessForFrame):
(WebKit::NetworkProcessProxy::grantStorageAccessForFrame):
(WebKit::NetworkProcessProxy::hasStorageAccessForPrevalentDomains): Deleted.
(WebKit::NetworkProcessProxy::updateStorageAccessForPrevalentDomains): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasStorageAccessForFrameHandler):
(WebKit::WebsiteDataStore::grantStorageAccessForFrameHandler):
(WebKit::WebsiteDataStore::enableResourceLoadStatisticsAndSetTestingCallback):
(WebKit::WebsiteDataStore::hasStorageAccessForPrevalentDomainsHandler): Deleted.
(WebKit::WebsiteDataStore::updateStorageAccessForPrevalentDomainsHandler): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
- 5:56 PM Changeset in webkit [226481] by
-
- 28 edits in trunk
Implement Cache API partitioning based on ClientOrigin
https://bugs.webkit.org/show_bug.cgi?id=181240
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Alex Christensen.
Source/WebCore:
Covered by updated tests.
Previously, cache storage was partitioned according the origin of the client, represented as a String.
We now partition according both client and top origins, represented as a ClientOrigin
Minor refactoring to use more makePendingActivity.
Added support for IPC serialization of ClientOrigin.
Added SecurityOriginData::toString which is used by WebKit2 Cache Storage implementation.
- Modules/cache/CacheStorageConnection.cpp:
(WebCore::CacheStorageConnection::open):
(WebCore::CacheStorageConnection::retrieveCaches):
- Modules/cache/CacheStorageConnection.h:
(WebCore::CacheStorageConnection::clearMemoryRepresentation):
(WebCore::CacheStorageConnection::doOpen):
(WebCore::CacheStorageConnection::doRetrieveCaches):
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::origin const):
(WebCore::DOMCacheStorage::retrieveCaches):
(WebCore::DOMCacheStorage::open):
(WebCore::DOMCacheStorage::remove):
- Modules/cache/DOMCacheStorage.h:
- Modules/cache/WorkerCacheStorageConnection.cpp:
(WebCore::WorkerCacheStorageConnection::doOpen):
(WebCore::WorkerCacheStorageConnection::doRetrieveCaches):
- Modules/cache/WorkerCacheStorageConnection.h:
- page/ClientOrigin.h:
(WebCore::ClientOrigin::isolatedCopy const):
(WebCore::ClientOrigin::encode const):
(WebCore::ClientOrigin::decode):
- page/SecurityOriginData.cpp:
(WebCore::SecurityOriginData::toString const):
(WebCore::SecurityOriginData::debugString const): Deleted.
- page/SecurityOriginData.h:
(WebCore::SecurityOriginData::debugString const):
- testing/Internals.cpp:
(WebCore::Internals::clearCacheStorageMemoryRepresentation):
Source/WebKit:
open and retrieveCaches now take a ClientOrigin instead of a String.
Updated cache filesystem path computation to take both client origin and top origin.
When clearing an origin, caches whose client origin or top origin matches the origin are cleared.
Caches are added to the web site data of their client origin with their corresponding cache size.
Caches are added to the web site data of their top origin with a size equal to 0.
Updated memory representation dumping used for test to include both top and client origins.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::cachesRootPath):
(WebKit::CacheStorage::Engine::open):
(WebKit::CacheStorage::Engine::remove):
(WebKit::CacheStorage::Engine::retrieveCaches):
(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::Engine::removeCaches):
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):
(WebKit::CacheStorage::Engine::clearMemoryRepresentation):
(WebKit::CacheStorage::Engine::representation):
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::Cache):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::retrieveOriginFromDirectory):
(WebKit::CacheStorage::Caches::Caches):
(WebKit::CacheStorage::Caches::storeOrigin):
(WebKit::CacheStorage::Caches::readOrigin):
(WebKit::CacheStorage::Caches::open):
- NetworkProcess/cache/CacheStorageEngineCaches.h:
(WebKit::CacheStorage::Caches::create):
(WebKit::CacheStorage::Caches::origin const):
- NetworkProcess/cache/CacheStorageEngineConnection.cpp:
(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
- NetworkProcess/cache/CacheStorageEngineConnection.h:
- NetworkProcess/cache/CacheStorageEngineConnection.messages.in:
- WebProcess/Cache/WebCacheStorageConnection.cpp:
(WebKit::WebCacheStorageConnection::doOpen):
(WebKit::WebCacheStorageConnection::doRetrieveCaches):
(WebKit::WebCacheStorageConnection::clearMemoryRepresentation):
- WebProcess/Cache/WebCacheStorageConnection.h:
LayoutTests:
Beefing up test to ensure that client and top origins are taken into consideration.
- http/tests/cache-storage/cache-origins.https-expected.txt:
- http/tests/cache-storage/cache-origins.https.html:
- http/tests/cache-storage/cache-clearing-origin.https-expected.txt:
- http/tests/cache-storage/cache-clearing-origin.https.html:
- 5:53 PM Changeset in webkit [226480] by
-
- 11 edits in trunk/Source/WebKit
Show Keyboard when re-launching WKWebView with a previously focused element
https://bugs.webkit.org/show_bug.cgi?id=181353
Reviewed by Tim Horton.
When relaunching an app with a WKWebView, restore the keyboard if there was a previously
focused element that was being assisted. The element was already being tracked, we just
needed to not bail on showing the keyboard for instances where it was a state change that
caused the element to be refocused.
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::startAssistingNode):
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:userObject:]): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::startAutoscrollAtPosition):
(WebKit::WebPageProxy::startAssistingNode):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setActivityState):
(WebKit::WebPage::elementDidFocus):
- WebProcess/WebPage/WebPage.h:
- 5:49 PM Changeset in webkit [226479] by
-
- 2 edits in trunk/Tools
Rebase API test after r226469
https://bugs.webkit.org/show_bug.cgi?id=181308
- TestWebKitAPI/Tests/WebKitCocoa/LoadInvalidURLRequest.mm:
(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):
A URL with < or > in it is now recognized as invalid by WebKit. This is intentional, and matches our behavior before enabling the new URLParser.
- 5:29 PM Changeset in webkit [226478] by
-
- 1 edit3 adds in trunk/Source/WebInspectorUI
Web Inspector: Add another Protocol Version
https://bugs.webkit.org/show_bug.cgi?id=181354
<rdar://problem/35432817>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-05
Reviewed by Matt Baker.
- UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: Added.
- Versions/Inspector-iOS-11.3.json: Added.
- 5:27 PM Changeset in webkit [226477] by
-
- 2 edits in trunk/JSTests
Unreviewed, attempt to fix test262 after r226386.
- test262.yaml:
- 5:27 PM Changeset in webkit [226476] by
-
- 2 edits in trunk/LayoutTests
Mark fast/workers/worker-terminate.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181098
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:19 PM Changeset in webkit [226475] by
-
- 4 edits in trunk/Source/ThirdParty/libwebrtc
Close WebRTC sockets when marked as defunct
https://bugs.webkit.org/show_bug.cgi?id=177324
rdar://problem/35244931
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Eric Carlson.
In case selected sockets return an error when trying to accept an incoming socket,
check whether the socket is defunct or not.
If so, close it properly.
- Source/webrtc/base/asynctcpsocket.cc:
- Source/webrtc/base/physicalsocketserver.cc:
- Source/webrtc/base/socket.h:
- 4:37 PM Changeset in webkit [226474] by
-
- 10 edits in trunk/Source/JavaScriptCore
Add ability to disable indexed property masking for testing
https://bugs.webkit.org/show_bug.cgi?id=181350
Reviewed by Keith Miller.
Made the masking of indexed properties runtime controllable via a new JSC::Option
named disableSpectreMitigations. This is done to test the efficacy of that mitigation.
The new option has a generic name as it will probably be used to disable future mitigations.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::loadFromIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::LowerDFGToB3):
(JSC::FTL::DFG::LowerDFGToB3::maskedIndex):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
- jit/JIT.cpp:
(JSC::JIT::JIT):
- jit/JIT.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitDoubleLoad):
(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
- runtime/Options.h:
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
- 4:27 PM Changeset in webkit [226473] by
-
- 2 edits in trunk/Source/JavaScriptCore
Allow JSC Config Files to set Restricted Options
https://bugs.webkit.org/show_bug.cgi?id=181352
Reviewed by Mark Lam.
- runtime/ConfigFile.cpp:
(JSC::ConfigFile::parse):
- 4:08 PM Changeset in webkit [226472] by
-
- 4 edits in trunk
Restrict navigation-time WKWebsiteDataStore swapping to main frame navigations
https://bugs.webkit.org/show_bug.cgi?id=181217
Reviewed by Tim Horton.
Source/WebKit:
If we swap during an iframe navigation, then we get a page in a strange state.
The intent of the main frame navigation WKWebsiteDataStore swap is that
that is a time when we can change storages without a page in an inconsistent state.
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:
(-[WebsitePoliciesWebsiteDataStoreDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):
- 4:05 PM Changeset in webkit [226471] by
-
- 6 edits1 add in trunk
Add WKBundleFrameCreateFrameHandle
https://bugs.webkit.org/show_bug.cgi?id=181232
<rdar://problem/35926696>
Reviewed by Tim Horton.
Source/WebKit:
InjectedBundle clients wanting to sent a _WKFrameHandle cannot without this function.
Before, they would just send the WKBundleFrameRef which would be changed into a WKFrameRef
in the UIProcess by WebProcessProxy::transformHandlesToObjects, but there is no ObjC equivalent
of WKFrameRef, so we were just getting a WKObject when we wanted a _WKFrameHandle.
We can't change WebProcessProxy::transformHandlesToObjects without being incompatible with the
existing C API, so let's add a way for clients to say "I want a _WKFrameHandle".
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundleFrameCreateFrameHandle):
- WebProcess/InjectedBundle/API/c/WKBundlePage.h:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/FrameHandleSerialization.mm: Added.
(mouseDidMoveOverElement):
(-[FrameHandleSerialization webProcessPlugIn:didCreateBrowserContextController:]):
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[MouseMoveOverElementDelegate _webView:mouseDidMoveOverElement:withFlags:userInfo:]):
(TEST):
- 3:48 PM Changeset in webkit [226470] by
-
- 18 edits in trunk/Source
[Attachment Support] Add a way to write blob data to a file URL from the UI process
https://bugs.webkit.org/show_bug.cgi?id=181236
Reviewed by Brady Eidson.
Source/WebCore:
Add support for writing a blob to a designated file path. See comments below for more detail. No new tests, as
there change in behavior yet. See part 2: https://bugs.webkit.org/show_bug.cgi?id=181199.
- page/DragController.cpp:
(WebCore::DragController::dragAttachmentElement):
- platform/PromisedBlobInfo.h:
Remove PromisedBlobData entirely. This was added with the premise of having the web process deliver blob data to
the UI process. However, the new approach I'm taking just has the UI process tell the network process to write
a blob to a given location, so a data structure to deliver blob data over IPC is no longer necessary.
(WebCore::PromisedBlobData::hasData const): Deleted.
(WebCore::PromisedBlobData::hasFile const): Deleted.
(WebCore::PromisedBlobData::operator bool const): Deleted.
(WebCore::PromisedBlobData::fulfills const): Deleted.
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::populateBlobsForFileWriting):
Introduce a new helper to build a list of blob data for file writing.
(WebCore::writeFilePathsOrDataBuffersToFile):
Introduce a new static helper to write blob data (a list of file paths and data buffers) to a given file handle.
Automatically closes the given file handle upon exit.
(WebCore::BlobRegistryImpl::writeBlobsToTemporaryFiles):
(WebCore::BlobRegistryImpl::writeBlobToFilePath):
Pull out common logic in writeBlobsToTemporaryFiles and writeBlobToFilePath into helper methods (see above), and
refactor both methods to use the helpers.
- platform/network/BlobRegistryImpl.h:
Source/WebKit:
Add support for writing a blob to a designated file path. In WebKit, this is mainly plumbing writeBlobToFilePath
through WebPageProxy to the network process.
- NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::writeBlobToFilePath):
Call out to the BlobRegistryImpl to write blobs to the file path. Additionally grant sandbox extensions for any
file-backed blob parts corresponding to the given blob URL.
(WebKit::NetworkBlobRegistry::filesInBlob):
Introduce a version of filesInBlob that doesn't check against the NetworkConnectionToWebProcess. This is used
when the UI process is the driver for writing a blob.
- NetworkProcess/FileAPI/NetworkBlobRegistry.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::writeBlobToFilePath):
Temporarily grant sandbox access to the given file path.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<PromisedBlobInfo>::encode):
(IPC::ArgumentCoder<PromisedBlobInfo>::decode):
(IPC::ArgumentCoder<PromisedBlobData>::encode): Deleted.
(IPC::ArgumentCoder<PromisedBlobData>::decode): Deleted.
Remove PromisedBlobData (see WebCore/ChangeLog for more information).
- Shared/WebCoreArgumentCoders.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
If the network process is terminated, flush any pending callbacks in m_writeBlobToFilePathCallbackMap, passing
in a failure result (success := false) and clearing the callback map.
(WebKit::NetworkProcessProxy::writeBlobToFilePath):
(WebKit::NetworkProcessProxy::didWriteBlobToFilePath):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::writeBlobToFilePath):
- UIProcess/WebPageProxy.h:
- 3:38 PM Changeset in webkit [226469] by
-
- 9 edits in trunk
Forbid < and > in URL hosts
https://bugs.webkit.org/show_bug.cgi?id=181308
<rdar://problem/36012757>
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
- web-platform-tests/url/a-element-expected.txt:
- web-platform-tests/url/a-element-origin-expected.txt:
- web-platform-tests/url/a-element-origin-xhtml-expected.txt:
- web-platform-tests/url/a-element-xhtml-expected.txt:
- web-platform-tests/url/url-constructor-expected.txt:
- web-platform-tests/url/url-origin-expected.txt:
Source/WebCore:
https://url.spec.whatwg.org/#forbidden-host-code-point does not include these characters yet, but I think it should.
Firefox fails to parse URLs with < or > in the host. Chrome percent encodes them. Safari needs to do something.
The web platform tests are unclear on this case, and they will need to be updated with the specification.
They do show a change in behavior, though.
- platform/URLParser.cpp:
Add < and > to the list of forbidden host code points.
- 3:34 PM Changeset in webkit [226468] by
-
- 10 edits2 adds in trunk/Source/WebCore
[MediaStream] Add Mac screen capture source
https://bugs.webkit.org/show_bug.cgi?id=181333
<rdar://problem/36323219>
Reviewed by Dean Jackson.
Source/WebCore:
- SourcesCocoa.txt: Add ScreenDisplayCaptureSourceMac.mm.
- WebCore.xcodeproj/project.pbxproj: Ditto.
- platform/cocoa/CoreVideoSoftLink.cpp: Declare new constants used.
- platform/cocoa/CoreVideoSoftLink.h:
- platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
(WebCore::displayReconfigurationCallBack): Call refreshCaptureDevices.
(WebCore::DisplayCaptureManagerCocoa::~DisplayCaptureManagerCocoa): Unregister for display
reconfiguration callbacks.
(WebCore::DisplayCaptureManagerCocoa::captureDevices): Register for display reconfigrations.
(WebCore::DisplayCaptureManagerCocoa::refreshCaptureDevices): Use CGActiveDisplayList to
get list of active screens.
(WebCore::DisplayCaptureManagerCocoa::screenCaptureDeviceWithPersistentID): Validate screen
ID, return CaptureDevice.
- platform/mediastream/mac/DisplayCaptureManagerCocoa.h:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::VideoCaptureSourceFactoryMac::createVideoCaptureSource): Deal with screen capture
on macOS.
Implement Mac screen capture with CGDisplayStream.
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h: Added.
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::~DisplaySurface):
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::operator=):
(WebCore::ScreenDisplayCaptureSourceMac::DisplaySurface::ioSurface const):
- platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm: Added.
(WebCore::roundUpToMacroblockMultiple):
(WebCore::ScreenDisplayCaptureSourceMac::updateDisplayID):
(WebCore::ScreenDisplayCaptureSourceMac::create):
(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac):
(WebCore::ScreenDisplayCaptureSourceMac::~ScreenDisplayCaptureSourceMac):
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::startProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::stopProducingData):
(WebCore::ScreenDisplayCaptureSourceMac::sampleBufferFromPixelBuffer):
(WebCore::ScreenDisplayCaptureSourceMac::pixelBufferFromIOSurface):
(WebCore::ScreenDisplayCaptureSourceMac::generateFrame):
(WebCore::ScreenDisplayCaptureSourceMac::startDisplayStream):
(WebCore::ScreenDisplayCaptureSourceMac::applySize):
(WebCore::ScreenDisplayCaptureSourceMac::applyFrameRate):
(WebCore::ScreenDisplayCaptureSourceMac::commitConfiguration):
(WebCore::ScreenDisplayCaptureSourceMac::displayWasReconfigured):
(WebCore::ScreenDisplayCaptureSourceMac::displayReconfigurationCallBack):
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable):
Source/WebCore/PAL:
- pal/spi/cg/CoreGraphicsSPI.h: Declare some CGDisplayMode SPI.
- 3:27 PM Changeset in webkit [226467] by
-
- 3 edits in trunk/Source/WebKit
Add injected bundle equivalents of DOMHTMLDocument (DOMHTMLDocumentExtensions)
https://bugs.webkit.org/show_bug.cgi?id=181345
Reviewed by Tim Horton.
- WebProcess/InjectedBundle/API/mac/WKDOMDocument.h: Declared new methods.
- WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:
(-[WKDOMDocument createDocumentFragmentWithMarkupString:baseURL:]): Added. Calls WebCore’s
createFragmentFromMarkup.
(-[WKDOMDocument createDocumentFragmentWithText:]): Added. Calls WebCore’s
createFragmentFromText.
- 3:13 PM Changeset in webkit [226466] by
-
- 2 edits in trunk/Source/WebCore
[curl] Can't load file:// URL with a URL fragment identifier
https://bugs.webkit.org/show_bug.cgi?id=181170
Reviewed by Alex Christensen.
No new tests. No change in behavior.
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
- 2:52 PM Changeset in webkit [226465] by
-
- 2 edits3 adds in trunk/Source/WebKit
[Curl] Add implementation stubs for Network Cache
https://bugs.webkit.org/show_bug.cgi?id=181343
Reviewed by Alex Christensen.
- NetworkProcess/cache/NetworkCacheCodersCurl.cpp: Added.
(WTF::Persistence::Coder<WebCore::CertificateInfo>::encode):
(WTF::Persistence::Coder<WebCore::CertificateInfo>::decode):
- NetworkProcess/cache/NetworkCacheDataCurl.cpp: Added.
(WebKit::NetworkCache::Data::Data):
(WebKit::NetworkCache::Data::empty):
(WebKit::NetworkCache::Data::data const):
(WebKit::NetworkCache::Data::isNull const):
(WebKit::NetworkCache::Data::apply const):
(WebKit::NetworkCache::Data::subrange const):
(WebKit::NetworkCache::concatenate):
(WebKit::NetworkCache::Data::adoptMap):
- NetworkProcess/cache/NetworkCacheIOChannelCurl.cpp: Added.
(WebKit::NetworkCache::IOChannel::IOChannel):
(WebKit::NetworkCache::IOChannel::~IOChannel):
(WebKit::NetworkCache::IOChannel::open):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):
- PlatformWin.cmake:
- 2:42 PM Changeset in webkit [226464] by
-
- 3 edits in trunk/Source/WebKit
[Curl] Update method declarations in WebKit
https://bugs.webkit.org/show_bug.cgi?id=181342
Reviewed by Alex Christensen.
- NetworkProcess/Downloads/curl/DownloadCurl.cpp:
(WebKit::Download::resume):
- NetworkProcess/curl/RemoteNetworkingContextCurl.cpp:
(WebKit::RemoteNetworkingContext::ensurePrivateBrowsingSession): Deleted.
(WebKit::RemoteNetworkingContext::blockedError const): Deleted.
- 2:42 PM Changeset in webkit [226463] by
-
- 2 edits in trunk/Source/WebCore
TextCodec uses std::array but does not include it
https://bugs.webkit.org/show_bug.cgi?id=181340
Reviewed by Alex Christensen.
No new tests. No change in behavior.
- platform/text/TextCodec.h:
- 2:34 PM Changeset in webkit [226462] by
-
- 2 edits in trunk/LayoutTests
Mark mathml/opentype/horizontal-munderover.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=181346
Unreviewed test gardening.
- platform/win/TestExpectations:
- 2:02 PM Changeset in webkit [226461] by
-
- 24 edits in trunk/Source
TypedArrays and Wasm should use index masking.
https://bugs.webkit.org/show_bug.cgi?id=181313
Reviewed by Michael Saboff.
Source/JavaScriptCore:
We should have index masking for our TypedArray code in the
DFG/FTL and for Wasm when doing bounds checking. Index masking for
Wasm is added to the WasmBoundsCheckValue. Since we don't CSE any
WasmBoundsCheckValues we don't need to worry about combining a
bounds check for a load and a store. I went with fusing the
pointer masking in the WasmBoundsCheckValue since it should reduce
additional compiler overhead.
- b3/B3LowerToAir.cpp:
- b3/B3Validate.cpp:
- b3/B3WasmBoundsCheckValue.cpp:
(JSC::B3::WasmBoundsCheckValue::WasmBoundsCheckValue):
(JSC::B3::WasmBoundsCheckValue::dumpMeta const):
- b3/B3WasmBoundsCheckValue.h:
(JSC::B3::WasmBoundsCheckValue::pinnedIndexingMask const):
- b3/air/AirCustom.h:
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
- b3/testb3.cpp:
(JSC::B3::testWasmBoundsCheck):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::loadFromIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileAtomicsReadModifyWrite):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::pointerIntoTypedArray):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitIntTypedArrayGetByVal):
- runtime/Butterfly.h:
(JSC::Butterfly::computeIndexingMask const):
(JSC::Butterfly::computeIndexingMaskForVectorLength): Deleted.
- runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::JSArrayBufferView):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::B3IRGenerator::load):
(JSC::Wasm::B3IRGenerator::store):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
- wasm/WasmBinding.cpp:
(JSC::Wasm::wasmToWasm):
- wasm/WasmMemory.cpp:
(JSC::Wasm::Memory::Memory):
(JSC::Wasm::Memory::grow):
- wasm/WasmMemory.h:
(JSC::Wasm::Memory::offsetOfIndexingMask):
- wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::PinnedRegisterInfo::PinnedRegisterInfo):
- wasm/WasmMemoryInformation.h:
(JSC::Wasm::PinnedRegisterInfo::toSave const):
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
Source/WTF:
- wtf/MathExtras.h:
(WTF::computeIndexingMask):
- 1:50 PM Changeset in webkit [226460] by
-
- 3 edits in trunk/Source/WebKit
WebFullScreenManager should compile when ENABLE(VIDEO) is off
https://bugs.webkit.org/show_bug.cgi?id=181338
Reviewed by Alex Christensen.
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
- WebProcess/FullScreen/WebFullScreenManager.h:
- 1:44 PM Changeset in webkit [226459] by
-
- 5 edits in tags/Safari-605.1.19/Source/WebKit
Cherry-pick r226458. rdar://problem/36311296
- 1:28 PM Changeset in webkit [226458] by
-
- 5 edits in trunk/Source/WebKit
[Apple Pay] Disable Apple Pay on platforms that don't have PassKit.framework
https://bugs.webkit.org/show_bug.cgi?id=181335
<rdar://problem/36311296>
Reviewed by Brady Eidson.
When Safari is running in the macOS Base System, PassKit.framework is not available.
If we fail to dlopen PassKit, we should disable Apple Pay.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetApplePayEnabled):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks):
(WebKit::WebPaymentCoordinatorProxy::platformSupportsPayments):
- 12:10 PM Changeset in webkit [226457] by
-
- 3 edits in trunk/Source/WebCore
SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded() should do nothing if the property is not animating
https://bugs.webkit.org/show_bug.cgi?id=181316
<rdar://problem/36147545>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-01-05
Reviewed by Simon Fraser.
This is a speculative change to fix a crash which appeared after r226065.
The crash is very intermittent and sometimes very hard to reproduce. The
basic code analysis did not show how this crash can even happen.
- svg/SVGAnimatedTypeAnimator.h:
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues): For SVG property
with two values, e.g. <SVGAngleValue, SVGMarkerOrientType>, we need to
detach the wrappers of the animated property if the animated values are
going to change. This is similar to what we did in resetFromBaseValue().
- svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::synchronizeWrappersIfNeeded):
- 11:51 AM Changeset in webkit [226456] by
-
- 3 edits1 delete in trunk/LayoutTests
Skip LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https.html
https://bugs.webkit.org/show_bug.cgi?id=181329
Unreviewed.
LayoutTests/imported/w3c:
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
- web-platform-tests/service-workers/service-worker/claim-shared-worker-fetch.https-expected.txt: Removed.
LayoutTests:
SharedWorker is not supported.
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
- 11:34 AM Changeset in webkit [226455] by
-
- 2 edits in trunk/LayoutTests
Marked fast/mediastream/MediaStream-MediaElement-setObject-null.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=181069
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:30 AM WebKitGTK/2.18.x edited by
- (diff)
- 11:09 AM Changeset in webkit [226454] by
-
- 3 edits in trunk/Source/WebKit
Fixed the build following AppKit API deprecations in a recent SDKs
- UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]): Suppressed deprecation warnings.
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]): Ditto.
(-[WKFullScreenWindowController exitFullScreen]): Ditto.
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]): Ditto.
(-[WKFullScreenWindowController completeFinishExitFullScreenAnimationAfterRepaint]): Ditto.
(-[WKFullScreenWindowController _startEnterFullScreenAnimationWithDuration:]): Ditto.
(-[WKFullScreenWindowController _startExitFullScreenAnimationWithDuration:]): Ditto.
- UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _setAutodisplay:]): Ditto.
- 11:01 AM Changeset in webkit [226453] by
-
- 27 edits in trunk
Unreviewed, rolling out r226401.
This caused timeouts on multiple platforms.
Reverted changeset:
"Implement Cache API partitioning based on ClientOrigin"
https://bugs.webkit.org/show_bug.cgi?id=181240
https://trac.webkit.org/changeset/226401
- 10:43 AM Changeset in webkit [226452] by
-
- 7 edits in trunk/Source
Fixed the build following AppKit API deprecations in a recent SDKs
Source/WebCore:
- platform/mac/PasteboardMac.mm:
(WebCore::setDragImageImpl): Suppressed deprecation warnings.
- platform/mac/WidgetMac.mm:
(WebCore::Widget::paint): Ditto.
Source/WebKitLegacy/mac:
- WebView/WebFullScreenController.mm:
(-[WebFullScreenController enterFullScreen:]): Suppressed deprecation warnings.
(-[WebFullScreenController exitFullScreen]): Ditto.
(-[WebFullScreenController _startEnterFullScreenAnimationWithDuration:]): Ditto.
(-[WebFullScreenController _startExitFullScreenAnimationWithDuration:]): Ditto.
- WebView/WebHTMLView.mm:
(-[WebHTMLView drawRect:]): Ditto.
(-[WebHTMLView _endPrintModeAndRestoreWindowAutodisplay]): Ditto.
(-[WebHTMLView knowsPageRange:]): Ditto.
- WebView/WebView.mm:
(LayerFlushController::flushLayers): Ditto.
- 10:14 AM Changeset in webkit [226451] by
-
- 6 edits8 adds in trunk
ServiceWorkers: Enable UserTiming / ResourceTiming
https://bugs.webkit.org/show_bug.cgi?id=181297
<rdar://problem/36307306>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-01-05
Reviewed by Youenn Fablet.
Source/WebCore:
Tests: http/tests/workers/service/service-worker-resource-timing.https.html
http/tests/workers/service/service-worker-user-timing.https.html
- loader/ResourceTiming.cpp:
(WebCore::ResourceTiming::ResourceTiming):
We used to clear extra NetworkLoadMetrics data early on. However,
for Workers we want to pass the complete NetworkLoadMetrics to
the Worker so that a Worker inspector has access to it.
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
Instead move the clearing of extra data to here, when the NetworkLoadMetrics
have finally settled into being used only for a performance entry.
Source/WebKit:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
Enable Resource Timing / User Timing for the ServiceWorker process.
LayoutTests:
- http/tests/workers/service/resources/data1.txt: Added.
- http/tests/workers/service/resources/data2.txt: Added.
Resources to load from a service-worker.
- http/tests/workers/service/resources/service-worker-resource-timing.js: Added.
- http/tests/workers/service/service-worker-resource-timing.https-expected.txt: Added.
- http/tests/workers/service/service-worker-resource-timing.https.html: Added.
Test that a ServiceWorker can produce resource entries for a few
different kinds of loads (CacheStorage load, and a fetch).
- http/tests/workers/service/resources/service-worker-user-timing.js: Added.
- http/tests/workers/service/service-worker-user-timing.https-expected.txt: Added.
- http/tests/workers/service/service-worker-user-timing.https.html: Added.
Test that a ServiceWorker can produce a mark/measure entries.
- 9:59 AM Changeset in webkit [226450] by
-
- 2 edits in trunk/Tools
iOS: Build fix after r226432.
Unreviewed. Stop duplicating speakAs symbols for iOS.
- DumpRenderTree/AccessibilityUIElement.cpp:
(AccessibilityUIElement::speakAs):
- 9:10 AM Changeset in webkit [226449] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event.https.html should not expect Upgrade-Insecure Requests header
https://bugs.webkit.org/show_bug.cgi?id=181286
Patch by Youenn Fablet <youenn@apple.com> on 2018-01-05
Reviewed by Alex Christensen.
Test previously expected upgrade-insecure-requests header to be inserted in a HTTP request.
Given the request URL is HTTPS, there is no need for that header.
- web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-event.https.html:
- 7:34 AM Changeset in webkit [226448] by
-
- 2 edits in trunk/Tools
Unreviewed, added myself as WebKit reviewer
- Scripts/webkitpy/common/config/contributors.json:
- 6:39 AM Changeset in webkit [226447] by
-
- 3 edits in trunk/LayoutTests
[WPE][GTK] Unreviewed gardening
Unskip svg/hittest/svg-shapes-non-scale-stroke.html, passing after
r226443.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:01 AM Changeset in webkit [226446] by
-
- 2 edits in trunk/Source/WebCore
[EME][GStreamer] Fix wrong ifdef
https://bugs.webkit.org/show_bug.cgi?id=181289
Reviewed by Alex Christensen.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Remove the
ENCRYPTED_MEDIA ifdef from the VIDEO_TRACK ifdef block. Both have
nothing to do together.
- 5:50 AM Changeset in webkit [226445] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed gardening
- platform/wpe/TestExpectations: Unskip two tests passing after r226404.
- 3:45 AM Changeset in webkit [226444] by
-
- 21 edits in trunk/LayoutTests
[WPE] Rebaseline test expectations after r226404
Unreviewed gardening.
- platform/wpe/css1/font_properties/font_size-expected.txt:
- platform/wpe/css1/text_properties/letter_spacing-expected.txt:
- platform/wpe/css1/text_properties/line_height-expected.txt:
- platform/wpe/css1/text_properties/text_indent-expected.txt:
- platform/wpe/css1/text_properties/word_spacing-expected.txt:
- platform/wpe/css1/units/length_units-expected.txt:
- platform/wpe/css2.1/t040302-c61-ex-len-00-b-a-expected.txt:
- platform/wpe/css2.1/t040302-c61-rel-len-00-b-ag-expected.txt:
- platform/wpe/css2.1/t1008-c44-ln-box-02-d-ag-expected.txt:
- platform/wpe/css2.1/t100801-c544-valgn-01-d-ag-expected.txt:
- platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt:
- platform/wpe/css2.1/t100801-c548-ln-ht-02-b-ag-expected.txt:
- platform/wpe/css2.1/t1507-c526-font-sz-02-b-a-expected.txt:
- platform/wpe/css2.1/t1601-c547-indent-00-b-a-expected.txt:
- platform/wpe/css2.1/t1604-c542-letter-sp-00-b-a-expected.txt:
- platform/wpe/svg/W3C-SVG-1.1-SE/coords-units-03-b-expected.txt:
- platform/wpe/svg/W3C-SVG-1.1/coords-units-03-b-expected.txt:
- platform/wpe/svg/custom/alignment-baseline-modes-expected.txt:
- platform/wpe/svg/custom/dominant-baseline-modes-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug55527-expected.txt:
- 3:41 AM Changeset in webkit [226443] by
-
- 3 edits2 adds in trunk
[Cairo] Canvas: Path::clear should clear its transform
https://bugs.webkit.org/show_bug.cgi?id=181320
Patch by Fujii Hironori <Fujii Hironori> on 2018-01-05
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Path of Cairo port has its cairo context. Path::clear() didn't
clear the transform matrix of the context.
Test: fast/canvas/reset-scaling-by-height-change.html
- platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::clear): Reset the transform matrix of Path.
LayoutTests:
- fast/canvas/reset-scaling-by-height-change-expected.txt: Added.
- fast/canvas/reset-scaling-by-height-change.html: Added.
- 3:11 AM Changeset in webkit [226442] by
-
- 2 edits in trunk
REGRESSION(r226306)[Win][CMake] Unnecessary recompilations triggered by unconditionally copied header files of DerivedSources
https://bugs.webkit.org/show_bug.cgi?id=181324
Patch by Fujii Hironori <Fujii Hironori> on 2018-01-05
Reviewed by Konstantin Tokarev.
r226306 changed to use cmake -E copy to copy header files of
DerivedSources. This command copies files unconditionally, then
introduced unnecessary recompilations.
- Source/cmake/WebKitMacros.cmake: Use copy_if_different instead of copy.
- 2:10 AM Changeset in webkit [226441] by
-
- 2 edits in trunk/Tools
WPE: Build fix after r226432.
Unreviewed. Rename ::speak() to ::speakAs().
- WebKitTestRunner/InjectedBundle/wpe/AccessibilityUIElementWPE.cpp:
(WTR::AccessibilityUIElement::speakAs):
(WTR::AccessibilityUIElement::speak): Deleted.
- 12:26 AM Changeset in webkit [226440] by
-
- 19 edits in trunk/Source/JavaScriptCore
Unreviewed, rolling out r226434.
https://bugs.webkit.org/show_bug.cgi?id=181322
32bit JSC failure in x86 (Requested by yusukesuzuki on
#webkit).
Reverted changeset:
"[DFG] Unify ToNumber implementation in 32bit and 64bit by
changing 32bit Int32Tag and LowestTag"
https://bugs.webkit.org/show_bug.cgi?id=181134
https://trac.webkit.org/changeset/226434