Timeline
Apr 28, 2020:
- 11:41 PM Changeset in webkit [260880] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed. Fix 32-bit build.
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):
- 11:26 PM Changeset in webkit [260879] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac ] webgl/1.0.3/conformance/textures/texture-upload-size.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=205757
Unreviewed test gardening.
Remove flaky expectation since the test has been consistently passing for the past few weeks.
- platform/mac/TestExpectations:
- 11:23 PM Changeset in webkit [260878] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r260876 and r260877.
https://bugs.webkit.org/show_bug.cgi?id=211165
Broke build (Requested by yusukesuzuki on #webkit).
Reverted changesets:
"Unreviewed, build fix on watchOS"
https://bugs.webkit.org/show_bug.cgi?id=210978
https://trac.webkit.org/changeset/260876
"Unreviewed, speculative build fix on watchOS part 2"
https://bugs.webkit.org/show_bug.cgi?id=210978
https://trac.webkit.org/changeset/260877
- 11:14 PM Changeset in webkit [260877] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, speculative build fix on watchOS part 2
https://bugs.webkit.org/show_bug.cgi?id=210978
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):
- runtime/JSBigInt.h:
- 11:09 PM Changeset in webkit [260876] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix on watchOS
https://bugs.webkit.org/show_bug.cgi?id=210978
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createFrom):
(JSC::Int32BigIntImpl::digit):
- runtime/JSBigInt.h:
- 11:04 PM Changeset in webkit [260875] by
-
- 12 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r259880. rdar://problem/62271251
Fix failing legacy CSP tests by converting them to modern tests instead.
https://bugs.webkit.org/show_bug.cgi?id=210310
Reviewed by Daniel Bates.
Convert these tests from verifying the (now removed) X-WebKit-CSP
header to the modern Content-Security-Policy header. Since we
don't have equivalent tests for the modern CSP header and it's not
very useful to have tons of tests for a feature we no longer
support.
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-blocked.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-blocked.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-javascript-blocked.html:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/form-action-src-redirect-blocked.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 PM Changeset in webkit [260874] by
-
- 2 edits in trunk/Tools
Upgrade motionmark1.1.plan to r260656
https://bugs.webkit.org/show_bug.cgi?id=211143
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-28
Reviewed by Darin Adler.
r260656 includes a fix for the Multiply test.
- Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
- 10:53 PM Changeset in webkit [260873] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac wk1 ] fast/canvas/webgl/canvas-webgl-page-cache.html is flaky crashing in rx::GetFunctionsGL
https://bugs.webkit.org/show_bug.cgi?id=208345
Unreviewed test gardening.
Remove flaky expectation since the test has been consistently passing for the past few weeks.
- platform/mac-wk1/TestExpectations:
- 10:50 PM Changeset in webkit [260872] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Unreviewed, land test expectations for rdar://62268126
- 10:43 PM Changeset in webkit [260871] by
-
- 1 edit2 adds in branches/safari-609-branch/Tools
Unreviewed, cherry-pick scripts from r259811. rdar://62268126
- BuildSlaveSupport/trigger-crash-log-submission: Added.
- BuildSlaveSupport/wait-for-crash-collection: Added.
- 10:36 PM Changeset in webkit [260870] by
-
- 2 edits in trunk/Source/WebCore
Rendering update steps should use Seconds for the timestamps
https://bugs.webkit.org/show_bug.cgi?id=210990
Unreviewed.
serviceRequestAnimationFrameCallbacks() should return rounded milliseconds.
This rounding was removed in r260736. So put it back.
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
- 10:29 PM Changeset in webkit [260869] by
-
- 7 edits in trunk/Source
[GTK4] Add support for key events
https://bugs.webkit.org/show_bug.cgi?id=211128
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- platform/gtk/GtkVersioning.h:
(gdk_event_get_keyval):
(gdk_event_get_keycode):
Source/WebKit:
Handle key-pressed and key-released events using a GtkEventControllerKey. To receive key events the widget needs
to be focused, so also implement GtkWidgetClass::grab_focus and handle enter and leave focus events. GTK4 needs
the widget used by the key bindings translator to be added to a parent to be able to forward key events, so it's
now added as a child internal widget of the WebKitWeViewBase.
- Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebKeyboardEvent):
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewChildIsInternalWidget):
(webkitWebViewBaseContainerRemove):
(webkitWebViewBaseContainerForall):
(webkitWebViewBaseFocusEnter):
(webkitWebViewBaseFocusLeave):
(webkitWebViewBaseKeyPressed):
(webkitWebViewBaseKeyReleased):
(webkitWebViewBaseGrabFocus):
(webkitWebViewBaseConstructed):
(webkit_web_view_base_class_init):
- UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::~KeyBindingTranslator):
(WebKit::handleCustomKeyBindings):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):
- UIProcess/gtk/KeyBindingTranslator.h:
(WebKit::KeyBindingTranslator::widget const):
(WebKit::KeyBindingTranslator::destroyed):
- 10:28 PM Changeset in webkit [260868] by
-
- 2 edits in trunk/LayoutTests
storage/indexeddb/value-cursor-cycle.html is flaky failing because it incorrectly thinks our JS GC is precise.
https://bugs.webkit.org/show_bug.cgi?id=210046
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as flaky for iOS, too.
- 10:26 PM Changeset in webkit [260867] by
-
- 3 edits in trunk/LayoutTests
[ Mac ] storage/indexeddb/result-request-cycle.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210517
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark test as flaky.
- platform/mac/TestExpectations: Ditto.
- 10:18 PM Changeset in webkit [260866] by
-
- 3 edits in trunk/LayoutTests
[ iOS wk2 and Mac Debug wk2 ] imported/w3c/web-platform-tests/service-workers/service-worker/respond-with-body-accessed-response.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209295
Unreviewed test gardening.
Remove flaky expectations as the test has been consistently passing.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 10:16 PM Changeset in webkit [260865] by
-
- 9 edits in trunk
[Text manipulation] Add a userInfo dictionary to _WKTextManipulationToken
https://bugs.webkit.org/show_bug.cgi?id=211151
<rdar://problem/62329534>
Reviewed by Darin Adler.
Source/WebCore:
Add an extensible mechanism for the text manipulation controller to send additional
metadata for each text manipulation token through to the WebKit client, for debugging
purposes.
Test: TextManipulation.StartTextManipulationExtractsUserInfo
- editing/TextManipulationController.cpp:
(WebCore::tokenInfo):
(WebCore::TextManipulationController::observeParagraphs):
- editing/TextManipulationController.h:
Add TextManipulationTokenInfo, and add an optional TextManipulationTokenInfo member to
TextManipulationToken. For now, just send over the document URL, element tag name, and
the value of the role attribute.
(WebCore::TextManipulationController::ManipulationTokenInfo::encode const):
(WebCore::TextManipulationController::ManipulationTokenInfo::decode):
(WebCore::TextManipulationController::ManipulationToken::encode const):
(WebCore::TextManipulationController::ManipulationToken::decode):
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(createUserInfo):
(-[WKWebView _startTextManipulationsWithConfiguration:completion:]):
(-[WKWebView _completeTextManipulation:completion:]):
(-[WKWebView _completeTextManipulationForItems:completion:]):
- UIProcess/API/Cocoa/_WKTextManipulationToken.h:
- UIProcess/API/Cocoa/_WKTextManipulationToken.mm:
(-[_WKTextManipulationToken setUserInfo:]):
(-[_WKTextManipulationToken userInfo]):
Add a new
userInfo
dictionary to_WKTextManipulationToken
, which contains several named
NSString
keys.
(-[_WKTextManipulationToken isEqualToTextManipulationToken:includingContentEquality:]):
(-[_WKTextManipulationToken _descriptionPreservingPrivacy:]):
Tools:
Add a new API test to check the userInfo dictionary on text manipulation tokens.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
- 9:26 PM Changeset in webkit [260864] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION (r260407): Over-release of NSGraphicsContext in WebKit::convertPlatformImageToBitmap()
<https://webkit.org/b/211160>
Reviewed by Darin Adler.
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::convertPlatformImageToBitmap): Use retainPtr() instead
of adoptNS() to fix the over-release.
- 8:54 PM Changeset in webkit [260863] by
-
- 10 edits1 add in trunk
[JSC] BigInt constructor should accept larger integers than safe-integers
https://bugs.webkit.org/show_bug.cgi?id=210755
Reviewed by Darin Adler.
JSTests:
- stress/big-int-constructor.js:
- stress/large-number-to-bigint.js: Added.
(shouldBe):
(shouldThrow):
- test262/config.yaml:
Source/JavaScriptCore:
While our implementation of BigInt constructor only accepts safe integers, it should accept all integers.
This patch implements it by creating JSBigInt::createFrom(double). We port double bit processing part from
V8 as the same to the other part of JSBigInt.
- runtime/BigIntConstructor.cpp:
(JSC::callBigIntConstructor):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::createFrom):
- runtime/JSBigInt.h:
- runtime/MathCommon.h:
(JSC::isInteger):
(JSC::isSafeInteger):
- runtime/NumberConstructor.cpp:
(JSC::numberConstructorFuncIsSafeInteger):
- runtime/NumberConstructor.h:
- 8:13 PM Changeset in webkit [260862] by
-
- 3 edits in trunk/Source/WebCore
Update the xcfilelists.
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- 8:03 PM Changeset in webkit [260861] by
-
- 2 edits in trunk/Source/WebKit
IPC::Decoder::isValid() should just be a nullptr check
<https://webkit.org/b/211152>
<rdar://problem/62552699>
Reviewed by Darin Adler.
- Platform/IPC/Decoder.h:
(IPC::Decoder::isValid const): Change to nullptr check. I
reviewed the code in Decoder.{cpp,h}, and I didn't see
m_bufferPos being set without a bounds check. Also added
WARN_UNUSED_RETURN to make sure the result is always checked.
- 7:59 PM Changeset in webkit [260860] by
-
- 3 edits in trunk/Tools
check-webkit-style should suggest CheckedSize for Checked<size_t, RecordOverflow>
<https://webkit.org/b/211158>
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_wtf_checked_size): Add checker.
(check_style): Call check_wtf_checked_size() to check.
(CppChecker): Add 'runtime/wtf_checked_size'.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_wtf_checked_size): Add tests.
- 5:26 PM Changeset in webkit [260859] by
-
- 2 edits in trunk/Tools
[GTK] update-webkitgtk-libs: TypeError: cannot use a string pattern on a bytes-like object
https://bugs.webkit.org/show_bug.cgi?id=211144
Reviewed by Michael Catanzaro.
Unconditionally decode the output from the 'id' command to make it
work with python3.
Also check if the doc directory exists before passing it to bwrap.
Should avoid errors like these:
bwrap: Can't find source path /run/user/1000/doc: No such file or directory
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox):
- 5:12 PM Changeset in webkit [260858] by
-
- 3 edits2 adds in trunk
REGRESSION (r260808): Backdrops on music.apple.com are offset
https://bugs.webkit.org/show_bug.cgi?id=211153
Source/WebCore:
<rdar://problem/62543158>
Reviewed by Zalan Bujtas.
The border-radius code path failed to offset the rounded rect by contentOffsetInCompositingLayer().
Test: compositing/filters/backdrop-filter-rect-border-radius.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
LayoutTests:
Reviewed by Zalan Bujtas.
- compositing/filters/backdrop-filter-rect-border-radius-expected.html: Added.
- compositing/filters/backdrop-filter-rect-border-radius.html: Added.
- 5:05 PM Changeset in webkit [260857] by
-
- 8 edits in trunk/Source/WebKit
Move WebPage::textInputContextsInRect() to WebPageIOS.mm
https://bugs.webkit.org/show_bug.cgi?id=211136
Reviewed by Eric Carlson.
The function WebPage::textInputContextsInRect is very specific to a client on iOS.
Although it's tempting to keep this cross-platform because its implementation does
not make use of iOS-specific technologies it does a very specific operation, the
result of which is a list of contexts to editable elements on the page. The contexts
provide enough info for the specific iOS client, but not enough to ever be useful
to any other client. Therefore move it to WebPageIOS.mm.
Only Mac and iOS were ever using this function. The former only for testing purposes
that have since been removed.
A side effect of this change is that I also move WebPageProxy::textInputContextsInRect()
from WebPageProxy.cpp to WebPageProxyIOS.mm.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::textInputContextsInRect): Deleted; moved to WebPageProxyIOS.mm.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::textInputContextsInRect): Moved from WebPageProxy.cpp.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::textInputContextsInRect): Deleted; moved to WebPageIOS.mm.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::textInputContextsInRect): Moved from WebPage.cpp.
- 5:03 PM Changeset in webkit [260856] by
-
- 13 edits2 deletes in trunk/Source/WebKit
[iOS][WK2] Drop process assertion logic for holding locked files
https://bugs.webkit.org/show_bug.cgi?id=206910
Reviewed by Alex Christensen.
Drop process assertion logic for holding locked files as it is causing issues and
should no longer be needed.
The intention of this code was that the Network Process would send a
SetIsHoldingLockedFiles(bool) IPC to the UIProcess whenever there are pending
SQLite transactions and the UIProcess would then take a process assertion on behalf
of the WebProcess (or release it) to prevent / allow suspension.
This approach has some issues:
- It was noisy in terms of IPC
- Because it relies on an IPC to the UIProcess to keep running, it was inherently racy
- We already have logic to deal with suspension in the network / web processes. The UIProcess sends a PrepareForSuspension IPC to its child processes. In turn, those processes will make sure to suspend their database threads to prevent any further database work. The child processes would then respond to the PrepareForSuspension IPC to let the UIProcess know they are ready to suspend. The 2 approaches were conflicting, because after the PrepareForSuspension IPC is sent, the child process could process a transaction and send the SetIsHoldingLockedFiles() IPC to the UIProcess which would incorrectly cancel the suspension.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::m_messagePortChannelRegistry): Deleted.
- NetworkProcess/NetworkProcess.h:
- Shared/WebSQLiteDatabaseTracker.cpp: Removed.
- Shared/WebSQLiteDatabaseTracker.h: Removed.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::didSetAssertionState):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles): Deleted.
- UIProcess/WebProcessProxy.h:
- UIProcess/WebProcessProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebProcess.cpp:
(WebKit::m_nonVisibleProcessCleanupTimer):
(WebKit::m_webSQLiteDatabaseTracker): Deleted.
- WebProcess/WebProcess.h:
- 4:37 PM Changeset in webkit [260855] by
-
- 4 edits in trunk/Source/WebCore
Modernize EndPointsAdjustmentMode enumeration and fix misspelled enumerator
https://bugs.webkit.org/show_bug.cgi?id=211141
Reviewed by Eric Carlson.
Fix the misspelled enumerator DoNotAdjsutEndpoints. While I am here, make
EndPointsAdjustmentMode an enum class sized as a bool and simplify the naming
of its enumerators now that they have to be qualified. I also re-ordered them
so that DoNotAdjust is the first enumerator (it will have value 0). This doesn't
really matter, but I like it because it makes it so that this enumeration behaves
more like an equivalent boolean should casts be involved.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
- editing/FrameSelection.h:
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
- 4:35 PM Changeset in webkit [260854] by
-
- 5 edits in trunk/Source
[WebKitLegacy] Implement -hidePlaceholder and -showPlaceholderIfNecessary in terms of setCanShowPlaceholder()
https://bugs.webkit.org/show_bug.cgi?id=211139
Reviewed by Simon Fraser.
Source/WebCore:
Remove hidePlaceholder() and showPlaceholderIfNecessary() as they are no longer needed.
Callers should use setCanShowPlaceholder() instead.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::hidePlaceholder): Deleted.
(WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary): Deleted.
- html/HTMLTextFormControlElement.h:
Source/WebKitLegacy/mac:
Implement -hidePlaceholder and -showPlaceholderIfNecessary in terms of setCanShowPlaceholder()
because:
- Unlike -hidePlaceholder and -showPlaceholderIfNecessary, setCanShowPlaceholder() does NOT of reach into the guts of the control and mutate its CSS.
- Because of (1), it works correctly should future code be written that modifies the structure of the guts or the CSS of the placeholder element (which is inside the guts of the control).
- Unlike -hidePlaceholder and -showPlaceholderIfNecessary, there is test coverage for setCanShowPlaceholder() to ensure (2).
- DOM/WebDOMOperations.mm:
(-[DOMNode hidePlaceholder]):
(-[DOMNode showPlaceholderIfNecessary]):
- 3:57 PM Changeset in webkit [260853] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Debug: "Outline focused element" should also outline elements with tabIndex=0
https://bugs.webkit.org/show_bug.cgi?id=211109
Reviewed by Devin Rousso.
- UserInterface/Debug/Bootstrap.css:
(body.focus-debug [tabindex="0"]):
(body.focus-debug *:focus):
- 3:42 PM Changeset in webkit [260852] by
-
- 5 edits in trunk/Source
[GTK] Fix build failures for ANGLE_WEBGL after r259589
https://bugs.webkit.org/show_bug.cgi?id=211116
Reviewed by Alex Christensen.
Source/ThirdParty/ANGLE:
The ANGLE_WEBGL is broken after ANGLE is updated in r259589. Missing sources
should be added to the build target.
- PlatformGTK.cmake: Add libangle_gl_egl_sources and libangle_gl_egl_dl_sources.
Source/WebCore:
The compiler is unhappy with coverting GCGLint64 (long long int) to GLInt64 (long int).
Passing GCGLuint62 as GLuint64 is a similar issue.
No new tests since no new functionalities.
- platform/graphics/angle/ExtensionsGLANGLE.cpp:
(WebCore::ExtensionsGLANGLE::getInteger64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getInteger64i_vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getBufferParameteri64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjecti64vRobustANGLE):
(WebCore::ExtensionsGLANGLE::getQueryObjectui64vRobustANGLE):
- platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:
(Nicosia::GC3DLayer::swapBuffersIfNeeded): Unaccelerated -> RenderingMode::Unaccelerated
- 3:34 PM Changeset in webkit [260851] by
-
- 38 edits1 copy86 adds in trunk
Implement FCP (first contentful paint)
https://bugs.webkit.org/show_bug.cgi?id=208499
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Imported paint timing tests that don't require first-paint.
- resources/import-expectations.json:
- web-platform-tests/paint-timing: Added.
- web-platform-tests/paint-timing/fcp-only: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-background-size-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-background-size.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-canvas-context-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-gradient-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-gradient.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-text-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-opacity-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-opacity.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-svg-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-svg.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-text-input-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-text-input.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-video-frame-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-video-poster-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-whitespace-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-with-rtl-expected.txt: Added.
- web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html: Added.
- web-platform-tests/paint-timing/resources: Added.
- web-platform-tests/paint-timing/resources/circle.svg: Added.
- web-platform-tests/paint-timing/resources/circles.png: Added.
- web-platform-tests/paint-timing/resources/subframe-painting.html: Added.
- web-platform-tests/paint-timing/resources/subframe-sending-paint.html: Added.
- web-platform-tests/paint-timing/resources/utils.js: Added.
(waitForAnimationFrames):
(async assertNoFirstContentfulPaint):
(async assertFirstContentfulPaint.return.new.Promise):
(async assertFirstContentfulPaint):
(async test_fcp):
Source/WebCore:
Added the necessary interface, extensions to the performance interface and observer, new runtime flag.
Detecting contentfulness after layout and before actual paint, by running a "dummy" paint, similar to
invalidateControlTints() / invalidateImagesWithAsyncDecodes(). Save the result to the GraphicsContext and then to the document.
This would run for every paint until we detect a contentful one.
Note that it paints the entire frame contents, as FCP is not viewport-dependent.
Also, paint timing is currently disabled for LFC (layout formatting context), and will be dealt with later.
Tests: http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html
http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-background-size.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-set.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-bg-image-two-steps.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-canvas-context.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-gradient.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate-descendant.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-3d-rotate.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale-transition.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-scale.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-invisible-text.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-opacity-descendant.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-opacity.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds-translate.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-out-of-bounds.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-display.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-image.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-opacity.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-text.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-pseudo-element-visibility.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-svg.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-text-input.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-typographic-pseudo.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-video-frame.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-video-poster.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-whitespace.html
imported/w3c/web-platform-tests/paint-timing/fcp-only/fcp-with-rtl.html
performance-api/paint-timing/paint-timing-apis.html
performance-api/paint-timing/paint-timing-frames.html
performance-api/paint-timing/paint-timing-with-worker.html
performance-api/paint-timing/performance-observer-first-contentful-paint.html
- CMakeLists.txt:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSPerformanceEntryCustom.cpp:
(WebCore::toJSNewlyCreated):
- bindings/js/WebCoreBuiltinNames.h:
Add PerformancePaintTiming interface. https://w3c.github.io/paint-timing/#sec-PerformancePaintTiming
- dom/Document.cpp:
- dom/Document.h:
(WebCore::Document::supportsPaintTiming const):
We only report paint timing for document that can access the top level security origin, to avoid leakage of information to sandboxed iframes.
(WebCore::Document::enqueuePaintTimingEntryIfNeeded):
Enqueue a paint timing entry, according to https://w3c.github.io/paint-timing/#sec-reporting-paint-timing
- page/FrameView.cpp:
(WebCore::FrameView::paintContents):
Disable FCP fake-paint in LFC mode.
- page/Page.cpp:
(WebCore::Page::doAfterUpdateRendering):
- page/Performance.cpp:
(WebCore::Performance::getEntries const):
(WebCore::Performance::getEntriesByType const):
(WebCore::Performance::getEntriesByName const):
(WebCore::Performance::reportFirstContentfulPaint):
- page/Performance.h:
Support first-contentful-paint reporting.
- page/PerformanceEntry.cpp:
(WebCore::PerformanceEntry::parseEntryTypeString):
- page/PerformanceEntry.h:
(WebCore::PerformanceEntry::isPaint const):
- page/PerformanceObserver.cpp:
(WebCore::PerformanceObserver::supportedEntryTypes):
- page/PerformanceObserver.h:
- page/PerformanceObserver.idl:
- page/PerformancePaintTiming.h: Added.
(isType):
- page/PerformancePaintTiming.idl: Added.
Add paint performance entry type.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPaintTimingEnabled):
(WebCore::RuntimeEnabledFeatures::paintTimingEnabled const):
New runtime flag for paint timing.
- platform/graphics/GraphicsContext.h:
(WebCore::GraphicsContext::detectingContentfulPaint const):
(WebCore::GraphicsContext::setContentfulPaintDetected):
(WebCore::GraphicsContext::contenfulPaintDetected const):
Add a flag in GraphicsContext where different render operations can report if they're contentful.
- rendering/ContentfulPaintChecker.cpp: Added.
(WebCore::ContentfulPaintChecker::qualifiesForContentfulPaint):
- rendering/ContentfulPaintChecker.h: Added.
Run a "dummy" paint of the FrameView, to detect contentful elements.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
- rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::paintReplaced):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintLayerContents):
- rendering/RenderVideo.cpp:
(WebCore::RenderVideo::paintReplaced):
- rendering/TextPainter.cpp:
(WebCore::TextPainter::paintTextOrEmphasisMarks):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paintReplaced):
Report contentfulness when we reach anything that qualifies as contentful,
based on https://w3c.github.io/paint-timing/#contentful.
Source/WebKit:
Add an experimental runtime flag for paint-timing (paintTimingEnabled).
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetPaintTimingEnabled):
(WKPreferencesGetPaintTimingEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
LayoutTests:
Added tests for some first-contentful-paint (FCP) use-cases.
Ensure that FCP works well with VNE (first paint delay until contents are visually non-empty).
- platform/win/TestExpectations:
- platform/mac-wk1/TestExpectations:
Disable paint timing for WebKit1.
Disable of the WPT tests.
- http/tests/performance/paint-timing: Added.
- http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars-expected.txt: Added.
- http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-num-chars.html: Added.
If VNE due to number of characters blocks painting, make sure FCP is reported only after painting is unblocked.
- http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style-expected.txt: Added.
- http/tests/performance/paint-timing/performance-paint-timing-fcp-after-visually-non-empty-for-style.html: Added.
If a pending stylesheet blocks painting, make sure FCP is reported only after stylesheet has loaded.
- http/tests/performance/paint-timing/resources: Added.
- http/tests/performance/paint-timing/resources/slowscript.php: Added.
- http/tests/performance/paint-timing/resources/slowstyle.php: Added.
- http/tests/performance/paint-timing/resources/style.css: Added.
(body):
- performance-api/paint-timing: Added.
- performance-api/paint-timing/paint-timing-apis-expected.txt: Added.
- performance-api/paint-timing/paint-timing-apis.html: Added.
- performance-api/paint-timing/paint-timing-frames-expected.txt: Added.
- performance-api/paint-timing/paint-timing-frames.html: Added.
- performance-api/paint-timing/paint-timing-with-worker-expected.txt: Added.
- performance-api/paint-timing/paint-timing-with-worker.html: Added.
Test that FCP is not available for cross-origin frames and workers.
- performance-api/paint-timing/performance-observer-first-contentful-paint-expected.txt: Added.
- performance-api/paint-timing/performance-observer-first-contentful-paint.html: Added.
Test that performance observers are called for FCP.
- performance-api/paint-timing/resources: Added.
- performance-api/paint-timing/resources/fcp-subframe.html: Added.
- performance-api/paint-timing/resources/paint-api-utils.js: Added.
(async waitForFCP):
- performance-api/paint-timing/resources/paint-timing-api.js: Added.
- performance-api/paint-timing/resources/worker.html: Added.
- 3:22 PM Changeset in webkit [260850] by
-
- 8 edits in branches/safari-610.1.11-branch/Source
Versioning.
- 2:59 PM Changeset in webkit [260849] by
-
- 2 edits in trunk/Source/WebCore
MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin log with no error
https://bugs.webkit.org/show_bug.cgi?id=211145
Reviewed by Jer Noble.
Don't log when MRMediaRemoteSetNowPlayingApplicationPlaybackStateForOrigin() returns 0.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::setNowPlayingInfo):
- 2:51 PM Changeset in webkit [260848] by
-
- 43 edits in trunk/Source
[JSC] Align upon the name isCallable instead of isFunction
https://bugs.webkit.org/show_bug.cgi?id=211140
Reviewed by Darin Adler.
Source/JavaScriptCore:
Follow-up to r260722. Usage is now cleanly separated between isFunction / getCallData,
but the name isCallable is still clearer than isFunction so let's flip that after all.
- API/JSContextRef.cpp:
(JSGlobalContextSetUnhandledRejectionCallback):
- API/JSObjectRef.cpp:
(JSObjectIsFunction):
- dfg/DFGOperations.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCreateThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::buildTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::isCallable):
(JSC::FTL::DFG::LowerDFGToB3::isFunction): Deleted.
- ftl/FTLOperations.cpp:
(JSC::FTL::operationTypeOfObjectAsTypeofType):
- jsc.cpp:
(functionSetUnhandledRejectionCallback):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):
- runtime/FunctionPrototype.cpp:
(JSC::functionProtoFuncToString):
- runtime/InternalFunction.cpp:
(JSC::getFunctionRealm):
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::isCallable const):
(JSC::JSValue::isFunction const): Deleted.
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::isCallable):
(JSC::JSCell::isFunction): Deleted.
- runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):
- runtime/ObjectConstructor.cpp:
(JSC::toPropertyDescriptor):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
- runtime/Operations.cpp:
(JSC::jsTypeStringForValue):
(JSC::jsIsObjectTypeOrNull):
- runtime/ProxyObject.cpp:
(JSC::ProxyObject::structureForTarget):
(JSC::ProxyObject::finishCreation):
- runtime/RuntimeType.cpp:
(JSC::runtimeTypeForValue):
- tools/JSDollarVM.cpp:
(JSC::functionCallWithStackSize):
(JSC::functionFindTypeForExpression):
(JSC::functionReturnTypeFor):
(JSC::functionHasBasicBlockExecuted):
(JSC::functionBasicBlockExecutionCount):
- wasm/WasmInstance.cpp:
(JSC::Wasm::Instance::setFunctionWrapper):
- wasm/WasmOperations.cpp:
(JSC::Wasm::operationIterateResults):
(JSC::Wasm::operationWasmRefFunc):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::link):
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::WebAssemblyWrapperFunction::finishCreation):
Source/WebCore:
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected):
- bindings/js/JSCustomElementRegistryCustom.cpp:
(WebCore::getCustomElementCallback):
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
- bindings/js/JSDOMConvertScheduledAction.h:
(WebCore::Converter<IDLScheduledAction>::convert):
- bindings/js/JSDOMPromise.cpp:
(WebCore::DOMPromise::whenPromiseIsSettled):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::queueMicrotask):
- bindings/js/JSWorkerGlobalScopeCustom.cpp:
(WebCore::JSWorkerGlobalScope::queueMicrotask):
- bindings/js/ReadableStream.cpp:
(WebCore::ReadableStream::pipeTo):
(WebCore::ReadableStream::tee):
- bindings/js/ReadableStreamDefaultController.cpp:
(WebCore::ReadableStreamDefaultController::invoke):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::callInWorld):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateOverloadDispatcher):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
- testing/Internals.cpp:
(WebCore::Internals::parserMetaData):
(WebCore::Internals::cloneArrayBuffer):
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
Source/WebKit:
- WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::hasMethod):
- 2:43 PM Changeset in webkit [260847] by
-
- 21 edits in trunk/Source
Web Inspector: find dialog does not populate search string from system find pasteboard
https://bugs.webkit.org/show_bug.cgi?id=113588
<rdar://problem/19281466>
Reviewed by Brian Burg.
Source/WebInspectorUI:
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.updateFindString): Added.
- UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI.updateFindString): Added.
(WI._populateFind):
(WI._findNext):
(WI._findPrevious):
- UserInterface/Views/ContentBrowser.js:
(WI.ContentBrowser.prototype.handleFindStringUpdated): Added.
(WI.ContentBrowser.prototype.handlePopulateFindShortcut):
(WI.ContentBrowser.prototype.handleFindNextShortcut):
(WI.ContentBrowser.prototype.handleFindPreviousShortcut):
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype.handleFindStringUpdated): Added.
(WI.LogContentView.prototype.handlePopulateFindShortcut):
(WI.LogContentView.prototype.handleFindNextShortcut):
(WI.LogContentView.prototype.handleFindPreviousShortcut):
When the find string gets updated, tell the active view. ThefindNextKeyboardShortcut
and
findPreviousKeyboardShortcut
will also update the relatedWI.FindBanner
when invoked if
the current search query does not match the find string.
- UserInterface/Test/Test.js:
(WI.updateFindString): Added.
Source/WebKit:
- UIProcess/Inspector/mac/WKInspectorWKWebView.h:
- UIProcess/Inspector/mac/WKInspectorWKWebView.mm:
(-[WKInspectorWKWebView dealloc]): Added.
(-[WKInspectorWKWebView setInspectorWKWebViewDelegate:]):
(-[WKInspectorWKWebView becomeFirstResponder]): Added.
(-[WKInspectorWKWebView _handleWindowDidBecomeKey:]): Added.
- UIProcess/Inspector/mac/WKInspectorViewController.h:
- UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController inspectorWKWebViewDidBecomeActive:]): Added.
- UIProcess/Inspector/WebInspectorProxy.h:
- UIProcess/Inspector/mac/WebInspectorProxyMac.mm:
(-[WKWebInspectorProxyObjCAdapter inspectorViewControllerDidBecomeActive:]): Added.
(WebKit::WebInspectorProxy::didBecomeActive): Added.
- UIProcess/Inspector/RemoteWebInspectorProxy.h:
- UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:
(-[WKRemoteWebInspectorProxyObjCAdapter inspectorWKWebViewDidBecomeActive:]): Added.
(WebKit::RemoteWebInspectorProxy::didBecomeActive): Added.
Add a new delegate call chain that notifies the inspector proxy about when the inspector web
view becomes active, at which point the inspector proxy can get the current find string and
sent it to the inspector page.
- WebProcess/Inspector/WebInspectorUI.messages.in:
- WebProcess/Inspector/WebInspectorUI.h:
- WebProcess/Inspector/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::updateFindString): Added.
- WebProcess/Inspector/RemoteWebInspectorUI.messages.in:
- WebProcess/Inspector/RemoteWebInspectorUI.h:
- WebProcess/Inspector/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::updateFindString): Added.
Pass along the new find string to the frontend viaInspectorFrontendAPI.updateFindString
.
- 2:31 PM Changeset in webkit [260846] by
-
- 4 edits in trunk/Source/WebKit
Remove unused WebPage::focusTextInputContext()
https://bugs.webkit.org/show_bug.cgi?id=211135
Reviewed by Anders Carlsson.
I accidentally forgot to remove the WebPage message and WebPage implementation that
backed -_focusTextInputContext when I removed it in r260225. Now the implementation
is unused. Let's remove it.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::focusTextInputContext): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 2:15 PM Changeset in webkit [260845] by
-
- 2 edits in trunk/Source/WebCore
Rewrite GraphicsLayerCA::updateSublayerList()
https://bugs.webkit.org/show_bug.cgi?id=211137
Reviewed by Zalan Bujtas.
This function was hard to understand, with aliasing of a layer list to handle
the various configurations. Future patches will add a bit more complexity here.
Rewrite using lambdas, which makes it easier to follow.
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateSublayerList):
- 1:59 PM Changeset in webkit [260844] by
-
- 15 edits3 adds in trunk
[Win] Bundle Inspector Resources in Release builds
https://bugs.webkit.org/show_bug.cgi?id=210942
Reviewed by Fujii Hironori.
.:
Add ENABLE_WEBINSPECTORUI so the resource copy can be disabled
on platforms without inspector frontends.
- CMakeLists.txt:
- Source/CMakeLists.txt:
- Source/PlatformWin.cmake:
- Source/cmake/OptionsJSCOnly.cmake:
- Source/cmake/OptionsPlayStation.cmake:
Source/WebCore:
- CMakeLists.txt:
Source/WebInspectorUI:
Add CMake files for copying inspector resources
- CMakeLists.txt: Added.
- PlatformGTK.cmake: Added.
- PlatformWin.cmake: Added.
Source/WebKit:
Move CMake logic for the inspector resource copy script to
Source/WebInspectorUI so it can be shared with Win and other platforms.
- InspectorGResources.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
- 1:41 PM Changeset in webkit [260843] by
-
- 4 edits in trunk/Source/WebCore
Remove downloadAttribute from DocumentLoader
https://bugs.webkit.org/show_bug.cgi?id=210493
Patch by Rob Buis <rbuis@igalia.com> on 2020-04-28
Reviewed by Darin Adler.
Remove downloadAttribute from DocumentLoader since this
can be obtained from the NavigationAction.
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::downloadAttribute const):
(WebCore::DocumentLoader::setDownloadAttribute): Deleted.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadPostRequest):
- loader/FrameLoader.h:
- 12:53 PM Changeset in webkit [260842] by
-
- 2 edits in trunk/Source/WebKit
[MacCatalyst] Add missing symlinks to WebKit.frameworks
<https://webkit.org/b/211102>
<rdar://problem/62137758>
Reviewed by Brent Fulgham.
- WebKit.xcodeproj/project.pbxproj:
(Make Frameworks Symbolic Link):
- Update logic to run for macOS and macCatalyst builds.
- Add output path.
(Check For Inappropriate Objective-C Class Names):
- Let Xcode have its way with the project file by adding a newline to the end of the script.
(Check For Weak VTables and Externals): Ditto.
(Add XPCServices symlink):
- Update logic to run for macOS and macCatalyst builds.
- 12:40 PM Changeset in webkit [260841] by
-
- 17 edits3 adds in trunk
Create a mechanism to add missing ITP Database tables when the schema is updated
https://bugs.webkit.org/show_bug.cgi?id=211004
<rdar://problem/62261187>
Reviewed by John Wilander.
Source/WebKit:
This patch updates the ITP database to better handle added tables to
the schema. Currently the database store deletes and re-creates the
database when any schema change is encountered. This is simple but
would result in ITP data loss during schema updates, so this patch
searches the schema for missing tables and adds any it finds.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::createTableQueries):
Convert the tables array to a mapping of table names to their
respective CREATE TABLE queries so we can add missing tables on the
fly.
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
Remove call to createSchema() from the constructor. It makes more
sense to base this on whether the file is new as opposed to whether
one table exists.
(WebKit::ResourceLoadStatisticsDatabaseStore::checkForMissingTablesInSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::addMissingTablesIfNecessary):
Checks for missing tables and adds them using a best-effort approach.
Call createUniqueIndices() to call all CREATE UNIQUE INDEX queries,
even though we may not need them all. It is much simpler than to
associate each query with its table, and it doesn't hurt to call
again.
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndUpdateSchemaIfNecessary):
Add missing tables instead of deleting the old database file. Changed
the function name to reflect this. Deleted a FIXME which this patch
addresses but added a new FIXME for migrating data when adding new
columns, which this patch does not address.
(WebKit::ResourceLoadStatisticsDatabaseStore::isCorrectTableSchema): Deleted.
(WebKit::ResourceLoadStatisticsDatabaseStore::openAndDropOldDatabaseIfNecessary): Deleted.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::statisticsDatabaseHasAllTables):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::statisticsDatabaseHasAllTables):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _statisticsDatabaseHasAllTables:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::statisticsDatabaseHasAllTables):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::statisticsDatabaseHasAllTables):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Added an SPI call to test that the database schema includes all
tables. This tests the database is not dropped when a new
table is added upon opening the database.
Tools:
Add test case which copies a database schema with a missing table into
the ITP database file, then ensures the pre-seeded data is
migrated over and that the schema now has all tables (including the
previously missing one).
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db: Added.
- TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db-shm: Added.
- TestWebKitAPI/Tests/WebKitCocoa/missingTopFrameUniqueRedirectSameSiteStrictTableSchema.db-wal: Added.
- 12:29 PM Changeset in webkit [260840] by
-
- 7 edits in trunk
[Cocoa] Global preferences are not accessible in the WebContent process when CFPrefs direct mode is enabled
https://bugs.webkit.org/show_bug.cgi?id=211075
Source/WebKit:
<rdar://problem/61866711>
Reviewed by Brent Fulgham.
Global preferences in the domain 'kCFPreferencesAnyApplication' are not readable in the WebContent process when CFPrefs direct mode
is enabled. Fix this by transferring a select set of global preferences to the WebContent process on startup.
API test: WebKit.GlobalPreferences
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::setGlobalPreferences):
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKit/PreferenceChanges.mm:
(TEST):
- 12:18 PM Changeset in webkit [260839] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: Classes toggle button has wrong outline on focus
https://bugs.webkit.org/show_bug.cgi?id=211104
<rdar://problem/62475340>
Reviewed by Devin Rousso.
- UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:focus):
- UserInterface/Views/Variables.css:
(:root):
- 12:07 PM Changeset in webkit [260838] by
-
- 2 edits in trunk/Source/WebKit
Remove the WebKit.plist for Feature Flags
https://bugs.webkit.org/show_bug.cgi?id=210534
Unreviewed project file clean-up.
A follow-up patch for r260599. Remove the reference to the WebKit.plist from project.pbxproj.
- WebKit.xcodeproj/project.pbxproj:
- 12:02 PM Changeset in webkit [260837] by
-
- 2 edits in trunk/Tools
results.webkit.org: A suite running multiple times in a commit for a single configuration may overwrite upload metadata
https://bugs.webkit.org/show_bug.cgi?id=211097
<rdar://problem/62474538>
Rubber-stamped by Aakash Jain.
Create a new table for uploads which is indexed by both uuid and timestamp so that uploads which share
a configuration and uuid but not a timestamp do not collide.
- resultsdbpy/resultsdbpy/model/upload_context.py:
(UploadContext):
(UploadContext.UploadsByConfigurationLegacy): Renamed from UploadContext.UploadsByConfiguration.
(UploadContext.UploadsByConfiguration): New database table indexed by both timestamp and uuid.
(UploadContext.UploadsByConfiguration.unpack):
(UploadContext.init):
(UploadContext.find_test_results): Search both versions of the UploadsByConfiguration table.
- 11:59 AM Changeset in webkit [260836] by
-
- 2 edits in trunk/Source/WebKit
Fix iOS API tests after r260790
https://bugs.webkit.org/show_bug.cgi?id=211093
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::sendMessage):
Only call the completion handler once.
- 11:57 AM Changeset in webkit [260835] by
-
- 3 edits in trunk/LayoutTests
REGRESSION(r260822): Broke media/track/track-in-band-metadata-display-order.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=211133
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-28
Reviewed by Eric Carlson.
- media/track/track-in-band-metadata-display-order.html: Ensure the caption
display mode is set to forced-only, this is a requirement for the
test.
- 11:04 AM Changeset in webkit [260834] by
-
- 25 edits2 adds in trunk
[JSC] NumberConstructor should accept BigInt
https://bugs.webkit.org/show_bug.cgi?id=210835
Reviewed by Mark Lam.
JSTests:
- stress/number-constructor-bigint-dfg.js: Added.
(shouldBe):
(convert):
- stress/number-constructor-bigint.js: Added.
(shouldBe):
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch fixes our Number constructor behavior to accept BigInt. According to the spec[1],
Number constructor should accept BigInt and should generate numbers from that.
We port V8's BigInt to double conversion code as we did for the other HeapBigInt runtime functions.
And we introduce CallNumberConstructor DFG node and handle Number constructor call with BigInt correctly
in DFG and FTL. Previously we were emitting ToNumber DFG node for Number constructor. But this is wrong
now since ToNumber does not accept BigInt and throws an error, and Number constructor should not use
ToNumber to implement its implementation. So we should introduce slightly different semantics: CallNumberConstructor
as we introduced CallStringConstructor in addition to ToString DFG node. And we add appropriate BigInt32 path
to emit efficient CallNumberConstructor machine code.
[1]: https://tc39.es/ecma262/#sec-number-constructor-number-value
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToNumberOrToNumericOrCallNumberConstructor):
(JSC::DFG::FixupPhase::fixupToNumeric): Deleted.
(JSC::DFG::FixupPhase::fixupToNumber): Deleted.
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileToNumeric):
(JSC::DFG::SpeculativeJIT::compileCallNumberConstructor):
- dfg/DFGSpeculativeJIT.h:
- 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::compileCallNumberConstructor):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::decideRounding):
(JSC::JSBigInt::toNumberHeap):
- runtime/JSBigInt.h:
- runtime/NumberConstructor.cpp:
(JSC::constructNumberConstructor):
(JSC::callNumberConstructor):
- 11:04 AM Changeset in webkit [260833] by
-
- 1 copy in tags/Safari-609.2.9.0.3
Tag Safari-609.2.9.0.3.
- 10:04 AM Changeset in webkit [260832] by
-
- 9 edits in trunk/Source
[Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
https://bugs.webkit.org/show_bug.cgi?id=211028
Reviewed by Eric Carlson.
Source/WebCore/PAL:
Make MediaToolboxSoftLink fully exported from PAL.
- pal/cf/CoreMediaSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
Source/WebKit:
Adopt a new notification which signals that the receiver should re-query for HDR support.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::webProcessPoolHighDynamicRangeDidChangeCallback):
(WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::registerHighDynamicRangeChangeCallback):
(WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebProcessPool.h:
- 9:36 AM Changeset in webkit [260831] by
-
- 40 edits2 adds in trunk
Nullptr crash in EditCommand::EditCommand via CompositeEditCommand::removeNode
https://bugs.webkit.org/show_bug.cgi?id=207600
<rdar://problem/56969450>
Reviewed by Geoffrey Garen.
Source/WebCore:
Move FrameSelection and Editor objects from Frame to Document so when a document is detached
in nested command executions, the next EditCommand would not fail in constructor.
Test: editing/inserting/insert-list-then-edit-command-crash.html
- dom/Document.cpp:
(WebCore::m_selection):
(WebCore::Document::prepareForDestruction):
(WebCore::m_undoManager): Deleted.
- dom/Document.h:
(WebCore::Document::editor):
(WebCore::Document::editor const):
(WebCore::Document::selection):
(WebCore::Document::selection const):
- dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate const):
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::AlternativeTextController):
(WebCore::AlternativeTextController::stopPendingCorrection):
(WebCore::AlternativeTextController::isSpellingMarkerAllowed const):
(WebCore::AlternativeTextController::applyAutocorrectionBeforeTypingIfAppropriate):
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection):
(WebCore::AlternativeTextController::timerFired):
(WebCore::AlternativeTextController::handleAlternativeTextUIResult):
(WebCore::AlternativeTextController::rootViewRectForRange const):
(WebCore::AlternativeTextController::respondToChangedSelection):
(WebCore::AlternativeTextController::respondToAppliedEditing):
(WebCore::AlternativeTextController::respondToUnappliedEditing):
(WebCore::AlternativeTextController::editorClient):
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand):
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult):
(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):
(WebCore::AlternativeTextController::alternativeTextClient):
(WebCore::AlternativeTextController::applyAlternativeTextToRange):
(WebCore::AlternativeTextController::insertDictatedText):
(WebCore::AlternativeTextController::applyDictationAlternative):
- editing/AlternativeTextController.h:
(WebCore::AlternativeTextController::UNLESS_ENABLED):
- editing/CompositeEditCommand.cpp:
(WebCore::EditCommandComposition::unapply):
(WebCore::EditCommandComposition::reapply):
(WebCore::CompositeEditCommand::willApplyCommand):
(WebCore::CompositeEditCommand::didApplyCommand):
(WebCore::CompositeEditCommand::targetRanges const):
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::saveTypingStyleState):
(WebCore::DeleteSelectionCommand::mergeParagraphs):
(WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
(WebCore::DeleteSelectionCommand::doApply):
- editing/EditCommand.cpp:
(WebCore::EditCommand::EditCommand):
(WebCore::EditCommand::isEditingTextAreaOrTextInput const):
(WebCore::EditCommand::postTextStateChangeNotification):
(WebCore::EditCommand::frame): Deleted.
(WebCore::EditCommand::frame const): Deleted.
- editing/EditCommand.h:
- editing/Editing.cpp:
(WebCore::createDefaultParagraphElement):
- editing/EditingStyle.cpp:
(WebCore::StyleChange::StyleChange):
- editing/Editor.cpp:
(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::TemporarySelectionChange::~TemporarySelectionChange):
(WebCore::TemporarySelectionChange::setSelection):
(WebCore::Editor::selectionForCommand):
(WebCore::Editor::behavior const):
(WebCore::Editor::client const):
(WebCore::Editor::canEdit const):
(WebCore::Editor::canEditRichly const):
(WebCore::Editor::canDHTMLCut):
(WebCore::Editor::canDHTMLCopy):
(WebCore::Editor::canCopy const):
(WebCore::Editor::canPaste const):
(WebCore::Editor::canDelete const):
(WebCore::Editor::shouldSmartDelete):
(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::deleteSelectionWithSmartDelete):
(WebCore::Editor::clearText):
(WebCore::Editor::replaceSelectionWithFragment):
(WebCore::Editor::selectedRange):
(WebCore::Editor::tryDHTMLCopy):
(WebCore::Editor::tryDHTMLCut):
(WebCore::Editor::shouldInsertText const):
(WebCore::Editor::hasBidiSelection const):
(WebCore::Editor::selectionUnorderedListState const):
(WebCore::Editor::selectionOrderedListState const):
(WebCore::Editor::increaseSelectionListLevel):
(WebCore::Editor::increaseSelectionListLevelOrdered):
(WebCore::Editor::increaseSelectionListLevelUnordered):
(WebCore::Editor::decreaseSelectionListLevel):
(WebCore::Editor::findEventTargetFromSelection const):
(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::applyStyleToSelection):
(WebCore::Editor::applyParagraphStyleToSelection):
(WebCore::Editor::selectionStartHasStyle const):
(WebCore::Editor::selectionHasStyle const):
(WebCore::Editor::selectionStartCSSPropertyValue):
(WebCore::Editor::appliedEditing):
(WebCore::Editor::Editor):
(WebCore::Editor::clear):
(WebCore::Editor::insertText):
(WebCore::Editor::insertTextForConfirmedComposition):
(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::insertLineBreak):
(WebCore::Editor::insertParagraphSeparator):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::renderLayerDidScroll):
(WebCore::Editor::setBaseWritingDirection):
(WebCore::Editor::baseWritingDirectionForSelectionStart const):
(WebCore::Editor::selectComposition):
(WebCore::SetCompositionScope::SetCompositionScope):
(WebCore::SetCompositionScope::~SetCompositionScope):
(WebCore::Editor::setComposition):
(WebCore::Editor::ignoreSpelling):
(WebCore::Editor::learnSpelling):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::misspelledWordAtCaretOrRange const):
(WebCore::Editor::isSelectionUngrammatical):
(WebCore::Editor::guessesForMisspelledWord const):
(WebCore::Editor::guessesForMisspelledOrUngrammatical):
(WebCore::Editor::markMisspellingsAfterTypingToWord):
(WebCore::Editor::isSpellCheckingEnabledInFocusedNode const):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
(WebCore::Editor::markAndReplaceFor):
(WebCore::Editor::updateMarkersForWordsAffectedByEditing):
(WebCore::Editor::rangeForPoint):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::setIgnoreSelectionChanges):
(WebCore::Editor::getCompositionSelection const):
(WebCore::Editor::transpose):
(WebCore::Editor::changeSelectionAfterCommand):
(WebCore::Editor::selectedText const):
(WebCore::Editor::selectedTextForDataTransfer const):
(WebCore::Editor::insertTextPlaceholder):
(WebCore::Editor::removeTextPlaceholder):
(WebCore::Editor::shouldChangeSelection const):
(WebCore::Editor::computeAndSetTypingStyle):
(WebCore::Editor::findString):
(WebCore::Editor::countMatchesForText):
(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::shouldDetectTelephoneNumbers):
(WebCore::Editor::scanSelectionForTelephoneNumbers):
(WebCore::Editor::editorUIUpdateTimerFired):
(WebCore::Editor::selectionStartHasMarkerFor const):
(WebCore::candidateRangeForSelection):
(WebCore::Editor::stringForCandidateRequest const):
(WebCore::Editor::contextRangeForCandidateRequest const):
(WebCore::Editor::fontAttributesAtSelectionStart const):
(WebCore::Editor::notifyClientOfAttachmentUpdates):
(WebCore::Editor::handleAcceptedCandidate):
(WebCore::Editor::unifiedTextCheckerEnabled const):
(WebCore::Editor::toggleOverwriteModeEnabled):
(WebCore::Editor::fontForSelection const):
(WebCore::Editor::canCopyExcludingStandaloneImages const):
(WebCore::Editor::document const): Deleted.
- editing/Editor.h:
(WebCore::TemporarySelectionChange::TemporarySelectionChange):
(WebCore::IgnoreSelectionChangeForScope::IgnoreSelectionChangeForScope):
(WebCore::Editor::document const):
- editing/EditorCommand.cpp:
(WebCore::executeSwapWithMark):
(WebCore::Editor::command):
(WebCore::Editor::Command::Command):
(WebCore::Editor::Command::execute const):
- editing/FrameSelection.cpp:
(WebCore::shouldAlwaysUseDirectionalSelection):
(WebCore::FrameSelection::FrameSelection):
(WebCore::FrameSelection::rootEditableElementOrDocumentElement const):
(WebCore::FrameSelection::setSelectionByMouseIfDifferent):
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::setSelection):
(WebCore::updateSelectionByUpdatingLayoutOrStyle):
(WebCore::FrameSelection::setNeedsSelectionUpdate):
(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::updateDataDetectorsForSelection):
(WebCore::FrameSelection::positionForPlatform const):
(WebCore::FrameSelection::nextWordPositionForPlatform):
(WebCore::FrameSelection::modifyMovingRight):
(WebCore::FrameSelection::modifyMovingLeft):
(WebCore::FrameSelection::modify):
(WebCore::FrameSelection::prepareForDestruction):
(WebCore::FrameSelection::absoluteCaretBounds):
(WebCore::FrameSelection::recomputeCaretRect):
(WebCore::FrameSelection::contains const):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::focusedOrActiveStateChanged):
(WebCore::FrameSelection::isFocusedAndActive const):
(WebCore::shouldStopBlinkingDueToTypingCommand):
(WebCore::FrameSelection::updateAppearance):
(WebCore::FrameSelection::setCaretVisibility):
(WebCore::FrameSelection::setFocusedElementIfNeeded):
(WebCore::FrameSelection::shouldDeleteSelection const):
(WebCore::FrameSelection::selectionBounds const):
(WebCore::FrameSelection::getClippedVisibleTextRectangles const):
(WebCore::FrameSelection::currentForm const):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::setSelectionFromNone):
(WebCore::FrameSelection::shouldChangeSelection const):
(WebCore::FrameSelection::setShouldShowBlockCursor):
(WebCore::FrameSelection::appearanceUpdateTimerFired):
(WebCore::FrameSelection::updateAppearanceAfterLayoutOrStyleChange):
(WebCore::FrameSelection::selectRangeOnElement):
(WebCore::FrameSelection::setCaretBlinks):
- editing/FrameSelection.h:
- editing/InsertIntoTextNodeCommand.cpp:
(WebCore::InsertIntoTextNodeCommand::doApply):
- editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
- editing/InsertTextCommand.cpp:
(WebCore::InsertTextCommand::doApply):
- editing/ReplaceRangeWithTextCommand.cpp:
(WebCore::ReplaceRangeWithTextCommand::doApply):
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::doApply):
- editing/SetSelectionCommand.cpp:
(WebCore::SetSelectionCommand::doApply):
(WebCore::SetSelectionCommand::doUnapply):
- editing/SpellChecker.cpp:
(WebCore::SpellChecker::SpellChecker):
(WebCore::SpellChecker::client const):
(WebCore::SpellChecker::isAsynchronousEnabled const):
(WebCore::SpellChecker::invokeRequest):
(WebCore::SpellChecker::didCheck):
(WebCore::SpellChecker::didCheckSucceed):
- editing/SpellChecker.h:
- editing/SpellingCorrectionCommand.cpp:
(WebCore::SpellingCorrectionCommand::doApply):
- editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::updateSelectionIfDifferentFromCurrentSelection):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::lastTypingCommandIfStillOpenForTyping):
(WebCore::TypingCommand::closeTyping):
(WebCore::TypingCommand::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
(WebCore::TypingCommand::markMisspellingsAfterTyping):
(WebCore::TypingCommand::willAddTypingToOpenCommand):
(WebCore::TypingCommand::typingAddedToOpenCommand):
(WebCore::TypingCommand::insertTextAndNotifyAccessibility):
(WebCore::TypingCommand::insertTextRunWithoutNewlines):
(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):
- editing/TypingCommand.h:
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::selectionInHTMLFormat):
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::writeSelection):
(WebCore::Editor::selectionInWebArchiveFormat):
(WebCore::Editor::replaceSelectionWithAttributedString):
(WebCore::Editor::webContentFromPasteboard):
(WebCore::Editor::takeFindStringFromSelection):
- editing/gtk/EditorGtk.cpp:
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::webContentFromPasteboard):
- editing/ios/EditorIOS.mm:
(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::removeUnchangeableStyles):
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::insertDictationPhrases):
(WebCore::Editor::setDictationPhrasesAsChildOfElement):
(WebCore::Editor::setTextAsChildOfElement):
(WebCore::Editor::ensureLastEditCommandHasCurrentSelectionIfOpenForMoreTyping):
- editing/libwpe/EditorLibWPE.cpp:
(WebCore::Editor::writeSelectionToPasteboard):
(WebCore::Editor::pasteWithPasteboard):
- editing/mac/EditorMac.mm:
(WebCore::Editor::readSelectionFromPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):
(WebCore::Editor::selectionWillChange):
- editing/win/EditorWin.cpp:
(WebCore::Editor::pasteWithPasteboard):
(WebCore::Editor::webContentFromPasteboard):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::willTransitionToCommitted):
(WebCore::FrameLoader::closeURL):
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::clear):
- page/Frame.cpp:
(WebCore::Frame::Frame):
(WebCore::Frame::requestDOMPasteAccess):
(WebCore::Frame::setPageAndTextZoomFactors):
- page/Frame.h:
- page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange):
LayoutTests:
Added a regression test for the crash.
- editing/inserting/insert-list-then-edit-command-crash-expected.txt: Added.
- editing/inserting/insert-list-then-edit-command-crash.html: Added.
Modify the test result. FrameSelection is being destructed along with
document so an additional selection change notification is expected.
- platform/mac/editing/pasteboard/drag-drop-dead-frame-expected.txt:
- 9:23 AM Changeset in webkit [260830] by
-
- 2 edits in trunk/LayoutTests
[GTK][WebGL] compositing/clipping/border-radius-on-webgl.html is failing since added
https://bugs.webkit.org/show_bug.cgi?id=211121
Also removed fast/mediastream/getDisplayMedia-max-constraints.html
from TestExpectations, it was removed from the repository in r260638.
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 9:15 AM Changeset in webkit [260829] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Unreviewed build fix for Clang 10
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(webkitInputMethodContextImplGtkGetPreedit): Use the "f" suffix to make constants float to
prevent a narrowing double-to-float narrowing issue which Clang 10 considers an error. This
only happens with GTK4 because GdkRGBA now has float members. Using float constants is fine
with GTK3, because promoting floats to doubles never loses precision.
- 9:05 AM Changeset in webkit [260828] by
-
- 3 edits2 adds in trunk
msn.com: Header flickers when scrolling articles
https://bugs.webkit.org/show_bug.cgi?id=211126
<rdar://problem/56439177>
Reviewed by Simon Fraser.
Source/WebCore:
Test: compositing/fixed-with-clip-stability.html
In case of fixed positioned elements the decision to create backing depends on clip rect.
However RenderLayer::localClipRect() tests for backing in call to clippingRootForPainting(). This creates
instability since clipping depends on backing decision, and backing decision depends on clipping.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::localClipRect const):
Specifically the result of clipExceedsBounds test here is affected by computed offsetFromRoot:
"clipRect.contains(cssClipRect)" test fails for zero sized clips with different offsets.
Compute clipExceedsBounds by looking at the clip sizes only and ignoring the position (which should match).
LayoutTests:
- compositing/fixed-with-clip-stability-expected.txt: Added.
- compositing/fixed-with-clip-stability.html: Added.
- 8:25 AM Changeset in webkit [260827] by
-
- 8 edits in trunk/Source/WebCore
[LFC] Introduce FormattingContext::ConstraintsForOutOfFlowContent
https://bugs.webkit.org/show_bug.cgi?id=211125
Reviewed by Antti Koivisto.
Horizontal and vertical out-of-flow constraints are always computed and used in pairs.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::constraintsForOutOfFlowContent):
(WebCore::Layout::FormattingContext::Geometry::horizontalConstraintsForOutOfFlow): Deleted.
(WebCore::Layout::FormattingContext::Geometry::verticalConstraintsForOutOfFlow): Deleted.
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
- layout/LayoutUnits.h:
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
- 7:54 AM Changeset in webkit [260826] by
-
- 6 edits in trunk/Source/WebKit
[iOS] Marked text editor state only needs to be set when layout is up-to-date
https://bugs.webkit.org/show_bug.cgi?id=211087
Patch by Daniel Bates <dabates@apple.com> on 2020-04-28
Reviewed by Darin Adler.
Organize the code to reflect reality: editor state only has marked text rects if layout is
up-to-date. So, move these fields to from EditorState to EditorState::PostLayoutData.
While I am in this area of the code I also moved the editor state originIdentifierForPasteboard
to the top of the struct as it is aesthetically more pleasing to me to have the post layout
data last. It likely also produces better bit packing though this wasn't my primary motivation.
- Shared/EditorState.cpp:
(WebKit::EditorState::encode const):
(WebKit::EditorState::decode):
(WebKit::EditorState::PostLayoutData::encode const):
(WebKit::EditorState::PostLayoutData::decode):
Move encoding and decoding of marked test fields from EditorState to EditorState::PostLayoutData.
(WebKit::operator<<): Fix up code now that marked text fields are in PostLayoutData.
- Shared/EditorState.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textFirstRect]): Update code now that this data is in the post layout data struct.
(-[WKContentView textLastRect]): Ditto.
(-[WKContentView _updateChangedSelection:]): Ditto.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::convertContentToRootViewSelectionRects): Added.
(WebKit::WebPage::getPlatformEditorState const): Update now that marked text fields are in the
post layout data struct. Simplify the early return as well: only continue if we're not missing post
layout data. If we're missing post layout data then we either do not have a frame view or layout is
not up-to-data. Either way we don't want to do anything. I also stored the FrameView in a Ref<> to
future proof the code should future code cause view detachment and destruction. Note that layout
could cause this, but the code currently covers this case. So, taking a Ref<> is about future proofing.
(WebKit::WebPage::getRectsForGranularityWithSelectionOffset): Update to use convertContentToRootViewSelectionRects().
(WebKit::WebPage::getRectsAtSelectionOffsetWithText): Ditto.
(WebKit::WebPage::requestAutocorrectionData): Use Vector::map() to convert the selection rects to
from content to root view FloatRects.
(WebKit::WebPage::convertSelectionRectsToRootView): Deleted.
- 7:49 AM Changeset in webkit [260825] by
-
- 2 edits in trunk/Tools
[Linux] Replace --geometry with --fullscreen when using MiniBrowser for WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=211123
Reviewed by Carlos Alberto Lopez Perez.
MiniBrowser's --geometry is on its way out, so use --fullscreen
instead as it does the job.
- Scripts/webkitpy/benchmark_runner/browser_driver/linux_minibrowsergtk_driver.py:
(GTKMiniBrowserDriver.launch_url):
- 7:44 AM Changeset in webkit [260824] by
-
- 15 edits in trunk/Source/WebCore
[LFC] Introduce FormattingContext::ConstraintsForInFlowContent
https://bugs.webkit.org/show_bug.cgi?id=211113
Reviewed by Antti Koivisto.
This makes the layoutInFlowContent() related code look simpler.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
- layout/FormattingContext.h:
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
- layout/blockformatting/BlockFormattingContext.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::lineLayout):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::layout):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutCell):
- layout/tableformatting/TableFormattingContext.h:
- 7:34 AM Changeset in webkit [260823] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207165
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:17 AM Changeset in webkit [260822] by
-
- 7 edits in trunk
media/track/track-load-error-readyState.html passes only when accompanied by some other tests
https://bugs.webkit.org/show_bug.cgi?id=210976
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState): Reset caption
display mode, which might have been overriden by a previous test.
LayoutTests:
- media/track/track-load-error-readyState-expected.txt:
- media/track/track-load-error-readyState.html: Ensure the caption
display mode is set to automatic, this is a requirement for the
test.
- media/track/track-mode-not-changed-by-new-track-expected.txt:
- media/track/track-mode-not-changed-by-new-track.html: Ditto.
- 7:14 AM Changeset in webkit [260821] by
-
- 2 edits in trunk
[GStreamer][MediaStream] Doesn't build with GStreamer 1.10
https://bugs.webkit.org/show_bug.cgi?id=210271
Reviewed by Xabier Rodriguez-Calvar.
- Source/cmake/GStreamerChecks.cmake: Require at least GStreamer
1.12 when building with WebRTC/MediaStream enabled.
- 6:09 AM Changeset in webkit [260820] by
-
- 11 edits2 adds in trunk
[iOS] Fix sandbox violation when uploading a file
https://bugs.webkit.org/show_bug.cgi?id=210937
Reviewed by Darin Adler.
Source/WebKit:
On iOS, the file chooser needs access to frontboard and icon services in the WebContent process. Create and
consume extensions for these services when choosing files. When done, the extensions should be revoked. This
patch also fixes an out-of-bounds array exception when running the test created for this patch. Additionally,
the function thumbnailSizedImageForImage should return a RetainPtr<UIImage>, since it seems unsafe to not
retain the UIImage after the image context is released in that function.
Test: fast/forms/file/open-file-panel-crash.html
- Shared/ios/WebIconUtilities.h:
- Shared/ios/WebIconUtilities.mm:
(WebKit::thumbnailSizedImageForImage):
(WebKit::fallbackIconForFile):
(WebKit::iconForImageFile):
(WebKit::iconForVideoFile):
(WebKit::iconForFile):
- UIProcess/WebPageProxy.cpp:
- UIProcess/ios/forms/WKFileUploadPanel.mm:
(-[_WKFileUploadItem displayImage]):
(-[_WKImageFileUploadItem displayImage]):
(-[_WKVideoFileUploadItem displayImage]):
(-[WKFileUploadPanel documentPicker:didPickDocumentsAtURLs:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMediaWithInfo:]):
(-[WKFileUploadPanel imagePickerController:didFinishPickingMultipleMediaWithInfo:]):
- WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::createIconForFiles):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didChooseFilesForOpenPanelWithDisplayStringAndIcon):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
LayoutTests:
- fast/forms/file/open-file-panel-crash-expected.txt: Added.
- fast/forms/file/open-file-panel-crash.html: Added.
- platform/win/TestExpectations:
- 5:27 AM Changeset in webkit [260819] by
-
- 8 edits in trunk
[GTK4] Add support for motion events
https://bugs.webkit.org/show_bug.cgi?id=211073
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Handle enter, leave and motion events using a GtkEventControllerMotion.
- Shared/NativeWebMouseEvent.h:
- Shared/gtk/NativeWebMouseEventGtk.cpp:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
- Shared/gtk/WebEventFactory.cpp:
(WebKit::WebEventFactory::createWebMouseEvent):
- Shared/gtk/WebEventFactory.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseEnter):
(webkitWebViewBaseMotion):
(webkitWebViewBaseLeave):
(webkitWebViewBaseConstructed):
Tools:
Use the GtkOverlay in GTK4 too so that status label is shown when hovering elements.
- MiniBrowser/gtk/BrowserTab.c:
(browserTabConstructed):
- 4:57 AM Changeset in webkit [260818] by
-
- 9 edits in trunk/Source
Non-unified build fixes late April 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=211099
Unreviewed build fix.
Source/WebCore:
No new tests needed.
- Modules/cache/DOMCacheStorage.cpp: Sprinkle DOMCacheEngine:: namespace prefixes as needed.
(WebCore::DOMCacheStorage::findCacheOrCreate):
(WebCore::DOMCacheStorage::retrieveCaches):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::doRemove):
- bindings/js/JSExecStateInstrumentation.h: Ditto for JSC:: namespace prefixes.
(WebCore::JSExecState::instrumentFunction):
- dom/ScriptedAnimationController.h: Add missing ReducedResolutionSeconds.h header.
- editing/TextCheckingHelper.h: Add missing forward declaration for Position.
- html/URLSearchParams.h: Add missing ExceptionOr.h header.
Source/WebKit:
- NetworkProcess/NetworkLoad.cpp: Add mising WebCoreArgumentCoders.h header.
- WebProcess/Automation/WebAutomationDOMWindowObserver.cpp:
(WebKit::WebAutomationDOMWindowObserver::WebAutomationDOMWindowObserver): Add namespace to
WebCore::DOMWindow usage.
- 4:50 AM Changeset in webkit [260817] by
-
- 6 edits in trunk/Source/WebKit
[GTK4] Add support for scroll events
https://bugs.webkit.org/show_bug.cgi?id=211045
Reviewed by Adrian Perez de Castro.
Use an event controller to connect to scroll signal and get the GdkEvent.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseHandleWheelEvent):
(webkitWebViewBaseScroll):
(webkitWebViewBaseConstructed):
- 4:28 AM Changeset in webkit [260816] by
-
- 10 edits in trunk
[GTK4][Wayland] Add support for rendering web view contents
https://bugs.webkit.org/show_bug.cgi?id=211021
Reviewed by Adrian Perez de Castro.
Source/WebKit:
Implement GtkWidgetClass::snapshot and GtkWidgetClass::measure instead of GtkWidgetClass::draw and
GtkWidgetClass::get_preferred_width|height. Add AcceleratedBackingStore::snapshot() pure virtual to be used with
GTK4 instead of AcceleratedBackingStore::paint(), and implement it for Wayland.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseSnapshot): Call AcceleratedBackingStore::snapshot().
(webkitWebViewBaseMeasure): Return the natural width/height for the WebView.
(webkit_web_view_base_class_init): Add implementations for snapshot and measure vfuncs.
- UIProcess/gtk/AcceleratedBackingStore.h:
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext): Always try to realize the context here, since that
can fail too.
(WebKit::AcceleratedBackingStoreWayland::tryEnsureTexture): Helper to share the code to prepare the texture.
(WebKit::AcceleratedBackingStoreWayland::downloadTexture): Helper to share the code to download the texture.
(WebKit::AcceleratedBackingStoreWayland::snapshot): Use gtk_snapshot_append_texture().
(WebKit::AcceleratedBackingStoreWayland::paint): Use new helpers.
- UIProcess/gtk/AcceleratedBackingStoreWayland.h:
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::snapshot):
- UIProcess/gtk/AcceleratedBackingStoreX11.h:
- UIProcess/gtk/HardwareAccelerationManager.cpp:
(WebKit::HardwareAccelerationManager::HardwareAccelerationManager): Force accelerated compositing mode for GTK4.
Tools:
Set vertical expand of web view to TRUE.
- MiniBrowser/gtk/BrowserTab.c:
(browserTabConstructed):
- 3:58 AM Changeset in webkit [260815] by
-
- 2 edits in trunk/Source/WebCore
[EME][CDMProxy] Default initialize m_numDecryptorsWaitingForKey member
https://bugs.webkit.org/show_bug.cgi?id=210970
Reviewed by Xabier Rodriguez-Calvar.
This was causing non-deterministic reads of the
m_numDecryptorsWaitingForKey member. Sometimes a waiting for key
event would fail to fire and cause test failures. I thought
std::atomic<int> would default initialize to zero, but after
spec-diving I realise now I was wrong about that.
Test: encrypted-media/clearkey-mp4-waiting-for-a-key.https.html
- platform/encryptedmedia/CDMProxy.h:
- 3:08 AM Changeset in webkit [260814] by
-
- 7 edits2 adds in trunk
RTCPeerConnection should not remove its created remote MediaStream objects until getting close
https://bugs.webkit.org/show_bug.cgi?id=211070
Reviewed by Alex Christensen.
Source/WebCore:
Remove no longer needed code.
This aligns with the spec and Firefox implementation.
Test: webrtc/direction-change.html
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::transceiverBackendFromSender):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
LayoutTests:
- webrtc/direction-change-expected.txt: Added.
- webrtc/direction-change.html: Added.
- webrtc/routines.js:
- webrtc/video-setDirection-expected.txt:
- webrtc/video-setDirection.html:
- 2:57 AM Changeset in webkit [260813] by
-
- 2 edits in trunk/Source/WebCore
Ensure remote track event gets unmuted after the track event is fired
https://bugs.webkit.org/show_bug.cgi?id=211071
Reviewed by Alex Christensen.
This code was made obsolete by the setMuted(false) call done just after firing the track event.
Given the setMuted(false) in addPendingTrackEvent was done asynchronously and was triggering firing the muted event asynchronously,
this change should not be observable from JS.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addPendingTrackEvent):
- 2:11 AM Changeset in webkit [260812] by
-
- 5 edits in trunk/Source/WebCore
Make HistoryController an inner class of FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=211090
Patch by Rob Buis <rbuis@igalia.com> on 2020-04-28
Reviewed by Darin Adler.
Make HistoryController an inner class of FrameLoader, this allows
us to move some methods only used by HistoryController out of the
FrameLoader public API.
- loader/FrameLoader.h:
- loader/HistoryController.cpp:
- loader/HistoryController.h:
Apr 27, 2020:
- 11:59 PM Changeset in webkit [260811] by
-
- 2 edits in trunk/Tools
[GTK][WebInspector] platformSave broken when running within the Flatpak runtime
https://bugs.webkit.org/show_bug.cgi?id=209473
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.
- flatpak/flatpakutils.py:
(WebkitFlatpak.run_in_sandbox): White-list the user document
folder into the sandbox. This seems needed by the file-chooser
popup, somehow.
- 11:41 PM Changeset in webkit [260810] by
-
- 10 edits1 add in trunk
[JSC] Throw OutOfMemoryError instead of RangeError if BigInt is too big
https://bugs.webkit.org/show_bug.cgi?id=211111
Reviewed by Saam Barati.
JSTests:
- stress/big-int-constructor-oom.js:
(catch):
- stress/big-int-left-shift-range-error.js:
(assertThrowRangeError):
- stress/big-int-out-of-memory-tests.js:
(catch):
- stress/bigint-exponential-oom.js: Added.
(shouldThrow):
- stress/bigint-int32-min-shift.js:
(shouldThrow):
Source/JavaScriptCore:
Currently, we are throwing a RangeError if we detect that JSBigInt becomes too large. But this is not consistent with our JSString's policy.
We should throw OutOfMemoryError in this case. This also makes DFG simple since DFG allows throwing OutOfMemoryError in any places which node
is even removed.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- runtime/ExceptionHelpers.cpp:
(JSC::throwOutOfMemoryError):
- runtime/ExceptionHelpers.h:
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::tryCreateWithLength):
(JSC::JSBigInt::exponentiateHeap):
(JSC::JSBigInt::leftShiftByAbsolute):
(JSC::JSBigInt::allocateFor):
- 11:24 PM Changeset in webkit [260809] by
-
- 8 edits in trunk/Source/JavaScriptCore
BigInt math runtime shouldn't convert BigInt32 input operands to a heap cell when doing math
https://bugs.webkit.org/show_bug.cgi?id=210978
Reviewed by Yusuke Suzuki.
This patch adds support in the runtime for doing alomst all BigInt math
operations on the inputs either being Int32, HeapBigInt, or a mixing
of both. Before, if we detected a binary operation on an Int32 and a
HeapBigInt, this would lead us to convert the Int32 operand into a HeapBigInt.
This is especially bad because we'd repeat this for all math ops. For example,
if x is a BigInt32, and all rhs are a HeapBigInt, we'd repeatedly convert x
to a HeapBigInt for each operation:
`
x + y
x * y
x - y
x >> y
x << y
etc
`
To teach the runtime how to operate both over a BigInt32 and a HeapBigInt, I
templatized the runtime math operations to work both over BigInt32 and
HeapBigInt wrapper classes that expose the same interface.
This is a ~28% speedup on microbenchmarks/sunspider-sha1-big-int.js
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compare):
- jit/JITOperations.cpp:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBigInt.cpp:
(JSC::HeapBigIntImpl::HeapBigIntImpl):
(JSC::HeapBigIntImpl::isZero):
(JSC::HeapBigIntImpl::sign):
(JSC::HeapBigIntImpl::length):
(JSC::HeapBigIntImpl::digit):
(JSC::HeapBigIntImpl::toHeapBigInt):
(JSC::Int32BigIntImpl::Int32BigIntImpl):
(JSC::Int32BigIntImpl::isZero):
(JSC::Int32BigIntImpl::sign):
(JSC::Int32BigIntImpl::length):
(JSC::Int32BigIntImpl::digit):
(JSC::Int32BigIntImpl::toHeapBigInt):
(JSC::JSBigInt::ImplResult::ImplResult):
(JSC::tryConvertToBigInt32):
(JSC::JSBigInt::inplaceMultiplyAdd):
(JSC::JSBigInt::exponentiateImpl):
(JSC::JSBigInt::exponentiate):
(JSC::JSBigInt::multiplyImpl):
(JSC::JSBigInt::multiply):
(JSC::JSBigInt::divideImpl):
(JSC::JSBigInt::divide):
(JSC::JSBigInt::copy):
(JSC::JSBigInt::unaryMinusImpl):
(JSC::JSBigInt::unaryMinus):
(JSC::JSBigInt::remainderImpl):
(JSC::JSBigInt::remainder):
(JSC::JSBigInt::incImpl):
(JSC::JSBigInt::inc):
(JSC::JSBigInt::decImpl):
(JSC::JSBigInt::dec):
(JSC::JSBigInt::addImpl):
(JSC::JSBigInt::add):
(JSC::JSBigInt::subImpl):
(JSC::JSBigInt::sub):
(JSC::JSBigInt::bitwiseAndImpl):
(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::bitwiseOrImpl):
(JSC::JSBigInt::bitwiseOr):
(JSC::JSBigInt::bitwiseXorImpl):
(JSC::JSBigInt::bitwiseXor):
(JSC::JSBigInt::leftShiftImpl):
(JSC::JSBigInt::leftShift):
(JSC::JSBigInt::leftShiftSlow):
(JSC::JSBigInt::signedRightShiftImpl):
(JSC::JSBigInt::signedRightShift):
(JSC::JSBigInt::bitwiseNotImpl):
(JSC::JSBigInt::bitwiseNot):
(JSC::JSBigInt::internalMultiplyAdd):
(JSC::JSBigInt::multiplyAccumulate):
(JSC::JSBigInt::absoluteCompare):
(JSC::JSBigInt::compareImpl):
(JSC::JSBigInt::compare):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::absoluteDivWithDigitDivisor):
(JSC::JSBigInt::absoluteDivWithBigIntDivisor):
(JSC::JSBigInt::absoluteLeftShiftAlwaysCopy):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteXor):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):
(JSC::JSBigInt::leftShiftByAbsolute):
(JSC::JSBigInt::rightShiftByAbsolute):
(JSC::JSBigInt::rightShiftByMaximum):
(JSC::JSBigInt::toStringGeneric):
(JSC::JSBigInt::toShiftAmount):
(JSC::JSBigInt::exponentiateHeap): Deleted.
(JSC::JSBigInt::multiplyHeap): Deleted.
(JSC::JSBigInt::divideHeap): Deleted.
(JSC::JSBigInt::unaryMinusHeap): Deleted.
(JSC::JSBigInt::remainderHeap): Deleted.
(JSC::JSBigInt::incHeap): Deleted.
(JSC::JSBigInt::decHeap): Deleted.
(JSC::JSBigInt::addHeap): Deleted.
(JSC::JSBigInt::subHeap): Deleted.
(JSC::JSBigInt::bitwiseAndHeap): Deleted.
(JSC::JSBigInt::bitwiseOrHeap): Deleted.
(JSC::JSBigInt::bitwiseXorHeap): Deleted.
(JSC::JSBigInt::leftShiftHeap): Deleted.
(JSC::JSBigInt::signedRightShiftHeap): Deleted.
(JSC::JSBigInt::bitwiseNotHeap): Deleted.
(JSC::JSBigInt::compareToInt32): Deleted.
- runtime/JSBigInt.h:
- runtime/Operations.cpp:
(JSC::jsAddSlowCase):
- runtime/Operations.h:
(JSC::compareBigInt):
(JSC::compareBigInt32ToOtherPrimitive):
(JSC::arithmeticBinaryOp):
(JSC::jsSub):
(JSC::jsMul):
(JSC::jsDiv):
(JSC::jsRemainder):
(JSC::jsPow):
(JSC::jsInc):
(JSC::jsDec):
(JSC::jsBitwiseNot):
(JSC::shift):
(JSC::jsLShift):
(JSC::jsRShift):
(JSC::bitwiseBinaryOp):
(JSC::jsBitwiseAnd):
(JSC::jsBitwiseOr):
(JSC::jsBitwiseXor):
- 11:22 PM Changeset in webkit [260808] by
-
- 8 edits2 adds in trunk
Do correct clipping of composited replaced elements with border-radius
https://bugs.webkit.org/show_bug.cgi?id=211114
Reviewed by Zalan Bujtas.
Source/WebCore:
For replaced elements with composited content (video, WebGL), RenderLayerBacking
incorrectly used the rounded inner border rect to clip the contents. This doesn't match
painted replaced elements, which clip to the inside of the padding box.
Fix by implementing RenderReplaced::roundedContentBoxRect() and calling it from compositing
code. Also add a helper to get the rounded border box rect, and call it in various places.
Test: compositing/clipping/border-radius-on-webgl.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::roundedBorderBoxRect const):
- rendering/RenderBox.h:
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::RenderLayerBacking::updateConfiguration):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::updateContentsRects):
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::backgroundRectForBox):
- rendering/RenderLayerBacking.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::roundedContentBoxRect const):
- rendering/RenderReplaced.h:
LayoutTests:
This test clips out everything but the rounded padding area. None of the red
canvas should show.
- compositing/clipping/border-radius-on-webgl-expected.html: Added.
- compositing/clipping/border-radius-on-webgl.html: Added.
- 7:47 PM Changeset in webkit [260807] by
-
- 6 edits in trunk
Web Inspector: Storage: can see third-party cookies
https://bugs.webkit.org/show_bug.cgi?id=211092
<rdar://problem/62469078>
Reviewed by Chris Dumez.
Source/WebKit:
Test: http/tests/inspector/page/get-cookies.html
After r259649, Web Inspector no longer incorrectly bails when attempting to get cookies if
the last resource loaded by a given frame does not have cookie access. We also need to check
whether the resource we're attempting to get cookies for is first-party or third-party so as
to reflect the current cookie policy.
- WebProcess/WebPage/WebCookieJar.cpp:
(WebKit::shouldBlockCookies):
LayoutTests:
- http/tests/inspector/page/get-cookies.html:
- http/tests/inspector/page/get-cookies-expected.txt:
- http/tests/inspector/page/resources/set-cookie.php:
- 6:35 PM Changeset in webkit [260806] by
-
- 3 edits in trunk/JSTests
stress/generator-containing-for-of-on-map.js and stress/generator-containing-for-of-on-set.js timing out on debug JSC bot
https://bugs.webkit.org/show_bug.cgi?id=211095
Reviewed by Yusuke Suzuki.
Let's try making these tests shorter. Eager compilation should still be interesting with the shorter iterations.
- stress/generator-containing-for-of-on-map.js:
- stress/generator-containing-for-of-on-set.js:
- 6:33 PM Changeset in webkit [260805] by
-
- 8 edits1 add in trunk
[JSC] >>> should call ToNumeric
https://bugs.webkit.org/show_bug.cgi?id=211065
Reviewed by Ross Kirsling.
JSTests:
- stress/bigint-urshift.js: Added.
(shouldBe):
(shouldThrow):
- test262/expectations.yaml:
Source/JavaScriptCore:
While BigInt does not support >>> operator, >>> operator should call ToNumeric (in this case, toBigIntOrInt32) for both before throwing an error.
We call toBigIntOrInt32 for both operands, and throw an error. And after that, casting int32_t to uint32_t to perform >>> operator. This is correct
since the only difference between toUint32 and toInt32 is casting int32_t result to uint32_t.
- dfg/DFGOperations.cpp:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/Operations.h:
(JSC::shift):
(JSC::jsURShift):
- 6:08 PM Changeset in webkit [260804] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening timing out host invalid values test
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:51 PM Changeset in webkit [260803] by
-
- 9 edits in trunk/Source/JavaScriptCore
OSR Exit compiler should know and print the exiting DFG node's index
https://bugs.webkit.org/show_bug.cgi?id=210998
Reviewed by Mark Lam.
The only interesting thing here is that we set the node to index 0 if there is no node.
AFAICT, we only don't have a node when we are checking arguments.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::operationCompileOSRExit):
- dfg/DFGOSRExitBase.h:
(JSC::DFG::OSRExitBase::OSRExitBase):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::blessSpeculation):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
- ftl/FTLOSRExit.h:
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- 5:35 PM Changeset in webkit [260802] by
-
- 3 edits in trunk/Source/JavaScriptCore
compilePeepHoleBigInt32Branch needs to handle all conditions
https://bugs.webkit.org/show_bug.cgi?id=211096
<rdar://problem/62469971>
Reviewed by Yusuke Suzuki.
We were falling through to the generic path for all conditions which
weren't Equal/NotEqual. The generic path does not do speculation, so
it was leading to potential miscompiles because we omitted a type check.
Defining compilePeepHoleBigInt32Branch for other conditions is trivial,
so this patch just implements that.
This failure is caught by microbenchmarks/sunspider-sha1-big-int.js
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compilePeepHoleBranch):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compilePeepHoleBigInt32Branch):
- 5:29 PM Changeset in webkit [260801] by
-
- 2 edits in trunk/Source/WebKit
Follow-up change after r260798.
Allow iOS to consume the 'com.apple.cfprefsd.agent' endpoint if issued by the UIProcess.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 5:22 PM Changeset in webkit [260800] by
-
- 14 edits2 adds in trunk
Timestamps should be the same for all rendering update steps
https://bugs.webkit.org/show_bug.cgi?id=207153
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-27
Reviewed by Simon Fraser.
Source/WebCore:
The HTML 5 event loop sepcs states that timestamps should be the same for
all rendering update steps.
Specs link (step 9):
https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-processing-model
This patch also fixes some issues in IntersectionObserver.
Test: intersection-observer/intersection-observer-callback-timestamp.html
- dom/Document.cpp:
(WebCore::Document::updateIntersectionObservations):
(WebCore::Document::notifyIntersectionObserversTimerFired): Deleted.
- dom/Document.h:
-- Handle the case when two floats are areEssentiallyEqual().
-- Execute the IntersectionObserver immediately and do not wait until the
next CFRunLoop event since this does not implement the specs.
- page/DOMWindow.cpp:
(WebCore::DOMWindow::freezeNowTimestamp):
(WebCore::DOMWindow::unfreezeNowTimestamp):
(WebCore::DOMWindow::frozenNowTimestamp const):
- page/DOMWindow.h:
Provide a frozen now() timestamp in seconds to be used internally only.
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::nowTimestamp const):
Use the frozenNowTimestamp().
- page/Page.cpp:
(WebCore::Page::updateRendering):
Freeze the timestamps while serving the rendering update steps.
LayoutTests:
- animations/animation-callback-timestamp-expected.txt:
- animations/animation-callback-timestamp.html:
Ensure the rAF callback timestamp is less than Performance.now().
- animations/animation-multiple-callbacks-timestamp-expected.txt:
- animations/animation-multiple-callbacks-timestamp.html:
Ensure the rAF callbacks receive the same timestamps.
- intersection-observer/intersection-observer-callback-timestamp-expected.txt: Added.
- intersection-observer/intersection-observer-callback-timestamp.html: Added.
A new test to ensure the IntersectionObsever and the rAF callbacks receive the same timestamps.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 5:16 PM Changeset in webkit [260799] by
-
- 9 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r260772.
This commit caused tests to start failing internally.
Reverted changeset:
"OSR Exit compiler should know and print the exiting DFG
node's index"
https://bugs.webkit.org/show_bug.cgi?id=210998
https://trac.webkit.org/changeset/260772
- 5:12 PM Changeset in webkit [260798] by
-
- 9 edits in trunk/Source/WebKit
[MacCatalyst] Dynamic access to accessibility services is incomplete
https://bugs.webkit.org/show_bug.cgi?id=211100
<rdar://problem/62133491>
Reviewed by Darin Adler.
Testing of MacCatalyst-based apps shows that using dynamic sandbox extensions to support accessibility
features is incomplete. In addition to the 'com.apple.cfprefsd.daemon' process needed on macOS and iOS,
we also need access to 'com.apple.cfprefsd.agent'.
This can only be tested manually in a MacCatlyst build, though existing accessibility tests will
confirm no regressions in iOS and macOS.
The changes are as follows:
- Change WebProcessCreationParameters::preferencesExtensionHandle to a handle array.
- Register (and unregister) for the accessibility enabled notification in MacCatalyst.
- Open a connection 'com.apple.cfprefsd.agent' (in addition to the existing 'com.apple.cfprefsd.daemon') in MacCatalyst builds.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::unblockPreferenceServiceIfNeeded):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::unblockPreferenceService):
- WebProcess/com.apple.WebProcess.sb.in:
- 4:39 PM Changeset in webkit [260797] by
-
- 2 edits in trunk/LayoutTests
[ macOS/iOS wk2 Debug ] webrtc/datachannel/multiple-connections.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=209878
Unreviewed test gardening.
- platform/ios/TestExpectations: Mark the test as slow for iOS, too.
- 4:32 PM Changeset in webkit [260796] by
-
- 2 edits in trunk/Tools
results.webkit.org: A suite running multiple times in a commit for a single configuration may pre-empt processing
https://bugs.webkit.org/show_bug.cgi?id=211094
<rdar://problem/62470170>
Reviewed by Aakash Jain.
Hash collision in processing key when results only differ by upload time.
- resultsdbpy/resultsdbpy/model/upload_context.py:
(UploadContext.process_test_results): Include upload timestamp in the hashed key.
- 4:06 PM Changeset in webkit [260795] by
-
- 6 edits in branches/safari-609.2.9.0-branch/Source/WebKit
Apply patch. rdar://problem/62377357
- 3:59 PM Changeset in webkit [260794] by
-
- 8 edits in branches/safari-609.2.9.0-branch/Source
Versioning.
- 3:50 PM Changeset in webkit [260793] by
-
- 6 edits in trunk/Source/WebKit
Prevent WebPasteboardProxy IPC messages from unconditionally requesting pasteboard types
https://bugs.webkit.org/show_bug.cgi?id=211061
<rdar://problem/62088185>
Reviewed by Tim Horton.
Tighten IPC message handling in WebPasteboardProxy, such that a web content process is unable to arbitrarily
request pasteboard types (and other metadata that depends on pasteboard types, such as the number of files
on the pasteboard).
This extends the mechanisms added in r259151 by distinguishing between allowing the web process to request
type information from the pasteboard, and allowing the web process to request both types and data. In the
case of drag and drop, the former is required by the web process from the moment the drag session enters
the platform web view; however, the latter is required only after a drop is performed.
We utilize this new check,
canAccessPasteboardTypes
, in seven existing IPC message handlers that either
directly return the list of types, or return metadata from which pasteboard types may be deduced.
See below for more details; covered by existing API and layout tests.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::grantAccessToCurrentTypes):
(WebKit::WebPasteboardProxy::grantAccessToCurrentData):
Split the pasteboard access check into two helpers: one to determine whether the web process is allowed to
request pasteboard types, and another to determine whether the web process is allowed to request pasteboard
data (in addition to types).
(WebKit::WebPasteboardProxy::grantAccess):
(WebKit::WebPasteboardProxy::revokeAccess):
Refactor these to use
PasteboardAccessInformation
; see below for more details.
(WebKit::WebPasteboardProxy::canAccessPasteboardTypes const):
Return true as long as the accessType is nonnull; this is because either
Types
orTypesAndData
is
sufficient for access to pasteboard types.
(WebKit::WebPasteboardProxy::canAccessPasteboardData const):
(WebKit::WebPasteboardProxy::accessType const):
Add a private helper method to return the access type (
nullopt
for no access,PasteboardAccessType::Types
for access to types only, andPasteboardAccessType::TypesAndData
for access to data in addition to types)
for the given named pasteboard.
(WebKit::WebPasteboardProxy::didModifyContentsOfPasteboard):
Refactor this to use
PasteboardAccessInformation
.
(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
Adopt canAccessPasteboardTypes here, and update the FIXME to state that we should really be using
canAccessPasteboardData instead. This is blocked on refactoring some more drag and drop code, such
that accessing the list of file names on the pasteboard isn't necessary before the drop is handled.
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
Adopt the canAccessPasteboardTypes check in various places.
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::grantAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::revokeAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::accessType const):
Introduce PasteboardAccessInformation, which replaces the current
std::pair<uint64_t, WeakHashSet<WebProcessProxy>>
that is used to represent which web processes are allowed to access certain changeCounts, for a given pasteboard name.
Instead of maintaining a changeCount and set of processes, we now maintain a changeCount and list of (process, access
type) pairs. Each item in this list tracks whether the process that has been granted access should be allowed to read
only pasteboard types, or both types and data.
(WebKit::WebPasteboardProxy::revokeAccessToAllData): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::dragEntered):
(WebKit::WebPageProxy::dragUpdated):
When updating the drag session (i.e. as the user drags over the web view), ensure that the web content
process is able to request pasteboard types.
- UIProcess/WebPasteboardProxy.cpp:
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
Update these method signatures.
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
Mark more IPC messages as
WantsConnection
so that we can use theIPC::Connection
argument in the message handlers.
- 3:42 PM Changeset in webkit [260792] by
-
- 2 edits in trunk/LayoutTests
fast/events/wheel-event-outside-body.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=211098
Reviewed by Tim Horton.
Remove the 100ms watchdog timer. We'll just let the test time out if it fails.
- fast/events/wheel-event-outside-body.html:
- 3:33 PM Changeset in webkit [260791] by
-
- 6 edits in trunk/Source/WebKit
Stop waiting for a BinarySemaphore on the main thread in the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=211080
<rdar://problem/62377357>
Reviewed by Darin Adler and Chris Dumez.
There was an out-of-date comment suggesting we needed to use a semaphore, but we've since added these in the destructor:
RELEASE_ASSERT(!m_statisticsStore);
RELEASE_ASSERT(!m_persistentStorage);
This indicates that flushAndDestroyPersistentStore is called before the destructor, at which time it is safe to add a reference to keep it alive.
WebResourceLoadStatisticsStore is also marked as WTF::DestructionThread::Main so this should do everything we need.
We also flush these databases to disk before closing like we did cookies.
In order to keep tests working as they are, I needed to make recreateResourceLoadStatisticStore have a CompletionHandler and have all
WebResourceLoadStatisticsStores share the same queue to serialize background tasks between WebResourceLoadStatisticsStores with and without database stores
sequentially to avoid opening a SQLiteDatabase before the previous WebResourceLoadStatisticsStore had closed it.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::sharedStatisticsQueue):
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::didDestroyNetworkSession):
(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate): Deleted.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::destroyResourceLoadStatistics):
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
(WebKit::NetworkSession::recreateResourceLoadStatisticStore):
- NetworkProcess/NetworkSession.h:
- 3:27 PM Changeset in webkit [260790] by
-
- 2 edits in trunk/Source/WebKit
Fix tests after r260764
https://bugs.webkit.org/show_bug.cgi?id=211093
Some tests were asserting in takeAsyncReplyHandler.
Calling addAsyncReplyHandler before sending the message fixes it.
- UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::sendMessage):
- 3:08 PM Changeset in webkit [260789] by
-
- 2 edits in trunk/Source/WebCore
getShaderPrecisionFormat returns the wrong values
https://bugs.webkit.org/show_bug.cgi?id=211013
<rdar://problem/62378056>
Reviewed by Darin Adler.
Gregg pointed out that our code hardcodes values for
getShaderPrecisionFormat. The fix is simply to call into
the underlying GL function.
Covered by the existing test: webgl/1.0.3/conformance/misc/shader-precision-format.html
However, that just tests minimum values. Devices have different
actual results.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::getShaderPrecisionFormat):
- 2:57 PM Changeset in webkit [260788] by
-
- 6 edits in trunk/Source/WebCore
Rename scrollableAreaForScrollLayerID to scrollableAreaForScrollingNodeID
https://bugs.webkit.org/show_bug.cgi?id=211091
Reviewed by Myles C. Maxfield.
The argument to scrollableAreaForScrollLayerID() is a ScrollingNodeID, not a layerID.
- page/FrameView.cpp:
(WebCore::FrameView::scrollableAreaForScrollingNodeID const):
(WebCore::FrameView::scrollableAreaForScrollLayerID const): Deleted.
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
(WebCore::AsyncScrollingCoordinator::setActiveScrollSnapIndices):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::scrollableAreaForScrollingNodeID const):
(WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID const): Deleted.
- rendering/RenderLayerCompositor.h:
- 2:48 PM Changeset in webkit [260787] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WK2] Drop "com.apple.WebKit.DatabaseActivity" UIKit background activity
https://bugs.webkit.org/show_bug.cgi?id=211084
Reviewed by Geoffrey Garen.
Drop "com.apple.WebKit.DatabaseActivity" UIKit background activity in the UIProcess now that local storage
has been moved to the network process.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setUpSQLiteDatabaseTrackerClient]): Deleted.
- 2:37 PM Changeset in webkit [260786] by
-
- 2 edits in trunk/Tools
Add some debug output for run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=210999
<rdar://problem/61353156>
This will help to address where the script get stucked
Reviewed by Jonathan Bedard.
- Scripts/run-jsc-stress-tests:
- 2:32 PM Changeset in webkit [260785] by
-
- 7 edits in trunk/Source
[Cocoa] stop using out arguments for document attributes when converting to attributed strings
https://bugs.webkit.org/show_bug.cgi?id=211048
Unreviewed partial revert of r260739 to remove unexpected logging that broke Catalina-Release-WK2-Perf tests.
Source/WebCore:
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::policyProperties):
- platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::siteForCookies):
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::updateTaskWithFirstPartyForSameSiteCookies):
Source/WTF:
- wtf/cocoa/URLCocoa.mm:
(WTF::URL::createCFURL const):
- 2:14 PM Changeset in webkit [260784] by
-
- 5 edits in trunk
[JSC] Add $vm.assertEnabled() to suppress Debug crash expected tests in release+assert build
https://bugs.webkit.org/show_bug.cgi?id=211089
Reviewed by Keith Miller.
JSTests:
We have ASSERT which only fires when DOM object is wrongly implemented to catch wrong ones.
We are using ASSERT in JSC side since we don't know all the DOM objects are correctly implemented.
If it is not correctly implemented, in Release build, JSC is returning sub-optimal but right results.
But in Debug build, we can catch the wrong ones, which allows us to fix the wrong things while avoiding
catastrophic crashes in release build.
However, the test is assuming that ASSERT is not enabled if it is not Debug build. Release & Debug builds
work, but Release+Assert does not meet this assumption.
So, skip this based on
$vm.assertEnabled()
.
- stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
(vm.assertEnabled.putter):
(vm.assertEnabled):
(putter): Deleted.
(not_string.toString): Deleted.
- stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten.js:
(vm.assertEnabled):
(not_string.toString): Deleted.
Source/JavaScriptCore:
Expose ASSERT_ENABLED condition to the shell to control crash expected tests.
- tools/JSDollarVM.cpp:
(JSC::functionAssertEnabled):
(JSC::JSDollarVM::finishCreation):
- 2:12 PM Changeset in webkit [260783] by
-
- 4 edits in trunk
Text manipulation should not aggregate text from different navigation anchor elements
https://bugs.webkit.org/show_bug.cgi?id=211081
<rdar://problem/59553658>
Reviewed by Megan Gardner.
Source/WebCore:
Tweak the item boundary heuristic in
TextManipulationController::observeParagraphs
to separate text in
links and list items under navigation elements (either nav elements, or elements with the "navigation"
accessibility role) into separate paragraphs.
Also, extend the item boundary rule for button elements to apply to elements with the "button"
accessibility role as well.
Test: TextManipulation.StartTextManipulationTreatsInlineBlockLinksAndButtonsAsParagraphs
TextManipulation.StartTextManipulationTreatsLinksInNavigationElementsAsParagraphs
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::observeParagraphs):
Tools:
Add a new API test, and augment an existing test.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
- 2:11 PM Changeset in webkit [260782] by
-
- 9 edits2 adds in trunk/Tools
results.webkit.og: Add investigation endpoint
https://bugs.webkit.org/show_bug.cgi?id=209562
Rubber-stamped by Aakash Jain.
Add an endpoint that allows users to list all test failures given some criteria, and
provide a partial list of failures in the investigation drawer.
- resultsdbpy/resultsdbpy/view/static/js/commit.js:
(CommitTable): Link commit to investigation endpoint.
(_CommitBank.prototype.latest): Populate the CommitBank with the last x commits.
(_CommitBank.prototype.commitsDuringUuid): Renamed commitsDuring.
(_CommitBank.prototype. commitsDuring): Accept a range Uuids instead of a single Uuid.
(_CommitBank.prototype._load): Load a single commit if the before and after uuid match.
- resultsdbpy/resultsdbpy/view/static/js/common.js:
(paramsToQuery): False should be added as a parameter, if provided.
(percentage): Moved from investigate.js.
(elapsedTime): Ditto.
- resultsdbpy/resultsdbpy/view/static/js/configuration.js:
(Configuration.combine): Allow configurations to be combined to a single, more general, configuration.
- resultsdbpy/resultsdbpy/view/static/js/failures.js: Added.
(Failures.prototype.fromEndpoint): Construct a failure object from the failures endpoint.
(Failures.combine): Combine two failure objects together.
(Failures):
(Failures.prototype.toParams): Convert object to parameters for other results database queries.
- resultsdbpy/resultsdbpy/view/static/js/investigate.js:
(elapsed): Used shared time elapsed function.
(percentage): Moved to common.js.
(prioritizedFailures): Return a div with a truncated list of tests which failed.
(resultsForData): Include some number of prioritized test failures based on how many bubbles are
already displayed.
(_InvestigateDrawer.prototype.expand): Dispatch failure request.
(_InvestigateDrawer.prototype.dispatch): Start request to failures endpoint.
- resultsdbpy/resultsdbpy/view/static/js/timeline.js:
(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Add link to investigation endpoint.
(Legend): When search parameters change, we need to re-dispatch failure requests.
- resultsdbpy/resultsdbpy/view/suite_view.py:
(SuiteView._suites_for_investigation): Filter parameters for investigation endpoint.
(SuiteView.investigate): Return investigation endpoint html template.
- resultsdbpy/resultsdbpy/view/templates/investigate.html: Added.
(willFilterExpected): Check if the query parameters indicate that expected failures are to be ignored.
(commitsForRange): Return a list of commits for a uuid range.
(SuiteFailuresView.constructor): Abstraction to hold the investigation data for a single suite.
(SuiteFailuresView.reload): Dispatch requests to the results and failures endpoint to populate
investigation data.
(SuiteFailuresView.select): By default, failures for different configurations are collapsed into a single
view. Allows the user to iterate through each configuration that comprises the view.
(SuiteFailuresView.toString):
(populateRanges): Either convert the provided arguments to a range to search for failures and results
in, or use the most recent commit.
(reload): Force all suite views to re-dispatch results and failures requests.
- resultsdbpy/resultsdbpy/view/templates/suite_results.html: Add space between suite content and
top bar.
- resultsdbpy/resultsdbpy/view/view_routes.py:
(ViewRoutes.init): Add investigate endpoint.
- 2:04 PM Changeset in webkit [260781] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION (r219050): Remove more code only needed for building with OS X Yosemite
<https://webkit.org/b/211088>
<rdar://problem/62452487>
Reviewed by Chris Dumez.
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::Connection::receiveSourceEventHandler):
- Platform/mac/MachUtilities.cpp:
(setMachPortQueueLength):
(machExceptionPort): Deleted.
(setMachExceptionPort): Deleted.
- Platform/mac/MachUtilities.h:
- Delete unused code.
- 1:56 PM Changeset in webkit [260780] by
-
- 4 edits in trunk/LayoutTests
[ iOS ] REGRESSION: animations/change-keyframes-name.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211079
<rdar://problem/61486093>
Reviewed by Simon Fraser.
Rewrite this test to use the new AnimationTest helper that will non-flakily check animated values while an animation is running.
- animations/change-keyframes-name-expected.txt:
- animations/change-keyframes-name.html:
- animations/resources/animation-test.js:
(AnimationTest.prototype.async recordValueAfterRunningFor):
- 1:54 PM Changeset in webkit [260779] by
-
- 1 copy in tags/Safari-610.1.11.3
Tag Safari-610.1.11.3.
- 1:54 PM Changeset in webkit [260778] by
-
- 1 delete in tags/Safari-610.1.11.3
Delete tag.
- 1:53 PM Changeset in webkit [260777] by
-
- 5 edits in trunk/Source
Clean up some useless includes of CSSAnimationController.h
https://bugs.webkit.org/show_bug.cgi?id=211066
Reviewed by Antti Koivisto.
Source/WebCore:
These files don't actually use any of the CSSAnimationController APIs.
- page/ios/FrameIOS.mm:
- rendering/RenderObject.cpp:
Source/WebKitLegacy/mac:
This file doesn't actually use any of the CSSAnimationController APIs.
- WebView/WebFrame.mm:
- 1:50 PM Changeset in webkit [260776] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Remove allowsNewCSSAnimationsWhileSuspended and setAllowsNewCSSAnimationsWhileSuspended WebView SPIs
https://bugs.webkit.org/show_bug.cgi?id=211067
Reviewed by Tim Horton.
There are no known clients for these SPIs.
- WebView/WebView.mm:
- WebView/WebViewPrivate.h:
- 1:50 PM Changeset in webkit [260775] by
-
- 2 edits in branches/safari-610.1.11-branch/Source/WebKit
Cherry-pick r260763. rdar://problem/62467013
Unreviewed sandbox compile fix.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:47 PM Changeset in webkit [260774] by
-
- 23 edits in trunk/Source
Rename CSSAnimationController accessors from animation() to legacyAnimation()
https://bugs.webkit.org/show_bug.cgi?id=211082
Reviewed by Simon Fraser.
Source/WebCore:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::computeRenderStyleForProperty):
- dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::prepareForDestruction):
(WebCore::Document::implicitClose):
(WebCore::Document::resume):
- dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
- dom/PseudoElement.cpp:
(WebCore::PseudoElement::clearHostElement):
- history/CachedFrame.cpp:
(WebCore::CachedFrame::destroy):
- page/Frame.cpp:
(WebCore::Frame::clearTimers):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
- page/Frame.h:
- page/FrameView.cpp:
(WebCore::FrameView::didDestroyRenderTree):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layout):
- page/Page.cpp:
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
- page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::updateThrottlingState):
(WebCore::CSSAnimationControllerPrivate::suspendAnimations):
(WebCore::CSSAnimationControllerPrivate::resumeAnimations):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::currentTransform const):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::notifyAnimationStarted):
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation const):
(WebCore::RenderLayerCompositor::isRunningTransformAnimation const):
- rendering/RenderObject.h:
(WebCore::RenderObject::legacyAnimation const):
(WebCore::RenderObject::animation const): Deleted.
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::tearDownRenderers):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
- testing/Internals.cpp:
(WebCore::Internals::numberOfActiveAnimations const):
(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::animationsInterval const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):
(WebCore::Internals::pauseAnimationAtTimeOnElement):
(WebCore::Internals::pauseAnimationAtTimeOnPseudoElement):
(WebCore::Internals::pauseTransitionAtTimeOnElement):
(WebCore::Internals::pauseTransitionAtTimeOnPseudoElement):
Source/WebKitLegacy/mac:
- WebView/WebView.mm:
Source/WebKitLegacy/win:
- WebFrame.cpp:
(WebFrame::resumeAnimations):
(WebFrame::suspendAnimations):
(WebFrame::pauseAnimation):
(WebFrame::pauseTransition):
(WebFrame::numberOfActiveAnimations):
- 1:24 PM Changeset in webkit [260773] by
-
- 5 edits2 adds in trunk
Temporarily skip GL_DEPTH_COMPONENT32_OES requirement for depth textures on iOS
https://bugs.webkit.org/show_bug.cgi?id=211055
<rdar://problem/62410499>
Reviewed by Darin Adler.
Source/ThirdParty/ANGLE:
ANGLE requires GL_DEPTH_COMPONENT32_OES be available in order to expose the
depth texture extension. However, this format is not supported on iOS.
Temporarily remove this restriction while investigating other bugs.
This also allows us to see the failing results in
fast/canvas/webgl/webgl-depth-texture.html
webgl/1.0.3/conformance/extensions/webgl-depth-texture.html
- src/libANGLE/Caps.cpp:
(gl::DetermineDepthTextureANGLESupport):
(gl::DetermineDepthTextureOESSupport):
LayoutTests:
Unskip the fast/canvas/webgl/webgl-depth-texture.html now that
the extension is "supported". It has failing results.
- platform/ios/TestExpectations:
- platform/ios/fast/canvas/webgl/webgl-depth-texture-expected.txt: new results.
- platform/ios/webgl/1.0.3/conformance/extensions/webgl-depth-texture-expected.txt: new results.
- 1:22 PM Changeset in webkit [260772] by
-
- 9 edits in trunk/Source/JavaScriptCore
OSR Exit compiler should know and print the exiting DFG node's index
https://bugs.webkit.org/show_bug.cgi?id=210998
Reviewed by Mark Lam.
The only interesting thing here is that we set the node to index 0 if there is no node.
AFAICT, we only don't have a node when we are checking arguments.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::OSRExit):
(JSC::DFG::operationCompileOSRExit):
- dfg/DFGOSRExitBase.h:
(JSC::DFG::OSRExitBase::OSRExitBase):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::blessSpeculation):
- ftl/FTLOSRExit.cpp:
(JSC::FTL::OSRExitDescriptor::emitOSRExit):
(JSC::FTL::OSRExitDescriptor::emitOSRExitLater):
(JSC::FTL::OSRExitDescriptor::prepareOSRExitHandle):
(JSC::FTL::OSRExit::OSRExit):
- ftl/FTLOSRExit.h:
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- 1:21 PM Changeset in webkit [260771] by
-
- 3 edits in trunk/Tools
WebKit.ResizeReversePaginatedWebView is failing (21 pages instead of 20)
https://bugs.webkit.org/show_bug.cgi?id=211001
<rdar://problem/60972357>
Reviewed by Wenson Hsieh.
- TestWebKitAPI/Tests/WebKit/ResizeReversePaginatedWebView.cpp:
- TestWebKitAPI/Tests/WebKit/lots-of-text-vertical-lr.html:
Use Ahem to keep the layout more stable.
- 1:17 PM Changeset in webkit [260770] by
-
- 1 copy in tags/Safari-610.1.11.3
Tag Safari-610.1.11.3.
- 1:01 PM Changeset in webkit [260769] by
-
- 13 edits1 delete in trunk
[Cocoa] After r258891, r255119 can be reverted
https://bugs.webkit.org/show_bug.cgi?id=211083
Source/WebCore:
<rdar://problem/60714318>
Unreviewed revert of r255119.
Copying a MIME type map from the UI process to the WebContent process on startup is not needed anymore,
since r258891 will map the Launch Services database in the WebContent process.
- platform/MIMETypeRegistry.cpp:
(WebCore::commonMimeTypesMap):
(WebCore::typesForCommonExtension):
(WebCore::overriddenMimeTypesMap): Deleted.
- platform/MIMETypeRegistry.h:
- testing/Internals.cpp:
(WebCore::Internals::mediaMIMETypeForExtension): Deleted.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Unreviewed revert of r255119.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
Unreviewed revert of r255119.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/MimeTypes.mm: Removed.
- 11:16 AM Changeset in webkit [260768] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed MacCatalyst build fix after r260739.
- UIProcess/Cocoa/TextCheckingController.mm:
(WebKit::TextCheckingController::replaceRelativeToSelection):
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
- 10:57 AM Changeset in webkit [260767] by
-
- 2 edits in trunk/LayoutTests
storage/indexeddb/value-cursor-cycle.html is flaky failing because it incorrectly thinks our JS GC is precise.
https://bugs.webkit.org/show_bug.cgi?id=210046
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:56 AM Changeset in webkit [260766] by
-
- 2 edits in trunk/Source/WebKit
Another try at fixing the ENABLE(PLATFORM_DRIVEN_TEXT_CHECKING) build
- UIProcess/Cocoa/TextCheckingController.mm: (WebKit::TextCheckingController::replaceRelativeToSelection): Convert an NSAttributedString to a WebCore::AttributedString using argument list syntax.
- 10:42 AM Changeset in webkit [260765] by
-
- 2 edits in trunk/Source/WebKit
Fix assertion after r260709
https://bugs.webkit.org/show_bug.cgi?id=211007
<rdar://problem/62457303>
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performJavaScriptURLRequest):
Not only did I spell javascript wrong, I should've used the special protocolIsJavaScript() method.
- 10:13 AM Changeset in webkit [260764] by
-
- 11 edits in trunk/Source/WebKit
Reduce use of WebPageProxy::VoidCallback
https://bugs.webkit.org/show_bug.cgi?id=210944
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-27
Reviewed by Darin Adler.
Use sendWithAsyncReply and CompletionHandler<void()> instead.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _executeEditCommand:argument:completion:]):
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::becomeFirstResponder):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setInitialFocus):
(WebKit::WebPageProxy::executeEditCommand):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::focusNextFocusedElement):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView pasteWithCompletionHandler:]):
(-[WKContentView moveByOffset:]):
(-[WKContentView _selectPositionAtPoint:stayingWithinFocusedElement:completionHandler:]):
(-[WKContentView selectPositionAtBoundary:inDirection:fromPoint:completionHandler:]):
(-[WKContentView moveSelectionAtBoundary:inDirection:completionHandler:]):
(-[WKContentView selectTextWithGranularity:atPoint:completionHandler:]):
(-[WKContentView _becomeFirstResponderWithSelectionMovingForward:completionHandler:]):
(-[WKContentView accessoryTab:]):
(-[WKContentView executeEditCommandWithCallback:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::selectTextWithGranularityAtPoint):
(WebKit::WebPageProxy::selectPositionAtBoundaryWithDirection):
(WebKit::WebPageProxy::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPageProxy::selectPositionAtPoint):
(WebKit::WebPageProxy::moveSelectionByOffset):
(WebKit::WebPageProxy::focusNextFocusedElement):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::executeEditCommandWithCallback):
(WebKit::WebPage::setInitialFocus):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::moveSelectionByOffset):
(WebKit::WebPage::selectPositionAtPoint):
(WebKit::WebPage::selectPositionAtBoundaryWithDirection):
(WebKit::WebPage::moveSelectionAtBoundaryWithDirection):
(WebKit::WebPage::selectTextWithGranularityAtPoint):
(WebKit::WebPage::focusNextFocusedElement):
- 10:05 AM Changeset in webkit [260763] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed sandbox compile fix.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 9:47 AM Changeset in webkit [260762] by
-
- 2 edits in trunk/Source/WebCore
Improve performance of commonInclusiveAncestor for deeply nested nodes
https://bugs.webkit.org/show_bug.cgi?id=211078
Reviewed by Antti Koivisto.
- dom/Node.cpp:
(WebCore::depth): Added.
(WebCore::commonInclusiveAncestor): Replaced implementation that walks the
parent chain of the second node repeatedly with one that walks the parent
chain of each node twice.
- 9:31 AM Changeset in webkit [260761] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r258730): Web Inspector: Sidebar tabs have incorrect tabIndex
https://bugs.webkit.org/show_bug.cgi?id=211072
<rdar://problem/62445067>
Reviewed by Brian Burg.
Only selected radio button should be focusable. This matches native macOS radio buttons.
- UserInterface/Views/RadioButtonNavigationItem.js:
(WI.RadioButtonNavigationItem.prototype.get tabbable):
This getter was incorrectly returning -1 or 0 instead of a boolean value.
- 9:18 AM Changeset in webkit [260760] by
-
- 5 edits in trunk
[GTK] ENABLE(OPENGL) remmants...
https://bugs.webkit.org/show_bug.cgi?id=211077
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.
ENABLE(OPENGL) was renamed to ENABLE(GRAPHICS_CONTEXT_GL) in
r254064 but not in all the code base...
.:
- Source/cmake/GStreamerDependencies.cmake:
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
- UIProcess/gtk/HardwareAccelerationManager.cpp:
(WebKit::HardwareAccelerationManager::HardwareAccelerationManager):
- 9:08 AM Changeset in webkit [260759] by
-
- 7 edits in trunk
Caret may be placed in the wrong spot for text input context that is a form control
https://bugs.webkit.org/show_bug.cgi?id=210939
<rdar://problem/61943089>
Reviewed by Darin Adler.
Source/WebCore:
Add a helper function that returns the closest editable position inside an element
for a given point (if any).
- editing/Editing.cpp:
(WebCore::closestEditablePositionInElementForAbsolutePoint): Added.
- editing/Editing.h:
Source/WebKit:
Find the closest editable position in the element for the point using the
newly introduced closestEditablePositionInElementForAbsolutePoint().
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::focusTextInputContextAndPlaceCaret):
Tools:
Add a test.
- TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:
(TestWebKitAPI::TEST):
- 9:04 AM Changeset in webkit [260758] by
-
- 2 edits in trunk/Tools
Make run-safari --ios-simulator work again
https://bugs.webkit.org/show_bug.cgi?id=211008
Reviewed by Darin Adler.
While at it, removed all direct uses of device.plist, and all use of Foundation.
- Scripts/webkitdirs.pm: Stopped exporting unused simulator related functions. New
code should be using webkitpy.
(simulatorDeviceFromJSON): Helper function for parsing simctl output.
(iOSSimulatorDevices): Use simctl instead of reading device.plist.
(createiOSSimulatorDevice): Device creation appears to be synchronous, I couldn't
find any reason for waiting and retrying.
(iosSimulatorApplicationsPath): This is part of the actual fix - runtime path built
here was incorrect; switched to one provided by simctl.
(shutDownIOSSimulatorDevice): Added an early return to avoid stderr spew.
(relaunchIOSSimulator): Another part of the actual fix: open Simulator.app before booting the
simulator to have it visible; CurrentDeviceUDID doesn't work.
(iosSimulatorDeviceByUDID): Stop using device.plist.
(runIOSWebKitAppInSimulator): Stop quitting Simulator.app, we only needed to shut down
the device.
(iOSSimulatorDevicesPath): Deleted.
(quitIOSSimulator): Deleted.
- 8:54 AM Changeset in webkit [260757] by
-
- 2 edits in trunk/Source/WebKit
Fix ENABLE(PLATFORM_DRIVEN_TEXT_CHECKING) build
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Change "class AttributedString" to "struct AttributedString".
- 8:44 AM Changeset in webkit [260756] by
-
- 2 edits in trunk/Tools
Text interaction tests should ensure view is not scroll instead of looking for a zoom change
https://bugs.webkit.org/show_bug.cgi?id=211056
Reviewed by Dean Jackson.
For the text interaction sub-tests, override the scroll view's delegate so as to track
whether a scroll occurred or not instead of looking at the zoom scale. As the tests are
written looking at the zoom scale is racy. It is simpler and deterministic to detect
whether the scroll view scrolled.
The purpose of the text interaction sub-tests are to ensure that zooming to reveal
the focused element is suppressed until the interaction completes with a call to
-_didFinishTextInteractionInTextInputContext. I added some more assertions to ensure this.
- TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:
(-[TextInteractionScrollDelegate scrollViewDidScroll:]):
(TestWebKitAPI::TEST):
- 8:30 AM Changeset in webkit [260755] by
-
- 6 edits in trunk
[GStreamer] Rework WebKitWebSrc threading
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=210284
Reviewed by Xabier Rodriguez-Calvar.
WebKitWebSrc as it is in master has a number of race conditions
leading to occasional starvation (due to cancelling the wrong request)
or data corruption (due to pushing data from a cancelled request).
The threading situation wasn't easy to follow, as it wasn't clear
access to what members should be protected by what mutex, in what
circumstances. Also, some parts of the design were also introducing
addicional complexity, such as the first request being sent from the
main thread whereas the rest were being sent from the streaming thread
or basesrc async start.
In response, this patch reworks all the locking in WebKitWebSrc to use
WTF::DataMutex. This ensures all accesses to its (now explicit)
protected members are locked. The two mutexes and condition variables
have been simplified into one, as there was no obvious need or benefit
for two of each in this case.
Requests have been numbered, which allows to safely and atomically
ignore results from cancelled requests, avoiding data corruption
races, and makes following them in debug logs much easier.
The conditions for making and cancelling requests have been simplified
to a simpler and safer model: There is at most only one active request
at anytime, flushes cancel the request, and the first create() call
always makes the new request (both at startup and after a flush).
Debug asserts and notes about the flow of operations during basesrc
seeks have been provided.
As this effort needed a review of the entire WebKitWebSrc, cleanups,
corrections and documentation comments have been provided where
appropriate.
This patch introduces no visible behavior changes, just stability
improvements.
- platform/graphics/gstreamer/GRefPtrGStreamer.h:
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(WebKitWebSrcPrivate::~WebKitWebSrcPrivate):
(webkit_web_src_class_init):
(webkitWebSrcReset):
(webKitWebSrcConstructed):
(webKitWebSrcSetProperty):
(webKitWebSrcGetProperty):
(webKitWebSrcSetContext):
(webKitWebSrcSendEvent):
(restartLoaderIfNeeded):
(stopLoaderIfNeeded):
(webKitWebSrcCreate):
(webKitWebSrcStart):
(webKitWebSrcMakeRequest):
(webKitWebSrcStop):
(webKitWebSrcGetSize):
(webKitWebSrcIsSeekable):
(webKitWebSrcDoSeek):
(webKitWebSrcQuery):
(webKitWebSrcUnLock):
(webKitWebSrcUnLockStop):
(webKitWebSrcSetUri):
(webKitWebSrcSetMediaPlayer):
(webKitSrcPassedCORSAccessCheck):
(CachedResourceStreamingClient::CachedResourceStreamingClient):
(CachedResourceStreamingClient::checkUpdateBlocksize):
(CachedResourceStreamingClient::responseReceived):
(CachedResourceStreamingClient::dataReceived):
(CachedResourceStreamingClient::accessControlCheckFailed):
(CachedResourceStreamingClient::loadFailed):
(CachedResourceStreamingClient::loadFinished):
(webKitSrcWouldTaintOrigin):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.h:
LayoutTests:
https://bugs.webkit.org/show_bug.cgi?id=209811
Reviewed by Xabier Rodriguez-Calvar.
A test improved its status in TestExpectations from the changes made
in this patch.
- platform/gtk/TestExpectations:
- 8:27 AM Changeset in webkit [260754] by
-
- 2 edits in trunk/Source/WebKit
[WPE] about:gpu page is incomplete
https://bugs.webkit.org/show_bug.cgi?id=211076
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Adrian Perez de Castro.
ENABLE(OPENGL) was renamed to ENABLE(GRAPHICS_CONTEXT_GL) in
r254064 but not in all the code base...
- UIProcess/API/glib/WebKitProtocolHandler.cpp:
(WebKit::WebKitProtocolHandler::handleGPU):
- 8:05 AM Changeset in webkit [260753] by
-
- 45 edits in trunk/Source
Replace more uses of live ranges with SimpleRange
https://bugs.webkit.org/show_bug.cgi?id=211058
Reviewed by Antti Koivisto.
Source/WebCore:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::textUnderElement const): Use SimpleRange.
- dom/BoundaryPoint.h: Moved makeBoundaryPointAfterNodeContents here so it
can be used more places.
- dom/Node.cpp:
(WebCore::commonInclusiveAncestor): Moved the commonAncestorContainer function
here from Range, decided to use the "inclusive ancestor" naming from the
DOM specification, and used RefPtr for the result since it's part of our modern
safer design to always use smart pointers for return values.
- dom/Node.h: Added commonInclusiveAncestor.
- dom/Position.cpp:
(WebCore::commonShadowIncludingAncestor): Call commonInclusiveAncestor.
- dom/Range.cpp:
(WebCore::Range::commonAncestorContainer): Deleted.
(WebCore::Range::isPointInRange): Call commonInclusiveAncestor.
(WebCore::Range::comparePoint const): Ditto.
(WebCore::Range::compareBoundaryPoints): Ditto.
(WebCore::Range::collectSelectionRectsWithoutUnionInteriorLines const): Ditto.
- dom/Range.h:
(WebCore::Range::commonAncestorContainer const): Call commonInclusiveAncestor.
- dom/SimpleRange.cpp:
(WebCore::makeBoundaryPointAfterNodeContents): Moved to BoundaryPoint.h.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::respondToUnappliedSpellCorrection): Use
SimpleRange instead of live range.
(WebCore::AlternativeTextController::respondToUnappliedEditing): Ditto.
(WebCore::AlternativeTextController::markPrecedingWhitespaceForDeletedAutocorrectionAfterCommand): Ditto.
(WebCore::AlternativeTextController::processMarkersOnTextToBeReplacedByResult): Ditto.
- editing/ChangeListTypeCommand.cpp:
(WebCore::listConversionTypeForSelection): use commonInclusiveAncestor.
- editing/Editing.cpp:
(WebCore::isNodeVisiblyContainedWithin): Take a SimpleRange argument.
- editing/Editing.h: Updated for the above.
- editing/Editor.cpp:
(WebCore::Editor::addRangeToKillRing): Take a SimpleRange argument.
(WebCore::Editor::shouldDetectTelephoneNumbers const): Made this const and
tweaked coding style a bit.
(WebCore::scanForTelephoneNumbers): Moved this, made it a non-member function,
renamed from scanRangeForTelephoneNumbers, use SimpleRange.
(WebCore::extendSelection): Added. Factored out some logic from the function below.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Use SimpleRange. Removed
some unnecessary code that subtracts 1 and then adds 1 again.
- editing/Editor.h: Updated for the above.
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::replace): Use commonInclusiveAncestor.
- editing/VisibleSelection.cpp:
(WebCore::makeSearchRange): Return a SimpleRange.
(WebCore::VisibleSelection::appendTrailingWhitespace): Use SimpleRange.
- editing/WebContentReader.h: Use SimpleRange instead of a live range.
- editing/cocoa/DataDetection.h: Use a struct, DetectedItem, for the return value
from the detection functions. Also changed DataDetectorTypes to an enum class so
it can be forward-declared instead of having to include this header.
- editing/cocoa/DataDetection.mm:
(WebCore::detectItem): Renamed from detectItemAtPositionWithRange. Return the
DetectedItem struct, with a SimpleRange rather than an out argument live range.
(WebCore::DataDetection::detectItemAroundHitTestResult): Ditto.
(WebCore::contains): Added a helper function for testing bits in the
DataDetectorType enum. Later we can make this better using OptionSet.
(WebCore::constructURLStringForResult): Refactored a bit, updated for the new
DataDetectorTypes enum class, and to use CFEqual instead of CFStringCompare.
(WebCore::DataDetection::detectContentInRange): Ditto.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readPlainText): Updated since context is SimpleRange.
- editing/gtk/EditorGtk.cpp:
(WebCore::createFragmentFromPasteboardData): Use SimpleRange.
(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.
- editing/win/EditorWin.cpp:
(WebCore::Editor::webContentFromPasteboard): Use SimpleRange.
- editing/mac/EditorMac.mm:
(WebCore::Editor::replaceNodeFromPasteboard): Use SimpleRange.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Use SimpleRange.
- page/EventHandler.cpp:
(WebCore::targetNodeForClickEvent): Use commonInclusiveAncestor. Also updated
to return a RefPtr.
(WebCore::EventHandler::handleMouseReleaseEvent): Updated for the above.
- page/Settings.yaml: Changed the default for DataDetectorTypes to be the empty
string rather than a named constant.
- page/SettingsBase.h: Forward-declare DataDetectorTypes instead of including
the DataDetection.h header.
- page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange): Take a SimpleRange.
(WebCore::TextIndicator::createWithSelectionInFrame): Ditto.
(WebCore::hasNonInlineOrReplacedElements): Ditto.
(WebCore::selectionRects): Ditto. Also renamed from getSelectionRectsForRange.
(WebCore::styleContainsComplexBackground): Tweaked implementation.
(WebCore::estimatedTextColorsForRange): Take a SimpleRange.
(WebCore::absoluteBoundingRectForRange): Ditto.
(WebCore::estimatedBackgroundColorForRange): Ditto.
(WebCore::containsOnlyWhiteSpaceText): Ditto.
(WebCore::initializeIndicator): Ditto.
- page/TextIndicator.h: Updated for the above.
- page/mac/ServicesOverlayController.h: Use SimpleRange instead of a live
range for highlights.
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::createForSelection): Take SimpleRange.
(WebCore::ServicesOverlayController::Highlight::createForTelephoneNumber): Ditto.
(WebCore::ServicesOverlayController::Highlight::Highlight): Ditto.
(WebCore::ServicesOverlayController::buildPhoneNumberHighlights): Ditto.
(WebCore::ServicesOverlayController::buildSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::telephoneNumberRangesForFocusedFrame): Ditto.
(WebCore::ServicesOverlayController::highlightsAreEquivalent): Ditto.
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight): Ditto.
(WebCore::ServicesOverlayController::handleClick): Ditto.
- platform/ios/DragImageIOS.mm:
(WebCore::createDragImageForLink): Use SimpleRange.
(WebCore::createDragImageForSelection): Tweaked a bit.
Source/WebKit:
- Shared/API/Cocoa/WKDataDetectorTypesInternal.h:
(fromWKDataDetectorTypes): Updated since DataDetectorTypes
is now an enum class. Also got rid of special "none" and "all" values.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInRangeHandle.mm:
(-[WKWebProcessPlugInRangeHandle detectDataWithTypes:context:]): Updated
since DataDetection now takes a SimpleRange.
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):
Use SimpleRange.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::detectDataInAllFrames): Ditto.
- WebProcess/WebPage/WebPage.h: Removed unneeded include of DataDetection.h.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performImmediateActionHitTestAtLocation): Use SimpleRange.
Source/WebKitLegacy/mac:
- DOM/DOM.mm:
(-[DOMNode getPreviewSnapshotImage:andRects:]): Use SimpleRange.
- WebCoreSupport/WebContextMenuClient.mm:
(WebContextMenuClient::imageForCurrentSharingServicePickerItem): Ditto.
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForDataDetectedText]):
Updated to use DetectedItem and SimpleRange.
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Ditto.
- 6:10 AM Changeset in webkit [260752] by
-
- 113 edits4 copies2 moves2 adds in trunk
[GTK4] Make it possible to build with GTK4 without errors
https://bugs.webkit.org/show_bug.cgi?id=210967
Reviewed by Adrian Perez de Castro.
.:
Disable API tests and GObject introspection when building with GTK4.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
- platform/PlatformPasteboard.h:
- platform/graphics/DisplayRefreshMonitor.cpp:
(WebCore::DisplayRefreshMonitor::createDefaultDisplayRefreshMonitor):
- platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
- platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
- platform/graphics/gtk/GdkCairoUtilities.cpp:
(WebCore::getDefaultCairoFontOptions):
- platform/gtk/CursorGtk.cpp:
(WebCore::createCustomCursor):
- platform/gtk/DragImageGtk.cpp:
(WebCore::dissolveDragImageToFraction):
- platform/gtk/GRefPtrGtk.cpp:
- platform/gtk/GRefPtrGtk.h:
- platform/gtk/GUniquePtrGtk.h:
- platform/gtk/GtkVersioning.h:
(gdk_event_copy):
(gtk_widget_size_allocate):
(gtk_widget_queue_resize_no_redraw):
(gdk_event_get_state):
(gdk_event_get_coords):
(gdk_event_get_root_coords):
(gdk_event_is_scroll_stop_event):
(gdk_event_get_scroll_direction):
(gdk_event_get_scroll_deltas):
(gdk_event_get_button):
- platform/gtk/PasteboardHelper.cpp:
- platform/gtk/PasteboardHelper.h:
- platform/gtk/PlatformKeyboardEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::modifiersContainCapsLock):
- platform/gtk/PlatformPasteboardGtk.cpp:
(WebCore::PlatformPasteboard::PlatformPasteboard):
(WebCore::PlatformPasteboard::writeToClipboard):
(WebCore::PlatformPasteboard::readFromClipboard):
- platform/gtk/PlatformScreenGtk.cpp:
(WebCore::getCurrentScreenMonitor):
Source/WebKit:
Add ifdefs when needed to make it possible to complete a build with GTK4. This way we can continue working on
every feature individually and checking it actually works. Move public headers containing API specific to GTK3
and GTK4 into their own gtk3 and gtk4 directory.
- PlatformGTK.cmake:
- Shared/API/glib/WebKitContextMenuItem.cpp:
- Shared/NativeWebKeyboardEvent.h:
- Shared/NativeWebMouseEvent.h:
- Shared/NativeWebWheelEvent.h:
- Shared/glib/WebContextMenuItemGlib.cpp:
(WebKit::WebContextMenuItemGlib::WebContextMenuItemGlib):
(WebKit::WebContextMenuItemGlib::buildActionName const):
(WebKit::WebContextMenuItemGlib::createActionIfNeeded):
- Shared/glib/WebContextMenuItemGlib.h:
- Shared/gtk/NativeWebKeyboardEventGtk.cpp:
- Shared/gtk/NativeWebMouseEventGtk.cpp:
(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):
- Shared/gtk/NativeWebTouchEventGtk.cpp:
(WebKit::NativeWebTouchEvent::NativeWebTouchEvent):
- Shared/gtk/NativeWebWheelEventGtk.cpp:
- Shared/gtk/WebEventFactory.cpp:
(WebKit::buttonForEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebKeyboardEvent):
(WebKit::WebEventFactory::createWebTouchEvent):
- Shared/gtk/WebEventFactory.h:
- SourcesGTK.txt:
- UIProcess/API/C/WKNativeEvent.h:
- UIProcess/API/glib/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::filterKeyEvent):
- UIProcess/API/glib/InputMethodFilter.h:
- UIProcess/API/glib/WebKitInstallMissingMediaPluginsPermissionRequest.cpp:
(createGstInstallPluginsContext):
- UIProcess/API/glib/WebKitPrivate.cpp:
- UIProcess/API/glib/WebKitUIClient.cpp:
(UIClient::setWindowFrameTimerFired):
- UIProcess/API/glib/WebKitWebContext.cpp:
(webkitWebContextGetProperty):
(webkitWebContextSetProperty):
(webkit_web_context_class_init):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewRunAsModal):
(webkitWebViewPopulateContextMenu):
- UIProcess/API/gtk/InputMethodFilterGtk.cpp:
(WebKit::InputMethodFilter::platformEventKeyIsKeyPress const):
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setViewNeedsDisplay):
(WebKit::PageClientImpl::setCursor):
(WebKit::PageClientImpl::doneWithKeyEvent):
(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createDataListSuggestionsDropdown):
(WebKit::PageClientImpl::startDrag):
(WebKit::PageClientImpl::doneWithTouchEvent):
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):
- UIProcess/API/gtk/WebKitAuthenticationDialog.cpp:
- UIProcess/API/gtk/WebKitAuthenticationDialog.h:
- UIProcess/API/gtk/WebKitEmojiChooser.cpp:
- UIProcess/API/gtk/WebKitEmojiChooser.h:
- UIProcess/API/gtk/WebKitInputMethodContextGtk.cpp:
(webkit_input_method_context_filter_key_event):
- UIProcess/API/gtk/WebKitInputMethodContextImplGtk.cpp:
(webkitInputMethodContextImplGtkFilterKeyEvent):
(webkitInputMethodContextImplGtkSetClientWindow):
- UIProcess/API/gtk/WebKitPopupMenu.cpp:
(WebKit::WebKitPopupMenu::WebKitPopupMenu):
(WebKit::WebKitPopupMenu::showPopupMenu):
(WebKit::WebKitPopupMenu::hidePopupMenu):
(WebKit::WebKitPopupMenu::cancelTracking):
- UIProcess/API/gtk/WebKitPopupMenu.h:
- UIProcess/API/gtk/WebKitPrintOperation.cpp:
- UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:
(webkitScriptDialogAccept):
(webkitScriptDialogDismiss):
(webkitScriptDialogSetUserInput):
- UIProcess/API/gtk/WebKitScriptDialogImpl.cpp:
- UIProcess/API/gtk/WebKitScriptDialogImpl.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(ClickCounter::currentClickCountForGdkButtonEvent):
(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):
(webkitWebViewBaseSetToplevelOnScreenWindow):
(webkitWebViewBaseRealize):
(webkitWebViewBaseContainerForall):
(webkitWebViewBaseDispose):
(webkitWebViewBaseConstructed):
(webkitWebViewBaseSizeAllocate):
(webkitWebViewBaseKeyPressEvent):
(webkitWebViewBaseKeyReleaseEvent):
(webkitWebViewBaseSetEnableBackForwardNavigationGesture):
(webkitWebViewBaseBeginBackSwipeForTesting):
(webkitWebViewBaseCompleteBackSwipeForTesting):
(webkit_web_view_base_class_init):
(webkitWebViewBaseWillSwapWebProcess):
(webkitWebViewBaseDidExitWebProcess):
(webkitWebViewBaseDidRelaunchWebProcess):
(webkitWebViewBaseTakeViewSnapshot):
(webkitWebViewBaseDidStartProvisionalLoadForMainFrame):
(webkitWebViewBaseDidFirstVisuallyNonEmptyLayoutForMainFrame):
(webkitWebViewBaseDidFinishLoadForMainFrame):
(webkitWebViewBaseDidFailLoadForMainFrame):
(webkitWebViewBaseDidSameDocumentNavigationForMainFrame):
(webkitWebViewBaseDidRestoreScrollPosition):
(webkitWebViewBaseShowEmojiChooser):
(webkitWebViewBaseRequestPointerLock):
(webkitWebViewBaseDidLosePointerLock):
(webkitWebViewBaseSynthesizeCompositionKeyPress):
- UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
- UIProcess/API/gtk/WebKitWebViewDialog.cpp:
- UIProcess/API/gtk/WebKitWebViewDialog.h:
- UIProcess/API/gtk/WebKitWebViewGtk.cpp:
(webkitWebViewAuthenticate):
(webkitWebViewScriptDialog):
(webkitWebViewRunFileChooser):
(webkitWebViewMaximizeWindow):
(webkitWebViewMinimizeWindow):
(webkitWebViewRestoreWindow):
- UIProcess/API/gtk3/WebKitContextMenuItem.h: Copied from Source/WebKit/UIProcess/API/gtk/WebKitContextMenuItem.h.
- UIProcess/API/gtk3/WebKitInputMethodContext.h: Copied from Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContext.h.
- UIProcess/API/gtk4/WebKitContextMenuItem.h: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitContextMenuItem.h.
- UIProcess/API/gtk4/WebKitInputMethodContext.h: Renamed from Source/WebKit/UIProcess/API/gtk/WebKitInputMethodContext.h.
- UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:
(WebKit::WebAutomationSession::platformSimulateMouseInteraction):
(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):
(WebKit::WebAutomationSession::platformSimulateKeySequence):
- UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:
(WebKit::RemoteWebInspectorProxy::platformSave):
- UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformSave):
- UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:
(webkit_inspector_window_init):
(webkitInspectorWindowNew):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/cairo/BackingStoreCairo.cpp:
(WebKit::BackingStore::createBackend):
- UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::tryEnsureGLContext):
(WebKit::AcceleratedBackingStoreWayland::paint):
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::~AcceleratedBackingStoreX11):
(WebKit::AcceleratedBackingStoreX11::update):
- UIProcess/gtk/DragAndDropHandler.cpp:
- UIProcess/gtk/DragAndDropHandler.h:
- UIProcess/gtk/GestureController.cpp:
- UIProcess/gtk/GestureController.h:
- UIProcess/gtk/KeyBindingTranslator.cpp:
(WebKit::KeyBindingTranslator::KeyBindingTranslator):
(WebKit::KeyBindingTranslator::commandsForKeyEvent):
- UIProcess/gtk/KeyBindingTranslator.h:
- UIProcess/gtk/PointerLockManager.cpp:
(WebKit::PointerLockManager::lock):
(WebKit::PointerLockManager::unlock):
- UIProcess/gtk/PointerLockManager.h:
- UIProcess/gtk/PointerLockManagerWayland.cpp:
(WebKit::PointerLockManagerWayland::lock):
- UIProcess/gtk/PointerLockManagerX11.cpp:
(WebKit::PointerLockManagerX11::didReceiveMotionEvent):
- UIProcess/gtk/WebColorPickerGtk.cpp:
- UIProcess/gtk/WebContextMenuProxyGtk.cpp:
(WebKit::WebContextMenuProxyGtk::show):
(WebKit::WebContextMenuProxyGtk::showContextMenuWithItems):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):
- UIProcess/gtk/WebContextMenuProxyGtk.h:
- UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:
- UIProcess/gtk/WebDataListSuggestionsDropdownGtk.h:
- UIProcess/gtk/WebPageProxyGtk.cpp:
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
- UIProcess/gtk/WebPopupMenuProxyGtk.h:
- WebProcess/Plugins/PluginController.h:
- WebProcess/Plugins/PluginView.cpp:
- WebProcess/Plugins/PluginView.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::close):
(WebKit::WebPage::mainFrameDidLayout):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::AcceleratedSurfaceX11):
(WebKit::AcceleratedSurfaceX11::createPixmap):
- WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
(WebKit::WebPrintOperationGtk::print):
Tools:
- MiniBrowser/gtk/BrowserCellRendererVariant.c:
- MiniBrowser/gtk/BrowserCellRendererVariant.h:
- MiniBrowser/gtk/BrowserDownloadsBar.c:
- MiniBrowser/gtk/BrowserDownloadsBar.h:
- MiniBrowser/gtk/BrowserMain.c: Added.
(browser_main):
(browser_main_quit):
- MiniBrowser/gtk/BrowserMain.h: Added.
- MiniBrowser/gtk/BrowserSearchBar.c:
- MiniBrowser/gtk/BrowserSearchBar.h:
- MiniBrowser/gtk/BrowserSettingsDialog.c:
- MiniBrowser/gtk/BrowserSettingsDialog.h:
- MiniBrowser/gtk/BrowserTab.c:
(browserTabConstructed):
(browser_tab_start_search):
(browser_tab_stop_search):
(browser_tab_enter_fullscreen):
(browser_tab_leave_fullscreen):
- MiniBrowser/gtk/BrowserTab.h:
- MiniBrowser/gtk/BrowserWindow.c:
(webViewURIChanged):
(resetEntryProgress):
(webViewLoadProgressChanged):
(downloadStarted):
(browserWindowUpdateNavigationActions):
(webViewReadyToShow):
(browserWindowUpdateZoomActions):
(webViewZoomLevelChanged):
(updateUriEntryIcon):
(webViewIsLoadingChanged):
(browserWindowFinalize):
(browserWindowSetupEditorToolbar):
(browserWindowSwitchTab):
(browser_window_init):
(browser_window_class_init):
(browser_window_new):
(browser_window_append_view):
(browser_window_set_background_color):
(browser_window_get_or_create_web_view_for_automation):
- MiniBrowser/gtk/CMakeLists.txt:
- MiniBrowser/gtk/main.c:
(main):
- PlatformGTK.cmake:
- Scripts/webkitpy/style/checker.py:
- TestWebKitAPI/glib/PlatformGTK.cmake:
- 5:55 AM Changeset in webkit [260751] by
-
- 17 edits in trunk/Source
Make loadURLIntoChildFrame private and non-exported
https://bugs.webkit.org/show_bug.cgi?id=211051
Patch by Rob Buis <rbuis@igalia.com> on 2020-04-27
Reviewed by Darin Adler.
Source/WebCore:
Make loadURLIntoChildFrame private and non-exported to reduce the amount of public API functions
that start loads. In order to do this loadURLIntoChildFrame is being called from SubframeLoader
and SubframeLoader is made an inner class of FrameLoader. Because this simplifies createFrame (and
makes createFrame behave strictly like its name) url and referrer do not have to be passed.
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parametersForPlugin):
- loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::createFrame):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.h:
- loader/FrameLoaderClient.h:
- loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::SubframeLoader):
(WebCore::FrameLoader::SubframeLoader::clear):
(WebCore::FrameLoader::SubframeLoader::requestFrame):
(WebCore::FrameLoader::SubframeLoader::resourceWillUsePlugin):
(WebCore::FrameLoader::SubframeLoader::pluginIsLoadable):
(WebCore::FrameLoader::SubframeLoader::requestPlugin):
(WebCore::FrameLoader::SubframeLoader::requestObject):
(WebCore::FrameLoader::SubframeLoader::createJavaAppletWidget):
(WebCore::FrameLoader::SubframeLoader::loadOrRedirectSubframe):
(WebCore::FrameLoader::SubframeLoader::loadSubframe):
(WebCore::FrameLoader::SubframeLoader::shouldUsePlugin):
(WebCore::FrameLoader::SubframeLoader::loadPlugin):
(WebCore::FrameLoader::SubframeLoader::completeURL const):
(WebCore::FrameLoader::SubframeLoader::shouldConvertInvalidURLsToBlank const):
(WebCore::SubframeLoader::SubframeLoader): Deleted.
(WebCore::SubframeLoader::clear): Deleted.
(WebCore::SubframeLoader::requestFrame): Deleted.
(WebCore::SubframeLoader::resourceWillUsePlugin): Deleted.
(WebCore::SubframeLoader::pluginIsLoadable): Deleted.
(WebCore::SubframeLoader::requestPlugin): Deleted.
(WebCore::SubframeLoader::requestObject): Deleted.
(WebCore::SubframeLoader::createJavaAppletWidget): Deleted.
(WebCore::SubframeLoader::loadOrRedirectSubframe): Deleted.
(WebCore::SubframeLoader::loadSubframe): Deleted.
(WebCore::SubframeLoader::shouldUsePlugin): Deleted.
(WebCore::SubframeLoader::loadPlugin): Deleted.
(WebCore::SubframeLoader::completeURL const): Deleted.
(WebCore::SubframeLoader::shouldConvertInvalidURLsToBlank const): Deleted.
- loader/SubframeLoader.h:
(WebCore::SubframeLoader::containsPlugins const): Deleted.
Source/WebKit:
Adapt createFrame to strictly create a subframe and
not load anything.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::createFrame):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Source/WebKitLegacy/mac:
Adapt createFrame to strictly create a subframe and
not load anything.
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::createFrame):
Source/WebKitLegacy/win:
Adapt createFrame to strictly create a subframe and
not load anything.
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::createFrame):
- WebCoreSupport/WebFrameLoaderClient.h:
- 4:53 AM WebKitGTK/2.28.x edited by
- (diff)
- 4:52 AM Changeset in webkit [260750] by
-
- 2 edits in trunk/Source/WebCore
[GTK] [2.28.0] The Yelp build crashes if DISPLAY is not set
https://bugs.webkit.org/show_bug.cgi?id=209431
Reviewed by Carlos Garcia Campos.
Don't create a PlatformDisplayLibWPE as a fallback when using
Wayland or X11.
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::createPlatformDisplay):
- 3:45 AM Changeset in webkit [260749] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed compile-warning fix.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- 3:24 AM Changeset in webkit [260748] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, GTK LTS build fix after r260744
https://bugs.webkit.org/show_bug.cgi?id=211069
- bindings/js/JSDOMBuiltinConstructor.h:
(WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData):
- 3:00 AM Changeset in webkit [260747] by
-
- 2 edits in trunk/Tools
[Flatpak SDK] Regenerate toolchains only if new updates were downloaded
https://bugs.webkit.org/show_bug.cgi?id=210804
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Žan Doberšek.
The SDK toolchain archives are now regenerated only if an actual
update was downloaded from the Flatpak repository. Some redundant
flatpak calls were removed as well, such as the GL extension and
Debug reinstalls that were happening during webkit-flatpak
updates.
- flatpak/flatpakutils.py:
(FlatpakObject.flatpak):
(FlatpakRepo.init):
(WebkitFlatpak.main):
(WebkitFlatpak.setup_dev_env):
- 2:57 AM Changeset in webkit [260746] by
-
- 2 edits in trunk/Tools
unable to build from tot - linux - flatpakutils.py - TypeError: not enough arguments for format string
https://bugs.webkit.org/show_bug.cgi?id=210941
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-27
Reviewed by Žan Doberšek.
- flatpak/flatpakutils.py:
(check_flatpak): Fix error message formating.
- 2:43 AM Changeset in webkit [260745] by
-
- 2 edits in trunk/Source/WebCore
[GTK4] GdkRGBA has float members instead of double
Unreviewed warning fix.
- platform/graphics/gtk/ColorGtk.cpp:
(WebCore::Color::operator GdkRGBA const):
- 2:09 AM Changeset in webkit [260744] by
-
- 108 edits in trunk/Source
[JSC] CallData/ConstructData should include CallType/ConstructType
https://bugs.webkit.org/show_bug.cgi?id=211059
Reviewed by Darin Adler.
Source/JavaScriptCore:
getCallData/getConstructData return a CallType/ConstructType and have a CallData/ConstructData out param,
and then *both* of these are passed side-by-side tocall
/construct
, which all seems a bit silly.
This patch merges CallType/ConstructType into CallData/ConstructData such that getCallData/getConstructData
no longer need an out param andcall
/construct
require one less overt parameter.
In so doing, it also:
- removes ConstructData entirely as it's an exact duplicate of CallData
- renames enum value Host to Native in alignment with CallData's union
- API/JSCallbackConstructor.cpp:
(JSC::JSCallbackConstructor::getConstructData):
- API/JSCallbackConstructor.h:
- API/JSCallbackObject.h:
- API/JSCallbackObjectFunctions.h:
(JSC::JSCallbackObject<Parent>::getConstructData):
(JSC::JSCallbackObject<Parent>::getCallData):
- API/JSObjectRef.cpp:
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):
- bindings/ScriptFunctionCall.cpp:
(Deprecated::ScriptFunctionCall::call):
- bindings/ScriptFunctionCall.h:
- dfg/DFGOperations.cpp:
- inspector/InjectedScriptManager.cpp:
(Inspector::InjectedScriptManager::createInjectedScript):
- inspector/InspectorEnvironment.h:
- interpreter/Interpreter.cpp:
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
- interpreter/Interpreter.h:
- jit/JITOperations.cpp:
- jsc.cpp:
(functionDollarAgentReceiveBroadcast):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::handleHostCall):
- runtime/ArrayPrototype.cpp:
(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncToLocaleString):
- runtime/CallData.cpp:
(JSC::call):
(JSC::profiledCall):
- runtime/CallData.h:
- runtime/ClassInfo.h:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/ConstructData.cpp:
(JSC::construct):
(JSC::profiledConstruct):
- runtime/ConstructData.h:
(JSC::construct):
(JSC::profiledConstruct):
(): Deleted.
- runtime/DatePrototype.cpp:
(JSC::dateProtoFuncToJSON):
- runtime/GetterSetter.cpp:
(JSC::callGetter):
(JSC::callSetter):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h:
- runtime/IteratorOperations.cpp:
(JSC::iteratorNext):
(JSC::iteratorClose):
(JSC::hasIteratorMethod):
(JSC::iteratorMethod):
(JSC::iteratorForIterable):
- runtime/JSBoundFunction.cpp:
(JSC::boundThisNoArgsFunctionCall):
(JSC::boundFunctionCall):
(JSC::boundThisNoArgsFunctionConstruct):
(JSC::boundFunctionConstruct):
- runtime/JSCJSValue.h:
- runtime/JSCell.cpp:
(JSC::JSCell::getCallData):
(JSC::JSCell::getConstructData):
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::isFunction):
(JSC::JSCell::isConstructor):
- runtime/JSFunction.cpp:
(JSC::JSFunction::getCallData):
(JSC::JSFunction::getConstructData):
- runtime/JSFunction.h:
- runtime/JSInternalPromise.cpp:
(JSC::JSInternalPromise::then):
- runtime/JSMicrotask.cpp:
(JSC::JSMicrotask::run):
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):
- runtime/JSONObject.cpp:
(JSC::Stringifier::isCallableReplacer const):
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::toJSON):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Walker::Walker):
(JSC::Walker::callReviver):
(JSC::JSONProtoFuncParse):
- runtime/JSObject.cpp:
(JSC::ordinarySetSlow):
(JSC::callToPrimitiveFunction):
(JSC::JSObject::hasInstance):
(JSC::JSObject::getMethod):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h:
(JSC::getCallData):
(JSC::getConstructData):
- runtime/JSPromise.cpp:
(JSC::JSPromise::createDeferredData):
(JSC::JSPromise::resolvedPromise):
(JSC::callFunction):
- runtime/MapConstructor.cpp:
(JSC::constructMap):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncToLocaleString):
- runtime/ProxyObject.cpp:
(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::ProxyObject::getCallData):
(JSC::performProxyConstruct):
(JSC::ProxyObject::getConstructData):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):
- runtime/ProxyObject.h:
- runtime/ReflectObject.cpp:
(JSC::reflectObjectConstruct):
- runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):
- runtime/SetConstructor.cpp:
(JSC::constructSet):
- runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::replaceUsingStringSearch):
- runtime/VM.cpp:
(JSC::VM::callPromiseRejectionCallback):
- runtime/WeakMapConstructor.cpp:
(JSC::constructWeakMap):
- runtime/WeakSetConstructor.cpp:
(JSC::constructWeakSet):
- tools/JSDollarVM.cpp:
(JSC::callWithStackSizeProbeFunction):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::evaluate):
- wasm/js/WebAssemblyWrapperFunction.cpp:
(JSC::callWebAssemblyWrapperFunction):
Source/WebCore:
- Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::installReplacement):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCustomElementInterface.cpp:
(WebCore::constructCustomElementSynchronously):
(WebCore::JSCustomElementInterface::upgradeElement):
(WebCore::JSCustomElementInterface::invokeCallback):
- bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
- bindings/js/JSDOMBuiltinConstructor.h:
(WebCore::JSDOMBuiltinConstructor<JSClass>::getConstructData):
- bindings/js/JSDOMBuiltinConstructorBase.cpp:
(WebCore::JSDOMBuiltinConstructorBase::callFunctionWithCurrentArguments):
- bindings/js/JSDOMConstructor.h:
(WebCore::JSDOMConstructor<JSClass>::getConstructData):
- bindings/js/JSDOMConstructorBase.cpp:
(WebCore::JSDOMConstructorBase::getCallData):
- bindings/js/JSDOMConstructorBase.h:
- bindings/js/JSDOMConstructorNotConstructable.h:
- bindings/js/JSDOMIterator.h:
(WebCore::iteratorForEach):
- bindings/js/JSDOMMapLike.cpp:
(WebCore::clearBackingMap):
(WebCore::setToBackingMap):
(WebCore::forwardFunctionCallToBackingMap):
(WebCore::forwardForEachCallToBackingMap):
- bindings/js/JSDOMNamedConstructor.h:
(WebCore::JSDOMNamedConstructor<JSClass>::getConstructData):
- bindings/js/JSDOMPromise.cpp:
(WebCore::DOMPromise::whenPromiseIsSettled):
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::createRejectedPromiseWithTypeError):
- bindings/js/JSDOMSetLike.cpp:
(WebCore::clearBackingSet):
(WebCore::addToBackingSet):
(WebCore::forwardFunctionCallToBackingSet):
(WebCore::forwardForEachCallToBackingSet):
- bindings/js/JSErrorHandler.cpp:
(WebCore::JSErrorHandler::handleEvent):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
- bindings/js/JSExecState.cpp:
(WebCore::functionCallHandlerFromAnyThread):
- bindings/js/JSExecState.h:
(WebCore::JSExecState::call):
(WebCore::JSExecState::profiledCall):
- bindings/js/JSExecStateInstrumentation.h:
(WebCore::JSExecState::instrumentFunction):
(WebCore::JSExecState::instrumentFunctionInternal): Deleted.
(WebCore::JSExecState::instrumentFunctionCall): Deleted.
(WebCore::JSExecState::instrumentFunctionConstruct): Deleted.
- bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::getUserMedia):
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::callPlugin):
(WebCore::pluginElementCustomGetCallData):
- bindings/js/JSPluginElementFunctions.h:
- bindings/js/ReadableStream.cpp:
(WebCore::ReadableStream::create):
(WebCore::ReadableStreamInternal::callFunction):
(WebCore::ReadableStream::lock):
- bindings/js/ReadableStreamDefaultController.cpp:
(WebCore::readableStreamCallFunction):
- bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::executeFunctionInContext):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateHeader):
(GeneratePluginCall):
(GenerateLegacyCallerDefinitions):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObj::getCallData):
- bindings/scripts/test/JS/JSTestObj.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::JSTestPluginInterface::getCallData):
- bindings/scripts/test/JS/JSTestPluginInterface.h:
- bridge/NP_jsobject.cpp:
- bridge/objc/WebScriptObject.mm:
(-[WebScriptObject callWebScriptMethod:withArguments:]):
- bridge/objc/objc_runtime.h:
- bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcFallbackObjectImp::getCallData):
- bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::getCallData):
(JSC::Bindings::RuntimeObject::getConstructData):
- bridge/runtime_object.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
- testing/Internals.cpp:
(WebCore::Internals::cloneArrayBuffer):
Source/WebKit:
- WebProcess/Plugins/Netscape/JSNPObject.cpp:
(WebKit::JSNPObject::getCallData):
(WebKit::JSNPObject::getConstructData):
- WebProcess/Plugins/Netscape/JSNPObject.h:
- WebProcess/Plugins/Netscape/NPJSObject.cpp:
(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::construct):
(WebKit::NPJSObject::invoke):
Source/WebKitLegacy/mac:
- Plugins/Hosted/NetscapePluginInstanceProxy.mm:
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
Source/WebKitLegacy/win:
- Plugins/PluginPackage.cpp:
(WebCore::NPN_Invoke):
- 12:40 AM Changeset in webkit [260743] by
-
- 14 edits3 deletes in trunk
Unreviewed, reverting r260672.
[GTK] WebInspector tests are timing out after r260672
Reverted changeset:
"[Win] Bundle Inspector Resources in Release builds"
https://bugs.webkit.org/show_bug.cgi?id=210942
https://trac.webkit.org/changeset/260672
- 12:37 AM Changeset in webkit [260742] by
-
- 2 edits in trunk/Source/WebInspectorUI
Unreviewed, reverting r260728.
Build fix after r260672, no needed since r260672 is also being reverted.
Reverted changeset:
"[Win] Fix windows build with MSBuild after 260672"
https://bugs.webkit.org/show_bug.cgi?id=211047
https://trac.webkit.org/changeset/260728
- 12:35 AM Changeset in webkit [260741] by
-
- 4 edits in trunk/Source
Unreviewed, reverting r260696.
Build fix after r260672, no needed since r260672 is also being reverted.
Reverted changeset:
"REGRESSION(210942): [GTK][WPE] Unreviewed, EWS build bots
fail in compile-webkit step"
https://bugs.webkit.org/show_bug.cgi?id=211014
https://trac.webkit.org/changeset/260696
- 12:04 AM Changeset in webkit [260740] by
-
- 2 edits in trunk/Source/WebCore
Build failure in WebGL2RenderingContext after r260588
https://bugs.webkit.org/show_bug.cgi?id=211057
Patch by Kenneth Russell <kbr@chromium.org> on 2020-04-27
Reviewed by Darin Adler.
Fix non-ANGLE build failure in WebGL2RenderingContext after
r260588.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::texStorage2D):
Apr 26, 2020:
- 10:12 PM Changeset in webkit [260739] by
-
- 42 edits1 move1 delete in trunk/Source
[Cocoa] stop using out arguments for document attributes when converting to attributed strings
https://bugs.webkit.org/show_bug.cgi?id=211048
Reviewed by Sam Weinig.
Source/WebCore:
- DerivedSources-input.xcfilelist: Building modified this file automatically. Uploading
the new version.
- WebCore.xcodeproj/project.pbxproj: Added AttributedString.h.
- editing/cocoa/AttributedString.h: Added. Moved this from WebKit, but removed a lot of
inessentials.
- editing/cocoa/DictionaryLookup.mm: Removed unneeded include.
- editing/cocoa/EditorCocoa.mm:
(WebCore::selectionAsAttributedString): Updated for change to the return value of the
attributedString function, and use init instead of initWithString:@"".
- editing/cocoa/HTMLConverter.h: Changed to an Objective-C-only header, omitting things
like #pramga once. Return the AttributedString struct from the functions instead of
using an out argument for document attributes.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::convert): Return an AttributedString and drop the out argument.
(WebCore::attributedString): Ditto.
(WebCore::editingAttributedString): Ditto. Also refactor a little bit.
- editing/ios/EditorIOS.mm: Removed unneeded include.
- editing/mac/DictionaryLookupLegacy.mm: Removed unneeded include.
- editing/mac/EditorMac.mm:
(WebCore::Editor::dataSelectionForPasteboard): Updated since attributedString
now returns a structure.
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::policyProperties): Use init instead of initWithString:@"".
- platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::siteForCookies): Use init instead of initWithString:@"".
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::updateTaskWithFirstPartyForSameSiteCookies): Use init instead of initWithString:@"".
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::AttributedString>::encode): Moved here from AttributedString.mm.
(IPC::ArgumentCoder<WebCore::AttributedString>::decode): Ditto.
- Shared/DocumentEditingContext.h: Updated to use WebCore::AttributeString.
- Shared/DocumentEditingContext.mm:
(IPC::ArgumentCoder<WebKit::DocumentEditingContext>::decode): Ditto.
- Shared/WebCoreArgumentCoders.h: Added coder for WebCore::AttributedString.
- Shared/mac/AttributedString.h: Removed.
- Shared/mac/AttributedString.mm: Removed.
- SourcesCocoa.txt: Removed AttributedString.mm.
- UIProcess/API/Cocoa/WKWebView.mm: Updated to use WebCore::AttributedString.
- UIProcess/Cocoa/TextCheckingController.mm: Ditto.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::attributedSubstringForProposedRange): Ditto.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getContentsAsAttributedString): Ditto.
- UIProcess/WebPageProxy.h: Ditto.
- UIProcess/WebPageProxy.messages.in: Ditto.
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::attributedSubstringForCharacterRangeAsync): Ditto.
(WebKit::WebPageProxy::attributedStringForCharacterRangeCallback): Ditto.
- WebKit.xcodeproj/project.pbxproj: Removed AttributedString.h and AttributedString.mm.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.h: Updated to use WebCore::AttributedString.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in: Ditto.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:
(WebKit::TextCheckingControllerProxy::replaceRelativeToSelection): Ditto.
(WebKit::TextCheckingControllerProxy::annotatedSubstringBetweenPositions): Ditto.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange): Updated since editingAttributedString
returns a struct.
(WebKit::WebPage::getContentsAsAttributedString): Updated to use SimpleRange and
since attributedString returns a struct.
- WebProcess/WebPage/WebPage.h: Updated to use WebCore::AttributedString.
- WebProcess/WebPage/WebPage.messages.in: Ditto.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::requestDocumentEditingContext): Ditto.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync): Ditto.
(WebKit::WebPage::handleSelectionServiceClick): Ditto.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebSelectionServiceController.mm:
(WebSelectionServiceController::handleSelectionServiceClick): Updated since
attributedString returns a struct.
- WebView/WebHTMLRepresentation.mm:
(-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]): Ditto.
Also use init instead of initWithString:@"".
- WebView/WebHTMLView.mm:
(-[WebHTMLView textStorage]): DItto.
(-[WebHTMLView attributedSubstringFromRange:]): Ditto.
(-[WebHTMLView _attributedStringFromDOMRange:]): Ditto.
(-[WebHTMLView _legacyAttributedStringFrom:offset:to:offset:]): Ditto.
(-[WebHTMLView attributedString]): Ditto.
(-[WebHTMLView selectedAttributedString]): Ditto.
- WebView/WebImmediateActionController.mm:
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Updated.
Source/WTF:
- wtf/cocoa/URLCocoa.mm:
(WTF::URL::createCFURL const): Use init instead of initWithString:@"". The two are
equivalent in more recent versions of Foundation.
- 10:07 PM Changeset in webkit [260738] by
-
- 8 edits1 add in trunk
[PlayStation] Enable TestWTF and TestWebCore
https://bugs.webkit.org/show_bug.cgi?id=208849
Reviewed by Don Olmstead.
.:
- Source/cmake/OptionsPlayStation.cmake:
- Add PLAYSTATION_COPY_SHARED_LIBRARIES() to install dependencies.
- Add -g option for "Release" configuration.
- Drop "RelWithDebInfo" and "MinSizeRel" configuration.
Source/WebCore:
- PlatformPlayStation.cmake:
Add WebCore_CopySharedLibs to install dependencies.
Source/WTF:
- wtf/PlatformPlayStation.cmake:
Add WTF_CopySharedLibs() to install dependencies.
Tools:
- TestWebKitAPI/PlatformPlayStation.cmake:
- TestWebKitAPI/playstation/main.cpp: Added.
(main): Load runtime libraries.
- 9:05 PM Changeset in webkit [260737] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, skipping more inspector tests.
Some inspector tests (like from bug149916) had more specific
expectations than the gtk-global Skip from bug211035 and ended up
being executed. These expectations were not marked as timeout (only
Slow), and this caused the Debug bot to reach the test timeout limit.
As there is already at least three patches involved in this issue,
mark these expectations as Release only, allowing the Debug build to
use the generic expectation from bug2011035.
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 6:02 PM Changeset in webkit [260736] by
-
- 21 edits1 add in trunk/Source
Rendering update steps should use Seconds for the timestamps
https://bugs.webkit.org/show_bug.cgi?id=210990
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-04-26
Reviewed by Daniel Bates.
Source/WebCore:
Make DOMWindow::nowTimestamp() return ReducedResolutionSeconds and change
the callers accordingly. ReducedResolutionSeconds is a new type but it's
just an alias of the type Seconds. It indicates that the returned value
is a web-safe seconds.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::liveCurrentTime const):
(WebCore::DocumentTimeline::cacheCurrentTime):
(WebCore::DocumentTimeline::documentWillUpdateAnimationsAndSendEvents):
- animation/DocumentTimeline.h:
- animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
- animation/DocumentTimelinesController.h:
- dom/Document.cpp:
(WebCore::Document::serviceRequestAnimationFrameCallbacks):
(WebCore::Document::updateIntersectionObservations):
- dom/Document.h:
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::scheduleAnimation):
- dom/ScriptedAnimationController.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::getVideoPlaybackQuality):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::nowTimestamp const):
- page/DOMWindow.h:
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::nowTimestamp const):
(WebCore::IntersectionObserver::createTimestamp const): Deleted.
- page/IntersectionObserver.h:
- page/Page.cpp:
(WebCore::Page::updateRendering):
- page/Performance.cpp:
(WebCore::Performance::now const):
(WebCore::Performance::nowInReducedResolutionSeconds const):
- page/Performance.h:
- page/ReducedResolutionSeconds.h: Added.
Source/WebKit:
- WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:
(WebKit::CompositingCoordinator::timestamp const):
- 5:37 PM Changeset in webkit [260735] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Clearly distinguish isConstructor from getConstructData
https://bugs.webkit.org/show_bug.cgi?id=211053
Reviewed by Sam Weinig.
Follow-up to r260722. Remove the isConstructor overload that duplicates getConstructData
and clearly distinguish the usage of these two functions.
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::isConstructor):
Remove isConstructor overload.
- runtime/JSBoundFunction.cpp:
(JSC::JSBoundFunction::create):
Don't use getConstructData if you don't need ConstructData.
- runtime/ReflectObject.cpp:
(JSC::reflectObjectConstruct):
Use getConstructData if you need ConstructData.
- API/JSObjectRef.cpp:
(JSObjectIsFunction):
Use isFunction (leftover spot from last patch).
- 4:04 PM Changeset in webkit [260734] by
-
- 3 edits in trunk/Tools
Warn when NeverDestroyed<Lock> is used
https://bugs.webkit.org/show_bug.cgi?id=211054
Reviewed by Darin Adler.
WTF::Lock and WTF::Condition are designed to be constant-initialize compliant. So NeverDestroyed<> for these types are not necessary,
or rather, introducing race condition issue whilestatic Lock
doesn't have that issue. This patch adds lint rules which prevent
us from usingNeverDestroyed<Lock>
andLazyNeverDestroyed<Lock>
.
- Scripts/webkitpy/style/checkers/cpp.py:
(check_wtf_never_destroyed):
(check_style):
(CppChecker):
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_wtf_never_destroyed):
- 3:54 PM Changeset in webkit [260733] by
-
- 5 edits in trunk
Symbol should have Construct? internal method
https://bugs.webkit.org/show_bug.cgi?id=211050
Reviewed by Yusuke Suzuki.
JSTests:
- stress/is-constructor.js:
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
This change introduces constructSymbol() method, which unconditionally throws
a TypeError, since its presence is observable when, for example, Symbol is a
ProxyTarget? itself [1]. Aligns JSC with the spec [2], V8, and SpiderMonkey.
[1]: https://tc39.es/ecma262/#sec-proxycreate (step 7.b)
[2]: https://tc39.es/ecma262/#constructor
- runtime/SymbolConstructor.cpp:
(JSC::SymbolConstructor::SymbolConstructor):
(JSC::constructSymbol):
- 2:30 PM Changeset in webkit [260732] by
-
- 53 edits1 add in trunk
InternalFunction::createSubclassStructure should use newTarget's globalObject
https://bugs.webkit.org/show_bug.cgi?id=202599
Reviewed by Yusuke Suzuki.
JSTests:
- stress/promise-proto-from-ctor-realm.js: Added.
- test262/expectations.yaml: Mark 88 test cases as passing.
LayoutTests/imported/w3c:
- web-platform-tests/WebIDL/ecmascript-binding/constructors-expected.txt:
- web-platform-tests/custom-elements/htmlconstructor/newtarget-expected.txt:
- web-platform-tests/wasm/jsapi/proto-from-ctor-realm-expected.txt:
Source/JavaScriptCore:
If "prototype" of NewTarget is not an object, built-in constructors [1] should acquire
default Prototype? from realm of NewTarget, utilizing GetFunctionRealm helper [2].
Before this change, realm of active constructor was used instead. This patch introduces
GetFunctionRealm and aligns all subclassable constructors with the spec, V8, and SpiderMonkey.
This change inlines fast paths checks of InternalFunction::createSubclassStructure() and
simplifies its signature; getFunctionRealm() is invoked in slow paths only.
While a dynamically created function uses NewTarget's realm for its default Prototype?
similar to other built-ins, its "prototype" object inherit from ObjectPrototype
of active constructor's realm [3] (just like their scope), making it retain references
to 2 different global objects. To accomodate this behavior, this change introduces
scopeGlobalObject
in JSFunction.cpp methods.
Above-mentioned behavior also simplifies creation of JSGenerator and JSAsyncGenerator
instances since NewTarget's realm is irrelevant to them.
IntlCollatorConstructor::collatorStructure() and 6 similar methods are removed:
a) to impose good practice of using newTarget's globalObject;
b) with this change, each of them have 1 call site max;
c) other JSC constructors have no methods alike.
[1]: https://tc39.es/ecma262/#sec-map-constructor (step 2)
[2]: https://tc39.es/ecma262/#sec-getfunctionrealm
[3]: https://tc39.es/ecma262/#sec-createdynamicfunction (steps 23-25)
- dfg/DFGOperations.cpp:
- runtime/AggregateErrorConstructor.cpp:
(JSC::callAggregateErrorConstructor):
(JSC::constructAggregateErrorConstructor):
- runtime/AggregateErrorConstructor.h:
- runtime/AsyncFunctionConstructor.cpp:
(JSC::constructAsyncFunctionConstructor):
- runtime/AsyncGeneratorFunctionConstructor.cpp:
(JSC::constructAsyncGeneratorFunctionConstructor):
- runtime/BooleanConstructor.cpp:
(JSC::constructWithBooleanConstructor):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
(JSC::createInternalFieldObject):
- runtime/DateConstructor.cpp:
(JSC::constructDate):
- runtime/ErrorConstructor.cpp:
(JSC::constructErrorConstructor):
- runtime/FunctionConstructor.cpp:
(JSC::constructFunctionSkippingEvalEnabledCheck):
- runtime/InternalFunction.cpp:
(JSC::InternalFunction::createSubclassStructure):
(JSC::getFunctionRealm):
(JSC::InternalFunction::createSubclassStructureSlow): Deleted.
- runtime/InternalFunction.h:
(JSC::InternalFunction::createSubclassStructure): Deleted.
- runtime/IntlCollatorConstructor.cpp:
(JSC::constructIntlCollator):
(JSC::callIntlCollator):
- runtime/IntlCollatorConstructor.h:
- runtime/IntlDateTimeFormatConstructor.cpp:
(JSC::constructIntlDateTimeFormat):
(JSC::callIntlDateTimeFormat):
- runtime/IntlDateTimeFormatConstructor.h:
- runtime/IntlNumberFormatConstructor.cpp:
(JSC::constructIntlNumberFormat):
(JSC::callIntlNumberFormat):
- runtime/IntlNumberFormatConstructor.h:
- runtime/IntlPluralRulesConstructor.cpp:
(JSC::constructIntlPluralRules):
- runtime/IntlPluralRulesConstructor.h:
- runtime/IntlRelativeTimeFormatConstructor.cpp:
(JSC::constructIntlRelativeTimeFormat):
- runtime/IntlRelativeTimeFormatConstructor.h:
- runtime/JSArrayBufferConstructor.cpp:
(JSC::JSGenericArrayBufferConstructor<sharingMode>::constructArrayBuffer):
- runtime/JSFunction.cpp:
(JSC::JSFunction::prototypeForConstruction):
(JSC::JSFunction::getOwnPropertySlot):
- runtime/JSGenericTypedArrayViewConstructorInlines.h:
(JSC::constructGenericTypedArrayView):
- runtime/JSGlobalObjectInlines.h:
(JSC::JSGlobalObject::arrayStructureForIndexingTypeDuringAllocation const):
- runtime/MapConstructor.cpp:
(JSC::constructMap):
- runtime/NativeErrorConstructor.cpp:
(JSC::NativeErrorConstructor<errorType>::constructNativeErrorConstructor):
(JSC::NativeErrorConstructor<errorType>::callNativeErrorConstructor):
- runtime/NativeErrorConstructor.h:
- runtime/NumberConstructor.cpp:
(JSC::constructNumberConstructor):
- runtime/ObjectConstructor.cpp:
(JSC::constructObjectWithNewTarget):
- runtime/RegExpConstructor.cpp:
(JSC::getRegExpStructure):
(JSC::constructRegExp):
(JSC::esSpecRegExpCreate):
- runtime/RegExpConstructor.h:
- runtime/SetConstructor.cpp:
(JSC::constructSet):
- runtime/StringConstructor.cpp:
(JSC::constructWithStringConstructor):
- runtime/WeakMapConstructor.cpp:
(JSC::constructWeakMap):
- runtime/WeakObjectRefConstructor.cpp:
(JSC::constructWeakRef):
- runtime/WeakSetConstructor.cpp:
(JSC::constructWeakSet):
- wasm/js/WebAssemblyCompileErrorConstructor.cpp:
(JSC::constructJSWebAssemblyCompileError):
- wasm/js/WebAssemblyInstanceConstructor.cpp:
(JSC::constructJSWebAssemblyInstance):
- wasm/js/WebAssemblyLinkErrorConstructor.cpp:
(JSC::constructJSWebAssemblyLinkError):
- wasm/js/WebAssemblyModuleConstructor.cpp:
(JSC::WebAssemblyModuleConstructor::createModule):
- wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:
(JSC::constructJSWebAssemblyRuntimeError):
Source/WebCore:
Accounts for InternalFunction::createSubclassStructure() signature change and
utilizes getFunctionRealm() helper to handle cross-realm JSBoundFunction and
ProxyObject instances as NewTarget value.
Tests: web-platform-tests/WebIDL/ecmascript-binding/constructors.html
web-platform-tests/custom-elements/htmlconstructor/newtarget.html
- bindings/js/JSDOMWrapperCache.h:
(WebCore::setSubclassStructureIfNeeded):
- bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):
- 2:17 PM Changeset in webkit [260731] by
-
- 4 edits in trunk/Source
Use
static Lock
instead ofstatic NeverDestroyed<Lock>
https://bugs.webkit.org/show_bug.cgi?id=211036
Reviewed by Darin Adler.
Source/WebCore:
- platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::sharedLock):
Source/WTF:
Lock can be static-initialized since it has constexpr constructor. No need to use NeverDestroyed<Lock>.
- wtf/Logger.h:
(WTF::Logger::observerLock):
- 2:11 PM Changeset in webkit [260730] by
-
- 15 edits5 adds in trunk
[JSC] ValueAdd, VaueSub, ValueMul, Inc, Dec should say SpecBigInt32 prediction based on ArithProfile
https://bugs.webkit.org/show_bug.cgi?id=211038
Reviewed by Filip Pizlo.
JSTests:
- stress/bigint32-add-overflow.js: Added.
(shouldBe):
(add):
(noInline):
- stress/bigint32-dec-overflow.js: Added.
(shouldBe):
(dec):
(noInline):
- stress/bigint32-inc-overflow.js: Added.
(shouldBe):
(inc):
(noInline):
- stress/bigint32-mul-overflow.js: Added.
(shouldBe):
(mul):
(noInline):
- stress/bigint32-sub-overflow.js: Added.
(shouldBe):
(sub):
(noInline):
Source/JavaScriptCore:
This patch adds profile feedback to ValueAdd, ValueSub, ValueMul, Inc, Dec to say SpecBigInt32 prediction.
Our HeapBigInt v.s. BigInt32 strategy is simpler than Double v.s. Int32 strategy: we always
prefer BigInt32 over HeapBigInt. This is because HeapBigInt calculation and conversion require
much higher cost than BigInt32. This tradeoff is largely different from Double v.s. Int32.
So keeping HeapBigInt is simply inefficient when we can use BigInt32.
This means that ArithProfile's feedback is also very simple. If we see HeapBigInt, this means
overflow happens. In DFG, we propagate this information to ValueAdd, ValueSub, and ValueMul nodes
and record it in DFGNodeFlags. And based on this information, we change the prediction and
speculation in prediction propagation and fixup phase.
We change exit reason from Overflow to BigInt32Overflow since Overflow is solely used for Int32 case,
and we have Int52Overflow for Int52 case. We should have BigInt32Overflow for BigInt32 to precisely
record and tell about what happens in DFG as a feedback for the next compilation.
We add BigInt32 speculation for ValueSub. Previously, we missed that in fixup phase and we always
speculate ValueSub with AnyBigIntUse or HeapBigIntUse. Now it can use BigInt32Use.
We also fix Inc / Dec's fixup phase to use BigInt path. Previously, it was always using UntypedUse since
node->child1()->shouldSpeculateUntypedForArithmetic()
returns true for BigInt. We fix the ordering of
speculation attempts as it is done in the other places in fixup phase.
This patch offers 7.9% performance improvement in sunspider-sha1-big-int.
ToT Patched
sunspider-sha1-big-int 134.5668+-2.8695 124.6743+-0.7541 definitely 1.0793x faster
- bytecode/ExitKind.cpp:
(JSC::exitKindToString):
- bytecode/ExitKind.h:
- bytecode/SpeculatedType.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::binaryArithShouldSpeculateBigInt32):
(JSC::DFG::Graph::unaryArithShouldSpeculateBigInt32):
- dfg/DFGNode.h:
(JSC::DFG::Node::mayHaveBigInt32Result):
(JSC::DFG::Node::mayHaveHeapBigIntResult):
(JSC::DFG::Node::mayHaveBigIntResult):
(JSC::DFG::Node::canSpeculateBigInt32):
(JSC::DFG::Node::canSpeculateInt52):
- dfg/DFGNodeFlags.cpp:
(JSC::DFG::dumpNodeFlags):
- dfg/DFGNodeFlags.h:
(JSC::DFG::nodeMayHaveHeapBigInt):
(JSC::DFG::nodeCanSpeculateBigInt32):
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::compileValueDiv):
(JSC::DFG::SpeculativeJIT::speculateHeapBigInt):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
(JSC::FTL::DFG::LowerDFGToB3::compileValueMul):
(JSC::FTL::DFG::LowerDFGToB3::compileValueDiv):
- 1:02 PM Changeset in webkit [260729] by
-
- 7 edits1 delete in trunk/Source
Remove unused class PlaybackSessionInterface
https://bugs.webkit.org/show_bug.cgi?id=211031
Reviewed by Daniel Bates.
Source/WebCore:
No new tests, no functional changes.
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/PlaybackSessionInterface.h: Removed.
- platform/cocoa/PlaybackSessionModelMediaElement.h:
- platform/ios/PlaybackSessionInterfaceAVKit.h:
- platform/mac/PlaybackSessionInterfaceMac.h:
Source/WebKit:
- WebProcess/cocoa/PlaybackSessionManager.h:
- 12:51 PM Changeset in webkit [260728] by
-
- 2 edits in trunk/Source/WebInspectorUI
[Win] Fix windows build with MSBuild after 260672
https://bugs.webkit.org/show_bug.cgi?id=211047
Unreviewed build fix.
- CMakeLists.txt:
- 11:55 AM Changeset in webkit [260727] by
-
- 2 edits in trunk/Source/WTF
[WTF] Workaround gcc bug for unsigned bitfield related usual arithmetic conversions
https://bugs.webkit.org/show_bug.cgi?id=211044
Reviewed by Darin Adler.
- wtf/URL.cpp:
(WTF::URL::setHost):
(WTF::URL::setHostAndPort):
(WTF::URL::setUser):
(WTF::URL::setPassword):
- 9:34 AM Changeset in webkit [260726] by
-
- 2 edits in trunk/Source/WebCore
[LFC][TFC] Compute and distribute extra vertical space for rows
https://bugs.webkit.org/show_bug.cgi?id=211046
Reviewed by Antti Koivisto.
When the table computed height is bigger than the sum of the row heigts, we need to distribute the extra vertical
space among the non-fixed height rows. The distribution is based on the preferred height of those non-fixed rows.
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
- 8:33 AM Changeset in webkit [260725] by
-
- 63 edits in trunk/Source
Stop using live ranges in functions that return range of the selection
https://bugs.webkit.org/show_bug.cgi?id=210396
Reviewed by Sam Weinig.
Source/WebCore:
- Added makeRangeSelectingNode, to create a range that selects a node and all its descendants.
- Improved intersectingNodes so it can now easily be used in a while loop style as well as the range-for loop style. Also made it more robust against tree changes while iterating; it will now always stop at the end of the document.
- Changed functions that work with selection to get a SimpleRange, and then either do all the work without a live range, or call createLiveRange right where it's needed, making it clearer when we can delete that call later as we cut down live ranges even more.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::selectionRange const): Return a SimpleRange
instead of a live range.
(WebCore::AccessibilityObject::findTextRanges const): Use createLiveRange
on the result of selectionRange since this still mostly uses live ranges.
- accessibility/AccessibilityObject.h: Updated for the above.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange const):
Updated to create a live range only in the one place we need to call a
Range class member function.
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper textMarkerRangeForSelection]):
Use createLiveRange here.
- dom/SimpleRange.cpp:
(WebCore::makeRangeSelectingNode): Added. For use when we need to make
a range that selects a node, not just the node's contents.
(WebCore::firstIntersectingNode): Renamed from IntersectingNodeRange::first
since this is now used in the iterator class, not the range class. Also
letting it be a non-member function so we can tweak it without touching
the haeder file.
(WebCore::nodePastLastIntersectingNode): Ditto.
(WebCore::IntersectingNodeIterator::IntersectingNodeIterator): Changed
this constructor to take a SimpleRange. To add the advanceSkippingChildren
feature, had to build the termination condition into the iterator rather
than basing it on the value of the sentinel.
(WebCore::IntersectingNodeIterator::advance): Added. Contains the logic
from the ++ operator, so it can be called in a more straightforward way
when this is being used with a while loop rather than a range-for loop.
(WebCore::IntersectingNodeIterator::advanceSkippingChildren): Added.
- dom/SimpleRange.h: Updated for the changes to IntersectingNodeIterator
and IntersectingNodeRange.
- editing/AlternativeTextController.cpp:
(WebCore::AlternativeTextController::timerFired): Use createLiveRange.
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::targetRanges const): Use WTFMove in
a place where the old code was copying instead.
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
Use intersectingNodes to make the function's logic easier to understand.
- editing/Editing.cpp:
(WebCore::visibleImageElementsInRangeWithNonLoadedImages): Changed
the argument type to SimpleRange.
- editing/Editing.h: Updated for the change above.
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::styleAtSelectionStart): Use createLiveRange.
- editing/Editor.cpp:
(WebCore::Editor::selectedRange): Use createLiveRange.
(WebCore::Editor::applyStyleToSelection): Ditto.
(WebCore::Editor::applyParagraphStyleToSelection): Ditto.
(WebCore::Editor::insertTextWithoutSendingTextEvent): Ditto.
(WebCore::Editor::insertLineBreak): Ditto.
(WebCore::Editor::insertParagraphSeparator): Ditto.
(WebCore::Editor::ignoreSpelling): Remove use of live range.
(WebCore::Editor::learnSpelling): Ditto.
(WebCore::Editor::misspelledWordAtCaretOrRange const): Ditto.
(WebCore::Editor::isSelectionUngrammatical): Ditto.
(WebCore::Editor::guessesForMisspelledOrUngrammatical): Ditto.
(WebCore::Editor::markMisspellingsAfterTypingToWord): Use createLiveRange.
(WebCore::Editor::markMisspellingsOrBadGrammar): Ditto.
(WebCore::Editor::markMisspellingsAndBadGrammar): Ditto.
(WebCore::Editor::rangeForPoint): Ditto.
(WebCore::Editor::insertTextPlaceholder): Ditto.
(WebCore::Editor::shouldChangeSelection const): Ditto.
(WebCore::Editor::findString): Ditto.
(WebCore::Editor::rangeOfString): Ditto.
(WebCore::Editor::scanSelectionForTelephoneNumbers): Ditto.
(WebCore::Editor::editorUIUpdateTimerFired): Remove use of live range.
(WebCore::candidateRangeForSelection): Deleted.
(WebCore::Editor::stringForCandidateRequest const): Use createLiveRange
and merged in the logic from candidateRangeForSelection.
(WebCore::Editor::fontForSelection const): Remove use of live range.
- editing/EditorCommand.cpp:
(WebCore::expandSelectionToGranularity): Use createLiveRange.
(WebCore::executeDeleteToMark): Ditto.
(WebCore::executeSelectToMark): Ditto.
(WebCore::valueFormatBlock): Ditto.
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::respondToNodeModification): Use createLiveRange.
(WebCore::FrameSelection::shouldDeleteSelection const): Ditto.
(WebCore::FrameSelection::getClippedVisibleTextRectangles const): Do the work
without a live range.
(WebCore::FrameSelection::expandSelectionToElementContainingCaretSelection): Ditto.
(WebCore::FrameSelection::elementRangeContainingCaretSelection const): Changed
to return a SimpleRange rather than a live range. Also removed redundant checks
and renamed locals to streamline the function.
(WebCore::FrameSelection::wordRangeContainingCaretSelection): Return a
SimpleRange instead of a live range.
(WebCore::FrameSelection::rangeByMovingCurrentSelection const): Ditto.
(WebCore::FrameSelection::rangeByExtendingCurrentSelection const): Ditto.
(WebCore::FrameSelection::rangeByAlteringCurrentSelection const): Ditto.
- editing/FrameSelection.h: Removed the toNormalizedRange function, since the
VisibleSelection class has a comment claiming most callers should not call it.
Updated forthe other changes above.
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use createLiveRange.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment): Ditto.
- editing/TextCheckingHelper.cpp:
(WebCore::TextCheckingHelper::TextCheckingHelper): Remove use of live range,
changing the type of m_range to SimpleRange.
(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar): Reduce use
of live range.
(WebCore::TextCheckingHelper::findFirstGrammarDetail const): Use createLiveRange.
(WebCore::TextCheckingHelper::findFirstBadGrammar const): Ditto.
(WebCore::TextCheckingHelper::isUngrammatical const): Remove use of live range.
(WebCore::TextCheckingHelper::guessesForMisspelledOrUngrammaticalRange const):
Use createLiveRange.
(WebCore::TextCheckingHelper::unifiedTextCheckerEnabled const): Updated for
different interface to get the document for a SimpleRange.
- editing/TextCheckingHelper.h: Change constructor to take a SimpleRange.
- editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed): Use createLiveRange.
(WebCore::TypingCommand::forwardDeleteKeyPressed): Ditto.
- editing/VisibleSelection.cpp:
(WebCore::VisibleSelection::firstRange const): Return a SimpleRange.
(WebCore::VisibleSelection::toNormalizedRange const): Ditto.
- editing/VisibleSelection.h: Updated for the above.
- editing/cocoa/DictionaryLookup.mm: Removed an uneeded check of the
selection range against null. Code already guards against null endpoints.
- editing/cocoa/EditorCocoa.mm:
(WebCore::selectionAsAttributedString): Added. Uses the attributedString
function with it's new argument and return value types. There's no longer
a special function for the selection in the HTMLConverter header, so we
put it here instead.
(WebCore::Editor::writeSelectionToPasteboard): Updated to use the function
above and to deal with RetainPtr.
(WebCore::Editor::writeSelection): Ditto.
- editing/cocoa/HTMLConverter.h: Removed attributedStringFromSelection and
attributedStringBetweenStartAndEnd. Renamed attributedStringFromRange to
just attributedString and renamed editingAttributedStringFromRange to
just editingAttributedString. Also renamed IncludeImagesInAttributedString
to just IncludeImages.
- editing/cocoa/HTMLConverter.mm:
(HTMLConverter::HTMLConverter): Use a SimpleRange rther than two Position
arguments to the constructor.
(HTMLConverter::convert): Use RetainPtr for the return value and the
optional out argument.
(WebCore::attributedStringFromSelection): Deleted.
(WebCore::attributedStringBetweenStartAndEnd): Deleted.
(WebCore::attributedString): Renamed the version that takes a range and
made it take a SimpleRange, not a live range.
(WebCore::editingAttributedString): Ditto.
- editing/mac/EditorMac.mm:
(WebCore::Editor::dataSelectionForPasteboard): Updated for changes to
attributedString.
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent const):
Changed to not use live ranges any more.
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::contextMenuItemSelected):
Use createLiveRange.
- page/DOMSelection.cpp:
(WebCore::DOMSelection::getRangeAt): Use createLiveRange.
(WebCore::DOMSelection::addRange): Use Ditto.
(WebCore::DOMSelection::deleteFromDocument): Ditto.
- page/DragController.cpp:
(WebCore::setSelectionToDragCaret): Removed in/out argument that was
used to update a range that was never looked at afterward.
(WebCore::DragController::concludeEditDrag): Use createLiveRange.
(WebCore::DragController::draggableElement const): Ditto.
(WebCore::DragController::startDrag): Ditto.
- page/EventHandler.cpp:
(WebCore::EventHandler::dispatchMouseEvent): Use createLiveRange.
(WebCore::EventHandler::sendContextMenuEventForKey): Ditto.
(WebCore::EventHandler::didStartDrag): Remove use of live range.
- page/Page.cpp:
(WebCore::Page::findStringMatchingRanges): Use createLiveRange.
- page/TextIndicator.cpp:
(WebCore::TextIndicator::createWithRange): Ditto.
(WebCore::TextIndicator::createWithSelectionInFrame): Ditto.
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::buildSelectionHighlight):
Use createLiveRange.
(WebCore::ServicesOverlayController::findTelephoneNumberHighlightContainingSelectionHighlight):
Use createLiveRange.
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::selectedText const): Remove use of
live range.
Source/WebKit:
- WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:
(WebKit::WebEditorClient::updateGlobalSelection): Remove use of live range.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange): Updated for changes
to attributedString functions.
(WebKit::WebPage::getContentsAsAttributedString): Ditto.
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::updateFindUIAfterPageScroll): Use createLiveRange.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getSelectedRangeAsync): Ditto.
(WebKit::WebPage::currentSelectionAsRange): Ditto.
- WebProcess/WebPage/WebPage.h: Change m_rangeForDropSnapshot
to use a SimpleRange instead of a live range.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::plainTextForContext): Overloaded for SimpleRange and
Optional<SimpleRange> as needed by code below.
(WebKit::plainTextForDisplay): Ditto.
(WebKit::WebPage::getPlatformEditorState const): Use createLiveRange.
(WebKit::WebPage::getSelectionContext): Remove use of live range.
(WebKit::WebPage::didConcludeDrop): Ditto.
(WebKit::WebPage::didConcludeEditDrag): Use createLiveRange.
(WebKit::WebPage::computeAndSendEditDragSnapshot): Ditto.
(WebKit::WebPage::startAutoscrollAtPosition): Remove use of
live range.
(WebKit::WebPage::requestEvasionRectsAboveSelection): Use
createLiveRange.
(WebKit::WebPage::requestDictationContext): Remove use of live range.
(WebKit::WebPage::replaceSelectedText): Use createLiveRange.
(WebKit::WebPage::applyAutocorrectionInternal): Ditto.
(WebKit::WebPage::autocorrectionContext): Remove use of live range.
(WebKit::WebPage::requestDocumentEditingContext): Use createLiveRange.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::getPlatformEditorState const): Remove use of
live range.
(WebKit::WebPage::attributedSubstringForCharacterRangeAsync):
Updated for change to HTMLConverter functions.
(WebKit::WebPage::handleSelectionServiceClick): Ditto.
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
Remove use of live range.
Source/WebKitLegacy/ios:
- WebCoreSupport/WebFrameIOS.mm:
(-[WebFrame selectionRectsForCoreRange:]): Changed argument type to
not require a live range. Internally, use createLiveRange and also
use a range-for loop.
(-[WebFrame selectionRectsForRange:]): Remove use of live range.
(-[WebFrame selectionRects]): Ditto.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::handleRequestedCandidates): Remove use of live range.
- WebCoreSupport/WebSelectionServiceController.mm:
(WebSelectionServiceController::handleSelectionServiceClick): Ditto.
- WebView/WebFrame.mm:
(-[WebFrame _rangeByAlteringCurrentSelection:direction:granularity:]):
Use createLiveRange.
(-[WebFrame _convertToNSRange:]): Changed to take SimpleRange.
(-[WebFrame _convertDOMRangeToNSRange:]): Updated for the above.
(-[WebFrame _markDOMRange]): Use createLiveRange.
(-[WebFrame _selectionRangeForFirstPoint:secondPoint:]): Ditto.
(-[WebFrame _selectionRangeForPoint:]): Ditto.
(-[WebFrame _selectedNSRange]): Remove use of live range.
(-[WebFrame selectedDOMRange]): Use crateLiveRange.
(-[WebFrame elementRangeContainingCaretSelection]): Ditto.
(-[WebFrame expandSelectionToWordContainingCaretSelection]): Tweaked
coding style a little.
(-[WebFrame expandSelectionToStartOfWordContainingCaretSelection]): Ditto.
(-[WebFrame wordRangeContainingCaretSelection]): Use createLiveRange.
(-[WebFrame rangeByMovingCurrentSelection:]): Ditto.
(-[WebFrame rangeByExtendingCurrentSelection:]): Ditto.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:matchStyle:]):
Use createLiveRange.
(-[WebFrame _replaceSelectionWithText:selectReplacement:smartReplace:]): Ditto.
(-[WebFrame _documentFragmentForText:]): Ditto.
- WebView/WebFrameInternal.h: Updated for changes above.
- WebView/WebHTMLRepresentation.mm:
(-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]):
Remove use of live range.
- WebView/WebHTMLView.mm:
(-[WebHTMLView _selectedRange]): Use createLiveRange.
(-[WebHTMLView _lookUpInDictionaryFromMenu:]): Remove use of live range.
(-[WebHTMLView markedRange]): Updated for change to _convertToNSRange.
(-[WebHTMLView attributedSubstringFromRange:]): Ditto.
(-[WebHTMLView _attributedStringFromDOMRange:]): Updated for changes to
HTMLConverter.
(-[WebHTMLView _legacyAttributedStringFrom:offset:to:offset:]): Remove
use of live range.
(-[WebHTMLView attributedString]): Ditto.
(-[WebHTMLView selectedAttributedString]): Ditto.
- WebView/WebImmediateActionController.h: Updated method to take a
SimpleRange instead of a live range.
- WebView/WebImmediateActionController.mm:
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Remove use of live range.
- WebView/WebTextCompletionController.mm:
(-[WebTextCompletionController doCompletion]): Use createLiveRange.
- WebView/WebView.mm:
(-[WebView _didConcludeEditDrag]): Ditto.
Source/WebKitLegacy/win:
- WebView.cpp:
(WebView::prepareCandidateWindow): Updated since toNormalizedRange
returns a SimpleRange.
(WebView::onIMERequestCharPosition): Ditto.
(WebView::onIMERequestReconvertString): Ditto.
- 7:53 AM Changeset in webkit [260724] by
-
- 13 edits1 copy1 add1 delete in trunk/Source/WebCore
Remove unnecessary inlining and templates for URL decomposition DOM functions
https://bugs.webkit.org/show_bug.cgi?id=211025
Reviewed by Alex Christensen.
- Headers.cmake: Renamed URLUtils.h to URLDecomposition.h.
- Modules/cache/DOMCacheStorage.cpp: Updated include and using namespace.
- Sources.txt: Added URLDecomposition.cpp.
- WebCore.xcodeproj/project.pbxproj: Added URLDecomposition.cpp and
renamed URLUtils.h to URLDecomposition.h.
- html/DOMURL.h: Removed the WEBCORE_EXPORT on this class. Added final.
Derive from URLDecomposition instead of URLUtils. Changed return type of
href to const&. Moved toJSON here from URLUtils. Added overrides of the
fullURL and setFullURL functions for URLDecomposition.
- html/DOMURL.idl: Removed ImplementationLacksVTable.
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::HTMLAnchorElement): Moved initialization of
boolean data members to the class definition.
- html/HTMLAnchorElement.h: Derive from URLDecomposition instead of
URLUtils. Added overrides of the fullURL and setFullURL functions for
URLDecomposition. Initialize data members here in the class definition.
- html/HTMLMediaElement.cpp: Removed unnecessary include of DOMURL.h.
- html/URLDecomposition.cpp: Added. Contains most of the code from
the URLUtils class template, which no longer needs to be in a header.
- html/URLDecomposition.h: Renamed URLUtils.h to this. It's now an
abstract base class rather than a class template using the curiously
recurring template pattern.
- html/URLSearchParams.h: Forward-declare DOMURL rather than including
the DOMURL.h header.
- html/URLUtils.h: Removed. Renamed to URLDecompostion.h.
- page/DOMWindow.cpp: Removed unneeded include of DOMURL.h.
- testing/Internals.cpp: Added include of DOMURL.h.
- 12:37 AM Changeset in webkit [260723] by
-
- 2 edits in trunk/Source/WebCore
fast/scrolling/scroll-behavior-invalidate-if-disabled.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=210917
Reviewed by Darin Adler.
The flaky failure is caused by reusing the CSSPropertyInfo value cached propertyInfoCache
after experimental flags changed. Add propertyInfoFromJavaScriptCSSPropertyName
to perform disabled checking after parsing. If the property is disabled, it will return
an invalid CSSPropertyInfo instead.
- css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
(WebCore::CSSStyleDeclaration::namedItem):
(WebCore::CSSStyleDeclaration::setNamedItem):
Apr 25, 2020:
- 10:07 PM Changeset in webkit [260722] by
-
- 12 edits in trunk/Source
[JSC] isCallable is redundant with isFunction
https://bugs.webkit.org/show_bug.cgi?id=211037
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
isCallable is only being used in two places and has the same definition as isFunction (aside from out params).
Where CallData is needed, getCallData should be used; where CallData is not needed, isFunction should be used.
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::isCallable const): Deleted.
- runtime/JSCell.h:
- runtime/JSCellInlines.h:
(JSC::JSCell::isCallable): Deleted.
Remove isCallable.
- runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::toJSON):
Use getCallData if you need CallData.
- runtime/ExceptionHelpers.cpp:
(JSC::errorDescriptionForValue):
- runtime/ObjectConstructor.cpp:
(JSC::toPropertyDescriptor):
- runtime/ObjectPrototype.cpp:
(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):
Don't use getCallData if you don't need CallData.
Source/WebCore:
- bindings/js/JSDOMConvertScheduledAction.h:
(WebCore::Converter<IDLScheduledAction>::convert):
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
Don't use getCallData if you don't need CallData.
- 9:57 PM Changeset in webkit [260721] by
-
- 2 edits in trunk/Source/WebKit
Fix internal iOS build.
https://bugs.webkit.org/show_bug.cgi?id=210521
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformBeginApplePaySetup):
- 9:44 PM Changeset in webkit [260720] by
-
- 3 edits1 add in trunk
[JSC] Handle BigInt32 INT32_MIN shift amount
https://bugs.webkit.org/show_bug.cgi?id=211030
Reviewed by Darin Adler.
JSTests:
- stress/bigint-int32-min-shift.js: Added.
(shouldBe):
(shouldThrow):
Source/JavaScriptCore:
Our BigInt shift-operation does not correctly handle INT32_MIN shift amount, and producing a wrong result.
This patch fixes it.
- runtime/Operations.h:
(JSC::shift):
- 9:09 PM Changeset in webkit [260719] by
-
- 2 edits in trunk/Source/WebCore
Build fix.
https://bugs.webkit.org/show_bug.cgi?id=210521
- Modules/applepay/ApplePaySetupFeature.mm:
- 8:32 PM Changeset in webkit [260718] by
-
- 15 edits17 adds7 deletes in trunk/Source
Move ApplePay code from WebKitAdditions to WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=210521
Source/WebCore:
I accidentally committed an older version of the patch.
This is the diff between the two to fix the internal build.
Source/WebCore/PAL:
Reviewed by Andy Estes.
- pal/cocoa/PassKitSoftLink.h:
- pal/cocoa/PassKitSoftLink.mm:
- pal/spi/cocoa/PassKitSPI.h:
- 8:03 PM Changeset in webkit [260717] by
-
- 39 edits17 adds in trunk/Source
Move ApplePay code from WebKitAdditions to WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=210521
Reviewed by Andy Estes.
Source/WebCore:
Only 4 minor modifications were necessary, as follows:
- PaymentSetupFeatures's RetainPtr<NSArray<PKPaymentSetupFeature *>> was changed to RetainPtr<NSArray> to work with C++.
- WebPaymentCoordinatorProxyAdditions messages were moved to WebPaymentCoordinatorProxy, removing the need for the extra message receiver, the Optional<WebPaymentCoordinatorProxyAdditions>, and the finishConstruction.
- WebMediaSessionManager.cpp's macros that collided with other macros were renamed. This was necessary because of different source unification.
- PaymentSetupFeatures.h was renamed to ApplePayPaymentSetupFeatures.h to be able to build with PaymentSetupFeatures.h in the SDK.
The rest is just copy and paste.
There isn't a good way to land this without breaking the build without removing the files from WebKitAdditions at the same time,
so I'll do the two at the same time late at night to not cause disruption.
- DerivedSources.make:
- Modules/applepay/ApplePayInstallmentConfiguration.h: Added.
- Modules/applepay/ApplePayInstallmentConfiguration.idl: Added.
- Modules/applepay/ApplePayPayment.h:
- Modules/applepay/ApplePayPayment.idl:
- Modules/applepay/ApplePayPaymentMethod.h:
- Modules/applepay/ApplePayPaymentMethod.idl:
- Modules/applepay/ApplePayPaymentMethodUpdate.h:
- Modules/applepay/ApplePayPaymentMethodUpdate.idl:
- Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::finishConverting):
(WebCore::requiresSupportedNetworks):
- Modules/applepay/ApplePayRequestBase.h:
- Modules/applepay/ApplePaySession.cpp:
(WebCore::finishConverting):
- Modules/applepay/ApplePaySessionPaymentRequest.h:
(WebCore::ApplePaySessionPaymentRequest::installmentConfiguration const):
(WebCore::ApplePaySessionPaymentRequest::setInstallmentConfiguration):
- Modules/applepay/ApplePaySetup.cpp: Added.
(WebCore::shouldDiscloseFeatures):
(WebCore::ApplePaySetup::getSetupFeatures):
(WebCore::ApplePaySetup::begin):
(WebCore::ApplePaySetup::ApplePaySetup):
(WebCore::ApplePaySetup::stop):
(WebCore::ApplePaySetup::suspend):
- Modules/applepay/ApplePaySetup.h: Added.
(WebCore::ApplePaySetup::create):
- Modules/applepay/ApplePaySetup.idl: Added.
- Modules/applepay/ApplePaySetupFeature.h: Added.
(WebCore::ApplePaySetupFeature::create):
(WebCore::ApplePaySetupFeature::platformFeature const):
- Modules/applepay/ApplePaySetupFeature.idl: Added.
- Modules/applepay/ApplePaySetupFeature.mm: Added.
(WebCore::ApplePaySetupFeature::type const):
(WebCore::ApplePaySetupFeature::state const):
(WebCore::ApplePaySetupFeature::supportsInstallments const):
(WebCore::ApplePaySetupFeature::ApplePaySetupFeature):
- Modules/applepay/ApplePaySetupFeatureType.h: Added.
- Modules/applepay/ApplePaySetupFeatureType.idl: Added.
- Modules/applepay/PaymentCoordinatorClient.h:
(WebCore::PaymentCoordinatorClient::getSetupFeatures):
(WebCore::PaymentCoordinatorClient::beginApplePaySetup):
(WebCore::PaymentCoordinatorClient::endApplePaySetup):
- Modules/applepay/PaymentInstallmentConfiguration.h: Added.
- Modules/applepay/PaymentInstallmentConfiguration.mm: Added.
(WebCore::toDecimalNumber):
(WebCore::platformFeatureType):
(WebCore::createPlatformConfiguration):
(WebCore::PaymentInstallmentConfiguration::PaymentInstallmentConfiguration):
(WebCore::PaymentInstallmentConfiguration::platformConfiguration const):
- Modules/applepay/PaymentMethodUpdate.h:
- Modules/applepay/cocoa/PaymentCocoa.mm:
(WebCore::finishConverting):
- Modules/applepay/cocoa/PaymentMethodCocoa.mm:
(WebCore::finishConverting):
- Modules/applepay/cocoa/PaymentMethodUpdateCocoa.mm:
(WebCore::PaymentMethodUpdate::setInstallmentGroupIdentifier):
- Modules/applepay/cocoa/PaymentSessionErrorCocoa.mm:
(WebCore::additionalError):
- Modules/applepay/paymentrequest/ApplePayRequest.idl:
- Modules/mediasession/WebMediaSessionManager.cpp:
(WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerEnabled):
(WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerState):
(WebCore::WebMediaSessionManager::mockMediaPlaybackTargetPickerDismissPopup):
(WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::removePlaybackTargetPickerClient):
(WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients):
(WebCore::WebMediaSessionManager::showPlaybackTargetPicker):
(WebCore::WebMediaSessionManager::clientStateDidChange):
(WebCore::WebMediaSessionManager::setPlaybackTarget):
(WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange):
(WebCore::WebMediaSessionManager::playbackTargetPickerWasDismissed):
(WebCore::WebMediaSessionManager::configurePlaybackTargetClients):
(WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring):
(WebCore::WebMediaSessionManager::configureWatchdogTimer):
(WebCore::WebMediaSessionManager::watchdogTimerFired):
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/cocoa/WebCoreAdditions.mm:
Source/WebCore/PAL:
- pal/cocoa/PassKitSoftLink.h:
- pal/cocoa/PassKitSoftLink.mm:
- pal/spi/cocoa/PassKitSPI.h:
Source/WebKit:
- DerivedSources.make:
- Scripts/webkit/messages.py:
- Shared/ApplePay/ApplePayPaymentSetupFeatures.h: Added.
(WebKit::PaymentSetupFeatures::platformFeatures const):
- Shared/ApplePay/ApplePayPaymentSetupFeatures.mm: Added.
(WebKit::PaymentSetupFeatures::PaymentSetupFeatures):
(WebKit::PaymentSetupFeatures::encode const):
(WebKit::PaymentSetupFeatures::decode):
(WebKit::PaymentSetupFeatures::operator Vector<Ref<WebCore::ApplePaySetupFeature>> const):
- Shared/ApplePay/PaymentSetupConfiguration.h: Added.
(WebKit::PaymentSetupConfiguration::platformConfiguration const):
- Shared/ApplePay/PaymentSetupConfiguration.mm: Added.
(WebKit::toPlatformConfiguration):
(WebKit::PaymentSetupConfiguration::PaymentSetupConfiguration):
(WebKit::PaymentSetupConfiguration::encode const):
(WebKit::PaymentSetupConfiguration::decode):
- Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:
- Shared/ApplePay/WebPaymentCoordinatorProxy.h:
(WebKit::WebPaymentCoordinatorProxy::finishConstruction): Deleted.
- Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
- Shared/ApplePay/cocoa/PaymentSetupConfiguration.mm: Added.
(WebKitAdditions::toPlatformConfiguration):
(WebKitAdditions::PaymentSetupConfiguration::PaymentSetupConfiguration):
(WebKitAdditions::PaymentSetupConfiguration::encode const):
(WebKitAdditions::PaymentSetupConfiguration::decode):
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::finishCreating):
(WebKit::WebPaymentCoordinatorProxy::getSetupFeatures):
(WebKit::WebPaymentCoordinatorProxy::beginApplePaySetup):
(WebKit::WebPaymentCoordinatorProxy::endApplePaySetup):
(WebKit::WebPaymentCoordinatorProxy::platformBeginApplePaySetup):
(WebKit::WebPaymentCoordinatorProxy::platformEndApplePaySetup):
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::finishDecoding):
(IPC::finishEncoding):
(IPC::ArgumentCoder<WebCore::PaymentInstallmentConfiguration>::encode):
(IPC::ArgumentCoder<WebCore::PaymentInstallmentConfiguration>::decode):
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::getSetupFeatures):
(WebKit::WebPaymentCoordinator::beginApplePaySetup):
(WebKit::WebPaymentCoordinator::endApplePaySetup):
- WebProcess/ApplePay/WebPaymentCoordinator.h:
- 6:24 PM Changeset in webkit [260716] by
-
- 8 edits in trunk/Source/WebCore
Commit the scrolling tree from the main thread
https://bugs.webkit.org/show_bug.cgi?id=211026
<rdar://problem/62374855>
Reviewed by Darin Adler.
ScrollingCoordinatorMac::commitTreeStateIfNeeded() passed the new state tree to
the scrolling thread which then did the commit (which updates the scrolling tree
from the state tree). However, applyLayerPositions() immediately waited for that
commit to complete, blocking the main thread anyway.
We might as well just commit the scrolling tree on the main thread. ScrollingTree::commitTreeState()
locks m_treeMutex, so this is still safe. Lock contention with the scrolling or event dispatcher
threads should be rare; those threads are both mostly responsive.
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::scrollingTreeAsText const):
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::waitForScrollingTreeCommit): Deleted.
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::commitTreeState): Deleted.
(WebCore::ThreadedScrollingTree::incrementPendingCommitCount): Deleted.
(WebCore::ThreadedScrollingTree::decrementPendingCommitCount): Deleted.
(WebCore::ThreadedScrollingTree::waitForPendingCommits): Deleted.
(WebCore::ThreadedScrollingTree::waitForScrollingTreeCommit): Deleted.
(WebCore::ThreadedScrollingTree::applyLayerPositions): Deleted.
- page/scrolling/ThreadedScrollingTree.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
- page/scrolling/nicosia/ScrollingCoordinatorNicosia.cpp:
(WebCore::ScrollingCoordinatorNicosia::commitTreeState):
- 6:01 PM Changeset in webkit [260715] by
-
- 2 edits in trunk/Source/WTF
Unreviewed. Remove the bulid warnings below since r260707.
warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare]
- wtf/URL.cpp:
(WTF::URL::setHost):
(WTF::URL::setHostAndPort):
(WTF::URL::setUser):
(WTF::URL::setPassword):
- 5:31 PM Changeset in webkit [260714] by
-
- 5 edits in trunk/Source/WebCore
Use static initialized Lock instead of LazyNeverDestroyed<Lock>
https://bugs.webkit.org/show_bug.cgi?id=211010
Reviewed by Mark Lam.
WTF::Lock can be static-initialized, so no need to use LazyNeverDestroyed<Lock>.
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::instancesMutex):
- Modules/webgpu/WebGPUPipeline.cpp:
(WebCore::WebGPUPipeline::instancesMutex):
- html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::instancesMutex):
- html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::instancesMutex):
- 5:13 PM Changeset in webkit [260713] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening, temporarily skip WebInspector tests after r210942 and r260696
https://bugs.webkit.org/show_bug.cgi?id=211035
Unreviewed gardening.
- platform/gtk/TestExpectations:
- 5:00 PM Changeset in webkit [260712] by
-
- 24 edits in trunk
[Cocoa] Deal with another round of Xcode upgrade checks
https://bugs.webkit.org/show_bug.cgi?id=211027
Reviewed by Alexey Proskuryakov.
Source/bmalloc:
- bmalloc.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized.
Source/JavaScriptCore:
- JavaScriptCore.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized.
Source/ThirdParty:
- gtest/xcode/gtest.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization, rename English localization to en,
remove Japanese, French, German; this project contains nothing localized.
Source/ThirdParty/ANGLE:
- ANGLE.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization, rename English localization to en,
remove Japanese, French, German; this project contains nothing localized.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj: Bump the upgrade check version.
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj: Bump the upgrade check version.
Source/WebInspectorUI:
- WebInspectorUI.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized.
Source/WebKit:
- WebKit.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a base localization.
Source/WebKitLegacy:
- WebKitLegacy.xcodeproj/project.pbxproj: Bump the upgrade check version.
Source/WTF:
- WTF.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized.
Tools:
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj: Bump the upgrade check version.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized. Also let the
script sort the project.
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Bump the upgrade check version.
Add a harmless base localization; this project contains nothing localized. Also let the
script sort the project.
- 4:56 PM Changeset in webkit [260711] by
-
- 4 edits2 adds in trunk
[JSC] Add fast path for BigInt32 left-shift
https://bugs.webkit.org/show_bug.cgi?id=211029
Reviewed by Saam Barati.
JSTests:
- stress/bigint-left-shift-overflow.js: Added.
(shouldBe):
(leftShift):
(noInline):
- stress/bigint-right-shift-large.js: Added.
(shouldBe):
Source/JavaScriptCore:
Currently, the left-shift operation misses the fast path for BigInt32 <> BigInt32 case. This patch adds it. We also fixes
prediction-propagation for left/right shift to use existing heap prediction instead of polluting the result with SpecBigInt.
This offer 4.5% improvement in microbenchmarks/sunspider-sha1-big-int.js.
- dfg/DFGPredictionPropagationPhase.cpp:
- runtime/Operations.h:
(JSC::shift):
- 4:47 PM Changeset in webkit [260710] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed fix for JSC Debug tests following r210853.
- runtime/IntlObject.cpp:
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):
Deal with unchecked exception by moving tryGetUtf8 call out of canonicalizeLanguageTag; it's meant to
verify the user input from canonicalizeLocaleList and needn't change the noexcept-ness of defaultLocale.
- 2:28 PM Changeset in webkit [260709] by
-
- 123 edits in trunk/Source
Prepare to remove automatic URL->String conversion operators
https://bugs.webkit.org/show_bug.cgi?id=211007
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-25
Reviewed by Darin Adler.
Source/JavaScriptCore:
- API/JSAPIGlobalObject.mm:
(JSC::JSAPIGlobalObject::moduleLoaderResolve):
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
- API/JSScript.mm:
(validateBytecodeCachePath):
(+[JSScript scriptOfType:memoryMappedFromASCIIFile:withSourceURL:andBytecodeCache:inVirtualMachine:error:]):
- inspector/ScriptDebugServer.cpp:
(Inspector::ScriptDebugServer::sourceParsed):
- parser/Nodes.h:
(JSC::ScopeNode::sourceURL const):
- runtime/CachedTypes.cpp:
(JSC::CachedSourceProviderShape::encode):
- runtime/Error.cpp:
(JSC::addErrorInfo):
- runtime/ScriptExecutable.h:
(JSC::ScriptExecutable::sourceURL const):
Source/WebCore:
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::requestFromInfo):
- Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::urlString const):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::fetch):
- Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::create):
- accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::stringValueForMSAA const):
- bindings/IDLTypes.h:
(WebCore::IDLString::isNullValue):
- bindings/js/CachedScriptSourceProvider.h:
(WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
- bindings/js/JSDOMConvertStrings.h:
(WebCore::JSConverter<IDLDOMString>::convert):
(WebCore::Converter<IDLUSVString>::convert):
(WebCore::JSConverter<IDLUSVString>::convert):
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeIfJavaScriptURL):
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::write):
- css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::updateCursorElement):
- css/CSSImageValue.cpp:
(WebCore::CSSImageValue::customCSSText const):
(WebCore::CSSImageValue::createDeprecatedCSSOMWrapper const):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontFaceSrcURI):
- dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
- dom/ExtensionStyleSheets.cpp:
(WebCore::createExtensionsStyleSheet):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):
- dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged):
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readWebArchive):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::formAction const):
- html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::canLoadURL const):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::shouldLoadLink):
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectNextSourceChild):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::canLoadURL const):
- html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::filterToken):
- inspector/InspectorAuditResourcesObject.cpp:
(WebCore::InspectorAuditResourcesObject::getResources):
- inspector/InspectorStyleSheet.cpp:
(WebCore::buildArrayForGroupings):
- inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::responseReceived):
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForCachedResource):
(WebCore::InspectorNetworkAgent::willSendRequest):
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
- inspector/agents/InspectorWorkerAgent.cpp:
(WebCore::InspectorWorkerAgent::connectToWorkerInspectorProxy):
- inspector/agents/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::didFailLoading):
- inspector/agents/worker/ServiceWorkerAgent.cpp:
(WebCore::ServiceWorkerAgent::getInitializationInfo):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::subresources const):
- loader/DocumentLoader.h:
(WebCore::DocumentLoader::clientRedirectDestinationForHistory const):
(WebCore::DocumentLoader::serverRedirectDestinationForHistory const):
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
(WebCore::createWindow):
- loader/HistoryController.cpp:
(WebCore::HistoryController::currentItemShouldBeReplaced const):
- loader/ImageLoader.cpp:
(WebCore::ImageLoader::updateFromElement):
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
- loader/LinkLoader.cpp:
(WebCore::LinkLoader::preloadIfNeeded):
(WebCore::LinkLoader::prefetchIfNeeded):
- loader/MixedContentChecker.cpp:
(WebCore::MixedContentChecker::checkFormForMixedContent const):
- loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::shouldScheduleNavigation const):
(WebCore::NavigationScheduler::scheduleLocationChange):
- loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
- loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
- loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::requestObject):
- loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::load):
- loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::addResource):
(WebCore::ApplicationCache::resourceForRequest):
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache):
(WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
(WebCore::ApplicationCacheGroup::didFinishLoadingEntry):
(WebCore::ApplicationCacheGroup::didFailLoadingEntry):
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache):
(WebCore::ApplicationCacheHost::getApplicationCacheFallbackResource):
- loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
(WebCore::ApplicationCacheStorage::findInMemoryCacheGroup const):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::cacheGroupDestroyed):
(WebCore::ApplicationCacheStorage::cacheGroupMadeObsolete):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
- loader/archive/ArchiveResourceCollection.cpp:
(WebCore::ArchiveResourceCollection::addAllResources):
(WebCore::ArchiveResourceCollection::addResource):
(WebCore::ArchiveResourceCollection::archiveResourceForURL):
- loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::didAddClient):
(WebCore::CachedCSSStyleSheet::checkNotify):
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::cachedResource const):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):
(WebCore::CachedResourceLoader::notifyFinished):
- loader/cache/CachedXSLStyleSheet.cpp:
(WebCore::CachedXSLStyleSheet::didAddClient):
(WebCore::CachedXSLStyleSheet::checkNotify):
- page/ContextMenuController.cpp:
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):
- page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):
- page/Location.cpp:
(WebCore::Location::reload):
- page/PageSerializer.cpp:
(WebCore::PageSerializer::retrieveResourcesForProperties):
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::shouldIgnoreHost):
- page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner):
(WebCore::SecurityPolicy::isBaseURLSchemeAllowed):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::reportViolation const):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::assetURL const):
- platform/network/BlobRegistryImpl.cpp:
(WebCore::BlobRegistryImpl::writeBlobToFilePath):
- platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::platformLazyInit):
- storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
- svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::sourceURI const):
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadSynchronously):
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::scope const):
- workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::hash const):
(WebCore::ServiceWorkerRegistrationKey::isMatching const):
- workers/service/context/ServiceWorkerDebuggable.cpp:
(WebCore::ServiceWorkerDebuggable::ServiceWorkerDebuggable):
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::startScriptFetch):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
Source/WebKit:
- Shared/API/APIError.h:
(API::Error::failingURL const):
- Shared/API/c/WKSharedAPICast.h:
(WebKit::toCopiedURLAPI):
- UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(setUpPagePolicyClient):
- UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:
(WebKit::reportAnErrorURL):
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::requestUserMediaAuthorizationForFrame):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::cancel):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::loadRequestWithNavigationShared):
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didExplicitOpenForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didChangeProvisionalURLForFrameShared):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::createNewPage):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame URL]):
- WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
(WebKit::NetscapePluginStream::didReceiveResponse):
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink):
(WebKit::PDFPlugin::openWithNativeApplication):
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performURLRequest):
(WebKit::PluginView::performJavaScriptURLRequest):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):
(WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad):
(WebKit::WebFrameLoaderClient::shouldForceUniversalAccessFromLocalURL):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::info const):
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::origin):
Source/WebKitLegacy/mac:
- DOM/DOMDocument.mm:
(-[DOMDocument URL]):
- DOM/DOMHTMLAnchorElement.mm:
(-[DOMHTMLAnchorElement href]):
- DOM/DOMHTMLAreaElement.mm:
(-[DOMHTMLAreaElement href]):
- DOM/DOMHTMLEmbedElement.mm:
(-[DOMHTMLEmbedElement src]):
- DOM/DOMHTMLFormElement.mm:
(-[DOMHTMLFormElement action]):
- DOM/DOMHTMLFrameElement.mm:
(-[DOMHTMLFrameElement src]):
(-[DOMHTMLFrameElement location]):
- DOM/DOMHTMLHtmlElement.mm:
(-[DOMHTMLHtmlElement manifest]):
- DOM/DOMHTMLIFrameElement.mm:
(-[DOMHTMLIFrameElement src]):
- DOM/DOMHTMLImageElement.mm:
(-[DOMHTMLImageElement longDesc]):
(-[DOMHTMLImageElement src]):
(-[DOMHTMLImageElement currentSrc]):
(-[DOMHTMLImageElement lowsrc]):
- DOM/DOMHTMLInputElement.mm:
(-[DOMHTMLInputElement src]):
- DOM/DOMHTMLLinkElement.mm:
(-[DOMHTMLLinkElement href]):
- DOM/DOMHTMLMediaElement.mm:
(-[DOMHTMLMediaElement src]):
(-[DOMHTMLMediaElement currentSrc]):
- DOM/DOMHTMLModElement.mm:
(-[DOMHTMLModElement cite]):
- DOM/DOMHTMLObjectElement.mm:
(-[DOMHTMLObjectElement data]):
- DOM/DOMHTMLQuoteElement.mm:
(-[DOMHTMLQuoteElement cite]):
- DOM/DOMHTMLScriptElement.mm:
(-[DOMHTMLScriptElement src]):
- DOM/DOMHTMLVideoElement.mm:
(-[DOMHTMLVideoElement poster]):
- DOM/DOMNode.mm:
(-[DOMNode baseURI]):
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::updateGlobalHistory):
(WebFrameLoaderClient::setTitle):
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForDataDetectedLink]):
- WebView/WebNotification.mm:
(-[WebNotification iconURL]):
- WebView/WebScriptDebugger.mm:
(WebScriptDebugger::sourceParsed):
(toNSURL): Deleted.
Source/WTF:
Too many bugs have been caused by the compiler finding a way to make a String from a URL without being visible in the code.
This does all the easy things to prepare to remove operator String& and operator NSString*.
The hard things will be done in the smaller patch that actually removes them.
- wtf/URL.cpp:
(WTF::URL::protocolIsJavaScript const):
- wtf/URL.h:
- 12:13 PM Changeset in webkit [260708] by
-
- 4 edits2 adds in trunk
[LFC][TFC] Add vertical-align: baseline support
https://bugs.webkit.org/show_bug.cgi?id=211024
Reviewed by Antti Koivisto.
Source/WebCore:
Adjust the padding with the baseline offset when the cell is baseline aligned (as opposed to the initial value of 'middle').
Test: fast/layoutformattingcontext/table-basic-row-vertical-align-baseline.html
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
- layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::Cell::setBaselineOffset):
(WebCore::Layout::TableGrid::Cell::baselineOffset const):
LayoutTests:
- fast/layoutformattingcontext/table-basic-row-vertical-align-baseline-expected.txt: Added.
- fast/layoutformattingcontext/table-basic-row-vertical-align-baseline.html: Added.
- 11:01 AM Changeset in webkit [260707] by
-
- 89 edits in trunk
Move URL to use StringView when returning substrings of the URL
https://bugs.webkit.org/show_bug.cgi?id=210431
Reviewed by Anders Carlsson.
LayoutTests/imported/w3c:
- web-platform-tests/url/url-setters-expected.txt: Updated expected results for progression in
correct behavior when port numbers are >65535. I didn't originally intend to make this improvement,
but it fell out naturally from the refactoring changes.
Source/WebCore:
- Modules/cache/DOMCacheEngine.cpp:
(WebCore::DOMCacheEngine::matchURLs): Removed unneeded calls to hasQuery.
- Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeWith): Use hasCredentials.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::redirect): Use hasCredentials.
- Modules/paymentrequest/PaymentRequest.cpp:
(WebCore::isValidURLBasedPaymentMethodIdentifier): Use hasCredentials.
- Modules/plugins/YouTubePluginReplacement.cpp:
(WebCore::createYouTubeURL): Take StringView.
(WebCore::queryKeysAndValues): Take StringView.
(WebCore::processAndCreateYouTubeURL): Use auto since URL pieces are
now returned as StringView.
(WebCore::YouTubePluginReplacement::youTubeURLFromAbsoluteURL):
Use StringView and makeString rather than StringBuilder.
- Modules/websockets/WebSocketHandshake.cpp:
(WebCore::resourceName): Use queryWithLeadingQuestionMark.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::internalLinkElement const):
Use StringView.
- dom/Document.cpp:
(WebCore::Document::setURL): Use setHostAndPort.
- dom/Element.cpp:
(WebCore::Element::findAnchorElementForLink): Update since
fragmentIdentifier returns StringView.
- dom/TreeScope.cpp: Added a comment.
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::replaceRichContentWithAttachments): Update since
lastPathComponent returns a StringView. Also got rid of some strange
use of AtomString that was not necessary and used WTFMove more.
- editing/ios/EditorIOS.mm:
(WebCore::Editor::writeImageToPasteboard): Update since
lastPathComponent returns a StringView.
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::attachmentTitleForDisplay const):
Use makeString instead of StringBuilder, and StringView instead of
String for name and extension values.
- html/HTMLPlugInElement.cpp:
(WebCore::pluginReplacementForType): Update since lastPathComponent
returns a StringView.
- html/MediaFragmentURIParser.cpp:
(WebCore::MediaFragmentURIParser::parseFragments): Update since
fragmentIdentifier returns a StringView.
- html/URLUtils.h: Changed many functions to take a StringView, changed
various other functions to call toString, since the underlying URL
function now returns a StringView. Updated names since "pass" is now
"password".
(WebCore::countASCIIDigits): Added. Replaces unusual function
named parsePortFromStringPosition because we can use StringView now
and so don't need such an unusual function.
- loader/AdClickAttribution.cpp:
(WebCore::AdClickAttribution::parseConversionRequest): Use hasCredentials.
Also removed unnecessary use of ASCIILiteral that hurts performance
a tiny bit.
(WebCore::AdClickAttribution::urlForTesting const): Use makeString
instead of StringBuilder.
- loader/CrossOriginAccessControl.cpp:
(WebCore::validateCrossOriginRedirectionURL): Use hasCredentials.
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest): Use hasCredentials.
- loader/FormSubmission.cpp:
(WebCore::appendMailtoPostFormDataToURL): Update since query returns
StringView.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument): Use equalRespectingNullity on
fragment identifiers to preserve behavior, since at this time
StringView == StringView does not respect nullity, but String == String does.
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::createFileURL): Use fileURLWithFileSystemPath.
- loader/appcache/ManifestParser.cpp:
(WebCore::manifestPath): Return a StringView.
(WebCore::parseManifest): Use StringView.
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::calculateItemInCollection const): Update since
fragmentIdentifer returns a StringView.
- loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::splitFragmentIdentifierFromRequestURL): Ditto.
- page/FrameView.cpp:
(WebCore::FrameView::scrollToFragment): Ditto.
(WebCore::FrameView::scrollToFragmentInternal): Updated log message.
- page/History.cpp:
(WebCore::History::stateObjectAdded): Updated for URL::password name change
and to use the new stringWithoutQueryOrFragmentIdentifier rather than the
old equalIgnoringQueryAndFragment.
- page/Location.cpp:
(WebCore::Location::href const): Use removeCredentials.
(WebCore::Location::port const): Streamlined.
(WebCore::Location::pathname const): Use an ASCIILiteral.
(WebCore::Location::search const): Use queryWithLeadingQuestionMark.
(WebCore::Location::hash const): Use fragmentIdentifierWithLeadingNumberSign.
(WebCore::Location::setPort): Use parseUInt16.
- page/UserContentURLPattern.cpp: Coding style tweaks.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::appendFileExtensionIfNecessary):
Use contains instead of reverseFind to check for a period in the filename.
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load): Updated since lastPathComponent is a StringView.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::convertToInternalProtocol): Updated to use makeString since
setProtocol takes a StringView.
- platform/network/ResourceHandleInternal.h: Renamed m_pass to m_password
and call password instead of pass.
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::removeCredentials): Use removeCredentials.
- platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::createCFURLConnection): Updated for m_password
name change.
(WebCore::ResourceHandle::willSendRequest): Updated for m_password and
password name changes.
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication): Ditto.
- platform/network/curl/CurlProxySettings.cpp:
(WebCore::CurlProxySettings::setUserPass): Updated for setPassword name change.
(WebCore::createProxyUrl): Use hasCredentials, updated for password name change.
- platform/network/curl/CurlProxySettings.h:
(WebCore::CurlProxySettings::password const): Updated for password name change.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Updated for
m_password name change.
(WebCore::ResourceHandle::getCredential): Ditto.
(WebCore::ResourceHandle::willSendRequest): Updated for m_password and
password name changes.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection): Updated for m_password
and setPassword name changes.
(WebCore::ResourceHandle::willSendRequest): Ditto.
(WebCore::ResourceHandle::tryHandlePasswordBasedAuthentication): Ditto.
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::createSoupURI const): Updated for password name change.
- platform/network/soup/URLSoup.cpp:
(WebCore::soupURIToURL): Updated for setPassword name change.
- platform/win/PasteboardWin.cpp:
(WebCore::writeURL): Updated since lastPathComponent returns a StringView.
(WebCore::filesystemPathFromUrlOrTitle): Ditto.
(WebCore::Pasteboard::write): Ditto.
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::createFilterOperations): Updated since
fragmentIdentifier returns a StringView.
- workers/WorkerLocation.cpp:
(WebCore::WorkerLocation::port const): Streamlined.
(WebCore::WorkerLocation::pathname const): Use an ASCIILiteral.
(WebCore::WorkerLocation::search const): Use queryWithLeadingQuestionMark.
(WebCore::WorkerLocation::hash const): Use fragmentIdentifierWithLeadingNumberSign.
- workers/service/ServiceWorkerRegistrationKey.cpp:
(WebCore::ServiceWorkerRegistrationKey::ServiceWorkerRegistrationKey):
Updated for hasFragmentIdentifier name change.
- workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::topOriginURL): Simplified code to set port.
- workers/service/server/SWServer.cpp:
(WebCore::originURL): Ditto.
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::open): Updated for setPassword name change.
Source/WebKit:
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRedirection): Use hasCredentials.
(WebKit::NetworkLoadChecker::applyHTTPSUpgradeIfNeeded const):
Remove use of ASCIILiteral for setProtocol.
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl): Updated for
password name change.
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection): Ditto.
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): Updated
for password name change.
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection): Ditto.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::NetworkDataTaskSoup): Updated for
password name change.
(WebKit::NetworkDataTaskSoup::applyAuthenticationToRequest): Ditto.
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection): Ditto.
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSPolicySetting const):
Use != to compare hosts, rather than hostsAreEqual.
(WebKit::NetworkDataTaskSoup::shouldAllowHSTSProtocolUpgrade const):
Refactored to use to match the function above. - Shared/API/APIURL.h:
(API::URL::host const): Removed validity check; WTF::URL::host
returns null if the URL is invalid.
(API::URL::protocol const): Ditto.
(API::URL::path const): Ditto.
(API::URL::lastPathComponent const): Ditto. Also added toString
since WTF::URL::lastPathComponent now returns a StringView.
- UIProcess/Cocoa/DownloadClient.mm:
(WebKit::DownloadClient::didFinish): Use hasFragmentIdentifier.
- UIProcess/DeviceIdHashSaltStorage.cpp:
(WebKit::DeviceIdHashSaltStorage::loadStorageFromDisk):
Refactored a bit and use fileURLWithFileSystemPath and
updated since lastPathComponent returns a StringView.
- UIProcess/Plugins/PluginInfoStore.cpp:
(WebKit::pathExtension): Updated since lastPathComponent
returns a StringView. Refactored a little.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
Use truncatedForUseAsBase.
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
Use != to compare hosts, rather than hostsAreEqual.
(WebKit::WebPageProxy::decidePolicyForNewWindowAction): Ditto.
(WebKit::WebPageProxy::createNewPage): Ditto.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::assumeReadAccessToBaseURL):
Use truncatedForUseAsBase.
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::initializeAppBoundDomains):
Don't use ASCIILiteral for argument to setProtocol.
- WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::WebMediaKeyStorageManager::getMediaKeyOrigins):
Use fileURLWithFileSystemPath, also refactored a bit.
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::installPDFDocument): Updated since
fragmentIdentifier returns a StringView.
- WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle): Streamlined
the implementation a bit.
- WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::WebDragClient::declareAndWriteDragImage):
Updated since lastPathComponent returns a StringView.
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.mm:
(shouldTryAppLink): Compare hosts with == rather than using hostsAreEqual.
- WebView/WebFrame.mm:
(-[WebFrame _documentFragmentForImageData:withRelativeURLPart:andMIMEType:]):
Updated since fakeURLWithRelativePart takes a StringView. Also use RetainPtr
instead of an explicit call to release.
- WebView/WebHTMLView.mm:
(-[WebHTMLView _web_documentFragmentFromPasteboard:pasteboardType:imageMIMEType:]):
Updated since fakeURLWithRelativePart takes a StringView. No conversion
directly from NSString to StringView, so we have to explicitly use a String.
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _defaultAnimationController]): Update
since protocolIs takes a StringView. No conversion directly from
NSString to StringView, so we have to explicitly use a String.
Source/WebKitLegacy/win:
- Plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::PluginDatabase): Moved initialization of
m_persistentMetadataCacheIsLoaded to the class definition.
(WebCore::PluginDatabase::MIMETypeForExtension const): Take StringView.
(WebCore::PluginDatabase::findPlugin): Use StringView.
- Plugins/PluginDatabase.h: Changed MIMETypeForExtension to take
a StringView. Took out some unneeded declarations. Initialized
m_persistentMetadataCacheIsLoaded here in the class definition.
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::objectContentType): Use StringView a little more.
- WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::searchWithGoogle): Streamlined the implementation a bit.
(WebContextMenuClient::lookUpInDictionary): Added "using namespace WebCore".
Source/WTF:
- wtf/URL.cpp: Remove unused CharBuffer type. Remove UCharBuffer
type and write the type explicitly in the 3 places it's used.
Removed the invalidPortNumber constant, since we use Optional
instead of a special port number now.
(WTF::copyASCII): Remove unnecessary special case for empty string.
Tweaked coding style and comment a bit.
(WTF::URL::URL): Streamlined by getting rid of a local variable.
(WTF::shouldTrimFromURL): Tweaked coding style.
(WTF::URL::lastPathComponent const): Return a StringView.
Also, use the pathStart function for clarity.
(WTF::URL::port const): Use a StringView to call parseUInt16.
(WTF::URL::protocolHostAndPort const): Optimized to always allocate
the string in the right size rather than removing characters from it
after creating it.
(WTF::decodeEscapeSequence): Added. Factored out from the function
below to make it a little more readable.
(WTF::decodeEscapeSequencesFromParsedURL): Convert a null StringView
to a null String rather than an empty String, use a stack buffer and
the helper function above, and added some FIXME comments about
encoding handling.
(WTF::URL::user const): Simplified by calling encodedUser.
(WTF::URL::password const): Simplified by calling encodedPassword.
(WTF::URL::encodedUser const): Return a StringView.
(WTF::URL::encodedPassword const): Ditto. Also renamed from encodedPass.
(WTF::URL::fragmentIdentifier const): Ditto.
(WTF::URL::hasFragmentIdentifier const): Moved to header so it can
be inlined.
(WTF::URL::truncatedForUseAsBase const): Renamed from baseAsString.
This function is currently only used with local file URLs and it's
not perfectly clear to me precisely what it is for, hence the name
is not so great.
(WTF::URL::fileSystemPath const): Removed unneeded check for validity
since isLocalFile does that check. Removed unneeded typecast now that
path returns a StringView.
(WTF::defaultPortForProtocolMapForTesting): Deleted.
(WTF::ensureDefaultPortForProtocolMapForTesting): Deleted.
(WTF::registerDefaultPortForProtocolForTesting): Deleted.
(WTF::clearDefaultPortForProtocolMapForTesting): Deleted.
(WTF::defaultPortForProtocol): Deleted.
(WTF::isDefaultPortForProtocol): Deleted.
(WTF::protocolIsInternal): Rewrote to take a StringView. Before it
was written as a template that looked like it supported classes other
than String, but actually would crash if called on a StringView.
(WTF::URL::protocolIs const): Removed unneeded explicit cast to StringView.
(WTF::URL::query const): Return a StringView.
(WTF::URL::path const): Return a StringView, use the pathStart
function for clarity.
(WTF::URL::setProtocol): Use a toStringWithoutCopying to save some
work when making the protocol canonical. Call parse instead of
creating a URLParser here.
(WTF::URL::credentialsEnd const): Added. Helper for various functions
that manipulate the credentials section.
(WTF::URL::setHost): Take StringView. Streamlined the code by using
StringView::contains, by using makeString rather than StringBuilder,
and by calling parse instead of creating a URLParser here.
(WTF::URL::removePort): Deleted, since setPort takes an Optional now.
(WTF::URL::setPort): Take Optional<uint16_t>. Call parse instead of
creating a URLParser here.
(WTF::URL::removeHostAndPort): Deleted. Callers can pass a null
StringView to setHostAndPort instead.
(WTF::URL::setHostAndPort): Take StringView. Don't remove the old
host and port in the nomral case where we end up overwriting the entire
URL at the end of the function anyway. Use parseUInt16 instead of
toIntStrict to check port number for validity, which makes sure we will
reject port numbers larger than 65535. Use makeString instead of
StringBuilder and call parse rather than creating a URLParser here.
(WTF::parse): Added. Helper function for when we create a new string
and want to parse it as the new contents of the URL. Used in almost
every setter function.
(WTF::URL::remove): Added. Helper function for efficiently removing
a piece of the URL string and re-parsing. Used in many setter functions.
(WTF::URL::setUser): Take StringView. Use makeString instead of
StringBuilder, and parse and remove instead of creating a URLParser here.
(WTF::URL::setPassword): Renamed from setPass. Take StringView.
Use makeString instead of StringBuilder, and parse and remove instead of
creating a URLParser here.
(WTF::URL::removeCredientials): Added. Efficiently removes both the
user name and password if either is present.
(WTF::URL::setFragmentIdentifier): Use parse instead of creating
a URL parser here.
(WTF::URL::removeFragmentIdentifier): Removed unnecessary checks for
things already optimized by String::left. Could later consider merging
this in with setFragmentIdentifier, using a null vs. empty distinction,
but not doing that for now.
(WTF::URL::setQuery): Take StringView.
(WTF::URL::setPath): Take StringView.
(WTF::stringWithoutQueryOrFragmentIdentifier): Added.
(WTF::stringWithoutFragmentIdentifier): Added.
(WTF::equalIgnoringFragmentIdentifier): Simplified implementation by
using stringWithoutFragmentIdentifier.
(WTF::equalIgnoringQueryAndFragment): Deleted.
(WTF::hostsAreEqual): Deleted.
(WTF::URL::isMatchingDomain const): Take StringView.
(WTF::protocolIs): Take StringView.
(WTF::URL::protocolIs): Moved to inline in the header.
(WTF::URL::strippedForUseAsReferrer const): Rewrite for efficiency.
(WTF::protocolIsJavaScript): Moved to inline in the header.
(WTF::protocolIsInHTTPFamily): Take StringView.
(WTF::aboutBlankURL): Use ASCIILiteral.
(WTF::aboutSrcDocURL): Use ASCIILiteral.
(WTF::portAllowed): Removed 65535 as a blocked port; wasn't needed.
(WTF::mimeTypeFromDataURL): Take StringView.
(WTF::URL::stringCenterEllipsizedToLength const): Tweaked style.
(WTF::URL::fakeURLWithRelativePart): Take StringView.
(WTF::URL::fileURLWithFileSystemPath): Take StringView..
(WTF::URL::queryWithLeadingQuestionMark const): Added.
(WTF::URL::fragmentIdentifierWithLeadingNumberSign const): Added.
(WTF::URL::hostIsIPAddress): Tweak coding style.
- wtf/URL.h: Made URLTextEncoding destructor protected. Removed
unused forward declaration of URLHash structure. Use WTF_EXPORT_PRIVATE
on functions from URL rather than on the whole class, since the style
checker told me to do that. Moved some inline function bodies out of
the class definition for clarity and to keep the style checker happy.
Updated many arguemnts from String to StringView and return values for
substrings of the URL to StringView. Removed some unused functions and
some obsolete comments.
- wtf/cf/CFURLExtras.cpp:
(WTF::isCFURLSameOrigin): Use hasCredentials.
- wtf/text/StringView.cpp:
(WTF::StringView::endsWith const): Added.
(WTF::parseUInt16): Added.
(WTF::equalRespectingNullity): Added.
(WTF::StringView::contains const): Added overload that takes a
const char* so the call site doesn't have to convert it to a StringView.
- wtf/text/StringView.h: Updated for the additions above.
Also added a default start of 0 to the find function.
- wtf/text/WTFString.cpp:
(WTF::charactersToIntStrict): Removed unneeded explicit template argument.
(WTF::charactersToUIntStrict): Ditto.
(WTF::charactersToInt64Strict): Ditto.
(WTF::charactersToUInt64Strict): Ditto.
(WTF::charactersToIntPtrStrict): Ditto.
(WTF::charactersToInt): Ditto.
(WTF::charactersToUInt): Ditto.
(WTF::charactersToInt64): Ditto.
(WTF::charactersToUInt64): Ditto.
(WTF::charactersToIntPtr): Ditto.
Tools:
- TestWebKitAPI/Tests/WTF/URL.cpp: Removed the test for
equalIgnoringQueryAndFragment since we removed that function.
Updated for rename of URL::password from URL::pass.
Updated arguments to isMatchingDomain to pass literals that can be converted
to StringView rather than ASCIILiteral, which StringView doesn't yet support.
- TestWebKitAPI/Tests/WebCore/URLParserTextEncoding.cpp:
(TestWebKitAPI::checkURL): Updated for rename of URL::password from URL::pass.
(TestWebKitAPI::checkRelativeURL): Ditto.
(TestWebKitAPI::checkURLDifferences): Ditto.
(TestWebKitAPI::checkRelativeURLDifferences): Ditto.
(TestWebKitAPI::testUserPassword): Ditto.
- 10:03 AM Changeset in webkit [260706] by
-
- 3 edits in trunk/Source/WebCore
AX: Improve tracking of Element* pointers in AXObjectCache with WeakHashSet
https://bugs.webkit.org/show_bug.cgi?id=210879
Reviewed by Daniel Bates.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
(WebCore::filterListForRemoval):
(WebCore::AXObjectCache::performDeferredCacheUpdate):
- accessibility/AXObjectCache.h:
- 9:08 AM Changeset in webkit [260705] by
-
- 4 edits2 adds in trunk
[Web Animations] KeyframeEffect should ensure its target remains alive
https://bugs.webkit.org/show_bug.cgi?id=211019
Patch by Antoine Quint <Antoine Quint> on 2020-04-25
Reviewed by Daniel Bates.
Source/WebCore:
Test: webanimations/keyframe-effect-target-kept-alive.html
Make KeyframeEffect::m_target a RefPtr so that assigning an element to effect.target guarantees that element
is kept alive even if there are no other references to that element.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::setTarget):
- animation/KeyframeEffect.h:
LayoutTests:
Add a test that creates a KeyframeEffect targeting an element with no other reference and trigger
garbage collection to check that the effect's target exists. This test would have failed prior to
this patch's code changes.
- webanimations/keyframe-effect-target-kept-alive-expected.txt: Added.
- webanimations/keyframe-effect-target-kept-alive.html: Added.
- 8:46 AM Changeset in webkit [260704] by
-
- 7 edits in trunk/Source/WebKit
IPC::Decoder::isInvalid() should be renamed to isValid()
<https://webkit.org/b/211000>
Reviewed by Darin Adler.
Negative logic is more difficult to reason about than positive
logic.
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchMessage):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::dispatchThreadMessageReceiverMessage):
(IPC::Connection::dispatchSyncMessage):
- Platform/IPC/Connection.h:
(IPC::Connection::sendWithAsyncReply):
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::create):
- Platform/IPC/Decoder.h:
(IPC::Decoder::isValid const): Rename from isInvalid()
and invert logic.
(IPC::Decoder::isInvalid const): Rename to isValid().
- Platform/IPC/MessageSender.h:
- UIProcess/AuxiliaryProcessProxy.h:
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):
- Change Decoder::isInvalid() to Decoder::isValid() and reverse the Boolean logic.
- 8:22 AM Changeset in webkit [260703] by
-
- 4 edits in trunk/Source/WebCore
[LFC][TFC] Cleanup TableFormattingContext::layoutInFlowContent
https://bugs.webkit.org/show_bug.cgi?id=211023
Reviewed by Sam Weinig.
Move some code to dedicated functions.
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForRows):
(WebCore::Layout::TableFormattingContext::setUsedGeometryForSections):
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
(WebCore::Layout::TableFormattingContext::initializeDisplayBoxToBlank const): Deleted.
(WebCore::Layout::TableFormattingContext::setComputedGeometryForRows): Deleted.
(WebCore::Layout::TableFormattingContext::setComputedGeometryForSections): Deleted.
- layout/tableformatting/TableFormattingContext.h:
- layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::cellHeigh const):
(WebCore::Layout::TableFormattingContext::Geometry::computedColumnWidth const):
(WebCore::Layout::TableFormattingContext::Geometry::tableCellHeightAndMargin const): Deleted.
- 7:46 AM Changeset in webkit [260702] by
-
- 3 edits in trunk/Tools
[Flatpak SDK][EWS] Install dependencies step needs configuration as argument
https://bugs.webkit.org/show_bug.cgi?id=210913
Follow-up on r260560. The same change is needed for EWS bots.
Reviewed by Philippe Normand.
- BuildSlaveSupport/ews-build/steps.py:
(InstallGtkDependencies): Pass 'configuration' value (Release, Debug).
(InstallWpeDependencies): Pass 'configuration' value (Release, Debug).
- 7:41 AM Changeset in webkit [260701] by
-
- 1 edit6 adds in trunk/LayoutTests
[GTK] Gardening, emit baselines after r260690
https://bugs.webkit.org/show_bug.cgi?id=211022
Unreviewed gardening.
- platform/gtk/imported/w3c/web-platform-tests/css/css-animations/animation-base-response-001-expected.txt:
Added after r260690.
- platform/gtk/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any-expected.txt:
Added after r260690.
- platform/gtk/imported/w3c/web-platform-tests/wasm/jsapi/global/value-set.any.worker-expected.txt:
Added after r260662.
- 6:50 AM Changeset in webkit [260700] by
-
- 2 edits in trunk/JSTests
Skip stress/butterfly-zero-unused-butterfly-properties.js on MIPS
https://bugs.webkit.org/show_bug.cgi?id=211016
Unreviewed Gardening.
Patch by Paulo Matos <Paulo Matos> on 2020-04-25
- stress/butterfly-zero-unused-butterfly-properties.js:
- 5:05 AM Changeset in webkit [260699] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Remove the build warning below since r260247.
warning: unused parameter ‘foo’ [-Wunused-parameter]
No new tests, no new behaviors.
- testing/Internals.cpp:
(WebCore::Internals::hasSandboxIOKitOpenAccessToClass):
- 2:23 AM Changeset in webkit [260698] by
-
- 5 edits in trunk/LayoutTests
Skip legacy media controls tests on macOS and iOS
https://bugs.webkit.org/show_bug.cgi?id=211015
<rdar://problem/62064255>
Unreviewed test gardening.
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/wk2/TestExpectations:
- 2:14 AM Changeset in webkit [260697] by
-
- 15 edits2 deletes in trunk
[Intl] Locale validation/canonicalization should defer to ICU
https://bugs.webkit.org/show_bug.cgi?id=210853
Reviewed by Darin Adler.
JSTests:
- stress/intl-collator.js:
- stress/intl-datetimeformat.js:
- stress/intl-numberformat.js:
- stress/intl-object.js:
- stress/intl-pluralrules.js:
- stress/intl-relativetimeformat.js:
Adjust tests, since one of the two fixes in r260151 no longer applies
(and certain sensitivities apply to older ICU versions).
- test262/expectations.yaml:
Mark eight new passes, two new fails, and six changed failures.
It is an unfortunate and baffling truth that the Intl tests of test262 are often not spec tests at all,
but effectively ICU/CLDR regression tests. These are not carrots worth chasing.
Source/JavaScriptCore:
The mappings for locale canonicalization in latest CLDR are sufficiently complex
that it really no longer makes sense not to have ICU do this work for us.
This means the UTS 35 canonicalization desired by ECMA-402 will not be fully achievable until ICU ~67,
but it's better than reaching right into CLDR and pretending that we *are* ICU.
(On this point, we thus align with V8 and diverge from SM.)
Of course, we can still add our own pre-validations / post-canonicalizations if desired.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/generateIntlCanonicalizeLanguage.py: Removed.
- runtime/IntlObject.cpp:
(JSC::intlAvailableLocales):
(JSC::intlCollatorAvailableLocales):
(JSC::canonicalizeLanguageTag):
(JSC::canonicalizeLocaleList):
(JSC::defaultLocale):
(JSC::removeUnicodeLocaleExtension):
(JSC::addMissingScriptLocales): Deleted. This one was ostensibly a fix for an old ICU bug.
(JSC::privateUseLangTag): Deleted.
(JSC::preferredLanguage): Deleted.
(JSC::preferredRegion): Deleted.
(JSC::canonicalLangTag): Deleted.
- ucd/language-subtag-registry.txt: Removed.
- 1:56 AM Changeset in webkit [260696] by
-
- 4 edits in trunk/Source
Source/WebInspectorUI:
REGRESSION(210942): [GTK][WPE] Unreviewed, EWS build bots fail in compile-webkit step
https://bugs.webkit.org/show_bug.cgi?id=211014
- CMakeLists.txt: Remove creation of file 'inspector-resources.stamp'.
Source/WebKit:
REGRESSION(210942): [GTK][WPE] EWS build bots fail in compile-webkit step
https://bugs.webkit.org/show_bug.cgi?id=211014
Make command that generates 'InspectorGResourceBundle.xml' depend on target
WebInspectorUI, instead of file 'inspector-resources.stamp'.
- InspectorGResources.cmake:
- 1:10 AM Changeset in webkit [260695] by
-
- 8 edits in branches/safari-610.1.11-branch/Source
Versioning.
- 1:00 AM Changeset in webkit [260694] by
-
- 1 copy in tags/Safari-610.1.11.2
Tag Safari-610.1.11.2.
- 12:47 AM Changeset in webkit [260693] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix internal build by using strcmp instead of using string literal comparison
https://bugs.webkit.org/show_bug.cgi?id=211011
Reviewed by Keith Miller.
Use strcmp for string literal comparison to expect that this is fully handled by compiler and converted into constant at compile time.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- 12:24 AM Changeset in webkit [260692] by
-
- 3 edits2 adds in trunk
Suppress ASan on DFG::clobberize() to work around an ASan bug.
https://bugs.webkit.org/show_bug.cgi?id=211012
<rdar://problem/62275430>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
ASan was incorrectly thinking that we're accessing invalid stack memory when we're not.
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
LayoutTests:
Test is courtesy of Fabien Duchene and Pinki Gyanchandani.
- js/suppress-asan-on-clobberize-to-workaround-asan-bug-expected.txt: Added.
- js/suppress-asan-on-clobberize-to-workaround-asan-bug.html: Added.
Apr 24, 2020:
- 10:04 PM Changeset in webkit [260691] by
-
- 2 edits in trunk/Source/WebKit
[WPE][Debug] Unreviewed, fix build after r260063
https://bugs.webkit.org/show_bug.cgi?id=211009
r260063 removed include of WebProcess.h in WebSocketProvider.cpp,
which broke unified builds in WPE Debug.
- WebProcess/Network/WebSocketProvider.cpp:
- 9:58 PM Changeset in webkit [260690] by
-
- 90 edits1 move43 adds1 delete in trunk
Fix WASM Error classes and re-sync wpt/wasm/jsapi from upstream
https://bugs.webkit.org/show_bug.cgi?id=210980
Reviewed by Keith Miller.
JSTests:
- wasm/modules/js-wasm-cycle.js:
- wasm/modules/wasm-wasm-cycle.js:
- wasm/stress/too-many-locals.js:
LayoutTests/imported/w3c:
web-platform-tests revision: 028bd8650758
- web-platform-tests/wasm/jsapi/*: Updated.
Source/JavaScriptCore:
assert_throws_js() harness, which is extensively used by wpt/wasm/jsapi tests,
was recently updated to assert that passed constructors subclass Error in
spec-perfect way.
With this patch, WebAssembly errors have Error as Prototype? of their constructors
and define correct "name" and "message" properties on their prototypes, aligning JSC
with the spec [1], V8 and SpiderMonkey.
[1]: https://webassembly.github.io/spec/js-api/#error-objects
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init):
- wasm/js/WebAssemblyCompileErrorPrototype.cpp:
(JSC::WebAssemblyCompileErrorPrototype::finishCreation):
- wasm/js/WebAssemblyLinkErrorPrototype.cpp:
(JSC::WebAssemblyLinkErrorPrototype::finishCreation):
- wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:
(JSC::WebAssemblyRuntimeErrorPrototype::finishCreation):
- 6:32 PM Changeset in webkit [260689] by
-
- 2 edits in trunk/Source/WebKit
WebPasteboardProxy::getPasteboardStringsForType() and WebPasteboardProxy::readURLFromPasteboard() should check return value of SharedMemory::createHandle()
<https://webkit.org/b/211002>
Reviewed by Wenson Hsieh.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
- Check result of SharedMemory::createHandle() and return early on failure.
- 5:52 PM Changeset in webkit [260688] by
-
- 17 edits in branches/safari-610.1.11-branch
Cherry-pick r260486. rdar://problem/62349885
Fix MACCATALYST build failures
https://bugs.webkit.org/show_bug.cgi?id=210815
Reviewed by Tim Horton.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
No new tests, no functional change.
- Configurations/FeatureDefines.xcconfig:
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
- Configurations/FeatureDefines.xcconfig:
- UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _isShowingVideoPictureInPicture]): (-[WKWebView _mayAutomaticallyShowVideoPictureInPicture]):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::applicationDidBecomeActive):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/PlatformEnable.h:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260486 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [260687] by
-
- 22 edits in branches/safari-610.1.11-branch
Cherry-pick r260412. rdar://problem/62349885
Fix build failures when video fullscreen and picture-in-picture is disabled
https://bugs.webkit.org/show_bug.cgi?id=210777
Reviewed by Eric Carlson.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
Wrap video fullscreen and picture-in-picture related code with "#if ENABLE(VIDEO_PRESENTATION_MODE)".
- Configurations/FeatureDefines.xcconfig:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h:
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm: (WebCore::VideoLayerManagerObjC::setVideoLayer): (WebCore::VideoLayerManagerObjC::requiresTextTrackRepresentation const): (WebCore::VideoLayerManagerObjC::syncTextTrackBounds): (WebCore::VideoLayerManagerObjC::setTextTrackRepresentation):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
Wrap video fullscreen and picture-in-picture related code with "#if ENABLE(VIDEO_PRESENTATION_MODE)".
- Configurations/FeatureDefines.xcconfig:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenGravity): (WebKit::RemoteMediaPlayerProxy::updateVideoFullscreenInlineImage): (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode): (WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged): (WebKit::RemoteMediaPlayerProxy::setBufferingPolicy):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm: (WebKit::RemoteMediaPlayerProxy::prepareForPlayback):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
Source/WebKitLegacy/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WTF:
- wtf/PlatformEnable.h:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260412 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [260686] by
-
- 3 edits2 adds in branches/safari-610.1.11-branch
Cherry-pick r260450. rdar://problem/62350884
[Async overflow scroll] Overflow that's hidden on one axis is scrollable on that axis
https://bugs.webkit.org/show_bug.cgi?id=210771
<rdar://problem/62080331>
Reviewed by Tim Horton.
Source/WebCore:
eventCanScrollContents() should check the presence of enabled scrollbars, like
ScrollAnimator::handleWheelEvent() does.
Test: fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html
- page/scrolling/ScrollingTreeScrollingNode.cpp: (WebCore::ScrollingTreeScrollingNode::eventCanScrollContents const):
LayoutTests:
- fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis-expected.txt: Added.
- fast/scrolling/mac/async-scroll-overflow-hidden-on-one-axis.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:52 PM Changeset in webkit [260685] by
-
- 2 edits in branches/safari-610.1.11-branch/Source/WebKit
Cherry-pick r260390. rdar://problem/62351354
When SpeculativeLoadManager is destroyed, properly clean up its PendingFrameLoads
https://bugs.webkit.org/show_bug.cgi?id=210759
<rdar://problem/62056856>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-20
Reviewed by Darin Adler.
Recent work on the resourceLoadStatistics layout tests increased the amount we swap out the WebsiteDataStore.
When this happens, the NetworkSession is eventually destroyed in the NetworkProcess, sometimes when running the next test.
An assertion was firing in the PendingFrameLoad destructor because it hadn't been marked as complete when it was destroyed.
Rather than remove the assertion, when we destroy the SpeculativeLoadManager (which only happens when a WebsiteDataStore
is destroyed) during a speculative pending frame load, just mark the pending frame load as complete because it is being cancelled.
Marking the pending frame load as complete can tell the SpeculativeLoadManager to mutate m_pendingFrameLoads, which we don't want
to do while iterating, so copy the RefPtrs into a Vector first then iterate that to get them all.
This fixes an assertion that was sometimes hit in http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects-database.html
but only after running other tests that had initiated speculative pending frame loads. This was ostensibly started by r260322 but is quite unrelated.
- NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: (WebKit::NetworkCache::SpeculativeLoadManager::~SpeculativeLoadManager):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@260390 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:51 PM Changeset in webkit [260684] by
-
- 11 edits in trunk/Source
[iOS] Unable to sign up on twitter.com
https://bugs.webkit.org/show_bug.cgi?id=211003
<rdar://problem/58804852>
Reviewed by Darin Adler.
Source/WebCore:
This is similar to the bug we had on nytimes.com and that was fixed in
r258767. However, instead of a 'resize' event, it is a 'change' event
on a MediaQueryList that is getting twitter.com in a bad state.
The issue is that when we home out of Safari, SpringBoard takes does
a snapshot sequence at various sizes / orientations and this causes
many JS events to get fired (e.g. 'resize', 'orientationchange',
'change', ...), which can get some sites in a bad state. To address
the issue, we now prevent firing of ALL JS events during the
SpringBoard snapshot, instead of merely preventing the 'resize' ones.
- dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
- page/FrameView.cpp:
(WebCore::FrameView::sendResizeEventIfNeeded):
- page/Page.h:
(WebCore::Page::shouldFireEvents const):
(WebCore::Page::setShouldFireEvents):
(WebCore::Page::shouldFireResizeEvents const): Deleted.
(WebCore::Page::setShouldFireResizeEvents): Deleted.
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKApplicationStateTrackingView.mm:
(-[WKApplicationStateTrackingView _willBeginSnapshotSequence]):
(-[WKApplicationStateTrackingView _didCompleteSnapshotSequence]):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setShouldFireEvents):
(WebKit::WebPage::setShouldFireResizeEvents): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 5:34 PM Changeset in webkit [260683] by
-
- 19 edits1 add in trunk
Return BigInt32 whenever we can
https://bugs.webkit.org/show_bug.cgi?id=210922
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/sunspider-sha1-big-int.js: Added.
(hex_sha1):
(b64_sha1):
(str_sha1):
(hex_hmac_sha1):
(b64_hmac_sha1):
(str_hmac_sha1):
(bigIntToInt32):
(sha1_vm_test):
(core_sha1):
(sha1_ft):
(sha1_kt):
(core_hmac_sha1):
(safe_add):
(rol):
(str2binb):
(binb2hex):
(binb2b64):
(run):
Source/JavaScriptCore:
This patch makes it so our runtime functions for big int math on heap
big ints converts the result to a big int 32 when possible.
The inspiration for this patch came from converting SunSpider's sha1 benchmark to
using big ints. I found that that original implementation of big int 32
was a ~35% slowdown here. This patch speeds it up by 86% from ToT, and
36% faster than before big int 32 was introduced.
To make this sound in the DFG/FTL, we are currently reporting that all
HeapBigInt math ops return SpecBigInt, instead of SpecHeapBigInt.
However, we want to do better in a follow up. We need some kind of profiling
system where we determine if we should speculate if the result is big int
32, a heap big int, or both:
https://bugs.webkit.org/show_bug.cgi?id=210982
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueBitNot):
(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
(JSC::DFG::SpeculativeJIT::compileValueLShiftOp):
(JSC::DFG::SpeculativeJIT::compileValueBitRShift):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::compileValueDiv):
(JSC::DFG::SpeculativeJIT::compileValueMod):
(JSC::DFG::SpeculativeJIT::compileValuePow):
- jit/JITOperations.cpp:
- jsc.cpp:
(functionCreateBigInt32):
- runtime/BigIntConstructor.cpp:
(JSC::toBigInt):
(JSC::callBigIntConstructor):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::exponentiateHeap):
(JSC::JSBigInt::multiplyHeap):
(JSC::JSBigInt::divideHeap):
(JSC::JSBigInt::unaryMinusHeap):
(JSC::JSBigInt::remainderHeap):
(JSC::JSBigInt::incHeap):
(JSC::JSBigInt::decHeap):
(JSC::JSBigInt::addHeap):
(JSC::JSBigInt::subHeap):
(JSC::JSBigInt::bitwiseAndHeap):
(JSC::JSBigInt::bitwiseOrHeap):
(JSC::JSBigInt::bitwiseXorHeap):
(JSC::JSBigInt::leftShiftHeap):
(JSC::JSBigInt::signedRightShiftHeap):
(JSC::JSBigInt::bitwiseNotHeap):
(JSC::JSBigInt::absoluteAdd):
(JSC::JSBigInt::absoluteSub):
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::exponentiate): Deleted.
(JSC::JSBigInt::multiply): Deleted.
(JSC::JSBigInt::divide): Deleted.
(JSC::JSBigInt::unaryMinus): Deleted.
(JSC::JSBigInt::remainder): Deleted.
(JSC::JSBigInt::inc): Deleted.
(JSC::JSBigInt::dec): Deleted.
(JSC::JSBigInt::add): Deleted.
(JSC::JSBigInt::sub): Deleted.
(JSC::JSBigInt::bitwiseAnd): Deleted.
(JSC::JSBigInt::bitwiseOr): Deleted.
(JSC::JSBigInt::bitwiseXor): Deleted.
(JSC::JSBigInt::leftShift): Deleted.
(JSC::JSBigInt::signedRightShift): Deleted.
(JSC::JSBigInt::bitwiseNot): Deleted.
- runtime/JSBigInt.h:
- runtime/JSCJSValue.h:
(JSC::jsBigInt32):
- runtime/JSCJSValueInlines.h:
(JSC::JSValue::JSValue):
- runtime/Operations.cpp:
(JSC::jsAddSlowCase):
- runtime/Operations.h:
(JSC::jsSub):
(JSC::jsMul):
(JSC::jsDiv):
(JSC::jsInc):
(JSC::jsDec):
(JSC::jsBitwiseNot):
(JSC::shift):
(JSC::bitwiseBinaryOp):
Source/WebCore:
- bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readBigInt):
- 4:56 PM Changeset in webkit [260682] by
-
- 5 edits in trunk/Source
[WTF] allThreads registration is racy with allThreads unregistration
https://bugs.webkit.org/show_bug.cgi?id=210995
<rdar://problem/61609690>
Reviewed by Keith Miller.
Source/WebCore:
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformCollectCPUData):
Source/WTF:
There is a race between registering a thread to allThreads and unregistering a thread from allThreads.
- Caller: A new thread is created, but not registering it to allThreads yet.
- Thread: The thread is running.
- Thread: The thread finishes its execution before the thread is registered into allThreads.
- Thread: The thread unregisters itself from allThreads.
- Caller: Registers the new thread to allThreads after it already finished its execution.
- The thread is never removed from allThreads.
This patch adds m_didUnregisterFromAllThreads flag to Thread, and add the thread to allThreads only when this flag is false.
Covered by LayoutTests/inspector/cpu-profiler/threads.html.
- wtf/Threading.cpp:
(WTF::Thread::create):
(WTF::Thread::didExit):
- wtf/Threading.h:
(WTF::Thread::Thread):
- 4:53 PM Changeset in webkit [260681] by
-
- 2 edits in trunk/PerformanceTests
MotionMark: add link to bug in about page
Unreviewed.
- MotionMark/about.html:
- 4:35 PM Changeset in webkit [260680] by
-
- 6 edits in trunk
[GTK][WPE][JSCOnly] compile error when -DWTF_CPU_ARM64_CORTEXA53=ON set for arm64
https://bugs.webkit.org/show_bug.cgi?id=197192
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-04-24
Reviewed by Yusuke Suzuki.
.:
- Source/cmake/OptionsCommon.cmake:
Source/JavaScriptCore:
This workaround is supposed to fix WebKit on old Cortex A53 CPUs, but it has been broken
since 2018, and people would like to use WebKit on modern Cortex A53. If anyone using WebKit
on the original hardware wants to fix and reimplement the workaround, feel free.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::adrp):
(JSC::ARM64Assembler::madd):
(JSC::ARM64Assembler::msub):
(JSC::ARM64Assembler::smaddl):
(JSC::ARM64Assembler::smsubl):
(JSC::ARM64Assembler::umaddl):
(JSC::ARM64Assembler::umsubl):
(JSC::ARM64Assembler::nopCortexA53Fix835769): Deleted.
(JSC::ARM64Assembler::nopCortexA53Fix843419): Deleted.
- offlineasm/arm64.rb:
- offlineasm/instructions.rb:
- 4:32 PM Changeset in webkit [260679] by
-
- 5 edits in trunk
REGRESSION(260485) Payment requests don't do anything
https://bugs.webkit.org/show_bug.cgi?id=210997
Source/WTF:
<rdar://problem/62275343>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-24
Reviewed by Darin Adler.
We were giving the PKPaymentRequest an NSArray<NSString *> instead of NSArray<NSURL *>.
This was a problem with all uses of createNSArray with Vector<URL>.
Now it's fixed with a test.
- wtf/URL.h:
- wtf/cocoa/URLCocoa.mm:
(WTF::makeNSArrayElement):
(WTF::makeVectorElement):
Tools:
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-24
Reviewed by Darin Adler.
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 4:18 PM Changeset in webkit [260678] by
-
- 4 edits in trunk
Make some more adjustments to TextManipulationController's paragraph boundary heuristic
https://bugs.webkit.org/show_bug.cgi?id=210993
<rdar://problem/61571299>
Reviewed by Tim Horton.
Source/WebCore:
Adjust the heuristic added in r260583 to account for a few more common scenarios where we currently consider
text as a part of the same paragraph. This can lead to many issues during text manipulation where text is moved
between these elements, when it should not be.
The new scenarios include block and inline-block links, as well as button elements.
Test: TextManipulation.StartTextManipulationTreatsInlineBlockLinksAndButtonsAsParagraphs
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::observeParagraphs):
Additionally rename "paragraph boundary element" to "item boundary element", to avoid colliding with the
existing notion of paragraph boundaries in editing code.
Tools:
Add a new API test with buttons and links styled with
display: inline-block;
. Additionally, rebaseline an
existing API test that exercises inline-block list items.
- TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
- 3:49 PM Changeset in webkit [260677] by
-
- 1 edit1 delete in trunk/LayoutTests/imported/w3c
REGRESSION (r223327): Remove merge conflict file
- web-platform-tests/webrtc/simplecall.html.orig: Remove.
- 3:41 PM Changeset in webkit [260676] by
-
- 5 edits in trunk/Source
Make LEGACY_PDF_SUPPORT feature flag.
https://bugs.webkit.org/show_bug.cgi?id=210868
<rdar://problem/62199847>
Reviewed by Tim Horton.
Source/WebKitLegacy/mac:
- WebView/WebFrameView.mm:
(+[WebFrameView _viewTypesAllowImageTypeOmission:]):
- WebView/WebView.mm:
Source/WTF:
- wtf/PlatformHave.h:
- 3:29 PM Changeset in webkit [260675] by
-
- 2 edits in trunk/Tools
[iOS] Always run WKTR's WKWebViews at foreground priority
https://bugs.webkit.org/show_bug.cgi?id=210991
Reviewed by Keith Miller.
Always run WKTR's WKWebViews at foreground priority. This makes sure that they don't suspend and
run at foreground priority on iOS, even if those views are not visible on screen.
This is an issue to address flakiness on the bots.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
- 2:53 PM Changeset in webkit [260674] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Fix DataFormatJSBigInt32 missing part
https://bugs.webkit.org/show_bug.cgi?id=210986
Reviewed by Mark Lam.
Add missing part of DataFormatJSBigInt32 implementation.
- bytecode/DataFormat.h:
(JSC::dataFormatToString):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::checkGeneratedTypeForToInt32):
- 2:51 PM Changeset in webkit [260673] by
-
- 8 edits in branches/safari-610.1.11-branch/Source
Versioning.
- 2:45 PM Changeset in webkit [260672] by
-
- 14 edits3 adds in trunk
[Win] Bundle Inspector Resources in Release builds
https://bugs.webkit.org/show_bug.cgi?id=210942
Reviewed by Fujii Hironori.
.:
Add ENABLE_WEBINSPECTORUI so the resource copy can be disabled
on platforms without inspector frontends.
- CMakeLists.txt:
- Source/CMakeLists.txt:
- Source/PlatformWin.cmake:
- Source/cmake/OptionsJSCOnly.cmake:
- Source/cmake/OptionsPlayStation.cmake:
Source/WebCore:
- CMakeLists.txt:
Source/WebInspectorUI:
Add CMake files for copying inspector resources
- CMakeLists.txt: Added.
- PlatformGTK.cmake: Added.
- PlatformWin.cmake: Added.
Source/WebKit:
Move CMake logic for the inspector resource copy script to
Source/WebInspectorUI so it can be shared with Win and other platforms.
- InspectorGResources.cmake:
- PlatformWPE.cmake:
- PlatformWin.cmake:
- 2:42 PM Changeset in webkit [260671] by
-
- 19 edits in trunk
[Web Animations] Ensure calling Web Animations APIs override future CSS Animations style properties
https://bugs.webkit.org/show_bug.cgi?id=210988
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark all WPT tests related to Web Animations APIs overrides for CSS Animations as PASS, save for one
failing assertion which is caused by AnimationTimeline::updateCSSAnimations() not updating the animation
when the underlying @keyframes rule changed. This is due to Animation::animationsMatch() not checking on
the actual keyframes, tracked by webkit.org/b/210989.
- web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative-expected.txt:
Source/WebCore:
The CSS Animations Level 2 spec specifies how the Web Animations APIs and the CSS Animations style
properties should interact in https://drafts.csswg.org/css-animations-2/#animations. This patch
implements the specified behavior and this is reflected by progress on the relevant WPT tests.
The gist of this change is that once a Web Animations API is called on an animation created using
CSS Animations, any changes made to related CSS Animations style properties on the target element
will be ignored so that the overrides applied via the Web Animations API remain in effect.
For instance, calling pause() or play() in a way that changes the playback state of the CSS Animation
will mean that future changes to the CSS animation-play-state property are ignored.
To do this we make more IDL properties and methods use dedicated methods to distinguish between the
bindings entry-point and internal usage of the same methods to integrate the behavior only when the
API itself is being used.
- animation/AnimationEffect.cpp:
(WebCore::AnimationEffect::getBindingsTiming const): Ensure we flush styles when animation.effect.getTiming()
is called.
(WebCore::AnimationEffect::getBindingsComputedTiming const): Ensure we flush styles when
animation.effect.getComputedTiming() is called.
(WebCore::AnimationEffect::bindingsUpdateTiming): Notify the associated CSSAnimation object, if any, when
animation.effect.updateTiming() is called such that the CSSAnimation may apply the relevant overrides.
- animation/AnimationEffect.h:
- animation/AnimationEffect.idl:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation): Only apply new values of CSS Animations style
properties if there are no overrides for them resulting from calling related Web Animations APIs.
(WebCore::CSSAnimation::bindingsPlay): Mark animation-play-state as overridden if play() is called.
(WebCore::CSSAnimation::bindingsPause): Mark animation-play-state as overridden if pause() is called.
(WebCore::CSSAnimation::setBindingsEffect): Mark all animation style properties, except for animation-name
and animation-play-state as overridden if animation.effect is set.
(WebCore::CSSAnimation::setBindingsStartTime): Mark animation-play-state as overridden if animation.startTime
is set.
(WebCore::CSSAnimation::bindingsReverse): Mark animation-play-state as overridden if reverse() is called.
(WebCore::CSSAnimation::effectTimingWasUpdatedUsingBindings): Mark each CSS property associated with a key
found on the timing object passed to animation.effect.updateTiming() as overridden.
(WebCore::CSSAnimation::effectKeyframesWereSetUsingBindings): Mark animation-timing-function as overridden
if animation.effect.setKeyframes() is called.
- animation/CSSAnimation.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::bindingsStartTime const):
(WebCore::DeclarativeAnimation::setBindingsStartTime):
(WebCore::DeclarativeAnimation::startTime const): Deleted.
(WebCore::DeclarativeAnimation::setStartTime): Deleted.
- animation/DeclarativeAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getBindingsKeyframes): Ensure we flush styles when animation.effect.getKeyframes()
is called.
(WebCore::KeyframeEffect::getKeyframes): Only use the CSS-originated animation path if we don't have JS-originated
keyframes.
(WebCore::KeyframeEffect::setBindingsKeyframes): Notify the associated CSSAnimation object, if any, when
animation.effect.setKeyframes() is called such that the CSSAnimation may apply the relevant overrides.
(WebCore::KeyframeEffect::processKeyframes): Correctly return early if part of the processing yields an exception.
- animation/KeyframeEffect.h:
- animation/KeyframeEffect.idl:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::setBindingsEffect):
(WebCore::WebAnimation::setBindingsStartTime):
(WebCore::WebAnimation::bindingsReverse):
- animation/WebAnimation.h:
(WebCore::WebAnimation::bindingsEffect const):
(WebCore::WebAnimation::bindingsStartTime const):
- animation/WebAnimation.idl:
- 2:41 PM Changeset in webkit [260670] by
-
- 15 edits24 adds1 delete in trunk/LayoutTests/imported/w3c
Re-sync wpt/WebIDL/ecmascript-binding and wpt/custom-elements/htmlconstructor from upstream
https://bugs.webkit.org/show_bug.cgi?id=210984
Reviewed by Darin Adler.
web-platform-tests revision: 39e9c51041a1
- web-platform-tests/WebIDL/ecmascript-binding/*: Updated.
- web-platform-tests/custom-elements/htmlconstructor/*: Updated.
- 2:11 PM Changeset in webkit [260669] by
-
- 2 edits in trunk/Source/WebCore
ASSERTION FAILED: m_wrapper under HTMLMediaElement::setIsPlayingToWirelessTarget
https://bugs.webkit.org/show_bug.cgi?id=210983
<rdar://problem/61611994>
Reviewed by Eric Carlson.
The issue was that we were trying to fire a JS event as a result of ActiveDOMObject::stop()
getting called, which is not allowed. To address the issue, we avoid firing the event if
the context is already stopped.
No new tests, already covered by:
media/modern-media-controls/placard-support/placard-support-airplay-fullscreen.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setIsPlayingToWirelessTarget):
- 2:08 PM Changeset in webkit [260668] by
-
- 25 edits12 adds in trunk
Removing website data for a domain should delete corresponding ITP entry
https://bugs.webkit.org/show_bug.cgi?id=210864
<rdar://problem/59473193>
Reviewed by John Wilander.
Source/WebKit:
Tests: http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration-database.html
http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration.html
http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries-database.html
http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries.html
http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-database.html
http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads.html
In the database store: deletes domain from the ObservedDomains table
when website data is deleted for that domain. This deletes every
instance of the domainID in the database due to cascading deletions.
In the memory store: deletes every instance of the domain in the
statistics map, which will update the plist.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::removeDataForDomain):
(WebKit::ResourceLoadStatisticsDatabaseStore::domainIDExistsInDatabase):
Needed a new function to check for the existence of domainID in any
table. Existing queries rely on the ObservedDomains entry, which means
testing using those could result in a false positive if the domainID
was deleted from ObservedDomains but is floating around in another
table.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::removeDataForDomain):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::domainIDExistsInDatabase):
(WebKit::WebResourceLoadStatisticsStore::removeDataForDomain):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::domainIDExistsInDatabase):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
Pass RegistrableDomains vector to deleteWebsiteDataForOrigins,
captured based on the WebsiteData display name.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreRemoveITPDataForDomain):
(WKWebsiteDataStoreDoesStatisticsDomainIDExistInDatabase):
- UIProcess/API/C/WKWebsiteDataStoreRef.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::domainIDExistsInDatabase):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::domainIDExistsInDatabase):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
Created 2 new APIs for testing. One to mimic clearing website data
for a domain, and one to check if the domain exists in the database
after a deletion was requested.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::doesStatisticsDomainIDExistInDatabase):
(WTR::TestRunner::domainIDExistsInDatabase): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::doesStatisticsDomainIDExistInDatabase):
(WTR::TestController::domainIDExistsInDatabase): Deleted.
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
Inserts values into the ITP database then tests removing the domain's
website data will remove all instances of that domain in the ITP
database.
Database store expectations will reflect the result of the new
domainIDExistsInDatabase function. Memory store tests will use the
dump output which should not include the deleted information.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration-database.html: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-link-decoration.html: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries-database.html: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-mixed-statistics-entries.html: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-database.html: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads-expected.txt: Added.
- http/tests/resourceLoadStatistics/remove-website-data-for-origin-deletes-third-party-script-loads.html: Added.
- 2:02 PM Changeset in webkit [260667] by
-
- 7 edits1 copy in trunk/Source/WebKit
Use CocoaImage platform abstraction for NSImage/UIImage
<https://webkit.org/b/210974>
Reviewed by Darin Adler.
- Platform/cocoa/CocoaImage.h: Add.
- Define CocoaImage here for cross-platform use. Don't use OBJC_CLASS() here because this is an Objective-C header.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- Combine separate platform-specific methods into one method.
- UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:
- Combine separate platform-specific instance variables into one instance variable.
(-[_WKActivatedElementInfo image]):
- Combine separate methods into one platform-specific method.
- UIProcess/QuickLookThumbnailLoader.h:
- Move cross-platform definition to CocoaImge.h.
- UIProcess/QuickLookThumbnailLoader.mm:
- Drive-by fix of soft-linking header include order.
- WebKit.xcodeproj/project.pbxproj:
- Add CocoaImage.h to the project.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:
(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:]):
(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]):
- Combine separate platform-specific methods into one method.
- 1:57 PM Changeset in webkit [260666] by
-
- 4 edits in trunk/Source/WebKit
IPC::Decoder should use create() pattern
<https://webkit.org/b/210949>
<rdar://problem/62144409>
Reviewed by Geoffrey Garen.
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::create): Add implementation. Returns nullptr if
Decoder constructor returns an invalid object.
(IPC::Decoder::Decoder): Mark invalid if m_buffer is not 64-bit
aligned.
(IPC::Decoder::unwrapForTesting): Switch to Decoder::create().
- Platform/IPC/Decoder.h:
(IPC::Decoder::create): Add declaration.
(IPC::Decoder::Decoder): Make explicit. (Can't be made private
since we use std::unique_ptr<Decoder>.)
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::createMessageDecoder): Switch to Decoder::create().
- 1:33 PM Changeset in webkit [260665] by
-
- 1 copy in tags/Safari-609.2.9.0.2
Tag Safari-609.2.9.0.2.
- 1:11 PM Changeset in webkit [260664] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix in Windows
https://bugs.webkit.org/show_bug.cgi?id=210892
Windows MSVC does not have proper understanding of IGNORE_RETURN_TYPE_WARNINGS_BEGIN.
- runtime/JSBigInt.h:
(JSC::invertBigIntCompareResult):
- 1:05 PM Changeset in webkit [260663] by
-
- 5 edits in trunk/Source
iPad: "Pocket City" interaction does not work with trackpad
https://bugs.webkit.org/show_bug.cgi?id=210985
<rdar://problem/62273077>
Reviewed by Wenson Hsieh.
Source/WebCore:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isPocketCity):
Source/WebKit:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView shouldUseMouseGestureRecognizer]):
Add another app to the list who fall back to touch event synthesis until rebuilt.
- 1:04 PM Changeset in webkit [260662] by
-
- 37 edits18 adds1 delete in trunk
Update the css/css-animations WPT tests
https://bugs.webkit.org/show_bug.cgi?id=210964
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/AnimationEffect-updateTiming.tentative.html: Added.
- web-platform-tests/css/css-animations/CSSAnimation-compositeOrder.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-compositeOrder.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-finished.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-pausing.tentative.html:
- web-platform-tests/css/css-animations/CSSAnimation-ready.tentative.html:
- web-platform-tests/css/css-animations/Document-getAnimations.tentative-expected.txt:
- web-platform-tests/css/css-animations/Document-getAnimations.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative.html: Added.
- web-platform-tests/css/css-animations/animation-base-response-001-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-base-response-001.html: Added.
- web-platform-tests/css/css-animations/animation-base-response-002-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-base-response-002.html: Added.
- web-platform-tests/css/css-animations/animation-base-response-003-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-base-response-003.html: Added.
- web-platform-tests/css/css-animations/animation-base-response-004-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-base-response-004.html: Added.
- web-platform-tests/css/css-animations/animation-important-001-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-important-001.html: Added.
- web-platform-tests/css/css-animations/animation-important-002-expected.html: Added.
- web-platform-tests/css/css-animations/animation-important-002.html: Added.
- web-platform-tests/css/css-animations/event-dispatch.tentative.html:
- web-platform-tests/css/css-animations/event-order.tentative-expected.txt:
- web-platform-tests/css/css-animations/event-order.tentative.html:
- web-platform-tests/css/css-animations/historical.html:
- web-platform-tests/css/css-animations/keyframes-remove-documentElement-crash-expected.txt: Removed.
- web-platform-tests/css/css-animations/support/testcommon.js:
(assert_frames_equal):
(assert_frame_lists_equal):
- web-platform-tests/css/css-animations/w3c-import.log:
Source/WebKitLegacy/mac:
Expose the CSSCustomPropertiesAndValues experimental feature such that it may be set in DumpRenderTree.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(-[WebPreferences CSSCustomPropertiesAndValuesEnabled]):
(-[WebPreferences setCSSCustomPropertiesAndValuesEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
Source/WebKitLegacy/win:
Expose the CSSCustomPropertiesAndValues experimental feature such that it may be set in DumpRenderTree.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Turn on the CSSCustomPropertiesAndValues experimental feature which a new test relies on.
- DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
- DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
LayoutTests:
- TestExpectations:
- platform/ios/imported/w3c/web-platform-tests/css/css-animations/animation-base-response-001-expected.txt: Added.
- 12:58 PM Changeset in webkit [260661] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/tests/IndexedDB/storage-limit.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209189
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:19 PM Changeset in webkit [260660] by
-
- 13 edits6 adds in trunk
[JSC] DFG compare should speculate BigInt well
https://bugs.webkit.org/show_bug.cgi?id=210892
Reviewed by Saam Barati.
JSTests:
- stress/compare-bigint-with-number.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
- stress/compare-bigint-with-string.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
- stress/compare-bigint.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
- stress/compare-bigint32.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
- stress/compare-heap-bigint.js: Added.
(shouldBe):
(result):
(lessThan):
(lessThanEqual):
(greaterThan):
(greaterThanEqual):
(equal):
- stress/dfg-ai-fold-bigint.js: Added.
(shouldBe):
(allAreTrue):
(allAreFalse):
(lessThan):
(lessThanFalse):
(lessThanEqual):
(lessThanEqualFalse):
(greaterThan):
(greaterThanFalse):
(greaterThanEqual):
(greaterThanEqualFalse):
(equal):
(equalFalse):
Source/JavaScriptCore:
Compare operations in DFG does not support BigInt related speculations. As a result, DFG fixup phase emits DoubleRep for operands, and
causes OSR exit. This patch adds BigInt32, HeapBigInt, and AnyBigIntUse support to DFG compare operations to avoid OSR exits.
We also introduce JSBigInt::compareToInt32 to avoid allocating JSBigInt only for comparison, and optimize C++ runtime for JSBigInt comparison.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileValueMul):
(JSC::DFG::SpeculativeJIT::compare):
(JSC::DFG::SpeculativeJIT::genericJSValueNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileBigInt32Compare):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::genericJSValueCompare):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare): Deleted.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::unboxBigInt32):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::compareToInt32):
- runtime/JSBigInt.h:
(JSC::swapBigIntCompareResult):
- runtime/Operations.h:
(JSC::compareBigInt):
(JSC::compareBigInt32ToOtherPrimitive):
(JSC::bigIntCompare):
- 11:42 AM Changeset in webkit [260659] by
-
- 3 edits in trunk/Tools
check-webkit-style should recognize *Internal.h and *Private.h as primary headers
<https://webkit.org/b/210979>
Reviewed by Darin Adler.
- Scripts/webkitpy/style/checkers/cpp.py:
(_classify_include): If a header has an "Internal.h" or a
"Private.h" suffix with the same base name as the source file,
consider it a primary header--the header that comes after
"config.h".
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(OrderOfIncludesTest.test_classify_include): Add tests.
- 11:23 AM Changeset in webkit [260658] by
-
- 18 edits in trunk
SPI clients using fastServerTrustEvaluationEnabled need SPI to inform them of modern TLS negotiation
https://bugs.webkit.org/show_bug.cgi?id=210533
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-24
Reviewed by Brady Eidson.
Source/WebKit:
- NetworkProcess/NetworkDataTask.h:
(WebKit::NetworkDataTaskClient::didNegotiateModernTLS):
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didNegotiateModernTLS):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didNegotiateModernTLS):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
- UIProcess/API/APINavigationClient.h:
(API::NavigationClient::didNegotiateModernTLS):
- UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didNegotiateModernTLS):
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didNegotiateModernTLS):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(-[TLSNavigationDelegate waitForDidNegotiateModernTLS]):
(-[TLSNavigationDelegate _webView:didNegotiateModernTLS:]):
(TestWebKitAPI::TEST):
- 11:08 AM Changeset in webkit [260657] by
-
- 2 edits in trunk/Tools
webkitpy: update autoinstalled mozprocess dependency to 1.1.0 (adds python3 support)
https://bugs.webkit.org/show_bug.cgi?id=210220
<rdar://problem/58881483>
Reviewed by Anders Carlsson.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook._install_mozprocess):
- 10:58 AM Changeset in webkit [260656] by
-
- 8 edits in trunk/PerformanceTests
MotionMark: ensure that timestamps are valid during warm up phase of tests
https://bugs.webkit.org/show_bug.cgi?id=210640
Reviewed by Said Abou-Hallawa.
Ensure that Benchmark._benchmarkStartTimestamp is set during warm up phase.
Otherwise it is NaN, which makes the Benchmark.timestamp invalid, which is
used by tests like Multiply to drive the animation. When the warm up phase
completes, the start timestamp is reset.
Update minor version of benchmark with this bug fix, and include
version changelog in the about page.
For testing, add a parameter that allows for adjusting the length of the
warm up phase. It remains at its current default, 100 ms.
- MotionMark/about.html: Add section of version changelog. Includes links
to webkit.org blog posts.
- MotionMark/developer.html: Add parameter for setting warmup length.
Remove the Kalman filter parameters, since they should always be fixed.
- MotionMark/resources/runner/motionmark.css: Include styles to show
version log.
- MotionMark/resources/runner/motionmark.js: Factor out default options to
a property on window.benchmarkController. Include the default warmup length
of 100 ms.
(window.benchmarkController.startBenchmark): Refactor to use benchmarkDefaultParameters.
- MotionMark/resources/debug-runner/motionmark.js: Ditto.
- MotionMark/resources/strings.js: Update version number.
- MotionMark/tests/resources/main.js:
(_animateLoop): Set _benchmarkTimestamp during the warmup phase. Check the
warmup length. The _benchmarkTimestamp variable remains reset when the test
begins.
- 10:56 AM Changeset in webkit [260655] by
-
- 6 edits in trunk
[OpenSSL] Implement WebCrypto APIs for HMAC
https://bugs.webkit.org/show_bug.cgi?id=210902
Patch by Tomoki Imai <Tomoki Imai> on 2020-04-24
Reviewed by Don Olmstead.
Source/WebCore:
Support WebCrypto HMAC sign/verify with OpenSSL.
The design and some functions are inherited from the other ports.
- crypto/openssl/CryptoAlgorithmHMACOpenSSL.cpp:
(WebCore::HMACAlgorithm): Added. Helper function to map CryptoAlgorithmIdentifier to OpenSSL EVP_MD type.
(WebCore::calculateSignature): Added. Helper function to calculate the signature for sign/verify.
(WebCore::CryptoAlgorithmHMAC::platformSign): Implemented, mostly same as the other ports.
(WebCore::CryptoAlgorithmHMAC::platformVerify): Implemented, mostly same as the other ports.
- crypto/openssl/CryptoAlgorithmRegistryOpenSSL.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms): Added CryptoAlgorithmHMAC support.
- crypto/openssl/OpenSSLCryptoUniquePtr.h: Added specialized unique_ptrs for EVP_MD_CTX and EVP_PKEY.
(WebCore::OpenSSLCryptoPtrDeleter<EVP_MD_CTX>::operator() const):
(WebCore::OpenSSLCryptoPtrDeleter<EVP_PKEY>::operator() const):
LayoutTests:
Enabled WebCrypto LayoutTests for HMAC along with the implementation.
- platform/wincairo/TestExpectations:
- 10:53 AM Changeset in webkit [260654] by
-
- 5 edits in trunk
Proxy.revocable should not have Construct? slot
https://bugs.webkit.org/show_bug.cgi?id=210959
Reviewed by Darin Adler.
JSTests:
- stress/proxy-revoke.js:
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
This change removes proxyRevocableConstructorThrowError() since its presence is
observable when, for example, Proxy.revocable is a ProxyTarget? itself [1].
Also removes unnecessary newTarget() check in constructProxyObject() and
2 extra ArgList instances.
This patch aligns JSC with the spec [2], V8 and SpiderMonkey.
[1]: https://tc39.es/ecma262/#sec-proxycreate (step 7.b)
[2]: https://tc39.es/ecma262/#sec-ecmascript-standard-built-in-objects
- runtime/ProxyConstructor.cpp:
(JSC::makeRevocableProxy):
(JSC::ProxyConstructor::finishCreation):
(JSC::constructProxyObject):
(JSC::proxyRevocableConstructorThrowError): Deleted.
- 10:50 AM Changeset in webkit [260653] by
-
- 9 edits2 adds in trunk/Source
Web Automation: timeout underneath Automation.evaluateJavaScriptFunction in Selenium test frame_switching_tests.py::testShouldNotBeAbleToDoAnythingTheFrameIsDeletedFromUnderUs[Safari]
https://bugs.webkit.org/show_bug.cgi?id=210162
<rdar://problem/60561009>
Reviewed by Devin Rousso.
Source/WebCore:
- page/DOMWindow.h: Expose DOMWindow::{register, unregister}Observer.
Source/WebKit:
When an iframe is detached from the DOM, it is no longer exposed as a browsing context
and it's not possible to Evaluate JavaScript or perform other commands with it. This
patch adds frame lifecycle monitoring so that pending script evaluations are cancelled
with FrameNotFound as soon as the iframe is detached from the DOM. This change also avoids
running more commands with the frame if it's detached from its DOMWindow and ready to be GC'd.
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Automation/WebAutomationDOMWindowObserver.h: Added.
- WebProcess/Automation/WebAutomationDOMWindowObserver.cpp: Added.
(WebKit::WebAutomationDOMWindowObserver::WebAutomationDOMWindowObserver):
(WebKit::WebAutomationDOMWindowObserver::~WebAutomationDOMWindowObserver):
(WebKit::WebAutomationDOMWindowObserver::frame const):
(WebKit::WebAutomationDOMWindowObserver::willDestroyGlobalObjectInCachedFrame):
(WebKit::WebAutomationDOMWindowObserver::willDestroyGlobalObjectInFrame):
(WebKit::WebAutomationDOMWindowObserver::willDetachGlobalObjectFromFrame):
This class is a stripped-down copy of DOMWindowExtension, which is the only other
client of DOMWindow::Observer interface. When a frame is detached, destroyed, or
navigates (global object detached), then call the callback and unregister.
- WebProcess/Automation/WebAutomationSessionProxy.h:
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::~WebAutomationSessionProxy):
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame):
(WebKit::WebAutomationSessionProxy::willDestroyGlobalObjectForFrame):
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
(WebKit::WebAutomationSessionProxy::ensureObserverForFrame): For non-main frames,
ensure we add a frame observer if we are about to evaluate JavaScript upon the frame.
This acts as a watchdog in case the frame becomes detached while waiting for pending
JS evaluations. When a frame is detached, the JS evaluation may or may not complete.
(WebKit::WebAutomationSessionProxy::selectOptionElement): Fix hilarious typo.
- WebProcess/GPU/graphics/cocoa/ImageBufferShareableIOSurfaceBackend.cpp:
- WebProcess/GPU/media/WebMediaStrategy.cpp:
(WebKit::WebMediaStrategy::clearNowPlayingInfo):
(WebKit::WebMediaStrategy::setNowPlayingInfo):
Adding a new file seems to have exposed a few missing includes and namespace qualifiers.
This is due to unified sources chunking.
- 10:25 AM Changeset in webkit [260652] by
-
- 9 edits1 delete in trunk/Source/WebKit
Use sendWithAsyncReply for ShareSheet related messages
https://bugs.webkit.org/show_bug.cgi?id=210828
<rdar://problem/61800730>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-04-24
Reviewed by Brent Fulgham.
- Platform/IPC/MessageSender.cpp:
We need to call addAsyncReplyHandler before sendMessage in case this is the first async message from this process.
Otherwise the reply from the first message is dropped sometimes.
- Shared/ShareSheetCallbackID.h: Removed.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::showShareSheet):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::showShareSheet):
(WebKit::nextShareSheetCallbackID): Deleted.
(WebKit::WebPage::didCompleteShareSheet): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- 10:20 AM Changeset in webkit [260651] by
-
- 3 edits1 add in trunk
[JSC] DFG AI for some bitops + BigInt32 should be precise
https://bugs.webkit.org/show_bug.cgi?id=210956
Reviewed by Keith Miller.
JSTests:
- stress/bigint-bitops.js: Added.
(shouldBe):
(test):
Source/JavaScriptCore:
Use SpecBigInt32 for ValueBitXor, ValueBitAnd, and ValueBitOr since they are always producing BigInt32 and they have inlined implementations in DFG / FTL.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- 10:02 AM Changeset in webkit [260650] by
-
- 12 edits1 add in trunk/Source
Call STDynamicActivityAttributionPublisher in the WebProcess
https://bugs.webkit.org/show_bug.cgi?id=210772
<rdar://problem/62075201>
Patch by Youenn Fablet <youenn@apple.com> and Luming Yin <luming_yin@apple.com> on 2020-04-24
Reviewed by Geoffrey Garen.
Source/WebKit:
Call STDynamicActivityAttributionPublisher in WebProcess to make use of the newly added plist entry.
Use of a sandbox extension to protect this call.
- Configurations/WebKit.xcconfig:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- Scripts/process-entitlements.sh:
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/InfoPlist.strings: Added.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Source/WTF:
- wtf/PlatformHave.h:
- 9:58 AM Changeset in webkit [260649] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] tiled-drawing/simple-document-with-margin-tiles.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207518
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:32 AM Changeset in webkit [260648] by
-
- 2 edits in trunk
[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=210971
Reviewed by Brent Fulgham.
PAL is built as a static library.
- Source/cmake/target/PAL.cmake:
- 9:22 AM Changeset in webkit [260647] by
-
- 6 edits2 adds in trunk
[LFC][TFC] Take first in-flow table-row baseline into account when computing cell baseline
https://bugs.webkit.org/show_bug.cgi?id=210972
Reviewed by Antti Koivisto.
Source/WebCore:
Check if the cell has a nested table and use its first row as the baseline for the cell (unless there's an IFC before).
Test: fast/layoutformattingcontext/table-basic-row-baseline-with-nested-table.html
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutCell):
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraVerticalSpace):
- layout/tableformatting/TableFormattingContext.h:
- layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::usedBaselineForCell):
- layout/tableformatting/TableGrid.h:
(WebCore::Layout::TableGrid::Row::setBaselineOffset):
(WebCore::Layout::TableGrid::Row::baselineOffset const):
LayoutTests:
- fast/layoutformattingcontext/table-basic-row-baseline-with-nested-table-expected.txt: Added.
- fast/layoutformattingcontext/table-basic-row-baseline-with-nested-table.html: Added.
- 9:20 AM Changeset in webkit [260646] by
-
- 2 edits in trunk/Source/WebCore
Nullptr crash in objc_msgSend under WebCore::genericFamily
https://bugs.webkit.org/show_bug.cgi?id=210911
<rdar://problem/61510208>
Reviewed by Geoffrey Garen.
Speculative fix.
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::genericFamily):
Test that CTFontDescriptorCopyAttribute is really returning CFStringRef.
Also explicitly return String from lambda to clarify lifetimes.
- 9:11 AM Changeset in webkit [260645] by
-
- 1 copy in releases/WPE WebKit/webkit-2.28.2
WPE WebKit 2.28.2
- 9:11 AM Changeset in webkit [260644] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.28.2 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.28.2.
- 8:03 AM Changeset in webkit [260643] by
-
- 8 edits in trunk/Source
Move some post-renderingUpdate code into WebCore
https://bugs.webkit.org/show_bug.cgi?id=210952
Reviewed by Antti Koivisto.
Factor some code called by the various DrawingArea subclasses into Page::finalizeRenderingUpdate(),
with some flags to control behavior that differs between drawing areas.
ScrollingCoordinator::commitTreeStateIfNeeded() is a no-op for RemoteScrollingCoordinator so
it's fine to always call it.
Source/WebCore:
- page/Page.cpp:
(WebCore::Page::passiveTouchEventListenerRectsForTesting):
(WebCore::Page::finalizeRenderingUpdate):
- page/Page.h:
Source/WebKit:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::updateRendering):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::finalizeRenderingUpdate):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::updateRendering):
- 7:57 AM Changeset in webkit [260642] by
-
- 8 edits in trunk
[iOS] Stop using legacy BKSApplicationStateMonitor
https://bugs.webkit.org/show_bug.cgi?id=210945
Reviewed by Tim Horton.
Source/WebKit:
Stop using legacy BKSApplicationStateMonitor and use RunningBoard API instead.
- Configurations/WebKit.xcconfig:
Stop linking against ApplicationServices when using iOS 14 SDK now that we are
fully transitioned to RunningBoard.
- Platform/spi/ios/RunningBoardServicesSPI.h:
- UIProcess/ApplicationStateTracker.h:
- UIProcess/ApplicationStateTracker.mm:
(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::isApplicationForeground):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::isBackgroundState): Deleted.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::isApplicationVisible):
WebKitLibraries:
- WebKitPrivateFrameworkStubs/iOS/13/RunningBoardServices.framework/RunningBoardServices.tbd:
- 7:22 AM Changeset in webkit [260641] by
-
- 3 edits in trunk/Tools
[GTK][WPE] White-list more GStreamer environment variables in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=210854
<rdar://problem/62238305>
Patch by Philippe Normand <pnormand@igalia.com> on 2020-04-24
Reviewed by Carlos Alberto Lopez Perez.
Extra variables need to be white-listed when the webkitpy tooling
runs inside a gst-build environment, those variables are needed so
that uninstalled GStreamer plugins are correctly picked up.
Additionally we now correctly white-list the
WEBKIT_GST_USE_PLAYBIN3 env var. USE_PLAYBIN3 shouldn't be used
anymore.
- Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_environ_for_server):
- Scripts/webkitpy/port/wpe.py:
(WPEPort.setup_environ_for_server):
- 7:12 AM Changeset in webkit [260640] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening, mark fast/css/resize-corner-tracking.html as flaky
https://bugs.webkit.org/show_bug.cgi?id=210969
Unreviewed gardening.
Apparently the test is only failing in GTK and WPE test bots.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:14 AM WebKitGTK/2.28.x edited by
- (diff)
- 3:37 AM Changeset in webkit [260639] by
-
- 4 edits in trunk/JSTests
Skip on ARM and MIPS stress/for-of-iterator-open* added at r260585
https://bugs.webkit.org/show_bug.cgi?id=210961
Unreviewed Gardening.
Patch by Paulo Matos <Paulo Matos> on 2020-04-24
- stress/for-of-iterator-open-osr-at-inlined-return-non-object.js:
- stress/for-of-iterator-open-osr-at-iterator-set-local.js:
- stress/for-of-iterator-open-return-non-object.js:
- 3:35 AM Changeset in webkit [260638] by
-
- 1 edit2 deletes in trunk/LayoutTests
getDisplayMedia is not respecting aspect ratio with max constraints
https://bugs.webkit.org/show_bug.cgi?id=210858
<rdar://problem/61405434>
Unreviewed.
Remove these tests as it is redundant with getDisplayMedia-max-constraints 1 2 and 3.
- fast/mediastream/getDisplayMedia-max-constraints-expected.txt: Removed.
- fast/mediastream/getDisplayMedia-max-constraints.html: Removed.
- 2:58 AM Changeset in webkit [260637] by
-
- 1 copy in releases/WebKitGTK/webkit-2.28.2
WebKitGTK 2.28.2
- 2:57 AM Changeset in webkit [260636] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.28.2 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.28.2.
- 2:39 AM WebKitGTK/2.28.x edited by
- (diff)
- 2:22 AM Changeset in webkit [260635] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, expected to fail but passing
https://bugs.webkit.org/show_bug.cgi?id=210960
Unreviewed gardening.
- platform/wpe/TestExpectations:
- 2:21 AM Changeset in webkit [260634] by
-
- 3 edits1 add in releases/WebKitGTK/webkit-2.28
Merge r256766 - [Wasm] REGRESSION(r256665): Wasm->JS call IC needs to save memory size register
https://bugs.webkit.org/show_bug.cgi?id=207849
Reviewed by Mark Lam.
JSTests:
- wasm/regress/regress-256665.js: Added.
(f):
Source/JavaScriptCore:
When generating the call IC, we should select the callee saves using BoundsChecking mode in order
to obey to the calling conventions described in r256665. Currently, we won't restore the memory size
register when calling the Wasm LLInt through the call IC.
- wasm/js/WebAssemblyFunction.cpp:
(JSC::WebAssemblyFunction::calleeSaves const):
- 2:21 AM Changeset in webkit [260633] by
-
- 3 edits in releases/WebKitGTK/webkit-2.28/JSTests
Merge r256698 - Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727
Our inline WAT doesn't seem to like named blocks/branch targets.
- wasm/regress/llint-callee-saves-with-fast-memory.js:
- wasm/regress/llint-callee-saves-without-fast-memory.js:
- 2:20 AM Changeset in webkit [260632] by
-
- 9 edits2 adds in releases/WebKitGTK/webkit-2.28
Merge r256665 - [WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727
JSTests:
Reviewed by Mark Lam.
- wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
- wasm/regress/llint-callee-saves-without-fast-memory.js: Added.
Source/JavaScriptCore:
Reviewed by Mark Lam.
The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:
- When entering Wasm from JS, the wrapper must:
- Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
- Preserve the memory base in either mode, and the size for BoundsChecking.
- Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
- Changes to memoryBase and memorySize are visible to the caller. This means that:
- Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
- Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
- A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addCall):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addCall):
- wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::calleeSaveRegisters):
- wasm/WasmCallingConvention.h:
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::getPinnedRegisters): Deleted.
- 2:20 AM Changeset in webkit [260631] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r260570 - [GTK] Crash in cairo_surface_mark_dirty_rectangle() in accelerated compositing mode under X11
https://bugs.webkit.org/show_bug.cgi?id=210636
Patch by John Frankish <john.frankish@outlook.com> on 2020-04-23
Reviewed by Carlos Garcia Campos.
When cairo is configured to use xcb instead of xlib, it might use an image surface attached to the xlib one as
snapshot. In that case a flush is needed to detach that snapshot after we have drawn the surface in the
context.
- UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
(WebKit::AcceleratedBackingStoreX11::paint): Call cairo_surface_flush() after drawing.
- 2:20 AM Changeset in webkit [260630] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r260567 - [GTK] excessive wakeups/polling due to gdk_frame_clock_begin_updating
https://bugs.webkit.org/show_bug.cgi?id=210561
Reviewed by Žan Doberšek.
The problem is that we are destroying the display refresh monitor from the frame clock update callback, and GTK
schedules another update from the callback itself in some cases, which ends up happening forever. We were
assuming that destroying the window of immediately destroy the frame clock as well, but the paint source idle
keeps a reference of the frame clock. At the end of the source idle callback the source is scheduled again,
taking a new reference. We need to call gdk_frame_clock_end_updating() to ensure the idle is not scheduled
again.
- platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
(WebCore::DisplayRefreshMonitorGtk::~DisplayRefreshMonitorGtk): Disconnect the update signal and call
gdk_frame_clock_end_updating().
(WebCore::DisplayRefreshMonitorGtk::requestRefreshCallback): Toplevel window should always have a frame clock,
so remove the early return and add an assert instead.
- 2:20 AM Changeset in webkit [260629] by
-
- 7 edits in releases/WebKitGTK/webkit-2.28
Merge r260506 - [GStreamer][MSE] Youtube 'live stream'/H264 URLs fail to play, VP8/9 URLs play OK
https://bugs.webkit.org/show_bug.cgi?id=209119
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The fix consists of removing the initial avoiding of seeking and just
issuing the proper segment instead of seeking (seeks in GStreamer can't
be done before prerolling anyway). Appsrc doesn't make easy to emit our
own custom segment, so what I did was to use a segment fixer probe to
modify the original [0, infinity] segment issued by appsrc and use
a [startTime, stopTime] with proper values depending on the seek target
and rate.
Covered by existing tests.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::checkShouldDelaySeek): Don't hold seeks on startup, when changing from READY to PAUSED.
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek): Refactored seek delay condition. Also, don't do a regular
gst_element_seek() for initial seeks, just proceed with a special case in that situation.
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(initialSeekSegmentFixerProbe): Probe that fixes the segment.
(webKitMediaSrcPrepareInitialSeek): Behave much like a regular seek, but also compute the right GstSegment, install
the segment fixer probe and setReadyForMoreSamples() on the SourceBufferPrivates.
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
LayoutTests:
Unskipped media/media-source/media-source-seek-redundant-append.html,
which passes now.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 2:20 AM Changeset in webkit [260628] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r260252 - [GTK][X11] REGRESSION(r259944): Wrong position of select popup menu in X11
https://bugs.webkit.org/show_bug.cgi?id=210603
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-04-17
Reviewed by Michael Catanzaro.
gdk_window_move_to_rect expects the given rectangle in coordinates relative to the top-left corner of the window
that the popup window is transient for. We were using screen coordinates.
- UIProcess/gtk/WebPopupMenuProxyGtk.cpp:
(WebKit::WebPopupMenuProxyGtk::showPopupMenu): Translate widget coordinates to window coordinates before passing
the rectangle to gdk_window_move_to_rect().
- 2:20 AM Changeset in webkit [260627] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r260244 - [GTK] UI process crash when entering compositing mode when WPE_RENDERER is enabled
https://bugs.webkit.org/show_bug.cgi?id=209118
Reviewed by Michael Catanzaro.
Check if EGL_WL_bind_wayland_display extension is available when using WPE_RENDERER, since we don't suport the
SHM interface.
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
(WebKit::AcceleratedBackingStoreWayland::checkRequirements): Return false if EGL_WL_bind_wayland_display is not present.
- 2:20 AM Changeset in webkit [260626] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WTF
Merge r260179 - Unreviewed, set CeilingOnPageSize for MIPS64
This fixes a build failure ("Must set CeilingOnPageSize in
PageBlock.h").
- wtf/PageBlock.h:
- 1:27 AM Changeset in webkit [260625] by
-
- 2 edits in trunk/Source/WebCore
Add missing HTMLNames:: namespace prefix to usage of liTag object
Unreviewed build fix.
No new tests needed.
- editing/TextManipulationController.cpp:
(WebCore::TextManipulationController::observeParagraphs):
- 12:59 AM Changeset in webkit [260624] by
-
- 5 edits in trunk/LayoutTests
Import fetch/stale-while-revalidate/fetch.html
https://bugs.webkit.org/show_bug.cgi?id=210905
Patch by Rob Buis <rbuis@igalia.com> on 2020-04-24
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Import fetch/stale-while-revalidate/fetch.html to try to fix
flakiness (see https://bugs.webkit.org/show_bug.cgi?id=207230).
- web-platform-tests/fetch/stale-while-revalidate/fetch.html:
LayoutTests:
This test should not be flaky anymore.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations: