Timeline
Oct 21, 2019:
- 11:05 PM Changeset in webkit [251419] by
-
- 2 edits in trunk/Source/WebKit
Add some PencilKit extension points
https://bugs.webkit.org/show_bug.cgi?id=202962
<rdar://problem/56269759>
Reviewed by Andy Estes.
This is the WebKit part corresponding to <rdar://problem/56261392>.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]): Call extension point.
(-[WKContentView cleanupInteraction]): Ditto.
- 10:44 PM Changeset in webkit [251418] by
-
- 3 edits1 delete in trunk
Rolling out r251411: Fix is incorrect.
https://bugs.webkit.org/show_bug.cgi?id=203230
Not reviewed.
JSTests:
- stress/incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js: Removed.
Source/JavaScriptCore:
- dfg/DFGOperations.cpp:
- 9:58 PM Changeset in webkit [251417] by
-
- 10 edits in trunk/LayoutTests
Multiple fast/scrolling/ios tests failing with unexpected scrollbars appearing in result
https://bugs.webkit.org/show_bug.cgi?id=203223
Reviewed by Wenson Hsieh.
Hide scrollbars in iOS iframe scrolling ref tests.
- fast/scrolling/ios/hit-testing-iframe-006.html:
- fast/scrolling/ios/mixing-user-and-programmatic-scroll-002.html:
- fast/scrolling/ios/mixing-user-and-programmatic-scroll-003.html:
- fast/scrolling/ios/mixing-user-and-programmatic-scroll-006.html:
- fast/scrolling/ios/scroll-iframe-001.html:
- fast/scrolling/ios/scroll-iframe-002.html:
- fast/scrolling/ios/scroll-iframe-003.html:
- fast/scrolling/ios/scroll-iframe-004.html:
- platform/ios-wk2/TestExpectations:
- 9:51 PM Changeset in webkit [251416] by
-
- 10 edits1 add in trunk
Suspend dedicated worker threads while in the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203186
<rdar://problem/56447493>
Reviewed by Ryosuke Niwa.
Source/WebCore:
When a page with a (dedicated) Worker enters the back/forward cache, we now
pause the worker thread, and resume it only when taking the page out of the
back/forward cache. This avoids having the worker use CPU while the page is
in the cache.
- workers/Worker.cpp:
(WebCore::Worker::suspend):
(WebCore::Worker::resume):
- workers/Worker.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::suspend):
(WebCore::WorkerMessagingProxy::resume):
(WebCore::WorkerMessagingProxy::workerThreadCreated):
- workers/WorkerMessagingProxy.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::suspend):
(WebCore::WorkerThread::resume):
(WebCore::WorkerThread::stop):
- workers/WorkerThread.h:
LayoutTests:
Extend layout test coverage.
- fast/workers/resources/worker-setInterval.js: Added.
(onmessage):
(setInterval):
- fast/workers/worker-page-cache.html:
- 9:45 PM Changeset in webkit [251415] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, rolling out r251381.
This broke an internal build.
Reverted changeset:
"Add some PencilKit extension points"
https://bugs.webkit.org/show_bug.cgi?id=202962
https://trac.webkit.org/changeset/251381
- 9:32 PM Changeset in webkit [251414] by
-
- 3 edits in trunk/Source/WebCore
Fix the build
- platform/mock/MockAudioDestinationCocoa.cpp:
- platform/mock/MockAudioDestinationCocoa.h:
- 9:05 PM Changeset in webkit [251413] by
-
- 45 edits in trunk
[Cocoa] Move ui-serif, ui-monospaced, and ui-rounded out from behind SPI
https://bugs.webkit.org/show_bug.cgi?id=203129
Reviewed by Tim Horton.
Source/WebCore:
https://github.com/w3c/csswg-drafts/issues/4107 resolved to name these new fonts
ui-serif, ui-monospaced, and ui-rounded. This patch renames them, and removes the SPI
to access these fonts.
Tests: fast/text/design-system-ui*.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::shouldAllowDesignSystemUIFonts const): Deleted.
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::initializeFontStyle):
- page/Settings.yaml:
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::makeFlagsKey):
- platform/graphics/FontDescription.cpp:
(WebCore::m_shouldAllowUserInstalledFonts):
(WebCore::m_shouldAllowDesignSystemUIFonts): Deleted.
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::shouldAllowUserInstalledFonts const):
(WebCore::FontDescription::setShouldAllowUserInstalledFonts):
(WebCore::FontDescription::operator== const):
(WebCore::FontDescription::shouldAllowDesignSystemUIFonts const): Deleted.
(WebCore::FontDescription::setShouldAllowDesignSystemUIFonts): Deleted.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamilySpecialCase):
- platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::matchSystemFontUse):
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
- platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::systemFontParameters):
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldAllowDesignSystemUIFonts]): Deleted.
(-[WKPreferences _setShouldAllowDesignSystemUIFonts:]): Deleted.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
LayoutTests:
Update the tests to use the new names, and to not set the setting.
- fast/text/design-system-ui-10-expected-mismatch.html:
- fast/text/design-system-ui-10.html:
- fast/text/design-system-ui-11.html:
- fast/text/design-system-ui-12.html:
- fast/text/design-system-ui-13.html:
- fast/text/design-system-ui-14.html:
- fast/text/design-system-ui-15.html:
- fast/text/design-system-ui-16.html:
- fast/text/design-system-ui-2-expected.html:
- fast/text/design-system-ui-2.html:
- fast/text/design-system-ui-3-expected-mismatch.html:
- fast/text/design-system-ui-3.html:
- fast/text/design-system-ui-4-expected-mismatch.html:
- fast/text/design-system-ui-4.html:
- fast/text/design-system-ui-5-expected-mismatch.html:
- fast/text/design-system-ui-5.html:
- fast/text/design-system-ui-6-expected.html:
- fast/text/design-system-ui-6.html:
- fast/text/design-system-ui-7-expected.html:
- fast/text/design-system-ui-7.html:
- fast/text/design-system-ui-8-expected-mismatch.html:
- fast/text/design-system-ui-8.html:
- fast/text/design-system-ui-9-expected-mismatch.html:
- fast/text/design-system-ui-9.html:
- fast/text/design-system-ui-expected.html:
- fast/text/design-system-ui.html:
- 8:56 PM Changeset in webkit [251412] by
-
- 4 edits in trunk/LayoutTests
[WK1] Layout Test legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184611
Reviewed by Zalan Bujtas.
In WebKit1, the transform on the layer is not consistent, so filter it out of the layer tree dump (it's not the important part).
- legacy-animation-engine/compositing/backing/transform-transition-from-outside-view-expected.txt:
- legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html:
- platform/mac-wk1/TestExpectations:
- 6:55 PM Changeset in webkit [251411] by
-
- 3 edits1 add in trunk
Fix incorrect assertion in operationRegExpExecNonGlobalOrSticky().
https://bugs.webkit.org/show_bug.cgi?id=203230
<rdar://problem/56460749>
Reviewed by Robin Morisset.
JSTests:
- stress/incorrect-exception-assertion-in-operationRegExpExecNonGlobalOrSticky.js: Added.
Source/JavaScriptCore:
operationRegExpExecNonGlobalOrSticky() was asserting no exception when
createRegExpMatchesArray() returns null. createRegExpMatchesArray() only returns
null when RegExp::matchInline() returns -1. The only way RegExp::matchInline()
can return -1 is via a throwError() helper which throws an exception. The other
return path in RegExp::matchInline() explicitly ASSERT(result >= -1). Hence, the
assertion in operationRegExpExecNonGlobalOrSticky() is wrong.
- dfg/DFGOperations.cpp:
- 6:48 PM Changeset in webkit [251410] by
-
- 4 edits in trunk/Tools
[results.webkit.org] Change dot and lengend dot use same mechanism to center text and image
https://bugs.webkit.org/show_bug.cgi?id=203216
Reviewed by Jonathan Bedard.
- resultsdbpy/resultsdbpy/view/static/library/css/docs.yaml:
- resultsdbpy/resultsdbpy/view/static/library/css/index.html:
- resultsdbpy/resultsdbpy/view/static/library/css/webkit.css:
(.dot *):
(.dot img, .dot .text):
(.dot>img, .dot>.text):
(.dot.small img, .dot.small .text):
(.dot.small>img, .dot.small>.text):
(.dot.medium img, .dot.medium .text):
(.dot.medium>img, .dot.medium>.text):
(.dot.large img, .dot.large .text):
(.dot.large>img, .dot.large>.text):
(.lengend>.item .dot):
(.lengend>.item .dot img, .lengend>.item .dot .text):
(.lengend>.item .dot>img, .lengend>.item .dot>.text):
(.dot.small *): Deleted.
(.dot img, .dot.small img): Deleted.
(.dot.medium *): Deleted.
(.dot.medium img): Deleted.
(.dot.large *): Deleted.
(.dot.large img): Deleted.
(.lengend>.item .dot .text): Deleted.
(.lengend>.item .dot img): Deleted.
- 6:34 PM Changeset in webkit [251409] by
-
- 24 edits in trunk
Move service worker registration matching for navigation loads to network process
https://bugs.webkit.org/show_bug.cgi?id=203144
Patch by youenn fablet <youenn@apple.com> on 2019-10-21
Reviewed by Chris Dumez.
Source/WebCore:
For regular loads, we no longer match service worker registration explicitly.
This is now done by NetworkResourceLoader explicitly.
We still need to explicitely match registrations in those two cases:
- There is an app cache resource that can be used. We will use it only if there is no registration.
- There is a resource from the meory cache that can be used. We will match the registration to make sure
the document is controlled by the right service worker. The load will still be served from the memory cache.
Since DocumentLoader is no longer matching registration, we need a way from NetworkProcess to inform that there is
a matching registration and that the document is controlled.
For that purpose, DocumentLoader is adding itself in a global map with the temporary document identifier as the key.
Adding to the map happens when loading the main resource and removal from the map happens when destroying the DocumentLoader.
For this to happen properly, the temporary document identifier is kept the same for the lifetime of the DocumentLoader.
Registration matching was postponed until service worker registration is done.
Since we no longer do registration matching in WebProcess, we need to wait in NetworkProcess for that to happen.
We introduce a way for SWServer to notify when import is completed for that purpose.
Covered by existing tests.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::fromTemporaryDocumentIdentifier):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::setControllingServiceWorkerRegistration):
(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::unregisterTemporaryServiceWorkerClient):
(WebCore::DocumentLoader::loadMainResource):
- loader/DocumentLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::canLoadMainResource):
- loader/appcache/ApplicationCacheHost.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::~SWServer):
(WebCore::SWServer::registrationStoreImportComplete):
(WebCore::SWServer::whenImportIsCompleted):
(WebCore::SWServer::doRegistrationMatching):
- workers/service/server/SWServer.h:
(WebCore::SWServer::isImportCompleted const):
Source/WebKit:
Create a WebSWServerConnection whenever receiving a load request in NetworkProcess.
This connection is used to check for service worker registration in case of navigation loads.
Similarly, we create a WebSWClientConnection whenever WebProcess needs it, including when receiving WebSWClientConnection messages from NetworkProcess.
This for instance happens when service worker registration import is complete to fill the shared registration origin store.
Delay loads until SWServer has finished importing its registrations.
This is needed since we might otherwise not intercept loads that could be intercepted.
Waiting for importing registrations was previously ensured by WebProcess getting a matching registration in DocumentLoader.
NetworkResourceLoader is now checking for service worker interception in case of redirections for navigations.
This is needed as redirections could end up using a new registration.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):
(WebKit::NetworkConnectionToWebProcess::swConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::startWithServiceWorker):
(WebKit::NetworkResourceLoader::serviceWorkerDidNotHandle):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):
(WebKit::ServiceWorkerFetchTask::start):
(WebKit::ServiceWorkerFetchTask::startFetch):
(WebKit::ServiceWorkerFetchTask::continueFetchTaskWith):
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
(WebKit::ServiceWorkerFetchTask::takeRequest):
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::WebSWClientConnection):
(WebKit::WebSWClientConnection::registrationReady):
(WebKit::WebSWClientConnection::documentIsControlled):
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWClientConnection.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
We are now creating a WebSWClientConnection whenever receiving a WebSWClientConnection message
from NetworkProcess. It is free to do so given it no longer requires sending some IPC.
Update the tests accordingly.
A future patch will remove the service worker registration bit feature and corresponding test.
- 6:33 PM Changeset in webkit [251408] by
-
- 3 edits1 add in trunk
ValuePow's constant folding rule differs from what the runtime does
https://bugs.webkit.org/show_bug.cgi?id=203220
<rdar://problem/56181441>
Reviewed by Yusuke Suzuki.
JSTests:
- value-pow-ai-rule-should-box-the-same-way-as-the-runtime.js: Added.
(foo):
Source/JavaScriptCore:
The constant folding rule for ValuePow was boxing the result using jsDoubleNumber,
where the runtime function was boxing the result using jsNumber. This patch makes
it so that constant folding agrees with what the runtime is doing.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- 6:31 PM Changeset in webkit [251407] by
-
- 2 edits in trunk/Tools
TestWebKitAPI.ScrollViewScrollabilityTests.ScrollableWithOverflowHiddenAndInputView is failing on iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=203053
Reviewed by Wenson Hsieh.
Make ScrollableWithOverflowHiddenAndInputView only test the results on iPhones. Test is not designed for ipad.
- TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm:
(TestWebKitAPI::TEST):
- 6:16 PM Changeset in webkit [251406] by
-
- 2 edits in trunk/PerformanceTests
[GTK] Perf test SVG/UnderTheSeeBenchmark.html timeouts.
https://bugs.webkit.org/show_bug.cgi?id=203229
Unreviewed gardening.
- Skipped: Mark 2 new tests timing out in the GTK perf bot.
- 6:12 PM Changeset in webkit [251405] by
-
- 6 edits in trunk/LayoutTests
Update Web Platform Test css/css-lists/content-property/marker-text-matches-armenian.html
https://bugs.webkit.org/show_bug.cgi?id=203130
<rdar://problem/51525184>
Reviewed by Alex Christensen.
Apply https://github.com/web-platform-tests/wpt/commit/b2d4cb4a64ae072dfc6feb888dd77575927f5ae2
LayoutTests/imported/w3c:
- web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian-expected.html:
- web-platform-tests/css/css-lists/content-property/marker-text-matches-armenian.html:
LayoutTests:
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 5:53 PM Changeset in webkit [251404] by
-
- 12 edits in trunk/Source
Remove IDBBackingStoreTemporaryFileHandler
https://bugs.webkit.org/show_bug.cgi?id=203128
Reviewed by Alex Christensen.
Source/WebCore:
IDBBackingStoreTemporaryFileHandler has only one member function, and implementation of that is to delete
files. To keep the same behavior, we can remove this class and delete the temporary files at the places where
objects of this class were used.
By doing this, we no longer need to pass the NetworkProcess/InProcessIDBServer all the way down to
SQLiteIDBBackingStore that is used only on background thread.
- Modules/indexeddb/server/IDBBackingStore.h:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::create):
(WebCore::IDBServer::IDBServer::IDBServer):
(WebCore::IDBServer::IDBServer::createBackingStore):
- Modules/indexeddb/server/IDBServer.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::SQLiteIDBBackingStore):
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
(WebCore::IDBServer::SQLiteIDBBackingStore::temporaryFileHandler const): Deleted.
- Modules/indexeddb/server/SQLiteIDBTransaction.cpp:
(WebCore::IDBServer::SQLiteIDBTransaction::moveBlobFilesIfNecessary):
(WebCore::IDBServer::SQLiteIDBTransaction::deleteBlobFilesIfNecessary):
(WebCore::IDBServer::SQLiteIDBTransaction::abort):
- Modules/indexeddb/shared/InProcessIDBServer.cpp:
(WebCore::InProcessIDBServer::InProcessIDBServer):
(WebCore::InProcessIDBServer::accessToTemporaryFileComplete): Deleted.
- Modules/indexeddb/shared/InProcessIDBServer.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createIDBServer):
(WebKit::NetworkProcess::accessToTemporaryFileComplete): Deleted.
- NetworkProcess/NetworkProcess.h:
- 5:51 PM Changeset in webkit [251403] by
-
- 3 edits1 add in trunk
Fix missing exception check in JSON Stringifier.
https://bugs.webkit.org/show_bug.cgi?id=203227
<rdar://problem/56459854>
Reviewed by Keith Miller.
JSTests:
- stress/missing-exception-check-in-josn-stringifier.js: Added.
Source/JavaScriptCore:
- runtime/JSONObject.cpp:
(JSC::Stringifier::Stringifier):
- 5:43 PM Changeset in webkit [251402] by
-
- 1 edit4 moves in trunk/LayoutTests
http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=202852
<rdar://problem/56195888>
Patch by Kate Cheney <Kate Cheney> on 2019-10-21
Reviewed by Alex Christensen.
Fixed test flakiness caused by the resource remaining in the cache
between tests, therefore not creating a new isolated session and
failing the text diff. This patch adds a php header to each file to
prevent the resource from being stored in the cache.
- http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction-database.html.
- http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/do-not-switch-session-on-navigation-to-prevalent-without-interaction.html.
- http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction-database.html.
- http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.php: Renamed from LayoutTests/http/tests/resourceLoadStatistics/switch-session-on-navigation-to-prevalent-with-interaction.html.
- 5:22 PM Changeset in webkit [251401] by
-
- 3 edits in trunk/Tools
results.webkit.org: Add ability to display time on bubbles
https://bugs.webkit.org/show_bug.cgi?id=203202
<rdar://problem/56436621>
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/view/static/js/timeline.js: Add switch to show times under each bubble.
- resultsdbpy/resultsdbpy/view/templates/search.html: Correctly update timeline on callback.
- 5:17 PM Changeset in webkit [251400] by
-
- 9 edits1 copy in trunk/Source/JavaScriptCore
Rolling out r251226: Causes a build speed regression.
https://bugs.webkit.org/show_bug.cgi?id=203219
Not reviewed.
Apparently, compilers aren't very fast at compiling constexpr function invocations.
Rolling this out while I rework the patch to not have this build speed regression.
- API/glib/JSCOptions.cpp:
(jscOptionsSetValue):
(jscOptionsGetValue):
(jsc_options_foreach):
(jsc_options_get_option_group):
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- runtime/JSCConfig.h:
- runtime/OptionEntry.h: Copied from Source/JavaScriptCore/runtime/OptionEntry.h.
- runtime/Options.cpp:
(JSC::Options::isAvailable):
(JSC::overrideOptionWithHeuristic):
(JSC::scaleJITPolicy):
(JSC::recomputeDependentOptions):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpAllOptions):
(JSC::Options::dumpOption):
(JSC::Option::dump const):
(JSC::Option::operator== const):
(JSC::optionTypeSpecificIndex): Deleted.
(JSC::Option::Option): Deleted.
(JSC::Option::defaultOption const): Deleted.
- runtime/Options.h:
(JSC::Option::Option):
(JSC::Option::id const):
(JSC::Option::name const):
(JSC::Option::description const):
(JSC::Option::type const):
(JSC::Option::availability const):
(JSC::Option::isOverridden const):
(JSC::Option::defaultOption const):
(JSC::Option::boolVal):
(JSC::Option::unsignedVal):
(JSC::Option::doubleVal):
(JSC::Option::int32Val):
(JSC::Option::optionRangeVal):
(JSC::Option::optionStringVal):
(JSC::Option::gcLogLevelVal):
(JSC::Option::idIndex const): Deleted.
(JSC::optionTypeSpecificIndex): Deleted.
- runtime/OptionsList.h:
(JSC::OptionRange::operator= ): Deleted.
(JSC::OptionRange::rangeString const): Deleted.
(JSC::countNumberOfJSCOptionsOfType): Deleted.
- 5:04 PM Changeset in webkit [251399] by
-
- 5 edits in trunk/Source/JavaScriptCore
Fix issues when setting public length on ArrayWithContiguous type butterflies.
https://bugs.webkit.org/show_bug.cgi?id=203211
<rdar://problem/56476097>
Reviewed by Keith Miller and Saam Barati.
For ArrayWithContiguous type butterflies, SlotVisitor scans up to the public
length of the butterfly. When setting a new public length, if the new public
length is greater than the current, we should always writeBarrier after the
setting of the new public length. Otherwise, there can be a race where the GC
scans the butterfly after new values have been written to it but before the
public length as been updated. As a result, the new values never get scanned.
For the DFG and FTL, the StoreBarrierInsertionPhase is responsible for inserting
the writeBarriers after the node. Hence, the writeBarrier is guaranteed to be
after the publicLength has been updated.
- runtime/JSArray.cpp:
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
- runtime/JSArrayInlines.h:
(JSC::JSArray::pushInline):
- runtime/JSObject.cpp:
(JSC::JSObject::putByIndex):
(JSC::JSObject::reallocateAndShrinkButterfly):
- runtime/JSObject.h:
(JSC::JSObject::setIndexQuickly):
- 4:56 PM Changeset in webkit [251398] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] Layout Test legacy-animation-engine/compositing/backing/transform-transition-from-outside-view.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203225
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 4:51 PM Changeset in webkit [251397] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (~r251067): http/tests/workers/service/registration-clear-redundant-worker.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=203218
Unreviewed Test Gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 4:47 PM Changeset in webkit [251396] by
-
- 12 edits2 adds in trunk
Add MediaCapabilities support for DolbyVision codecs.
https://bugs.webkit.org/show_bug.cgi?id=203170
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/dovi-codec-parameters.html
Add support for parsing DolbyVision (DoVi) style codec profile strings.
- platform/cocoa/VideoToolboxSoftLink.cpp:
- platform/cocoa/VideoToolboxSoftLink.h:
- platform/graphics/HEVCUtilities.cpp:
(WebCore::codecStringForDoViCodecType):
(WebCore::profileIDForAlphabeticDoViProfile):
(WebCore::isValidDoViProfileID):
(WebCore::maximumLevelIDForDoViProfileID):
(WebCore::isValidProfileIDForCodecName):
(WebCore::parseDoViCodecParameters):
- platform/graphics/HEVCUtilities.h:
- platform/graphics/cocoa/HEVCUtilitiesCocoa.h:
- platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::codecStringToCodecTypeMap):
(WebCore::CFStringArrayToNumberVector):
(WebCore::validateDoViParameters):
- platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp:
(WebCore::createMediaPlayerDecodingConfigurationCocoa):
- testing/Internals.cpp:
(WebCore::Internals::parseDoViCodecParameters):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/dovi-codec-parameters-expected.txt: Added.
- media/dovi-codec-parameters.html: Added.
- 4:30 PM Changeset in webkit [251395] by
-
- 16 edits in trunk/Source/JavaScriptCore
Web Inspector: make ObjC protocol dispatcher commands optional and add
respondsToSelectorchecks to allow other inspector clients to choose what they implement
https://bugs.webkit.org/show_bug.cgi?id=203197
Reviewed by Joseph Pecoraro.
This will help eliminate internal build failures, and will also allow other clients to
remove all of their commands that previously just responded with an "unsupported" error.
- inspector/scripts/codegen/objc_generator_templates.py:
- inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:
(ObjCBackendDispatcherImplementationGenerator._generate_handler_implementation_for_command):
(ObjCBackendDispatcherImplementationGenerator._generate_responds_to_selector_for_command): Added.
Add arespondsToSelectorcheck before attempting to call the delegate function.
- inspector/scripts/codegen/generate_objc_header.py:
(ObjCHeaderGenerator._generate_command_protocols):
Mark all commands as@optional.
- inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
- inspector/scripts/tests/generic/expected/command-targetType-matching-domain-debuggableType.json-result:
- inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
- inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
- inspector/scripts/tests/generic/expected/domain-debuggableTypes.json-result:
- inspector/scripts/tests/generic/expected/domain-targetType-matching-domain-debuggableType.json-result:
- inspector/scripts/tests/generic/expected/domain-targetTypes.json-result:
- inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
- inspector/scripts/tests/generic/expected/enum-values.json-result:
- inspector/scripts/tests/generic/expected/event-targetType-matching-domain-debuggableType.json-result:
- inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
- inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:
- 4:23 PM Changeset in webkit [251394] by
-
- 3 edits1 add in trunk
JSON.parse has bad is array assert
https://bugs.webkit.org/show_bug.cgi?id=203207
<rdar://problem/56366913>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/json-parse-array-prototype-is-array-assert.js: Added.
(assert):
Source/JavaScriptCore:
In r250860, we updated JSON.parse to be more spec compliant with how it
handles arrays. However, we also updated an assertion in an improper way,
where our assert was not accounting for the check we performed to take
that control flow path.
- runtime/JSONObject.cpp:
(JSC::Walker::walk):
- 4:17 PM Changeset in webkit [251393] by
-
- 1 copy in tags/Safari-608.4.2
Tag Safari-608.4.2.
- 3:47 PM Changeset in webkit [251392] by
-
- 6 edits in trunk
Throw the right exception upon memory exhaustion in Array::slice
https://bugs.webkit.org/show_bug.cgi?id=202650
Reviewed by Saam Barati.
JSTests:
- stress/array-slice-memory-exhaustion.js: Added.
(foo):
Source/JavaScriptCore:
Trivial change: just use tryCreate instead of create, and throw an exception if it fails.
No security implication: we were just crashing instead of throwing a catchable exception.
- runtime/ArrayBuffer.cpp:
(JSC::ArrayBuffer::slice const):
(JSC::ArrayBuffer::sliceImpl const):
- runtime/ArrayBuffer.h:
- runtime/JSArrayBufferPrototype.cpp:
(JSC::arrayBufferProtoFuncSlice):
- 3:33 PM Changeset in webkit [251391] by
-
- 10 edits in trunk
Resource Load Statistics: Update cookie blocking in NetworkStorageSession after first user interaction
https://bugs.webkit.org/show_bug.cgi?id=203195
<rdar://problem/56464567>
Reviewed by Alex Christensen and Chris Dumez.
Source/WebKit:
This change makes sure that the state of cookie blocking in
WebCore:: NetworkStorageSession is immediately updated if the logged
user interaction was new for this domain. It adds a completion
handler to WebResourceLoadStatisticsStore::logUserInteraction() so
that the call properly waits for everything to be updated.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::CompletionHandler<void):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::logUserInteraction):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.h:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
LayoutTests:
This patch removes the explicit calls to testRunner.statisticsUpdateCookieBlocking() since
they are no longer needed. This makes sure the changed code is tested.
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction-database.html:
- http/tests/resourceLoadStatistics/third-party-cookie-blocking-on-sites-without-user-interaction.html:
- 3:31 PM Changeset in webkit [251390] by
-
- 17 edits in trunk
Dispatch AR event on the originating anchor element
https://bugs.webkit.org/show_bug.cgi?id=203198
<rdar://55743929>
Reviewed by Simon Fraser.
Source/WebCore:
Expose an ElementContext on the SystemPreviewInfo, so that
when something happens in the AR QuickLook an event can be
fired on the originating <a> element.
- dom/Document.cpp:
(WebCore::Document::dispatchSystemPreviewActionEvent): Make sure
we dispatch only to the HTMLAnchorElement.
- dom/Document.h:
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
- loader/FrameLoaderTypes.h:
(WebCore::SystemPreviewInfo::encode const):
(WebCore::SystemPreviewInfo::decode):
- testing/Internals.cpp:
(WebCore::Internals::elementIdentifier const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Use the ElementContext on SystemPreviewInfo.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _triggerSystemPreviewActionOnElement:frame:page:]):
(-[WKWebView _triggerSystemPreviewActionOnFrame:page:]): Deleted.
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
- UIProcess/SystemPreviewController.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::systemPreviewActionTriggered):
Tools:
Improve this test, most importantly so that it
actually works :)
Retrieve the ElementIdentifier for the <a> element,
and trigger a system preview action on it.
- TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
(-[TestSystemPreviewTriggeredHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/system-preview-trigger.html:
- 3:13 PM Changeset in webkit [251389] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, re-enable a couple of passing layout tests
- platform/ios/TestExpectations:
- platform/ipad/TestExpectations:
- 3:12 PM Changeset in webkit [251388] by
-
- 21 edits1 move1 delete in trunk/Source
Move ElementContext from WebKit to WebCore
https://bugs.webkit.org/show_bug.cgi?id=203210
<rdar://problem/56475682>
Reviewed by Simon Fraser.
Source/WebCore:
- WebCore.xcodeproj/project.pbxproj:
- dom/RadioButtonGroups.h:
Source/WebKit:
- Scripts/webkit/messages.py:
- Shared/DocumentEditingContext.h:
- Shared/DocumentEditingContext.mm:
(IPC::ArgumentCoder<WebKit::DocumentEditingContextRequest>::decode):
- Shared/ElementContext.cpp: Removed.
- Shared/ElementContext.h: Removed.
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCSSOMViewScrollingAPIEnabled):
- Shared/WebsitePoliciesData.cpp:
(WebKit::WebsitePoliciesData::decode):
- Shared/ios/InteractionInformationAtPosition.h:
- Sources.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):
- UIProcess/API/Cocoa/_WKTextInputContext.mm:
(-[_WKTextInputContext _initWithTextInputContext:]):
(-[_WKTextInputContext _textInputContext]):
- UIProcess/API/Cocoa/_WKTextInputContextInternal.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::textInputContextsInRect):
(WebKit::WebPageProxy::focusTextInputContext):
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::textInputContextsInRect):
(WebKit::WebPage::focusTextInputContext):
(WebKit::WebPage::elementForContext const):
(WebKit::WebPage::contextForElement const):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::startInteractionWithElementContextOrPosition):
- 3:07 PM Changeset in webkit [251387] by
-
- 2 edits in trunk/LayoutTests
editing/selection/ios/selection-handles-in-readonly-input.html times out
https://bugs.webkit.org/show_bug.cgi?id=203203
<rdar://problem/47710799>
Reviewed by Tim Horton.
This test began to fail in iOS 13, since we (intentionally) no longer show a keyboard when focusing
readonly
inputs. The test is intended to verify that moving selection handles inside a readonly input field will not
cause the selection to disappear, but it currently waits forever for the keyboard to appear after initially
tapping a readonly input field.
We can fix this test by instead using a tap-and-half gesture to select the text ('aa').
- editing/selection/ios/selection-handles-in-readonly-input.html:
- 3:05 PM Changeset in webkit [251386] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r251227): Uncaught Exception: undefined is not an object (evaluating 'agent.enable')
https://bugs.webkit.org/show_bug.cgi?id=203208
Reviewed by Joseph Pecoraro.
- UserInterface/Controllers/AppController.js:
(WI.AppController.prototype.activateExtraDomains):
- 2:36 PM Changeset in webkit [251385] by
-
- 5 edits2 adds in trunk
Setting border-radius on <video> element clips top and left sections of video
https://bugs.webkit.org/show_bug.cgi?id=202049
<rdar://problem/55570024>
Reviewed by Dean Jackson.
Source/WebCore:
updateClippingStrategy() is called both when we're setting a mask layer on m_layer,
and on m_contentsClippingLayer, and they disagreed on the coordinate space that
the rounded rect was in. r246845 fixed rounded-rect scrollers, but broke video.
Fix by declaring that the rounded rect is relative to the bounds of the layer
argument. We don't try to size the shape layer to the rounded rect, because in some
configurations (e.g. scroller with left scrollbar) the rounded rect hangs outside
the clipping layer.
Test: compositing/video/video-border-radius-clipping.html
- platform/graphics/FloatRoundedRect.h:
(WebCore::FloatRoundedRect::setLocation):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::updateClippingStrategy):
(WebCore::GraphicsLayerCA::updateContentsRects): The rounded rect is relative to the contentsClippingLayer,
so set its location to zero.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateChildClippingStrategy): negate the offset, as we do in updateGeometry which
has similar code.
LayoutTests:
- compositing/video/video-border-radius-clipping-expected.html: Added.
- compositing/video/video-border-radius-clipping.html: Added.
- 2:28 PM Changeset in webkit [251384] by
-
- 18 edits1 add in trunk
ServiceWorker tests should use TCPServer instead of WKURLSchemeHandler
https://bugs.webkit.org/show_bug.cgi?id=203141
Reviewed by Youenn Fablet.
Source/WebCore:
This makes the tests more like what users will see,
and it allows us to not consult custom schemes when loading service workers,
which is preventing us from moving logic to the NetworkProcess. See bug 203055.
Also, I now remove test-only code that's not used anymore.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::SWServer):
(WebCore::SWServer::canHandleScheme const):
- workers/service/server/SWServer.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::addServiceWorkerSession):
- NetworkProcess/NetworkProcess.h:
- Shared/WebsiteDataStoreParameters.cpp:
(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
- Shared/WebsiteDataStoreParameters.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration registerURLSchemeServiceWorkersCanHandleForTesting:]): Deleted.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::serviceWorkerRegisteredSchemes const): Deleted.
(WebKit::WebsiteDataStoreConfiguration::registerServiceWorkerScheme): Deleted.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
(-[SWMessageHandlerForRestoreFromDiskTest userContentController:didReceiveScriptMessage:]):
(-[SWSchemes handledRequests]): Deleted.
(-[SWSchemes webView:startURLSchemeTask:]): Deleted.
(-[SWSchemes webView:stopURLSchemeTask:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerTCPServer.h: Added.
(ServiceWorkerTCPServer::ServiceWorkerTCPServer):
(ServiceWorkerTCPServer::request):
(ServiceWorkerTCPServer::requestWithLocalhost):
(ServiceWorkerTCPServer::requestWithFragment):
(ServiceWorkerTCPServer::userAgentsChecked):
(ServiceWorkerTCPServer::requestWithFormat):
- TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
(-[StorageSchemes webView:startURLSchemeTask:]): Deleted.
(-[StorageSchemes webView:stopURLSchemeTask:]): Deleted.
- 2:17 PM Changeset in webkit [251383] by
-
- 10 edits in trunk/Tools
Python 3: Add support in webkitpy.common.config
https://bugs.webkit.org/show_bug.cgi?id=202463
Reviewed by Dewei Zhu.
- Scripts/test-webkitpy-python3: Add webkitpy.common.config to the test list.
- Scripts/webkitpy/common/config/committers.py:
(Contributor.init): Convert lists to maps.
(Contributor.str): str will always return the native string type.
(Contributor.unicode): Use .format() string.
(CommitterList._exclusive_contributors): Convert filter to list.
(CommitterList._exclusive_committers): Ditto.
(CommitterList.contributors_by_search_string): Ditto.
- Scripts/webkitpy/common/config/committervalidator_unittest.py: Use full import paths.
- Scripts/webkitpy/common/config/contributionareas_unittest.py: Use full import paths.
- Scripts/webkitpy/common/config/ports.py:
(DeprecatedPort.makeArgs): Use 'in' instead of has_key.
- Scripts/webkitpy/common/config/urls_unittest.py:
- Scripts/webkitpy/common/unicode_compatibility.py:
(encode_for): Encode string for type.
- Scripts/webkitpy/thirdparty/BeautifulSoup.py: Make html5lib import auto-install compatible.
- Scripts/webkitpy/thirdparty/init.py:
(AutoinstallImportHook.find_module): Add html5lib.
(AutoinstallImportHook._install_html5lib): Make html5lib a stand-alone installed package.
(AutoinstallImportHook._install_mechanize): Install html5lib.
(AutoinstallImportHook._install_beautifulsoup): Ditto.
- 2:16 PM Changeset in webkit [251382] by
-
- 4 edits in trunk/Source
macCatalyst: Swipe navigation gestures do not work
https://bugs.webkit.org/show_bug.cgi?id=203205
<rdar://problem/54617473>
Reviewed by Wenson Hsieh.
Source/WebKit:
- UIProcess/ios/ViewGestureControllerIOS.mm:
(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):
Use a different gesture recognizer for swipe in macCatalyst that behaves
more like the macOS implementation, based on scrolling instead of the
gesture coming from a screen edge.
Source/WTF:
- wtf/Platform.h:
Add a new HAVE.
- 2:07 PM Changeset in webkit [251381] by
-
- 2 edits in trunk/Source/WebKit
Add some PencilKit extension points
https://bugs.webkit.org/show_bug.cgi?id=202962
<rdar://problem/56269759>
Reviewed by Andy Estes.
This is the WebKit part corresponding to <rdar://problem/56261392>.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]): Call extension point.
(-[WKContentView cleanupInteraction]): Ditto.
- 1:47 PM Changeset in webkit [251380] by
-
- 4 edits1 delete in trunk/LayoutTests
Update expected result for fast/repaint/placeholder-after-caps-lock-hidden.html
https://bugs.webkit.org/show_bug.cgi?id=203005
<rdar://problem/51826131>
Reviewed by Simon Fraser.
Rebase iOS result. The test fast/repaint/placeholder-after-caps-lock-hidden.html is only supported
in Modern WebKit and only on Mac and iOS, which implement uiController.toggleCapsLock(), at the time
of writing.
- platform/ios-wk2/TestExpectations: Mark test as PASS.
- platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
- platform/ios/TestExpectations: Remove entry so that we fallback to platform-independent TestExpectations
and skip the test because the test is only supported on Modern WebKit.
- platform/ios/fast/events/ios/placeholder-after-caps-lock-hidden-expected.txt: Removed; erroneously added
file for non-existent test.
- 1:43 PM Changeset in webkit [251379] by
-
- 10 edits in trunk/Source
Web Inspector: Provide a flag for technology preview builds
https://bugs.webkit.org/show_bug.cgi?id=203164
<rdar://problem/56202164>
Reviewed by Devin Rousso.
Source/WebCore:
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::isExperimentalBuild):
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.idl:
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Test/Test.js:
- UserInterface/Base/Main.js:
- UserInterface/Base/Setting.js:
(WI.isTechnologyPreviewBuild):
(WI.arePreviewFeaturesEnabled):
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
In non-TechnologyPreview builds, if there are Preview Features provide a
setting switch that can be used to match the TechnologyPreview features.
- 1:25 PM Changeset in webkit [251378] by
-
- 7 edits7 adds in trunk
[SVG2]: Add 'auto' behavior to the 'width' and 'height' properties of the SVG <image> element
https://bugs.webkit.org/show_bug.cgi?id=202013
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-10-21
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto-dynamic-image-change-expected.txt:
- web-platform-tests/svg/geometry/svg-image-intrinsic-size-with-cssstyle-auto-expected.txt:
Source/WebCore:
The spec page is: https://www.w3.org/TR/SVG/geometry.html#Sizing
Handle the case if the 'width' or the 'height' of an SVG <image> or both
are missing.
Tests: svg/custom/image-width-height-auto-dynamic.svg
svg/custom/image-width-height-auto-initial.svg
svg/custom/image-width-height-length-initial.svg
- rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::calculateObjectBoundingBox const):
(WebCore::RenderSVGImage::updateImageViewport):
- rendering/svg/RenderSVGImage.h:
LayoutTests:
- svg/custom/image-width-height-auto-dynamic-expected.svg: Added.
- svg/custom/image-width-height-auto-dynamic.svg: Added.
- svg/custom/image-width-height-auto-initial-expected.svg: Added.
- svg/custom/image-width-height-auto-initial.svg: Added.
- svg/custom/image-width-height-length-initial-expected.svg: Added.
- svg/custom/image-width-height-length-initial.svg: Added.
- svg/custom/resources/100x200-green.png: Added.
- 1:19 PM Changeset in webkit [251377] by
-
- 23 edits8 adds in trunk
[Clipboard API] Implement ClipboardItem.getType() for platform clipboard items
https://bugs.webkit.org/show_bug.cgi?id=203168
Reviewed by Tim Horton.
Source/WebCore:
This patch completes support for ClipboardItem.getType().
Tests: editing/async-clipboard/clipboard-change-data-while-getting-type.html
editing/async-clipboard/clipboard-get-type-with-old-items.html
editing/async-clipboard/clipboard-item-get-type-basic.html
ClipboardTests.ReadMultipleItems
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::getType):
Implement getType(). If the given clipboard item is being tracked as one of the active clipboard items, then
allow it to read data from the platform pasteboard. We use existing pasteboard reading methods and classes
(PasteboardPlainText and WebContentMarkupReader) to ask the platform pasteboard for text and markup data,
respectively, and go through readURL() for "text/uri-list".
Before exposing any data to the page, we additionally check that the change count of the pasteboard is still
what we started with when setting up the current session. If this is not the case, we reject the promise and
immediately clear out the session.
(WebCore::Clipboard::activePasteboard):
- Modules/async-clipboard/Clipboard.h:
- dom/DataTransfer.h:
Drive-by tweak: make the WebContentReadingPolicy enum class narrower.
- platform/Pasteboard.h:
Add an enum flag for allowing or ignoring the platform URL type when reading plain text from the platform
pasteboard. We use this in Clipboard::getType() to ignore URLs on the platform pasteboard when plain text, since
the plain text reader would otherwise prefer URLs over plain text by default, and read the URL type instead of
the plain text type.
- platform/StaticPasteboard.h:
- platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::read):
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::read):
- platform/libwpe/PasteboardLibWPE.cpp:
(WebCore::Pasteboard::read):
- platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::read):
- platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::read):
Tools:
Add support for the new layout tests, as well as a new API test.
- DumpRenderTree/ios/UIScriptControllerIOS.h:
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::copyText):
Implement UIScriptController.copyText in WebKit1. This is used in one of the new layout tests, which passes in
WebKit1 on macOS and iOS.
- DumpRenderTree/mac/DumpRenderTreePasteboard.mm:
(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):
Adjust logic when declaring types on the platform pasteboard, such that it behaves more like the platform; when
declaring types, even if the owner doesn't change, the change count should still get bumped up by 1.
- DumpRenderTree/mac/UIScriptControllerMac.h:
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::copyText):
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm: Added.
(-[TestWKWebView readClipboard]):
(createWebViewForClipboardTests):
(writeMultipleObjectsToPlatformPasteboard):
Add a new API test to verify that clipboard items contain the right data when writing multiple items (each with
different sets of types) to the platform pasteboard using native APIs.
- TestWebKitAPI/Tests/WebKitCocoa/clipboard.html: Added.
- WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm:
(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):
LayoutTests:
Add 3 new layout tests.
- editing/async-clipboard/clipboard-change-data-while-getting-type-expected.txt: Added.
- editing/async-clipboard/clipboard-change-data-while-getting-type.html: Added.
Add a layout test to verify that if the pasteboard changes right after the page has obtained clipboard items,
the page should not be able to fetch the new contents of the pasteboard using these clipboard items.
- editing/async-clipboard/clipboard-get-type-with-old-items.html: Added.
- editing/async-clipboard/clipboard-get-type-with-old-items-expected.txt: Added.
Add a layout test to verify that after attempting to get data from invalid (stale) items, the page is still
capable of reading data from valid clipboard items.
- editing/async-clipboard/clipboard-item-get-type-basic-expected.txt: Added.
- editing/async-clipboard/clipboard-item-get-type-basic.html: Added.
Add a layout test to verify that after writing multiple types to the clipboard using the DataTransfer API, we
should be able to read them back using the async clipboard API, as a single ClipboardItem, and also get data out
of the clipboard item using ClipboardItem.getType.
- editing/async-clipboard/resources/async-clipboard-helpers.js:
- platform/win/TestExpectations:
- resources/ui-helper.js:
(window.UIHelper.async.copyText):
(window.UIHelper):
- 1:09 PM Changeset in webkit [251376] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: replace all uses of
window.*Agentwith a target-specific call
https://bugs.webkit.org/show_bug.cgi?id=201149
Reviewed by Matt Baker.
Most of these were changed in r251227, but a few appear to have slipped through the cracks.
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype.debuggerDidResume):
- UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
(WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):
- 1:00 PM Changeset in webkit [251375] by
-
- 4 edits in trunk/LayoutTests
scrollingcoordinator/ios/ui-scrolling-tree.html is a Flaky Failure on iPad
https://bugs.webkit.org/show_bug.cgi?id=203119
rdar://problem/52970947
Reviewed by Wenson Hsieh.
iPad viewport heuristics (WebPage::immediatelyShrinkToFitContent()) run on a zero-delay
timer after page load, which races with this test getting the UI-side scrolling tree
and makes the test flakey.
Fix by turning off the heuristics with "contentMode=mobile". Also fix the test
to use UIHelper to get the scrolling tree.
- platform/ipad/TestExpectations:
- platform/ipad/scrollingcoordinator/ios/ui-scrolling-tree-expected.txt:
- scrollingcoordinator/ios/ui-scrolling-tree.html:
- 12:34 PM Changeset in webkit [251374] by
-
- 8 edits in trunk/Tools
Python 3: Add support in webkitpy.common.net
https://bugs.webkit.org/show_bug.cgi?id=202464
Reviewed by Dewei Zhu.
- Scripts/test-webkitpy-python3: Add webkitpy.common.net.
- Scripts/webkitpy/common/net/credentials_unittest.py: Replace raw_input with input for Python3.
- Scripts/webkitpy/common/net/ewsserver.py:
- Scripts/webkitpy/common/net/resultsjsonparser.py:
(ParsedJSONResults.init): Sort results by test name.
- Scripts/webkitpy/common/net/resultsjsonparser_unittest.py:
(test_basic): Sort results by test name.
- Scripts/webkitpy/common/net/statusserver.py:
(StatusServer._fetch_url):
- Scripts/webkitpy/common/net/unittestresults_unittest.py:
- 12:25 PM Changeset in webkit [251373] by
-
- 3 edits in trunk/Source/JavaScriptCore
[WinCairo][PlayStation] Add automation support for RemoteInspector SocketServer implementation.
https://bugs.webkit.org/show_bug.cgi?id=199070
Reviewed by Ross Kirsling.
Added handler for StartAutomationSession event from WebDriver and preparing for automation session.
- inspector/remote/RemoteInspector.h:
- inspector/remote/socket/RemoteInspectorSocket.cpp:
(Inspector::RemoteInspector::listingForAutomationTarget const):
(Inspector::RemoteInspector::sendAutomaticInspectionCandidateMessage):
(Inspector::RemoteInspector::requestAutomationSession):
(Inspector::RemoteInspector::dispatchMap):
(Inspector::RemoteInspector::startAutomationSession):
- 12:15 PM Changeset in webkit [251372] by
-
- 5 edits in trunk/Source
Remove all uses of untagCodePtr in debugging code.
https://bugs.webkit.org/show_bug.cgi?id=203188
<rdar://problem/56453043>
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
- runtime/JSCPtrTag.cpp:
(JSC::tagForPtr):
Source/WTF:
We want the ability to always assert on failure to authenticate in untagCodePtr
(though we don't currently do that yet).
- wtf/PtrTag.cpp:
(WTF::tagForPtr):
- wtf/PtrTag.h:
(WTF::retagCodePtrImpl):
(WTF::tagCFunctionPtrImpl):
(WTF::untagCFunctionPtrImpl):
(WTF::assertIsCFunctionPtr):
(WTF::isTaggedWith):
- 12:06 PM Changeset in webkit [251371] by
-
- 3 edits1 add in trunk
Post increment/decrement should only call ToNumber once
https://bugs.webkit.org/show_bug.cgi?id=202711
Reviewed by Saam Barati.
JSTests:
- stress/postinc-custom-valueOf.js: Added.
(postInc):
(postDec):
Source/JavaScriptCore:
The problem is that we first called ToNumber on the object being incremented (to have the result that we'll eventually return), but we then do emitIncOrDec on the original object, which can call ToNumber again.
Instead we must do the ToNumber once, then copy its result, emitIncOrDec on the copy, put the copy back in the original location, and finally return the old value.
Since the result of ToNumber is guaranteed not to be an object, emitIncOrDec won't call ToNumber a second time.
- bytecompiler/NodesCodegen.cpp:
(JSC::emitPostIncOrDec):
- 11:59 AM Changeset in webkit [251370] by
-
- 3 edits in trunk/Source/WebKit
Add more release logging for "Unexpectedly resumed" assertion
https://bugs.webkit.org/show_bug.cgi?id=203196
Reviewed by Geoffrey Garen.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::processDidResume):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::processTaskStateDidChange):
- 11:59 AM Changeset in webkit [251369] by
-
- 11 edits2 adds in trunk
[iOS WK2] Support hiding iframe scrollbars via ::-webkit-scrollbar style
https://bugs.webkit.org/show_bug.cgi?id=203178
Reviewed by Dean Jackson.
Source/WebCore:
::-webkit-scrollbar {
display: none;
}
is supported for overflow:scroll, but not for iframes. To make the latter work,
two fixes were necessary.
First, FrameView had to implement horizontalScrollbarHiddenByStyle()/verticalScrollbarHiddenByStyle().
This is a little tricky on iOS because we never create RenderScrollbars, so we have to consult
pseudo-styles directly; a bit of refactoring makes that cleaner.
Second, ScrollableAreaParameters was failing to check horizontalScrollbarHiddenByStyle/verticalScrollbarHiddenByStyle
in operator==, meaning that these data often didn't make it to the UI process.
Test: fast/scrolling/ios/scrollbar-hiding-iframes.html
- page/FrameView.cpp:
(WebCore::FrameView::rootElementForCustomScrollbarPartStyle const):
(WebCore::FrameView::createScrollbar):
(WebCore::FrameView::styleHidesScrollbarWithOrientation const):
(WebCore::FrameView::horizontalScrollbarHiddenByStyle const):
(WebCore::FrameView::verticalScrollbarHiddenByStyle const):
(WebCore::FrameView::updateScrollCorner):
- page/FrameView.h:
- page/scrolling/ScrollingCoordinatorTypes.h:
(WebCore::ScrollableAreaParameters::operator== const):
- platform/Scrollbar.h:
(WebCore::Scrollbar::isHiddenByStyle const):
- rendering/RenderLayer.cpp:
(WebCore::scrollbarHiddenByStyle):
- rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::getScrollbarPseudoStyle const):
(WebCore::RenderScrollbar::isHiddenByStyle const):
(WebCore::RenderScrollbar::getScrollbarPseudoStyle): Deleted.
- rendering/RenderScrollbar.h:
LayoutTests:
Tests that dumps the scrolling tree.
- fast/scrolling/ios/scrollbar-hiding-iframes-expected.txt: Added.
- fast/scrolling/ios/scrollbar-hiding-iframes.html: Added.
- 11:34 AM Changeset in webkit [251368] by
-
- 5 edits1 add in trunk/Tools
EWS should have a way to retry a patch
https://bugs.webkit.org/show_bug.cgi?id=196599
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-app/ews/models/build.py:
(Build): Add the retried field to keep track of whether a build is requested to be retried or not.
(Build.set_retried): Method to set the retried field.
- BuildSlaveSupport/ews-app/ews/templates/statusbubble.html: Added the 'Retry failed builds' button.
- BuildSlaveSupport/ews-app/ews/views/retrypatch.py:
(RetryPatch.post): Added a check if the build is already retried. Also, set the retried flag appropriately.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubble): Updated the status-bubble to in-progress while waiting for build to be retried.
(StatusBubble._build_bubbles_for_patch): Display the retry button only if there are failed builds.
- BuildSlaveSupport/ews-app/ews/migrations/0002_build_retried.py: Added database migration.
- 11:15 AM UsingGitWithWebKit edited by
- Update to use HTTPS URL for svn repository. (diff)
- 9:29 AM Changeset in webkit [251367] by
-
- 11 edits4 adds2 deletes in trunk
Share code between AudioDestinationIOS and AudioDestinationMac
https://bugs.webkit.org/show_bug.cgi?id=203047
<rdar://problem/56340866>
Reviewed by Eric Carlson.
Source/WebCore:
Introduce AudioDestinationCocoa to share code between iOS and Mac.
Most code is now shared, except for the configuration of the audio unit which is slightly different between Mac and iOS.
Introduce MockAudioDestinationCocoa to allow more code coverage of the shared code.
This could also allow us to validate dynamic changes in frame rate, number of frames to process...
Add Internals API to enable the mock destination.
Covered by added test.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/audio/cocoa/AudioDestinationCocoa.cpp: Added.
(WebCore::AudioDestination::create):
(WebCore::AudioDestination::hardwareSampleRate):
(WebCore::AudioDestination::maxChannelCount):
(WebCore::AudioDestinationCocoa::AudioDestinationCocoa):
(WebCore::AudioDestinationCocoa::~AudioDestinationCocoa):
(WebCore::AudioDestinationCocoa::start):
(WebCore::AudioDestinationCocoa::stop):
(WebCore::AudioDestinationCocoa::setIsPlaying):
(WebCore::AudioDestinationCocoa::setAudioStreamBasicDescription):
(WebCore::assignAudioBuffersToBus):
(WebCore::AudioDestinationCocoa::render):
(WebCore::AudioDestinationCocoa::inputProc):
- platform/audio/cocoa/AudioDestinationCocoa.h: Added.
(WebCore::AudioDestinationCocoa::outputUnit):
- platform/audio/ios/AudioDestinationIOS.cpp:
(WebCore::AudioDestinationCocoa::configure):
(WebCore::AudioDestinationCocoa::processBusAfterRender):
- platform/audio/ios/AudioDestinationIOS.h: Removed.
- platform/audio/mac/AudioDestinationMac.cpp:
(WebCore::AudioDestinationCocoa::configure):
(WebCore::AudioDestinationCocoa::processBusAfterRender):
- platform/audio/mac/AudioDestinationMac.h: Removed.
- platform/mock/MockAudioDestinationCocoa.cpp: Added.
(WebCore::MockAudioDestinationCocoa::MockAudioDestinationCocoa):
(WebCore::MockAudioDestinationCocoa::start):
(WebCore::MockAudioDestinationCocoa::stop):
(WebCore::MockAudioDestinationCocoa::tick):
- platform/mock/MockAudioDestinationCocoa.h: Added.
- testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::useMockAudioDestinationCocoa):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- fast/mediastream/getUserMedia-webaudio-expected.txt:
- fast/mediastream/getUserMedia-webaudio.html:
- 8:17 AM Changeset in webkit [251366] by
-
- 13 edits3 adds in trunk
XMLHttpRequest should not prevent entering the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=203107
<rdar://problem/56438647>
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline a new WPT tests that are passing now that we properly check that the
Document is fully active in open().
- web-platform-tests/xhr/open-url-multi-window-2-expected.txt:
- web-platform-tests/xhr/open-url-multi-window-5-expected.txt:
- web-platform-tests/xhr/open-url-multi-window-6-expected.txt:
Source/WebCore:
Improve XMLHttpRequest for back/forward cache suspension:
- We no longer cancel pending loads in the suspend() method as this may fire events.
- Simplify XMLHttpRequestProgressEventThrottle to use SuspendableTimers to dispatch events that are deferred by suspension or throttling.
Test: http/tests/navigation/page-cache-xhr-in-loading-iframe.html
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::open):
Add check to throw a InvalidStateError if the associated document is not fully active,
as per https://xhr.spec.whatwg.org/#dom-xmlhttprequest-open (Step 2). This avoids
dispatching events after ActiveDOMObject::stop() has been called and brings a few more
passes on WPT tests.
(WebCore::XMLHttpRequest::dispatchEvent):
(WebCore::XMLHttpRequest::suspend):
(WebCore::XMLHttpRequest::resume):
(WebCore::XMLHttpRequest::shouldPreventEnteringBackForwardCache_DEPRECATED const): Deleted.
(WebCore::XMLHttpRequest::resumeTimerFired): Deleted.
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchReadyStateChangeEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchEventWhenPossible):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::flushProgressEvent):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEventsAfterResuming):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEventTimerFired):
(WebCore::XMLHttpRequestProgressEventThrottle::suspend):
(WebCore::XMLHttpRequestProgressEventThrottle::resume):
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchEvent): Deleted.
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents): Deleted.
(WebCore::XMLHttpRequestProgressEventThrottle::fired): Deleted.
(WebCore::XMLHttpRequestProgressEventThrottle::hasEventToDispatch const): Deleted.
- xml/XMLHttpRequestProgressEventThrottle.h:
LayoutTests:
Add more test coverage.
- TestExpectations:
- fast/dom/xmlhttprequest-constructor-in-detached-document-expected.txt:
- fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html:
- http/tests/navigation/page-cache-xhr-in-loading-iframe-expected.txt: Added.
- http/tests/navigation/page-cache-xhr-in-loading-iframe.html: Added.
- http/tests/navigation/resources/page-cache-xhr-in-loading-iframe.html: Added.
- 6:28 AM Changeset in webkit [251365] by
-
- 27 edits1 copy2 adds in trunk
[MSE][GStreamer] Revert WebKitMediaSrc rework temporarily
https://bugs.webkit.org/show_bug.cgi?id=203078
Reviewed by Carlos Garcia Campos.
.:
- Source/cmake/GStreamerChecks.cmake:
Source/WebCore:
While the WebKitMediaSrc rework fixed a number of tests and introduced
design improvements in MSE, it also exposed a number of bugs related
to the playbin3 switch.
Fixing these has been turned tricky, so in order to not keep known
user-facing bugs, I'm reverting it for now until a workable solution
is available.
- platform/GStreamer.cmake:
- platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
(WTF::refGPtr<GstMiniObject>): Deleted.
(WTF::derefGPtr<GstMiniObject>): Deleted.
- platform/graphics/gstreamer/GRefPtrGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::paused const):
(WebCore::MediaPlayerPrivateGStreamer::updateTracks):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideoCaps):
(WebCore::MediaPlayerPrivateGStreamer::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
(WebCore::MediaPlayerPrivateGStreamer::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamer::invalidateCachedPosition): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::sizeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSizeFromCaps const): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::doSamplesHaveDifferentNaturalSizes const): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):
- platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
- platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::appsinkCaps):
(WebCore::AppendPipeline::track):
(WebCore::AppendPipeline::streamType):
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::~MediaPlayerPrivateGStreamerMSE):
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::pause):
(WebCore::MediaPlayerPrivateGStreamerMSE::seek):
(WebCore::MediaPlayerPrivateGStreamerMSE::configurePlaySink):
(WebCore::MediaPlayerPrivateGStreamerMSE::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamerMSE::notifySeekNeedsDataForTime):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::maybeFinishSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamerMSE::seeking const):
(WebCore::MediaPlayerPrivateGStreamerMSE::setReadyState):
(WebCore::MediaPlayerPrivateGStreamerMSE::waitForSeekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::seekCompleted):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::updateStates):
(WebCore::MediaPlayerPrivateGStreamerMSE::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourceClient):
(WebCore::MediaPlayerPrivateGStreamerMSE::unblockDurationChanges):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
(WebCore::MediaPlayerPrivateGStreamerMSE::trackDetected):
(WebCore::MediaPlayerPrivateGStreamerMSE::markEndOfStream):
(WebCore::MediaPlayerPrivateGStreamerMSE::currentMediaTime const):
(WebCore::MediaPlayerPrivateGStreamerMSE::play): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::reportSeekCompleted): Deleted.
(WebCore::MediaPlayerPrivateGStreamerMSE::didEnd): Deleted.
- platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
- platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:
(WebCore::MediaSourceClientGStreamerMSE::addSourceBuffer):
(WebCore::MediaSourceClientGStreamerMSE::markEndOfStream):
(WebCore::MediaSourceClientGStreamerMSE::removedFromMediaSource):
(WebCore::MediaSourceClientGStreamerMSE::flush):
(WebCore::MediaSourceClientGStreamerMSE::enqueueSample):
(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):
(WebCore::MediaSourceClientGStreamerMSE::isReadyForMoreSamples): Deleted.
(WebCore::MediaSourceClientGStreamerMSE::notifyClientWhenReadyForMoreSamples): Deleted.
- platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
- platform/graphics/gstreamer/mse/MediaSourceGStreamer.cpp:
(WebCore::MediaSourceGStreamer::markEndOfStream):
(WebCore::MediaSourceGStreamer::unmarkEndOfStream):
(WebCore::MediaSourceGStreamer::waitForSeekCompleted):
(WebCore::MediaSourceGStreamer::seekCompleted):
- platform/graphics/gstreamer/mse/MediaSourceGStreamer.h:
- platform/graphics/gstreamer/mse/PlaybackPipeline.cpp: Added.
(getStreamByTrackId):
(getStreamBySourceBufferPrivate):
(pushSample):
(WebCore::PlaybackPipeline::setWebKitMediaSrc):
(WebCore::PlaybackPipeline::webKitMediaSrc):
(WebCore::PlaybackPipeline::addSourceBuffer):
(WebCore::PlaybackPipeline::removeSourceBuffer):
(WebCore::PlaybackPipeline::attachTrack):
(WebCore::PlaybackPipeline::reattachTrack):
(WebCore::PlaybackPipeline::notifyDurationChanged):
(WebCore::PlaybackPipeline::markEndOfStream):
(WebCore::PlaybackPipeline::flush):
(WebCore::PlaybackPipeline::enqueueSample):
(WebCore::PlaybackPipeline::allSamplesInTrackEnqueued):
(WebCore::PlaybackPipeline::pipeline):
- platform/graphics/gstreamer/mse/PlaybackPipeline.h: Copied from Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h.
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::enqueueSample):
(WebCore::SourceBufferPrivateGStreamer::isReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::setReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyReadyForMoreSamples):
(WebCore::SourceBufferPrivateGStreamer::notifyClientWhenReadyForMoreSamples):
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(disabledAppsrcNeedData):
(disabledAppsrcEnoughData):
(disabledAppsrcSeekData):
(enabledAppsrcEnoughData):
(enabledAppsrcSeekData):
(getStreamByAppsrc):
(webkitMediaSrcChain):
(webkit_media_src_init):
(webKitMediaSrcFinalize):
(webKitMediaSrcSetProperty):
(webKitMediaSrcGetProperty):
(webKitMediaSrcDoAsyncStart):
(webKitMediaSrcDoAsyncDone):
(webKitMediaSrcChangeState):
(webKitMediaSrcGetSize):
(webKitMediaSrcQueryWithParent):
(webKitMediaSrcUpdatePresentationSize):
(webKitMediaSrcLinkStreamToSrcPad):
(webKitMediaSrcLinkSourcePad):
(webKitMediaSrcFreeStream):
(webKitMediaSrcCheckAllTracksConfigured):
(webKitMediaSrcUriGetType):
(webKitMediaSrcGetProtocols):
(webKitMediaSrcGetUri):
(webKitMediaSrcSetUri):
(webKitMediaSrcUriHandlerInit):
(seekNeedsDataMainThread):
(notifyReadyForMoreSamplesMainThread):
(webKitMediaSrcSetMediaPlayerPrivate):
(webKitMediaSrcSetReadyForSamples):
(webKitMediaSrcPrepareSeek):
(WebKitMediaSrcPrivate::streamByName): Deleted.
(): Deleted.
(WTF::refGPtr<WebKitMediaSrcPad>): Deleted.
(WTF::derefGPtr<WebKitMediaSrcPad>): Deleted.
(webkit_media_src_pad_class_init): Deleted.
(Stream::Stream): Deleted.
(Stream::StreamingMembers::StreamingMembers): Deleted.
(Stream::StreamingMembers::durationEnqueued const): Deleted.
(findPipeline): Deleted.
(webkit_media_src_class_init): Deleted.
(debugProbe): Deleted.
(copyCollectionAndAddStream): Deleted.
(copyCollectionWithoutStream): Deleted.
(gstStreamType): Deleted.
(webKitMediaSrcAddStream): Deleted.
(webKitMediaSrcRemoveStream): Deleted.
(webKitMediaSrcActivateMode): Deleted.
(webKitMediaSrcPadLinked): Deleted.
(webKitMediaSrcStreamNotifyLowWaterLevel): Deleted.
(webKitMediaSrcLoop): Deleted.
(webKitMediaSrcEnqueueObject): Deleted.
(webKitMediaSrcEnqueueSample): Deleted.
(webKitMediaSrcEnqueueEvent): Deleted.
(webKitMediaSrcEndOfStream): Deleted.
(webKitMediaSrcIsReadyForMoreSamples): Deleted.
(webKitMediaSrcNotifyWhenReadyForMoreSamples): Deleted.
(webKitMediaSrcStreamFlushStart): Deleted.
(webKitMediaSrcStreamFlushStop): Deleted.
(webKitMediaSrcFlush): Deleted.
(webKitMediaSrcSeek): Deleted.
(countStreamsOfType): Deleted.
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:
- platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamerPrivate.h: Added.
Tools:
- Scripts/webkitpy/style/checker.py:
LayoutTests:
- platform/gtk/TestExpectations:
- 2:53 AM Changeset in webkit [251364] by
-
- 2 edits in trunk/Tools
Unreviewed. Mark some more WTF unit tests as slow for GTK and WPE
- TestWebKitAPI/glib/TestExpectations.json:
- 2:30 AM Changeset in webkit [251363] by
-
- 2 edits in trunk/Source/WebKit
[GTK] Objects category in emoji picker is empty
https://bugs.webkit.org/show_bug.cgi?id=203189
Reviewed by Adrian Perez de Castro.
There's a typo in the first emopi name of objects section.
- UIProcess/API/gtk/WebKitEmojiChooser.cpp:
(webkitEmojiChooserSetupEmojiSections): uted speaker -> muted speaker
- 2:21 AM Changeset in webkit [251362] by
-
- 3 edits in trunk/Source/WebKit
[GTK][WPE] IconDatabase is not thread safe yet
https://bugs.webkit.org/show_bug.cgi?id=202980
Reviewed by Adrian Perez de Castro.
Current implementation is safer, but we still need to protect members used by both threads.
- UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::populatePageURLToIconURLMap):
(WebKit::IconDatabase::clearLoadedIconsTimerFired):
(WebKit::IconDatabase::checkIconURLAndSetPageURLIfNeeded):
(WebKit::IconDatabase::loadIconForPageURL):
(WebKit::IconDatabase::iconURLForPageURL):
(WebKit::IconDatabase::setIconForPageURL):
(WebKit::IconDatabase::clear):
- UIProcess/API/glib/IconDatabase.h:
- 1:25 AM Changeset in webkit [251361] by
-
- 43 edits in trunk/Source
Clean up some includes to improve WebKit2 build speed
https://bugs.webkit.org/show_bug.cgi?id=203071
Reviewed by Wenson Hsieh.
Source/WebCore:
No new tests, just shuffling code around.
- bindings/js/WindowProxy.cpp:
(WebCore::WindowProxy::WindowProxy):
(WebCore::WindowProxy::~WindowProxy):
(WebCore::WindowProxy::detachFromFrame):
(WebCore::WindowProxy::destroyJSWindowProxy):
(WebCore::WindowProxy::createJSWindowProxy):
(WebCore::WindowProxy::jsWindowProxiesAsVector const):
(WebCore::WindowProxy::clearJSWindowProxiesNotMatchingDOMWindow):
(WebCore::WindowProxy::setDOMWindow):
(WebCore::WindowProxy::attachDebugger):
(WebCore::WindowProxy::jsWindowProxies const):
(WebCore::WindowProxy::releaseJSWindowProxies):
(WebCore::WindowProxy::setJSWindowProxies):
- bindings/js/WindowProxy.h:
(WebCore::WindowProxy::existingJSWindowProxy const):
(WebCore::WindowProxy::jsWindowProxies const): Deleted.
(WebCore::WindowProxy::releaseJSWindowProxies): Deleted.
(WebCore::WindowProxy::setJSWindowProxies): Deleted.
- platform/graphics/cocoa/IOSurface.h:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::~IOSurface):
Source/WebKit:
This is worth about 6% on WebKit2, and unlocks another 8% improvement
down the line (but which is less mechanical).
- NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/WebStorage/StorageArea.h:
- NetworkProcess/WebStorage/StorageManager.cpp:
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
- Platform/IPC/Connection.h:
- Shared/API/APIURL.h:
- Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
- Shared/WebCoreArgumentCoders.cpp:
- Shared/WebCoreArgumentCoders.h:
- UIProcess/API/APIAttachment.h:
- UIProcess/API/Cocoa/_WKInspector.mm:
- UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
- UIProcess/TextCheckerCompletion.cpp:
- UIProcess/TextCheckerCompletion.h:
- UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::addNetworkProcess):
(WebKit::WebUserContentControllerProxy::removeNetworkProcess):
- UIProcess/UserContent/WebUserContentControllerProxy.h:
(WebKit::WebUserContentControllerProxy::addNetworkProcess): Deleted.
(WebKit::WebUserContentControllerProxy::removeNetworkProcess): Deleted.
- WebProcess/Automation/WebAutomationSessionProxy.h:
- WebProcess/Network/NetworkProcessConnection.cpp:
- WebProcess/Network/NetworkProcessConnection.h:
- WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
- WebProcess/Plugins/Plugin.cpp:
- WebProcess/Plugins/Plugin.h:
- WebProcess/WebProcess.cpp:
- 12:16 AM Changeset in webkit [251360] by
-
- 2 edits in trunk/Tools
[GTK][WPE] Check we don't leak the WebKitWebContext in all tests
https://bugs.webkit.org/show_bug.cgi?id=202981
Reviewed by Žan Doberšek.
Also include the number of references left in leaks report.
- TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::Test):
(Test::~Test):
- 12:16 AM Changeset in webkit [251359] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Unreviewed. Fix build warning: unused parameter ‘Foo’ [-Wunused-parameter] since r251320.
Patch by Joonghun Park <jh718.park@samsung.com> on 2019-10-21
- dom/Element.cpp:
(WebCore::shouldIgnoreMouseEvent):
Oct 20, 2019:
- 6:55 PM Changeset in webkit [251358] by
-
- 4 edits1 copy in trunk/Source/WebKit
Improve serialization logic
https://bugs.webkit.org/show_bug.cgi?id=203039
<rdar://problem/55631691>
Reviewed by Alex Christensen.
Check that the SecItemRequestData only contains relevant types for
CFNetwork uses.
- Platform/spi/Cocoa/SecItemSPI.h: Added.
- Shared/mac/SecItemRequestData.cpp:
(WebKit::arrayContainsInvalidType): Added.
(WebKit::dictionaryContainsInvalidType): Added.
(WebKit::validTypeIDs): Added.
(WebKit::isValidType): Added.
(WebKit::SecItemRequestData::decode): Check types during decode.
- Shared/mac/SecItemRequestData.h:
- WebKit.xcodeproj/project.pbxproj:
- 6:44 PM Changeset in webkit [251357] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, drop debug logging that was inadvertently committed with r251327.
- history/BackForwardCache.cpp:
- 5:44 PM Changeset in webkit [251356] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r251188. rdar://problem/56340816
WebAudioSourceProviderAVFObjC::provideInput should set its WebAudioBufferList parameters correctly
https://bugs.webkit.org/show_bug.cgi?id=202930
<rdar://problem/56006776>
Reviewed by Eric Carlson.
Source/WebCore:
There is a time where the bus channel number and audio source channel numbers may be different.
In case the bus channel number is less than the audio source channel number, initialization of
the WebAudioBufferList might not be fully done.
In that case, output silence and return early.
Reduce the number of frames to process based on the number of frames the output audio bus plans to process.
Partially covered by new API test (this a race so we cannot reproduce the crash easily).
- Modules/webaudio/MediaStreamAudioSourceNode.cpp: (WebCore::MediaStreamAudioSourceNode::process): Make sure to process the number of frames the output bus expect.
- platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: (WebCore::WebAudioSourceProviderAVFObjC::provideInput):
Tools:
Add a test that has an audio track that goes from 1 to 2 channels while being piped to a WebAudio pipeline.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (-[GUMMessageHandler userContentController:didReceiveScriptMessage:]): (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/getUserMedia-webaudio.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251188 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [251355] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250773. rdar://problem/56271900
WebPageProxy::updatePlayingMediaDidChange should protect from a null m_userMediaPermissionRequestManager
https://bugs.webkit.org/show_bug.cgi?id=202628
<rdar://problem/55935091>
Reviewed by Eric Carlson.
On process swap on navigation or process crash, m_userMediaPermissionRequestManager is made null.
At the same time, the media state is set back to not playing.
Future calls of updatePlayingMediaDidChange should not have any capture state change until getUserMedia/getDisplayMedia
is called, which would create m_userMediaPermissionRequestManager.
But this assumption is not always true given that the media state is computed as process-wide in MediaStreamTrack::captureState on iOS.
The above behavior is fixed as part of https://bugs.webkit.org/show_bug.cgi?id=202627.
Since the call to updatePlayingMediaDidChange is triggered straight from IPC, it should not be trusted and a null check should be added.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::updatePlayingMediaDidChange):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250773 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:44 PM Changeset in webkit [251354] by
-
- 5 edits1 add in branches/safari-608-branch
Cherry-pick r249538. rdar://problem/56426429
LazyClassStructure::setConstructor should not store the constructor to the global object
https://bugs.webkit.org/show_bug.cgi?id=201484
<rdar://problem/50400451>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/web-assembly-constructors-should-not-override-global-object-property.js: Added.
Source/JavaScriptCore:
LazyClassStructure::setConstructor sets the constructor as a property of the global object.
This became a problem when it started being used for WebAssembly constructors, such as Module
and Instance, since they are properties of the WebAssembly object, not the global object. That
resulted in properties of the global object replaced whenever a lazy WebAssembly constructor
was first accessed. e.g.
globalThis.Module = x;
WebAssembly.Module;
globalThis.Module === WebAssembly.Module;
- runtime/LazyClassStructure.cpp: (JSC::LazyClassStructure::Initializer::setConstructor):
- runtime/LazyClassStructure.h:
- runtime/Lookup.h: (JSC::reifyStaticProperty):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249538 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:40 PM Changeset in webkit [251353] by
-
- 37 edits2 adds in branches/safari-608-branch
Apply patch. rdar://problem/56427498
- 4:24 PM Changeset in webkit [251352] by
-
- 1 edit in branches/safari-608-branch/Source/WebKit/UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h
Apply patch. rdar://problem/55954224
- 10:33 AM Changeset in webkit [251351] by
-
- 1 edit in branches/safari-608-branch/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
Unreviewed build fix. rdar://problem/55927251
- 10:33 AM Changeset in webkit [251350] by
-
- 16 edits2 copies1 move3 adds in branches/safari-608-branch
Cherry-pick r250589. rdar://problem/55927251
Storage Access API: document.hasStorageAccess() should return true when the cookie policy allows access
https://bugs.webkit.org/show_bug.cgi?id=202435
<rdar://problem/55718526>
Reviewed by Brent Fulgham.
Source/WebCore:
WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.
Tests: http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html
http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html
http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html
- platform/network/NetworkStorageSession.h:
- platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::NetworkStorageSession::hasCookies const):
- platform/network/curl/NetworkStorageSessionCurl.cpp: (WebCore::NetworkStorageSession::hasCookies const):
Not yet implemented. Always says false.
- platform/network/soup/NetworkStorageSessionSoup.cpp: (WebCore::NetworkStorageSession::hasCookies const):
Not yet implemented. Always says false.
Source/WebKit:
WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp: (WebKit::WebResourceLoadStatisticsStore::hasCookies):
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::hasStorageAccess):
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::registrableDomainsWithWebsiteData):
Tools:
This change makes sure topPrivatelyControlledDomain() correctly handles domains
with leading dots, as often used in cookie domains.
- TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp: (TestWebKitAPI::TEST_F):
LayoutTests:
WebKit's Storage Access API implementation has so far only looked at whether ITP is
blocking cookie access or not. However, the default cookie policy is still in
effect underneath ITP. document.hasStorageAccess() should return true if the
third-party:
a) is not classified by ITP, and
b) has cookies which implies it can use cookies as third-party according to the
default cookie policy.
- http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-expected.txt: Added.
- http/tests/storageAccess/has-storage-access-false-by-default-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
- http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral-expected.txt: Added.
- http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-ephemeral.html: Copied from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
- http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies-expected.txt: Added.
- http/tests/storageAccess/has-storage-access-true-if-third-party-has-cookies.html: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-true-if-feature-off.html.
- platform/ios/TestExpectations:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250589 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251349] by
-
- 8 edits2 copies2 adds in branches/safari-608-branch
Cherry-pick r251086. rdar://problem/56237429
[Cocoa] REGRESSION (r245672): Contenteditable with optical sizing freezes Safari
https://bugs.webkit.org/show_bug.cgi?id=202262
Reviewed by Tim Horton.
Source/WebKit:
r250640 didn't go far enough. We need to apply the same fix everywhere [NSFontDescriptor fontDescriptorWithFontAttributes:] is called.
- Shared/Cocoa/ArgumentCodersCocoa.mm: (IPC::decodeFontInternal):
- Shared/Cocoa/CoreTextHelpers.h: Added.
- Shared/Cocoa/CoreTextHelpers.mm: Added. (fontDescriptorWithFontAttributes):
- SourcesCocoa.txt:
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::updateFontManagerIfNeeded):
- UIProcess/mac/WebPopupMenuProxyMac.mm: (WebKit::WebPopupMenuProxyMac::showPopupMenu):
- WebKit.xcodeproj/project.pbxproj:
LayoutTests:
- fast/forms/contenteditable-font-optical-size-expected.txt: Added.
- fast/forms/contenteditable-font-optical-size.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251086 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251348] by
-
- 12 edits in branches/safari-608-branch
Cherry-pick r250887. rdar://problem/56061121
Partially undo r250811
https://bugs.webkit.org/show_bug.cgi?id=202715
<rdar://problem/56084287>
Reviewed by Chris Dumez.
Source/WebCore:
This patch changes the SerializedScriptValue to always wrap CryptoKey objects again.
CryptoKey objects could belong to an array or another object. In those cases, IDBObjectStore
cannot set the flag for the embedded Cryptokey objects. Neither can postMessage to unset
the flag. Therefore, there is no way to separate the serialization process into two and
this patch restores the old behaviour. However, the hardening part of r250811 is kept
and therefore the crash should still be prevented.
No new test, updated existing test
- Modules/indexeddb/IDBObjectStore.cpp: (WebCore::IDBObjectStore::putOrAdd): (WebCore::JSC::setIsWrappingRequiredForCryptoKey): Deleted.
- bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
- crypto/CryptoKey.h: (WebCore::CryptoKey::allows const): (WebCore::CryptoKey::isWrappingRequired const): Deleted. (WebCore::CryptoKey::setIsWrappingRequired): Deleted. (): Deleted.
- dom/ScriptExecutionContext.h:
Tools:
- TestWebKitAPI/Tests/WebKit/navigation-client-default-crypto.html: Modified to crash if SerializedScriptValue doesn't wrap CryptoKey objects.
LayoutTests:
Some rebaselines.
- crypto/workers/subtle/ec-postMessage-worker-expected.txt:
- crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
- crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250887 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251347] by
-
- 3 edits in branches/safari-608-branch/LayoutTests
Cherry-pick r250844. rdar://problem/56061121
Unreviewed, test gardening
- TestExpectations:
- platform/ios-simulator/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250844 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251346] by
-
- 3 edits2 adds in branches/safari-608-branch
Cherry-pick r250929. rdar://problem/56280990
RunResolver::rangeForRendererWithOffsets should check for range end
https://bugs.webkit.org/show_bug.cgi?id=202761
<rdar://problem/55917924>
Reviewed by Antti Koivisto.
Source/WebCore:
This patch ensures that when rangeForRenderer comes back with a collapsed run (empty range), rangeForRendererWithOffsets returns an empty range as well.
Test: fast/text/simple-line-layout-range-check-end.html
- rendering/SimpleLineLayoutResolver.cpp: (WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets const):
LayoutTests:
- fast/text/simple-line-layout-range-check-end-expected.txt: Added.
- fast/text/simple-line-layout-range-check-end.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250929 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251345] by
-
- 5 edits in branches/safari-608-branch
Cherry-pick r250833. rdar://problem/56280706
Apply patch. rdar://problem/55920073
git-svn-id: https://svn.webkit.org/repository/webkit/branches/safari-608.3.10.1-branch@250833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251344] by
-
- 23 edits3 adds in branches/safari-608-branch
Cherry-pick r250811. rdar://problem/56061121
Only wrapping CryptoKeys for IDB during serialization
https://bugs.webkit.org/show_bug.cgi?id=202500
<rdar://problem/52445927>
Reviewed by Chris Dumez.
Source/WebCore:
Wrapping CryptoKeys during IDB serialization is a legacy request from Netflix when WebKit was an
early adopter. It is not necessary for other kinds of serialization. However, given existing keys
stored in users' idb are wrapped, the wrapping/unwrapping mechanism cannot be easily discarded.
Therefore, this patch restricts the wrapping/unwrapping mechanism to idb only.
To do so, a isWrappingRequired flag is added to CryptoKey such that whenever idb sees a CryptoKey,
it can set it. SerializedScriptValue will then only wrap a CryptoKey when this flag is set. Otherwise,
a new tag UnwrappedCryptoKeyTag is used to store unwrapped CryptoKeys in order to keep the old CryptoKeyTag
binaries intact. For deserialization, each type will be deserialized differently.
Besides the above, this patch also hardens WorkerGlobalScope::wrapCryptoKey/unwrapCryptoKey for
any potential racy issues. CryptoBooleanContainer is introduced to capture boolean in the lambda.
workerGlobalScope is replaced with workerMessagingProxy. Now, every variables captured in the lambdas
should be either a copy or a thread safe ref of the original object.
Test: crypto/workers/subtle/aes-indexeddb.html
- Modules/indexeddb/IDBObjectStore.cpp: (WebCore::JSC::setIsWrappingRequiredForCryptoKey): (WebCore::IDBObjectStore::putOrAdd):
- bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneDeserializer::readTerminal):
- crypto/CryptoKey.h: (WebCore::CryptoKey::isWrappingRequired const): (WebCore::CryptoKey::setIsWrappingRequired):
- dom/ScriptExecutionContext.h:
- workers/WorkerGlobalScope.cpp: (WebCore::CryptoBooleanContainer::create): (WebCore::CryptoBooleanContainer::boolean const): (WebCore::CryptoBooleanContainer::setBoolean): (WebCore::WorkerGlobalScope::wrapCryptoKey): (WebCore::WorkerGlobalScope::unwrapCryptoKey):
- workers/WorkerGlobalScope.h:
- workers/WorkerLoaderProxy.h: (WebCore::WorkerLoaderProxy::isWorkerMessagingProxy const):
- workers/WorkerMessagingProxy.h: (isType):
Tools:
Modifies IndexedDB.StructuredCloneBackwardCompatibility test to include CryptoKeys.
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm: (-[StructuredCloneBackwardCompatibilityNavigationDelegate _webCryptoMasterKeyForWebView:]): (TEST):
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-shm:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.sqlite3-wal:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityRead.html:
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibilityWrite.html:
LayoutTests:
Adds a new test aes-indexeddb.html to do idb in workers and makes
other tests more deterministic.
- crypto/workers/subtle/aes-indexeddb-expected.txt: Added.
- crypto/workers/subtle/aes-indexeddb.html: Added.
- crypto/workers/subtle/ec-postMessage-worker-expected.txt:
- crypto/workers/subtle/ec-postMessage-worker.html:
- crypto/workers/subtle/hrsa-postMessage-worker-expected.txt:
- crypto/workers/subtle/hrsa-postMessage-worker.html:
- crypto/workers/subtle/resources/aes-indexeddb.js: Added.
- crypto/workers/subtle/rsa-postMessage-worker-expected.txt:
- crypto/workers/subtle/rsa-postMessage-worker.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250811 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251343] by
-
- 11 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250780. rdar://problem/56061126
Provide options for DTTZ to happen in more situations
https://bugs.webkit.org/show_bug.cgi?id=202634
<rdar://problem/55732762>
Reviewed by Antoine Quint.
Add two options that can be enabled to trigger double tap zooming
in more places.
Firstly, an option to keep listening for a double-tap-to-zoom if the
first tap found a click handler on the body or document element. The
tap will still be dispatched. This is probably the most common case
for disabling a DTTZ.
Secondly, an option to always keep listening for a double-tap-to-zoom,
even if there was a clickable (non-root) element under the first tap.
- Shared/WebPreferences.yaml: Add ZoomOnDoubleTapWhenRoot and AlwaysZoomOnDoubleTap.
- UIProcess/PageClient.h: The message from the WebProcess now tells the UIProcess if the tapped element was a root-level (document or body).
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::handleSmartMagnificationInformationForPotentialTap):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _endPotentialTapAndEnableDoubleTapGesturesIfNecessary]): (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]): Handle the two new options.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::handleSmartMagnificationInformationForPotentialTap):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::potentialTapAtPosition): Check if the tap was on a root-level element.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250780 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251342] by
-
- 6 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250755. rdar://problem/56061126
Use a better name than allowFastClicksEverywhere
https://bugs.webkit.org/show_bug.cgi?id=202607
<rdar://problem/55997133>
Reviewed by Tim Horton.
This preference name is quite confusing. Change it to
PreferFasterClickOverDoubleTap.
- Shared/WebPreferences.yaml:
- Shared/WebPreferencesDefaultValues.h:
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::preferFasterClickOverDoubleTap const): (WebKit::WebPageProxy::allowsFastClicksEverywhere const): Deleted.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:]):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::effectiveContentModeAfterAdjustingPolicies):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250755 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251341] by
-
- 3 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r250751. rdar://problem/56280731
Unreviewed, build fix after r250729
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250751 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:33 AM Changeset in webkit [251340] by
-
- 24 edits6 copies2 adds in branches/safari-608-branch
Cherry-pick r250729. rdar://problem/56280731
[WebAuthn] Implement _WKWebAuthenticationPanel SPI
https://bugs.webkit.org/show_bug.cgi?id=202559
<rdar://problem/55932094>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch implements _WKWebAuthenticationPanel SPI. Here is the structure:
1) API::WebAuthenticationPanel is the APIObject of _WKWebAuthenticationPanel. It is owned by AuthenticatorManager.
The lifetime of _WKWebAuthenticationPanel on the other hand is managed by clients. This binding is the surface
where clients could interact with WebKit's WebAuthentication implementation.
2) API::WebAuthenticationPanelClient is a base class representing _WKWebAuthenticationPanelDelegate. Its subclass
WebKit::WebAuthenticationPanelClient implements bridges to _WKWebAuthenticationPanelDelegate methods. It is owned by
API::WebAuthenticationPanel. A weak pointer of WebKit::WebAuthenticationPanelClient is kept in _WKWebAuthenticationPanel
to get the _WKWebAuthenticationPanelDelegate set by clients or nil otherwise. This binding is the surface where WebKit
interacts with clients.
3) WebAuthenticationPanelFlags is the mirror of enums within _WKWebAuthenticationPanel.
Implementation wise, this patch implements:
1) -[WKUIDelegatePrivate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:], this is bridged from
the regular UIDelegate route. Noted, WKFrameInfo is nil for now, a follow up on Bug 202563 will take care of it. This
will be called from AuthenticatorManager::runPanel() which gates the start of discovery on the callback. For clients
that don't implement the delegate, the callback will always be called with _WKWebAuthenticationPanelResultUnavailable
to allow WebKit run on non-UI mode. A specific C API hack is added to always return _WKWebAuthenticationPanelResultPresented
in WebKitTestRunner for layout tests.
2) -[_WKWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:] will be implemented in Bug 200932.
3) -[_WKWebAuthenticationPanelDelegate panel:dismissWebAuthenticationPanelWithResult:], this is bridged from
API::WebAuthenticationPanel/API::WebAuthenticationPanelClient. This will be called whenever AuthenticatorManager::m_pendingCompletionHandler
is invoked. Depending on the respond, _WKWebAuthenticationResult will be returned accordingly. To facilitate that,
invokePendingCompletionHandler is crafted to bundle those two operations.
4) -[_WKWebAuthenticationPanel cancel] will be implemented in Bug 191523.
Besides the above, this patch also silents the NFC action sheet.
- Platform/spi/Cocoa/NearFieldSPI.h:
- Shared/API/APIObject.h:
- Shared/Cocoa/APIObject.mm: (API::Object::newObject):
- Sources.txt:
- SourcesCocoa.txt:
- UIProcess/API/APIUIClient.h: (API::UIClient::runWebAuthenticationPanel):
- UIProcess/API/APIWebAuthenticationPanel.cpp: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm. (API::WebAuthenticationPanel::create): (API::WebAuthenticationPanel::WebAuthenticationPanel): (API::WebAuthenticationPanel::setClient):
- UIProcess/API/APIWebAuthenticationPanel.h: Copied from Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.h.
- UIProcess/API/APIWebAuthenticationPanelClient.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h. (API::WebAuthenticationPanelClient::dismissPanel const):
- UIProcess/API/C/WKPage.cpp: (WKPageSetPageUIClient):
- UIProcess/API/C/WKPageUIClient.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (-[_WKWebAuthenticationPanel dealloc]): (-[_WKWebAuthenticationPanel relyingPartyID]): (-[_WKWebAuthenticationPanel delegate]): (-[_WKWebAuthenticationPanel setDelegate:]): (-[_WKWebAuthenticationPanel _apiObject]): (-[_WKWebAuthenticationPanel _initWithRelayingPartyID:]): Deleted.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::webAuthenticationPanelResult): (WebKit::UIDelegate::UIClient::runWebAuthenticationPanel):
- UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::WebCore::isFeatureEnabled): (WebKit::WebCore::getRpId): (WebKit::AuthenticatorManager::handleRequest): (WebKit::AuthenticatorManager::respondReceived): (WebKit::AuthenticatorManager::startDiscovery): (WebKit::AuthenticatorManager::initTimeOutTimer): (WebKit::AuthenticatorManager::timeOutTimerFired): (WebKit::AuthenticatorManager::runPanel): (WebKit::AuthenticatorManager::startRequest): (WebKit::AuthenticatorManager::invokePendingCompletionHandler): (WebKit::AuthenticatorManagerInternal::collectTransports): Deleted. (WebKit::AuthenticatorManagerInternal::processGoogleLegacyAppIdSupportExtension): Deleted.
- UIProcess/WebAuthentication/AuthenticatorManager.h: (WebKit::AuthenticatorManager::pendingCompletionHandler): Deleted.
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: (WebKit::NfcConnection::NfcConnection):
- UIProcess/WebAuthentication/Cocoa/NfcService.mm: (WebKit::NfcService::platformStartDiscovery):
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h: Copied from Source/WebKit/UIProcess/WebAuthentication/WebAuthenticationRequestData.h.
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm: Copied from Source/WebKit/UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp. (WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient): (WebKit::wkWebAuthenticationResult): (WebKit::WebAuthenticationPanelClient::dismissPanel const):
- UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: (WebKit::MockAuthenticatorManager::respondReceivedInternal):
- UIProcess/WebAuthentication/WebAuthenticationPanelFlags.h: Copied from Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanelInternal.h.
- UIProcess/WebAuthentication/WebAuthenticationRequestData.h:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp: (WebKit::WebAuthenticatorCoordinatorProxy::makeCredential): (WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
- WebKit.xcodeproj/project.pbxproj:
Tools:
This patch adds a very limited test case to _WKWebAuthenticationPanel.
Bug 202560 and Bug 202565 will follow up to write more tests.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: Added. (-[TestWebAuthenticationPanelDelegate panel:dismissWebAuthenticationPanelWithResult:]): (-[TestWebAuthenticationPanelUIDelegate webView:runWebAuthenticationPanel:initiatedByFrame:completionHandler:]): (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion.html: Added.
- WebKitTestRunner/TestController.cpp: (WTR::runWebAuthenticationPanel): (WTR::TestController::createWebViewWithOptions):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250729 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251339] by
-
- 2 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r250716. rdar://problem/56280993
AppleTV named as XSS-payloads trigger when AirPlay is used
https://bugs.webkit.org/show_bug.cgi?id=202534
<rdar://55931262>
Reviewed by Eric Carlson.
Ensure we escape an AirPlay's device name before inserting its name into the DOM.
- Modules/modern-media-controls/media/placard-support.js: (PlacardSupport.prototype._updateAirPlayPlacard): (PlacardSupport): (escapeHTML):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251338] by
-
- 5 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r250694. rdar://problem/56061131
[iOS] WebContent process can be interrupted during suspension; loses "Now Playing" status
https://bugs.webkit.org/show_bug.cgi?id=202537
<rdar://problem/55952707>
Reviewed by Eric Carlson.
Always deactivate the AVAudioSession when the last playing PlatformAudioSession ends playback and the application is in the background.
- platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::removeSession): (WebCore::PlatformMediaSessionManager::processWillSuspend): (WebCore::PlatformMediaSessionManager::maybeDeactivateAudioSession):
- platform/audio/PlatformMediaSessionManager.h: (WebCore::PlatformMediaSessionManager::isApplicationInBackground const):
- platform/audio/ios/MediaSessionManagerIOS.h:
- platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::sessionWillEndPlayback):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250694 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251337] by
-
- 5 edits in branches/safari-608-branch/Source
Cherry-pick r250642. rdar://problem/56280704
[iOS] When hit testing for a context menu interaction, do not consider whether the element is contenteditable
https://bugs.webkit.org/show_bug.cgi?id=202498
<rdar://problem/54723131>
Reviewed by Tim Horton.
Source/WebCore:
When the user selects a context menu action, WebKit performs a hit test in order to find the
acted-on element on the page. This is separate from the hit test performed to generate the
context menu's targeted preview. Since an arbitrary amount of time can elapse between
preview generation and action selection, this second hit-tests might return a different
element.
One case where we know a different element can be returned is in apps that dynamically
enable and disable editing. If editing is disabled when the first hit test occurs but is
enabled when the second one occurs, different elements will be returned due to
Frame::qualifyingNodeAtViewportLocation preferring to return the root editable element when
the approximate node is contenteditable.
While the appropriate long-term fix is to only hit-test once and use that element for both
preview generation and action selection, this patch implements a short-term fix to address
the specific problem in rdar://problem/54723131 by disabling the contenteditable behavior
described above for context menu interaction hit testing.
The long-term fix is tracked by <https://webkit.org/b/202499>.
- page/Frame.h:
- page/ios/FrameIOS.mm: (WebCore::Frame::qualifyingNodeAtViewportLocation): (WebCore::Frame::approximateNodeAtViewportLocationLegacy): (WebCore::ancestorRespondingToClickEventsNodeQualifier): (WebCore::Frame::nodeRespondingToClickEvents): (WebCore::Frame::nodeRespondingToDoubleClickEvent): (WebCore::Frame::nodeRespondingToInteraction): (WebCore::Frame::nodeRespondingToScrollWheelEvents):
Source/WebKit:
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::startInteractionWithElementAtPosition): Changed to call WebCore::Frame::nodeRespondingToInteraction.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251336] by
-
- 2 edits in branches/safari-608-branch/Source/JavaScriptCore
Cherry-pick r250629. rdar://problem/56280996
FTL OSR exit shouldn't bother updating get_by_id array profiles that have changed modes
https://bugs.webkit.org/show_bug.cgi?id=202493
Reviewed by Saam Barati.
I added this optimization for DFG but forgot to do it for the FTL
at the same time. This patch rectifies that.
- ftl/FTLOSRExitCompiler.cpp: (JSC::FTL::compileStub):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251335] by
-
- 4 edits2 adds in branches/safari-608-branch
Cherry-pick r250585. rdar://problem/56280995
ObjectAllocationSinkingPhase shouldn't insert hints for allocations which are no longer valid
https://bugs.webkit.org/show_bug.cgi?id=199361
<rdar://problem/52454940>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/allocation-sinking-hints-are-valid-ssa-2.js: Added. (main.fn): (main.executor): (main):
- stress/allocation-sinking-hints-are-valid-ssa.js: Added. (main.fn): (main.executor): (main):
Source/JavaScriptCore:
In a prior fix to the object allocation sinking phase, I added code where we
made sure to insert PutHints over Phis for fields of an object at control flow
merge points. However, that code didn't consider that the base of the PutHint
may no longer be a valid heap location. This could cause us to emit invalid
SSA code by referring to a node which does not dominate the PutHint location.
This patch fixes the bug to only emit the PutHints when valid.
This patch also makes it so that DFGValidate actually validates that the graph
is in valid SSA form. E.g, any use of a node N must be dominated by N.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGValidate.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251334] by
-
- 6 edits2 adds in branches/safari-608-branch
Cherry-pick r250431. rdar://problem/55927251
Storage Access API: document.hasStorageAccess() should return false by default
https://bugs.webkit.org/show_bug.cgi?id=202281
<rdar://problem/55718526>
Reviewed by Alex Christensen.
document.hasStorageAccess() should return false by default so that it only
returns true if the context has asked for and been granted storage access.
Source/WebKit:
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::hasStorageAccess):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
LayoutTests:
- http/tests/storageAccess/has-storage-access-false-by-default-expected.txt: Added.
- http/tests/storageAccess/has-storage-access-false-by-default.html: Added.
- platform/ios/TestExpectations:
The new test is marked as [ Pass ].
- platform/mac-wk2/TestExpectations:
The new test is marked as [ Pass ].
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251333] by
-
- 8 edits in branches/safari-608-branch
Cherry-pick r250416. rdar://problem/55954224
SubFrameSOAuthorizationSession should ensure messages are posted in the right order to the parent frame
https://bugs.webkit.org/show_bug.cgi?id=202061
<rdar://problem/55485666>
Reviewed by Youenn Fablet.
Source/WebKit:
This patch ensures messages that signal the process of SOAuthorization interception are posted in
the right order to the parent frame. Before this patch, there are chances that SOAuthorizationDidCancel
could be posted to the parent before SOAuthorizationDidStart. There are few causes that lead to
this race condition:
1) SubFrameSOAuthorizationSession::beforeStart posts SOAuthorizationDidStart in the next runloop. So
extension could have the chance to invoke SubFrameSOAuthorizationSession::fallBackToWebPathInternal
before SOAuthorizationDidStart is posted.
2) Even if the order is right in the UI process, it is not guaranteed that Web process will strictly
follow the order as the loading process is async.
To fix the issue:
1) SubFrameSOAuthorizationSession::beforeStart now posts SOAuthorizationDidStart in the same runloop.
2) Observer is introduced in FrameLoadState such that SubFrameSOAuthorizationSession could know if
the loading is finished. With this new capacity, SubFrameSOAuthorizationSession can ensure it only
posts next message when the previous message has been posted.
Implementation wise, a deque to queue requests is provided to maintain order.
1) When new request is added to the deque, SubFrameSOAuthorizationSession will only load the request
if it is the only element in the deque. Otherwise, it does nothing.
2) When SubFrameSOAuthorizationSession receives didFinishLoad, it pops the head of the queue and loads
the next request in the queue if any.
The above design should guarantee all requests are loaded in sequence.
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.h:
- UIProcess/Cocoa/SOAuthorization/SubFrameSOAuthorizationSession.mm: (WebKit::SubFrameSOAuthorizationSession::SubFrameSOAuthorizationSession): (WebKit::SubFrameSOAuthorizationSession::~SubFrameSOAuthorizationSession): (WebKit::SubFrameSOAuthorizationSession::fallBackToWebPathInternal): (WebKit::SubFrameSOAuthorizationSession::completeInternal): (WebKit::SubFrameSOAuthorizationSession::beforeStart): (WebKit::SubFrameSOAuthorizationSession::didFinishLoad): (WebKit::SubFrameSOAuthorizationSession::appendRequestToLoad): (WebKit::SubFrameSOAuthorizationSession::loadRequestToFrame): (WebKit::SubFrameSOAuthorizationSession::loadDataToFrame): Deleted. (WebKit::SubFrameSOAuthorizationSession::postDidCancelMessageToParent): Deleted.
- UIProcess/FrameLoadState.cpp: (WebKit::FrameLoadState::addObserver): (WebKit::FrameLoadState::removeObserver): (WebKit::FrameLoadState::didFinishLoad):
- UIProcess/FrameLoadState.h:
Tools:
Adds tests that check the order of messages posted by SubFrameSOAuthorizationSession.
- TestWebKitAPI/Tests/WebKitCocoa/TestSOAuthorization.mm: (-[TestSOAuthorizationScriptMessageHandler userContentController:didReceiveScriptMessage:]): (resetState): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250416 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251332] by
-
- 3 edits1 add in branches/safari-608-branch
Cherry-pick r249959. rdar://problem/56280989
CheckArray on DirectArguments/ScopedArguments does not filter out slow put array storage
https://bugs.webkit.org/show_bug.cgi?id=201853
<rdar://problem/53805461>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/direct-arguments-check-array-filter-type.js: Added. (foo):
Source/JavaScriptCore:
We were claiming CheckArray for ScopedArguments/DirectArguments was filtering
out SlowPutArrayStorage. It does no such thing. We just check that the object
is either ScopedArguments/DirectArguments.
- dfg/DFGArrayMode.h: (JSC::DFG::ArrayMode::arrayModesThatPassFiltering const): (JSC::DFG::ArrayMode::arrayModesWithIndexingShapes const): (JSC::DFG::ArrayMode::arrayModesWithIndexingShape const): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249959 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:32 AM Changeset in webkit [251331] by
-
- 15 edits3 adds in branches/safari-608-branch
Cherry-pick r249517. rdar://problem/56000099
Mail appears to be double inverting code copied from Notes, Xcode, or Terminal.
https://bugs.webkit.org/show_bug.cgi?id=201368
rdar://problem/40529867
Reviewed by Ryosuke Niwa.
Source/WebCore:
Dark mode content that is pasted should have the inline styles inverse color
transformed by the color filter to match the color filtered document contents.
Layout Test: editing/pasteboard/paste-dark-mode-color-filtered.html
API Tests: PasteHTML.TransformColorsOfDarkContent, PasteHTML.DoesNotTransformColorsOfLightContent,
PasteRTFD.TransformColorsOfDarkContent, PasteRTFD.DoesNotTransformColorsOfLightContent
- editing/EditingStyle.cpp: (WebCore::EditingStyle::inverseTransformColorIfNeeded): Added caret-color to the transformed properties.
- editing/ReplaceSelectionCommand.cpp: (WebCore::fragmentNeedsColorTransformed): Added. (WebCore::ReplaceSelectionCommand::inverseTransformColor): Added. (WebCore::ReplaceSelectionCommand::doApply): Call fragmentNeedsColorTransformed() and inverseTransformColor().
- editing/ReplaceSelectionCommand.h:
Tools:
Added Tests: PasteHTML.TransformColorsOfDarkContent, PasteHTML.DoesNotTransformColorsOfLightContent,
PasteRTFD.TransformColorsOfDarkContent, PasteRTFD.DoesNotTransformColorsOfLightContent
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm: (createWebViewWithCustomPasteboardDataSetting): Added argument to enable color filter.
- TestWebKitAPI/Tests/WebKitCocoa/PasteRTFD.mm: (createWebViewWithCustomPasteboardDataEnabled): Added argument to enable color filter.
- TestWebKitAPI/Tests/WebKitCocoa/rich-color-filtered.html: Added.
- TestWebKitAPI/cocoa/TestWKWebView.h:
- TestWebKitAPI/cocoa/TestWKWebView.mm: (-[TestWKWebView forceDarkMode]):
LayoutTests:
- TestExpectations:
- editing/pasteboard/paste-dark-mode-color-filtered-expected.txt: Added.
- editing/pasteboard/paste-dark-mode-color-filtered.html: Added.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:09 AM Changeset in webkit [251330] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Make InlineTextItem reusable when 'segment break' behavior changes
https://bugs.webkit.org/show_bug.cgi?id=203184
<rdar://problem/56438945>
Reviewed by Antti Koivisto.
InlineTextItem::isWhitespace should dynamically check for 'preserve new line' behavior. This way we don't have to rebuild the inline item list
when the related style property value changes.
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::isWhitespaceCharacter):
(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createSegmentBreakItem):
(WebCore::Layout::InlineTextItem::createEmptyItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::split const):
(WebCore::Layout::InlineTextItem::isWhitespace const):
(WebCore::Layout::isSoftLineBreak): Deleted.
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isSegmentBreak const):
(WebCore::Layout::InlineTextItem::isWhitespace const): Deleted.
- 7:56 AM Changeset in webkit [251329] by
-
- 8 edits in trunk/Source/WebCore
[LFC][IFC] Move the collapsed bit from InlineItems to runs
https://bugs.webkit.org/show_bug.cgi?id=203183
Reviewed by Antti Koivisto.
<rdar://problem/56437181>
Let's not store the collapsed bit on the InlineTextItem. All we need to know is whether the InlineTextItem content is collapsible or not.
Also when only the white-space property changes (going from preserve whitespace to not and vice versa) we don't actually need to rebuild the
InlinItem list since they don't carry any layout dependent information.
This patch also fixes leading/trailing content preservation.
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::canBeExtended const):
(WebCore::Layout::shouldPreserveTrailingContent):
(WebCore::Layout::shouldPreserveLeadingContent):
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::Run::isCollapsed const):
(WebCore::Layout::Line::Run::setIsCollapsed):
- layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::inlineItemWidth):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::split const):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::isCollapsible const):
(WebCore::Layout::InlineTextItem::isCollapsed const): Deleted.
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::isTrimmableContent): Deleted.
- layout/inlineformatting/text/TextUtil.h: