Timeline
Oct 20, 2018:
- 2:07 PM Changeset in webkit [237312] by
-
- 3 edits in trunk/LayoutTests
Unskip test fast/writing-mode/english-rl-text-with-spelling-marker.html in iOS WebKit2
Following r235149 we mark spelling errors in iOS WebKit2.
- platform/ios-wk1/TestExpectations: Skip in legacy WebKit until we fix <https://webkit.org/b/188762>.
- platform/ios/TestExpectations: Unskip test.
- 6:15 AM Changeset in webkit [237311] by
-
- 6 edits2 adds in trunk
MediaRecorder should fire a stop event when all tracks are ended
https://bugs.webkit.org/show_bug.cgi?id=190642
Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-20
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt: Added.
- web-platform-tests/mediacapture-record/MediaRecorder-stop.html: Added.
Source/WebCore:
This patch only implements to fire the stop event when all tracks are ended.
We will need to fire a dataavailable event when all tracks are ended.
Test: imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::~MediaRecorder):
(WebCore::MediaRecorder::trackEnded):
- Modules/mediarecorder/MediaRecorder.h:
- Modules/mediarecorder/MediaRecorder.idl:
- WebCore.xcodeproj/project.pbxproj:
- dom/EventNames.h:
- 12:00 AM Changeset in webkit [237310] by
-
- 2 edits4 deletes in trunk/Tools
[macOS] MiniBrowser has an unused injected bundle
https://bugs.webkit.org/show_bug.cgi?id=190770
Reviewed by Tim Horton.
- MiniBrowser/Configurations/MiniBrowserBundle.xcconfig: Removed.
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Removed the MiniBrowserBundle target, the Copy Bundle build phase in the MiniBrowser target, and references to removed files.
- MiniBrowser/MiniBrowserWebProcessPlugIn.h: Removed.
- MiniBrowser/MiniBrowserWebProcessPlugIn.m: Removed.
- MiniBrowser/mac/Bundle: Removed.
Oct 19, 2018:
- 7:57 PM Changeset in webkit [237309] by
-
- 2 edits in trunk/Source/WebKit
Allow WebContent process to check some file system features
https://bugs.webkit.org/show_bug.cgi?id=190768
<rdar://problem/45377609>
Reviewed by Alexey Proskuryakov.
This patch unblocks some IOKit properties that are needed by lower level frameworks to make decisions
about how to efficiently use the file system.
- WebProcess/com.apple.WebProcess.sb.in:
- 5:03 PM Changeset in webkit [237308] by
-
- 5 edits2 adds in trunk/Source
[WinCairo] Search terms are not saved for <input type="search">
https://bugs.webkit.org/show_bug.cgi?id=188174
Reviewed by Fujii Hironori.
Source/WebCore:
No new tests, should be covered by existing tests of search
inputs.
Add support for saving the search terms for <input
type="search"> to a SQLite database, replacing the
CF-based implementation for Windows and adding support
for non-legacy WebKit.
- PlatformWin.cmake:
- platform/win/SearchPopupMenuDB.cpp: Added.
(WebCore::SearchPopupMenuDB::singleton):
(WebCore::SearchPopupMenuDB::SearchPopupMenuDB):
(WebCore::SearchPopupMenuDB::~SearchPopupMenuDB):
(WebCore::SearchPopupMenuDB::saveRecentSearches):
(WebCore::SearchPopupMenuDB::loadRecentSearches):
(WebCore::SearchPopupMenuDB::checkDatabaseValidity): Use
quick_check pragma to test database status.
(WebCore::SearchPopupMenuDB::deleteAllDatabaseFiles):
(WebCore::SearchPopupMenuDB::openDatabase):
(WebCore::SearchPopupMenuDB::closeDatabase):
(WebCore::SearchPopupMenuDB::verifySchemaVersion): Check
schema version and update for schema changes.
(WebCore::SearchPopupMenuDB::checkSQLiteReturnCode): Check
for error codes that indicate database errors and remove and
recreate the database.
(WebCore::SearchPopupMenuDB::executeSimpleSql):
(WebCore::SearchPopupMenuDB::createPreparedStatement):
- platform/win/SearchPopupMenuDB.h: Added.
- platform/win/SearchPopupMenuWin.cpp:
(WebCore::SearchPopupMenuWin::enabled): Always enable support
for search term popup
(WebCore::SearchPopupMenuWin::saveRecentSearches): Switch from
CF implementation to SQLite database implementation
(WebCore::SearchPopupMenuWin::loadRecentSearches): Switch from
CF implementation to SQLite database implementation
(WebCore::autosaveKey): Deleted.
Source/WebKit:
Add support for saving the search terms for <input
type="search"> to a SQLite database, replacing the
CF-based implementation for Windows and adding support
for non-legacy WebKit.
- UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::saveRecentSearches): Use SQLite database
implementation in WebCore::SearchPopupMenuDB to save search
terms
(WebKit::WebPageProxy::loadRecentSearches): Use SQLite database
implementation in WebCore::SearchPopupMenuDB to load search
terms
- 4:15 PM Changeset in webkit [237307] by
-
- 8 edits in trunk/Source/WebKit
WebDataListSuggestionsDropdown should use a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=190763
<rdar://problem/45417449>
Reviewed by Tim Horton.
Nothing suspicious here. It's just good practice to not keep raw pointers that aren't reset when the object they point to are destroyed.
- UIProcess/WebDataListSuggestionsDropdown.cpp:
(WebKit::WebDataListSuggestionsDropdown::WebDataListSuggestionsDropdown):
(WebKit::WebDataListSuggestionsDropdown::close):
- UIProcess/WebDataListSuggestionsDropdown.h:
(WebKit::WebDataListSuggestionsDropdown::Client::~Client): Deleted.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.h:
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(WebKit::WebDataListSuggestionsDropdownIOS::create):
(WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS):
(WebKit::WebDataListSuggestionsDropdownIOS::close):
(WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption):
- UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
- UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::create):
(WebKit::WebDataListSuggestionsDropdownMac::WebDataListSuggestionsDropdownMac):
(WebKit::WebDataListSuggestionsDropdownMac::didSelectOption):
(WebKit::WebDataListSuggestionsDropdownMac::selectOption):
- 3:19 PM Changeset in webkit [237306] by
-
- 16 edits8 adds in trunk
[WebGPU] Add stubs for WebGPUSwapChain and WebGPURenderingContext
https://bugs.webkit.org/show_bug.cgi?id=190742
Reviewed by Dean Jackson.
Source/WebCore:
Test: updated webgpu-enabled.html to check for WebGPURenderingContext.
Implement support for creating a "webgpu" context from an HTML canvas.
- CMakeLists.txt:
- DerivedSources.make:
- Modules/webgpu/WebGPURenderingContext.cpp: Added.
(WebCore::WebGPURenderingContext::create):
(WebCore::WebGPURenderingContext::WebGPURenderingContext):
- Modules/webgpu/WebGPURenderingContext.h: Added.
- Modules/webgpu/WebGPURenderingContext.idl: Added.
- Modules/webgpu/WebGPUSwapChain.cpp: Added.
(WebCore::WebGPUSwapChain::configure):
(WebCore::WebGPUSwapChain::present):
(WebCore::WebGPUSwapChain::reshape):
(WebCore::WebGPUSwapChain::markLayerComposited):
- Modules/webgpu/WebGPUSwapChain.h: Added.
(WebCore::WebGPUSwapChain::WebGPUSwapChain):
- Modules/webgpu/WebGPUSwapChain.idl: Added.
- Modules/webgpu/WebGPUSwapChainDescriptor.h: Added.
- Modules/webgpu/WebGPUSwapChainDescriptor.idl: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/WebCoreBuiltinNames.h:
- dom/Document.cpp:
(WebCore::Document::getCSSCanvasContext):
- dom/Document.h:
- dom/Document.idl:
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebGPUType):
(WebCore::HTMLCanvasElement::createContextWebGPU):
(WebCore::HTMLCanvasElement::getContextWebGPU):
- html/HTMLCanvasElement.h:
- html/HTMLCanvasElement.idl:
- html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isWebGPU const):
LayoutTests:
Updated basic webgpu feature detection test to check for WebGPURenderingContext.
- webgpu/webgpu-enabled-expected.txt:
- webgpu/webgpu-enabled.html:
- 3:00 PM Changeset in webkit [237305] by
-
- 18 edits in trunk
[iOS] [Datalist] Can't pick datalist suggestions in a stock WKWebView
https://bugs.webkit.org/show_bug.cgi?id=190621
<rdar://problem/45310649>
Reviewed by Tim Horton.
Source/WebKit:
Fixes the bug by refactoring datalist suggestion information on iOS; currently, we override text suggestions on
_WKFormInputSession. This only works for a few internal clients (including Safari) that set a _WKInputDelegate
and also implement either -_webView:willStartInputSession: or -_webView:didStartInputSession:, which is
necessary in order to ensure that WebKit creates and maintains a form input session.
The two pieces of information that datalist code needs to vend to WKContentView are a list of UITextSuggestions
and a custom input view, which are both currently properties of _WKFormInputSession. This patch lifts these out
of the input session and makes them properties of WKContentView, which are used in
WebDataListSuggestionsDropdownIOS.
Test: fast/forms/datalist/datalist-textinput-suggestions-order.html
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
Add new properties to WKContentView: an input view for datalist suggestions, and a list of text suggestions.
(-[WKFormInputSession setSuggestions:]):
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _endEditing]):
Pull out common logic when resigning first responder or tabbing to the next or previous text field into a new
helper. This helper notifies_inputPeripheral,_formInputSession, and_dataListTextSuggestionsInputView
when editing has ended; the input peripheral and suggestions input view use this chance to send the value of the
form control to the web process.
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView inputView]):
If a custom input view is not set but we have an input view for a datalist's text suggestions, use the datalist
input view.
(-[WKContentView accessoryTab:]):
(-[WKContentView _stopAssistingNode]):
Clear datalist state on WKContentView.
(-[WKContentView dataListTextSuggestionsInputView]):
(-[WKContentView dataListTextSuggestions]):
(-[WKContentView setDataListTextSuggestionsInputView:]):
(-[WKContentView setDataListTextSuggestions:]):
(-[WKContentView updateTextSuggestionsForInputDelegate]):
Pull out logic for setting suggestions on UIKit's
inputDelegate(i.e. UIKeyboardImpl). We now first consult
internally-vended text suggestions from _WKFormInputSession; if an internal client has not overridden our text
suggestions, then we simply use suggestions from the current datalist (if present).
- UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(-[WKDataListSuggestionsPicker updateWithInformation:]):
(-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPicker invalidate]):
(-[WKDataListSuggestionsPopover updateWithInformation:]):
(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]):
Change all the places that currently manipulate WKContentView's form input session to directly set text
suggestions and the text suggestion input view on the content view instead.
Tools:
Add a UIScriptController hook to resign first responder on WKWebView. See LayoutTests/ChangeLog for more detail.
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::resignFirstResponder):
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::resignFirstResponder):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::resignFirstResponder):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/UIScriptControllerCocoa.mm:
(WTR::UIScriptController::resignFirstResponder):
- WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::makeWebViewFirstResponder):
Implement this method stub on iOS, to ensure that TestController::resetStateToConsistentValues restores first
responder on the WKWebView when running iOS layout tests.
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
After resigning first responder to dismiss any on-screen keyboard, ensure that we restore first responder.
LayoutTests:
Refactor an existing layout test to run on both iOS and macOS. On both platforms, it checks that the top
suggestion respects option element order in the document, as well as the current contents of the text field.
On macOS, we use arrow keys and hit return to select a suggestion; on iOS, we tap the suggestions button and
simulate hitting the done button on the input view to dismiss the keyboard.
- fast/forms/datalist/datalist-textinput-suggestions-order-expected.txt:
- fast/forms/datalist/datalist-textinput-suggestions-order.html:
- platform/ios/TestExpectations:
Enable this test on iOS.
- resources/ui-helper.js:
(window.UIHelper.resignFirstResponder):
(window.UIHelper):
- 2:37 PM Changeset in webkit [237304] by
-
- 28 edits2 moves in trunk
Only cap lifetime of persistent cookies created client-side through document.cookie when resource load statistics is enabled
https://bugs.webkit.org/show_bug.cgi?id=190687
<rdar://problem/45349024>
Reviewed by Alex Christensen.
Source/WebCore:
Test: http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html
NetworkStorageSession::setCookiesFromDOM() now consults the new
m_shouldCapLifetimeForClientSideCookies member variable before
capping the lifetime of cookies.
- loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):
Removal of the isMarkedForCookieBlocking member.
- loader/ResourceLoadStatistics.h:
Removal of the isMarkedForCookieBlocking member.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::setShouldCapLifetimeForClientSideCookies):
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor):
No longer takes the boolean clearFirst parameter and now always clears first.
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::filterCookies):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
Source/WebKit:
This patch adds the following:
- The WebProcessPool now tells the WebsiteDataStore when a network process has
been created.
- The WebsiteDataStore in turn tells the WebResourceLoadStatisticsStore when
a network process has been created.
- The WebResourceLoadStatisticsStore makes sure to update the network processes
with its cookie policy when it's notified that a network process has been
created.
In addition, this patch changes the following:
- The ResourceLoadStatisticsMemoryStore no longer keeps track of which domains
it has told the network process to block cookies for. The reason is that
we cannot assume that there is only one network process so we should
always send complete blocking data.
- The ResourceLoadStatisticsMemoryStore's functions for communicating cookie
blocking state to the network process no longer take and forward the
"clear first" parameter. This is because complete data is sent every time
and thus the network process' set is always cleared on an update.
- Removes WebsiteDataStore::networkProcessDidCrash() and
WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset() since
the call site---WebProcessPool::ensureNetworkProcess()---now calls
WebsiteDataStore::didCreateNetworkProcess() after a network process
crash and the state sync for cookie blocking is triggered.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcess::setShouldCapLifetimeForClientSideCookies):
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcessProxy::setShouldCapLifetimeForClientSideCookies):
(WebKit::NetworkProcessProxy::didSetShouldCapLifetimeForClientSideCookies):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::clearBlockingStateForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::resetCookieBlockingState): Deleted.
- UIProcess/ResourceLoadStatisticsMemoryStore.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset): Deleted.
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::setShouldCapLifetimeForClientSideCookies):
(WebKit::WebsiteDataStore::didCreateNetworkProcess):
(WebKit::WebsiteDataStore::networkProcessDidCrash): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
LayoutTests:
The test case now makes use of internals.setResourceLoadStatisticsEnabled()
and was thus moved to http/tests/resourceLoadStatistics/.
Removed skip of previous test location.
- http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-expected.txt: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt.
- http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html.
- http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt:
Removed line containing "isMarkedForCookieBlocking: No."
- http/tests/webAPIStatistics/font-load-data-collection-expected.txt:
Removed line containing "isMarkedForCookieBlocking: No."
- http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt:
Removed line containing "isMarkedForCookieBlocking: No."
- http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt:
Removed line containing "isMarkedForCookieBlocking: No."
- platform/ios/TestExpectations:
Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.
- platform/mac-wk2/TestExpectations:
Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.
- 2:29 PM Changeset in webkit [237303] by
-
- 2 edits in trunk/Source/WebKit
Rebase python tests.
- Scripts/webkit/messages_unittest.py:
- 2:17 PM Changeset in webkit [237302] by
-
- 4 edits in trunk/Source/WebKit
Rebase python tests.
- Scripts/Makefile:
- Scripts/webkit/MessageReceiver-expected.cpp:
- Scripts/webkit/Messages-expected.h:
- 2:17 PM Changeset in webkit [237301] by
-
- 2 edits in trunk/Tools
ASSERTION FAILED: !frame().animation().hasAnimations() in WebCore::FrameView::didDestroyRenderTree()
https://bugs.webkit.org/show_bug.cgi?id=186946
<rdar://problem/41724248>
Reviewed by Antoine Quint.
If the incoming test has different enableWebAnimationsCSSIntegration options,
then we need to create a new WebView.
- DumpRenderTree/TestOptions.cpp:
(TestOptions::webViewIsCompatibleWithOptions const):
- 2:12 PM Changeset in webkit [237300] by
-
- 27 edits in trunk/Source/WebKit
Mark LegacySync IPC messages
https://bugs.webkit.org/show_bug.cgi?id=190759
Reviewed by Tim Horton.
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- Platform/IPC/HandleMessage.h:
(IPC::handleMessageLegacySync):
- PluginProcess/PluginControllerProxy.messages.in:
- Scripts/webkit/messages.py:
- Shared/Plugins/NPObjectMessageReceiver.messages.in:
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- UIProcess/Plugins/PluginProcessProxy.messages.in:
- UIProcess/WebFullScreenManagerProxy.messages.in:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/WebPasteboardProxy.messages.in:
- UIProcess/WebProcessPool.messages.in:
- UIProcess/WebProcessProxy.messages.in:
- UIProcess/WebStorage/StorageManager.messages.in:
- UIProcess/mac/SecItemShimProxy.messages.in:
- WebProcess/Plugins/PluginProcessConnection.messages.in:
- WebProcess/Plugins/PluginProxy.messages.in:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebProcess.messages.in:
- 1:38 PM Changeset in webkit [237299] by
-
- 27 edits2 deletes in trunk
Unreviewed, rolling out r237254.
https://bugs.webkit.org/show_bug.cgi?id=190760
"It regresses JetStream 2 by 5% on some iOS devices"
(Requested by saamyjoon on #webkit).
Reverted changeset:
"[JSC] JSC should have "parseFunction" to optimize Function
constructor"
https://bugs.webkit.org/show_bug.cgi?id=190340
https://trac.webkit.org/changeset/237254
- 1:18 PM Changeset in webkit [237298] by
-
- 5 edits1 add in trunk/Source/WebKit
Update and add python tests after r237294
https://bugs.webkit.org/show_bug.cgi?id=190746
- Scripts/Makefile: Added to help updating expectations.
- Scripts/webkit/LegacyMessageReceiver-expected.cpp:
- Scripts/webkit/MessageReceiverSuperclass-expected.cpp:
(Messages::WebPage::TestAsyncMessage::callReply):
(Messages::WebPage::TestAsyncMessage::cancelReply):
(Messages::WebPage::TestAsyncMessage::send):
(WebKit::WebPage::didReceiveMessage):
- Scripts/webkit/MessagesSuperclass-expected.h:
(Messages::WebPage::TestAsyncMessage::receiverName):
(Messages::WebPage::TestAsyncMessage::name):
(Messages::WebPage::TestAsyncMessage::asyncMessageReplyName):
(Messages::WebPage::TestAsyncMessage::TestAsyncMessage):
(Messages::WebPage::TestAsyncMessage::arguments const):
- Scripts/webkit/test-superclass-messages.in:
Adding the extra newline made python tests fail.
I also added more tests for the new functionality introduced in r237924.
- 1:03 PM Changeset in webkit [237297] by
-
- 3 edits1 add in trunk
vmCall should check if we exit before emitting an OSR exit due to exceptions
https://bugs.webkit.org/show_bug.cgi?id=190740
<rdar://problem/45220139>
Reviewed by Mark Lam.
JSTests:
- stress/dont-emit-osr-exits-for-every-call-ftl.js: Added.
(foo):
Source/JavaScriptCore:
The bug we were seeing is the MovHint removal phase would
eliminate a superfluous MovHint. This left a certain range
of nodes in a state where they would not be able to reconstruct
values for an OSR exit. This is OK, since this phase proved those
nodes don't exit. However, some of these nodes may use the vmCall
construct in FTLLower. vmCall used to unconditionally emit an
exception check after each call. However, if such a call happens
in the range of nodes where we can't exit, we would end up generating
an invalid exit (and running with validateFTLOSRExitLiveness flag
would find this issue).
This patch makes vmCall check to see if the node can exit before
emitting an exception check. A node not being able to exit implies
that it can't exit for exceptions, therefore, by definition, it can't
throw an exception.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::vmCall):
- 12:31 PM Changeset in webkit [237296] by
-
- 5 edits4 adds in trunk
[ESNext][BigInt] Implement support for ""
https://bugs.webkit.org/show_bug.cgi?id=186235
Reviewed by Yusuke Suzuki.
JSTests:
- stress/big-int-bitwise-xor-general.js: Added.
- stress/big-int-bitwise-xor-to-primitive-precedence.js: Added.
- stress/big-int-bitwise-xor-type-error.js: Added.
- stress/big-int-bitwise-xor-wrapped-value.js: Added.
Source/JavaScriptCore:
This patch is introducing support for BigInt into bitwise xor
operation. We are including only support into LLInt and Baseline.
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::bitwiseXor):
(JSC::JSBigInt::absoluteXor):
- runtime/JSBigInt.h:
- 11:01 AM Changeset in webkit [237295] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Remove unused member variable of DebuggerSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=190743
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-10-19
Reviewed by Devin Rousso.
- UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel):
- 10:40 AM Changeset in webkit [237294] by
-
- 18 edits in trunk/Source/WebKit
Introduce CompletionHandler-based Async IPC messages with replies
https://bugs.webkit.org/show_bug.cgi?id=190746
Reviewed by Tim Horton.
Before this patch, to make an asynchronous IPC message with a reply you had to find two objects that
can talk to each other, make two new message types, send a generated identifier, keep track of that
identifier, make a HashMap somewhere to store the object waiting for the response, and hook it all up.
What a mess. No wonder people take shortcuts and make strange design decisions.
Now, you can just use a CompletionHandler and mark the reply as Async in *.messages.in.
I've adopted this with a message whose behavior is covered by the storage/indexeddb/modern/blob-cursor.html
layout test and many others. I intent to refine and further adopt this incrementally.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles):
(WebKit::NetworkProcess::didGetSandboxExtensionsForBlobFiles): Deleted.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcess.messages.in:
This is representative of how code will be simplified with greater adoption.
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::decode):
Modernize HandleArray decoding.
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchMessage):
(IPC::nextAsyncReplyHandlerID):
(IPC::asyncReplyHandlerMap):
Handle async replies when looking at incoming messages from the sending process.
- Platform/IPC/Connection.h:
(IPC::Connection::sendWithAsyncReply):
Send a message with an async reply and prepare the reply receiver.
- Platform/IPC/Encoder.h:
Make the uint64_t encoder public so we can use it when encoding the listenerID.
- Platform/IPC/HandleMessage.h:
(IPC::handleMessageAsync):
Handle an asynchronous message with a reply from the receiving process.
This is similar to how DelayedReply messages are handled, but the listenerID is automatically captured and sent back.
- Scripts/webkit/messages.py:
Generate code for async message replies.
- Shared/Databases/IndexedDB/WebIDBResult.cpp:
(WebKit::WebIDBResult::decode):
- Shared/SandboxExtension.h:
(WebKit::SandboxExtension::HandleArray::at):
(WebKit::SandboxExtension::HandleArray::decode):
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::decode):
- Shared/mac/SandboxExtensionMac.mm:
(WebKit::SandboxExtension::HandleArray::decode):
Modernize the decoding of HandleArray to work with generated decoding.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getSandboxExtensionsForBlobFiles):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
This is also representative of how code will be simplified with greater adoption.
- WebProcess/MediaStream/MediaDeviceSandboxExtensions.cpp:
(WebKit::MediaDeviceSandboxExtensions::decode):
Modernize HandleArray decoding.
- 10:28 AM Changeset in webkit [237293] by
-
- 6 edits in trunk/Source/WebCore
[LFC][IFC] RenderReplaced renderer should create InlineBox
https://bugs.webkit.org/show_bug.cgi?id=190720
Reviewed by Antti Koivisto.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):
- 10:25 AM Changeset in webkit [237292] by
-
- 5 edits35 adds in trunk
[EME] Fix crash during tracing in gst_qtdemux_request_protection_context
https://bugs.webkit.org/show_bug.cgi?id=190738
Reviewed by Xabier Rodriguez-Calvar.
LayoutTests/imported/w3c:
Add new passing baselines for some ClearKey tests, now that the
GStreamer crash fix allows us the generate them.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https-expected.txt: Added.
- web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https-expected.txt: Added.
Tools:
Add a GStreamer patch to avoid crashing when the run-time logging
level is TRACE. There was a missing null check which caused many
tests to crash.
- gstreamer/patches/gst-plugins-good-0013-Avoid-warning-when-reporting-about-decryptors.patch: Added.
LayoutTests:
Add failing test expectations for the GTK port. These tests are
not mirrored in the top-level TestExpectations file, since there
are no passing baselines for these tests there. The testing
infrastructure will report them as unexpected passing when they
are marked as [ Failure ] there, since their output matches the
failing output in this directory, and if you don't have an
expected test, then they fail as [ Missing ], and putting failing
baselines in the top-level cross-platform directory also seem
wrong...
The following two tests produce a dumpRenderTree output for
unknown reasons, and so they have been marked as Missing for now.
platform/gtk/imported/w3c/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html
platform/gtk/imported/w3c/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html
- platform/gtk/TestExpectations: Update expectations.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearKey-encrypted-webm-event-mse-actual.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-update-disallowed-input.https-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https-expected.txt: Added.
- 10:00 AM Changeset in webkit [237291] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Inline replaced width should default to 300px only if width is auto.
https://bugs.webkit.org/show_bug.cgi?id=190722
Reviewed by Antti Koivisto.
See #5
5. Otherwise, if 'width' has a computed value of 'auto', but none of the conditions above are met, then the used value of 'width' becomes 300px.
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):
- 9:58 AM Changeset in webkit [237290] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add inline runs to showLayoutTree
https://bugs.webkit.org/show_bug.cgi?id=190718
Reviewed by Antti Koivisto.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
(WebCore::Layout::outputLayoutBox):
(WebCore::Layout::outputLayoutTree):
- 9:51 AM Changeset in webkit [237289] by
-
- 5 edits2 copies1 add1 delete in trunk/Source/WebCore
[LFC][IFC] Remove the previous version of inline content handling.
https://bugs.webkit.org/show_bug.cgi?id=190716
Reviewed by Antti Koivisto.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/Verification.cpp:
(WebCore::Layout::areEssentiallyEqual):
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::inlineContent):
(WebCore::Layout::InlineFormattingState::addLayoutRuns): Deleted.
(WebCore::Layout::InlineFormattingState::layoutRuns const): Deleted.
- layout/inlineformatting/text/TextUtil.cpp: Renamed from Source/WebCore/layout/inlineformatting/textlayout/TextUtil.cpp.
(WebCore::Layout::TextUtil::TextUtil):
(WebCore::Layout::TextUtil::width const):
(WebCore::Layout::TextUtil::hyphenPositionBefore const):
(WebCore::Layout::TextUtil::textWidth const):
(WebCore::Layout::TextUtil::fixedPitchWidth const):
- layout/inlineformatting/text/TextUtil.h: Renamed from Source/WebCore/layout/inlineformatting/textlayout/TextUtil.h.
- layout/inlineformatting/textlayout/Runs.h: Removed.
- layout/inlineformatting/textlayout/TextContentProvider.cpp: Removed.
- layout/inlineformatting/textlayout/TextContentProvider.h: Removed.
- layout/inlineformatting/textlayout/simple/SimpleLineBreaker.cpp: Removed.
- layout/inlineformatting/textlayout/simple/SimpleLineBreaker.h: Removed.
- layout/inlineformatting/textlayout/simple/SimpleTextRunGenerator.cpp: Removed.
- layout/inlineformatting/textlayout/simple/SimpleTextRunGenerator.h: Removed.
- 9:41 AM Changeset in webkit [237288] by
-
- 9 edits2 adds in trunk/Source/WebCore
[LFC][IFC] Add generic inline content handling.
https://bugs.webkit.org/show_bug.cgi?id=190713
Reviewed by Antti Koivisto.
layoutInlineContent turns InlineLineBreaker::Run objects into final inline runs by
resolving heading/trailing whitespace, aligment, expansion opportunities etc.
These inline runs are input to the display tree construction.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/displaytree/DisplayBox.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layout const):
(WebCore::Layout::trimLeadingRun):
(WebCore::Layout::InlineFormattingContext::layoutInlineContent const):
(WebCore::Layout::InlineFormattingContext::computeWidthAndHeight const):
- layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::Line::hasContent const):
(WebCore::Layout::InlineFormattingContext::Line::contentLogicalLeft const):
(WebCore::Layout::InlineFormattingContext::Line::availableWidth const):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::inlineRuns):
(WebCore::Layout::InlineFormattingState::appendInlineRun):
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::InlineLineBreaker::nextRun):
(WebCore::Layout::InlineLineBreaker::nextLayoutRun): Deleted.
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/InlineRun.h: Added.
(WebCore::Layout::InlineRun::logicalLeft const):
(WebCore::Layout::InlineRun::logicalRight const):
(WebCore::Layout::InlineRun::width const):
(WebCore::Layout::InlineRun::setWidth):
(WebCore::Layout::InlineRun::setLogicalRight):
(WebCore::Layout::InlineRun::TextContext::position const):
(WebCore::Layout::InlineRun::TextContext::length const):
(WebCore::Layout::InlineRun::TextContext::setLength):
(WebCore::Layout::InlineRun::textContext):
(WebCore::Layout::InlineRun::inlineItem const):
(WebCore::Layout::InlineRun::InlineRun):
(WebCore::Layout::InlineRun::TextContext::TextContext):
- layout/inlineformatting/Line.cpp: Added.
(WebCore::Layout::InlineFormattingContext::Line::Line):
(WebCore::Layout::InlineFormattingContext::Line::setConstraints):
(WebCore::Layout::isNonCollapsedText):
(WebCore::Layout::isTrimmableContent):
(WebCore::Layout::InlineFormattingContext::Line::appendContent):
(WebCore::Layout::InlineFormattingContext::Line::close):
- 9:31 AM Changeset in webkit [237287] by
-
- 5 edits4 adds in trunk/Source/WebCore
[LFC][IFC] Add generic inline line breaker
https://bugs.webkit.org/show_bug.cgi?id=190698
Reviewed by Antti Koivisto.
InlineLineBreaker takes the inline runs and applies the appropriate line breaking rules on them.
InlineRunProvider::Run objects ->
<foobar><image box><hello>< ><world>
InlineLineBreaker::Run ->
<foobar><image box><hello world>
InlineLineBreaker::Run also contains information whether the run is at the beginning or at the end of the line.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/LayoutContext.h:
(WebCore::Layout::LayoutContext::hasDisplayBox const):
- layout/inlineformatting/InlineLineBreaker.cpp: Added.
(WebCore::Layout::InlineLineBreaker::InlineLineBreaker):
(WebCore::Layout::InlineLineBreaker::nextLayoutRun):
(WebCore::Layout::InlineLineBreaker::isAtContentEnd const):
(WebCore::Layout::InlineLineBreaker::lineBreakingBehavior):
(WebCore::Layout::InlineLineBreaker::runWidth const):
(WebCore::Layout::InlineLineBreaker::splitRun):
(WebCore::Layout::InlineLineBreaker::adjustSplitPositionWithHyphenation const):
- layout/inlineformatting/InlineLineBreaker.h: Added.
- layout/inlineformatting/textlayout/TextUtil.cpp: Added.
(WebCore::Layout::TextUtil::TextUtil):
(WebCore::Layout::TextUtil::width const):
(WebCore::Layout::TextUtil::hyphenPositionBefore const):
(WebCore::Layout::TextUtil::textWidth const):
(WebCore::Layout::TextUtil::fixedPitchWidth const):
- layout/inlineformatting/textlayout/TextUtil.h: Added.
- layout/layouttree/LayoutBox.cpp:
- 8:52 AM Changeset in webkit [237286] by
-
- 8 edits2 copies3 adds in trunk/Source/WebCore
[LFC][IFC] Add generic inline run generator.
https://bugs.webkit.org/show_bug.cgi?id=190696
Reviewed by Antti Koivisto.
InlineRunProvider turns the following inline content ->
<span>foo<span>bar</span></span>
<img src="broken.jpg"><span>hello world</span>
into a set of runs ->
<foobar><image box><hello>< ><world>
Note that a text run can overlap multiple inline elements. InlineRunProvider::Run only stores a reference to
the first inline element (continuous content can be accessed by iterating through the InlineContent ListHashSet).
These runs are the input to the line breaking algoritm.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layout const):
- layout/inlineformatting/InlineFormattingState.h:
(WebCore::Layout::InlineFormattingState::inlineContent):
- layout/inlineformatting/InlineItem.h: Added.
(WebCore::Layout::InlineItem::layoutBox const):
(WebCore::Layout::InlineItem::style const):
(WebCore::Layout::InlineItemHashFunctions::hash):
(WebCore::Layout::InlineItemHashFunctions::equal):
(WebCore::Layout::InlineItemHashTranslator::hash):
(WebCore::Layout::InlineItemHashTranslator::equal):
(WebCore::Layout::InlineItem::InlineItem):
(WebCore::Layout::InlineItem::type const):
(WebCore::Layout::InlineItem::textContent const):
- layout/inlineformatting/InlineRunProvider.cpp: Added.
(WebCore::Layout::InlineRunProvider::InlineRunProvider):
(WebCore::Layout::InlineRunProvider::append):
(WebCore::Layout::InlineRunProvider::insertBefore):
(WebCore::Layout::InlineRunProvider::remove):
(WebCore::Layout::isWhitespace):
(WebCore::Layout::isSoftLineBreak):
(WebCore::Layout::InlineRunProvider::isContinousContent):
(WebCore::Layout::InlineRunProvider::processInlineTextItem):
(WebCore::Layout::InlineRunProvider::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineRunProvider::moveToNextBreakablePosition):
- layout/inlineformatting/InlineRunProvider.h: Added.
(WebCore::Layout::InlineRunProvider::Run::type const):
(WebCore::Layout::InlineRunProvider::Run::isText const):
(WebCore::Layout::InlineRunProvider::Run::isWhitespace const):
(WebCore::Layout::InlineRunProvider::Run::isNonWhitespace const):
(WebCore::Layout::InlineRunProvider::Run::isLineBreak const):
(WebCore::Layout::InlineRunProvider::Run::isBox const):
(WebCore::Layout::InlineRunProvider::Run::isFloat const):
(WebCore::Layout::InlineRunProvider::Run::TextContext::start const):
(WebCore::Layout::InlineRunProvider::Run::TextContext::length const):
(WebCore::Layout::InlineRunProvider::Run::TextContext::isCollapsed const):
(WebCore::Layout::InlineRunProvider::Run::TextContext::setStart):
(WebCore::Layout::InlineRunProvider::Run::TextContext::setLength):
(WebCore::Layout::InlineRunProvider::Run::textContext const):
(WebCore::Layout::InlineRunProvider::Run::style const):
(WebCore::Layout::InlineRunProvider::Run::inlineItem const):
(WebCore::Layout::InlineRunProvider::runs const):
(WebCore::Layout::InlineRunProvider::Run::createBoxRun):
(WebCore::Layout::InlineRunProvider::Run::createFloatRun):
(WebCore::Layout::InlineRunProvider::Run::createSoftLineBreakRun):
(WebCore::Layout::InlineRunProvider::Run::createHardLineBreakRun):
(WebCore::Layout::InlineRunProvider::Run::createWhitespaceRun):
(WebCore::Layout::InlineRunProvider::Run::createNonWhitespaceRun):
(WebCore::Layout::InlineRunProvider::Run::Run):
(WebCore::Layout::InlineRunProvider::Run::TextContext::TextContext):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isLineBreakBox const):
- layout/layouttree/LayoutInlineBox.cpp:
(WebCore::Layout::InlineBox::InlineBox):
- layout/layouttree/LayoutInlineBox.h:
(WebCore::Layout::InlineBox::hasTextContent const):
(WebCore::Layout::InlineBox::textContent const):
- layout/layouttree/LayoutLineBreakBox.cpp: Copied from Source/WebCore/layout/layouttree/LayoutInlineBox.cpp.
(WebCore::Layout::LineBreakBox::LineBreakBox):
- layout/layouttree/LayoutLineBreakBox.h: Copied from Source/WebCore/layout/layouttree/LayoutInlineBox.cpp.
- 6:55 AM Changeset in webkit [237285] by
-
- 21 edits3 adds in trunk
[BigInt] Add ValueSub into DFG
https://bugs.webkit.org/show_bug.cgi?id=186176
Reviewed by Yusuke Suzuki.
JSTests:
- stress/big-int-subtraction-jit.js:
- stress/value-sub-big-int-prediction-propagation.js: Added.
- stress/value-sub-big-int-untyped.js: Added.
- stress/value-sub-spec-none-case.js: Added.
Source/JavaScriptCore:
We are introducing in this patch a new node called ValueSub. This node
is necessary due to introduction of BigInt, making subtraction
operations result in non-Number values in some cases. In such case, ValueSub is
responsible to handle Untyped and BigInt operations.
In addition, we are also creating a speculative path when both
operands are BigInt. According to a simple BigInt subtraction microbenchmark,
this represents a speedup of ~1.2x faster.
big-int-simple-sub 14.6427+-0.5652 11.9559+-0.6485 definitely 1.2247x faster
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.h:
(JSC::DFG::Graph::addSpeculationMode):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueSub):
(JSC::DFG::SpeculativeJIT::compileArithSub):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGValidate.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileValueSub):
- 6:47 AM Changeset in webkit [237284] by
-
- 8 edits in trunk
[IntersectionObserver] Handle zero-area intersections
https://bugs.webkit.org/show_bug.cgi?id=189624
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Rebaseline expectations for tests that now pass.
- web-platform-tests/intersection-observer/edge-inclusive-intersection-expected.txt:
- web-platform-tests/intersection-observer/isIntersecting-change-events-expected.txt:
- web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt:
- web-platform-tests/intersection-observer/text-target-expected.txt:
- web-platform-tests/intersection-observer/zero-area-element-visible-expected.txt:
Source/WebCore:
Use edge-inclusive intersection when applying clips and intersecting with the
root, so that two rects that touch each other are considered intersecting even
if the area of their intersection is 0.
Covered by rebased tests in imported/w3c/web-platform-tests/intersection-observer.
- dom/Document.cpp:
(WebCore::computeIntersectionState):
(WebCore::Document::updateIntersectionObservations):
(WebCore::computeIntersectionRects): Deleted.
- 6:39 AM Changeset in webkit [237283] by
-
- 3 edits in trunk/Source/WebKit
[PSON] WebPageProxy::didCompletePageTransition() may interact with a SuspendedPageProxy from a previous navigation
https://bugs.webkit.org/show_bug.cgi?id=190717
Reviewed by Antti Koivisto.
WebPageProxy::didCompletePageTransition() may interact with a SuspendedPageProxy from a previous navigation. We need
to reset m_lastSuspendedPage whenever the page starts a new navigation as m_lastSuspendedPage is only updated when
we process-swap otherwise.
Also rename the data member to m_pageSuspendedDueToCurrentNavigation for clarity.
In a follow-up, I will see if I can get rid of this data member entirely or maybe move it to the Navigation
object.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::suspendCurrentPageIfPossible):
(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::didCompletePageTransition):
(WebKit::WebPageProxy::enterAcceleratedCompositingMode):
- 2:40 AM WebKitGTK/2.22.x edited by
- (diff)