Timeline
Jul 13, 2019:
- 8:36 PM Changeset in webkit [247421] by
-
- 9 edits in trunk
[Text autosizing] [iPadOS] Further adjust our heuristics to determine text autosizing candidates
https://bugs.webkit.org/show_bug.cgi?id=199780
<rdar://problem/52289088>
Reviewed by Simon Fraser.
Source/WebCore:
Our current idempotent text autosizing candidate heuristic makes the right judgment call most of the time, but
there is still a large batch of text autosizing bugs left unfixed by the first iteration of the heuristic added
in r246781. This patch attempts to address most of these bugs by adjusting the decision-tree-based heuristic
once again, mostly with improvements to the model generation pipeline.
During the first iteration, I placed emphasis on tuning the max tree depth and min leaf size hyperparameters
when coming up with my decision tree, and didn't consider the inclusion or exclusion of each feature as a
hyperparameters. As such, the trees generated using the pipeline tended to use too many features, and as a
result, tended to have cross-validation overall accuracy scores hovering around 73%.
In this revised model generation pipeline, I now consider the inclusion of each feature (along with max depth
and min leaf size, as before) as a hyperparameter. Since this increases the number of hyperparameters by many
orders of magnitude, a naive grid search (as described in the prior ChangeLog entry) is no longer a tractible
procedure for tuning hyperparameters to the training algorithm.
Instead, I now use a stochastic greedy algorithm to search for good sets of hyperparameters; this process begins
with seeding some number (usually 20-24) of "searchers" with completely randomized sets of hyperparameters (i.e.
random max depth, random leaf size, and random subsets of features). I then evaluate the average performance of
each set of hyperparameters by using them to generate 2000 decision trees over 90% of the training data, and
then cross-validating these trees against the remaining 10%. These cross-validation scores are aggregated into a
single confusion matrix, which is then passed into a loss function that computes a single value indicating how
well training with the set of hyperparameters generalized to cross-validation data. After experimenting with
various loss functions, I settled on the following:
k(false positive rate)^2 + (false negative rate)^2
...where a constant k is chosen to penalize false positives (i.e. broken layout) more harshly than false
negatives (small text). Additionally, squaring the false negative and false positive rates seems to help avoid
converging on solutions that heavily favor reducing only false positives or false negatives, or vice versa.
The stochastic algorithm starts by computing a loss value for the randomly generated configuration. Then, for
an indefinite number of iterations, it randomly mutates the configuration (e.g. by adding or removing features,
or changing min leaf size or max tree depth) and computes a new loss value for the mutated configuration. If the
mutated configuration performs better (i.e. achieves lower loss) than the current configuration, I set the
current configuration to be the mutated configuration. Otherwise, I keep the current (non-mutated) configuration
as-is. The stochastic algorithm then proceeds, ad-infinitum, with this current configuration.
Of course, since each mutation is small, this strategy so far is prone to leaving each searcher stuck in local
optima. To mitigate this, for each searcher, I keep track of a side-table of configurations that have already
been tested; when random mutations would normally lead to testing a configuration that has already been tested,
each searcher instead increases the chance of applying additional mutations. This has the effect of searchers
initially exhausting similar configurations, and expanding to test more and more dissimilar configurations as
the local alternatives all turn out to be worse. This allows searchers to effectively jump out of local optima
after being stuck for a long time.
So, using these strategies, I simultaneously ran a handful of searchers until they all appeared to converge
(a process that takes 8-12 hours on my current dataset). Many of the searchers achieved configurations with
cross-validation scores of 81% and above, up from the 73% of the previous attempt. These additionally have the
added bonus of reducing the number of features, often making the final trees themselves shallower and simpler to
understand than before.
This patch introduces one such decision tree generated using a set of hyperparameters acquired via this
stochasic search algorithm; it appears to simultaneously use fewer features, and achieve better cross-validation
performance.
Test: fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyleForTextAutosizing):
Adjust the early return to bail if either (1) the element is a candidate and the computed size is already equal
to the boosted size, or (2) the element is not a candidate and the computed size is already equal to the
specified size. Since the autosizing candidate heuristic depends on styles specified on the element itself (as
opposed to styles on any element in the ancestor chain), a parent may be an autosizing candidate, but a child of
it may not.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::isIdempotentTextAutosizingCandidate const):
Revamp the idempotent text autosizing candidate heuristic. See the explanation above for more details.
- rendering/style/RenderStyle.h:
Remove some bits from RenderStyle's autosizeStatus, now that we care about fewer bits of information from the
inherited flags.
- rendering/style/TextSizeAdjustment.cpp:
(WebCore::AutosizeStatus::updateStatus):
- rendering/style/TextSizeAdjustment.h:
LayoutTests:
Rebaseline an existing idempotent text autosizing test, and add an additional test case.
- fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates-expected.txt:
- fast/text-autosizing/ios/idempotentmode/idempotent-autosizing-candidates.html:
- 3:29 PM Changeset in webkit [247420] by
-
- 3 edits3 adds in trunk
Don't do async overflow scrolling for visibility:hidden scrollers
https://bugs.webkit.org/show_bug.cgi?id=199779
Reviewed by Dean Jackson.
Source/WebCore:
An overflow:scroll with visibility:hidden is not scrollable on macOS, even if it has visible
content. So disable async overflow:scroll when the scroller has non-visible visibility (this also
takes visibility on ancestors into account).
visibility:hidden overflow:scroll can be common because some JS libraries use it
(https://github.com/wnr/element-resize-detector).
Test: compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers.html
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::canUseCompositedScrolling const): Don't use hasVisibleContent() because
that's affected by visible children.
LayoutTests:
- compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.
- compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers.html: Added.
- platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/visibility-hidden-scrollers-expected.txt: Added.
- 10:43 AM Changeset in webkit [247419] by
-
- 5 edits in trunk/Source/WebCore
[WHLSL] Return statements don't need to keep track of the function they're in
https://bugs.webkit.org/show_bug.cgi?id=199763
Reviewed by Myles C. Maxfield.
Return::m_function is only used in the Checker, and it can easily enough keep track of the current function.
This means we no longer need to keep track of the current function in the NameResolver, and we can save 8 bytes per Return
Since I was touching the NameResolver I also removed a few pointless overrides of Visitor::visit().
No new tests as there is no intended functional change.
- Modules/webgpu/WHLSL/AST/WHLSLReturn.h:
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::Checker::visit):
- Modules/webgpu/WHLSL/WHLSLNameResolver.cpp:
(WebCore::WHLSL::NameResolver::NameResolver):
(WebCore::WHLSL::resolveTypeNamesInFunctions):
- Modules/webgpu/WHLSL/WHLSLNameResolver.h:
- 10:28 AM Changeset in webkit [247418] by
-
- 4 edits in trunk/Source
Add accessibility support to WKDataListSuggestionsView.
https://bugs.webkit.org/show_bug.cgi?id=199772
<rdar://problem/47095851>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-13
Reviewed by Chris Fleizach.
Source/WebCore:
Localizable strings for accessibility announcements.
- en.lproj/Localizable.strings:
Source/WebKit:
Added accessibility announcement notifications to show, dismiss and selection change for the datalist suggestions view.
- UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(-[WKDataListSuggestionsView notifyAccessibilityClients:]):
(-[WKDataListSuggestionsView moveSelectionByDirection:]):
(-[WKDataListSuggestionsView invalidate]):
(-[WKDataListSuggestionsView showSuggestionsDropdown:]):
- 8:28 AM Changeset in webkit [247417] by
-
- 5 edits in trunk/Source/WebCore
Drop non thread-safe usage of WeakPtr in VideoFullscreenInterfaceAVKit
https://bugs.webkit.org/show_bug.cgi?id=199775
Reviewed by Eric Carlson.
The VideoFullscreenInterfaceAVKit constructor was making a weakPtr on the UI Thread
of an WebThread object. The WeakPtr would then be used as a data member throughout
the class on the UIThread. This is not thread-safe.
This patch switches to using a raw pointer instead of a WeakPtr. This is a partial
rollout of r243298, which turned the raw pointer into a WeakPtr for hardening
purposes. For extra safety, this patch updates the VideoFullscreenControllerContext
so that it notifies its clients (i.e. PlaybackSessionInterfaceAVKit) that it is
getting destroyed, so that they can null-out their m_videoFullscreenModel &
m_fullscreenChangeObserver data members. This gives the sames guarantees as WeakPtr
but in a thread-safe way.
This is very similar to the fix that was done for PlaybackSessionInterfaceAVKit in
r247380.
- platform/cocoa/VideoFullscreenModel.h:
(WebCore::VideoFullscreenModelClient::modelDestroyed):
- platform/ios/VideoFullscreenInterfaceAVKit.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::modelDestroyed):
- platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::~VideoFullscreenControllerContext):
- 5:59 AM Changeset in webkit [247416] by
-
- 28 edits4 adds in trunk
Cannot bring up custom media controls at all on v.youku.com
https://bugs.webkit.org/show_bug.cgi?id=199699
<rdar://problem/51835327>
Reviewed by Simon Fraser.
Source/WebCore:
The "find the node under the finger" heuristic should only find nodes that are visible to hit-testing.
When the user taps on the screen, we run a "find the best node under the finger" heuristic and use the node's location
to dispatch the associated event (e.g. mousePressed).
Ideally the "best node under the finger" and the final target node for the associated event are the same.
However these two methods configure the hit-testing process differently which could lead to node mismatch.
The "best node" heuristic calls hit-testing with AllowChildFrameContent. This flag allows hit-testing to descend into
subframes even if the subframe is not visible to hit-testing (visibility: hidden).
While event dispatching never descends into subfames through hit-testing, but instead it forwards the dispatching to subframes that are visible to hit-testing.
This patch addresses the mismatching node issue by calling the descending version of hit-testing with a flag that enforces visiblity check before descending into a subframe.
Tests: fast/events/touch/ios/visibility-hidden-iframe-click.html
fast/events/touch/ios/visibility-hidden-nested-iframe-click.html
- page/ios/FrameIOS.mm:
(WebCore::Frame::hitTestResultAtViewportLocation):
- rendering/HitTestRequest.h:
(WebCore::HitTestRequest::skipsChildFrameContentInvisibleToHitTest const):
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::nodeAtPoint):
Source/WebKit:
- WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::hitTest const):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::handleContextMenuEvent):
(WebKit::WebPage::characterIndexForPointAsync):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::handleStylusSingleTapAtPoint):
(WebKit::textInteractionPositionInformation):
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::shouldDelayWindowOrderingEvent):
(WebKit::WebPage::acceptsFirstMouse):
(WebKit::WebPage::performImmediateActionHitTestAtLocation):
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::actionDictionary const):
- WebView/WebFrame.mm:
(-[WebFrame elementAtPoint:]):
- WebView/WebHTMLView.mm:
(-[WebHTMLView elementAtPoint:allowShadowContent:]):
- WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController performHitTestAtPoint:]):
Source/WebKitLegacy/win:
- WebActionPropertyBag.cpp:
(WebActionPropertyBag::Read):
- WebView.cpp:
(WebView::handleContextMenuEvent):
(WebView::elementAtPoint):
LayoutTests:
- fast/events/touch/ios/visibility-hidden-iframe-click-expected.txt: Added.
- fast/events/touch/ios/visibility-hidden-iframe-click.html: Added.
- fast/events/touch/ios/visibility-hidden-nested-iframe-click-expected.txt: Added.
- fast/events/touch/ios/visibility-hidden-nested-iframe-click.html: Added.
- 4:07 AM Changeset in webkit [247415] by
-
- 3 edits in trunk/Source/WebCore
Fix non thread-safe usage of makeWeakPtr() in MediaPlayerPrivateAVFoundation
https://bugs.webkit.org/show_bug.cgi?id=199777
Reviewed by Eric Carlson.
The code was calling makeWeakPtr() on a main-thread object, from a background thread.
This is not thread safe. To address the issue, this patches creates the WeakPtr ahead
of time, on the main thread.
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
(WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
Jul 12, 2019:
- 10:14 PM Changeset in webkit [247414] by
-
- 5 edits in trunk
[Cocoa] -loadFileURL:allowingReadAccessToURL: should fully resolve file URLs
https://bugs.webkit.org/show_bug.cgi?id=199768
<rdar://problem/52002206>
Reviewed by Geoffrey Garen.
Source/WebKit:
-loadFileURL:allowingReadAccessToURL: used -_web_originalDataAsWTFString from WKNSURLExtras
to convert the file and read access NSURLs to strings, which under the hood calls
CFURLGetBytes(). CFURLGetBytes() gets the URL's string without considering the base URL, so
if the client creates a URL like this:
NSURL *url = [NSURL fileURLWithPath:@"tmpfile.txt" relativeToURL:[NSURL fileURLWithPath:@"/tmp"]]
... then -_web_originalDataAsWTFString will merely return the string "tmpfile.txt". When
that is later converted back to a URL in WebPageProxy::loadFile(), we lose track of the base
component and refuse to load something that no longer looks like a file: URL.
Fixed this by fully resolving the URLs passed to -loadFileURL:allowingReadAccessToURL: when
converting to strings by using -[NSURL absoluteString] instead of -_web_originalDataAsWTFString.
- Shared/Cocoa/WKNSURLExtras.mm:
(-[NSURL _web_originalDataAsWTFString]):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm:
(TEST):
- 8:22 PM Changeset in webkit [247413] by
-
- 3 edits in trunk/Tools
[ews-build] Remove wincairo queue from old EWS and dashboard
https://bugs.webkit.org/show_bug.cgi?id=199776
Reviewed by Don Olmstead.
- BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:
- QueueStatusServer/config/queues.py:
- 8:21 PM Changeset in webkit [247412] by
-
- 4 edits in trunk/Tools
[ews-build] Enable wincairo queue on new EWS
https://bugs.webkit.org/show_bug.cgi?id=199593
Reviewed by Don Olmstead.
- BuildSlaveSupport/ews-build/config.json: Enabled the triggers for wincairo builder.
- BuildSlaveSupport/ews-build/factories.py: Added required build steps for wincairo factory.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble): Enable wincairo status-bubble.
- 6:50 PM Changeset in webkit [247411] by
-
- 2 edits in trunk/Source/WebKit
Turn off two finger gestures for editable non-scaled content
https://bugs.webkit.org/show_bug.cgi?id=199739
<rdar://problem/52107190>
Reviewed by Tim Horton.
This gesture is blocking a selection gesture. Turn it off as it is not
even being used in editable content.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView _didChangeWebViewEditability]):
- 5:53 PM Changeset in webkit [247410] by
-
- 2 edits in trunk/Source/WebKit
SOAuthorizationSession::presentViewController should check WebPageProxy::isClosed()
https://bugs.webkit.org/show_bug.cgi?id=199755
<rdar://problem/52323585>
Reviewed by Chris Dumez.
WebPageProxy::pageClient() is not guaranteed to be non null all the time. Therefore, we should check
WebPageProxy::isClosed() before using it.
- UIProcess/Cocoa/SOAuthorization/SOAuthorizationSession.mm:
(WebKit::SOAuthorizationSession::presentViewController):
- 5:22 PM Changeset in webkit [247409] by
-
- 2 edits in trunk/Source/bmalloc
Increase JSValue cage size on iOS and reduce the max slide
https://bugs.webkit.org/show_bug.cgi?id=199765
Reviewed by Saam Barati.
Since the WebContent jetsam limit has changed we sometimes run out
of JSValue cage VA space causing us to run out of memory for
arrays. This change makes the JSValue cage a more reasonable upper
limit for what should be possible without jetsamming.
The worst case memory mapping with this configuration is has not
changed from before. Under both configurations we could map 36GB
with a temporary mapping of 38GB (to align the VA to 2GB).
- bmalloc/Gigacage.h:
- 5:09 PM Changeset in webkit [247408] by
-
- 2 edits in trunk/Tools
[ews-app] Enable logging for clicking SubmitToEWS button
https://bugs.webkit.org/show_bug.cgi?id=199757
Unreviewed minor infrastructure fix.
- BuildSlaveSupport/ews-app/ews/views/submittoews.py:
(SubmitToEWS.post): Change logging level from debug to info.
- 5:05 PM Changeset in webkit [247407] by
-
- 5 edits in trunk/Source/WebCore
[GStreamer] Mock GStreamer realtime sources should keep a Ref of their mock realtime media sources
https://bugs.webkit.org/show_bug.cgi?id=194326
WrappedMockRealtimeVideoSource is a subclass of RealtimeMediaSource which is refcounted, we can't
use a unique_ptr on those.
Also changed m_wrappedSource type to its actual type so it is cleaner even if needed
to upcast it to RealtimeMediaSource so some method that are made private in the mock
can still be called.
Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-07-12
Reviewed by Youenn Fablet.
This fixes MediaStream tests
- platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
(WebCore::WrappedMockRealtimeAudioSource::create):
(WebCore::WrappedMockRealtimeAudioSource::asRealtimeMediaSource):
(WebCore::WrappedMockRealtimeAudioSource::WrappedMockRealtimeAudioSource):
(WebCore::m_wrappedSource):
(WebCore::MockGStreamerAudioCaptureSource::startProducingData):
(WebCore::MockGStreamerAudioCaptureSource::settings):
(WebCore::MockGStreamerAudioCaptureSource::capabilities):
- platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.h:
- platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.cpp:
(WebCore::WrappedMockRealtimeVideoSource::create):
(WebCore::WrappedMockRealtimeVideoSource::asRealtimeMediaSource):
(WebCore::WrappedMockRealtimeVideoSource::WrappedMockRealtimeVideoSource):
(WebCore::m_wrappedSource):
(WebCore::MockGStreamerVideoCaptureSource::settings):
(WebCore::MockGStreamerVideoCaptureSource::capabilities):
- platform/mediastream/gstreamer/MockGStreamerVideoCaptureSource.h:
- 4:21 PM Changeset in webkit [247406] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Changes: dismissing a blank property makes style rule to show in Changes panel
https://bugs.webkit.org/show_bug.cgi?id=199760
Reviewed by Devin Rousso.
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype._updateOwnerStyleText):
Call updatePropertiesModifiedState even when _updateOwnerStyleText returns early.
- 4:09 PM Changeset in webkit [247405] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: always show all navigation bar items, but disable those that wouldn't work
https://bugs.webkit.org/show_bug.cgi?id=199594
Reviewed by Ross Kirsling.
Reorder the navigation items of the Elements tab (left to right):
- Show rulers
- Force print media styles
- Force Dark Appearance / Force Light Appearance
- Show compositing borders
- Enable paint flashing
- Show shadow DOM nodes
This way, "related" (e.g. print styles and dark/light appearance both relate to CSS media)
toggles are grouped closer together.
- UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView):
(WI.DOMTreeContentView.prototype.get navigationItems):
(WI.DOMTreeContentView.prototype._defaultAppearanceDidChange):
(WI.DOMTreeContentView.prototype._toggleAppearance):
- Localizations/en.lproj/localizedStrings.js:
- 3:51 PM Changeset in webkit [247404] by
-
- 2 edits in trunk/Tools
Enable client certificate authentication unit test
https://bugs.webkit.org/show_bug.cgi?id=199735
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Chris Dumez.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(TEST):
I originally wrote this in https://bugs.webkit.org/show_bug.cgi?id=197800 but it was disabled because it crashed.
I found what was crashing. I was reading out of bounds on my vector of 2 strings :(
- 3:15 PM Changeset in webkit [247403] by
-
- 11 edits2 moves8 adds in trunk/Source/JavaScriptCore
Add API to get all the dependencies of a given JSScript
https://bugs.webkit.org/show_bug.cgi?id=199746
Reviewed by Saam Barati.
The method only returns the dependencies if the module was
actually evaluated. Technically, we know what the dependencies are
at the satisfy phase but for API simplicity we only provide that
information if the module graph was complete enough to at least
run.
This patch also fixes an issue where we would allow import
specifiers that didn't start "./" or "/". For reference, We have
this restriction to be consistent with the web/node. The
restriction exists in order to preserve namespace for
builtin-modules.
Lastly, this patch makes it so that we copy all scripts in the
API/tests/testapiScripts directory so they don't have to be
individually added to the xcode project.
- API/JSAPIGlobalObject.mm:
(JSC::computeValidImportSpecifier):
(JSC::JSAPIGlobalObject::moduleLoaderResolve):
(JSC::JSAPIGlobalObject::moduleLoaderImportModule):
- API/JSContext.mm:
(-[JSContext dependencyIdentifiersForModuleJSScript:]):
- API/JSContextPrivate.h:
- API/JSScript.h:
- API/tests/testapi.mm:
(testFetchWithTwoCycle):
(testFetchWithThreeCycle):
(testModuleBytecodeCache):
(+[JSContextFileLoaderDelegate newContext]):
(-[JSContextFileLoaderDelegate fetchModuleScript:]):
(-[JSContextFileLoaderDelegate findScriptForKey:]):
(-[JSContextFileLoaderDelegate context:fetchModuleForIdentifier:withResolveHandler:andRejectHandler:]):
(testDependenciesArray):
(testDependenciesEvaluationError):
(testDependenciesSyntaxError):
(testDependenciesBadImportId):
(testDependenciesMissingImport):
(testObjectiveCAPI):
- API/tests/testapiScripts/dependencyListTests/badModuleImportId.js: Added.
- API/tests/testapiScripts/dependencyListTests/bar.js: Added.
- API/tests/testapiScripts/dependencyListTests/dependenciesEntry.js: Added.
- API/tests/testapiScripts/dependencyListTests/foo.js: Added.
- API/tests/testapiScripts/dependencyListTests/missingImport.js: Added.
- API/tests/testapiScripts/dependencyListTests/referenceError.js: Added.
- API/tests/testapiScripts/dependencyListTests/syntaxError.js: Added.
- API/tests/testapiScripts/testapi-function-overrides.js: Renamed from Source/JavaScriptCore/API/tests/testapi-function-overrides.js.
- API/tests/testapiScripts/testapi.js: Renamed from Source/JavaScriptCore/API/tests/testapi.js.
- JavaScriptCore.xcodeproj/project.pbxproj:
- builtins/ModuleLoader.js:
(dependencyKeysIfEvaluated):
- runtime/JSModuleLoader.cpp:
(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
- runtime/JSModuleLoader.h:
- shell/CMakeLists.txt:
- 3:12 PM Changeset in webkit [247402] by
-
- 3 edits4 adds in trunk/Tools
Begin unifying TestWebKitAPI build
https://bugs.webkit.org/show_bug.cgi?id=199728
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Keith Miller.
- TestWebKitAPI/Configurations/Base.xcconfig:
- TestWebKitAPI/Scripts/generate-unified-sources.sh: Added.
- TestWebKitAPI/Sources.txt: Added.
- TestWebKitAPI/SourcesCocoa.txt: Added.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- 3:08 PM Changeset in webkit [247401] by
-
- 4 edits3 adds in trunk/Source/WebKitLegacy
Begin unifying WebKitLegacy sources
https://bugs.webkit.org/show_bug.cgi?id=199730
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Keith Miller.
Source/WebKitLegacy:
- Sources.txt: Added.
- SourcesCocoa.txt: Added.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/generate-unified-sources.sh: Added.
Source/WebKitLegacy/mac:
- Configurations/WebKitLegacy.xcconfig:
- 3:03 PM Changeset in webkit [247400] by
-
- 2 edits in trunk/Source/WebKit
Regression(macOS Catalina): Cannot quick look html documents in Mail
https://bugs.webkit.org/show_bug.cgi?id=199754
<rdar://problem/51304961>
Reviewed by Geoff Garen.
If the client asks us to load a file URL but does not provide a resource path, WebKit
would fallback to issuing a sandbox extension for /. This no longer works on mac OS
Catalina and it would thus fail to load the file.
To address the issue, if the attempt to create a sandbox extension for / fails, we now
fall back to issuing one for the file's baseURL (path of containing folder).
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
- 2:50 PM Changeset in webkit [247399] by
-
- 2 edits in trunk/Source/WebCore
Change RELEASE_ASSERT in DocumentWriter::addData to ASSERT and early return
https://bugs.webkit.org/show_bug.cgi?id=199756
<rdar://problem/51554775>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-12
Reviewed by Brady Eidson.
Attempts to reach this assertion were unsuccessful, but sometimes this assertion crashes.
Let's change it to an early return to prevent crashes.
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::addData):
- 2:35 PM Changeset in webkit [247398] by
-
- 10 edits1 move6 adds in trunk
[iOS WK2] Can't place caret or select in content that overflows a contenteditable element
https://bugs.webkit.org/show_bug.cgi?id=199741
rdar://problem/50545233
Reviewed by Wenson Hsieh.
Source/WebCore:
Various code paths for editing used renderer->absoluteBoundingBoxRect(), which is the border
box of the element (or a set of line boxes for inline elements) converted to absolute
coordinates. This excludes overflow content, but contenteditable needs to be able to
place the caret in overflow content, and allow selection rects to be in the overflow area
(if the element has visible overflow).
Try to clean this up by adding some static helpers on WebPage for accessing the relevant
rects, and use them in code call from visiblePositionInFocusedNodeForPoint(), and
code that is input to selectionClipRect.
This changes selectionClipRect to use the padding box (excluding borders), which is a progression.
Tests: editing/caret/ios/caret-in-overflow-area.html
editing/selection/ios/place-selection-in-overflow-area.html
editing/selection/ios/selection-extends-into-overflow-area.html
- editing/FrameSelection.cpp:
(WebCore::DragCaretController::editableElementRectInRootViewCoordinates const):
Source/WebKit:
Various code paths for editing used renderer->absoluteBoundingBoxRect(), which is the border
box of the element (or a set of line boxes for inline elements) converted to absolute
coordinates. This excludes overflow content, but contenteditable needs to be able to
place the caret in overflow content, and allow selection rects to be in the overflow area
(if the element has visible overflow).
Try to clean this up by adding some static helpers on WebPage for accessing the relevant
rects, and use them in code call from visiblePositionInFocusedNodeForPoint(), and
code that is input to selectionClipRect.
This changes selectionClipRect to use the padding box (excluding borders), which is a progression.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformEditorState const):
(WebKit::elementBoundsInFrame):
(WebKit::constrainPoint):
(WebKit::WebPage::rootViewBoundsForElement):
(WebKit::WebPage::absoluteInteractionBoundsForElement):
(WebKit::WebPage::rootViewInteractionBoundsForElement):
(WebKit::WebPage::dispatchSyntheticMouseEventsForSelectionGesture):
(WebKit::WebPage::getFocusedElementInformation):
(WebKit::innerFrameQuad): Deleted.
(WebKit::elementRectInRootViewCoordinates): Deleted.
LayoutTests:
Re-enable editing/caret/ios, fixing the result of emoji.html which for some reason was
checked in as an html file (the test still fails).
- editing/caret/ios/caret-in-overflow-area-expected.txt: Added.
- editing/caret/ios/caret-in-overflow-area.html: Added.
- editing/caret/ios/emoji-expected.txt: Renamed from LayoutTests/editing/caret/ios/emoji-expected.html.
- editing/caret/ios/fixed-caret-position-after-scroll-expected.txt:
- editing/caret/ios/fixed-caret-position-after-scroll.html:
- editing/selection/ios/place-selection-in-overflow-area-expected.txt: Added.
- editing/selection/ios/place-selection-in-overflow-area.html: Added.
- editing/selection/ios/selection-extends-into-overflow-area-expected.txt: Added.
- editing/selection/ios/selection-extends-into-overflow-area.html: Added.
- platform/ios-wk2/TestExpectations:
- 2:07 PM Changeset in webkit [247397] by
-
- 11 edits3 copies in trunk/Source/WebCore
[WebGPU] Move error scopes out of GPUDevice for more portable error generation
https://bugs.webkit.org/show_bug.cgi?id=199740
Reviewed by Myles C. Maxfield.
Move error generation into a separate RefCounted class to allow GPU objects to generate
errors independent of any GPUDevice.
Create GPUObjectBase to delegate error generation and refactor GPUBuffer to inherit from GPUObjectBase.
No behavior change or new tests. Error scopes covered by error-scopes-test.html.
- Modules/webgpu/WebGPUDevice.cpp:
(WebCore::WebGPUDevice::WebGPUDevice): Now creates a GPUErrorGenerator.
(WebCore::WebGPUDevice::createBuffer const): Pass the GPUErrorGenerator to any created GPUBuffer.
(WebCore::WebGPUDevice::createBufferMapped const): Ditto.
(WebCore::WebGPUDevice::popErrorScope): Shouldn't be const. Can just ask for the GPUError rather than passing a lambda.
(WebCore::WebGPUDevice::pushErrorScope const): Deleted.
(WebCore::WebGPUDevice::popErrorScope const): Deleted.
- Modules/webgpu/WebGPUDevice.h:
(WebCore::WebGPUDevice::pushErrorScope):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/gpu/GPUBuffer.h: Now inherits from GPUObjectBase for error generation ease.
- platform/graphics/gpu/GPUDevice.cpp:
(WebCore::GPUDevice::tryCreateBuffer): Ensure GPUBuffers reference the GPUErrorGenerator.
(WebCore::GPUDevice::pushErrorScope): Deleted. No longer needed here.
(WebCore::GPUDevice::popErrorScope): Deleted.
(WebCore::GPUDevice::registerError): Deleted.
- platform/graphics/gpu/GPUDevice.h: Move error scope logic out.
- platform/graphics/gpu/GPUErrorGenerator.cpp: Added.
(WebCore::GPUErrorGenerator::pushErrorScope):
(WebCore::GPUErrorGenerator::popErrorScope):
(WebCore::GPUErrorGenerator::generateError):
- platform/graphics/gpu/GPUErrorGenerator.h: Added.
(WebCore::GPUErrorGenerator::create):
- platform/graphics/gpu/GPUObjectBase.h: Added.
(WebCore::GPUObjectBase::generateError):
(WebCore::GPUObjectBase::GPUObjectBase):
- platform/graphics/gpu/cocoa/GPUBufferMetal.mm: Use the GPUErrorGenerator directly during buffer creation.
(WebCore::GPUBuffer::validateBufferUsage):
(WebCore::GPUBuffer::tryCreate):
(WebCore::GPUBuffer::GPUBuffer):
- platform/graphics/gpu/cocoa/GPUQueueMetal.mm:
(WebCore::GPUQueue::submit): Prevent possible null dereference.
- 1:58 PM Changeset in webkit [247396] by
-
- 3 edits in trunk/Source/WebKit
WebBackForwardListItem::setPageState should receive pageState by rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=199535
Reviewed by Alex Christensen
Coverity is complaining here about copying PageState by value in the parameter list. It's
sort of a false positive, in that the PageState really does need to be copied here, so this
is the best we can do. But pass by value and then WTFMove() is a pretty strange way to write
it. Passing by rvalue reference would be better. This makes the copy more clear.
- Shared/WebBackForwardListItem.h:
(WebKit::WebBackForwardListItem::setPageState):
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::updateBackForwardItem):
- 1:14 PM Changeset in webkit [247395] by
-
- 6 edits in trunk/Source
Add release logging for quota checks
https://bugs.webkit.org/show_bug.cgi?id=199697
Reviewed by Alex Christensen.
Source/WebCore:
Log whether a request to extend quota is made and the result of the request.
This logging should happen in the networking process.
No change of behavior.
- platform/Logging.h:
- storage/StorageQuotaManager.cpp:
(WebCore::StorageQuotaManager::askForMoreSpace):
(WebCore::StorageQuotaManager::processPendingRequests):
Source/WebKit:
Log requests made to the page and the result from the application.
- Platform/Logging.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestStorageSpace):
- 1:08 PM Changeset in webkit [247394] by
-
- 2 edits in trunk/Source/WebKit
Remove unneeded variable in LocalStorageNamespace::getOrCreateStorageArea
https://bugs.webkit.org/show_bug.cgi?id=199477
Reviewed by Alex Christensen.
- NetworkProcess/WebStorage/StorageManager.cpp:
(WebKit::StorageManager::LocalStorageNamespace::getOrCreateStorageArea):
- 12:50 PM Changeset in webkit [247393] by
-
- 4 edits in trunk/Tools
run-javascriptcore-tests won't report test results for testmasm, testair, testb3, testdfg and test api
https://bugs.webkit.org/show_bug.cgi?id=199489
<rdar://problem/47891081>
Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-07-12
Reviewed by Aakash Jain.
- BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunJavaScriptCoreTests.countFailures):
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
- Scripts/run-javascriptcore-tests:
(runTest):
(reportTestFailures):
(runJSCStressTests):
- 11:01 AM Changeset in webkit [247392] by
-
- 2 edits in trunk/Source/WebKit
Connection::waitForSyncReply() uses wall time clock for timeout
https://bugs.webkit.org/show_bug.cgi?id=198712
Due to a nature of the system time (it might not be set, jump, be off
by a lot) it is better to use monotonically increasing time which is
exactly what's used in a similar place i.e. Connection::waitForMessage()
Patch by Pawel Stanek <p.stanek@metrological.com> on 2019-07-12
Reviewed by Alex Christensen.
- Platform/IPC/Connection.cpp:
(IPC::Connection::waitForSyncReply):
- 10:27 AM Changeset in webkit [247391] by
-
- 8 edits in trunk
Stopping a cloned MediaStream video track should not stop any other video track
https://bugs.webkit.org/show_bug.cgi?id=199635
Reviewed by Eric Carlson.
Source/WebCore:
In case a track is requesting its source to end, the
RealtimeVideoSource should request its own source to end and not stop it directly.
Also, if a track is removing itself as an observer to a RealtimeVideoSource, we should
stop the underlying source only if this one does not have any other observer.
Covered by updated test.
- platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::removeObserver):
- platform/mediastream/RealtimeMediaSource.h:
- platform/mediastream/RealtimeVideoSource.cpp:
(WebCore::RealtimeVideoSource::requestToEnd):
(WebCore::RealtimeVideoSource::stopBeingObserved):
- platform/mediastream/RealtimeVideoSource.h:
LayoutTests:
- fast/mediastream/mediastreamtrack-video-clone-expected.txt:
- fast/mediastream/mediastreamtrack-video-clone.html:
- 10:11 AM Changeset in webkit [247390] by
-
- 4 edits1 add in trunk
B3 should reduce (integer) Sub(Neg(x), y) to Neg(Add(x, y))
https://bugs.webkit.org/show_bug.cgi?id=196371
Reviewed by Keith Miller.
JSTests:
- microbenchmarks/mul-immediate-sub.js: Added.
(doTest):
Source/JavaScriptCore:
Adding these strength reductions gives 2x a (x86) and 3x (arm64) performance improvement
on the microbenchmark.
- b3/B3ReduceStrength.cpp:
- b3/testb3.cpp:
(JSC::B3::testSubSub):
(JSC::B3::testSubSub2):
(JSC::B3::testSubAdd):
(JSC::B3::testSubFirstNeg):
(JSC::B3::run):
- 9:59 AM Changeset in webkit [247389] by
-
- 3 edits in trunk/Tools
[ews-build] Make layout-tests' full_results.json accessible in Buildbot
https://bugs.webkit.org/show_bug.cgi?id=199743
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
- BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
- 8:19 AM Changeset in webkit [247388] by
-
- 23 edits in trunk
Drop DarkModeCSSEnabled as an experimental feature and always enable it.
https://bugs.webkit.org/show_bug.cgi?id=199725
rdar://problem/52970972
Reviewed by Megan Gardner.
Source/WebCore:
Tests: css-dark-mode
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/MediaQueryEvaluator.cpp:
(WebCore::prefersColorSchemeEvaluate):
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent):
(WebCore::isFeatureValidWithoutValue):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue):
- html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::process):
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDarkModeCSSEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::darkModeCSSEnabled const): Deleted.
Source/WebKit:
- Shared/WebPreferences.yaml: Removed DarkModeCSSEnabled.
LayoutTests:
Removed <!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
from all dark mode tests.
- css-dark-mode/color-scheme-css-parse.html:
- css-dark-mode/color-scheme-css.html:
- css-dark-mode/color-scheme-meta.html:
- css-dark-mode/color-scheme-priority.html:
- css-dark-mode/color-scheme-scrollbar.html:
- css-dark-mode/default-colors.html:
- css-dark-mode/older-syntax/supported-color-schemes-css.html:
- css-dark-mode/older-syntax/supported-color-schemes-meta.html:
- css-dark-mode/older-systems/color-scheme-css.html:
- css-dark-mode/older-systems/color-scheme-meta.html:
- css-dark-mode/older-systems/prefers-color-scheme.html:
- css-dark-mode/prefers-color-scheme-picture-element.html:
- css-dark-mode/prefers-color-scheme.html:
- 7:47 AM Changeset in webkit [247387] by
-
- 30 edits6 adds in trunk
[BigInt] Add ValueBitLShift into DFG
https://bugs.webkit.org/show_bug.cgi?id=192664
Reviewed by Saam Barati.
JSTests:
We are adding tests to cover ValueBitwise operations AI changes.
- stress/big-int-left-shift-untyped.js: Added.
- stress/bit-op-with-object-returning-int32.js:
- stress/value-bit-and-ai-rule.js: Added.
- stress/value-bit-lshift-ai-rule.js: Added.
- stress/value-bit-or-ai-rule.js: Added.
- stress/value-bit-xor-ai-rule.js: Added.
PerformanceTests:
- BigIntBench/big-int-simple-lshift.js: Added.
Source/JavaScriptCore:
This patch is splitting the
BitLShiftintoArithBitLShiftand
ValueBitLShiftto handle BigInt speculation more efficiently during
DFG and FTL layers. Following the same approach of otherValueBitOps,
ValueBitLShifthandles Untyped and BigInt speculations, while
ArithBitLShifthandles number and boolean operands and always results into
Int32.
- bytecode/BytecodeList.rb:
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finishCreation):
- bytecode/Opcode.h:
- dfg/DFGAbstractInterpreter.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::handleConstantBinaryBitwiseOp):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
We moved
BitLShiftconstant fold rules to a new method
handleConstantBinaryBitwiseOpto be reused byArithBitLShiftand
ValueBitLShift. This also enables support of constant folding on other
bitwise operations likeValueBitAnd,ValueBitOrandValueBitXor, when
their binary use kind is UntypedUse. Such cases can happen on those
nodes because fixup phase is conservative.
- dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
(JSC::DFG::ByteCodeParser::parseBlock):
We parse
op_lshiftasArithBitLShiftwhen its operands are numbers.
Otherwise, we fallback toValueBitLShiftand rely on fixup phase to
convertValueBitLShiftintoArithBitLShiftwhen possible.
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
ArithBitLShifthas the same clobberize rules as formerBitLShift.
ValueBitLShiftonly clobberize world when it is UntypedUse.
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
ValueBitLShiftcan GC whenBigIntUsebecause it allocates new
JSBigInts to perform this operation. It also can GC on UntypedUse
because of observable user code.
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
ValueBitLShiftandArithBitLShifthas the same fixup rules of
other binary bitwise operations. In the case ofValueBitLShift
We check if we should speculate on BigInt or Untyped and fallback to
ArithBitLShiftwhen both cheks fail.
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
We updated
operationValueBitLShiftto handle BigInt cases. Also, we
addedoperationBitLShiftBigIntthat is used when we compile
ValueBitLValueBitLShift(BigIntUse).
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
ValueBitLShift's prediction propagation rules differs from other
bitwise operations, because using only heap prediction for this node causes
significant performance regression on Octane's zlib and mandreel.
The reason is because of cases where a function is compiled but the
instructionop_lshiftwas never executed before. If we use
getPrediction()we will emit aForceOSRExit, resulting in more OSR
than desired. To solve such issue, we are then using
getPredictionWithoutOSR()and falling back togetHeapPrediction()
only on cases where we can't rely on node's input types.
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueLShiftOp):
(JSC::DFG::SpeculativeJIT::compileShiftOp):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::shiftOp):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGStrengthReductionPhase.cpp:
(JSC::DFG::StrengthReductionPhase::handleNode):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitLShift):
(JSC::FTL::DFG::LowerDFGToB3::compileBitLShift): Deleted.
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- 6:24 AM Changeset in webkit [247386] by
-
- 3 edits in trunk/Source/JavaScriptCore
getIndexQuickly should be const
https://bugs.webkit.org/show_bug.cgi?id=199747
Reviewed by Yusuke Suzuki.
- runtime/Butterfly.h:
(JSC::Butterfly::indexingPayload const):
(JSC::Butterfly::arrayStorage const):
(JSC::Butterfly::contiguousInt32 const):
(JSC::Butterfly::contiguousDouble const):
(JSC::Butterfly::contiguous const):
- runtime/JSObject.h:
(JSC::JSObject::canGetIndexQuickly const):
(JSC::JSObject::getIndexQuickly const):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canGetIndexQuickly): Deleted.
(JSC::JSObject::getIndexQuickly): Deleted.
- 5:31 AM Changeset in webkit [247385] by
-
- 3 edits in trunk/Source/WebCore
Refactor ShadowBlur: remove some class variables and use function parameters instead.
https://bugs.webkit.org/show_bug.cgi?id=199511
Reviewed by Said Abou-Hallawa.
On the ShadowBlur class it is confusing to know if the status of the m_layerImage buffer or the
values calculated by calculateLayerBoundingRect() are valid between the different function calls.
To avoid this problem, pass this values as function parameters instead of storing them in the class.
No new tests, no intended behaviour change.
- platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::ShadowBlur):
(WebCore::ShadowBlur::calculateLayerBoundingRect):
(WebCore::ShadowBlur::drawShadowBuffer):
(WebCore::ShadowBlur::drawRectShadow): Pass the parameters from the callback.
(WebCore::ShadowBlur::drawInsetShadow): Ditto.
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawLayerPieces):
(WebCore::ShadowBlur::drawLayerPiecesAndFillCenter):
(WebCore::ShadowBlur::blurShadowBuffer):
(WebCore::ShadowBlur::blurAndColorShadowBuffer):
(WebCore::ShadowBlur::drawShadowLayer):
- platform/graphics/ShadowBlur.h: Use a struct to pass the values calculated on calculateLayerBoundingRect().
- 3:08 AM Changeset in webkit [247384] by
-
- 2 edits in trunk/Source/WebCore
[ATK] Avoid unneeded call to to core(selection) in listObjectForSelection()
https://bugs.webkit.org/show_bug.cgi?id=199748
<rdar://problem/52995908>
Reviewed by Konstantin Tokarev.
No new tests needed.
- accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
(listObjectForCoreSelection): Renamed from listObjectForSelection() and remove the
unneeded call to core() now that coreSelection is passed directly to the function.
(optionFromList): Change to pass coreSelection directly to listObjectForCoreSelection().