Timeline
Jan 11, 2020:
- 11:44 PM Changeset in webkit [254413] by
-
- 2 edits in trunk/Source/WTF
REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Unreviewed.
Fix build.
- wtf/cocoa/LanguageCocoa.mm:
(WTF::canMinimizeLanguages):
- 11:16 PM Changeset in webkit [254412] by
-
- 22 edits in trunk
REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Unreviewed.
Addressing additional review comments.
Source/WTF:
- wtf/cocoa/LanguageCocoa.mm:
(WTF::canMinimizeLanguages):
LayoutTests:
- fast/text/international/system-language/navigator-language/navigator-language-en-GB.html:
- fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
- fast/text/international/system-language/navigator-language/navigator-language-en.html:
- fast/text/international/system-language/navigator-language/navigator-language-es-419.html:
- fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
- fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
- fast/text/international/system-language/navigator-language/navigator-language-es.html:
- fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html:
- fast/text/international/system-language/navigator-language/navigator-language-fr.html:
- fast/text/international/system-language/navigator-language/navigator-language-hi.html:
- fast/text/international/system-language/navigator-language/navigator-language-ja.html:
- fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
- fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html:
- fast/text/international/system-language/navigator-language/navigator-language-ru.html:
- fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html:
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html:
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html:
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
- fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html:
- 10:57 PM Changeset in webkit [254411] by
-
- 2 edits in trunk/Source/WTF
Fix internal Apple builds after r254389
https://bugs.webkit.org/show_bug.cgi?id=206135
Rubber stamped by Zalan Bujtas.
- wtf/spi/cocoa/NSLocaleSPI.h:
- 8:21 PM Changeset in webkit [254410] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Introduce the concept of independent formatting context
https://bugs.webkit.org/show_bug.cgi?id=206137
<rdar://problem/58508015>
Reviewed by Sam Weinig.
At this point it is just about absolute positioned block level boxes since we don't support the "contain" property.
https://www.w3.org/TR/css-display-3/#independent-formatting-context
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::establishesFormattingContext const):
(WebCore::Layout::Box::establishesIndependentFormattingContext const):
- layout/layouttree/LayoutBox.h:
- 5:46 PM Changeset in webkit [254409] by
-
- 23 edits in trunk
Expose frame information on _WKResourceLoadInfo
https://bugs.webkit.org/show_bug.cgi?id=206104
<rdar://problem/57132290>
Reviewed by Dean Jackson.
Source/WebCore:
Covered by API tests.
- page/FrameIdentifier.h:
(WebCore::frameIdentifierFromID): Deleted.
Source/WebKit:
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::resourceLoadInfo):
- Shared/API/Cocoa/_WKFrameHandle.h:
- Shared/API/Cocoa/_WKFrameHandle.mm:
(-[_WKFrameHandle frameID]):
(-[_WKFrameHandle initWithCoder:]):
(-[_WKFrameHandle encodeWithCoder:]):
(-[_WKFrameHandle _frameID]): Deleted.
- Shared/API/Cocoa/_WKFrameHandleInternal.h:
- Shared/ResourceLoadInfo.h:
(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):
- UIProcess/API/APIResourceLoadInfo.h:
- UIProcess/API/Cocoa/_WKInspector.mm:
(-[_WKInspector showMainResourceForFrame:]):
- UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
- UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:
(-[_WKResourceLoadInfo frame]):
(-[_WKResourceLoadInfo parentFrame]):
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _canChangeFrameLayout:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
- UIProcess/Cocoa/WKReloadFrameErrorRecoveryAttempter.mm:
(-[WKReloadFrameErrorRecoveryAttempter attemptRecovery]):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::evaluateJavaScriptCallback):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(+[WKWebProcessPlugInFrame lookUpFrameFromHandle:]):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::addParametersFromFrame):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::installServiceWorker):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
(TEST):
- 5:25 PM Changeset in webkit [254408] by
-
- 8 edits in trunk
[WebCore] Fix crash in module loader due to change in fragment reservation
https://bugs.webkit.org/show_bug.cgi?id=206125
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-script-element/module/import-meta/import-meta-url-expected.txt:
Source/WebCore:
At some point, CachedResource::url() starts returning URL without fragment.
However, this was invariant in ScriptModuleLoader, so one of WPT test is crashing.
We save source URL so that we preserve fragment information.
Still we need to have fragment information after the redirect to fix a bug filed in [1].
[1]: https://bugs.webkit.org/show_bug.cgi?id=205294
- bindings/js/CachedModuleScriptLoader.cpp:
(WebCore::CachedModuleScriptLoader::load):
- bindings/js/CachedModuleScriptLoader.h:
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::notifyFinished):
LayoutTests:
- 4:49 PM Changeset in webkit [254407] by
-
- 2 edits in trunk/Source/WebCore
[LFC] isOkToAccessDisplayBox should return false on formatting context root access.
https://bugs.webkit.org/show_bug.cgi?id=206123
<rdar://problem/58500267>
Reviewed by Antti Koivisto.
From now on any geometry access outside of the formatting context without a valid reason is considered an escape.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometryForBox const):
- 4:29 PM Changeset in webkit [254406] by
-
- 7 edits2 adds in trunk
Support image-set() standard syntax
https://bugs.webkit.org/show_bug.cgi?id=160934
<rdar://problem/27891501>
Patch by Noam Rosenthal <Noam Rosenthal> on 2020-01-11
Source/WebCore:
Reviewed by Simon Fraser.
Inside image-set, image URLs can use regular quotes, not necessarily with url().
See https://drafts.csswg.org/css-images-4/#image-set-notation
Test: fast/hidpi/image-set-as-background-quotes.html
- css/parser/CSSPropertyParserHelpers.cpp:
Update CSS parser to allow raw strings as URLs inside image-set.
(WebCore::CSSPropertyParserHelpers::consumeUrlOrStringAsStringView):
(WebCore::CSSPropertyParserHelpers::consumeImageSet):
LayoutTests:
Reviewed by Dean Jackson.
- fast/css/image-set-parsing-invalid.html:
- fast/css/image-set-parsing.html:
Update parsing to include raw strings
- fast/hidpi/image-set-as-background-quotes-expected.html: Added.
- fast/hidpi/image-set-as-background-quotes.html: Added.
Added ref-test for image-set without url().
- 4:16 PM Changeset in webkit [254405] by
-
- 3 edits in trunk/Source/WebCore
[LFC] BlockFormattingContext::verticalPositionWithMargin should take VerticalConstraints
https://bugs.webkit.org/show_bug.cgi?id=206122
<rdar://problem/58500207>
Reviewed by Antti Koivisto.
This prevents verticalPositionWithMargin from reading geometry outside of the formatting context.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::verticalPositionWithMargin const):
- layout/blockformatting/BlockFormattingContext.h:
- 4:05 PM Changeset in webkit [254404] by
-
- 3 edits in trunk/Source/WebCore
[LFC][BFC] BlockFormattingContext::computeEstimatedVerticalPositionForAncestors should take ConstraintsPair<HorizontalConstraints>
https://bugs.webkit.org/show_bug.cgi?id=206121
<rdar://problem/58499492>
Reviewed by Antti Koivisto.
This prevents computeEstimatedVerticalPositionForAncestors from reading geometry outside of the formatting context.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear):
- layout/blockformatting/BlockFormattingContext.h:
- 4:03 PM Changeset in webkit [254403] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Introduce BlockFormattingContext::ConstraintsPair
https://bugs.webkit.org/show_bug.cgi?id=206119
<rdar://problem/58498745>
Reviewed by Antti Koivisto.
This is in preparation for passing rootHorizontalConstraints all the way to BlockFormattingContext::computeEstimatedVerticalPosition().
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::ConstraintsPair<T>::ConstraintsPair):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticHorizontalPosition):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition):
(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- layout/blockformatting/BlockFormattingContext.h:
(WebCore::Layout::BlockFormattingContext::ConstraintsPair::operator* const):
(WebCore::Layout::BlockFormattingContext::ConstraintsPair::root const):
- 3:47 PM Changeset in webkit [254402] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Visually collapse hanging pre-wrap content.
https://bugs.webkit.org/show_bug.cgi?id=206133
<rdar://problem/58505750>
Reviewed by Antti Koivisto.
This change is to comply with other rendering engines when it comes to visually collapsing hanging pre-wrap content.
https://www.w3.org/TR/css-text-3/#white-space-phase-2
"If white-space is set to pre-wrap, the UA must (unconditionally) hang this sequence, unless the sequence
is followed by a forced line break, in which case it must conditionally hang the sequence is instead.
It _may_ also visually collapse the character advance widths of any that would otherwise overflow."
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::visuallyCollapsePreWrapOverflowContent):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::InlineItemRun::adjustLogicalWidth):
- 10:07 AM Changeset in webkit [254401] by
-
- 4 edits1 copy in trunk/Source/WTF
Platform.h is out of control Part 1: Split WTF_CPU_* macro definitions out of Platform.h and into a new CPU.h
https://bugs.webkit.org/show_bug.cgi?id=206124
Reviewed by Anders Carlsson.
As a step towards cleaning up Platform.h, split out CPU related
macros into their own file.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/CPU.h: Copied from Source/WTF/wtf/Platform.h.
- wtf/Platform.h:
- 9:42 AM Changeset in webkit [254400] by
-
- 9 edits in trunk
[WebGL] Clarify USE_OPENGL_ES_3
https://bugs.webkit.org/show_bug.cgi?id=206081
<rdar://problem/58486798>
Reviewed by Simon Fraser.
Make it clear that USE_ANGLE | USE_OPENGL | USE_OPENGL_ES are exclusive,
and that the availability of OpenGL ES 3 is a separate query.
.:
- Source/cmake/OptionsFTW.cmake:
- Source/cmake/OptionsWPE.cmake:
- Source/cmake/OptionsWinCairo.cmake:
Source/WebCore:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
Source/WTF:
- wtf/Platform.h:
- 9:31 AM Changeset in webkit [254399] by
-
- 13 edits2 deletes in trunk/LayoutTests
Import WPT test cases for 2dcontext/imagebitmap
https://bugs.webkit.org/show_bug.cgi?id=205908
Reviewed by Manuel Rego Casasnovas
LayoutTests/imported/w3c:
- web-platform-tests/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize-expected.txt:
- web-platform-tests/2dcontext/imagebitmap/canvas-createImageBitmap-video-resize.html:
- web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
- web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable.html:
- web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
- web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html:
- web-platform-tests/2dcontext/imagebitmap/no-coop-coep.https.window.html: Removed.
- web-platform-tests/2dcontext/imagebitmap/no-coop-coep.https.window.js: Removed.
- web-platform-tests/2dcontext/imagebitmap/w3c-import.log:
LayoutTests:
Update the expected files.
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
- 9:02 AM Changeset in webkit [254398] by
-
- 3 edits in trunk/LayoutTests
[LFC][Integration] fast/text/simple-lines-float.html should be about simple line layout only
https://bugs.webkit.org/show_bug.cgi?id=206129
Reviewed by Zalan Bujtas.
Explicitly disable LFC in this SLL feature test.
- fast/text/simple-lines-float-expected.html:
- fast/text/simple-lines-float.html:
- 6:57 AM Changeset in webkit [254397] by
-
- 11 edits in trunk
Add correct grandfathering functionality to the ITP database backend
https://bugs.webkit.org/show_bug.cgi?id=205844
<rdar://problem/58360450>
Reviewed by John Wilander.
Source/WebKit:
This patch adds functionality for grandfathering statistics upon
creation of a new ITP database file. The memory store relies on
the presence of the ITP plist to indicate whether the data should
be grandfathered. Since the database does not use a plist, this patch
adds a boolean variable to track whether the database file previously
existed or not to indicate when to grandfather.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::openITPDatabase):
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
The boolean variable m_isNewResourceLoadStatisticDatabaseFile is set
to true if the database file did not previously exist, indicating ITP
is being used for the first time and data should be grandfathered.
- NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::populateMemoryStoreFromDisk):
This is where the grandfathering happens. The call to logTestingEvent
is for API testing purposes only.
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
If a scheduleClearInMemoryAndPersistent is called, the plist is
deleted, and data will be grandfathered upon recreation. To mimic
this, the ITP database store is cleared and becomes "new" again, so
the boolean is set to true.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetIsITPDatabaseEnabled):
(WKPreferencesGetIsITPDatabaseEnabled):
- UIProcess/API/C/WKPreferencesRef.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _isITPDatabaseEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
In order to properly run the grandfathering
API tests, the 'isITPDatabaseEnabled' boolean needs to be exposed from
Web Preferences.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
The API tests rely on the ITP database flag being set correctly. Since
being on-by-default, the ITP database flag does not show up in the
user defaults menu if enabled. This patch fixes this by first checking
to see if the value is in the defaults menu, otherwise returning the
default preferences value. This ensures the preferences value matches
the actual store being initialized.
Tools:
In order to test both the ITP database and memory stores, this patch
had to restructure the grandfathering API tests.
If the test is for the database backend (ends in *Database), it will
check if the default store matches. If so, it continues on with the
normal test. If not, it has to use an API call to reconstruct the
new store and ensure the grandfathering still happens. Vice versa for
the memory store tests.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:
(isITPDatabaseEnabled):
(TEST):
- 12:27 AM Changeset in webkit [254396] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, suppress warnings in GCC, part 2
https://bugs.webkit.org/show_bug.cgi?id=202832
- bytecode/ArithProfile.h:
- 12:18 AM Changeset in webkit [254395] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, suppress warnings in GCC
https://bugs.webkit.org/show_bug.cgi?id=202832
- bytecode/ArithProfile.h:
- 12:07 AM Changeset in webkit [254394] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, fix RunLoopGeneric's RunLoop::cycle
- wtf/generic/RunLoopGeneric.cpp:
(WTF::RunLoop::cycle):
Jan 10, 2020:
- 10:54 PM Changeset in webkit [254393] by
-
- 3 edits1 add in trunk
[JSC] Flush old tables in End phase
https://bugs.webkit.org/show_bug.cgi?id=206120
<rdar://problem/58039989>
Reviewed by Mark Lam.
JSTests:
- stress/create-many-realms.js: Added.
(foo):
Source/JavaScriptCore:
stopThePeriphery is stopping compiler threads and main thread (mutator), which means making m_worldIsStopped = true.
It is not for stopping all heap threads including a concurrent marker. The concurrent collector can work while executing
stopThePeriphery. This means that concurrent collectors can access to the old StructureIDTable while it is destroyed
in stopThePeriphery. Destroying old StructureIDTable in GC End phase, this is appropriate phase that we can ensure no
other threads (accessing to heap) are working including concurrent markers, mutator, and compiler threads.
- heap/Heap.cpp:
(JSC::Heap::runEndPhase):
(JSC::Heap::stopThePeriphery):
- 9:32 PM Changeset in webkit [254392] by
-
- 23 edits in trunk
[Media in GPU process] Extend the GPU process sandbox to allow access to local files when necessary
https://bugs.webkit.org/show_bug.cgi?id=205967
<rdar://problem/58425020>
Reviewed by youenn fablet.
Source/WebKit:
No new tests, un-skipped existing tests that pass because of this change.
The GPU process sandbox does not allow access to local files so extend it before
attempting to open a file:// url, and revoke the extension when the file is closed.
- GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:
(WebKit::RemoteMediaPlayerManagerProxy::load):
- GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
- GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::load):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::openGPUProcessConnection):
- UIProcess/GPU/GPUProcessProxy.h:
- UIProcess/WebProcessProxy.cpp:
- UIProcess/WebProcessProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/GPUProcessConnection.h:
(WebKit::GPUProcessConnection::setAuditToken):
(WebKit::GPUProcessConnection::auditToken const):
- WebProcess/GPU/GPUProcessConnectionInfo.h:
(WebKit::GPUProcessConnectionInfo::encode const):
(WebKit::GPUProcessConnectionInfo::decode):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::prepareForPlayback):
(WebKit::MediaPlayerPrivateRemote::MediaPlayerPrivateRemote::load):
(WebKit::MediaPlayerPrivateRemote::cancelLoad):
(WebKit::MediaPlayerPrivateRemote::prepareToPlay):
(WebKit::MediaPlayerPrivateRemote::play):
(WebKit::MediaPlayerPrivateRemote::pause):
(WebKit::MediaPlayerPrivateRemote::setPreservesPitch):
(WebKit::MediaPlayerPrivateRemote::setVolumeDouble):
(WebKit::MediaPlayerPrivateRemote::setMuted):
(WebKit::MediaPlayerPrivateRemote::setPreload):
(WebKit::MediaPlayerPrivateRemote::setPrivateBrowsingMode):
(WebKit::MediaPlayerPrivateRemote::seek):
(WebKit::MediaPlayerPrivateRemote::seekWithTolerance):
(WebKit::MediaPlayerPrivateRemote::prepareForRendering):
(WebKit::MediaPlayerPrivateRemote::setSize):
(WebKit::MediaPlayerPrivateRemote::setVisible):
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenFrame):
(WebKit::MediaPlayerPrivateRemote::setVideoFullscreenGravity):
(WebKit::MediaPlayerPrivateRemote::acceleratedRenderingStateChanged):
(WebKit::MediaPlayerPrivateRemote::setShouldDisableSleep):
(WebKit::MediaPlayerPrivateRemote::requestResource):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp:
(WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache):
- WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::deleteRemoteMediaPlayer):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::originsInMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCache):
(WebKit::RemoteMediaPlayerManager::clearMediaCacheForOrigins):
(WebKit::RemoteMediaPlayerManager::gpuProcessConnection const):
- WebProcess/GPU/media/RemoteMediaPlayerManager.h:
(WebKit::RemoteMediaPlayerManager::parentProcess const):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureGPUProcessConnection):
LayoutTests:
- gpu-process/TestExpectations:
- 8:57 PM Changeset in webkit [254391] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Temporarily mark the navigator-language tests as flakey until I can figure out what to do with them.
Unreviewed.
- platform/mac/TestExpectations:
- 7:17 PM Changeset in webkit [254390] by
-
- 4 edits in trunk
Object.keys should throw if called on module namespace object with uninitialized binding
https://bugs.webkit.org/show_bug.cgi?id=205983
Reviewed by Yusuke Suzuki.
JSTests:
- test262/expectations.yaml: Mark 2 test cases as passing.
Source/JavaScriptCore:
If JSModuleNamespaceObject::getOwnPropertyNames method is called by
Object.keys or for/in loop, it should invoke GetOwnProperty on
every binding so a ReferenceError is thrown if the binding is uninitialized.
Complete call stack of internal methods and abstract ops is in "info" meta of
JSTests/test262/test/language/module-code/namespace/internals/object-keys-binding-uninit.js
- runtime/JSModuleNamespaceObject.cpp:
(JSC::JSModuleNamespaceObject::getOwnPropertyNames):
- 7:05 PM Changeset in webkit [254389] by
-
- 11 edits41 adds1 delete in trunk
REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
https://bugs.webkit.org/show_bug.cgi?id=200043
Source/WTF:
<rdar://problem/44119496>
Reviewed by Dean Jackson.
We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
in this way.
Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
minimize the entropy revealed.
- WTF.xcodeproj/project.pbxproj:
- wtf/Language.h:
- wtf/Platform.h:
- wtf/PlatformMac.cmake:
- wtf/cf/LanguageCF.cpp:
(WTF::httpStyleLanguageCode):
(WTF::platformUserPreferredLanguages):
- wtf/cocoa/LanguageCocoa.mm: Added.
(WTF::minimizedLanguagesFromLanguages):
- wtf/spi/cocoa/NSLocaleSPI.h: Added.
Tools:
Reviewed by Dean Jackson.
Migrate system language tests to LayoutTests, to match the rest of our system language tests.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Removed.
LayoutTests:
<rdar://problem/44119496>
Reviewed by Dean Jackson.
Migrate and update tests from TestWebKitAPI to LayoutTests, to match the rest of our system language tests.
- platform/mac/TestExpectations: Mark these tests as possibly failing on older versions of macOS.
- fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-en-GB.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-en-US.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-en.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-419.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-ES.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-MX.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-es.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-fr.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-hi.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ja.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-ru.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt: Added.
- fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html: Added.
- js/dom/navigator-language-expected.txt:
- 6:49 PM Changeset in webkit [254388] by
-
- 3 edits in trunk/Source/WebCore
[LFC] TableFormattingContext::layoutTableCellBox should take HorizontalConstraints
https://bugs.webkit.org/show_bug.cgi?id=206075
<rdar://problem/58483791>
Reviewed by Antti Koivisto.
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::layoutInFlowContent):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
- layout/tableformatting/TableFormattingContext.h:
- 6:32 PM Changeset in webkit [254387] by
-
- 10 edits1 add in trunk
[iOS] Audio from non-frontmost tab continues when app is backgrounded
https://bugs.webkit.org/show_bug.cgi?id=206101
<rdar://problem/58089916>
Reviewed by Eric Carlson.
Source/WebKit:
Tests: WKWebViewPausePlayingAudioTests.InWindow
WKWebViewPausePlayingAudioTests.OutOfWindow
The ApplicationStateTracker will only send notifications about application state to
WebPageProxies when those proxies' views are actually in-window. Add a separate application
state observer strictly for media which fires only when application state notifications are
received while the view is not in-window.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView _applicationDidEnterBackground:]):
(-[WKContentView _applicationWillEnterForeground:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidEnterBackgroundForMedia):
(WebKit::WebPageProxy::applicationWillEnterForegroundForMedia):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackgroundForMedia):
(WebKit::WebPage::applicationWillEnterForegroundForMedia):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/WKWebViewPausePlayingAudioTests.mm: Added.
(TestWebKitAPI::autoplayingConfiguration):
(TestWebKitAPI::TEST):
- 5:52 PM Changeset in webkit [254386] by
-
- 3 edits in trunk/LayoutTests
Make http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins* use resource/util.js
https://bugs.webkit.org/show_bug.cgi?id=206100
<rdar://problem/58492335>
Unreviewed test gardening.
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins-database.html:
- http/tests/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
These two tests now use setEnableFeature() in resources/util.js which makes sure
testRunner.setStatisticsNotifyPagesWhenDataRecordsWereScanned() is called with
false before ending the test.
- 5:29 PM Changeset in webkit [254385] by
-
- 2 edits in trunk/LayoutTests
3 editing/spelling test failures on Mojave Release WK1
https://bugs.webkit.org/show_bug.cgi?id=206071
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Update test expectations to disable failing tests.
- 5:27 PM Changeset in webkit [254384] by
-
- 16 edits in trunk/Source
Introduce ENABLE_META_VIEWPORT and use it in some WK2 code
https://bugs.webkit.org/show_bug.cgi?id=206091
Reviewed by Tim Horton.
Source/WebCore:
didDispatchViewportPropertiesChanged() is used for a Coordinated Graphics assertion, so
should be #if ASSERT_ENABLED rather than #ifndef NDEBUG.
- dom/Document.cpp:
(WebCore::Document::updateViewportArguments):
(WebCore::Document::suspend):
- dom/Document.h:
Source/WebKit:
Use ENABLE(META_VIEWPORT) rather than PLATFORM(IOS_FAMILY) to enable various
bits of viewport-related code.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ViewportArguments>::decode):
(IPC::ArgumentCoder<ViewportAttributes>::encode):
(IPC::ArgumentCoder<ViewportAttributes>::decode):
- Shared/WebCoreArgumentCoders.h:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h:
- UIProcess/API/C/WKPage.cpp:
(WKPageSetIgnoresViewportScaleLimits):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didCommitLoad):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::viewportConfiguration const):
Source/WTF:
Define ENABLE_META_VIEWPORT for iOS.
- wtf/FeatureDefines.h:
- 5:06 PM Changeset in webkit [254383] by
-
- 6 edits in trunk
Python3: Support Source/WebKit/Scripts/webkit
https://bugs.webkit.org/show_bug.cgi?id=206078
Reviewed by Stephanie Lewis.
Source/WebKit:
Covered by existing unit tests.
- Scripts/webkit/LegacyMessages-expected.h: Sort forward declarations.
- Scripts/webkit/Messages-expected.h: Ditto.
- Scripts/webkit/messages.py: Sort printed outputs.
Tools:
- Scripts/test-webkitpy-python3: Call test-webkitpy with Python 3 since
everything is now compatible.
- 4:48 PM Changeset in webkit [254382] by
-
- 3 edits in trunk/Tools
webkit-patch crashes when creating new bug with Python 3
https://bugs.webkit.org/show_bug.cgi?id=205911
Reviewed by Stephanie Lewis.
- Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(BugzillaQueries.is_invalid_bugzilla_email): Decode page before applying regex.
(Bugzilla.authenticate): Decode group before printing.
(Bugzilla._parse_attachment_id_from_add_patch_to_bug_response): Ensure HTML response
Is a string before applying the regex.
(Bugzilla._check_create_bug_response): Ditto.
- Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py: Attachment ID should be a string,
not a byte array.
- 4:45 PM Changeset in webkit [254381] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Remove reporting for some well-understood sandbox rules
https://bugs.webkit.org/show_bug.cgi?id=206111
Reviewed by Per Arne Vollan.
Remove sandbox rules designed to generate reporting about resource use for some well-understood
items that are frequently hit in WebKit use.
No new tests. No change in behavior.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 4:32 PM Changeset in webkit [254380] by
-
- 2 edits in trunk/Source/WebCore
[LFC] Add missing escape reason to BlockFormattingContext::Quirks::stretchedInFlowHeight
https://bugs.webkit.org/show_bug.cgi?id=206076
<rdar://problem/58483919>
Reviewed by Antti Koivisto.
This is also a valid formatting context escape.
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::BlockFormattingContext::Quirks::stretchedInFlowHeight):
- 4:21 PM Changeset in webkit [254379] by
-
- 5 edits in trunk
[iOS] Remove used media-related mach services from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206089
<rdar://problem/58489478>
Reviewed by Per Arne Vollan.
After conducting multiple test passes and large-scale living-on testing with telemetry, we have
confirmed that the following XPC services are not used by the media logic in WebKit, and can be
removed:
com.apple.coremedia.cpeprotector.xpc
com.apple.coremedia.figcontentkeysession.xpc
com.apple.coremedia.routingsessionmanager.xpc
com.apple.coremedia.sts
Source/WebKit:
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 4:13 PM Changeset in webkit [254378] by
-
- 7 edits2 adds in trunk
[LFC][Integration] Update style for layout boxes
https://bugs.webkit.org/show_bug.cgi?id=206074
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: fast/css/simple-color-change.html
For simple style changes we may keep the existing layout boxes. In this case we need to update the style.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateStyle):
Update style in layout boxes.
(WebCore::LayoutIntegration::LineLayout::rootLayoutBox):
- layout/integration/LayoutIntegrationLineLayout.h:
Make root non-const.
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::nextSibling):
- layout/layouttree/LayoutContainer.h:
Expose non-const accessors.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::styleDidChange):
Invoke LineLayout::updateStyle
LayoutTests:
- fast/css/simple-color-change-expected.html: Added.
- fast/css/simple-color-change.html: Added.
- 4:01 PM Changeset in webkit [254377] by
-
- 1 copy in tags/Safari-608.5.11
Tag Safari-608.5.11.
- 4:00 PM Changeset in webkit [254376] by
-
- 5 edits in trunk
[iOS] Remove 'com.apple.awdd' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206095
<rdar://problem/56871147>
Reviewed by Per Arne Vollan.
We no longer need access to 'com.apple.awdd' in the iOS WebContent sandbox. We should remove
it from the sandbox.
Source/WebKit:
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 3:59 PM Changeset in webkit [254375] by
-
- 1 copy in tags/Safari-608.5.7.3.2
Tag Safari-608.5.7.3.2.
- 3:48 PM Changeset in webkit [254374] by
-
- 2 edits in trunk/Source/WebCore
Resource Load Statistics: Align WebCore::NetworkStorageSession's m_thirdPartyCookieBlockingMode init value with r254239
https://bugs.webkit.org/show_bug.cgi?id=206082
<rdar://problem/58487498>
Unreviewed minor, follow-up fix.
- platform/network/NetworkStorageSession.h:
The init value of m_thirdPartyCookieBlockingMode was changed to
ThirdPartyCookieBlockingMode::All to align it with r254239.
- 3:39 PM Changeset in webkit [254373] by
-
- 17 edits4 adds in trunk
Map CSS value ID to system color in the UI process
https://bugs.webkit.org/show_bug.cgi?id=204314
Reviewed by Dean Jackson.
Source/WebCore:
Currently, RenderThemeIOS is mapping CSS value IDs to system colors in the WebContent process. This mapping leads to
invoking selectors on UITraitCollection and UIColor, which will send messages to the runningboard daemon. Since we
will be blocking access to this daemon in the WebContent process, this mapping should be moved to the UI process.
The UI process will create a mapping between CSS value IDs and system colors, and pass it to the WebContent process.
Test: fast/css/ios/system-color-for-css-value.html
- WebCore.xcodeproj/project.pbxproj:
- css/StyleColor.h:
- css/parser/CSSPropertyParser.h:
- rendering/CSSValueKey.h: Added.
(WebCore::operator==):
(WebCore::CSSValueKey::encode const):
(WebCore::CSSValueKey::decode):
(WebCore::CSSValueKey::hash const):
(WTF::CSSValueKeyHash::hash):
(WTF::CSSValueKeyHash::equal):
(WTF::HashTraits<WebCore::CSSValueKey>::emptyValue):
(WTF::HashTraits<WebCore::CSSValueKey>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSValueKey>::isDeletedValue):
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::cssValueIDSelectorList):
(WebCore::systemColorFromCSSValueID):
(WebCore::globalCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::getOrCreateCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::setCSSValueToSystemColorMap):
(WebCore::RenderThemeIOS::systemColor const):
- testing/Internals.cpp:
(WebCore::Internals::systemColorForCSSValue):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Create mapping between CSS value IDs and system colors in the UI process and send to the WebContent process
on process startup.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
LayoutTests:
- TestExpectations:
- fast/css/ios: Added.
- fast/css/ios/system-color-for-css-value-expected.txt: Added.
- fast/css/ios/system-color-for-css-value.html: Added.
- platform/ios/TestExpectations:
- 3:29 PM Changeset in webkit [254372] by
-
- 3 edits in trunk/LayoutTests
[WPE][GTK] Gardening after r254357
https://bugs.webkit.org/show_bug.cgi?id=206079
Unreviewed WPE and GTK+ gardening after r254357.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 3:13 PM Changeset in webkit [254371] by
-
- 2 edits in trunk/Source/WebCore
[LFC][Integration] Fix accessibility/deleting-iframe-destroys-axcache.html and accessibility/div-within-anchors-causes-crash.html
https://bugs.webkit.org/show_bug.cgi?id=206072
Reviewed by Zalan Bujtas.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::lineCount const):
We may have a line layout with 0 runs but 1 line. In these cases line count must return 0
to match other systems.
- 2:52 PM Changeset in webkit [254370] by
-
- 2 edits in trunk/Source/WebKit
Gardening: simple build fix after r254119.
Not reviewed.
We should be using ASSERT_ENABLED instead of ASSERT_DSIABLED.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::sendRequestCallback):
- 2:48 PM Changeset in webkit [254369] by
-
- 1 copy in tags/Safari-609.1.14
Tag Safari-609.1.14.
- 2:48 PM Changeset in webkit [254368] by
-
- 1 delete in tags/Safari-609.1.14
Delete tag.
- 2:38 PM Changeset in webkit [254367] by
-
- 3 edits in trunk/Tools
Fix test assertions after r254345
https://bugs.webkit.org/show_bug.cgi?id=206037
There were two assertions being hit in the new tests:
- Beacon sends POST requests, so the HTTP server that receives them needs to be able to handle POST requests.
- There was an assertion in the destructor of NetworkResourceLoader because we were destroying a WKWebView during a sync xhr.
This isn't a problem in practice, but we may as well wait for the sync xhr to finish before completing the test so we can
keep the sync xhr assertion, which is useful to prevent hangs.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
(-[TestUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::HTTPServer::respondToRequests):
- 2:21 PM Changeset in webkit [254366] by
-
- 5 edits in trunk
[iOS] Remove 'com.apple.powerlog.plxpclogger.xpc' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206086
<rdar://problem/57195681>
Reviewed by Per Arne Vollan.
Source/WebKit:
Telemetry and testing have confirmed that we no longer need a mach connection to the
'com.apple.powerlog.plxpclogger.xpc' service. We should remove it from the WebContent process sandbox.
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 2:17 PM Changeset in webkit [254365] by
-
- 6 edits in trunk
Remove 'com.apple.iohideventsystem' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206085
<rdar://problem/36085204>
Reviewed by Alex Christensen.
After r253357 we no longer need access to 'com.apple.iohideventsystem', and should remove it from
the WebContent process sandbox.
Source/WebKit:
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 1:38 PM Changeset in webkit [254364] by
-
- 5 edits in trunk
[iOS] Remove 'com.apple.cookied' from the WebContent process sandbox
https://bugs.webkit.org/show_bug.cgi?id=206083
<rdar://problem/56963865>
Reviewed by Per Arne Vollan.
Telemetry and testing have confirmed that we no longer use the 'com.apple.cookied' mach connection
in the WebContent process on iOS. We should remove this from the WebContent process sandbox
Source/WebKit:
Tested by fast/sandbox/ios/sandbox-mach-lookup.html.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 12:39 PM Changeset in webkit [254363] by
-
- 6 edits in trunk
Remove com.apple.locationd.registration from the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=206021
<rdar://problem/58451384>
Reviewed by Per Arne Vollan.
Now that we generate a dynamic extension for 'com.apple.locationd.registration', we should remove
the blanket allow rule from the sandbox.
Source/WebKit:
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 12:32 PM Changeset in webkit [254362] by
-
- 3 edits2 adds in branches/safari-609-branch
Revert "Revert "Cherry-pick r254301. rdar://problem/58346124""
- 11:56 AM Changeset in webkit [254361] by
-
- 2 edits in trunk/Source/WebKit
Clean up -[WKWebView _didCommitLayerTree:]
https://bugs.webkit.org/show_bug.cgi?id=206049
Reviewed by Tim Horton.
In preparation for sharing more of this code with macOS, factors parts of -[WKWebView _didCommitLayerTree:]
into new functions.
Also pull out part of -[WKWebView _updateVisibleContentRects] into its own function.
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _trackTransactionCommit:]):
(-[WKWebView _updateScrollViewForTransaction:]):
(-[WKWebView _restoreScrollAndZoomStateForTransaction:]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _allowsDoubleTapGestures]):
(-[WKWebView currentlyVisibleContentInsetsWithScale:obscuredInsets:]):
(-[WKWebView _updateVisibleContentRects]):
(areEssentiallyEqualAsFloat): Deleted.
- 11:56 AM Changeset in webkit [254360] by
-
- 7 edits4 adds in trunk/Source/WebKit
[macOS UI-side compositing] Introduce WKScrollView and WKContentView for macOS
https://bugs.webkit.org/show_bug.cgi?id=206042
Reviewed by Tim Horton.
Add WKScrollViewMac and WKWebViewMac, with bare-bones implementations. WKScrollViewMac
has a WKScrollViewDelegate to make it more iOS-like, to avoid clients having to register
boundsDidChange notifications, and WKWebView on macOS becomes the delegate.
These views are only created when UI-side compositing is enabled.
- SourcesCocoa.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- UIProcess/API/Cocoa/WKWebViewInternal.h:
- UIProcess/API/mac/WKContentViewMac.h: Added.
- UIProcess/API/mac/WKContentViewMac.mm: Added.
(-[WKContentView initWithFrame:page:]):
(-[WKContentView isFlipped]):
(-[WKContentView _setAcceleratedCompositingRootLayer:]):
- UIProcess/API/mac/WKScrollViewMac.h: Added.
- UIProcess/API/mac/WKScrollViewMac.mm: Added.
(+[WKScrollView isCompatibleWithResponsiveScrolling]):
(-[WKScrollView initWithFrame:]):
(-[WKScrollView dealloc]):
(-[WKScrollView delegate]):
(-[WKScrollView setDelegate:]):
(-[WKScrollView contentOffset]):
(-[WKScrollView boundsDidChange:]):
(-[WKScrollView setContentInsets:]):
- UIProcess/API/mac/WKWebViewMac.h:
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView scrollViewContentInsetsDidChange:]):
(-[WKWebView _setupScrollAndContentViews]):
- UIProcess/ios/WebPageProxyIOS.mm:
- WebKit.xcodeproj/project.pbxproj:
- 11:36 AM Changeset in webkit [254359] by
-
- 5 edits in trunk/Tools
[GTK][WPE] EWS should not wipe the JHBuild in the unapply patch step
https://bugs.webkit.org/show_bug.cgi?id=206061
Reviewed by Aakash Jain.
The current unapply patch step on the EWS calls the script clean-webkit, which wipes everything.
Rebuilding the JHBuild takes around 30 minutes, even with ccache.
And its not needed to wipe the JHBuild directories on the clean-webkit step, because the WebKit
tooling for building the JHBuild (update-webkitgtk-libs) already detects when the moduleset has
been modified and wipes it when necessary.
This patch adds the optional argument --keep-jhbuild-directory to the script clean-webkit,
that the EWS will pass when doing the unapply patch step for platform GTK or WPE.
- BuildSlaveSupport/ews-build/steps.py:
(CleanWorkingDirectory.start):
- Scripts/clean-webkit:
(main):
- Scripts/webkitpy/common/checkout/scm/scm.py:
(SCM.discard_untracked_files):
- Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
- 11:32 AM Changeset in webkit [254358] by
-
- 3 edits2 adds in branches/safari-608.5.7.3-branch
Cherry-pick r254301. rdar://problem/58480222
REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>
Reviewed by Youenn Fablet.
Source/WebCore:
The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.
Test: fast/url/data-url-large.html.
- page/SecurityOrigin.cpp:
LayoutTests:
- fast/url/data-url-large-expected.txt: Added.
- fast/url/data-url-large.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:16 AM Changeset in webkit [254357] by
-
- 2 edits in trunk/Tools
Build fix for builds without libwebrtc's BoringSSL.
https://bugs.webkit.org/show_bug.cgi?id=206037
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
- 11:06 AM Changeset in webkit [254356] by
-
- 20 edits in trunk
[WebAuthn] Support authenticatorGetNextAssertion
https://bugs.webkit.org/show_bug.cgi?id=203346
<rdar://problem/56558488>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by new tests within existing test files.
- Modules/webauthn/AuthenticatorAssertionResponse.h:
(WebCore::AuthenticatorAssertionResponse::setName):
(WebCore::AuthenticatorAssertionResponse::name const):
(WebCore::AuthenticatorAssertionResponse::setDisplayName):
(WebCore::AuthenticatorAssertionResponse::displayName const):
(WebCore::AuthenticatorAssertionResponse::setNumberOfCredentials):
(WebCore::AuthenticatorAssertionResponse::numberOfCredentials const):
Adds new members to store new fields of the response from the authenticator. Field "icon"
is omitted given it could be used to track users according to https://github.com/w3c/webauthn/issues/1285.
- Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::readCTAPGetAssertionResponse):
Adds new logic to parse above fields from an authenticator response.
Source/WebKit:
This patch implements authenticatorGetNextAssertion as suggested by the spec:
https://fidoalliance.org/specs/fido-v2.0-ps-20190130/fido-client-to-authenticator-protocol-v2.0-ps-20190130.html#authenticatorGetNextAssertion
The work flow is as follow:
1) When a valid assertion response is received, check its numberOfCredentials member;
2) When it is larger then 1, use authenticatorGetNextAssertion to get all remaining responses;
3) Once all responses are gathered, ask UI clients to pick one to return.
- UIProcess/API/APIWebAuthenticationPanelClient.h:
(API::WebAuthenticationPanelClient::selectAssertionResponses const):
- UIProcess/WebAuthentication/Authenticator.h:
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::selectAssertionResponses):
- UIProcess/WebAuthentication/AuthenticatorManager.h:
- UIProcess/WebAuthentication/Mock/MockHidConnection.cpp:
(WebKit::MockHidConnection::parseRequest):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::continueGetAssertionAfterResponseReceived):
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.h:
Tools:
- TestWebKitAPI/Tests/WebCore/CtapResponseTest.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebCore/FidoTestData.h:
Adds new test case for new logic in DeviceResponseConverter.
LayoutTests:
- http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-failure-hid.https.html:
- http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
- http/wpt/webauthn/public-key-credential-get-success-hid.https.html:
- http/wpt/webauthn/resources/util.js:
- 11:02 AM Changeset in webkit [254355] by
-
- 7 edits in branches/safari-608.5.7.3-branch/Source
Versioning.
- 10:56 AM Changeset in webkit [254354] by
-
- 7 edits in branches/safari-608.5.0.2-branch/Source
Versioning.
- 10:55 AM Changeset in webkit [254353] by
-
- 3 edits2 adds in branches/safari-608-branch
Cherry-pick r254301. rdar://problem/58467176
REGRESSION (r253662): Large Data URLs are not being handled properly
https://bugs.webkit.org/show_bug.cgi?id=205979
<rdar://problem/58346124>
Reviewed by Youenn Fablet.
Source/WebCore:
The URL size limitation added in r253662 was too low. We should bump it to handle
reasonable data URI sizes.
Test: fast/url/data-url-large.html.
- page/SecurityOrigin.cpp:
LayoutTests:
- fast/url/data-url-large-expected.txt: Added.
- fast/url/data-url-large.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:54 AM Changeset in webkit [254352] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 10:54 AM Changeset in webkit [254351] by
-
- 10 edits in trunk
Remove 'com.apple.nehelper' from the WebContent sandbox.
https://bugs.webkit.org/show_bug.cgi?id=206025
<rdar://problem/58453508>
Reviewed by Per Arne Vollan.
Now that we generate a dynamic extension for 'com.apple.nehelper' and 'com.apple.nesessionmanager.content-filter',
we should remove the blanket allow rules from the sandbox.
Tests: fast/sandbox/ios/sandbox-mach-lookup.html, fast/sandbox/mac/sandbox-mach-lookup.html
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 10:50 AM Changeset in webkit [254350] by
-
- 4 edits in trunk/Source/WebCore
[WebGL] Add all remaining WebGL2 implementation functions to GraphicsContextGL
https://bugs.webkit.org/show_bug.cgi?id=206038
<rdar://problem/58459051>
Reviewed by Simon Fraser.
Add stubs for all the GraphicsContextGL methods that will be
necessary to implement WebGL2.
While here, rearrange the header file to mirror the way
WebGL2RenderingContext orders the methods, and mark all the
GraphicsContextGLOpenGL methods as final (rather than override).
- platform/graphics/GraphicsContextGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- platform/graphics/opengl/GraphicsContextGLOpenGLCommon.cpp:
(WebCore::GraphicsContextGLOpenGL::bufferData):
(WebCore::GraphicsContextGLOpenGL::bufferSubData):
(WebCore::GraphicsContextGLOpenGL::copyBufferSubData):
(WebCore::GraphicsContextGLOpenGL::getBufferSubData):
(WebCore::GraphicsContextGLOpenGL::mapBufferRange):
(WebCore::GraphicsContextGLOpenGL::unmapBuffer):
(WebCore::GraphicsContextGLOpenGL::blitFramebuffer):
(WebCore::GraphicsContextGLOpenGL::framebufferTextureLayer):
(WebCore::GraphicsContextGLOpenGL::invalidateFramebuffer):
(WebCore::GraphicsContextGLOpenGL::invalidateSubFramebuffer):
(WebCore::GraphicsContextGLOpenGL::readBuffer):
(WebCore::GraphicsContextGLOpenGL::getInternalformativ):
(WebCore::GraphicsContextGLOpenGL::renderbufferStorageMultisample):
(WebCore::GraphicsContextGLOpenGL::texStorage2D):
(WebCore::GraphicsContextGLOpenGL::texStorage3D):
(WebCore::GraphicsContextGLOpenGL::texImage3D):
(WebCore::GraphicsContextGLOpenGL::texSubImage3D):
(WebCore::GraphicsContextGLOpenGL::copyTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage3D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage3D):
(WebCore::GraphicsContextGLOpenGL::getFragDataLocation):
(WebCore::GraphicsContextGLOpenGL::uniform1ui):
(WebCore::GraphicsContextGLOpenGL::uniform2ui):
(WebCore::GraphicsContextGLOpenGL::uniform3ui):
(WebCore::GraphicsContextGLOpenGL::uniform4ui):
(WebCore::GraphicsContextGLOpenGL::uniform1uiv):
(WebCore::GraphicsContextGLOpenGL::uniform2uiv):
(WebCore::GraphicsContextGLOpenGL::uniform3uiv):
(WebCore::GraphicsContextGLOpenGL::uniform4uiv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3x4fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4x3fv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4i):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4iv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4ui):
(WebCore::GraphicsContextGLOpenGL::vertexAttribI4uiv):
(WebCore::GraphicsContextGLOpenGL::vertexAttribIPointer):
(WebCore::GraphicsContextGLOpenGL::drawRangeElements):
(WebCore::GraphicsContextGLOpenGL::drawBuffers):
(WebCore::GraphicsContextGLOpenGL::clearBufferiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferuiv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfv):
(WebCore::GraphicsContextGLOpenGL::clearBufferfi):
(WebCore::GraphicsContextGLOpenGL::createQuery):
(WebCore::GraphicsContextGLOpenGL::deleteQuery):
(WebCore::GraphicsContextGLOpenGL::isQuery):
(WebCore::GraphicsContextGLOpenGL::beginQuery):
(WebCore::GraphicsContextGLOpenGL::endQuery):
(WebCore::GraphicsContextGLOpenGL::getQuery):
(WebCore::GraphicsContextGLOpenGL::glGetQueryObjectuiv):
(WebCore::GraphicsContextGLOpenGL::createSampler):
(WebCore::GraphicsContextGLOpenGL::deleteSampler):
(WebCore::GraphicsContextGLOpenGL::isSampler):
(WebCore::GraphicsContextGLOpenGL::bindSampler):
(WebCore::GraphicsContextGLOpenGL::samplerParameteri):
(WebCore::GraphicsContextGLOpenGL::samplerParameterf):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameterfv):
(WebCore::GraphicsContextGLOpenGL::getSamplerParameteriv):
(WebCore::GraphicsContextGLOpenGL::fenceSync):
(WebCore::GraphicsContextGLOpenGL::isSync):
(WebCore::GraphicsContextGLOpenGL::deleteSync):
(WebCore::GraphicsContextGLOpenGL::clientWaitSync):
(WebCore::GraphicsContextGLOpenGL::waitSync):
(WebCore::GraphicsContextGLOpenGL::getSynciv):
(WebCore::GraphicsContextGLOpenGL::createTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::deleteTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::isTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::beginTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::endTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::transformFeedbackVaryings):
(WebCore::GraphicsContextGLOpenGL::getTransformFeedbackVarying):
(WebCore::GraphicsContextGLOpenGL::pauseTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::resumeTransformFeedback):
(WebCore::GraphicsContextGLOpenGL::bindBufferBase):
(WebCore::GraphicsContextGLOpenGL::bindBufferRange):
(WebCore::GraphicsContextGLOpenGL::getUniformIndices):
(WebCore::GraphicsContextGLOpenGL::getActiveUniforms):
(WebCore::GraphicsContextGLOpenGL::getUniformBlockIndex):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockiv):
(WebCore::GraphicsContextGLOpenGL::getActiveUniformBlockName):
(WebCore::GraphicsContextGLOpenGL::uniformBlockBinding):
(WebCore::GraphicsContextGLOpenGL::texImage2D):
(WebCore::GraphicsContextGLOpenGL::texSubImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexImage2D):
(WebCore::GraphicsContextGLOpenGL::compressedTexSubImage2D):
(WebCore::GraphicsContextGLOpenGL::uniform1fv):
(WebCore::GraphicsContextGLOpenGL::uniform2fv):
(WebCore::GraphicsContextGLOpenGL::uniform3fv):
(WebCore::GraphicsContextGLOpenGL::uniform4fv):
(WebCore::GraphicsContextGLOpenGL::uniform1iv):
(WebCore::GraphicsContextGLOpenGL::uniform2iv):
(WebCore::GraphicsContextGLOpenGL::uniform3iv):
(WebCore::GraphicsContextGLOpenGL::uniform4iv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix2fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix3fv):
(WebCore::GraphicsContextGLOpenGL::uniformMatrix4fv):
(WebCore::GraphicsContextGLOpenGL::readPixels):
- 10:49 AM Changeset in webkit [254349] by
-
- 3 edits4 adds in trunk
ObjectAllocationSinkingPhase doesn't model pointers to allocations in control flow properly
https://bugs.webkit.org/show_bug.cgi?id=204738
<rdar://problem/57553238>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/allocation-sinking-must-model-allocation-pointers-properly-2.js: Added.
(assert):
(v9):
- stress/allocation-sinking-must-model-allocation-pointers-properly-3.js: Added.
(assert):
(v9):
- stress/allocation-sinking-must-model-allocation-pointers-properly-4.js: Added.
(bool):
(effects):
(escape):
(bar):
- stress/allocation-sinking-must-model-allocation-pointers-properly.js: Added.
(alwaysFalse):
(sometimesZero):
(assert):
(v9):
Source/JavaScriptCore:
Allocation sinking phase conducts a points to analysis. It uses this
information for programs like:
`
1: NewObject
2: NewObject
3: PutByOffset(@2, @1, "x")
4: GetByOffset(@2, "x")
`
It solves the points to problem knowing @4 points to @1.
It tracks this data in the LocalHeap data structure. This is used to track
the heap across blocks, and it includes a merge function to handle control
flow merges. However, this merge function would not always merge the pointer
sets together. It sometimes would merge them together, since it had a fast
path check inside merge, which would just copy the contents of the block to be
merged with itself if it were this block's first time merging. This fast path happened
to hide the bug in general case merge code. If we didn't take this fast path,
we would just never transfer pointer sets from predecessor to successor. This
could lead to all kinds of issues, including using the incorrect phantom node
in IR instead of its materialized version. It could also lead to the phase not
sinking objects it is capable of sinking.
This patch makes it so that we merge together the pointer sets. We always add
new pointers to the set. So in pointer A->B, if the set has yet to see A, we
add it. If the set already contains pointer A->B, and we encounter a new
pointer A->C, or if we encounter a merge without any A->* pointer, we mark
the A pointer as top, marking it A->TOP. We do this to ensure that we fixpoint.
We're guaranteed that m_pointers is monotonically increasing (module liveness
pruning, which is a constant). And once something is TOP, it never becomes
anything else. (Instead of marking a pointer top, we used to just remove it
from the set, but this has issues, as it could lead to us ping-ponging in
our fixpoint analysis, add, remove, add, remove, etc.)
So the merge rules are:
{A->B} merge {A->B} => {A->B}
{A->B} merge {A->C} => {A->TOP}
{A->B} merge {A->TOP} => {A->TOP}
{A->B} merge {} => {A->TOP}
Thanks to Samuel Groß of Google Project Zero for identifying this bug.
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- 10:48 AM Changeset in webkit [254348] by
-
- 1 edit3 deletes in trunk/WebKitLibraries
WebKitLibraries: Remove old private framework stubs
https://bugs.webkit.org/show_bug.cgi?id=206067
<rdar://problem/58479518>
Reviewed by Alexey Proskuryakov.
- WebKitPrivateFrameworkStubs/iOS/10: Removed.
- WebKitPrivateFrameworkStubs/iOS/11: Removed.
- WebKitPrivateFrameworkStubs/iOS/12: Removed.
- 10:32 AM Changeset in webkit [254347] by
-
- 2 edits in trunk/Source/WebKit
Silence compiler warning
https://bugs.webkit.org/show_bug.cgi?id=206070
Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-01-10
Reviewed by Chris Dumez.
Silence compiler by using the proper formatter for log out.
No functional changes.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didReceiveMessage):
- 10:14 AM Changeset in webkit [254346] by
-
- 2 edits in trunk/Tools
Python 3: Add support to run-webkit-tests (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=205291
Unreviewed follow-up fix.
- Scripts/webkitpy/port/port_testcase.py:
(PortTestCase.test_diff_image): Diff output is byte array, not string.
(PortTestCase.test_diff_image_failed): Ditto.
(PortTestCase.test_diff_image_crashed): Ditto.
- 10:06 AM Changeset in webkit [254345] by
-
- 27 edits6 adds in trunk
Expand _WKResourceLoadDelegate callbacks
https://bugs.webkit.org/show_bug.cgi?id=206037
Source/WebKit:
<rdar://problem/57132290>
Reviewed by Youenn Fablet.
Add 5 informative delegate callbacks at these times during the loading process:
- When a request is sent.
- When a redirect happens.
- When a challenge happens.
- When a response is received.
- When loading completes or fails.
As mentioned in r254183 these callbacks are only called when a _WKResourceLoadDelegate is given to a WKWebView.
We add a new struct ResourceLoadInfo which will need to be expanded containing currently only the load identifier.
Covered by new API tests which verify the validity of the sent information.
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
- NetworkProcess/NetworkLoadClient.h:
(WebKit::NetworkLoadClient::didReceiveChallenge):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::generateResourceLoadID):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::resourceLoadInfo):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didReceiveChallenge):
Add a way to send a message informing that a challenge happened with information gathered from the NetworkResourceLoader,
which previously was not informed of challenges because the challenges went directly from the NetworkLoad to the AuthenticationManager.
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::m_shouldCaptureExtraNetworkLoadMetrics): Deleted.
- NetworkProcess/NetworkResourceLoader.h:
- Shared/API/APIObject.h:
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- Shared/ResourceLoadInfo.h: Added.
(WebKit::ResourceLoadInfo::encode const):
(WebKit::ResourceLoadInfo::decode):
- SourcesCocoa.txt:
- UIProcess/API/APIResourceLoadClient.h:
- UIProcess/API/APIResourceLoadInfo.h: Added.
- UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
- UIProcess/API/Cocoa/_WKResourceLoadInfo.h: Added.
- UIProcess/API/Cocoa/_WKResourceLoadInfo.mm: Added.
(-[_WKResourceLoadInfo dealloc]):
(-[_WKResourceLoadInfo resourceLoadID]):
(-[_WKResourceLoadInfo _apiObject]):
- UIProcess/API/Cocoa/_WKResourceLoadInfoInternal.h: Added.
- UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
An AuthenticationChallengeProxy was only used for challenges that needed credentials, so they wrapped a CompletionHandler.
This new type of informative-only challenge will be given a null CompletionHandler, which means no action can be taken.
- UIProcess/Cocoa/ResourceLoadDelegate.h:
- UIProcess/Cocoa/ResourceLoadDelegate.mm:
(WebKit::ResourceLoadDelegate::setDelegate):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didSendRequest const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didPerformHTTPRedirection const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveChallenge const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didReceiveResponse const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::didCompleteWithError const):
(WebKit::ResourceLoadDelegate::ResourceLoadClient::willSendRequest const): Deleted.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::resourceLoadDidSendRequest):
(WebKit::NetworkProcessProxy::resourceLoadDidPerformHTTPRedirection):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveChallenge):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveResponse):
(WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError):
(WebKit::NetworkProcessProxy::pageWillSendRequest): Deleted.
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::startPingLoad):
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::willSendRequest):
Tools:
Reviewed by Youenn Fablet.
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
(-[TestResourceLoadDelegate webView:resourceLoad:didSendRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didPerformHTTPRedirection:newRequest:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveChallenge:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didReceiveResponse:]):
(-[TestResourceLoadDelegate webView:resourceLoad:didCompleteWithError:]):
(TEST):
(-[TestResourceLoadDelegate webView:willSendRequest:]): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
(TestWebKitAPI::HTTPServer::HTTPResponse::HTTPResponse):
Add the ability to have non-200 status codes in responses.
Also switch the order of parameters to reflect the fact that header fields are sent before the body.
- TestWebKitAPI/cocoa/HTTPServer.mm:
(TestWebKitAPI::statusText):
(TestWebKitAPI::HTTPServer::respondToRequests):
- 9:57 AM Changeset in webkit [254344] by
-
- 8 edits in trunk
Add SPI to enable TLS 1.0 and 1.1 in WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=206046
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-10
Reviewed by Youenn Fablet.
Source/WebKit:
This is needed for <rdar://problem/58464912>
Covered by API tests.
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration legacyTLSEnabled]):
(-[_WKWebsiteDataStoreConfiguration setLegacyTLSEnabled:]):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::legacyTLSEnabled const):
(WebKit::WebsiteDataStoreConfiguration::setLegacyTLSEnabled):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
(TestWebKitAPI::TEST):
- 9:52 AM Changeset in webkit [254343] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Issue sandbox extension to "com.apple.nesessionmanager" prior to 10.15
https://bugs.webkit.org/show_bug.cgi?id=206031
<rdar://problem/58455467>
Reviewed by Per Arne Vollan.
The mach name of 'com.apple.nesessionmanager' changed between macOS 10.14 and 10.15.
We should continue to issue the old name when building for older operating systems."
Covered by existing tests.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- 9:40 AM Changeset in webkit [254342] by
-
- 11 edits in trunk
Remove WebsiteDataStore::setCacheStorageDirectory which has been replaced by WebsiteDataStoreConfiguration::setCacheStorageDirectory
https://bugs.webkit.org/show_bug.cgi?id=205841
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-10
Reviewed by Youenn Fablet.
Source/WebKit:
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.cpp:
(WKWebsiteDataStoreConfigurationCopyCacheStorageDirectory):
(WKWebsiteDataStoreConfigurationSetCacheStorageDirectory):
- UIProcess/API/C/WKWebsiteDataStoreConfigurationRef.h:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _cacheStorageDirectory]): Deleted.
(-[WKWebsiteDataStore _setCacheStorageDirectory:]): Deleted.
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):
- UIProcess/WebsiteData/WebsiteDataStore.h:
(WebKit::WebsiteDataStore::cacheStorageDirectory const):
(WebKit::WebsiteDataStore::setCacheStorageDirectory): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::websiteDataStore):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
- 8:48 AM Changeset in webkit [254341] by
-
- 8 edits in trunk
[WTR] Use short heart beat timer as a TestOption
https://bugs.webkit.org/show_bug.cgi?id=205795
Reviewed by Chris Dumez.
Tools:
Using short service worker heartbeat timeout values creates flakiness on slow bots.
By default, use regular service worker heartbeat timeout values for layout tests.
Add a WTR option value to use short service worker timeout values.
Use this option for service worker spinning layout tests.
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h:
(WTR::TestOptions::hasSameInitializationOptions const):
LayoutTests:
- http/wpt/service-workers/service-worker-spinning-activate.https.html:
- http/wpt/service-workers/service-worker-spinning-fetch.https.html:
- http/wpt/service-workers/service-worker-spinning-install.https.html:
- http/wpt/service-workers/service-worker-spinning-message.https.html:
- 8:16 AM Changeset in webkit [254340] by
-
- 23 edits in trunk/Tools
Python 3: Add support to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=205291
Reviewed by Stephanie Lewis.
- Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.
- Scripts/webkitpy/common/message_pool.py:
(_MessagePool._loop): Move exception inside of loop.
(_Message.repr): Use .format strings.
(_Worker.init): Ditto.
- Scripts/webkitpy/common/wavediff.py:
(WaveDiff.init): Use Python 3 compatible BytesIO and StringIO.
- Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
(LayoutTestFinder._read_test_names_from_file): Use .format string.
(LayoutTestFinder.split_into_chunks): Explicitly use integer division.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager._get_test_inputs): Use range over xrange.
- Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner._handle_error): Use .format strings.
- Scripts/webkitpy/layout_tests/layout_package/json_layout_results_generator.py:
(JSONLayoutResultsGenerator._insert_failure_summaries): Use Python 3 compatible itervalues.
- Scripts/webkitpy/layout_tests/models/test_results.py:
(TestResult.init): Sort type list.
- Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
(RunTest.setUp): Multiple processes are buggy in test-webkitpy.
(RunTest.test_basic): replace buflist with getvalue().
(RunTest.test_child_processes_2): Ditto.
(RunTest.test_child_processes_min): Ditto.
(RunTest.test_keyboard_interrupt): Ditto.
(RunTest.test_missing_and_unexpected_results): Compare dictionaries instead of json strings.
(RunTest.test_crash_with_stderr): Ditto.
(RunTest.test_reftest_should_not_use_naming_convention_if_not_listed_in_reftestlist): Ditto.
(EndToEndTest.test_reftest_with_two_notrefs): Ditto.
- Scripts/webkitpy/layout_tests/views/metered_stream.py:
(MeteredStream.write): Flush stream after writing.
(MeteredStream._erase_last_partial_line): Ditto.
- Scripts/webkitpy/layout_tests/views/printing.py:
(Printer._print_directory_timings): Can't compare string to integer.
(Printer._print_statistics_for_test_timings): Use integer division.
- Scripts/webkitpy/port/darwin.py:
(DarwinPort._merge_crash_logs): Use items over iteritems.
- Scripts/webkitpy/port/device.py:
(Device.hash): Allow hashing of devices.
- Scripts/webkitpy/port/device_port.py:
(DevicePort._install): Use range over xrange.
(DevicePort.setup_test_run): Ditto.
(DevicePort.clean_up_test_run): Ditto.
- Scripts/webkitpy/port/driver.py:
(DriverOutput.init): Text should be decoded, audio encoded.
(Driver.init):
(Driver.run_test):
(Driver._parse_child_processes_output): Output is byte array.
(Driver._check_for_driver_timeout): Ditto.
(Driver._check_for_address_sanitizer_violation): Error lines are byte arrays.
(Driver._check_for_driver_crash_or_unresponsiveness): Ditto.
(Driver._read_optional_image_block): If a block is base64 encoded, we want the decoded
content, otherwise, we want the encoded content.
(Driver._read_header): Lines are byte arrays, decode them before processing.
(Driver._process_stdout_line): Blocks are byte arrays.
(Driver._strip_eof): Lines should be byte arrays, not strings.
(Driver._read_block): Standardize encoding in blocks.
(ContentBlock.init): Content should be a byte array.
(ContentBlock.decode_content): Attempt to decode content.
- Scripts/webkitpy/port/driver_unittest.py:
(DriverTest.test_read_binary_block): Content should be encoded.
(DriverTest.test_read_base64_block): Ditto.
(DriverTest.test_check_for_driver_crash): ServerProcess output should be a byte array.
- Scripts/webkitpy/port/image_diff.py:
(ImageDiffer.diff_image): ImageDiff output is in byte arrays.
(ImageDiffer._read): Ditto.
- Scripts/webkitpy/port/server_process.py:
(ServerProcess.write): Encode data before writing it.
- Scripts/webkitpy/port/server_process_mock.py:
(MockServerProcess.init): Convert string mock output to bytes.
(MockServerProcess.read_stdout_line): Stdout lines are byte arrays.
(MockServerProcess.read_stdout): Ditto.
- Scripts/webkitpy/port/simulator_process.py:
(SimulatorProcess.NonBlockingFileFromSocket.close): Don't double close socket in Python 3.
(SimulatorProcess._start): Stdin should be a binary stream.
- Scripts/webkitpy/port/test.py:
(unit_test_list): Convert audio streams to byte arrays.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDevice.is_usable): Decode xcrun output.
(SimulatedDevice.install_app): Use xrange over range.
- 7:46 AM Changeset in webkit [254339] by
-
- 5 edits in trunk/Source/WebCore
[LFC][Integration] Fix accessibility/scroll-to-make-visible-iframe-offscreen.html
https://bugs.webkit.org/show_bug.cgi?id=206063
Reviewed by Zalan Bujtas.
This is failing due to missing LFC implementation for RenderText::absoluteQuad.
- rendering/RenderText.cpp:
(WebCore::collectAbsoluteQuadsForNonComplexPaths):
Implement generic version for collecting absolute quads. It doesn't cover everything that is needed for
the complex path so that still calls into layout system specific code.
(WebCore::RenderText::absoluteQuadsClippedToEllipsis const):
(WebCore::RenderText::absoluteQuads const):
(WebCore::RenderText::layoutFormattingContextLineLayout const):
(WebCore::RenderText::usesComplexLineLayoutPath const):
- rendering/RenderText.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::collectAbsoluteQuads): Deleted.
Not needed anymore.
- rendering/SimpleLineLayoutFunctions.h:
- 7:22 AM Changeset in webkit [254338] by
-
- 2 edits in trunk/LayoutTests
[GTK] imported/w3c/web-platform-tests/xhr/anonymous-mode-unsupported.htm is flaky
https://bugs.webkit.org/show_bug.cgi?id=206065
Unreviewed, mark test as flaky.
- platform/gtk/TestExpectations:
- 7:10 AM Changeset in webkit [254337] by
-
- 2 edits in trunk/LayoutTests
[WPE][GTK] Gardening after r254335
https://bugs.webkit.org/show_bug.cgi?id=206062
Unreviewed WPE and GTK+ gardening after r254335.
- platform/gtk/TestExpectations:
- 7:06 AM Changeset in webkit [254336] by
-
- 9 edits in trunk/Source/WebCore
[LFC] Replace FormattingContext::EscapeTypes with EscapeReasons
https://bugs.webkit.org/show_bug.cgi?id=206050
<rdar://problem/58466862>
Reviewed by Antti Koivisto.
EscapeReason is more explicit about why certain formatting context escapes are allowed.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::geometryForBox const):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
- layout/FormattingContextQuirks.cpp:
(WebCore::Layout::FormattingContext::Quirks::heightValueOfNearestContainingBlockWithFixedHeight):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::absoluteDisplayBoxCoordinates const):
(WebCore::Layout::FloatingContext::mapToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::computeAndDistributeExtraHorizontalSpace):
- 4:46 AM Changeset in webkit [254335] by
-
- 2 edits in trunk/Tools
[Flatpak] Update IceCC to version 1.2
https://bugs.webkit.org/show_bug.cgi?id=206059
Reviewed by Philippe Normand.
Update IceCC/Icecream to version 1.2, which is the same version
currently shipped with Debian stable (Buster). This bump is needed
because IceCC 1.1 does not seem to interoperate with the scheduler
from newer versions and it is expected that people who run IceCC will
install IceCC in their build farm from distribution packages.
- flatpak/org.webkit.CommonModules.yaml: Bump IceCC version to 1.2,
add the Git commit-id for the release tag.
- 4:32 AM Changeset in webkit [254334] by
-
- 7 edits in trunk
Source/WebCore:
[EME][ClearKey] Refactor CDMInstanceClearKey::updateLicense()
https://bugs.webkit.org/show_bug.cgi?id=205999
Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.
Covered by existing tests.
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::toHexString const): Helper utility to view
a shared buffer's contents as a hex string.
- platform/SharedBuffer.h:
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::CDMInstanceClearKey::Key::keyIDAsString const): Uses the
new utility to return a hex string of the key ID for debugging.
(WebCore::CDMInstanceClearKey::Key::keyValueAsString const):
Ditto, but for the key data.
(WebCore::operator==): Added comparison operations to
CDMInstanceClearKey::Key to cleanup code in updateLicense.
(WebCore::operator<):
(WebCore::CDMInstanceSessionClearKey::updateLicense): Refactored
to use operators associated with the key class, so as to avoid
open-coded memcmp's in the middle of conditionals and other
techniques that made the code harder to read that necessary.
- platform/encryptedmedia/clearkey/CDMClearKey.h:
Tools:
[EME][ClearKey] Refactor CDMClearKey::update()
https://bugs.webkit.org/show_bug.cgi?id=205999
Patch by Charlie Turner <mail@charles.plus> on 2020-01-10
Reviewed by Xabier Rodriguez-Calvar.
- TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F): Added a test for the new toHexString
helper. It should make sure to zero pad each byte to two
characters, so that it's easy to read.
- 3:58 AM Changeset in webkit [254333] by
-
- 4 edits in trunk
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.4 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.27.4.
- 3:39 AM Changeset in webkit [254332] by
-
- 5 edits in trunk/Source
Unreviewed. Fix GTK and WPE API docs generation
Source/JavaScriptCore:
Add index for new symbols in 2.28.
- API/glib/docs/jsc-glib-docs.sgml:
Source/WebKit:
Fix the name of the new class. WebKitInputMethodFilter -> WebKitInputMethodContext.
- UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
- UIProcess/API/wpe/docs/wpe-docs.sgml:
- 2:53 AM Changeset in webkit [254331] by
-
- 6 edits in trunk
[GLIB] Add GLib specific API for JSC JSValueRef.h's JSValueMakeFromJSONString and JSValueCreateJSONString methods
https://bugs.webkit.org/show_bug.cgi?id=205161
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
Add jsc_value_new_from_json() and jsc_value_to_json().
- API/glib/JSCValue.cpp:
(jsc_value_new_from_json):
(jsc_value_to_json):
- API/glib/JSCValue.h:
- API/glib/docs/jsc-glib-4.0-sections.txt:
Tools:
Add tests for new API.
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(testJSCJSON):
(main):
- 12:45 AM Changeset in webkit [254330] by
-
- 2 edits in trunk/Source/WebKit
Automation: resolveChildFrameWithNodeHandle should return NodeNotFound when node doesn't exist
https://bugs.webkit.org/show_bug.cgi?id=205993
Reviewed by Brian Burg.
According to the spec:
"If element is stale, return error with error code stale element reference."
https://w3c.github.io/webdriver/#switch-to-frame
Fixes: imported/w3c/webdriver/tests/switch_to_frame/switch.py::test_frame_id_webelement_stale_reference
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
- 12:44 AM Changeset in webkit [254329] by
-
- 8 edits in trunk
Automation: evaluateJavaScriptFunction should use Promises
https://bugs.webkit.org/show_bug.cgi?id=204151
Reviewed by Brian Burg.
Source/WebDriver:
- CommandResult.cpp:
(WebDriver::CommandResult::httpStatusCode const): Timeout errors should return 500 not 408.
- Session.cpp:
(WebDriver::Session::executeScript): Ensure the script body goes between new lines to avoid problems with
trailing comments like in function() { return foo; Comment }.
Source/WebKit:
Make the function to run scripts async and handle the result as a promise. To implement the script timeout we
use another promise that starts the timer and then we run a Promise.race() with both promises. To simplify the
results reporting, all exceptions (including timeout errors that are now handled as exceptions) are now handled
as errors passed to the resultCallback. The boolean parameter has been removed, we can simply check the type of
the value received because results are always strings and errors are always exception objects.
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::evaluateJavaScriptCallback): Handle the script result, including all possible errors now (not only timeouts).
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Any exception running the script should be an
internal error now. The code to handle error has been moved to evaluateJavaScriptCallback().
- WebProcess/Automation/WebAutomationSessionProxy.js:
(WebKitAutomation.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _execute and handle the
promise result to call resultCallback wityh either the result or the error.
(WebKitAutomation.AutomationSessionProxy.prototype._execute): Make the function to run the script async and
handle the result as a promise.
WebDriverTests:
Remove expectations for tests that are now passing.
- TestExpectations.json:
- 12:42 AM Changeset in webkit [254328] by
-
- 3 edits in trunk/Source/WebKit
Automation: scripts are executed in the wrong js context after a history navigation
https://bugs.webkit.org/show_bug.cgi?id=204880
<rdar://problem/58413615>
Reviewed by Brian Burg.
After a history navigation we use the script object from the previous frame js context because
didClearWindowObjectForFrame() is not called in that case. We are caching the script object for every frame ID,
and after a history navigation the frame ID is the same, but the frame js context isn't. That also means we might
be leaking the script objects in those cases, because we end up calling JSValueUnprotect with the wrong
context. It would be easier to set the script object as a property of the global object and let JSC handle the
lifetime. Instead of caching the script object and protect/unprotect it, we just check if the global object of
the current js context has the property or not to get or create it. We use a private symbol as the key of the
global object property to ensure it's not visible.
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::WebAutomationSessionProxy): Initialize m_scriptObjectIdentifier.
(WebKit::WebAutomationSessionProxy::scriptObject): Helper function to get the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::setScriptObject): Helper function to set the script object for the given
JavaScript context.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame): Get or create the script object.
(WebKit::WebAutomationSessionProxy::elementForNodeHandle): Get the script object from global object.
(WebKit::WebAutomationSessionProxy::didClearWindowObjectForFrame): Remove the code to unprotect script objects
of the frame.
- WebProcess/Automation/WebAutomationSessionProxy.h: Add m_scriptObjectIdentifier and remove m_webFrameScriptObjectMap.