Timeline
May 1, 2017:
- 11:49 PM Changeset in webkit [216062] by
-
- 4 edits in trunk
[GCrypt] ECDSA signing and verification support
https://bugs.webkit.org/show_bug.cgi?id=171103
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Implement WebCrypto ECDSA support for configurations that
are using libgcrypt.
For signing, the provided data is first hashed with the specified
digest algorithm and embedded into a data s-expression. It's then
passed to gcry_pk_sign() along with the private key, returning a
sig-val s-expression. The r and s parameters are then retrieved from
that sig-val and their data extracted and concatenated in the output
Vector<>.
For verification, the data is again hashed and embedded into a data
s-expression. The r and s parameters are extracted from the passed-in
signature Vector<> and embedded into a sig-val s-expression. The data
and sig-val s-expressions are then passed to gcry_pk_verify() along
with the public key. The verification succeeds if no error is returned
and fails if the returned error code is GPG_ERR_BAD_SIGNATURE.
- crypto/gcrypt/CryptoAlgorithmECDSAGCrypt.cpp:
(WebCore::hashCryptoDigestAlgorithm):
(WebCore::hashAlgorithmName):
(WebCore::mpiData):
(WebCore::gcryptSign):
(WebCore::gcryptVerify):
(WebCore::CryptoAlgorithmECDSA::platformSign):
(WebCore::CryptoAlgorithmECDSA::platformVerify):
LayoutTests:
- platform/gtk/TestExpectations: Enable the passing ECDSA tests under
crypto/subtle/. The ECDSA tests that utilize PKCS #8 and SPKI remain
skipped since support for that hasn't landed yet.
- 11:37 PM Changeset in webkit [216061] by
-
- 4 edits2 adds in trunk
[GCrypt] HKDF bit derivation support
https://bugs.webkit.org/show_bug.cgi?id=171074
Reviewed by Michael Catanzaro.
Source/WebCore:
Implement bit derivation support for the HKDF algorithm for configurations
that use libgcrypt.
libgcrypt doesn't provide HKDF support out of the box, so we have to
implement the two steps manually. In the first one, we retrieve the
pseudo-random key by using the specified MAC algorithm with the salt data
as the key and the key data as the input keying material.
In the expand step, we do the required amount of iterations to derive
a sufficient amount of data, using the same MAC algorithm with the
pseudo-random key from the previous step on the data we compose from the
previous block data, the info data, and the current iteration value. The
resulting blocks are appended together until they can be clipped to the
desired output length.
- crypto/gcrypt/CryptoAlgorithmHKDFGCrypt.cpp:
(WebCore::macAlgorithmForHashFunction):
(WebCore::gcryptDeriveBits):
(WebCore::CryptoAlgorithmHKDF::platformDeriveBits):
LayoutTests:
The crypto/subtle/hkdf-derive-bits-length-limits.html test is added, testing the
corner-case length values for which the bit derivation operation must succeed or
fail for any specified SHA hash algorithm. With HashLen as the algorithm's output
length, the operation should reject for lengths of 0 or above 255 * HashLen * 8.
The operation should resolve for lengths between the two limits, with testing
performed on lengths of 8 (the minimum output length), HashLen * 8 (matching the
output length of the hash algorithm), and 255 * HashLen * 8 (the maximum
derivation output length).
- crypto/subtle/hkdf-derive-bits-length-limits-expected.txt: Added.
- crypto/subtle/hkdf-derive-bits-length-limits.html: Added.
- platform/gtk/TestExpectations: Enable the HKDF tests under crypto/subtle/.
- 11:34 PM Changeset in webkit [216060] by
-
- 6 edits2 adds in trunk
[GCrypt] ECDH bit derivation support
https://bugs.webkit.org/show_bug.cgi?id=171070
Reviewed by Michael Catanzaro.
Source/WebCore:
Implement bit derivation support for the ECDH algorithm for configurations
that use libgcrypt.
This is done by retrieving the private key data and wrapping it in a new
data s-expression. That's then encrypted with the public key, and the
returned s-expression contains the shared point data. That data is then
decoded into an EC point, from which the x-coordinate is retrieved. This
coordinate data is finally our bit derivation result.
- crypto/gcrypt/CryptoAlgorithmECDHGCrypt.cpp:
(WebCore::gcryptDerive):
(WebCore::CryptoAlgorithmECDH::platformDeriveBits):
Source/WebCore/PAL:
Add PAL::GCrypt::HandleDeleter specialization for the
gcry_mpi_point_t type.
- pal/crypto/gcrypt/Handle.h:
(PAL::GCrypt::HandleDeleter<gcry_mpi_point_t>::operator()):
LayoutTests:
The crypto/subtle/ecdh-derive-bits-length-limits.html test is added, testing the
corner-case length values for which the bit derivation operation must succeed or
fail. When specifying 0 as the length, the returned result must match the EC key
size in length. 8, tested as the minimum non-zero value, and the key size for
each key must also correctly resolve and return a resulting ArrayBuffer whose
length in bytes must match the requested length. Derivations for byte-aligned
values should start rejecting immediately for length values that are bigger than
the EC key's length.
- crypto/subtle/ecdh-derive-bits-length-limits-expected.txt: Added.
- crypto/subtle/ecdh-derive-bits-length-limits.html: Added.
- platform/gtk/TestExpectations: Enable Web Crypto ECDH tests under crypto/subtle/
that are passing now that the proper implementation has been added. The remaining
failing ECDH tests use PKCS #8 and SPKI key import/export formats, which are not
supported yet.
- 10:30 PM Changeset in webkit [216059] by
-
- 2 edits in trunk/Source/WTF
[Xcode] It’s easy to accidentally install a WTF header outside /usr/local/include/wtf
https://bugs.webkit.org/show_bug.cgi?id=171533
Reviewed by Andy Estes.
- WTF.xcodeproj/project.pbxproj: Removed the WTF target’s Headers build phase. Its existence was making it easy to accidentally add a header to the target and make it Private, which would have Xcode install a copy of it right under /usr/local/include, in addition to the copy installed under /usr/local/include/wtf by the Copy WTF Headers target. Also got rid of INSTALL_PATH_PREFIX in the script build phase in the Copy WTF Headers target, because it is being never set anymore.
- 9:32 PM Changeset in webkit [216058] by
-
- 3 edits in trunk/Source/JavaScriptCore
[aarch64][Linux] m_allowScratchRegister assert hit in MacroAssemblerARM64 under B3::Air::CCallSpecial::generate()
https://bugs.webkit.org/show_bug.cgi?id=170672
Reviewed by Filip Pizlo.
In Air::CCallSpecial::admitsStack() we reject admitting the callee argument on
the stack for ARM64 because that can lead to disallowed usage of the scratch
register in MacroAssemblerARM64 when generating a call with an address Arg
in Air::CCallSpecial::generate().
The testLinearScanWithCalleeOnStack test is added to testb3. It reproduces the
original issue by force-spilling everything on the stack and enforcing the use
of the linear scan register allocation by using an optimization level of 1.
- b3/air/AirCCallSpecial.cpp:
(JSC::B3::Air::CCallSpecial::admitsStack):
- b3/testb3.cpp:
(JSC::B3::testLinearScanWithCalleeOnStack):
(JSC::B3::run):
- 8:14 PM Changeset in webkit [216057] by
-
- 2 edits in trunk/Source/WTF
WTF installs an extra copy of a header outside /usr/local/include/wtf
- WTF.xcodeproj/project.pbxproj: Demoted CPUTime.h from Private to Project.
- 7:04 PM Changeset in webkit [216056] by
-
- 4 edits in trunk/LayoutTests
REGRESSION: LayoutTest workers/wasm-hashset-many.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=171449
Unreviewed.
- platform/win/TestExpectations: Skip Wasm tests on Windows.
- workers/wasm-hashset-many-expected.txt:
- workers/wasm-hashset/many-test.js: Make wasm-hashset-many run fewer workers.
- 6:47 PM Changeset in webkit [216055] by
-
- 2 edits in trunk/Source/WebKit2
Use RELEASE_LOG_ERROR() to do process termination logging
https://bugs.webkit.org/show_bug.cgi?id=171521
Reviewed by Andreas Kling.
Use RELEASE_LOG_ERROR() to do process termination logging instead of RELEASE_LOG().
This makes the issue more visible in Console.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didExceedActiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedInactiveMemoryLimit):
(WebKit::WebProcessProxy::didExceedBackgroundCPULimit):
- 6:33 PM Changeset in webkit [216054] by
-
- 6 edits in trunk
Ensure RealtimeOutgoingVideoSource sends a black frame when its related source is muted
https://bugs.webkit.org/show_bug.cgi?id=171497
Patch by Youenn Fablet <youenn@apple.com> on 2017-05-01
Reviewed by Eric Carlson.
Source/WebCore:
Covered by updated test.
When the track is being muted or disabled, send a black frame explicitly.
VideoToolBox sometimes does not output a frame until it receives the other.
That is why we end up sending two frames, the second asynchronously so that libwebrtc will not skip it.
Also storing the rotation so that we keep the same rotation for black frames.
Storing width and height for consistency as well.
- platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
(WebCore::RealtimeOutgoingVideoSource::RealtimeOutgoingVideoSource):
(WebCore::RealtimeOutgoingVideoSource::setSource):
(WebCore::RealtimeOutgoingVideoSource::stop):
(WebCore::RealtimeOutgoingVideoSource::sourceMutedChanged):
(WebCore::RealtimeOutgoingVideoSource::sourceEnabledChanged):
(WebCore::RealtimeOutgoingVideoSource::setSizeFromSource):
(WebCore::RealtimeOutgoingVideoSource::sendBlackFrame):
(WebCore::RealtimeOutgoingVideoSource::sendFrame):
(WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable):
- platform/mediastream/mac/RealtimeOutgoingVideoSource.h:
LayoutTests:
- webrtc/video-mute.html: Updating the test to make debugging clearer.
- 6:28 PM Changeset in webkit [216053] by
-
- 2 edits in trunk/Source/WebKit2
Only try to get sandbox extension handle for IndexedDB directory if it is set.
rdar://problem/31925828 and https://bugs.webkit.org/show_bug.cgi?id=171522
Reviewed by Andy Estes.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
- 6:24 PM Changeset in webkit [216052] by
-
- 26 edits1 move in trunk/LayoutTests/imported/w3c
Eliminate ?pipe=sub from Resource Timing Tests
https://bugs.webkit.org/show_bug.cgi?id=171525
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-01
Reviewed by Youenn Fablet.
- web-platform-tests/resource-timing/resources/rt-utilities.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/resource-timing/resources/rt-utilities.js.
Rename with ".sub.js" to automatically get substitutions.
- web-platform-tests/resource-timing/resources/rt-iframe-1.html:
- web-platform-tests/resource-timing/resources/rt-iframe-2.html:
- web-platform-tests/resource-timing/resources/rt-worker-resources.js:
- web-platform-tests/resource-timing/rt-cors.html:
- web-platform-tests/resource-timing/rt-cors.worker.js:
- web-platform-tests/resource-timing/rt-initiatorType-css.html:
- web-platform-tests/resource-timing/rt-initiatorType-element.html:
- web-platform-tests/resource-timing/rt-initiatorType-fetch.html:
- web-platform-tests/resource-timing/rt-initiatorType-media.html:
- web-platform-tests/resource-timing/rt-initiatorType-other.html:
- web-platform-tests/resource-timing/rt-initiatorType-script-module.html:
- web-platform-tests/resource-timing/rt-initiatorType-xmlhttprequest.html:
- web-platform-tests/resource-timing/rt-initiatorType.worker.js:
- web-platform-tests/resource-timing/rt-nextHopProtocol.html:
- web-platform-tests/resource-timing/rt-nextHopProtocol.worker.js:
- web-platform-tests/resource-timing/rt-performance-extensions.html:
- web-platform-tests/resource-timing/rt-performance-extensions.worker.js:
- web-platform-tests/resource-timing/rt-resource-errors.html:
- web-platform-tests/resource-timing/rt-resource-ignored.html:
- web-platform-tests/resource-timing/rt-resources-per-frame.html:
- web-platform-tests/resource-timing/rt-resources-per-worker.html:
- web-platform-tests/resource-timing/rt-revalidate-requests.html:
- web-platform-tests/resource-timing/rt-serialization.html:
- web-platform-tests/resource-timing/rt-shared-resource-in-frames.html:
- web-platform-tests/resource-timing/rt-shared-resource-in-workers.html:
Update include of rt-utilities.
- 6:16 PM Changeset in webkit [216051] by
-
- 4 edits in trunk/Source/WebCore
Simplify Resource Timing handling of cached resource
https://bugs.webkit.org/show_bug.cgi?id=171526
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-05-01
Reviewed by Youenn Fablet.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::reportResourceTiming):
Use auto in ResourceTiming construction.
Eliminate an outdated comment.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
We can avoid the checks around the request.origin. It should already
be the cases we were checking and asserting because of login in
CachedResourceLoader::prepareFetch.
- 6:07 PM Changeset in webkit [216050] by
-
- 7 edits1 move in trunk/Source/WebCore
Unreviewed, rolling out r216024.
This change caused ios-simulator LayoutTests to exit early
with assertion failures.
Reverted changeset:
"Add audio device change notifications to AudioSession."
https://bugs.webkit.org/show_bug.cgi?id=171403
http://trac.webkit.org/changeset/216024
- 6:00 PM Changeset in webkit [216049] by
-
- 4 edits in trunk
Stop using sprintf() in JavaScriptCore debugger
<https://webkit.org/b/171512>
Reviewed by Keith Miller.
Source/JavaScriptCore:
- disassembler/udis86/udis86.c:
(ud_insn_hex): Switch from sprintf() to snprintf().
Tools:
- Scripts/webkitpy/style/checker.py:
(_PATH_RULES_SPECIFIER): Ignore some formatting checkers since
Source/JavaScriptCore/disassembler/udis86/ is generated code.
- 5:51 PM Changeset in webkit [216048] by
-
- 2 edits in trunk/LayoutTests
Marked LayoutTest/http/tests/preload/not_delaying_window_onload_before_discovery.html as flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=171528
Unreviewed test Gardening.
Patch by Matt Lewis <Matt Lewis> on 2017-05-01
- platform/ios-wk2/TestExpectations:
- 5:08 PM Changeset in webkit [216047] by
-
- 53 edits6 adds4 deletes in trunk
Expose viewport-fit instead of clip-to-safe-area
https://bugs.webkit.org/show_bug.cgi?id=171503
<rdar://problem/31918249>
Reviewed by Simon Fraser.
Tests: fast/viewport/ios/viewport-fit-auto.html
fast/viewport/ios/viewport-fit-contain.html
fast/viewport/ios/viewport-fit-cover.html
- dom/ConstantPropertyMap.cpp:
(WebCore::ConstantPropertyMap::buildValues):
(WebCore::ConstantPropertyMap::updateConstantsForUnobscuredSafeAreaInsets):
(WebCore::ConstantPropertyMap::didChangeSafeAreaInsets):
(WebCore::ConstantPropertyMap::updateConstantsForObscuredInsets): Deleted.
(WebCore::ConstantPropertyMap::didChangeObscuredInsets): Deleted.
- dom/ConstantPropertyMap.h:
Retrieve the safe area insets from page, instead of assuming that we should
just expose the entire obscured inset. Also, do some renames.
- dom/ViewportArguments.cpp:
(WebCore::ViewportArguments::resolve):
(WebCore::parseViewportFitValue):
(WebCore::setViewportFeature):
- dom/ViewportArguments.h:
(WebCore::ViewportArguments::operator==):
- page/ChromeClient.h:
- page/FrameView.cpp:
(WebCore::FrameView::enableSpeculativeTilingIfNeeded):
(WebCore::FrameView::calculateExtendedBackgroundMode):
(WebCore::FrameView::setClipToSafeArea): Deleted.
- page/FrameView.h:
- page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::updateConfiguration):
(WebCore::operator<<):
(WebCore::ViewportConfiguration::description):
(WebCore::ViewportConfiguration::dump):
- page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::avoidsUnsafeArea):
(WebCore::ViewportConfiguration::Parameters::Parameters):
(WebCore::ViewportConfiguration::clipToSafeArea): Deleted.
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateRootContentLayerClipping):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintUsingContainer):
Un-do changes to support clip-to-safe-area, and instead implement
a new viewport-fit argument in the viewport meta tag, which takes
"auto", "contain", and "cover". "auto" and "contain" cause web content
to lay out excluding the safe area inset from the layout size, while
"cover" causes web content to expand into the unsafe area.
- page/Page.cpp:
(WebCore::Page::setUnobscuredSafeAreaInsets):
(WebCore::Page::setObscuredInsets): Deleted.
- page/Page.h:
(WebCore::Page::setObscuredInsets):
(WebCore::Page::unobscuredSafeAreaInsets):
Keep safe area and obscured insets separately.
- Shared/VisibleContentRectUpdateInfo.cpp:
(WebKit::VisibleContentRectUpdateInfo::encode):
(WebKit::VisibleContentRectUpdateInfo::decode):
(WebKit::operator<<):
- Shared/VisibleContentRectUpdateInfo.h:
(WebKit::VisibleContentRectUpdateInfo::VisibleContentRectUpdateInfo):
(WebKit::VisibleContentRectUpdateInfo::unobscuredSafeAreaInsets):
(WebKit::operator==):
Plumb the safe area insets down from the UI process to the Web Content
process inside the visible content rect update, alongside the obscured
insets.
- Shared/mac/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::avoidsUnsafeArea):
(WebKit::RemoteLayerTreeTransaction::setAvoidsUnsafeArea):
- Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::description):
- UIProcess/PageClient.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didChangeAvoidsUnsafeArea):
(WebKit::PageClientImpl::didChangeClipToSafeArea): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didCommitLayerTree):
- UIProcess/mac/PageClientImpl.h:
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::didChangeClipToSafeArea): Deleted.
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::updateVisibleContentRects):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::setAvoidsUnsafeArea):
(WebKit::WebPageProxy::setClipToSafeArea): Deleted.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::avoidsUnsafeArea):
(WebKit::WebPageProxy::clipToSafeArea): Deleted.
- UIProcess/WebPageProxy.messages.in:
Plumb the effective value of viewport-fit (whether or not to avoid
the safe area for layout purposes) from the Web Content process
to the UI process inside the layer tree transaction.
Also, remove clip-to-safe-area plumbing.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _computedContentInset]):
(-[WKWebView _computedUnobscuredSafeAreaInset]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _updateScrollViewInsetAdjustmentBehavior]):
(-[WKWebView _safeAreaShouldAffectObscuredInsets]):
(-[WKWebView _unobscuredSafeAreaInsets]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _contentMayDrawInObscuredInsets]): Deleted.
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Make use of the effective value of viewport-fit to decide whether to
take the safe area into account when computing the obscured insets,
and expose this to clients (in the case that they need to know
because they push their own obscured insets down). Also expose a
safe area inset setter for that case as well.
- UIProcess/ios/WKContentView.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView updateFixedClippingView:]):
(-[WKContentView didUpdateVisibleRect:unobscuredRect:unobscuredRectInScrollViewCoordinates:obscuredInsets:unobscuredSafeAreaInsets:inputViewBounds:scale:minimumScale:inStableState:isChangingObscuredInsetsInteractively:enclosedInScrollableAncestorView:]):
Remove a piece of the clip-to-safe-area implementation, and plumb
safe area insets into the visible content rect update info.
- UIProcess/ios/WKScrollView.h:
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):
(-[WKScrollView _contentInsetAdjustmentBehaviorWasExternallyOverridden]):
(-[WKScrollView _setContentInsetAdjustmentBehavior:]):
(-[WKScrollView _setContentInsetAdjustmentBehaviorInternal:]):
Keep track of whether the client has ever touched the content inset adjustment
behavior; if they have, we won't manage it ourselves.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::setSafeAreaInsets):
(WTR::UIScriptController::setObscuredInsets): Deleted.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::setSafeAreaInsets):
(WTR::UIScriptController::setObscuredInsets): Deleted.
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
- WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
(-[TestRunnerWKWebView setOverrideSafeAreaInsets:]):
(-[TestRunnerWKWebView _safeAreaInsetsForFrame:inSuperview:]):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIKitSPI.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::setSafeAreaInsets):
(WTR::UIScriptController::setObscuredInsets): Deleted.
Expose a safe area inset setter instead of obscured insets.
- TestExpectations:
- fast/css/variables/constants/ios/safe-area-inset-set-expected.html:
- fast/css/variables/constants/ios/safe-area-inset-set.html:
- fast/viewport/ios/viewport-fit-auto-expected.txt: Added.
- fast/viewport/ios/viewport-fit-auto.html: Added.
- fast/viewport/ios/viewport-fit-contain-expected.txt: Added.
- fast/viewport/ios/viewport-fit-contain.html: Added.
- fast/viewport/ios/viewport-fit-cover-expected.txt: Added.
- fast/viewport/ios/viewport-fit-cover.html: Added.
- tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles-expected.txt: Removed.
- tiled-drawing/ios/viewport-clip-to-safe-area-no-gets-margin-tiles.html: Removed.
- tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles-expected.txt: Removed.
- tiled-drawing/ios/viewport-clip-to-safe-area-yes-gets-no-margin-tiles.html: Removed.
Remove clip-to-safe-area tests and add some viewport-fit tests. Also, adjust
safe-area-inset-set to use the new UIScriptController setSafeAreaInset method.
- 5:02 PM Changeset in webkit [216046] by
-
- 6 edits2 adds in trunk
Documents created using DOMParser.parseFromString should inherit their context document's origin / URL
https://bugs.webkit.org/show_bug.cgi?id=171499
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Rebaseline web-platform-tests now that more checks are passing.
- web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
- web-platform-tests/domparsing/DOMParser-parseFromString-xml-expected.txt:
Source/WebCore:
Documents created using DOMParser.parseFromString should inherit their context document's
origin / URL:
Test: fast/dom/domparser-parsefromstring-origin.html
- xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
LayoutTests:
Add layout test coverage. I have verified that this test passes in both Firefox and Chrome.
- fast/dom/domparser-parsefromstring-origin-expected.txt: Added.
- fast/dom/domparser-parsefromstring-origin.html: Added.
- 5:01 PM Changeset in webkit [216045] by
-
- 2 edits in trunk/LayoutTests
Mark inspector/debugger/tail-recursion.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=168387
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 5:01 PM Changeset in webkit [216044] by
-
- 3 edits in trunk/LayoutTests
Rebaseline two fast/visual-viewport tests for iOS.
Unreviewed test gardening.
- platform/ios/fast/visual-viewport/zoomed-fixed-expected.txt:
- platform/ios/fast/visual-viewport/zoomed-fixed-header-and-footer-expected.txt:
- 4:54 PM Changeset in webkit [216043] by
-
- 2 edits in trunk/Source/WebCore
Web Inspector: ASSERT(!m_startedComposite) fails when recording on non-Cocoa Timeline
https://bugs.webkit.org/show_bug.cgi?id=171363
Patch by Ross Kirsling <Ross Kirsling> on 2017-05-01
Reviewed by Matt Baker.
- page/FrameView.cpp:
(WebCore::FrameView::flushCompositingStateIncludingSubframes): Add PLATFORM(COCOA) guard.
- 4:18 PM Changeset in webkit [216042] by
-
- 2 edits in trunk/Tools
Unreviewed, fix the build on a new internal SDK
Replace usages of NSItemProviderRepresentationVisibilityAll with
UIItemProviderRepresentationOptionsVisibilityAll.
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]):
(TestWebKitAPI::TEST):
- 4:00 PM Changeset in webkit [216041] by
-
- 3 edits in trunk/Tools
[Cocoa] Replace uses of [get…Class() alloc] in TestWebKitAPI
<https://webkit.org/b/171493>
Reviewed by Dan Bernstein.
- TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm:
Remove UIKit soft-link since TestWebKitAPI links to
UIKit.framework.
(TestWebKitAPI::WebKit1_AudioSessionCategoryIOS_Test): Use
UIWindow and UIWebView classes directly.
- TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:
Remove UIKit soft-link since TestWebKitAPI links to
UIKit.framework.
(RequiresUserActionForPlaybackTest::createWebView): Use UIWindow
class directly.
- 3:55 PM Changeset in webkit [216040] by
-
- 2 edits in trunk/Source/WebCore
Stop using strcpy() in fullyQualifiedInfoTableName() from Database.cpp
<https://webkit.org/b/171517>
Reviewed by Brady Eidson.
- Modules/webdatabase/Database.cpp:
(WebCore::fullyQualifiedInfoTableName): Switch from strcpy() to
snprintf().
- 3:54 PM Changeset in webkit [216039] by
-
- 4 edits in trunk/LayoutTests
[GTK] Two test started to fail after due to unhandled promise rejection reported after r215916
https://bugs.webkit.org/show_bug.cgi?id=171491
Unreviewed test gardening.
- js/promises-tests/promises-tests-2-3-3.html:
Silence unhandled expectation messages for this test.
- media/video-fullscreen-restriction-removed-expected.txt:
Rebaseline expected results with unhandled expectation message.
- platform/gtk/TestExpectations:
- 3:52 PM Changeset in webkit [216038] by
-
- 11 edits3 adds in trunk
AX: Support time@datetime for verbosity clarification of dates, times, and durations
https://bugs.webkit.org/show_bug.cgi?id=171498
<rdar://problem/12985540>
Reviewed by Joanmarie Diggs.
Source/WebCore:
Expose the datetime attribute value.
Test: accessibility/datetime-attribute.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::datetimeAttributeValue):
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
(-[WebAccessibilityObjectWrapper accessibilityDatetimeValue]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
LayoutTests:
- accessibility/datetime-attribute.html: Added.
- accessibility/roles-computedRoleString-expected.txt:
- platform/gtk/accessibility/datetime-attribute-expected.txt: Added.
- platform/gtk/accessibility/roles-exposed-expected.txt:
- platform/mac/accessibility/datetime-attribute-expected.txt: Added.
- platform/mac/accessibility/roles-computedRoleString-expected.txt:
- platform/mac/accessibility/roles-exposed-expected.txt:
- 3:41 PM Changeset in webkit [216037] by
-
- 22 edits9 moves in trunk
Update names in WKURLSchemeHandler/WKURLSchemeHandlerTask APIs.
<rdar://problem/31824838> and https://bugs.webkit.org/show_bug.cgi?id=171508
Reviewed by Andy Estes.
Source/WebKit2:
This patch:
- Renames WKURLSchemeHandlerTask to WKURLSchemeTask
- Renames the method "startTask" to "startURLSchemeTask"
- Renames the method "stopTask" to "stopURLSchemeTask"
To those effects it's basically a global replace.
- Shared/API/APIObject.h:
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- UIProcess/API/APIURLSchemeTask.cpp: Renamed from Source/WebKit2/UIProcess/API/APIURLSchemeHandlerTask.cpp.
(API::URLSchemeTask::create):
(API::URLSchemeTask::URLSchemeTask):
- UIProcess/API/APIURLSchemeTask.h: Renamed from Source/WebKit2/UIProcess/API/APIURLSchemeHandlerTask.h.
- UIProcess/API/Cocoa/WKURLSchemeHandler.h:
- UIProcess/API/Cocoa/WKURLSchemeTask.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKURLSchemeHandlerTask.h.
- UIProcess/API/Cocoa/WKURLSchemeTask.mm: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKURLSchemeHandlerTask.mm.
(raiseExceptionIfNecessary):
(-[WKURLSchemeTaskImpl request]):
(-[WKURLSchemeTaskImpl didReceiveResponse:]):
(-[WKURLSchemeTaskImpl didReceiveData:]):
(-[WKURLSchemeTaskImpl didFinish]):
(-[WKURLSchemeTaskImpl didFailWithError:]):
(-[WKURLSchemeTaskImpl _apiObject]):
- UIProcess/API/Cocoa/WKURLSchemeTaskInternal.h: Renamed from Source/WebKit2/UIProcess/API/Cocoa/WKURLSchemeHandlerTaskInternal.h.
(WebKit::wrapper):
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.h:
- UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
(WebKit::WebURLSchemeHandlerCocoa::platformStartTask):
(WebKit::WebURLSchemeHandlerCocoa::platformStopTask):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::startURLSchemeTask):
(WebKit::WebPageProxy::stopURLSchemeTask):
(WebKit::WebPageProxy::startURLSchemeHandlerTask): Deleted.
(WebKit::WebPageProxy::stopURLSchemeHandlerTask): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebURLSchemeHandler.cpp:
(WebKit::WebURLSchemeHandler::startTask):
- UIProcess/WebURLSchemeHandler.h:
- UIProcess/WebURLSchemeTask.cpp: Renamed from Source/WebKit2/UIProcess/WebURLSchemeHandlerTask.cpp.
(WebKit::WebURLSchemeTask::create):
(WebKit::WebURLSchemeTask::WebURLSchemeTask):
(WebKit::WebURLSchemeTask::didReceiveResponse):
(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):
(WebKit::WebURLSchemeTask::pageDestroyed):
(WebKit::WebURLSchemeTask::stop):
- UIProcess/WebURLSchemeTask.h: Renamed from Source/WebKit2/UIProcess/WebURLSchemeHandlerTask.h.
(WebKit::WebURLSchemeTask::identifier):
(WebKit::WebURLSchemeTask::request):
- WebKit2.xcodeproj/project.pbxproj:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::addURLSchemeTaskProxy):
(WebKit::WebLoaderStrategy::removeURLSchemeTaskProxy):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::addURLSchemeHandlerTaskProxy): Deleted.
(WebKit::WebLoaderStrategy::removeURLSchemeHandlerTaskProxy): Deleted.
- WebProcess/Network/WebLoaderStrategy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::urlSchemeTaskDidReceiveResponse):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::urlSchemeTaskDidComplete):
(WebKit::WebPage::urlSchemeHandlerTaskDidReceiveResponse): Deleted.
(WebKit::WebPage::urlSchemeHandlerTaskDidReceiveData): Deleted.
(WebKit::WebPage::urlSchemeHandlerTaskDidComplete): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::startNewTask):
(WebKit::WebURLSchemeHandlerProxy::taskDidComplete):
(WebKit::WebURLSchemeHandlerProxy::taskDidStopLoading):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/WebURLSchemeHandlerTaskProxy.cpp.
(WebKit::WebURLSchemeTaskProxy::WebURLSchemeTaskProxy):
(WebKit::WebURLSchemeTaskProxy::startLoading):
(WebKit::WebURLSchemeTaskProxy::stopLoading):
(WebKit::WebURLSchemeTaskProxy::didReceiveResponse):
(WebKit::WebURLSchemeTaskProxy::didReceiveData):
(WebKit::WebURLSchemeTaskProxy::didComplete):
(WebKit::WebURLSchemeTaskProxy::hasLoader):
- WebProcess/WebPage/WebURLSchemeTaskProxy.h: Renamed from Source/WebKit2/WebProcess/WebPage/WebURLSchemeHandlerTaskProxy.h.
(WebKit::WebURLSchemeTaskProxy::request):
(WebKit::WebURLSchemeTaskProxy::identifier):
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WKURLSchemeHandler-1.mm:
(-[SchemeHandler webView:startURLSchemeTask:]):
(-[SchemeHandler webView:stopURLSchemeTask:]):
(-[SchemeHandler webView:startTask:]): Deleted.
(-[SchemeHandler webView:stopTask:]): Deleted.
- 3:29 PM Changeset in webkit [216036] by
-
- 2 edits in trunk/LayoutTests
Marked fast/mediastream/getUserMedia-webaudio.html as flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=170960
Unreviewed test gardening.
Patch by Matt Lewis <Matt Lewis> on 2017-05-01
- platform/mac-wk2/TestExpectations:
- 3:24 PM Changeset in webkit [216035] by
-
- 29 edits3 adds in trunk
RejectedPromiseTracker should produce better callstacks and avoid capturing callstacks unless there is a debugger/inspector
https://bugs.webkit.org/show_bug.cgi?id=171416
<rdar://problem/31899425>
Reviewed by Saam Barati and Brian Burg.
LayoutTests/imported/w3c:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_bits-expected.txt:
- web-platform-tests/WebCryptoAPI/derive_bits_keys/test_ecdh_keys-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/event_pause_noautoplay-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/event_play_noautoplay-expected.txt:
- web-platform-tests/html/semantics/embedded-content/media-elements/paused_true_during_pause-expected.txt:
- web-platform-tests/streams/piping/close-propagation-forward-expected.txt:
- web-platform-tests/streams/piping/error-propagation-backward-expected.txt:
- web-platform-tests/streams/piping/error-propagation-forward-expected.txt:
- web-platform-tests/streams/piping/flow-control-expected.txt:
- web-platform-tests/streams/piping/general-expected.txt:
Rebaseline results. Better stack trace for errors includes correct line numbers.
Explicit rejections with a value do not include backtraces without a debugger.
Source/WebCore:
Test: inspector/console/message-stack-trace.html
- dom/RejectedPromiseTracker.cpp:
(WebCore::UnhandledPromise::UnhandledPromise):
(WebCore::UnhandledPromise::callStack):
Switch to RefPtr to allow not capturing the stack.
(WebCore::createScriptCallStackFromReason):
Use the VM's lastException if the value in the exception is the
rejected promise value. Using the Exception call stack is important
because uncaught exceptions in promise rejections trigger a built-in
try/catch and re-enter JavaScript before passing the Error through
to the RejectionTracker. When possible, we don't want to capture the
new stack originating from the try/catch. Instead, we want the stack
from before the try/catch when the error was created.
- dom/ScriptExecutionContext.h:
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):
Switch to a pointer since the stack could be empty.
LayoutTests:
- inspector/console/message-stack-trace-expected.txt: Added.
- inspector/console/message-stack-trace.html: Added.
Test console stack traces from various places where console messages
are generated and the stacks are important.
- inspector/console/resources/log-console-stack-trace.js: Added.
(TestPage.registerInitializer.logCallFrame):
(TestPage.registerInitializer.window.logConsoleMessageStackTrace):
Like the logger for Debugger StackTrace but for Console StackTrace.
- inspector/debugger/break-on-exception-throw-in-promise-expected.txt:
- inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt:
- fast/mediastream/MediaStream-MediaElement-setObject-null-expected.txt:
- http/tests/security/video-cross-origin-caching-expected.txt:
- js/dom/unhandled-promise-rejection-bindings-type-error-expected.txt:
- js/dom/unhandled-promise-rejection-console-report-expected.txt:
- js/promises-tests/promises-tests-2-2-6-expected.txt:
- streams/reference-implementation/pipe-to-options-expected.txt:
- streams/reference-implementation/readable-stream-templated-expected.txt:
- streams/reference-implementation/writable-stream-abort-expected.txt:
- streams/reference-implementation/writable-stream-expected.txt:
- webrtc/libwebrtc/release-while-creating-offer-expected.txt:
- webrtc/libwebrtc/release-while-setting-local-description-expected.txt:
Rebaseline results. Better stack trace for errors includes correct line numbers.
Explicit rejections with a value do not include backtraces without a debugger.
- 3:03 PM Changeset in webkit [216034] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix after r216033.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create):
- 2:53 PM Changeset in webkit [216033] by
-
- 2 edits in trunk/LayoutTests
LayoutTest/imported/w3c/web-platform-tests/resource-timing/rt-revalidate-requests.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=171511
Unreviewed test gardening.
- 2:53 PM Changeset in webkit [216032] by
-
- 2 edits in trunk/Tools
Add a new function for getting the Git hash for a pure git directory.
https://bugs.webkit.org/show_bug.cgi?id=171450
Reviewed by David Kilzer.
- Scripts/VCSUtils.pm:
(gitHashForDirectory):
- 2:52 PM Changeset in webkit [216031] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for http/tests/fetch/fetch-in-worker-crash.html.
Unreviewed test gardening.
- 2:49 PM Changeset in webkit [216030] by
-
- 11 edits in trunk
fix check-webkit-style errors in webkitpy about two blank lines before class definitions
https://bugs.webkit.org/show_bug.cgi?id=171509
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/common/config/committers.py: Added two blank lines before class definition.
- Scripts/webkitpy/layout_tests/models/test_run_results.py: Ditto.
- Scripts/webkitpy/layout_tests/run_webkit_tests.py: Ditto.
- Scripts/webkitpy/port/base_unittest.py: Ditto.
- Scripts/webkitpy/port/device.py: Ditto.
- Scripts/webkitpy/port/linux_get_crash_log.py: Ditto.
- Scripts/webkitpy/style/checkers/featuredefines.py: Ditto.
- Scripts/webkitpy/style/checkers/jsonchecker.py: Ditto.
- Scripts/webkitpy/tool/bot/patchanalysistask.py: Ditto.
- Scripts/webkitpy/layout_tests/controllers/manager_unittest.py: Ditto.
(ManagerTest.test_uses_custom_device.MockCustomDevicePort): Added blank line before method.
(ManagerTest.test_uses_custom_device): Removed extra blank line at end of file.
- 2:38 PM Changeset in webkit [216029] by
-
- 3 edits in trunk/Source/WebCore
Use AVAudioSession to enumerate audio capture devices on iOS
https://bugs.webkit.org/show_bug.cgi?id=170861
<rdar://problem/31653658>
Reviewed by Eric Carlson.
Hook up the new AVAudioSessionCaptureDeviceManager class to CoreAudioCaptureSource and to the (increasingly ill-named)
RealtimeMediaSourceCenterMac.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create):
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
(WebCore::RealtimeMediaSourceCenterMac::setUseAVFoundationAudioCapture):
- 2:19 PM Changeset in webkit [216028] by
-
- 9 edits in trunk
[ATK] Expose values of aria-rowcount, aria-colcount, aria-rowindex, aria-colindex, aria-rowspan, and aria-colspan as object attributes
https://bugs.webkit.org/show_bug.cgi?id=171496
Reviewed by Chris Fleizach.
Source/WebCore:
Expose valid, author-provided values as an object attribute. In order to distinguish
author-provided values from the default returned by WebCore Accessibility (1), change
the default return value to -1. We cannot return 0 because the ARIA spec states that
0 is a valid value for authors to provide to indicate that the cell spans the remaining
rows in the row group.
Also removed some legacy code. The "layout-guess" attribute was needed and expected
as a way for AT-SPI2-based assistive technologies to identify layout tables. WebCore
Accessibility does not expose tables which are purely for layout as accessible tables,
and WebKitGtk uses that implementation, thus this attribute is no longer relevant.
No new tests. Unskipped existing test which is now passing.
- accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::ariaRowSpanWithRowIndex):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):
- accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::ariaColumnSpan):
(WebCore::AccessibilityTableCell::ariaRowSpan):
- accessibility/AccessibilityTableCell.h:
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
Tools:
Add new attribute names so that the values of the object attributes can be tested.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::numberAttributeValue):
LayoutTests:
- platform/gtk/TestExpectations: Unskip accessibility/aria-table-attributes.html
- 2:17 PM Changeset in webkit [216027] by
-
- 2 edits in trunk/Source/JavaScriptCore
Air::fixObviousSpills should remove totally redundant instructions
https://bugs.webkit.org/show_bug.cgi?id=171131
Reviewed by Saam Barati.
This is a modest compile-time-neutral improvement to fixObviousSpills. That phase
builds up a classic alias analysis data structure over spills and registers and then
uses it to remove the most common spill pathologies we encounter. For example, if you
use a spill but the spill is aliased to a register or constant, then we can replace the
use of the spill with a use of the register or constant.
But that phase was missing perhaps one of the most obvious fixups that its analysis
allows us to do: if any instruction creates an alias we already know about, then the
instruction is redundant. This turned out to be super important for
https://bugs.webkit.org/show_bug.cgi?id=171075. That patch didn't work out, but this
kind of optimization might be a good clean-up for many other kinds of optimizations.
- b3/air/AirFixObviousSpills.cpp:
- 2:15 PM Changeset in webkit [216026] by
-
- 2 edits in trunk/LayoutTests
Rebaseline fast/visual-viewport/rtl-zoomed-rects.html for mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=171500
Unreviewed test gardening.
- platform/mac-wk1/fast/visual-viewport/rtl-zoomed-rects-expected.txt:
- 2:13 PM Changeset in webkit [216025] by
-
- 8 edits in trunk/LayoutTests
Rebaselined fast/visual-viewport/ tests.
https://bugs.webkit.org/show_bug.cgi?id=171500
Unreviewed test gardening.
Patch by Matt Lewis <Matt Lewis> on 2017-05-01
- platform/ios-wk2/fast/visual-viewport/nonzoomed-rects-expected.txt:
- platform/ios-wk2/fast/visual-viewport/rtl-nonzoomed-rects-expected.txt:
- platform/ios-wk2/fast/visual-viewport/rtl-zoomed-rects-expected.txt:
- platform/ios-wk2/fast/visual-viewport/rubberbanding-viewport-rects-expected.txt:
- platform/ios-wk2/fast/visual-viewport/rubberbanding-viewport-rects-extended-background-expected.txt:
- platform/ios-wk2/fast/visual-viewport/rubberbanding-viewport-rects-header-footer-expected.txt:
- platform/ios-wk2/fast/visual-viewport/zoomed-fixed-expected.txt: Added.
- platform/ios-wk2/fast/visual-viewport/zoomed-fixed-header-and-footer-expected.txt: Added.
- platform/ios-wk2/fast/visual-viewport/zoomed-rects-expected.txt:
- 2:06 PM Changeset in webkit [216024] by
-
- 7 edits1 move in trunk/Source/WebCore
Add audio device change notifications to AudioSession.
https://bugs.webkit.org/show_bug.cgi?id=171403
Reviewed by Eric Carlson.
Add notifications to AudioSession which fire when the current input and output audio devices
change. Also add a notification when audio services are lost (which will only fire on iOS).
Take this opportunity to make the existing hardwareMutedStateDidChange() notification be
platform agnostic, to move the outputDeviceSupportsLowPowerMode() code from AudioHardwareListener,
and to do a few more clean-ups of the AudioSession code.
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
- html/HTMLMediaElement.h:
- platform/audio/AudioSession.cpp:
(WebCore::AudioSession::AudioSession):
- platform/audio/AudioSession.h:
(WebCore::AudioSession::Observer::hardwareMutedStateDidChange):
(WebCore::AudioSession::Observer::audioInputDeviceChanged):
(WebCore::AudioSession::Observer::audioOutputDeviceChanged):
(WebCore::AudioSession::Observer::audioServicesLost):
(WebCore::AudioSession::Observer::audioServicesReset):
(WebCore::AudioSession::MutedStateObserver::~MutedStateObserver): Deleted.
- platform/audio/ios/AudioSessionIOS.mm:
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSession::AudioSession):
(WebCore::AudioSession::setCategoryOverride):
(WebCore::AudioSession::categoryOverride):
(WebCore::AudioSession::isMuted):
(WebCore::AudioSession::outputDeviceSupportsLowPowerMode):
(WebCore::AudioSession::addObserver):
(WebCore::AudioSession::removeObserver):
- platform/audio/mac/AudioSessionMac.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSessionMac.cpp.
(WebCore::defaultDevice):
(WebCore::AudioSessionPrivate::AudioSessionPrivate):
(WebCore::AudioSession::AudioSession):
(WebCore::AudioSession::~AudioSession):
(WebCore::AudioSession::category):
(WebCore::AudioSession::setCategory):
(WebCore::AudioSession::categoryOverride):
(WebCore::AudioSession::setCategoryOverride):
(WebCore::AudioSession::sampleRate):
(WebCore::AudioSession::bufferSize):
(WebCore::AudioSession::numberOfOutputChannels):
(WebCore::AudioSession::tryToSetActive):
(WebCore::AudioSession::preferredBufferSize):
(WebCore::AudioSession::setPreferredBufferSize):
(WebCore::AudioSession::isMuted):
(WebCore::currentDeviceSupportsLowPowerBufferSize):
(WebCore::AudioSession::outputDeviceSupportsLowPowerMode):
(WebCore::AudioSession::addObserver):
(WebCore::AudioSession::removeObserver):
- 1:40 PM Changeset in webkit [216023] by
-
- 3 edits2 adds in trunk
Do not dispatch SVG load event in frameless documents
https://bugs.webkit.org/show_bug.cgi?id=171505
<rdar://problem/31799776>
Reviewed by Andreas Kling.
Source/WebCore:
We should not dispatch SVG load events in frameless documents. <https://trac.webkit.org/changeset/173028/webkit>
took care of most load events but forgot the SVG load event.
Test: fast/dom/domparser-parsefromstring-svg-load-event.html
- dom/Document.cpp:
(WebCore::Document::implicitClose):
LayoutTests:
Add layout test coverage. I have verified that this test passes on both Firefox and Chrome.
- fast/dom/domparser-parsefromstring-svg-load-event-expected.txt: Added.
- fast/dom/domparser-parsefromstring-svg-load-event.html: Added.
- 11:50 AM Changeset in webkit [216022] by
-
- 2 edits in trunk/LayoutTests
Skip editing/execCommand/show-modal-dialog-during-execCommand.html on mac-wk1.
https://bugs.webkit.org/show_bug.cgi?id=171501
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 11:45 AM Changeset in webkit [216021] by
-
- 4 edits in trunk/LayoutTests
Rebaseline js/dom/global-constructors-attributes.html after r215956.
Unreviewed test gardening.
- platform/mac-elcapitan/js/dom/global-constructors-attributes-expected.txt:
- platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
- platform/mac/js/dom/global-constructors-attributes-expected.txt:
- 11:09 AM Changeset in webkit [216020] by
-
- 2 edits in trunk/Source/WebKit2
Tweak how long we allow a process to go over its background CPU limit
https://bugs.webkit.org/show_bug.cgi?id=170460
<rdar://problem/31433141>
Reviewed by Geoffrey Garen.
Tweak how long we allow a process to go over its background CPU limit. We now use 8 minutes
intervals (instead of previously 15). This is less conservative and aligned with our memory
kills.
- WebProcess/cocoa/WebProcessCocoa.mm:
- 11:08 AM Changeset in webkit [216019] by
-
- 31 edits in trunk/Source
Remove some usage of PassRefPtr in editing code
https://bugs.webkit.org/show_bug.cgi?id=171490
Reviewed by Darin Adler.
Source/WebCore:
Remove some usage of PassRefPtr in editing code.
- dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::markersInRange):
(DocumentMarkerController::hasMarkers):
(DocumentMarkerController::clearDescriptionOnMarkersIntersectingRange):
- dom/DocumentMarkerController.h:
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::isSpellingMarkerAllowed):
(WebCore::AlternativeTextController::show):
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::handleAlternativeTextUIResult):
(WebCore::AlternativeTextController::recordAutocorrectionResponse):
(WebCore::AlternativeTextController::markReversed):
(WebCore::AlternativeTextController::markCorrection):
(WebCore::AlternativeTextController::recordSpellcheckerResponseForModifiedCorrection):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
(WebCore::AlternativeTextController::applyDictationAlternative):
- editing/AlternativeTextController.h:
(WebCore::AlternativeTextController::UNLESS_ENABLED):
- editing/ApplyStyleCommand.cpp:
(WebCore::createFontElement):
(WebCore::createStyleSpanElement):
(WebCore::ApplyStyleCommand::ApplyStyleCommand):
(WebCore::copyStyleOrCreateEmpty):
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
(WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
(WebCore::ApplyStyleCommand::removeInlineStyleFromElement):
(WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
(WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::shouldSplitTextElement):
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
(WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
(WebCore::ApplyStyleCommand::positionToComputeInlineStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):
- editing/ApplyStyleCommand.h:
(WebCore::ApplyStyleCommand::create):
(WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::applyCommandToComposite):
(WebCore::CompositeEditCommand::applyStyledElement):
(WebCore::CompositeEditCommand::removeStyledElement):
(WebCore::CompositeEditCommand::replaceElementWithSpanPreservingChildrenAndAttributes):
(WebCore::CompositeEditCommand::inputText):
(WebCore::CompositeEditCommand::replaceTextInNodePreservingMarkers):
(WebCore::CompositeEditCommand::pushAnchorElementDown):
- editing/CompositeEditCommand.h:
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::originalStringForAutocorrectionAtBeginningOfSelection):
- editing/DictationCommand.cpp:
(WebCore::DictationCommand::insertTextRunWithoutNewlines):
- editing/EditingStyle.cpp:
(WebCore::copyEditingProperties):
(WebCore::copyPropertiesFromComputedStyle):
(WebCore::extractPropertyValue):
(WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
(WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue):
(WebCore::EditingStyle::setStyle):
(WebCore::EditingStyle::copy):
(WebCore::EditingStyle::extractAndRemoveBlockProperties):
(WebCore::EditingStyle::extractAndRemoveTextDirection):
(WebCore::EditingStyle::mergeInlineStyleOfElement):
(WebCore::extractEditingProperties):
(WebCore::EditingStyle::styleAtSelectionStart):
(WebCore::getPropertiesNotIn):
- editing/EditingStyle.h:
- editing/Editor.cpp:
(WebCore::Editor::handleTextEvent):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::insertOrderedList):
(WebCore::Editor::insertUnorderedList):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::correctSpellcheckingPreservingTextCheckingParagraph):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::changeBackToReplacedString):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::rangeForPoint):
- editing/Editor.h:
- editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelOrdered):
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevelUnordered):
- editing/ModifySelectionListLevel.h:
- editing/SpellChecker.cpp:
(WebCore::SpellChecker::requestCheckingFor):
(WebCore::SpellChecker::didCheckSucceed):
- editing/SpellChecker.h:
(WebCore::SpellCheckRequest::checkingRange):
(WebCore::SpellCheckRequest::paragraphRange):
(WebCore::SpellCheckRequest::rootEditableElement):
- editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::SpellingCorrectionCommand):
(WebCore::SpellingCorrectionCommand::willApplyCommand):
(WebCore::SpellingCorrectionCommand::doApply):
(WebCore::SpellingCorrectionCommand::targetRanges):
- editing/SpellingCorrectionCommand.h:
(WebCore::SpellingCorrectionCommand::create):
- editing/SurroundingText.h:
- editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingParagraph::expandRangeToNextEnd):
(WebCore::TextCheckingParagraph::rangeLength):
(WebCore::TextCheckingParagraph::paragraphRange):
(WebCore::TextCheckingParagraph::subrange):
(WebCore::TextCheckingParagraph::offsetTo):
(WebCore::TextCheckingParagraph::offsetAsRange):
(WebCore::TextCheckingParagraph::text):
(WebCore::TextCheckingParagraph::checkingStart):
- editing/TextCheckingHelper.h:
- editing/TypingCommand.cpp:
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
- editing/cocoa/HTMLConverter.mm:
(HTMLConverterCaches::computedStylePropertyForElement):
(HTMLConverterCaches::inlineStylePropertyForElement):
- page/ios/FrameIOS.mm:
(WebCore::Frame::interpretationsForCurrentRoot):
Source/WebKit/ios:
- WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame previousUnperturbedDictationResultBoundaryFromPosition:]):
(-[WebFrame nextUnperturbedDictationResultBoundaryFromPosition:]):
Source/WebKit/mac:
- WebView/WebFrame.mm:
(-[WebFrame dictationResultMetadataForRange:]):
(-[WebFrame _replaceSelectionWithFragment:selectReplacement:smartReplace:matchStyle:]):
- 10:36 AM Changeset in webkit [216018] by
-
- 8 edits in trunk
On-screen panel for candidate bar is in the wrong place when the caret is at the
start of a paragraph
https://bugs.webkit.org/show_bug.cgi?id=171453
-and corresponding-
rdar://problem/29779764
Reviewed by Tim Horton.
Source/WebKit/mac:
This bug only happens when the caret is at the beginning of the paragraph, and it
is because Range::absoluteTextQuads() returns no quads in this case. I think it
might be correct that absoluteTextQuads() returns no quads in this case, so this
patch fixes the bug at the call site by using absoluteCaretBounds() in this case.
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::handleRequestedCandidates):
Source/WebKit2:
This bug only happens when the caret is at the beginning of the paragraph, and it
is because Range::absoluteTextQuads() returns no quads in this case. I think it
might be correct that absoluteTextQuads() returns no quads in this case, so this
patch fixes the bug at the call site by using absoluteCaretBounds() in this case.
SPI for testing.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _candidateRect]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Bug fix.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformEditorState):
Tools:
This test hard-codes the y-coordinate for the expected candidateRect.
- TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewCandidateTests.mm:
(TEST):
- 10:06 AM Changeset in webkit [216017] by
-
- 3 edits in trunk/Tools
check-webkit-style: Enable sprintf(), strcat(), strcpy() and printf() format checks
<https://webkit.org/b/171494>
Reviewed by Brent Fulgham.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_language): Change categories for certain checkers from
'runtime/printf' to 'security/printf' so they are no longer
filtered.
(CppChecker.categories): Add 'security/printf'.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTest.test_insecure_string_operations): Add new test for
sprintf(), strcat() and strcpy().
(CppStyleTest.test_format_strings): Update test results for new
'security/printf' category use.
- 10:06 AM Changeset in webkit [216016] by
-
- 6 edits5 adds in trunk/Source/WebCore
Add notifications from CaptureDeviceManager (and subclasses) when device lists change
https://bugs.webkit.org/show_bug.cgi?id=171442
Reviewed by Youenn Fablet.
Add a new callback-based notification to CaptureDeviceManager which fires when the underlying list
of devices changes. Add support for enumerating AVAudioSession capture devices.
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/CaptureDeviceManager.cpp:
(nextObserverToken):
(CaptureDeviceManager::addCaptureDeviceChangedObserver):
(CaptureDeviceManager::removeCaptureDeviceChangedObserver):
- platform/mediastream/CaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDevice.h: Added.
- platform/mediastream/ios/AVAudioSessionCaptureDevice.mm: Added.
(WebCore::AVAudioSessionCaptureDevice::create):
(WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice):
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h: Added.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: Added.
(-[WebAVAudioSessionAvailableInputsListener initWithCallback:]):
(-[WebAVAudioSessionAvailableInputsListener invalidate]):
(-[WebAVAudioSessionAvailableInputsListener observeValueForKeyPath:ofObject:change:context:]):
(WebCore::AVAudioSessionCaptureDeviceManager::singleton):
(WebCore::AVAudioSessionCaptureDeviceManager::captureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::audioSessionCaptureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::audioSessionDeviceWithUID):
(WebCore::AVAudioSessionCaptureDeviceManager::refreshAudioCaptureDevices):
- platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::deviceConnected):
(WebCore::AVCaptureDeviceManager::deviceDisconnected):
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):
(WebCore::CoreAudioCaptureDeviceManager::devicesChanged):
- 9:58 AM Changeset in webkit [216015] by
-
- 4 edits in trunk
AX: [GTK] Add support to query for aria-current
https://bugs.webkit.org/show_bug.cgi?id=149016
Reviewed by Chris Fleizach.
Tools:
Implement support for "AXARIACurrent" string attribute value.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
LayoutTests:
- platform/gtk/TestExpectations: Unskip now-passing test.
- 9:11 AM Changeset in webkit [216014] by
-
- 2 edits in trunk/Source/WTF
Cleanup: Change ASCIICaseInsensitiveHash from a class to a struct
https://bugs.webkit.org/show_bug.cgi?id=171460
Reviewed by Sam Weinig.
All of the members of ASCIICaseInsensitiveHash have public visibility.
We are underutilizing the purpose of a class - defaults to private
visibility of members. We should change ASCIICaseInsensitiveHash from
a class to a struct, which by definition defaults to public visibility
for members.
- wtf/text/StringHash.h:
- 6:10 AM Changeset in webkit [216013] by
-
- 2 edits in trunk/Tools
REGRESSION (r216000): test-webkitpy fails after adding new soft-linked class checker
Unreviewed.
Follow-up fix for:
[Cocoa] Have check-webkit-style advise against use of [get…Class() alloc]
https://bugs.webkit.org/show_bug.cgi?id=171486
- Scripts/webkitpy/style/checkers/cpp.py:
(check_soft_link_class_alloc): Use (\w+) instead of ([\s]+) to
match and capture the function name. The latter also mistakenly
matches C-preprocessor directives.
(CppChecker.categories): Add 'runtime/soft-linked-alloc', which
is a requirement for the CppChecker class.
- 1:41 AM Changeset in webkit [216012] by
-
- 3 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline giantRowspan tests after r215914.
- platform/gtk/fast/table/giantRowspan-expected.txt:
- platform/gtk/fast/table/giantRowspan2-expected.txt:
- 1:39 AM Changeset in webkit [216011] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations of several test.
- platform/gtk/TestExpectations:
- 1:07 AM Changeset in webkit [216010] by
-
- 1 edit10 adds in trunk/LayoutTests
Unreviewed GTK+ gardening. Rebaseline several WPT fetch API tests.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/scheme-about.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.any.worker-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any.worker-expected.txt: Added.
- 12:56 AM Changeset in webkit [216009] by
-
- 5 edits in trunk
AX: AccessibilityTable::ariaRowCount() and ariaColumnCount() should not return -1 unless that is the author-provided value
https://bugs.webkit.org/show_bug.cgi?id=171475
Reviewed by Chris Fleizach.
Source/WebCore:
If the author has provided a valid value, return it. Otherwise, return 0.
No new tests needed. Update existing test expectations to reflect the change.
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::ariaColumnCount):
(WebCore::AccessibilityTable::ariaRowCount):
LayoutTests:
- accessibility/table-detection-expected.txt: Updated.
- accessibility/table-with-rules-expected.txt: Updated.
- 12:53 AM Changeset in webkit [216008] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Update expectations of several test.
- platform/gtk/TestExpectations:
- 12:49 AM Changeset in webkit [216007] by
-
- 19 edits in trunk
AX: Implement support for ARIA "figure" and "term" roles; update AXRoleDescription mapping for "feed" role
https://bugs.webkit.org/show_bug.cgi?id=171183
Reviewed by Chris Fleizach.
Source/WebCore:
Create FeedRole, FigureRole, and TermRole and map them on the Mac and Gtk
ports. Also rename AccessibilityObject::isFigure() to isFigureElement()
for clarity as this method is specific to the HTML element and not the role.
No new tests needed: We have existing tests that cover mappings. Add new test cases
to roles-exposed.html, xml-roles-exposed.html, and roles-computedRoleString.html.
- English.lproj/Localizable.strings:
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::captionForFigure):
(WebCore::AccessibilityNodeObject::alternativeText):
- accessibility/AccessibilityObject.cpp:
(WebCore::initializeRoleMap):
(WebCore::AccessibilityObject::isFigureElement): Added.
(WebCore::AccessibilityObject::isFigure): Deleted.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::exposesTitleUIElement):
(WebCore::AccessibilityRenderObject::titleUIElement):
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper subrole]):
(-[WebAccessibilityObjectWrapper roleDescription]):
- platform/LocalizedStrings.cpp:
(WebCore::AXFeedText):
- platform/LocalizedStrings.h:
LayoutTests:
New test cases added and expectations updated.
- accessibility/gtk/xml-roles-exposed-expected.txt:
- accessibility/gtk/xml-roles-exposed.html:
- accessibility/roles-computedRoleString.html:
- accessibility/roles-exposed.html:
- platform/gtk/accessibility/roles-exposed-expected.txt:
- platform/mac/accessibility/roles-computedRoleString-expected.txt:
- platform/mac/accessibility/roles-exposed-expected.txt:
- 12:03 AM Changeset in webkit [216006] by
-
- 17 edits4 adds in trunk
[GTK] Add automation session API
https://bugs.webkit.org/show_bug.cgi?id=171428
Reviewed by Carlos Alberto Lopez Perez.
Source/WebCore/platform/gtk/po:
- POTFILES.in: Add WebKitAutomationSession.cpp.
Source/WebKit2:
Add new API to allow WebKitGTK+ to be controlled by automation. By default it's disabled, applications have to
explicitly call webkit_web_context_set_automation_allowed() to enabled it. When a new automation session is
requested, the signal WebKitWebContext::automation-started is emitted with a newly created
WebKitAutomationSession, similar to how WebKitWebContext::download-started works. The user should connect to it
have access to the WebKitAutomationSession and connect it its signals. When a new web view is requested to be
created in a WebKitAutomationSession, the signal WebKitAutomationSession::create-web-view is emitted. The user
should connect to it and return a WebKitWebView. The web views used for automation are special ones and need to
be created with the new WebKitWebView:is-controlled-by-automation construct property enabled, otherwise we will
refuse to create the requested browsing context.
- PlatformGTK.cmake:
- UIProcess/API/gtk/WebKitAutomationSession.cpp: Added.
(webkitAutomationSessionSetProperty):
(webkitAutomationSessionConstructed):
(webkit_automation_session_class_init):
(webkitAutomationSessionCreate):
(webkitAutomationSessionGetSession):
(webkit_automation_session_get_id):
- UIProcess/API/gtk/WebKitAutomationSession.h: Added.
- UIProcess/API/gtk/WebKitAutomationSessionPrivate.h: Added.
- UIProcess/API/gtk/WebKitWebContext.cpp:
(webkitWebContextConstructed):
(webkit_web_context_class_init):
(webkit_web_context_is_automation_allowed):
(webkit_web_context_set_automation_allowed):
(webkitWebContextCreatePageForWebView):
- UIProcess/API/gtk/WebKitWebContext.h:
- UIProcess/API/gtk/WebKitWebView.cpp:
(webkitWebViewConstructed):
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_is_controlled_by_automation):
- UIProcess/API/gtk/WebKitWebView.h:
- UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
- UIProcess/API/gtk/docs/webkit2gtk-4.0.types:
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/gtk/webkit2.h:
Tools:
Add an automation mode to MiniBrowser using the new API and add a unit test too.
- MiniBrowser/gtk/BrowserWindow.c:
(webViewTitleChanged):
(webViewDecidePolicy):
(newTabCallback):
(openPrivateWindow):
(browserWindowFinalize):
(browser_window_init):
(browser_window_get_or_create_web_view_for_automation):
- MiniBrowser/gtk/BrowserWindow.h:
- MiniBrowser/gtk/main.c:
(createBrowserTab):
(createWebViewForAutomationCallback):
(automationStartedCallback):
(main):
- TestWebKitAPI/Tests/WebKit2Gtk/CMakeLists.txt:
- TestWebKitAPI/Tests/WebKit2Gtk/TestAutomationSession.cpp: Added.
(testAutomationSessionRequestSession):
(beforeAll):
(afterAll):
- 12:02 AM Changeset in webkit [216005] by
-
- 2 edits in trunk/Source/WebKit2
Unreviewed. Fix GTK+ debug build after r216002.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp:
(WebKit::wrapClientRectList):
Apr 30, 2017:
- 10:02 PM Changeset in webkit [216004] by
-
- 7 edits in trunk/Source
Versioning.
- 9:58 PM Changeset in webkit [216003] by
-
- 1 copy in tags/Safari-604.1.20
Tag Safari-604.1.20.
- 5:44 PM Changeset in webkit [216002] by
-
- 18 edits6 deletes in trunk/Source
Drop support for legacy ClientRect / ClientRectList
https://bugs.webkit.org/show_bug.cgi?id=171418
Reviewed by Sam Weinig.
Source/WebCore:
Drop support for legacy ClientRect / ClientRectList types now we use
DOMRect everywhere.
- CMakeLists.txt:
- DerivedSources.cpp:
- DerivedSources.make:
- WebCore.xcodeproj/project.pbxproj:
- dom/ClientRect.cpp: Removed.
- dom/ClientRect.h: Removed.
- dom/ClientRect.idl: Removed.
- dom/ClientRectList.cpp: Removed.
- dom/ClientRectList.h: Removed.
- dom/ClientRectList.idl: Removed.
- dom/DOMAllInOne.cpp:
- dom/Element.cpp:
- html/HTMLMediaElement.cpp:
- html/track/VTTRegion.cpp:
- page/DragController.cpp:
Source/WebInspectorUI:
Drop ClientRectList-related code.
- UserInterface/Models/NativeFunctionParameters.js:
Source/WebKit2:
GTK build fix.
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp:
(WebKit::kit):
(WebKit::core):
(WebKit::wrapClientRect):
(webkit_dom_client_rect_constructed):
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp:
(ClientRectList::create):
(ClientRectList::items):
(ClientRectList::ClientRectList):
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectListPrivate.h:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectPrivate.h:
- WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp:
(webkit_dom_element_get_bounding_client_rect):
(webkit_dom_element_get_client_rects):
- 5:15 PM Changeset in webkit [216001] by
-
- 5 edits2 adds in trunk
Initialize a new layout state while bailing out of simple line layout only when needed.
https://bugs.webkit.org/show_bug.cgi?id=171481
<rdar://problem/31906382>
Source/WebCore:
'-webkit-border-fit: lines' requires inline box tree.
We normally bail out of simple line layout early when we see this property.
When this property is dynamically set and we already have a simple line layout context,
RenderBlockFlow::ensureLineBoxes() takes care of the switch by calling layoutLineBoxes().
This patch makes sure that we create the layout state for this (forced)line layout only when
we don't yet have one.
Reviewed by Antti Koivisto.
Test: fast/multicol/simple-line-layout-switch-to-normal-layout-while-inside-layout.html
- rendering/RenderBlockFlow.cpp:
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):
(WebCore::RenderBlockFlow::ensureLineBoxes):
- rendering/RenderView.cpp:
(WebCore::RenderView::pushLayoutStateForPaginationIfNeeded):
(WebCore::RenderView::pushLayoutStateForPagination): Deleted.
- rendering/RenderView.h:
LayoutTests:
Reviewed by Antti Koivisto.
- fast/multicol/simple-line-layout-switch-to-normal-layout-while-inside-layout-expected.txt: Added.
- fast/multicol/simple-line-layout-switch-to-normal-layout-while-inside-layout.html: Added.
- 4:39 PM Changeset in webkit [216000] by
-
- 2 edits in trunk/Tools
[Cocoa] Have check-webkit-style advise against use of [get…Class() alloc]
https://bugs.webkit.org/show_bug.cgi?id=171486
Reviewed by Sam Weinig.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_soft_link_class_alloc): Added. Looks for [get…Class() alloc] and suggests
alloc…Instance() instead.
(check_style): Invoke new check.
- 2:24 PM Changeset in webkit [215999] by
-
- 2 edits in tags/Safari-604.1.19.1/Source/WebCore
Cherry-pick r215990. rdar://problem/31906525
- 2:23 PM Changeset in webkit [215998] by
-
- 7 edits in tags/Safari-604.1.19.1/Source
Versioning.
- 2:19 PM Changeset in webkit [215997] by
-
- 4 edits in trunk
More fixing after r215991
https://bugs.webkit.org/show_bug.cgi?id=171483
Source/WebKit2:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::syncAllCookies):
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 2:14 PM Changeset in webkit [215996] by
-
- 1 copy in tags/Safari-604.1.19.1
New tag.
- 2:04 PM Changeset in webkit [215995] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the iOS build after r215992
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
- 1:55 PM Changeset in webkit [215994] by
-
- 4 edits in trunk/Source
Fix r215991
https://bugs.webkit.org/show_bug.cgi?id=171483
Unreviewed.
Source/WebCore:
- platform/spi/cf/CFNetworkSPI.h:
Source/WebKit2:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::syncAllCookies):
- 1:53 PM Changeset in webkit [215993] by
-
- 2 edits in trunk/Source/WebCore
Tried to fix the iOS build after r215992
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
- 1:47 PM Changeset in webkit [215992] by
-
- 13 edits in trunk/Source
[Cocoa] Replaces uses of [get…() alloc] with alloc…Instance()
https://bugs.webkit.org/show_bug.cgi?id=171485
Reviewed by Geoffrey Garen.
Source/WebCore:
- platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
(WebCore::CDMSessionAVContentKeySession::contentKeySession):
- platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::devicePicker):
- platform/ios/ValidationBubbleIOS.mm:
(-[WebValidationBubbleTapRecognizer initWithPopoverController:]):
(WebCore::ValidationBubble::ValidationBubble):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(WebVideoFullscreenControllerContext::setUpFullscreen):
- platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
(WebAVPlayerLayerView_pictureInPicturePlayerLayerView):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):
- platform/mac/WebVideoFullscreenInterfaceMac.mm:
(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
- platform/network/ios/PreviewConverter.mm:
(WebCore::PreviewConverter::PreviewConverter):
- rendering/RenderThemeIOS.mm:
(WebCore::iconForAttachment):
Source/WebKit/mac:
- WebView/WebView.mm:
(-[WebUITextIndicatorData initWithImage:textIndicatorData:scale:]):
(-[WebUITextIndicatorData initWithImage:scale:]):
Source/WebKit2:
- Platform/mac/MenuUtilities.mm:
(WebKit::menuItemForTelephoneNumber):
(WebKit::menuForTelephoneNumber):
- 1:24 PM Changeset in webkit [215991] by
-
- 23 edits in trunk
Updates to _WKWebsiteDataStoreConfiguration cookie storage location SPI.
<rdar://problem/31906397> and https://bugs.webkit.org/show_bug.cgi?id=171483
Reviewed by Geoff Garen (and kind of Andy Estes).
Source/WebCore:
No new tests (Covered by API test).
- platform/spi/cf/CFNetworkSPI.h:
Source/WebKit2:
Updates include:
-Taking a file path as the config argument instead of a directory.
-Proper sandbox extension handling.
-Proper and thorough API test.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::syncAllCookies):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::syncAllCookies):
- NetworkProcess/mac/RemoteNetworkingContext.mm:
(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode):
(WebKit::WebsiteDataStoreParameters::decode):
- Shared/WebsiteDataStoreParameters.h:
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _syncNetworkProcessCookies]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _initWithConfiguration:]):
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration _cookieStoragePath]):
(-[_WKWebsiteDataStoreConfiguration _setCookieStoragePath:]):
(-[_WKWebsiteDataStoreConfiguration _cookieStorageDirectory]): Deleted.
(-[_WKWebsiteDataStoreConfiguration _setCookieStorageDirectory:]): Deleted.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::syncNetworkProcessCookies):
- UIProcess/WebProcessPool.h:
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::resolvedCookieStoragePath):
(WebKit::WebsiteDataStore::resolvedCookieStorageDirectory): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- 12:52 PM Changeset in webkit [215990] by
-
- 2 edits in trunk/Source/WebCore
<rdar://problem/31906525> WebCore-7604.1.19 has failed to build
- platform/ios/WebItemProviderPasteboard.mm:
(-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): Resolved type ambiguity
by using allocUIItemProviderInstance() instead of [getUIItemProviderClass() alloc].
- 11:12 AM Changeset in webkit [215989] by
-
- 8 edits2 adds in trunk
[ATK] Implement support for aria-autocomplete
https://bugs.webkit.org/show_bug.cgi?id=171167
Reviewed by Chris Fleizach.
Source/WebCore:
Expose ATK_STATE_SUPPORTS_AUTOCOMPLETION in the state set, and the value
of aria-autocomplete as an object attribute, for elements which indicate
they support autocompletion.
Test: accessibility/gtk/aria-autocomplete.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::supportsARIAAutoComplete):
(WebCore::AccessibilityObject::ariaAutoCompleteValue):
- accessibility/AccessibilityObject.h:
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetAttributes):
(setAtkStateSetFromCoreObject):
- html/HTMLAttributeNames.in:
Tools:
Add "AXSupportsAutoCompletion" attribute so the presence of
ATK_STATE_SUPPORTS_AUTOCOMPLETION can be tested.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::boolAttributeValue):
LayoutTests:
- accessibility/gtk/aria-autocomplete-expected.txt: Added.
- accessibility/gtk/aria-autocomplete.html: Added.
- 11:11 AM Changeset in webkit [215988] by
-
- 14 edits2 adds in trunk
[ATK] ARIA treegrid role should be exposed as ATK_ROLE_TREE_TABLE; not ATK_ROLE_TABLE
https://bugs.webkit.org/show_bug.cgi?id=171170
Reviewed by Chris Fleizach.
Source/WebCore:
AccessibilityTable::roleValue() was returning GridRole for both grid and treegrid.
Change this so that GridRole is returned for grid and TreeGridRole is returned for
treegrid. Add TreeGridRole to, or call isTable() in, methods where the behavior
should be the same as GridRole.
Test: accessibility/gtk/interface-table.html
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::selectedChildren):
- accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::roleValue):
- accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(atkRole):
(getInterfaceMaskFromObject):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap):
Tools:
Add "AXInterfaceTable" attribute to test which elements implement AtkTable.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::boolAttributeValue):
LayoutTests:
Add interface-table.html to verify that all roles which have tabular functionality
implement AtkTable. Update other tests to reflect that the ARIA treegrid role maps
to our internal TreeGridRole AccessibilityRole.
- accessibility/gtk/interface-table-cell-expected.txt: Updated.
- accessibility/gtk/interface-table-expected.txt: Added.
- accessibility/gtk/interface-table.html: Added.
- accessibility/roles-computedRoleString.html: Updated.
- platform/gtk/accessibility/aria-selected-expected.txt: Updated.
- platform/gtk/accessibility/roles-exposed-expected.txt: Updated.
- platform/mac/accessibility/roles-computedRoleString-expected.txt: Updated.
- 11:11 AM Changeset in webkit [215987] by
-
- 28 edits in trunk/Websites/perf.webkit.org
Add the support for scheduling a A/B testing with a patch.
https://bugs.webkit.org/show_bug.cgi?id=171209
Reviewed by Chris Dumez.
Added the support for creating a custom test group with a patch applied.
First, each repository in a repository group has a boolean indicating whether a given repository can have
a patch applied or not. When any configuration in a test group contains a patch, we create build requests
without a test specified in order to "build" those patches. These build requests have negative order numbers
to differentiate them from regular build requests. We can't simply build ones with patches since there could
be differences in SDK, build options, etc... when patches are applied.
The JSON format for commit sets returned by /api/build-requests have been changed from using an array of
commit IDs to an array of dictionaries indicate commit and acceptsPatch boolean. /api/update-triggerable now
uses a dictionary with two keys: repository and acceptsPatch to specify a set of repositories associated with
a repository group, and /privileged-api-create-test-group uses a dictionary with two keys: revision and patch
instead of a revision string to specify commit sets.
Furthermore, the syncing script's configuration have been updated to use a dictionary of repository names to
an options dictionary instead of an array of repositories names. For now, the only supported option is
acceptsPatch but will be extended when we add the support for rolling back system components.
e.g. {"WebKit": {acceptsPatch: true}, "macOS": {}} instead of ["WebKit", "macOS"]
On the UI side, InstantFileUploader has been changed to accept only one file by default, and added a new method
allowMultipleFiles() to allow multiple files to be selected for custom roots. Also replaced the input element
with type=file by a button with a custom label to show labels such as "Apply a patch" or "Add a new root"
instead of the generic label like "choose a file".
- init-database.sql: Added trigrepo_accepts_patch to triggerable_repositories to indicate whether a given
repository can have a patch applied or not. Made request_test optional in build_requests for when a build
request is created to build patches. Such a build request have a negative request_order. Updated the related
constraints accordingly.
- public/admin/triggerables.php: Added the support for updating whether a given repository can have a patch
applied in each repository group. Only show the repositories in the repository group for this purpose since
there is no way to accept a patch on a repository without it being a part of the group.
(generate_repository_form): Now takes the markup for checkboxes instead of generating one itself.
(generate_repository_checkboxes): Now takes an array of repositories to generate checkboxes. The checkbox is
shown when the repository ID exists as a key in this array, and is checked when its value is true. The new
capability to skip repositories not in the array is used to hide repositories not associated with the group
in the list of checkboxes to indicate a repository accepts a patch.
- public/api/update-triggerable.php:
(main): Now updates the description and acceptsRoots states of each repository group, and sets acceptsPatch
boolean for each repository in the group if set in the update.
(validate_repository_groups): Use a reference to $repository_groups in order to set repository_id_list, which
contains an array of repository IDs to find the existing repository group that matches the set via
RepositoryGroupFinder's find_by_repositories. Also added a various validations for acceptsRoots, a dictionary
specifying repository and acceptsPatch.
- public/include/build-requests-fetcher.php:
(BuildRequestsFetcher::fetch_commits_for_set_if_needed): Instead of returning an array of commit IDs as
"commits", it now returns an array of dictionaries with "commit" and "patch" keys specifying the commit ID
and the patch file's ID respectively as "revisionItems".
(BuildRequestsFetcher::add_uploaded_file): Added. Extracted from fetch_commits_for_set_if_needed. Used to
add either a patch file or a custom root file in the list of uploaded files in the result.
- public/include/manifest-generator.php:
(fetch_triggerables): Each element in repository group's "repositories" field is now an array of dictionaries
with "repository" and "acceptsPatch" as keys.
- public/include/repository-group-finder.php:
(RepositoryGroupFinder::construct): Added a map for boolean indicating whether a given repository group
allows a patch on a repository. Used in /privileged-api/create-test-group.
(RepositoryGroupFinder::accepts_patch): Added.
(RepositoryGroupFinder::populate_map): Build up the map for acceptsPatch boolean per repository per group.
- public/privileged-api/create-test-group.php:
(main): Fixed a bug that we were not explicitly checking for a duplicate test group name (with a test). Create
build requests to "build" patches if there is any patch file specified.
(commit_sets_from_revision_sets): Updated to take a dictionary with "revision" and "patch" as keys to specify
a revision and a patch if any instead of just a revision string for each repository. Also validate that each
repository is allowed to have a patch once the repository group has been found for the set of repositories.
(ensure_commit_sets):
- public/v3/components/custom-analysis-task-configurator.js:
(CustomAnalysisTaskConfigurator): Added _patchUploaders as an instance variable, which is a dictionary of
configuration names to a map of InstantFileUploader's used to upload a patch. Also renamed _fileUploaders to
_customRootUploaders for clarity.
(CustomAnalysisTaskConfigurator.prototype.setCommitSets):
(CustomAnalysisTaskConfigurator.prototype.didConstructShadowTree.createRootUploader): Added.
(CustomAnalysisTaskConfigurator.prototype.didConstructShadowTree):
(CustomAnalysisTaskConfigurator.prototype._ensurePatchUploader): Added. Creates an instant file uploader for
patches. We only allow a single patch per repository.
(CustomAnalysisTaskConfigurator.prototype._computeCommitSet): Include a patch in the commit set as needed.
(CustomAnalysisTaskConfigurator.prototype._buildRevisionTable): Show the patch file uploader for repositories
which can have patches in the current repository group.
(CustomAnalysisTaskConfigurator.cssTemplate): Show borders between every rows instead of just between tbody's
now that each row can have a patch file uploader.
- public/v3/components/instant-file-uploader.js:
(InstantFileUploader): Added _fileInput and _allowMultipleFiles as instance variables. We now show a button
in the UI instead of an input with type=file. _fileInput is a hidden input with type=file used inside a click
event of the button to let the user pick a file.
(InstantFileUploader.prototype.allowMultipleFiles): Added. Allows this instance to accept multiple files.
(InstantFileUploader.prototype.didConstructShadowTree): Synthetically click on the hidden input element when
the newly added button element is clicked to open the browser's file picker.
(InstantFileUploader.prototype.render): Hide the button to add a file if this instance can only select one file
and there is already some file being uploaded in this instance.
(InstantFileUploader.htmlTemplate): Replaced the input element with type=file with a button. Its label comes
from the default slot content.
- public/v3/models/build-request.js:
(BuildRequest): Made the test optional.
(BuildRequest.prototype.isBuild): Returns true if this is a build request for building a patch.
(BuildRequest.prototype.isTest): Returns true if this is a build request for running tests.
(BuildRequest.constructBuildRequestsFromData): Create each commit log here instead of relying on CommitSet's
constructor to construct its commit logs. Also updated per the replacement of an array of commit IDs by
an array of dictionaries with commit and patch properties.
- public/v3/models/commit-set.js:
(CommitSet): Made _repositoryToCommitMap a real Map object. Also added _repositoryToPatchMap. Also got rid of
the code to instantiate commit logs since that's now done in BuildRequest.constructBuildRequestsFromData.
(CommitSet.prototype.commitForRepository):
(CommitSet.prototype.revisionForRepository):
(CommitSet.prototype.patchForRepository): Added.
(CommitSet.prototype.latestCommitTime): Modernized the code.
(CommitSet.prototype.equals): Modernized the code. Also added the check for patches.
(MeasurementCommitSet): Updated per the change to make _repositoryToCommitMap a real Map.
(CustomCommitSet.prototype.setRevisionForRepository):
(CustomCommitSet.prototype.equals): Added the check for patches.
(CustomCommitSet.prototype.revisionForRepository):
(CustomCommitSet.prototype.patchForRepository): Added.
- public/v3/models/manifest.js:
(Manifest._didFetchManifest): Updated per the replacement of an array of commit IDs by an array of dictionaries
with commit and patch properties.
- public/v3/models/repository.js:
(Repository.prototype.ownerId): Renamed from owner for clarity.
- public/v3/models/test-group.js:
(TestGroup): Modernized the code by using LazilyEvaluatedFunction. Removed _requestsAreInOrder since it's not
necessary anymore with LazilyEvaluatedFunction.
(TestGroup.prototype.addBuildRequest):
(TestGroup.prototype.test): Use the last build request's test since the first few requests could be requests to
build patches.
(TestGroup.prototype.platform): Ditto.
(TestGroup.prototype._lastRequest): Added.
(TestGroup.prototype._orderedBuildRequests): Added.
(TestGroup.prototype.repetitionCount): Only count the build requests for testing (skipping any requests to
build patches).
(TestGroup.prototype.requestedCommitSets): Simply call _computeRequestedCommitSetsLazily.
(TestGroup.prototype._computeRequestedCommitSets): Extracted from requestedCommitSets.
(TestGroup.prototype.requestsForCommitSet):
(TestGroup.prototype.labelForCommitSet): Rewritten. Just compute the label here instead of relying on
_commitSetToLabel since requestedSets is always of the length two at the moment.
(TestGroup._revisionSetsFromCommitSets): Specify both the revision and the patch in the revision set.
- public/v3/models/triggerable.js:
(TriggerableRepositoryGroup): Added _patchAcceptingSet as an instance variable. Use
sortByNamePreferringOnesWithURL to sort repositories instead of simple sortByName.
(TriggerableRepositoryGroup.prototype.accepts): Added checks for the custom roots and patches.
(TriggerableRepositoryGroup.prototype.acceptsPatchForRepository): Added.
- server-tests/api-build-requests-tests.js: Updated the test cases per the replacement of an array of commit
IDs by an array of dictionaries with commit and patch properties.
- server-tests/api-manifest-tests.js: Updated the test case per the name of Repository's owner to ownerId.
- server-tests/api-update-triggerable.js: Updated the test case per the name of Repository's owner to ownerId,
and added a test case for updating whether a given repository group allows custom roots as well as patches
on repositories via /api/update-triggerable.
(.updateWithOSXRepositoryGroup): Updated the sample syncing script configuration per the format change.
(.refetchManifest): Added.
- server-tests/privileged-api-create-test-group-tests.js: Updated per the syncing script configuration format
change. Also added a test for creating a test group with a duplicate name, which is expected to fail with
DuplicateTestGroupName, and creating a test group with a patch both when it's allowed and when it's not allowed
in the matching repository group.
(.addTriggerableAndCreateTask): Updated per the format change.
- server-tests/resources/mock-data.js:
(MockData.addEmptyTriggerable): Added a metric and its configuration to make it appear in the manifest file.
The new test case in api-update-triggerable.js requires this.
(MockData.mockTestSyncConfigWithSingleBuilder): Updated per the syncing script configuration format change.
(MockData.mockTestSyncConfigWithTwoBuilders): Ditto.
- server-tests/tools-buildbot-triggerable-tests.js: Removed the useless assertions about test configurations,
and added assertions about custom roots and patches in the test case for updateTriggerables.
- tools/js/buildbot-syncer.js:
(BuildbotSyncer._parseRepositoryGroup): Made each assertion explicitly refer to the specific repository group
to make it more user friendly. Now each repository group uses a dictionary of repository names to its options
in the syncing script configurations. When parsed, we insert it as an array of dictionaries with repository ID
and acceptsPatch boolean specified separately since this is the format /api/update-triggerable expects.
- tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.updateTriggerable):
- unit-tests/build-request-tests.js:
(sampleBuildRequestData): Updated per the commit sets format change in /api/build-requests.
- unit-tests/buildbot-syncer-tests.js: Updated the existing tests per various format changes and added a couple
of new test cases for the syncing script's configuration validation.
(sampleiOSConfig):
(smallConfiguration):
(createSampleBuildRequest):
- unit-tests/resources/mock-v3-models.js:
(MockModels.inject): Updated per the repository group format change.
- unit-tests/test-groups-tests.js:
(sampleTestGroup): Updated per the commit sets format change in /api/build-requests.
- 7:51 AM Changeset in webkit [215986] by
-
- 5 edits1 add in trunk
Initialize functions too early in an eval
https://bugs.webkit.org/show_bug.cgi?id=161099
Reviewed by Saam Barati.
JSTests:
- stress/eval-func-decl-with-let-const-class.js: Added.
Source/JavaScriptCore:
Current patch allow to fix problem with scope in function that is
declared within eval. Before scope was set inside Interpretator.cpp and it
was scope where eval is executed, but in this case function would not
see let/const variables and classes declated in eval.
This patch devide declaration and binding in two operation, first just declare
variable with function name, and second bind variable to function with correct
scope
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
- bytecompiler/BytecodeGenerator.h:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
- 2:56 AM Changeset in webkit [215985] by
-
- 6 edits2 adds in trunk
[ATK] Emit object:state-changed:busy event when aria-busy value changes
https://bugs.webkit.org/show_bug.cgi?id=171181
Reviewed by Chris Fleizach.
Source/WebCore:
Emit object:state-changed:busy for AXElementBusyChanged notifications.
Test: accessibility/gtk/aria-busy-changed-notification.html
- accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
Tools:
Add handler for AXElementBusyChanged notifications.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
LayoutTests:
New test. Also update the expectations for menu-list-unfocused-notifications.html
because the addition of the handler for AXElementBusyChanged results in that
notification being output in the test results.
- accessibility/gtk/aria-busy-changed-notification-expected.txt: Added.
- accessibility/gtk/aria-busy-changed-notification.html: Added.
- accessibility/gtk/menu-list-unfocused-notifications-expected.txt: Updated.
- 1:06 AM Changeset in webkit [215984] by
-
- 49 edits13 adds in trunk
[ES6]. Implement Annex B.3.3 function hoisting rules for eval
https://bugs.webkit.org/show_bug.cgi?id=163208
Reviewed by Saam Barati.
JSTests:
- stress/eval-func-decl-block-scoping-reassign.js: Added.
(assert):
(throw.new.Error.f):
(throw.new.Error):
- stress/eval-func-decl-block-with-remove.js: Added.
(assert):
(foo.boo):
(foo):
- stress/eval-func-decl-block-with-var-and-remove.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(joo):
(koo):
- stress/eval-func-decl-block-with-var-sinthesize.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(hoo):
(joo):
(koo):
- stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
- stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
- stress/eval-func-decl-in-eval-within-with-scope.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(boo.let.val2):
(boo.let.val3):
- stress/eval-func-decl-in-frozen-global.js: Added.
(assert):
(assertThrow):
(throw.new.Error):
(Object.freeze):
- stress/eval-func-decl-in-global-of-eval.js: Added.
(assert):
(assertThrow):
(bar):
(baz):
(foobar):
- stress/eval-func-decl-in-global.js: Added.
(assert):
(assertThrow):
- stress/eval-func-decl-in-if.js: Added.
(assert):
- stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(foobar):
(hoo):
(joo):
(koo):
(loo):
- stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
- stress/variable-under-tdz-eval-tricky.js:
(assert):
- test262.yaml:
Source/JavaScriptCore:
Current patch implements Annex B.3.3 that is related to
hoisting of function declaration in eval.
https://tc39.github.io/ecma262/#sec-web-compat-evaldeclarationinstantiation
Function declaration in eval should create variable with
function name in function scope where eval is invoked
or bind to variable if it declared outside of the eval.
If variable is created it can be removed by 'delete a;' command.
If eval is invoke in block scope that contains let/const
variable with the same name as function declaration
we do not bind. This patch leads to the following behavior:
function foo() {
{
print(boo); undefined
eval('{ function boo() {}}');
print(boo); function boo() {}
}
print(boo); function boo() {}
}
function foobar() {
{
let boo = 10;
print(boo); 10;
eval('{ function boo() {}}');
print(boo); 10;
}
print(boo) 10
}
function bar() {
{
var boo = 10;
print(boo); 10
eval('{ function boo() {} }');
print(boo); function boo() {}
}
print(boo); function boo() {}
}
function bas() {
{
let boo = 10;
eval(' { function boo() {} } ');
print(boo); 10
}
print(boo); Reference Error
}
Current implementation relies on already implemented
'hoist function in sloppy mode' feature, with small changes.
In short it works in following way: during hoisting of function
with name S in eval, we are looking for first scope that
contains space for variable with name S and if this scope
has var type we bind function there
To implement this feature was added bytecode ops:
op_resolve_scope_for_hoisting_func_decl_in_eval - get variable scope
or return undefined if variable can't be binded there.
There is a corner case, hoist function in eval within catch block,
that is not covered by this patch, and will be fixed in
https://bugs.webkit.org/show_bug.cgi?id=168184
- bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::dumpBytecode):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/EvalCodeBlock.h:
(JSC::EvalCodeBlock::functionHoistingCandidate):
(JSC::EvalCodeBlock::numFunctionHoistingCandidates):
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::emitResolveScopeForHoistingFuncDeclInEval):
- bytecompiler/BytecodeGenerator.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval):
- llint/LowLevelInterpreter.asm:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
- parser/Parser.h:
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Parser::declareFunction):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/EvalExecutable.h:
(JSC::EvalExecutable::numFunctionHoistingCandidates):
(JSC::EvalExecutable::numTopLevelFunctionDecls):
(JSC::EvalExecutable::numberOfFunctionDecls): Deleted.
- runtime/JSScope.cpp:
(JSC::JSScope::resolve):
(JSC::JSScope::resolveScopeForHoistingFuncDeclInEval):
- runtime/JSScope.h:
LayoutTests:
- inspector/runtime/evaluate-CommandLineAPI-expected.txt:
- inspector/runtime/evaluate-CommandLineAPI.html:
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- 12:21 AM Changeset in webkit [215983] by
-
- 4 edits in trunk/Source/WebKit2
Regression (r215941) Unexpected logging causes perf tests to fail.
<rdar://problem/31907269> and https://bugs.webkit.org/show_bug.cgi?id=171482
Reviewed by Alexey Proskuryakov.
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::resolveAndCreateReadWriteDirectoryForSandboxExtension):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::networkingCachesDirectory):
(WebKit::WebProcessPool::webContentCachesDirectory):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::resolveDirectoriesIfNecessary): Only resolve the cookie storage directory
if a custom one has been set.