Timeline
Feb 14, 2020:
- 10:54 PM Changeset in webkit [256700] by
-
- 17 edits in trunk
Unreviewed, rolling out r256633.
https://bugs.webkit.org/show_bug.cgi?id=207807
4% memory regression in new Membuster, possibly some leaking
in WebKit Malloc? (Requested by yusukesuzuki on #webkit).
Reverted changeset:
"[Win] Implement NetworkCache::Data by using
FileSystem::MappedFileData"
https://bugs.webkit.org/show_bug.cgi?id=197684
https://trac.webkit.org/changeset/256633
- 8:25 PM Changeset in webkit [256699] by
-
- 2 edits in trunk/LayoutTests
[GTK] Layout test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=160129
Last timeout was in r251772 and before that in r217571. Updating
expectation to reflect the new flaky crash affecting media tests
tracked in bug198830.
Unreviewed test gardening.
- platform/gtk/TestExpectations:
- 7:19 PM Changeset in webkit [256698] by
-
- 3 edits in trunk/JSTests
Unreviewed: fix broken tests added in r256665
https://bugs.webkit.org/show_bug.cgi?id=207727
Our inline WAT doesn't seem to like named blocks/branch targets.
- wasm/regress/llint-callee-saves-with-fast-memory.js:
- wasm/regress/llint-callee-saves-without-fast-memory.js:
- 7:19 PM Changeset in webkit [256697] by
-
- 12 edits3 adds in trunk
Mask WebGL strings
https://bugs.webkit.org/show_bug.cgi?id=207608
Reviewed by Dean Jackson.
Source/WebCore:
Test: platform/mac/webgl/fingerprinting-strings.html
Add new experimental feature to mask WebGL vendor, renderer, and shading language strings.
- html/canvas/WebGL2RenderingContext.cpp: Whitespace cleanup also.
(WebCore::WebGL2RenderingContext::getParameter): Check against the runtime feature to return the
old string.
- html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getParameter): Ditto.
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setMaskWebGLStringsEnabled):
(WebCore::RuntimeEnabledFeatures::maskWebGLStringsEnabled const):
Source/WebKit:
Test: platform/mac/webgl/fingerprinting-strings.html
- Shared/WebPreferences.yaml: Add new experimental feature.
Source/WebKitLegacy/mac:
Test: platform/mac/webgl/fingerprinting-strings.html
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
LayoutTests:
- platform/mac/webgl/fingerprinting-strings-expected.txt: Added.
- platform/mac/webgl/fingerprinting-strings.html: Added.
- 7:02 PM Changeset in webkit [256696] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256636. rdar://problem/59478734
[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>
Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.
After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.
- page/Frame.cpp: (WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256695] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r256629. rdar://problem/59478949
Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.
Source/WTF:
- wtf/URLHelpers.cpp: (WTF::URLHelpers::mapHostName):
Tools:
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256629 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256694] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r256623. rdar://problem/59478938
Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840
Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.
Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.
Source/WebCore:
Test: webanimations/animation-null-effect.html
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::scheduleNextTick):
- animation/WebAnimation.cpp: (WebCore::WebAnimation::timeToNextTick const):
LayoutTests:
- webanimations/animation-null-effect-expected.txt: Added.
- webanimations/animation-null-effect.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256623 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256693] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r256580. rdar://problem/59478981
Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676
Reviewed by Wenson Hsieh and Timothy Hatcher.
Source/WebCore:
The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.
This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.
It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...
Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor
PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent
- editing/EditingStyle.cpp: (WebCore::EditingStyle::removeStyleFromRulesAndContext): (WebCore::EditingStyle::inverseTransformColorIfNeeded):
Tools:
Added regression tests for pasting content with -apple-system-label and outdenting content.
- TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm: (PasteHTML.TransformColorsOfDarkContentButNotSemanticColor): (PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256580 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256692] by
-
- 5 edits in branches/safari-609-branch/Source
Cherry-pick r256498. rdar://problem/59478929
[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673
Reviewed by Mark Lam.
Source/JavaScriptCore:
While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.
This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.
- jit/JIT.cpp: (JSC::JIT::link):
- jit/JITCodeMap.h: (JSC::JITCodeMap::JITCodeMap): (JSC::JITCodeMap::find const): (JSC::JITCodeMap::operator bool const): (JSC::JITCodeMap::codeLocations const): (JSC::JITCodeMap::indexes const): (JSC::JITCodeMapBuilder::append): (JSC::JITCodeMapBuilder::finalize): (JSC::JITCodeMap::Entry::Entry): Deleted. (JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted. (JSC::JITCodeMap::Entry::codeLocation): Deleted. (JSC::JITCodeMap::append): Deleted. (JSC::JITCodeMap::finish): Deleted.
Source/WTF:
- wtf/MallocPtr.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256498 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256691] by
-
- 16 edits in branches/safari-609-branch/Source
Cherry-pick r256482. rdar://problem/59478881
Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618
Reviewed by Mark Lam.
Source/WebCore:
This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we definebitsOfXXX
value, which indicates # of bits to represent it. And using
this value for bit-field's width.
No behavior change.
- loader/FetchOptions.h: (WebCore::FetchOptions::encode const):
- loader/ResourceLoaderOptions.h: (WebCore::ResourceLoaderOptions::ResourceLoaderOptions): (WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):
- loader/cache/CachedImage.cpp: (WebCore::CachedImage::CachedImage): (WebCore::CachedImage::shouldDeferUpdateImageData const): (WebCore::CachedImage::didUpdateImageData):
- loader/cache/CachedImage.h:
- loader/cache/CachedResource.cpp: (WebCore::CachedResource::CachedResource): (WebCore::CachedResource::load): (WebCore::CachedResource::finish):
- loader/cache/CachedResource.h: (WebCore::CachedResource::setStatus):
- page/csp/ContentSecurityPolicyResponseHeaders.h: (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue): (WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
- platform/network/NetworkLoadMetrics.h: (WebCore::NetworkLoadMetrics::isolatedCopy const): (WebCore::NetworkLoadMetrics::clearNonTimingData): (WebCore::NetworkLoadMetrics::operator== const): (WebCore::NetworkLoadMetrics::encode const): (WebCore::NetworkLoadMetrics::decode):
- platform/network/ResourceLoadPriority.h:
- platform/network/ResourceRequestBase.h: (WebCore::ResourceRequestBase::ResourceRequestBase):
- platform/network/ResourceResponseBase.h:
- platform/network/StoredCredentialsPolicy.h:
Source/WTF:
- wtf/Markable.h: (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
- wtf/ObjectIdentifier.h: (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue): (WTF::ObjectIdentifier::MarkableTraits::emptyValue): (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256482 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256690] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r256467. rdar://problem/59478994
[JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619
Reviewed by Mark Lam.
We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.
- runtime/RegExpKey.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256689] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256423. rdar://problem/59478731
Compress ImmutableStyleProperties by using PackedPtr
https://bugs.webkit.org/show_bug.cgi?id=207604
Reviewed by Mark Lam.
ImmutableStyleProperties is kept so long and consumes enough memory.
We already attempted to compact it by storing CSSProperty's members separately.
But we can compact further by using PackedPtr. This patch makes,
- Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
- Reorder CSSValue* and StylePropertyMetadata arrays since StylePropertyMetadata requires alignment while PackedPtr<CSSValue> is not.
No behavior change.
- css/StyleProperties.cpp: (WebCore::sizeForImmutableStylePropertiesWithPropertyCount): (WebCore::ImmutableStyleProperties::ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::~ImmutableStyleProperties): (WebCore::ImmutableStyleProperties::findCustomPropertyIndex const):
- css/StyleProperties.h: (WebCore::ImmutableStyleProperties::valueArray const): (WebCore::ImmutableStyleProperties::metadataArray const): (WebCore::ImmutableStyleProperties::propertyAt const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256423 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256688] by
-
- 13 edits2 adds in branches/safari-609-branch
Cherry-pick r254681. rdar://problem/59474790
[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=206299
Reviewed by Brent Fulgham.
.:
This patch has been created by don.olmstead@sony.com and pvollan@apple.com. Add target files for WTF and
JavaScriptCore. Also, to make sure headers are copied to the forwarding headers directory, add the CMake
keywork ALL when adding custom target for copying files.
- Source/cmake/TargetJavaScriptCore.cmake: Added.
- Source/cmake/TargetWTF.cmake: Added.
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
Include required target. Build internal builds with VS2019.
- CMakeLists.txt:
- JavaScriptCore.vcxproj/JavaScriptCore.proj:
Source/WebCore:
Include required targets. Build internal builds with VS2019.
- CMakeLists.txt:
- WebCore.vcxproj/WebCore.proj:
Source/WebKitLegacy:
Include required targets. Build internal builds with VS2019.
- CMakeLists.txt:
- WebKitLegacy.vcxproj/WebKitLegacy.proj:
Source/WTF:
Build internal builds with VS2019.
- WTF.vcxproj/WTF.proj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254681 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256687] by
-
- 3 edits in branches/safari-609-branch/Source
Cherry-pick r252849. rdar://problem/59446998
Crash in WebCore::ServiceWorkerRegistrationKey::hash() const
https://bugs.webkit.org/show_bug.cgi?id=204497
<rdar://problem/57348603>
Reviewed by Alex Christensen.
Source/WebCore:
Update ServiceWorkerContainer::jobResolvedWithRegistration to handle the case of a
ServiceWorkerContainer that might have a job whose promise is not related to the same context.
In that case, the ServiceWorkerContainer might get stopped, thus its m_ongoingSettledRegistrations be cleared.
But the promise may get settled shortly after since its context is not stopped and will then retrieve an empty registration data key.
This is difficult to test given we do not control when the resolvedWithRegistration task is posted to the client.
- workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
- workers/service/ServiceWorkerRegistrationKey.h: (WebCore::ServiceWorkerRegistrationKey::encode const): Add release asserts to make sure we do not store/transfer empty registration keys.
Source/WebKit:
- WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Add a release assert to be able to further debug the crash.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252849 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256686] by
-
- 2 edits in branches/safari-609-branch/Source/WTF
Cherry-pick r256203. rdar://problem/59446995
Unreviewed, speculative build fix on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183
- wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256203 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256685] by
-
- 2 edits in branches/safari-609-branch/Source/WTF
Cherry-pick r256194. rdar://problem/59446995
Unreviewed, fix build failure on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183
- wtf/HashTable.h: (WTF::HashTableCapacityForSize::capacityForSize):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256194 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256684] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r256093. rdar://problem/59446995
[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183
Reviewed by Mark Lam.
Source/WTF:
We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.
This patch changes the load-factor from 50% to 75%. But we pick 75% only for
small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
The collected data is telling that longer probe-length affects on performance if table
size gets larger.
[1]: LLVM DenseMap, Abseil's, rust's, and so on.
- wtf/HashTable.h: (WTF::HashTableCapacityForSize::shouldExpand): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize):
Tools:
- TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256093 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256683] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r256011. rdar://problem/59446995
Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
https://bugs.webkit.org/show_bug.cgi?id=207183
Source/WTF:
- wtf/HashTable.h: (WTF::HashTable::shouldExpand const): (WTF::KeyTraits>::computeBestTableSize): (WTF::HashTable::shouldExpand): Deleted. (WTF::HashTableCapacityForSize::capacityForSize): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256011 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256682] by
-
- 6 edits in branches/safari-609-branch
Cherry-pick r255889. rdar://problem/59446995
[WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183
Reviewed by Mark Lam.
Source/WTF:
We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.
A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
JetStream2, while it offers 2~% improvement in Membuster. This means that we are
wasting too much memory for no-performance-improvement.
This patch changes the load-factor from 50% to 75%.
[1]: LLVM DenseMap, Abseil's, rust's, and so on.
- wtf/HashTable.h: (WTF::HashTable::shouldExpand): (WTF::HashTable::shouldExpand const): (WTF::HashTableCapacityForSize::capacityForSize): (WTF::KeyTraits>::computeBestTableSize):
Tools:
Fix load-factor assumption in existing tests.
- TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::testInitialCapacity):
LayoutTests:
It seems that this test is relying on hash-table's order.
- http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255889 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256681] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r255611. rdar://problem/59446995
Reduce size of HashMap and HashSet
https://bugs.webkit.org/show_bug.cgi?id=207138
Reviewed by Yusuke Suzuki.
Source/WTF:
This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
dynamically allocated memory. This makes another branch in size() for non-empty tables
and an additional read and write when rehashing in exchange for fewer writes in the constructor
and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.
- wtf/HashTable.h: (WTF::HashTable::~HashTable): (WTF::HashTable::end): (WTF::HashTable::end const): (WTF::HashTable::random): (WTF::HashTable::size const): (WTF::HashTable::capacity const): (WTF::HashTable::isEmpty const): (WTF::HashTable::reserveInitialCapacity): (WTF::HashTable::shouldExpand const): (WTF::HashTable::mustRehashInPlace const): (WTF::HashTable::shouldShrink const): (WTF::HashTable::shrink): (WTF::HashTable::makeIterator): (WTF::HashTable::makeConstIterator const): (WTF::HashTable::makeKnownGoodIterator): (WTF::HashTable::makeKnownGoodConstIterator const): (WTF::HashTable::tableSize const): (WTF::HashTable::setTableSize const): (WTF::HashTable::tableSizeMask const): (WTF::HashTable::setTableSizeMask): (WTF::HashTable::keyCount const): (WTF::HashTable::setKeyCount const): (WTF::HashTable::deletedCount const): (WTF::HashTable::setDeletedCount const): (WTF::KeyTraits>::HashTable): (WTF::KeyTraits>::inlineLookup): (WTF::KeyTraits>::lookupForWriting): (WTF::KeyTraits>::fullLookupForWriting): (WTF::KeyTraits>::addUniqueForInitialization): (WTF::KeyTraits>::add): (WTF::KeyTraits>::addPassingHashCode): (WTF::KeyTraits>::remove): (WTF::KeyTraits>::removeIf): (WTF::KeyTraits>::allocateTable): (WTF::KeyTraits>::deallocateTable): (WTF::KeyTraits>::expand): (WTF::KeyTraits>::shrinkToBestSize): (WTF::KeyTraits>::deleteReleasedWeakBuckets): (WTF::KeyTraits>::rehash): (WTF::KeyTraits>::clear): (WTF::KeyTraits>::swap): (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
Tools:
- TestWebKitAPI/Tests/WTF/HashMap.cpp: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/HashSet.cpp: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255611 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:02 PM Changeset in webkit [256680] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256578. rdar://problem/59447009
Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722
Reviewed by Chris Dumez.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::scheduleJobInServer): In case of bad scope, fail the job early on.
- WebProcess/Storage/WebSWClientConnection.cpp: (WebKit::WebSWClientConnection::scheduleJobInServer): Remove the RELEASE_ASSERT from now since we defend in Network process. We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256679] by
-
- 11 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256494. rdar://problem/59446989
CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666
Reviewed by Mark Lam.
r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.
But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.
This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.
No behavior change.
- css/CSSInheritedValue.h:
- css/CSSInitialValue.h:
- css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSPrimitiveValue.h:
- css/CSSRevertValue.h:
- css/CSSUnsetValue.h:
- css/CSSValue.cpp:
- css/CSSValue.h: (WebCore::CSSValue::ref const): (WebCore::CSSValue::hasOneRef const): (WebCore::CSSValue::refCount const): (WebCore::CSSValue::hasAtLeastOneRef const): (WebCore::CSSValue::deref): (WebCore::CSSValue::makeStatic):
- css/CSSValuePool.cpp: (WebCore::StaticCSSValuePool::StaticCSSValuePool): (WebCore::StaticCSSValuePool::init): (WebCore::CSSValuePool::CSSValuePool): (WebCore::CSSValuePool::singleton): (WebCore::CSSValuePool::createIdentifierValue): (WebCore::CSSValuePool::createColorValue): (WebCore::CSSValuePool::createValue):
- css/CSSValuePool.h: (WebCore::CSSValuePool::createInheritedValue): (WebCore::CSSValuePool::createImplicitInitialValue): (WebCore::CSSValuePool::createExplicitInitialValue): (WebCore::CSSValuePool::createUnsetValue): (WebCore::CSSValuePool::createRevertValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256494 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256678] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256474. rdar://problem/59446973
Web Inspector: inspector/cpu-profiler/threads.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207588
<rdar://problem/57458123>
Reviewed by Yusuke Suzuki.
- page/cocoa/ResourceUsageThreadCocoa.mm: (WebCore::ResourceUsageThread::platformCollectCPUData): Use a fence to force Thread to be completely ready for use by other threads prior to storing it. Otherwise, ResourceUsageThread may see it too early.
- workers/WorkerThread.cpp: (WebCore::WorkerThread::start): Ignore worker threads that are not fully initialized.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256474 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256677] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256470. rdar://problem/59446998
ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657
Reviewed by Chris Dumez.
shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.
- workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256676] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256452. rdar://problem/59446979
Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740
Reviewed by Tim Horton.
TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:
setRootCompositingGraphicsLayer() when frozen
-> stash in m_pendingRootLayer
setRootCompositingGraphicsLayer() when not frozen
-> set the root layer
flushLayers()
-> set the root layer to the (old) m_pendingRootLayer
So we need to clear m_pendingRootLayer at step 2.
Very timing dependent, hard to test.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm: (WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256452 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256675] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256447. rdar://problem/59446998
RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>
Reviewed by Youenn Fablet.
We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.
- workers/service/ServiceWorkerContainer.cpp: (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256674] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r256427. rdar://problem/59447029
Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>
Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.
Source/WebCore:
Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html
- animation/CSSTransition.cpp: (WebCore::CSSTransition::create): (WebCore::CSSTransition::CSSTransition):
- animation/CSSTransition.h:
LayoutTests:
Fix crash due to uninitialized currentStyle in CSSTransition
- legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
- legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256427 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256673] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256401. rdar://problem/59447020
WebPage::getFocusedElementInformation should be robust when the focused element changes during layout
https://bugs.webkit.org/show_bug.cgi?id=207582
<rdar://problem/47634344>
Reviewed by Tim Horton.
- This is a speculative fix for <rdar://problem/47634344>, wherein the …
- getFocusedElementInformation may cause the currently focused element to disappear (or change). In the case where m_focusedElement becomes nil, we end up crashing with a null pointer deref, since the rest of the method assumes that m_focusedElement exists.
To patch this crash, bail early (after the first layout update) if m_focusedElement changed during the layout
pass. Since the rest of the function my trigger even more layout updates that could nuke m_focusedElement, I
also changed the rest of the function to use the locally storedfocusedElement
variable instead of
m_focusedElement, on WebPage.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getFocusedElementInformation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256401 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256672] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r256395. rdar://problem/59447024
Bug 207424: Crash in WebCore::ParsedContentType::parseContentType when parsing invalid MIME type
<https://webkit.org/b/207424>
<rdar://problem/59250384>
Patch by Rob Buis <rbuis@igalia.com> and David Kilzer <ddkilzer@apple.com> on 2020-02-11
Reviewed by Rob Buis.
Source/WebCore:
Return StringView directly rather than wrapping
it in Optional, since StringView's can be null tested.
Tests: TestWebKitAPI.ParsedContentType
- platform/network/ParsedContentType.cpp:
(WebCore::parseToken):
(WebCore::parseQuotedString):
(WebCore::ParsedContentType::parseContentType): Don't set type
parameter if parameterName is null string. Remove unneeded
parameterName
variable; use keyRange.toString() instead.
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp: (TestWebKitAPI::TEST): Add more tests.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256395 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256671] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r256377. rdar://problem/59446971
Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
https://bugs.webkit.org/show_bug.cgi?id=207325
<rdar://problem/59224810>
Reviewed by Eric Carlson.
Source/WebCore:
Manually tested and covered by API test.
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp: (WebCore::LibWebRTCProvider::webRTCAvailable): Return true unconditionally on iOS since libwebrtc.dylib is always available.
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm: (TestWebKitAPI::TEST): Add a test validating that RTCRtpSender.getCapabilities does not return null.
- TestWebKitAPI/Tests/WebKit/getUserMedia.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256670] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r256346. rdar://problem/59446984
video.currentTime is not being updated in iOS 13.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=207489
<rdar://problem/59322640>
Reviewed by Youenn Fablet.
Source/WebKit:
Allow the Web process and the GPU process to communicate with
'com.apple.coremedia.audiodeviceclock.xpc' because it is necessary to use a
CMTimeBase, which is used by MediaPlayerPrivateMediaStreamAVFObjC for currentTime.
Test: fast/mediastream/media-element-current-time.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/mediastream/media-element-current-time.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256669] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore/PAL
Cherry-pick r256320. rdar://problem/59447006
AX: Wrong includes for internal SDK
https://bugs.webkit.org/show_bug.cgi?id=207554
Reviewed by Chris Dumez.
- pal/spi/mac/HIServicesSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256320 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256668] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256233. rdar://problem/59447027
WebKit::WebProcessPool::initializeClassesForParameterCoding() should keep a copy of CString
<https://webkit.org/b/207519>
<rdar://problem/59043436>
Reviewed by Brent Fulgham.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::initializeClassesForParameterCoding):
- Change
className
to keep a copy of the CString object.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256233 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256667] by
-
- 8 edits in branches/safari-609-branch
Cherry-pick r256207. rdar://problem/59447263
Don't update selection when calling setSelectionRange on a disconnected input element
https://bugs.webkit.org/show_bug.cgi?id=207357
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Rebaselined the test that progressed a little. The test now passes offset checks but still fails direction check.
- web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:
Source/WebCore:
Don't update FrameSelection when the text form control element is disconnected from document.
- html/HTMLTextFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::setSelectionRange):
LayoutTests:
Rebaselined the test that has progressed with this change.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:01 PM Changeset in webkit [256666] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256187. rdar://problem/59446994
Crash under WebProcessProxy::shouldSendPendingMessage()
https://bugs.webkit.org/show_bug.cgi?id=207464
<rdar://problem/59293825>
Reviewed by Alex Christensen.
I suspect the WebProcessProxy object is getting destroyed as we are iterating over the
pending messages in AuxiliaryProcessProxy::didFinishLaunching(), thus crashing when
calling WebProcessProxy::shouldSendPendingMessage() inside the loop. As a speculative
fix, protect |this| at the beginning of WebProcessProxy::didFinishLaunching().
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didFinishLaunching):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:57 PM Changeset in webkit [256665] by
-
- 9 edits2 adds in trunk
[WASM] Wasm interpreter's calling convention doesn't match Wasm JIT's convention.
https://bugs.webkit.org/show_bug.cgi?id=207727
JSTests:
Reviewed by Mark Lam.
- wasm/regress/llint-callee-saves-with-fast-memory.js: Added.
- wasm/regress/llint-callee-saves-without-fast-memory.js: Added.
Source/JavaScriptCore:
Reviewed by Mark Lam.
The Wasm JIT has unusual calling conventions, which were further complicated by the addition
of the interpreter, and the interpreter did not correctly follow these conventions (by incorrectly
saving and restoring the callee save registers used for the memory base and size). Here's a summary
of the calling convention:
- When entering Wasm from JS, the wrapper must:
- Preserve the base and size when entering LLInt regardless of the mode. (Prior to this patch we only preserved the base in Signaling mode)
- Preserve the memory base in either mode, and the size for BoundsChecking.
- Both tiers must preserve every *other* register they use. e.g. the LLInt must preserve PB and wasmInstance, but must *not* preserve memoryBase and memorySize.
- Changes to memoryBase and memorySize are visible to the caller. This means that:
- Intra-module calls can assume these registers are up-to-date even if the memory was resized. The only exception here is if the LLInt calls a signaling JIT, in which case the JIT will not update the size register, since it won't be using it.
- Inter-module and JS calls require the caller to reload these registers. These calls may result in memory changes (e.g. the callee may call memory.grow).
- A Signaling JIT caller must be aware that the LLInt may trash the size register, since it always bounds checks.
- llint/WebAssembly.asm:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::addCall):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::addCall):
- wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::calleeSaveRegisters):
- wasm/WasmCallingConvention.h:
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmMemoryInformation.cpp:
(JSC::Wasm::PinnedRegisterInfo::get):
(JSC::Wasm::getPinnedRegisters): Deleted.
- 6:36 PM Changeset in webkit [256664] by
-
- 20 edits in trunk/Source
Simplify WebProcess handling of unregistering of service workers
https://bugs.webkit.org/show_bug.cgi?id=207669
Reviewed by Chris Dumez.
Source/WebCore:
Instead of creating a job in WebProcess, we now create it at SWServer level.
This allows the ServiceWorkerContainer to only provide the service worker registration identifier
to start the unregistering process.
To simplify things, a completion handler is used to resolve the promise once the unregister job run.
This allows to send less information from ServiceWorkerContainer to SWServer through IPC.
No observable change of behavior.
- workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::unregistrationJobResolvedInServer): Deleted.
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::unregisterRegistration):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerJobData.cpp:
(WebCore::serviceWorkerOrClientIdentifier):
(WebCore::ServiceWorkerJobData::ServiceWorkerJobData):
- workers/service/ServiceWorkerJobData.h:
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::unregister):
- workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::scheduleUnregisterJobInServer):
- workers/service/WorkerSWClientConnection.h:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::scheduleUnregisterJob):
- workers/service/server/SWServer.h:
Source/WebKit:
Use Async Reply IPC for scheduling an unregister job.
Make WebSWServerConnection own a map of CompletionHandler keyed by unregister job identifiers.
WebSWServerConnection then asks SWServer to schedule the unregister job.
When job is run, WebSWServerConnection will call the corresponding completion handler.
The completion handler will trigger an IPC response that will trigger the unregister promise to be resolved.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::scheduleUnregisterJobInServer):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- Scripts/webkit/messages.py:
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::scheduleUnregisterJobInServer):
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWClientConnection.messages.in:
- 6:20 PM Changeset in webkit [256663] by
-
- 8 edits in branches/safari-609-branch/Source
Versioning.
- 6:15 PM Changeset in webkit [256662] by
-
- 2 edits in trunk/Source/WebKit
Improve NSURLSession WebSocket message handling in case of error
https://bugs.webkit.org/show_bug.cgi?id=207799
Reviewed by Alex Christensen.
Tested by running layout tests with NSURLSession WebSocket code path enabled..
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::readNextMessage):
readNextMessage completion handler may be called when the connection is closed or in case of real error.
We discriminate this case by checking closeCode and if not null, we do nothing since the connection is being closed.
Otherwise, we communicate the error to WebProcess and close the connection.
(WebKit::WebSocketTask::sendString):
Add workaround until this gets fixed underneath.
(WebKit::WebSocketTask::sendData):
Add workaround until this gets fixed underneath.
- 5:20 PM Changeset in webkit [256661] by
-
- 2 edits in trunk/Source/WebKit
[WebAuthn] Make Local Authenticator appear as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=207797
<rdar://problem/59475709>
Reviewed by Brent Fulgham.
- Shared/WebPreferences.yaml:
- 5:20 PM Changeset in webkit [256660] by
-
- 7 edits in trunk/Source/WebKit
Dynamically generate media-related mach connections when not using the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207743
<rdar://problem/59449750>
Reviewed by Per Arne Vollan.
Stop using permanent sandbox permissions to connect to media-related XPC services. Instead,
create them dynamically in the UIProcess and vend them to the relevant WebContent process
as needed. If all media features are active in the GPU process, do not emit extensions since
they should not be needed in the WebContent process at that point.
Tested by existing media and GPU process tests.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb: Remove permanet rules in
preference for dynamic extensions.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const): Serialize new service connections.
(WebKit::WebProcessCreationParameters::decode): Ditto.
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::mediaRelatedMachServices): Helper function listing needed services.
(WebKit::WebProcessPool::platformInitializeWebProcess): Create service connections when
needed.
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess): Consume media-related connections
when needed.
- WebProcess/com.apple.WebProcess.sb.in: Remove permanet rules in preference for
dynamic extensions.
- 5:18 PM Changeset in webkit [256659] by
-
- 26 edits2 adds in trunk
new FontFace() should not throw when failing to parse arguments
https://bugs.webkit.org/show_bug.cgi?id=205770
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Myles Maxfield.
Source/WebCore:
Change FontFace constructor to conform to API specification:
https://drafts.csswg.org/css-font-loading/#dom-fontface-fontface.
No longer throws. For parsing failure, now rejects promise, sets
status to error, and sets FontFace members to default string.
Test: http/tests/css/font-face-constructor.html
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::setErrorState):
- css/CSSFontFace.h:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::addToFacesLookupTable):
(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::fontFace):
- css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
- css/FontFace.cpp:
(WebCore::FontFace::setErrorState):
(WebCore::FontFace::create):
(WebCore::FontFace::family const):
(WebCore::FontFace::style const):
(WebCore::FontFace::weight const):
(WebCore::FontFace::stretch const):
(WebCore::FontFace::unicodeRange const):
(WebCore::FontFace::featureSettings const):
(WebCore::FontFace::display const):
(WebCore::FontFace::fontStateChanged):
- css/FontFace.h:
- css/FontFace.idl:
LayoutTests:
Tests that constructor doesn't throw, sets members to corresponding default strings.
- http/tests/css/font-face-constructor-expected.txt: Added.
- http/tests/css/font-face-constructor.html: Added.
- 5:01 PM Changeset in webkit [256658] by
-
- 10 edits1 copy in trunk/Source
Introduce MediaStreamPrivate::forEachTrack
https://bugs.webkit.org/show_bug.cgi?id=207773
Reviewed by Eric Carlson.
Source/WebCore:
Introduce forEachTrack to allow read-only iterating through the tracks.
This is more efficient than copying the tracks.
Add a helper routine to select the tracks to record in MediaRecorderPrivate.
No change of behavior.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState):
- platform/mediarecorder/MediaRecorderPrivate.cpp: Added.
(WebCore::MediaRecorderPrivate::selectTracks):
- platform/mediarecorder/MediaRecorderPrivate.h:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
(WebCore::MediaRecorderPrivateAVFImpl::create):
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::forEachTrack const):
- platform/mediastream/MediaStreamPrivate.h:
Source/WebKit:
- WebProcess/GPU/webrtc/MediaRecorderPrivate.cpp:
(WebKit::MediaRecorderPrivate::MediaRecorderPrivate):
Use helper routine instead of MediaStreamPrviate::streamTracks().
- 5:01 PM Changeset in webkit [256657] by
-
- 3 edits in trunk/LayoutTests
Fix flaky tests that scroll before first paint
https://bugs.webkit.org/show_bug.cgi?id=207780
After https://bugs.webkit.org/show_bug.cgi?id=207516, a couple of tests are now flaky. This
is because that patch delays first paint until there is enough content to render, and some
of these tests are issuing scroll events on controls before those controls render. To fix
this, we delay issuing the events until after the page loads.
Patch by Ben Nham <Ben Nham> on 2020-02-14
Reviewed by Simon Fraser.
- fast/events/scroll-in-scaled-page-with-overflow-hidden.html:
- fast/scrolling/scroll-container-horizontally.html:
- 3:51 PM Changeset in webkit [256656] by
-
- 3 edits in trunk/LayoutTests
[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793
Unreviewed test fix.
Increased the scrolldelay on this test to stop the flakiness.
- fast/html/marquee-child-wrap.html:
- platform/mac-wk2/TestExpectations:
- 3:45 PM Changeset in webkit [256655] by
-
- 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations
Need a short description (OOPS!).
Need the bug URL (OOPS!).
Reviewed by NOBODY (OOPS!).
- platform/mac-wk2/TestExpectations:
- 3:45 PM Changeset in webkit [256654] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Release ] webrtc/connection-state.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207798
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:23 PM Changeset in webkit [256653] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 Release ] fast/box-shadow/hidpi-box-shadow.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207796
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:18 PM Changeset in webkit [256652] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: VoiceOver doesn't read selected panel tab
https://bugs.webkit.org/show_bug.cgi?id=207735
<rdar://problem/59445157>
Reviewed by Timothy Hatcher.
- UserInterface/Views/NavigationBar.js:
(WI.NavigationBar):
(WI.NavigationBar.prototype._mouseDown):
(WI.NavigationBar.prototype._mouseUp):
Navigation bar itself shouldn't receive focus - its items should.
- UserInterface/Views/RadioButtonNavigationItem.js:
(WI.RadioButtonNavigationItem):
"tab" was passed as a label by mistake. VoiceOver read every tab as "tab" instead of it's actual label.
(WI.RadioButtonNavigationItem.prototype.set selected):
When clicking on a tab, focus on it so VoiceOver could read it.
- 3:17 PM Changeset in webkit [256651] by
-
- 6 edits in trunk/Source/WebCore
[Curl] Implement NetworkStorageSession::get/set/deleteCookie
https://bugs.webkit.org/show_bug.cgi?id=207450
Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-14
Reviewed by Don Olmstead.
- platform/network/curl/CookieJarCurl.cpp:
(WebCore::CookieJarCurl::getAllCookies const):
(WebCore::CookieJarCurl::setCookie const):
(WebCore::CookieJarCurl::deleteCookie const):
- platform/network/curl/CookieJarCurl.h:
- platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::getAllCookies):
- platform/network/curl/CookieJarDB.h:
- platform/network/curl/NetworkStorageSessionCurl.cpp:
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::NetworkStorageSession::getAllCookies):
- 3:05 PM Changeset in webkit [256650] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] fast/html/marquee-child-wrap.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207793
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:02 PM Changeset in webkit [256649] by
-
- 2 edits2 moves in trunk/LayoutTests
[css-grid] Move grid-gutters-and-alignment test to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=207751
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-02-14
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Add grid-gutters-and-alignment test, checked and adapted to WPT, with its expected.txt file.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21717
- web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-gutters-and-alignment.html:
LayoutTests:
Remove grid-gutters-and-alignment test and its expected.txt file. The test is being replaced
by an adapted test in the corresponding WPT test folder.
- fast/css-grid-layout/grid-gutters-and-alignment-expected.txt: Removed.
- fast/css-grid-layout/grid-gutters-and-alignment.html: Removed.
- 3:01 PM Changeset in webkit [256648] by
-
- 15 edits in trunk
WebKit support for Apple Pay Buttons with custom corner radii
https://bugs.webkit.org/show_bug.cgi?id=207664
Source/WebCore:
<rdar://problem/43718114>
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.
Added support for border-radius css property for apple pay
button drawing.
Modified old tests to test this new behavior.
- rendering/RenderThemeCocoa.mm:
(WebCore::RenderThemeCocoa::paintApplePayButton):
Source/WebCore/PAL:
<rdar://problem/43718114>
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.
Added link for PKDrawApplePayButtonWithCornerRadius and
PKApplePayButtonDefaultCornerRadius.
- pal/cocoa/PassKitSoftLink.h:
- pal/cocoa/PassKitSoftLink.mm:
- pal/spi/cocoa/PassKitSPI.h:
LayoutTests:
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-14
Reviewed by Andy Estes.
Modified both tests to test new functionality for setting custom corner
radii.
- http/tests/ssl/applepay/ApplePayButton.html:
- http/tests/ssl/applepay/ApplePayButtonV4.html:
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.png:
- platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt:
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
- platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:
- platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.png:
- platform/mac/http/tests/ssl/applepay/ApplePayButtonV4-expected.txt:
- 2:45 PM Changeset in webkit [256647] by
-
- 5 edits in trunk/Source/WebInspectorUI
Web Inspector: Bezier editor popover should be strictly LTR
https://bugs.webkit.org/show_bug.cgi?id=206968
<rdar://problem/59007065>
Reviewed by Timothy Hatcher.
webkitConvertPointFromPageToNode does not work correctly with the zoom level other than 1.
Replace all uses of webkitConvertPointFromPageToNode with getBoundingClientRect.
- UserInterface/Models/Geometry.js:
(WI.Point.fromEventInElement):
- UserInterface/Views/ColorSquare.js:
(WI.ColorSquare.prototype._updateColorForMouseEvent):
- UserInterface/Views/GradientSlider.js:
(WI.GradientSlider.prototype._updateShadowKnob):
- UserInterface/Views/Slider.js:
(WI.Slider.prototype._localPointForEvent):
(WI.Slider):
- 2:37 PM Changeset in webkit [256646] by
-
- 2 edits in trunk/Source/WebKit
WKWebView._setResourceLoadDelegate should clear the WebPageProxy's ResourceLoadClient
https://bugs.webkit.org/show_bug.cgi?id=205887
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setResourceLoadDelegate:]):
WebPageProxy::setResourceLoadClient has some special logic to possibly clear a bit in the web process that will reduce IPCs.
This is a small oversight in my original implementation.
- 2:27 PM Changeset in webkit [256645] by
-
- 2 edits in trunk/LayoutTests
[Web Animations] Unflake web-animations/timing-model/timelines/update-and-send-events.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=202109
Unreviewed test gardening.
- TestExpectations: The attempt to unflake this test in r256619 was unsuccesful.
- 1:59 PM Changeset in webkit [256644] by
-
- 1 copy in tags/Safari-610.1.3
Tag Safari-610.1.3.
- 1:59 PM Changeset in webkit [256643] by
-
- 1 delete in tags/Safari-610.1.3
Delete tag.
- 1:56 PM Changeset in webkit [256642] by
-
- 1 copy in tags/Safari-609.1.18
Tag Safari-609.1.18.
- 1:55 PM Changeset in webkit [256641] by
-
- 1 copy in tags/Safari-610.1.3
Tag Safari-610.1.3.
- 1:36 PM Changeset in webkit [256640] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations: Fixed the bug number.
- 1:30 PM Changeset in webkit [256639] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] fast/events/keydown-1.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207785
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:27 PM Changeset in webkit [256638] by
-
- 2 edits in trunk/LayoutTests
[GTK] http/tests/misc/form-submit-file-cross-site-redirect.html fails with incomplete form data
https://bugs.webkit.org/show_bug.cgi?id=207016
After bug206517 was fixed, this test has been passing in all GTK bots.
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-14
- platform/gtk/TestExpectations:
- 1:22 PM Changeset in webkit [256637] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing are all flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=207786
Updatating expectations for all IndexedDP-private-browsing tests.
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:19 PM Changeset in webkit [256636] by
-
- 2 edits in trunk/Source/WebCore
[Web Animations] Missing call to DocumentTimeline::resumeAnimations() in Frame::resumeActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=207784
<rdar://problem/59251858>
Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Dean Jackson.
After auditing the code, there was one call to CSSAnimationController::resumeAnimationsForDocument() that missed a matching DocumentTimeline::resumeAnimations()
call should the Web Animations flag be on.
- page/Frame.cpp:
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
- 1:13 PM Changeset in webkit [256635] by
-
- 3 edits in branches/safari-609-branch/Tools
Cherry-pick r256297. rdar://problem/59442308
[iOS] Non-internal API test runners frequently crash due to Objective-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=207525
<rdar://problem/59110543>
Reviewed by Tim Horton.
After the fix for <rdar://problem/56301207>, some scroll view content offset changes will attempt to call into
CoreAnalytics API to try and report data about scrolling velocities. In the iOS 13.3 simulator, this involves
creating a dictionary, of which one of the keys is the bundle identifier of the application. The value is
unconditionally inserted into the dictionary. Since TestWebKitAPI does not run in the context of a
UIApplication, the bundle identifier (that is,NSBundle.mainBundle.bundleIdentifier
) ends up being nil,
causing us to crash upon trying to create the dictionary.
While it would make things easier, we can't just swizzle -bundleIdentifier for the entirely of every test, since
some tests expect the bundle identifier to be nil (or call into system frameworks that expect the bundle
identifier to be nil). These tests fail or time out when -bundleIdentifier is unconditionally swizzled
throughout the test run. To work around this bug for the time being, simply pretend that we have a bundle
identifier when running API tests on iOS, by swizzling-[NSBundle bundleIdentifier]
to return a string at the
beginning of each API test.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/cocoa/TestWKWebView.mm: (overrideBundleIdentifier):
Move this to the top of the file, so it can be shared.
(+[WKWebView initialize]):
At the start of each test, force UIKit to cache a fake value for
_UIMainBundleIdentifier()
by invoking an
internal class method that calls into the internal helper function, with no other side effects.
- TestWebKitAPI/ios/UIKitSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:09 PM Changeset in webkit [256634] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix the iOS 13.1 build after r256520
These two methods are not in the internal iOS 13.1 SDK.
- Platform/spi/ios/UIKitSPI.h:
- 12:06 PM Changeset in webkit [256633] by
-
- 17 edits in trunk
[Win] Implement NetworkCache::Data by using FileSystem::MappedFileData
https://bugs.webkit.org/show_bug.cgi?id=197684
Reviewed by Fujii Hironori.
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
Ensure that the CacheStorage directory is actually being created.
- NetworkProcess/cache/NetworkCacheData.cpp:
- NetworkProcess/cache/NetworkCacheData.h:
- NetworkProcess/cache/NetworkCacheDataCocoa.mm:
- NetworkProcess/cache/NetworkCacheDataSoup.cpp:
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
Use more FileSystem functionality to share code across platforms.
- NetworkProcess/cache/NetworkCacheDataCurl.cpp:
Use Optional<Vector> for m_buffer since we need to differentiate isEmpty and isNull.
Source/WTF:
- wtf/FileSystem.cpp:
- wtf/FileSystem.h:
Added FileAccessPermission flag when opening files.
Remove default argument for the listDirectory filter since the defaut
String() filter doesn't match all files on Mac and Windows.
- wtf/glib/FileSystemGlib.cpp:
- wtf/posix/FileSystemPOSIX.cpp:
Added (S_IRUSR | S_IWUSR) file open modes.
- wtf/win/FileSystemWin.cpp:
Implement getVolumeFreeSpace since some of the tests use it when toggling cache.
- wtf/win/PathWalker.cpp:
LayoutTests:
- platform/wincairo/TestExpectations:
- 11:53 AM Changeset in webkit [256632] by
-
- 26 edits in trunk
NetworkLoadMetrics should be shared by multiple ResourceResponse instances
https://bugs.webkit.org/show_bug.cgi?id=207747
Reviewed by Keith Miller.
Source/WebCore:
ResourceResponse is value data, and it is copied multiple times in various places, (1) to create a new ResourceResponse
which has slightly different fields, or (1) to hold ResourceResponse even after loading finishes. For example, DocumentLoader
has Vector<ResourceResponse> to replay response dispatching in the case of loading from BackForwardCache. The problem is
that ResourceResponse is very large: 440 bytes.
While we sometimes copy ResourceResponse to modify some part of it, NetworkLoadMetrics is immutable. It is set when response is created,
and is never changed. And NetworkLoadMetrics is large: sizeof(NetworkLoadMetrics) is 184 bytes. Given that we have multiple
copies of ResourceResponse in WebCore, we should share NetworkLoadMetrics by them.
This patch puts Box<NetworkLoadMetrics> in ResourceResponse to share it with all copied ResourceResponses. We do not make NetworkLoadMetrics
RefCounted<> for now since some legit data structures embed NetworkLoadMetrics. This patch adds ArgumentCoder for Box so that we
can encode / decode Box<NetworkLoadMetrics> in ResourceResponse in IPC. To ensure NetworkLoadMetrics in ResourceResponse immutable,
we add ResourceResponse::setDeprecatedNetworkLoadMetrics instead of modifying NetworkLoadMetrics already created in ResourceResponse.
We also attempt to compact ResourceResponse more by using bit-fields. And removing m_isValid field in ParsedContentRange since
this can be represented by the different field. These changes make sizeof(ResourceResponse) from 440 to 248.
No behavior change.
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::buildObjectForResourceResponse):
- inspector/agents/InspectorNetworkAgent.h:
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didFinishLoading):
- page/PerformanceTiming.cpp:
(WebCore::PerformanceTiming::domainLookupStart const):
(WebCore::PerformanceTiming::domainLookupEnd const):
(WebCore::PerformanceTiming::connectStart const):
(WebCore::PerformanceTiming::connectEnd const):
(WebCore::PerformanceTiming::secureConnectionStart const):
(WebCore::PerformanceTiming::requestStart const):
(WebCore::PerformanceTiming::responseStart const):
- platform/network/NetworkLoadMetrics.h:
- platform/network/ParsedContentRange.cpp:
(WebCore::areContentRangeValuesValid):
(WebCore::parseContentRange):
(WebCore::ParsedContentRange::ParsedContentRange):
(WebCore::ParsedContentRange::headerValue const):
- platform/network/ParsedContentRange.h:
(WebCore::ParsedContentRange::isValid const):
(WebCore::ParsedContentRange::invalidValue):
(WebCore::ParsedContentRange::MarkableTraits::isEmptyValue):
(WebCore::ParsedContentRange::MarkableTraits::emptyValue):
(WebCore::ParsedContentRange::ParsedContentRange): Deleted.
- platform/network/ResourceHandle.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::crossThreadData const):
(WebCore::ResourceResponseBase::fromCrossThreadData):
(WebCore::ResourceResponseBase::compare):
- platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetricsOrNull const):
(WebCore::ResourceResponseBase::setDeprecatedNetworkLoadMetrics):
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::deprecatedNetworkLoadMetrics const): Deleted.
- platform/network/cf/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
- platform/network/cocoa/NetworkLoadMetrics.mm:
(WebCore::copyTimingData):
- platform/network/curl/CurlResourceHandleDelegate.cpp:
(WebCore::CurlResourceHandleDelegate::curlDidReceiveResponse):
- platform/network/curl/ResourceResponse.h:
- platform/network/curl/ResourceResponseCurl.cpp:
(WebCore::ResourceResponse::setDeprecatedNetworkLoadMetrics): Deleted.
- platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::getConnectionTimingData):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
Source/WebKit:
Add ArgumentCoder support for Box<T>.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- Platform/IPC/ArgumentCoders.h:
(IPC::ArgumentCoder<Box<T>>::encode):
(IPC::ArgumentCoder<Box<T>>::decode):
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentRange.cpp:
(TestWebKitAPI::TEST):
- 11:29 AM Changeset in webkit [256631] by
-
- 6 edits in trunk/Source/WebCore
Implementation of AXIsolatedObject::isDescendantOfObject.
https://bugs.webkit.org/show_bug.cgi?id=207697
Reviewed by Chris Fleizach.
- Moved the implementation of AccessibilityObject::isDescendantOfObject
and isAncestorOfObject to the base class AXCoreObject.
- Implemented AXIsolatedObject::hasChildren by caching the value from
the associated AXObject. It is used in isDescendantOfObject.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isDescendantOfObject const): MOved to AXCoreObject.
(WebCore::AccessibilityObject::isAncestorOfObject const): Moved to AXCoreObject.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::isDescendantOfObject const):
(WebCore::AXCoreObject::isAncestorOfObject const):
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Sets the HasChildren attribute.
(WebCore::AXIsolatedObject::hasChildren const): Deleted.
(WebCore::AXIsolatedObject::isDescendantOfObject const): Deleted.
(WebCore::AXIsolatedObject::isAncestorOfObject const): Deleted.
- accessibility/isolatedtree/AXIsolatedObject.h:
- 11:22 AM Changeset in webkit [256630] by
-
- 6 edits in trunk/Source/WebCore
When updating a subtree of the IsolatedTree, first remove the entire subtree, not just the subtree root.
https://bugs.webkit.org/show_bug.cgi?id=207759
Reviewed by Chris Fleizach.
When updating an IsolatedTree subtree, we were removing just the root
of the subtree. Added AXIsolatedTree::removeSubtree that is now used in
updateIsolatedTree.
- accessibility/AXObjectCache.cpp:
(WebCore::createIsolatedTreeHierarchy): If the wrapper is attached
during creation, set it to null in the NodeChange so that it is not
re-attached on the AX thread.
(WebCore::AXObjectCache::updateIsolatedTree): removeSubtree instead of
removeNode.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::~AXIsolatedObject): When an IsolatedObject
is destroyed, it must have been detached from its wrapper.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::NodeChange::NodeChange): Constructors now
take an IsolatedObject instead of a Ref.
(WebCore::AXIsolatedTree::removeNode):
(WebCore::AXIsolatedTree::removeSubtree):
(WebCore::AXIsolatedTree::applyPendingChanges): Attach wrappers only if
not null. The IsolatedObject refCount must be 2 at that point.
- accessibility/isolatedtree/AXIsolatedTree.h:
- 11:09 AM Changeset in webkit [256629] by
-
- 4 edits in trunk
Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
https://bugs.webkit.org/show_bug.cgi?id=207360
<rdar://problem/57825317>
Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
Reviewed by Ryosuke Niwa.
Source/WTF:
- wtf/URLHelpers.cpp:
(WTF::URLHelpers::mapHostName):
Tools:
- TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 11:05 AM Changeset in webkit [256628] by
-
- 2 edits in trunk/LayoutTests
LayoutTests/imported/w3c:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>
Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.
Mark Web Platform Tests progressions.
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
Source/WebCore:
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>
Patch by Antoine Quint <graouts@webkit.org> on 2020-02-14
Reviewed by Simon Fraser.
While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.
To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.
If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.
Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.
- animation/AnimationTimeline.cpp:
(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
- animation/AnimationTimeline.h:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):
- animation/CSSAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::unanimatedStyle const):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
LayoutTests:
[ macOS wk2 ] webgpu/whlsl/dereference-pointer-should-type-check.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207779
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 11:00 AM Changeset in webkit [256627] by
-
- 15 edits in trunk
[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=207760
<rdar://problem/59458111>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Mark Web Platform Tests progressions.
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/DocumentTimeline/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
Source/WebCore:
While we would consider the unanimated style of CSS Animations specifically when considering what the "start" style values (before-change style in spec terminology)
should be when considering whether to start a CSS Transition during style resolution, we would not consider other types of animations, specifically JS-created Web
Animations. However, Web Platform Tests specifically test whether changes made using the Web Animations API may trigger transitions, and until now they would because
the RenderStyle used to determine the before-change style was the style from the previous resolution, which would include animated values.
To fix this, we make it so that KeyframeEffect objects now keep a copy of the unanimated style used when blending animated values for the very first time. That style
is cleared each time keyframes change, which is rare, but may happen through the Web Animations API. Then in AnimationTimeline::updateCSSTransitionsForElementAndProperty(),
we look for a KeyframeEffect currently affecting the property for which we're considering starting a CSS Transition, and use its unanimated style.
If that unanimated style has not been set yet, this is because the KeyframeEffect has not had a chance to apply itself with a non-null progress. In this case, the before-change
and after-change styles should be the same in order to prevent a transition from being triggered as the unanimated style for this keyframe effect will most likely be this
after-change style, or any future style change that may happen before the keyframe effect starts blending animated values.
Finally, tracking the unanimated style at the KeyframeEffect level means we no longer to track it specifically for CSSAnimation.
- animation/AnimationTimeline.cpp:
(WebCore::keyframeEffectForElementAndProperty):
(WebCore::AnimationTimeline::updateCSSTransitionsForElementAndProperty):
- animation/AnimationTimeline.h:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):
- animation/CSSAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::animatesProperty const): Because the backing KeyframeList object may not have been created by the first time we query a KeyframeEffect during
CSS Transitions resolution, we provide a method that will check the values provided by the Web Animations API to determine whether it targets a given CSS property.
(WebCore::KeyframeEffect::clearBlendingKeyframes):
(WebCore::KeyframeEffect::computeDeclarativeAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::computeCSSAnimationBlendingKeyframes):
(WebCore::KeyframeEffect::apply):
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::unanimatedStyle const):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::createAnimatedElementUpdate):
LayoutTests:
Mark that a couple of tests are no longer flaky.
- 10:54 AM Changeset in webkit [256626] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] http/tests/media/now-playing-info.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206699
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:47 AM Changeset in webkit [256625] by
-
- 2 edits in trunk/LayoutTests
LayoutTest fast/scrolling/scroll-container-horizontally.html frequently times out & fails
https://bugs.webkit.org/show_bug.cgi?id=158237
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:37 AM Changeset in webkit [256624] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] IndexedDB tests are flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207778
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 10:29 AM Changeset in webkit [256623] by
-
- 4 edits2 adds in trunk
Ensure animations that lose their effect don't schedule an animation update
https://bugs.webkit.org/show_bug.cgi?id=207713
rdar://59174840
Patch by Sunny He <sunny_he@apple.com> on 2020-02-14
Reviewed by Antoine Quint.
Source/WebCore:
An active animation for which the effect is removed may be considered for
an upcoming animation resolution. However, WebAnimation::timeToNextTick()
expects a valid effect to be available to be able to determine timing.
We now check an animation is relevant before calling timeToNextTick() and
add an ASSERT() in that function to catch cases where an animation effect
might not be available.
Source/WebCore:
Test: webanimations/animation-null-effect.html
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::scheduleNextTick):
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::timeToNextTick const):
LayoutTests:
- webanimations/animation-null-effect-expected.txt: Added.
- webanimations/animation-null-effect.html: Added.
- 10:23 AM Changeset in webkit [256622] by
-
- 2 edits in trunk/LayoutTests
[EME][GStreamer] REGRESSION(r256429): Several encrypted-media tests are crashing or failing
https://bugs.webkit.org/show_bug.cgi?id=207741
Skip WPT encrypted-media tests, in-line with the expectations of
the GTK port until they have been properly triaged.
Unreviewed gardening.
- platform/wpe/TestExpectations: Skip all WPT encrypted-media
tests. They behave in incompliant ways and need time for correct
triage.
- 10:08 AM Changeset in webkit [256621] by
-
- 27 edits in trunk/Source/WebCore
IndexedDB: prefetch cursor records on client side
https://bugs.webkit.org/show_bug.cgi?id=207602
<rdar://problem/58483927>
Reviewed by Brady Eidson.
Cache cursor records on client side and use those records for iterate operations.
This makes cursor continue/advance tests in PerformanceTests/IndexedDB/basics ~3x faster.
- Headers.cmake:
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::setGetResult): Record the ID of TransactionOperation that updates cached record.
(WebCore::IDBCursor::iterateWithPrefetchedRecords): IDBCursor uses cached records for iterate opertaions if
there is no write operation between last cached records update and current iteration operation.
(WebCore::IDBCursor::clearPrefetchedRecords):
- Modules/indexeddb/IDBCursor.h:
- Modules/indexeddb/IDBGetResult.cpp:
(WebCore::IDBGetResult::isolatedCopy):
- Modules/indexeddb/IDBGetResult.h:
(WebCore::IDBGetResult::IDBGetResult):
(WebCore::IDBGetResult::prefetchedRecords const):
(WebCore::IDBGetResult::encode const):
(WebCore::IDBGetResult::decode):
- Modules/indexeddb/IDBRequest.cpp: Record corresponding TransactionOperation ID in request.
(WebCore::IDBRequest::didOpenOrIterateCursor):
- Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::pendingCursor const):
(WebCore::IDBRequest::setTransactionOperationID):
- Modules/indexeddb/IDBTransaction.cpp: If a cursor iterate request can be handled with cached records,
IDBClient does not need to send request to IDBServer and wait for response. But requests before that iterate
request may need to wait server to answer, and spec requires to handle requests in order. Therefore, we now keep
all the results in m_transactionOperationResultMap and handle them according to the ordering in
m_transactionOperationsInProgressQueue.
(WebCore::IDBTransaction::abortInProgressOperations):
(WebCore::IDBTransaction::removeRequest): Because result of a cursor request can be answered sooner, it is
possible that in finishedDispatchEventForRequest, m_currentlyCompletingRequest (which is a cursor request) is
set to nullptr, and then it is set back to the same cursor request in handleOperationsCompletedOnServer right
after. This happens in dispatchEvent of the cursor request, where request would remove itself from request list
of transaction at the end.
In this case, when request list becomes empty, transaction may commit automatically. But transaction should not
because that request is still valid as m_currentlyCompletingRequest and should not be removed from list.
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::handleOperationsCompletedOnServer): All requests were sent to IDBServer and the
response/result ordering would naturally be the same as request order. Now that results can be created in both
IDBClient and IDBServer, we no longer handle requests using m_completedOnServerQueue.
(WebCore::IDBTransaction::createObjectStore): Mark as write operation to track last write operation.
(WebCore::IDBTransaction::renameObjectStore): Ditto.
(WebCore::IDBTransaction::createIndex): Ditto.
(WebCore::IDBTransaction::renameIndex): Ditto.
(WebCore::IDBTransaction::requestDeleteRecord): Ditto.
(WebCore::IDBTransaction::requestClearObjectStore): Ditto.
(WebCore::IDBTransaction::requestPutOrAdd): Ditto.
(WebCore::IDBTransaction::deleteObjectStore): Ditto.
(WebCore::IDBTransaction::deleteIndex): Ditto.
(WebCore::IDBTransaction::iterateCursorOnServer): Only use cached records if the request does not specify target
key. If cursor is iterated successfully with cache, send a message to IDBServer to notify about the progress.
Otherwise, fall back to depend on IDBServer to answer the request.
(WebCore::IDBTransaction::generateOperationID): TransactionOperation ID is unique in a transaction.
- Modules/indexeddb/IDBTransaction.h:
- Modules/indexeddb/IndexedDB.h:
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::IDBConnectionProxy::iterateCursor): Don't track result of TransactionOperation in
IDBConnectionProxy if TransactionOperation does not need a reply from IDBServer.
- Modules/indexeddb/client/TransactionOperation.cpp:
(WebCore::IDBClient::TransactionOperation::TransactionOperation):
- Modules/indexeddb/client/TransactionOperation.h: Add ID to TransactionOperation.
(WebCore::IDBClient::TransactionOperation::operationID const):
(WebCore::IDBClient::TransactionOperation::TransactionOperation):
- Modules/indexeddb/server/IDBBackingStore.h: remove prefetchCursor as it is not used now.
- Modules/indexeddb/server/MemoryIDBBackingStore.h: Ditto. Also this patch only deals with prefetching in
persistent store.
- Modules/indexeddb/server/MemoryIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::createIndex):
(WebCore::IDBServer::SQLiteIDBBackingStore::getAllIndexRecords):
(WebCore::IDBServer::SQLiteIDBBackingStore::getIndexRecord):
(WebCore::IDBServer::SQLiteIDBBackingStore::iterateCursor): Only prefetch at when request needs to be answered.
(WebCore::IDBServer::SQLiteIDBBackingStore::prefetchCursor): Deleted.
- Modules/indexeddb/server/SQLiteIDBBackingStore.h:
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::SQLiteIDBCursor::currentData): Provide an option to include prefetched records in result.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged): Reset count to prefetch when there is a
change. This is used with increaseCountToPrefetch to make prefetch adaptive.
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::prefetchOneRecord):
(WebCore::IDBServer::SQLiteIDBCursor::increaseCountToPrefetch):
(WebCore::IDBServer::SQLiteIDBCursor::prefetch): Count to prefetch is decided by SQLiteCursor now.
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::currentValue const):
- Modules/indexeddb/server/SQLiteIDBCursor.h:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::iterateCursor): Move call to prefetch cursor to SQLiteIDBBackingStore.
(WebCore::IDBServer::UniqueIDBDatabase::prefetchCursor): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.h:
- Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor):
- Modules/indexeddb/shared/IDBCursorRecord.h: Stop using pointer for IDBValue for easier encoding and decoding.
(WebCore::IDBCursorRecord::size const):
(WebCore::IDBCursorRecord::isolatedCopy const):
- Modules/indexeddb/shared/IDBIterateCursorData.cpp:
(WebCore::IDBIterateCursorData::isolatedCopy const):
- Modules/indexeddb/shared/IDBIterateCursorData.h: Add an option to let IDBServer know whether it should answer
the cursor request.
(WebCore::IDBIterateCursorData::encode const):
(WebCore::IDBIterateCursorData::decode):
- WebCore.xcodeproj/project.pbxproj:
- 10:05 AM Changeset in webkit [256620] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][EME] Fix warnings in LOG_DISABLED build
https://bugs.webkit.org/show_bug.cgi?id=207691
Unreviewed build fix.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp: It would
be nice if the LOG macros could arrange for the VA_ARGS to be
UNUSED_VARIABLE's. Not sure if that is possible, so be ugly with
the ifdef's instead.
(WebCore::CDMProxyClearKey::cencSetCounterVector):
(WebCore::CDMProxyClearKey::cencSetDecryptionKey):
(WebCore::CDMProxyClearKey::cencDecryptFullSample):
- 9:52 AM Changeset in webkit [256619] by
-
- 18 edits in trunk
[Web Animations] Ensure CSS Transition and CSS Animation events are queued, sorted and dispatched by their timeline
https://bugs.webkit.org/show_bug.cgi?id=207364
<rdar://problem/59370413>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
There are some progressions but also some "regressions". The progressions are real, showing the delivery of all animation events at the correct
time. However, the regressions are misleading. The fact that the "style change" tests would work was due to a design issue in the test which would
only wait one frame to detect whether a CSS Transition was started after a change made through the Web Animations API. These would work because
events were queued in the next frame, but delivered later due to the dedicated per-animation queue used, which meant the test was fooled into
thinking the CSS Transition did not start, as expected. Changing those test to use more than one frame to test for the lack of a CSS Transition
would have shown the FAIL results.
However, in order to not regress our WPT score, the issue of "style change" events will be addressed in a follow-up patch.
- web-platform-tests/css/css-transitions/CSSTransition-startTime.tentative-expected.txt:
- web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:
- web-platform-tests/web-animations/interfaces/Animation/style-change-events-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/style-change-events-expected.txt:
- web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-expected.txt:
Source/WebCore:
Until now, AnimationPlaybackEvent events, which are new events introduced by the Web Animations spec, were enqueued in a shared queue on the DocumentTimeline
and dispatched during the "update animations and send events" procedure. However, AnimationEvent and TransitionEvent events, dispatched by CSS Animations
and CSS Transitions, were dispatched via a dedicated per-animation queue, which meant typically that those events were dispathed one runloop after the
AnimationPlaybackEvent events.
We now remove the dedicated per-animation queue and enqueue all events in the shared DocumentTimeline queue for dispatch during the "update animations and send
events" procedure. To do this correctly, we need to do a couple of other things that ensure we don't regress tests.
First, we update the DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState() to account for whether there are pending animation events,
guaranteeing that an animation update is scheduled should there be any.
Second, when animation events are enqueued in DocumentTimeline::enqueueAnimationEvent() we schedule an animation update if needed, since we know we now
have pending events that will need to be delivered in an upcoming update. We also maintain a flag between the start of the "update animations and send events"
procedure and the moment when the pending animation events queue is cleared prior to dispatching events so that events enqueued in the meantime do not
prematurely schedule animation resolution. The need for a new animation resolution will be checked at the end of the procedure.
Finally, declarative animations used to have a special suclass of WebAnimation::needsTick() that would check whether they had any pending events, ensuring
they would not be removed prematurely. We now reset a flag to false as WebAnimation::tick() is called (as part of the "update animations and send events"
procedure) and set it to true in case an animation is enqueued. This flag is then used in needsTick() to guarantee the animation is not removed before
the DocumentTimeline has had a chance to dispatch the enqueued event.
Note also that, for clarity, the DocumentTimeline::unscheduleAnimationResolution() was renamed to DocumentTimeline::clearTickScheduleTimer() since it wouldn't
actually cancel a previous animation resolution schedule.
- animation/CSSTransition.h: Fix a newly found build error due to the missing wtf/MonotonicTime.h header.
- animation/DeclarativeAnimation.cpp: Remove all code related to the dedicated per-animation queue and instead call the new WebAnimation::enqueueAnimationEvent()
method to enqueue events on the DocumentTimeline.
(WebCore::DeclarativeAnimation::DeclarativeAnimation):
(WebCore::DeclarativeAnimation::tick):
(WebCore::DeclarativeAnimation::enqueueDOMEvent):
- animation/DeclarativeAnimation.h:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::detachFromDocument): Ensure the pending events queue is cleared when the timeline is detached from a document, ensuring that there no
longer events that would cause a ref-cycle (DocumentTimeline -> AnimationPlaybackEvent -> WebAnimation -> DocumentTimeline).
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::removeAnimation):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::clearTickScheduleTimer):
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState const):
(WebCore::DocumentTimeline::updateCurrentTime):
(WebCore::DocumentTimeline::updateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::scheduleNextTick):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::enqueueAnimationEvent):
- animation/DocumentTimeline.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
(WebCore::WebAnimation::enqueueAnimationEvent):
(WebCore::WebAnimation::needsTick const):
(WebCore::WebAnimation::tick):
- animation/WebAnimation.h:
LayoutTests:
Fix a couple of tests that made some incorrect assumptions.
- TestExpectations: imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is no longer flaky.
- compositing/backing/animate-into-view.html: Because the "animationstart" event is now dispatched during the "update animations and send events" procedure, which happens
during page rendering _before_ rAF callbacks are serviced, we must remove the rAF callback used prior to adding the "animationstart" event listener or else we would never
get it and the test would time out.
- webanimations/css-transition-in-flight-reversal-accelerated.html: We must wait for the initial transition to start and then two frames before reversing the transition,
to be certain that the animation did start. Indeed, the "transitionstart" event will be fired right before the next rAF callback is called, as the animation starts in that
very same frame, and so progress will be 0 and the transition wouldn't be reversable until the next frame when the animation has progress > 0.
- 9:49 AM Changeset in webkit [256618] by
-
- 2 edits in trunk/LayoutTests
N[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_advance_index3.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207776
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:39 AM Changeset in webkit [256617] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/cursor-overloads.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207775
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:22 AM Changeset in webkit [256616] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/third-party-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207774
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 9:06 AM Changeset in webkit [256615] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/persistent-importScripts.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207771
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:52 AM Changeset in webkit [256614] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207647
Updating expectations
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 8:44 AM Changeset in webkit [256613] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/cache/disk-cache/disk-cache-vary-cookie.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207770
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:43 AM Changeset in webkit [256612] by
-
- 3 edits in trunk/Source/WebKit
[WPE] WPEQtView.h includes the uninstalled WPEQtViewBackend.h
https://bugs.webkit.org/show_bug.cgi?id=207765
Reviewed by Philippe Normand.
Do a forward declaration instead of including the header.
- UIProcess/API/wpe/qt/WPEQtView.cpp:
- UIProcess/API/wpe/qt/WPEQtView.h:
- 8:35 AM Changeset in webkit [256611] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] crypto/subtle/rsa-indexeddb-non-exportable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207769
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:34 AM Changeset in webkit [256610] by
-
- 17 edits2 copies in trunk/Source/WebCore
[Web Animations] Make all animation event types inherit from the same base class
https://bugs.webkit.org/show_bug.cgi?id=207629
Reviewed by Simon Fraser.
Currently we dispatch events CSS Transitions and CSS Animations events using a dedicated event queue on DeclarativeAnimation, while the events
added by the Web Animations specification (of type AnimationPlaybackEvent) are dispatched using a shared queue on the DocumentTimeline that is
processed during the "update animations and send events procedure". The Web Animations specification dictates that all events should be dispatched
during that procedure, which includes sorting of such events based on their timeline time and associated animation relative composite order.
In this patch, we prepare the work towards spec compliance for animation events dispatch by making all event types (AnimationPlaybackEvent,
TransitionEvent and AnimationEvent) inherit from a single AnimationEventBase interface. This will allow DocumentTimeline to enqueue, sort and
dispatch all such events with a single queue in a future patch.
Due to CSSAnimationController, we must make the "timeline time" and "animation" parameters optional. When we drop support for CSSAnimationController
we'll be able to enforce stronger requirements for these.
No new test since this should not introduce any behavior change.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/AnimationEventBase.cpp: Added.
(WebCore::AnimationEventBase::AnimationEventBase):
- animation/AnimationEventBase.h: Added.
(WebCore::AnimationEventBase::create):
(WebCore::AnimationEventBase::isAnimationPlaybackEvent const):
(WebCore::AnimationEventBase::isAnimationEvent const):
(WebCore::AnimationEventBase::isTransitionEvent const):
(WebCore::AnimationEventBase::timelineTime const):
(WebCore::AnimationEventBase::animation const):
- animation/AnimationPlaybackEvent.cpp:
(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
(WebCore::AnimationPlaybackEvent::bindingsTimelineTime const):
- animation/AnimationPlaybackEvent.h:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::createEvent):
- animation/CSSAnimation.h:
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::createEvent):
- animation/CSSTransition.h:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::enqueueDOMEvent):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::enqueueAnimationPlaybackEvent):
- dom/AnimationEvent.cpp:
(WebCore::AnimationEvent::AnimationEvent):
- dom/AnimationEvent.h:
- dom/TransitionEvent.cpp:
(WebCore::TransitionEvent::TransitionEvent):
- dom/TransitionEvent.h:
- page/animation/CSSAnimationController.cpp:
(WebCore::CSSAnimationControllerPrivate::fireEventsAndUpdateStyle):
- 8:28 AM Changeset in webkit [256609] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
https://bugs.webkit.org/show_bug.cgi?id=205216
Correcting typo.
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:22 AM Changeset in webkit [256608] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening more debug timeouts
https://bugs.webkit.org/show_bug.cgi?id=207764
From debug bot build 5916.
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-14
- platform/gtk/TestExpectations:
- 8:20 AM Changeset in webkit [256607] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/useragent.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207768
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 8:18 AM Changeset in webkit [256606] by
-
- 2 edits in trunk/LayoutTests
[ WK2 ] Layout Test http/wpt/service-workers/update-service-worker.https.html is a flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=187766
Set expectations to include failing.
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 8:01 AM Changeset in webkit [256605] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/online.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207767
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 7:54 AM Changeset in webkit [256604] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/header-filtering.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207766
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 7:27 AM Changeset in webkit [256603] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/file-upload.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207763
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 7:20 AM Changeset in webkit [256602] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/wpt/service-workers/check-service-worker-header.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207762
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 6:42 AM Changeset in webkit [256601] by
-
- 6 edits in trunk
[CMake] Add Fontconfig::Fontconfig target
https://bugs.webkit.org/show_bug.cgi?id=207730
Reviewed by Adrian Perez de Castro.
.:
Redo the Fontconfig find module to export a target.
- Source/cmake/FindFontconfig.cmake:
Source/WebCore:
Use the Fontconfig::Fontconfig target.
- platform/FreeType.cmake:
Tools:
Use the Fontconfig::Fontconfig target.
- WebKitTestRunner/PlatformGTK.cmake:
- 5:27 AM Changeset in webkit [256600] by
-
- 1 copy in releases/WPE WebKit/webkit-2.26.4
WPE WebKit 2.26.4
- 5:26 AM Changeset in webkit [256599] by
-
- 4 edits in releases/WebKitGTK/webkit-2.26
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.26.4 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.26.4.
- 2:08 AM Changeset in webkit [256598] by
-
- 1 copy in releases/WebKitGTK/webkit-2.26.4
WebKitGTK 2.26.4
- 2:07 AM Changeset in webkit [256597] by
-
- 4 edits in releases/WebKitGTK/webkit-2.26
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.26.4 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.26.4.
- 1:40 AM Changeset in webkit [256596] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.26
Merge r254301 - 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.
- 1:40 AM Changeset in webkit [256595] by
-
- 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore
Merge r253662 - Limit URL to reasonable size
https://bugs.webkit.org/show_bug.cgi?id=203825
<rdar://problem/56878680>
Reviewed by Ryosuke Niwa.
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay const): Place an upper bound on the amount of
memory a URL may consume.
- 1:40 AM Changeset in webkit [256594] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.26
Merge r254220 - Fix specification violation in Font Loading API
https://bugs.webkit.org/show_bug.cgi?id=205901
<rdar://problem/58083743>
Reviewed by Brent Fulgham.
Source/WebCore:
Our Font Loading API does not comply with the spec:
If the parsed value is a CSS-wide keyword, return a syntax error.
Rather than crashing, we should return a syntax error.
Test: fast/text/font-loading-global-keyword.html
- css/CSSFontFaceSet.cpp:
(WebCore::computeFontSelectionRequest):
(WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
LayoutTests:
Test all the entry points to the CSS Font Loading API that accept CSS keywords.
- fast/text/font-loading-global-keyword-expected.txt: Added.
- fast/text/font-loading-global-keyword.html: Added.
- 1:40 AM Changeset in webkit [256593] by
-
- 4 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore
Merge r253654 - executeIfJavaScriptURL should check requester's security origin
https://bugs.webkit.org/show_bug.cgi?id=205324
Reviewed by Brent Fulgham.
Don't execute the JavaScript in ScriptController::executeIfJavaScriptURL if the security origin
of the current document is no longer accessible from the request originator's security origin.
- bindings/js/ScriptController.cpp:
(WebCore::ScriptController::executeIfJavaScriptURL): Added a check.
- bindings/js/ScriptController.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected): Pass around the security origin of the requester.
(WebCore::FrameLoader::submitForm):
- 1:40 AM Changeset in webkit [256592] by
-
- 6 edits4 adds in releases/WebKitGTK/webkit-2.26
Merge r253563 - Consider top-level context whose origin is unique as insecure
https://bugs.webkit.org/show_bug.cgi?id=205111
Source/WebCore:
Reviewed by Brent Fulgham.
Tests: http/tests/security/top-level-unique-origin.https.html
http/tests/security/top-level-unique-origin2.https.html
- dom/Document.cpp:
(WebCore::Document::isSecureContext const):
There is no guarantee that top level unique origin contexts like data URL are SecureContext.
This patch makes them no longer SecureContext.
This helps getting closer to https://w3c.github.io/webappsec-secure-contexts/#is-url-trustworthy
which identifies all unique origins as "Not Trustworthy".
Child unique origin contexts will stay SecureContext if their parents are.
Tools:
<rdar://problem/57834967>
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKitCocoa/DeviceOrientation.mm:
(TEST):
Disable secure context checks so that loading directly about:blank from the API test
can call DeviceOrientationEvent.requestPermission() successfully.
LayoutTests:
Reviewed by Brent Fulgham.
- http/tests/security/top-level-unique-origin.https-expected.txt: Added.
- http/tests/security/top-level-unique-origin.https.html: Added.
- http/tests/security/top-level-unique-origin2.https-expected.txt: Added.
- http/tests/security/top-level-unique-origin2.https.html: Added.
- platform/win/TestExpectations: Skipping second test as timing out in windows.
- 1:40 AM Changeset in webkit [256591] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.26
Merge r253544 - SecurityOrigin should be unique for null blob URLs that have been unregistered
https://bugs.webkit.org/show_bug.cgi?id=205169
Reviewed by Darin Adler.
Source/WebCore:
In case we cannot retrieve a cached origin for a null origin, just create a unique one.
This is better than having an origin with an empty host and empty scheme.
Test: http/tests/security/blob-null-url-location-origin.html
- fileapi/ThreadableBlobRegistry.cpp:
(WebCore::ThreadableBlobRegistry::unregisterBlobURL):
(WebCore::ThreadableBlobRegistry::getCachedOrigin):
LayoutTests:
- http/tests/security/blob-null-url-location-origin-expected.txt: Added.
- http/tests/security/blob-null-url-location-origin.html: Added.
- platform/win/TestExpectations: Skipping test as timing out in windows.
- 1:39 AM Changeset in webkit [256590] by
-
- 3 edits in releases/WebKitGTK/webkit-2.26/Source/ThirdParty/ANGLE
Merge r256491 - Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.
- changes.diff: Updated.
- include/platform/Platform.h: Add missing #include to get size_t.
- src/common/PackedEnums.h: Remove problematic const_casts.
- 1:39 AM Changeset in webkit [256589] by
-
- 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit
Merge r255865 - [GTK][WPE] Add more fontconfig paths into the sandbox
https://bugs.webkit.org/show_bug.cgi?id=207293
Reviewed by Michael Catanzaro.
These paths were reported to be used on Debian.
- UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::bindFonts):
- 1:39 AM Changeset in webkit [256588] by
-
- 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebCore
Merge r255824 - [GTK] Cannot perform most local loads with sandbox enabled
https://bugs.webkit.org/show_bug.cgi?id=202071
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-05
Reviewed by Carlos Garcia Campos.
SecurityOrigin::canDisplay is improperly checking whether the target file URL points to a
file on the same "volume" (mount point) as the source file. That can't happen here because
this code is running in the web process, but only the network process has access to the
unsandboxed filesystem. This code can only check whether the target file exists within the
sandbox's mount namespace, but that's not what we want to do because we're not going to load
that file, we're going to ask the network process to load the file with the same path
outside the mount namespace.
We can probably live without this check. But if bringing it back is desired, it has to be
done someplace totally different, in network process code rather than web process code.
- page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::canDisplay const):
- 1:39 AM Changeset in webkit [256587] by
-
- 2 edits in releases/WebKitGTK/webkit-2.26/Source/WebKit
Merge r250077 - [GTK] Compilation errors when GL is disabled
https://bugs.webkit.org/show_bug.cgi?id=200223
Fix following compilation error when building with ENABLE_OPENGL=OFF
../../Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp:123:51: error: use of undeclared identifier 'WaylandCompositor'
parameters.waylandCompositorDisplayName = WaylandCompositor::singleton().displayName();
Patch by Yury Semikhatsky <yurys@chromium.org> on 2019-09-18
Reviewed by Philippe Normand.
- UIProcess/glib/WebProcessPoolGLib.cpp:
(WebKit::WebProcessPool::platformInitializeWebProcess): only make a call when using EGL, this matches
guards in WaylandCompositor.h. The condition was changed in r245807.
- 12:40 AM Changeset in webkit [256586] by
-
- 2 edits in trunk/LayoutTests
[WPE] Gardening, several encrypted-media tests are failing or crashing
https://bugs.webkit.org/show_bug.cgi?id=207742
Unreviewed gardening.
- platform/wpe/TestExpectations:
Feb 13, 2020:
- 10:50 PM Changeset in webkit [256585] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed build fix for WebCore shared library builds.
- crypto/openssl/SerializedCryptoKeyWrapOpenSSL.cpp: Include "SerializedCryptoKeyWrap.h".
- 7:48 PM Changeset in webkit [256584] by
-
- 2 edits in trunk/Source/WebCore
MediaToolbox may not be available; check before calling MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207733
<rdar://problem/59441647>
Reviewed by Maciej Stachowiak.
- platform/mac/PlatformScreenMac.mm:
(WebCore::setShouldOverrideScreenSupportsHighDynamicRange):
- 7:41 PM Changeset in webkit [256583] by
-
- 29 edits5 adds in trunk
Source/WebCore:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>
Reviewed by Chris Dumez.
Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html
http/tests/resourceLoadStatistics/prevalent-domains-per-page.html
Logs subresource loads in CachedResourceLoader::requestResource, and
redirects in ResourceLoader::willSendRequestInternal,
and reports domains to the Web Process.
- loader/FrameLoaderClient.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::requestResource):
- loader/cache/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal):
Source/WebKit:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>
Reviewed by Chris Dumez.
Tests: http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html
http/tests/resourceLoadStatistics/prevalent-domains-per-page.html
Added an API to report prevalent domains. The Web Process sends all
new loads to the Network Process, which determines if the resources are
prevalent. When the API is queried, the Web Process reports these
domains to the UI Process.
The WebPage keeps a hash set of previously loaded domains to avoid
spamming IPC with repeat domains.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::requestStorageAccessUnderOpener):
(WebKit::NetworkConnectionToWebProcess::reportSubresourceLoadToDomain):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _getPrevalentDomainsFor:completionHandler:]):
(-[WKWebsiteDataStore _clearPrevalentDomainsFor:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
- UIProcess/WebPageProxy.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::addLoadedRegistrableDomain):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::addLoadedRegistrableDomain):
(WebKit::WebPage::getPrevalentDomains):
(WebKit::WebPage::clearPrevalentDomains):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>
Reviewed by Chris Dumez.
Added WebKitTestRunner functions so this functionality can be tested.
clearPrevalentDomains should be called between tests to reset the
state.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::getPrevalentDomains):
(WTR::TestRunner::callDidReceivePrevalentDomainsCallback):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceivePrevalentDomains):
- WebKitTestRunner/TestInvocation.h:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::getPrevalentDomains):
(WTR::TestController::clearPrevalentDomains):
LayoutTests:
Expose prevalent domains on a per-page basis
https://bugs.webkit.org/show_bug.cgi?id=207523
<rdar://problem/59270758>
Reviewed by Chris Dumez.
Added 2 new tests for the resource load statistics database and
memory stores. Added a basic iframe that both tests can use to test
if a resource load from a prevalent domain gets reported properly.
- http/tests/resourceLoadStatistics/prevalent-domains-per-page-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/prevalent-domains-per-page-database.html: Added.
- http/tests/resourceLoadStatistics/prevalent-domains-per-page-expected.txt: Added.
- http/tests/resourceLoadStatistics/prevalent-domains-per-page.html: Added.
- http/tests/resourceLoadStatistics/resources/basic-iframe.html: Added.
- 7:32 PM Changeset in webkit [256582] by
-
- 2 edits in trunk/LayoutTests
[GTK] Gardening more flaky crashes
https://bugs.webkit.org/show_bug.cgi?id=207738
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-13
- platform/gtk/TestExpectations:
- 7:13 PM Changeset in webkit [256581] by
-
- 3 edits in trunk/Tools
[Win][MiniBrowser] Reimplement the toolbar by using toolbar common control
https://bugs.webkit.org/show_bug.cgi?id=207682
Reviewed by Ross Kirsling.
The toolbar placed button common controls as the toolbar buttons.
However, because these buttons are focusable, shortcut keys don't
work after clicking them.
Added Home button, Add to Bookmarks button, dropdown buttons of
back and forward buttons, but they aren't implemented yet. Just
placeholders at the moment.
- MiniBrowser/win/MainWindow.cpp:
(MainWindow::createToolbar): Added.
(MainWindow::resizeToolbar): Added.
(MainWindow::rescaleToolbar): Added.
(MainWindow::init):
(MainWindow::resizeSubViews):
(MainWindow::updateDeviceScaleFactor):
- MiniBrowser/win/MainWindow.h: Added m_toolbarItemsWidth.
- 6:56 PM Changeset in webkit [256580] by
-
- 4 edits in trunk
Dark Mode: In Notes, list item becomes invisible in dark mode after outdenting
https://bugs.webkit.org/show_bug.cgi?id=207676
Reviewed by Wenson Hsieh and Timothy Hatcher.
Source/WebCore:
The bug was caused by EditingStyle::inverseTransformColorIfNeeded converting -apple-system-label to
transparent color in ReplaceSelectionCommand when InsertListCommand invokes moveParagraphs.
This patch fixes the bug in EditingStyle::inverseTransformColorIfNeeded by treating any semantic color
name or semantic RGB color value as if the color was not specified.
It also fixes the bug that removeStyleFromRulesAndContext was incapable of removing superflous semantic
color names that appear in the inline since the context's computed style only contain RGB values by
replacing the inline style's color values with that of the computed style. This fix is necessary to
eliminate -apple-system-label in the pasted content, which can cause issues when such a content is
sync'ed to other devices via iCloud, etc...
Tests: PasteHTML.TransformColorsOfDarkContentButNotSemanticColor
PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::removeStyleFromRulesAndContext):
(WebCore::EditingStyle::inverseTransformColorIfNeeded):
Tools:
Added regression tests for pasting content with -apple-system-label and outdenting content.
- TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
(PasteHTML.TransformColorsOfDarkContentButNotSemanticColor):
(PasteHTML.DoesNotTransformColorsOfLightContentDuringOutdent):
- 6:25 PM Changeset in webkit [256579] by
-
- 2 edits in trunk/Source/JavaScriptCore
[PlayStation] Make special udis86 C file handling only happen for Visual Studio
https://bugs.webkit.org/show_bug.cgi?id=207729
Reviewed by Don Olmstead.
- PlatformPlayStation.cmake:
- 5:54 PM Changeset in webkit [256578] by
-
- 3 edits in trunk/Source/WebKit
Protect WebSWServerConnection::scheduleJobInServer from bad scopeURL
https://bugs.webkit.org/show_bug.cgi?id=207722
Reviewed by Chris Dumez.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::scheduleJobInServer):
In case of bad scope, fail the job early on.
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::scheduleJobInServer):
Remove the RELEASE_ASSERT from now since we defend in Network process.
We will add it back in ServiceWorkerRegistration::getOrCreate as a follow-up.
- 5:31 PM Changeset in webkit [256577] by
-
- 5 edits in trunk
Flash of white can occur if JS forces an early layout
https://bugs.webkit.org/show_bug.cgi?id=207516
This causes us to wait for the first non-empty layout before we paint on Mac, which we
already do on all other platforms.
Patch by Ben Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.
Source/WebKit:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidReachLayoutMilestone):
LayoutTests:
- fast/scrolling/rtl-scrollbars-listbox-scroll.html: Wait for document to load before scrolling.
- platform/mac/TestExpectations: Skip before-load-001.html as we already do on iOS. This test depends on first paint timing and this patch makes the Mac behave like iOS in terms of first paint.
- 5:17 PM Changeset in webkit [256576] by
-
- 4 edits in branches/safari-610.1.3-branch/Source
Cherry-pick r256571. rdar://problem/59443242
REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>
Reviewed by Chris Dumez.
The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.
Source/WebCore:
Tested by existing test cases.
- page/Settings.yaml:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration init]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:13 PM Changeset in webkit [256575] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] fast/scrolling/latching/iframe_in_iframe.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207732
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:36 PM Changeset in webkit [256574] by
-
- 11 edits in branches/safari-609-branch/Source
Revert r256407. rdar://problem/59299143
- 4:35 PM Changeset in webkit [256573] by
-
- 2 edits in trunk/LayoutTests
[ Mac Release wk2 ] accessibility/press-targets-center-point.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207728
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:35 PM Changeset in webkit [256572] by
-
- 1 edit in branches/safari-609.1.17.0-branch/Source/WebCore/rendering/InlineTextBox.cpp
Unreviewed build fix. rdar://problem/59430261
- 4:12 PM Changeset in webkit [256571] by
-
- 4 edits in trunk/Source
REGRESSION (r255961): Default state for data URL handling is incorrect
https://bugs.webkit.org/show_bug.cgi?id=207719
<rdar://problem/59334011>
Reviewed by Chris Dumez.
The default selected in r255961 breaks too many WebKit framework users. Switch from opt-out to opt-in
while we work through compatibility issues.
Source/WebCore:
Tested by existing test cases.
- page/Settings.yaml:
Source/WebKit:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
- 4:00 PM Changeset in webkit [256570] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/rendering/InlineTextBox.cpp
Unreviewed Build Fix, rdar://problem/59430261
- 3:53 PM Changeset in webkit [256569] by
-
- 2 edits in trunk/Source/WebCore
Add missing call to completionHandler
https://bugs.webkit.org/show_bug.cgi?id=207720
<rdar://problem/59436915>
Reviewed by Chris Dumez.
Bug 179641 (r225702) updated
SubresourceLoader::willSendRequestInternal with a return call without
first calling the completionHandler. Address this by adding the call
to the completionHandler.
No new tests -- it's not possible to control execution into the
affected code path.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal):
- 3:51 PM Changeset in webkit [256568] by
-
- 3 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256564. rdar://problem/59440718
iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>
Reviewed by Simon Fraser.
- page/EventHandler.h:
- page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
- Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
- Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
- Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:44 PM Changeset in webkit [256567] by
-
- 3 edits in branches/safari-609.1.17.0-branch/Source/WebCore
Cherry-pick r256564. rdar://problem/59440718
iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>
Reviewed by Simon Fraser.
- page/EventHandler.h:
- page/ios/EventHandlerIOS.mm: (WebCore::EventHandler::startSelectionAutoscroll): (WebCore::EventHandler::cancelSelectionAutoscroll): (WebCore::adjustAutoscrollDestinationForInsetEdges): (WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const): (WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted. Make a few small changes to autoscrolling on iOS to make it feel better:
- Store the autoscrolling position in "unscrolled" coordinates, and do all work in this space, converting back when it's time to actually scroll. This fixes the problem where you have to wiggle your finger to autoscroll, because now when the timer fires, the point actually moves (before, it was all stored in "content" coordinates, so wouldn't actually change until the client pushed a new point).
- Reintroduce the macOS-style linear scaling of scrolling velocity in (and beyond) the inset region. We scale the fractional distance into the inset region to a 20pt/50ms scroll velocity; when you exit the inset it continues scaling up linearly from there.
- Only apply insets in the direction that the autoscroll drag is occurring in. This avoids a problem where e.g. horizontally selecting text on the first visible line of a page would cause us to scroll up, as it sat within the top inset. Instead, we only apply an inset in the direction of the drag, and do not allow its magnitude to exceed the currently dragged distance.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256564 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:40 PM Changeset in webkit [256566] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] imported/w3c/web-platform-tests/html/semantics/embedded-content/the-canvas-element/security.pattern.fillStyle.sub.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207726
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:35 PM Changeset in webkit [256565] by
-
- 2 edits in branches/safari-609-branch/Tools
Unreviewed attempt to fix the TestWebKitAPI build.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
- 3:23 PM Changeset in webkit [256564] by
-
- 3 edits in trunk/Source/WebCore
iOS: Autoscrolling is too fast and way too aggressive
https://bugs.webkit.org/show_bug.cgi?id=207717
<rdar://problem/59208122>
Reviewed by Simon Fraser.
- page/EventHandler.h:
- page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::startSelectionAutoscroll):
(WebCore::EventHandler::cancelSelectionAutoscroll):
(WebCore::adjustAutoscrollDestinationForInsetEdges):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
(WebCore::autoscrollAdjustmentFactorForScreenBoundaries): Deleted.
Make a few small changes to autoscrolling on iOS to make it feel better:
- Store the autoscrolling position in "unscrolled" coordinates, and do
all work in this space, converting back when it's time to actually scroll.
This fixes the problem where you have to wiggle your finger to autoscroll,
because now when the timer fires, the point actually moves (before, it was
all stored in "content" coordinates, so wouldn't actually change until
the client pushed a new point).
- Reintroduce the macOS-style linear scaling of scrolling velocity
in (and beyond) the inset region. We scale the fractional distance into
the inset region to a 20pt/50ms scroll velocity; when you exit the inset
it continues scaling up linearly from there.
- Only apply insets in the direction that the autoscroll drag is occurring
in. This avoids a problem where e.g. horizontally selecting text on the
first visible line of a page would cause us to scroll up, as it sat
within the top inset. Instead, we only apply an inset in the direction of
the drag, and do not allow its magnitude to exceed the currently dragged
distance.
- 3:21 PM Changeset in webkit [256563] by
-
- 18 edits in trunk/Source
Unreviewed, rolling out r254557.
https://bugs.webkit.org/show_bug.cgi?id=207725
The assert is correct, but unfortunately it will alwasy fail
since there is an existing bug in
HTMLTextFormControlElement::indexForPosition(). See bug
#207724 for more details. (Requested by dydz on #webkit).
Reverted changeset:
"Enable the offset assertion in
HTMLTextFormControlElement::indexForPosition"
https://bugs.webkit.org/show_bug.cgi?id=205706
https://trac.webkit.org/changeset/254557
- 3:10 PM Changeset in webkit [256562] by
-
- 6 edits in trunk
_WKResourceLoadInfo should conform to NSSecureCoding
https://bugs.webkit.org/show_bug.cgi?id=207667
Reviewed by Brady Eidson.
Source/WebKit:
This makes rdar://problem/57132290 nicer.
Covered by API tests.
- UIProcess/API/Cocoa/_WKResourceLoadInfo.h:
- UIProcess/API/Cocoa/_WKResourceLoadInfo.mm:
(+[_WKResourceLoadInfo supportsSecureCoding]):
(-[_WKResourceLoadInfo initWithCoder:]):
(-[_WKResourceLoadInfo encodeWithCoder:]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
(TEST):
- 3:08 PM Changeset in webkit [256561] by
-
- 6 edits in trunk/Source/WebKit
Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514
Reviewed by Brady Eidson.
_WKUserContentWorld.contentWorld is not needed,
but WKContentWorld._userContentWorld needs to return an autoreleased object.
- UIProcess/API/APIContentWorld.cpp:
(API::ContentWorld::fromUserContentWorld): Deleted.
- UIProcess/API/APIContentWorld.h:
- UIProcess/API/Cocoa/WKContentWorld.mm:
(-[WKContentWorld _userContentWorld]):
- UIProcess/API/Cocoa/_WKUserContentWorld.h:
- UIProcess/API/Cocoa/_WKUserContentWorld.mm:
(-[_WKUserContentWorld contentWorld]): Deleted.
- 3:05 PM Changeset in webkit [256560] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug ] http/tests/contentextensions/hide-on-ping-with-ping-that-redirects.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207723
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 2:58 PM Changeset in webkit [256559] by
-
- 13 edits in branches/safari-609-branch
Cherry-pick r256520. rdar://problem/59430255
[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>
Reviewed by Tim Horton.
Source/WebKit:
Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.
To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.
Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint
- Platform/spi/ios/UIKitSPI.h:
- Scripts/webkit/messages.py:
- Shared/ios/GestureTypes.h:
Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):
Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Plumb the RespectsSelectionAnchor flag over to the web process.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):
Tools:
Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
- TestWebKitAPI/ios/UIKitSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:57 PM Changeset in webkit [256558] by
-
- 8 edits in branches/safari-609-branch
Cherry-pick r256485. rdar://problem/59430261
Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>
Reviewed by Tim Horton.
Source/WebCore:
Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.
Test: editing/input/composition-highlights.html
- rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):
In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.
- rendering/InlineTextBox.h:
Source/WebKit:
Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.
- UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):
LayoutTests:
Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have aborder-radius
).
- editing/input/composition-highlights-expected.html:
- editing/input/composition-highlights.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256485 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:57 PM Changeset in webkit [256557] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256433. rdar://problem/59412971
macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>
Reviewed by Tim Horton.
In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator
) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.
However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:57 PM Changeset in webkit [256556] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256230. rdar://problem/59332513
Adjust the minor version number for the desktop user agent string.
https://bugs.webkit.org/show_bug.cgi?id=207498
<rdar://problem/59274765>
Patch by Keith Rollin <Keith Rollin> on 2020-02-10
Reviewed by Wenson Hsieh.
This helps with Netflix compatibility on the iPad.
No new tests -- no new or changed functionality.
- platform/ios/UserAgentIOS.mm: (WebCore::standardUserAgentWithApplicationName):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256555] by
-
- 13 edits in branches/safari-609.1.17.0-branch
Cherry-pick r256520. rdar://problem/59430255
[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>
Reviewed by Tim Horton.
Source/WebKit:
Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.
To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.
Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint
- Platform/spi/ios/UIKitSPI.h:
- Scripts/webkit/messages.py:
- Shared/ios/GestureTypes.h:
Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[UITextInteractionAssistant _wk_hasFloatingCursor]):
Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::updateSelectionWithExtentPoint):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Plumb the RespectsSelectionAnchor flag over to the web process.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::updateSelectionWithExtentPoint):
Tools:
Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: (-[TestWKWebView updateSelectionWithExtentPoint:]):
- TestWebKitAPI/ios/UIKitSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256554] by
-
- 8 edits in branches/safari-609.1.17.0-branch
Cherry-pick r256485. rdar://problem/59430261
Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>
Reviewed by Tim Horton.
Source/WebCore:
Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.
Test: editing/input/composition-highlights.html
- rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::paintMarkedTextBackground): (WebCore::InlineTextBox::paintCompositionBackground):
In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.
- rendering/InlineTextBox.h:
Source/WebKit:
Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.
- UIProcess/ios/WKContentViewInteraction.mm: (compositionHighlights):
LayoutTests:
Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have aborder-radius
).
- editing/input/composition-highlights-expected.html:
- editing/input/composition-highlights.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256485 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256553] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r256433. rdar://problem/59412971
macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>
Reviewed by Tim Horton.
In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator
) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.
However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::scrollViewScrollIndicatorClass): (-[UIView _web_findDescendantViewAtPoint:withEvent:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256433 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256552] by
-
- 6 edits in branches/safari-609.1.17.0-branch/Source
Cherry-pick r256005. rdar://problem/59299335
macCatalyst: Unnecessary I-beam over images in editable areas
https://bugs.webkit.org/show_bug.cgi?id=207370
<rdar://problem/59235429>
Reviewed by Wenson Hsieh.
Source/WebCore:
- dom/Position.h:
Source/WebKit:
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext): Add a bit indicating whether the forced I-beam for editable contexts should be used or not, based on whether it is adjacent to (or immediately over) a replaced element.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256551] by
-
- 6 edits1 add in branches/safari-609.1.17.0-branch
Cherry-pick r256000. rdar://problem/59299326
WebPage::rangeForGranularityAtPoint always returns null in the case of CharacterGranularity
https://bugs.webkit.org/show_bug.cgi?id=207350
<rdar://problem/59239914>
Reviewed by Tim Horton.
Source/WebKit:
Handle the character granularity case in
WebPage::rangeForGranularityAtPoint
by just returning a collapsed
Range. Certain internal clients will have a need to place and update the text selection using character
granularity; see radar for more details.
Test: UIWKInteractionViewProtocol.SelectTextWithCharacterGranularity
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView supportsTextSelectionWithCharacterGranularity]):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint):
Tools:
Add a test to exercise the corner case in the SPI.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256000 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256550] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255879. rdar://problem/59299329
[macCatalyst] Incorrect IBeam cursor when selecting text on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=207299
<rdar://problem/59200545>
Reviewed by Tim Horton.
After r255827, if EventHandler selects an IBeam cursor at the position information request location, we will
always attempt to show a caret at that location, whose height is the height of the editing caret for that
visible position. However, this means that:
- It's possible for the caret to be incorrectly sized if the caret is before a large replaced element, such as
a table. Since the request location is also outside of any line rect, it doesn't make sense to use the caret
height for the height of the cursor. Instead, fall back to computed line height. This fixes an issue on
en.wikipedia.org where the line rect would sometimes update to an enormous size when selecting text, since
the caret would temporarily hover over an editing position that is before a large table.
- This fallback path completely negates certain cursor behaviors; partially restore this behavior by making it
so that in the case where the cursor is in editable content and the line caret first line from the top of
the hit-tested node already contains the request point, don't bother trying to recenter the line rect to be
right over the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256549] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255827. rdar://problem/59299345
[macCatalyst] IBeam cursor doesn't show up when hovering over text form controls prior to editing
https://bugs.webkit.org/show_bug.cgi?id=207268
<rdar://problem/59188152>
Reviewed by Tim Horton.
On macCatalyst, when hovering over textareas and input fields that have not been edited yet, the cursor fails to
change to an IBeam and instead falls back to the default style. Even thoughEventHandler::selectCursor()
returnsIBeam
, we end up not actually using an IBeam because the position information'slineCaretExtent
is
an empty rect, which means the caret height is 0 and, more importantly, the line rect will not contain the
request point.
The line rect is empty in text fields that have not been edited yet because the form control's inner plaintext
contenteditable div (embedded in the shadow root) does not contain any child renderers with a non-zero height.
Even if it did, however, the element may still be much taller than the combined height of the inner div's
children, so the line rect may still not contain the position information request point (this is most easily
noticeable when focusing a textarea, typing a few letters, and then moving the cursor to near the bottom of the
textarea element).
To fix this, add a fallback path for the scenario where we want to show an IBeam, but fail to find line rects
that contain the request point. Instead, we still show an IBeam, but simply fake the lineCaretExtent to be an
element-wide rect that is the height of the caret, and is also vertically centered about the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256548] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255710. rdar://problem/59299340
macCatalyst: Shouldn't get text cursor on checkboxes
https://bugs.webkit.org/show_bug.cgi?id=207234
<rdar://problem/59155917>
Reviewed by Wenson Hsieh.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::canForceCaretForPosition): (WebKit::populateCaretContext): (WebKit::lineCaretExtent): Deleted. The I-beam forcing code was a bit too aggressive; it should consider the style of the node that it ends up finding after searching, not just assume it wants an I-beam because it's "texty".
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256547] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255691. rdar://problem/59299315
[macCatalyst] Missing custom cursors in subframes that are offset from the origin of the root view
https://bugs.webkit.org/show_bug.cgi?id=207215
<rdar://problem/59157625>
Reviewed by Tim Horton.
<https://trac.webkit.org/r255046> added support for custom cursor styles when hovering over subframes. However,
we currently try to hit-test content in the subframe using the interaction information request's point, which is
in root view coordinates; as such, we only get the correct custom cursor styles when hovering over elements in a
subframe, if the subframe is also at the origin of the root view.
To fix this, simply convert from root view coordinates to frame coordinates when performing the hit-test.
Unfortunately, this change is currently untestable; see <rdar://problem/59158410>.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::lineCaretExtent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256546] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255664. rdar://problem/59299338
Add a WebKitAdditions hook to provide additional customizations to UIDragInteraction
https://bugs.webkit.org/show_bug.cgi?id=207177
<rdar://problem/59121266>
Reviewed by Tim Horton.
Add a WebKitAdditions extension point that runs immediately after setting up UIDragInteraction and
UIDropInteraction.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupDragAndDropInteractions]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256545] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255658. rdar://problem/59299333
Unreviewed, fix the internal build after <rdar://problem/59132944>
- UIProcess/ios/WKContentViewInteraction.h: Declare this helper in the header, now that it's consulted by some WebKitAdditions code.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256544] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebKit
Cherry-pick r255625. rdar://problem/59299317
Add a WebKitAdditions hook to override the behavior of -[WKContentView gestureRecognizer:shouldReceiveTouch:]
https://bugs.webkit.org/show_bug.cgi?id=207162
<rdar://problem/59129739>
Reviewed by Tim Horton.
Allow an internal implementation of
-_allowGestureRecognizer:toReceiveTouch:
to prevent touches from being
routed to certain gesture recognizers, if necessary.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:52 PM Changeset in webkit [256543] by
-
- 6 edits2 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255603. rdar://problem/59299321
[iOS 13] Dragging on-screen volume control on a YouTube video selects text around the panel
https://bugs.webkit.org/show_bug.cgi?id=207140
<rdar://problem/58852938>
Reviewed by Tim Horton.
Source/WebKit:
This bug occurs on iPadOS when long pressing the volume controls on the desktop version of YouTube, and then
performing a pan gesture; this activates the highlight text selection gesture recognizer added in iOS 13,
causing text to be selected while adjusting the volume using these custom controls. On macOS, we avoid this
becauseNode::canStartSelection()
returnsfalse
, due to a container node having bothuser-drag: element
anduser-select: none
; in this scenario, we allow dragging to take precendence over text selection, so the
volume slider can be moved using a mouse without simultaneously selecting text.
This logic is currently absent on iOS, where UIKit text interaction gesture recognizers ask us for information
about the DOM at given locations, and we determine whether to allow text interaction gestures (such as long
pressing) to begin in-textInteractionGesture:shouldBeginAtPoint:
and-hasSelectablePositionAtPoint:
.
Ideally, we'd want to eventually unify these two codepaths for triggering text selection (and preferably just
have both go through EventHandler); in lieu of this, simply make the iOS codepath behave a little more like
macOS by adding a bit to allow text interaction gestures to bail in the case where at least one container of the
hit-tested element is both draggable and unselectable.
Test: editing/selection/ios/prefer-drag-over-text-selection.html
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
Add the new bit to InteractionInformationAtPosition.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
Avoid beginning text selection if the bit is set.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::selectionPositionInformation):
Move a comment about the ">= 97% of the document's visible area" heuristic next to the relevant code, and also
leave a FIXME mentioning that we should reconsider whether this is really needed; it seems that this was
originally intended to avoid ending up with an excessively large block selection, but block selection has been
removed entirely since iOS 12. That said, this logic may still be helping avoid situations where the text
selection is too aggressive on iOS and ends up selecting too much text.
LayoutTests:
Add a layout test to verify that we don't allow text selection gestures inside of containers that have both
user-drag: element
anduser-select: none
.
- editing/selection/ios/prefer-drag-over-text-selection-expected.txt: Added.
- editing/selection/ios/prefer-drag-over-text-selection.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:39 PM Changeset in webkit [256542] by
-
- 8 edits in branches/safari-609.1.17.0-branch/Source
Versioning.
- 1:59 PM Changeset in webkit [256541] by
-
- 5 edits1 add in trunk
[ESNext][BigInt] We don't support BigInt literal as PropertyName
https://bugs.webkit.org/show_bug.cgi?id=206888
Reviewed by Ross Kirsling.
JSTests:
- stress/big-int-as-property-name.js: Added.
Source/JavaScriptCore:
According to spec (https://tc39.es/ecma262/#prod-PropertyName),
BigInt literals are valid property names. Given that, we should not
throw a SyntaxError when using BigInt literals on destructuring
pattern, method declaration, object literals, etc.
This patch is adding BigInt literal as a valid syntax to PropertyName.
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseDestructuringPattern):
(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseInstanceFieldInitializerSourceElements):
(JSC::Parser<LexerType>::parseProperty):
(JSC::Parser<LexerType>::parseGetterSetter):
- parser/ParserArena.cpp:
(JSC::IdentifierArena::makeBigIntDecimalIdentifier):
- parser/ParserArena.h:
- 1:49 PM Changeset in webkit [256540] by
-
- 30 edits8 deletes in branches/safari-610.1.3-branch
Cherry-pick r256493. rdar://problem/59412867
Unreviewed, rolling out r256010.
Introduced ASan crashes
Reverted changeset:
"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/r256010
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256493 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:49 PM Changeset in webkit [256539] by
-
- 4 edits in branches/safari-610.1.3-branch
Cherry-pick r256317. rdar://problem/59398474
REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>
Reviewed by Eric Carlson.
Source/WebKit:
Covered by debug assertion not hit in layout tests.
- WebProcess/Network/webrtc/WebMDNSRegister.cpp: (WebKit::WebMDNSRegister::finishedRegisteringMDNSName): Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case. If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.
LayoutTests:
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256317 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:49 PM Changeset in webkit [256538] by
-
- 2 edits in branches/safari-610.1.3-branch/LayoutTests
Cherry-pick r256231. rdar://problem/59398474
Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256231 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:41 PM Changeset in webkit [256537] by
-
- 3 edits in trunk/LayoutTests
REGRESSION: (256381) [ macOS ] http/tests/workers/service/serviceworkerclients-claim.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207653
<rdar://problem/59396225>
Reviewed by Chris Dumez.
console log message output was flaky.
Make sure to end the fetch and post a message so that the console log message will appear in the expected.txt reliably.
- http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
- http/tests/workers/service/serviceworkerclients-claim.https.html:
- 1:40 PM Changeset in webkit [256536] by
-
- 19 edits3 moves in trunk/Source
Rename SerializedPlatformRepresentation to SerializedPlatformDataCue
https://bugs.webkit.org/show_bug.cgi?id=207695
<rdar://problem/59422673>
Reviewed by Youenn Fablet.
No new tests, no functional change.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- html/track/DataCue.cpp:
(WebCore::DataCue::DataCue):
(WebCore::DataCue::cueContentsMatch const):
- html/track/DataCue.h:
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::addDataCue):
(WebCore::InbandDataTextTrack::updateDataCue):
(WebCore::InbandDataTextTrack::removeDataCue):
(WebCore::InbandDataTextTrack::removeCue):
- html/track/InbandDataTextTrack.h:
- html/track/InbandTextTrack.h:
- platform/SerializedPlatformDataCue.h: Renamed from Source/WebCore/platform/SerializedPlatformRepresentation.h.
- platform/graphics/InbandTextTrackPrivateClient.h:
- platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
- platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
- platform/mac/SerializedPlatformDataCueMac.h: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.h.
(WebCore::SerializedPlatformDataCueMac::nativeValue const):
- platform/mac/SerializedPlatformDataCueMac.mm: Renamed from Source/WebCore/platform/mac/SerializedPlatformRepresentationMac.mm.
(WebCore::SerializedPlatformDataCueMac::SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::~SerializedPlatformDataCueMac):
(WebCore::SerializedPlatformDataCueMac::create):
(WebCore::SerializedPlatformDataCueMac::data const):
(WebCore::SerializedPlatformDataCueMac::deserialize const):
(WebCore::SerializedPlatformDataCueMac::isEqual const):
(WebCore::toSerializedPlatformDataCueMac):
(WebCore::jsValueWithValueInContext):
(WebCore::jsValueWithDataInContext):
(WebCore::jsValueWithArrayInContext):
(WebCore::jsValueWithDictionaryInContext):
(WebCore::jsValueWithAVMetadataItemInContext):
- 1:26 PM Changeset in webkit [256535] by
-
- 6 edits in trunk/Tools
[PlayStation] Add Buildbots for Debug/Release builds
https://bugs.webkit.org/show_bug.cgi?id=199454
Reviewed by Aakash Jain.
- BuildSlaveSupport/build.webkit.org-config/config.json:
Add PlayStation slaves, builders
- BuildSlaveSupport/build.webkit.org-config/factories.py:
Use higher timeout for playstation as with win bot
- BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
Set PlayStation category for playstation platform
- BuildSlaveSupport/build.webkit.org-config/steps.py:
Use same path as gtk, wincairo, etc for appendCustomBuildFlags
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
Add PlayStation expectations
- 1:25 PM Changeset in webkit [256534] by
-
- 2 edits in trunk/LayoutTests
[ Mac ] fast/images/webp-as-image.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=207718
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 1:21 PM Changeset in webkit [256533] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaMap.h
Unreviewed build fix, rdar://problem/59298172
- 1:11 PM Changeset in webkit [256532] by
-
- 4 edits in trunk/LayoutTests
[GTK] Gardening debug mode timeouts.
https://bugs.webkit.org/show_bug.cgi?id=207714
Also removed obsolete expectations as the tests are just timeouting in
debug mode and have not crashed since 2018.
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-13
- platform/gtk-wayland/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 12:22 PM Changeset in webkit [256531] by
-
- 13 edits1 copy in trunk
[iOS] Check if PIP is supported in the UI process
https://bugs.webkit.org/show_bug.cgi?id=207406
Reviewed by Brent Fulgham.
Source/WebCore:
This is currently being checked in the WebProcess, but since this check is initiating communication with the frontboard
service which will be blocked, this check should be moved to the UI process. In the UI process, this is checked when
starting a new WebContent process, and sent to the WebContent process as part of the process creation parameters. The
WebContent is storing the received value.
API test: WebKit.PictureInPictureSupport
- platform/PictureInPictureSupport.h:
- platform/ios/VideoFullscreenInterfaceAVKit.mm:
(WebCore::setSupportsPictureInPicture):
(WebCore::supportsPictureInPicture):
- testing/Internals.cpp:
(WebCore::Internals::supportsPictureInPicture):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
When starting a new WebContent process, check if PIP is supported, and pass the results to the newly created
WebContent process.
- Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
- Shared/WebProcessCreationParameters.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/PictureInPictureSupport.mm: Added.
(TEST):
- 11:47 AM Changeset in webkit [256530] by
-
- 6 edits in trunk/Source
Allow use of proxies in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=207598
For testing purposes, we allow Safari to use a custom HTTP/HTTPS proxy passed through
Source/WebCore:
command line arguments. This gives MiniBrowser the same ability.
$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \
-WebKit2HTTPSProxy "http://127.0.0.1:8080"
Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::MacApplication::isMiniBrowser):
(WebCore::IOSApplication::isMiniBrowser):
Source/WebKit:
command line arguments. This gives MiniBrowser the same ability. Example invocation:
$ run-minibrowser --release -WebKit2HTTPProxy "http://127.0.0.1:8080" \
-WebKit2HTTPSProxy "http://127.0.0.1:8080"
Patch by Benjamin Nham <Ben Nham> on 2020-02-13
Reviewed by Antti Koivisto.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::parameters):
- 11:43 AM Changeset in webkit [256529] by
-
- 3 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/seeking/seek-to-currentTime.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207046
Corrected test expectations
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- platform/mac/TestExpectations:
- 11:42 AM Changeset in webkit [256528] by
-
- 3 edits in trunk/Tools
TestWebKitAPI: Conditionalize fullscreen tests on fullscreen API
https://bugs.webkit.org/show_bug.cgi?id=207397
<rdar://problem/59268128>
Reviewed by Jer Noble.
- TestWebKitAPI/Tests/WebKitCocoa/ExitFullscreenOnEnterPiP.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewCloseAllMediaPresentations.mm:
- 11:23 AM Changeset in webkit [256527] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] svg/custom/animate-initial-pause-unpause.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207710
Unreviewed test gardening
- platform/mac/TestExpectations:
- 11:16 AM Changeset in webkit [256526] by
-
- 2 edits in trunk/LayoutTests
WebP image format is not supported
https://bugs.webkit.org/show_bug.cgi?id=192672
Unreviewed test gardening
- platform/mac/TestExpectations:
- 11:10 AM Changeset in webkit [256525] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/close-in-upgradeneeded.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207709
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 11:05 AM Changeset in webkit [256524] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] LineBreaker should not hold on to the lastWrapOpportunity inline item
https://bugs.webkit.org/show_bug.cgi?id=207707
<rdar://problem/59427376>
Reviewed by Antti Koivisto.
LineBreaker only needs a flag indicating that there's a wrapping opportunity on the line.
LineLayoutContext needs to know what the position is (as an InlineItem) so that it could initiate a revert if needed.
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::LineBreaker::wordBreakBehavior const):
- layout/inlineformatting/InlineLineBreaker.h:
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineLayoutContext::rebuildLine):
(WebCore::Layout::LineLayoutContext::rebuildLineForRevert): Deleted.
- layout/inlineformatting/LineLayoutContext.h:
(WebCore::Layout::LineLayoutContext::InlineItemRange::size const):
- 10:47 AM Changeset in webkit [256523] by
-
- 2 edits in trunk/Tools
TestWebKitAPI: Re-baseline DocumentEditingContext for Catalyst
https://bugs.webkit.org/show_bug.cgi?id=207696
Reviewed by Tim Horton.
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
- 10:36 AM Changeset in webkit [256522] by
-
- 2 edits in trunk/LayoutTests
Remove ApplePayBillingAddress.html from TestExpectations after fix for flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207704
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-13
Reviewed by Wenson Hsieh.
- platform/mac-wk2/TestExpectations:
- 10:25 AM Changeset in webkit [256521] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [iOS] Layout Test fast/visual-viewport/ios/caret-after-focus-in-fixed.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=181821
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 10:10 AM Changeset in webkit [256520] by
-
- 13 edits in trunk
[iOS] -updateSelectionWithExtentPoint:completionHandler: should work without requiring floating cursor
https://bugs.webkit.org/show_bug.cgi?id=207680
<rdar://problem/59340940>
Reviewed by Tim Horton.
Source/WebKit:
Currently, WebPage::updateSelectionWithExtentPoint consults the value of m_selectionAnchor to determine whether
it should attempt to modify the current selection using the hit-tested visible position. m_selectionAnchor is
only set under WebPage::beginSelectionInDirection, which is only invoked when the user begins a floating cursor
gesture. When attempting to perform an out-of-band selection update (i.e. without calling
beginSelectionInDirection beforehand), we will end up consulting an arbitrary value for m_selectionAnchor
(::Start by default; otherwise, the last value set by beginSelectionInDirection if it was previously called).
This means that the selection can often only be extended in one direction (typically forwards) when an API
client attempts to use -updateSelectionWithExtentPoint:completionHandler: to extend the current selection.
To fix this, make it so that we only respect the selection anchor (m_selectionAnchor) in the case where the user
is currently using the floating cursor; otherwise, allow the SPI to expand the selection, such that it contains
the visible position for the given location.
Test: UIWKInteractionViewProtocol.UpdateSelectionWithExtentPoint
- Platform/spi/ios/UIKitSPI.h:
- Scripts/webkit/messages.py:
- Shared/ios/GestureTypes.h:
Add a new flag to tell the web process whether it should limit selection extent updates to the current selection
anchor. Also, remove an existing enum type, SelectionHandlePosition, that is unused (since we no longer support
block text selection).
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[UITextInteractionAssistant _wk_hasFloatingCursor]):
Add a helper method to determine (using the text interaction assistant) whether there's an active floating
cursor gesture. In the case where floating cursor is active, the text interaction assistant will be in an active
gesture but its UITextInteraction will not, since the gesture recognizer belongs to the keyboard or input view
rather than the first responder (in this case, WKContentView).
(-[WKContentView updateSelectionWithExtentPoint:completionHandler:]):
Only respect the selection anchor if we're in floating cursor mode; otherwise, allow selection updates with an
extent point to extend the current selection to include the new position.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::updateSelectionWithExtentPoint):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Plumb the RespectsSelectionAnchor flag over to the web process.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::updateSelectionWithExtentPoint):
Tools:
Add a new API test to verify that calling -updateSelectionWithExtentPoint:completionHandler: with a point behind
the current selection works.
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm:
(-[TestWKWebView updateSelectionWithExtentPoint:]):
- TestWebKitAPI/ios/UIKitSPI.h:
- 10:10 AM Changeset in webkit [256519] by
-
- 2 edits in trunk/LayoutTests
Flaky Test: imported/w3c/web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html
https://bugs.webkit.org/show_bug.cgi?id=202003
Unreviewed test gardening
- platform/ios/TestExpectations:
- 10:06 AM Changeset in webkit [256518] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp
Revert "Unreviewed build fix. rdar://problem/59298172"
This reverts commit r256393.
- 9:56 AM Changeset in webkit [256517] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207705
Unreviewed test gardening
- platform/ios/TestExpectations:
- 9:48 AM Changeset in webkit [256516] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/websocket-in-service-worker.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207703
nreviewed test gardening
- platform/ios/TestExpectations:
- 9:35 AM Changeset in webkit [256515] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes.any.serviceworker.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207702
Unreviewed test gardening
- platform/ios/TestExpectations:
- 9:24 AM Changeset in webkit [256514] by
-
- 4 edits in trunk/Source/WebCore
Non-unified build fixes mid February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=207693
Unreviewed build fix.
No new tests needed.
- html/parser/HTMLPreloadScanner.cpp: Add missing include.
- platform/wpe/ScrollbarThemeWPE.cpp: Ditto.
- rendering/InlineTextBox.cpp: Ditto.
- 9:20 AM Changeset in webkit [256513] by
-
- 4 edits2 adds in trunk
REGRESSION (r255037): Zooming in and out on Quip in macOS Safari can cause the content to be offset to the side
https://bugs.webkit.org/show_bug.cgi?id=207674
rdar://problem/59404866
Reviewed by Antti Koivisto.
Source/WebCore:
Remove the early return in ScrollingStateScrollingNode::setRequestedScrollData(); comparing
with the last m_requestedScrollData is wrong, because requested scroll positions are not "state"
in the scrolling tree, they are requests to scroll. Ideally, they would be represented in some
different way in the scrolling tree.
Test: fast/scrolling/programmatic-scroll-to-zero-zero.html
- page/scrolling/ScrollingStateScrollingNode.cpp:
(WebCore::ScrollingStateScrollingNode::setRequestedScrollData):
LayoutTests:
Test that does a programmatic scroll to 0,0, does a user scroll, then a second programmatic scroll to 0,0,
which is expected to work.
- fast/scrolling/programmatic-scroll-to-zero-zero-expected.html: Added.
- fast/scrolling/programmatic-scroll-to-zero-zero.html: Added.
- platform/ios/TestExpectations: Skip the new test on iOS (it relies on eventSender) and sort the grouping.
- 9:11 AM Changeset in webkit [256512] by
-
- 55 edits4 deletes in trunk
Unreviewed, rolling out r255158, 255405 and r255486
Caused test flakiness and PLT regression.
Patch by Said Abou-Hallawa <Said Abou-Hallawa> on 2020-02-13
Source/WebCore:
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::updateThrottlingState):
(WebCore::DocumentTimeline::animationInterval const):
- animation/DocumentTimeline.h:
- dom/Document.cpp:
(WebCore::Document::requestAnimationFrame):
(WebCore::Document::updateLastHandledUserGestureTimestamp):
- dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::throttlingReasonToString):
(WebCore::throttlingReasonsToString):
(WebCore::ScriptedAnimationController::addThrottlingReason):
(WebCore::ScriptedAnimationController::removeThrottlingReason):
(WebCore::ScriptedAnimationController::isThrottled const):
(WebCore::ScriptedAnimationController::registerCallback):
(WebCore::ScriptedAnimationController::cancelCallback):
(WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks):
(WebCore::ScriptedAnimationController::interval const):
(WebCore::ScriptedAnimationController::page const):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): Deleted.
(WebCore::ScriptedAnimationController::isThrottledRelativeToPage const): Deleted.
(WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): Deleted.
- dom/ScriptedAnimationController.h:
(WebCore::ScriptedAnimationController::addThrottlingReason): Deleted.
(WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted.
- page/FrameView.cpp:
(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):
- page/Page.cpp:
(WebCore::m_deviceOrientationUpdateProvider):
(WebCore::Page::isLowPowerModeEnabled const):
(WebCore::Page::setLowPowerModeEnabledOverrideForTesting):
(WebCore::updateScriptedAnimationsThrottlingReason):
(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
(WebCore::Page::renderingUpdateThrottlingEnabled const): Deleted.
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.
(WebCore::Page::isRenderingUpdateThrottled const): Deleted.
(WebCore::Page::preferredRenderingUpdateInterval const): Deleted.
- page/Page.h:
(WebCore::Page::isLowPowerModeEnabled const): Deleted.
(WebCore::Page::canUpdateThrottlingReason const): Deleted.
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::startTimer):
(WebCore::RenderingUpdateScheduler::adjustFramesPerSecond): Deleted.
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Deleted.
- page/RenderingUpdateScheduler.h:
- page/Settings.yaml:
- page/SettingsBase.cpp:
(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.
- page/SettingsBase.h:
- platform/graphics/AnimationFrameRate.h: Removed.
- platform/graphics/DisplayRefreshMonitor.h:
(WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):
(WebCore::DisplayRefreshMonitorManager::registerClient):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
(WebCore::DisplayRefreshMonitorManager::monitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond): Deleted.
- platform/graphics/DisplayRefreshMonitorManager.h:
(WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager):
- platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
(-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
Source/WebKit:
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): Deleted.
(WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): Deleted.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
(WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Deleted.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): Deleted.
Source/WebKitLegacy/mac:
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
- DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
- fast/animation/css-animation-throttling-lowPowerMode.html:
- fast/animation/request-animation-frame-throttle-subframe.html:
- fast/animation/request-animation-frame-throttling-detached-iframe.html:
- fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
- fast/animation/request-animation-frame-throttling-lowPowerMode.html:
- fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Removed.
- fast/animation/request-animation-frame-throttling-outside-viewport.html: Removed.
- fast/animation/resources/frame-with-animation-2.html: Removed.
- http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
- platform/mac-wk2/TestExpectations:
- 9:08 AM Changeset in webkit [256511] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/return-local-variable.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207700
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 8:40 AM Changeset in webkit [256510] by
-
- 3 edits in trunk/LayoutTests
REGRESSION: [ Mac WK2 ] inspector/canvas/updateShader-webgpu-sharedVertexFragment.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206852
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- platform/mac/TestExpectations:
- 8:28 AM Changeset in webkit [256509] by
-
- 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations
Need a short description (OOPS!).
Need the bug URL (OOPS!).
Reviewed by NOBODY (OOPS!).
- platform/mac-wk1/TestExpectations:
- 8:27 AM Changeset in webkit [256508] by
-
- 2 edits in trunk/LayoutTests
http/wpt/css/css-animations/start-animation-001.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207337
Correcting test expectations to include wk2
Unreviewed test gardening
- platform/mac/TestExpectations:
- 8:22 AM Changeset in webkit [256507] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] LineCandidateContent can have only one float item
https://bugs.webkit.org/show_bug.cgi?id=207681
<rdar://problem/59413044>
Reviewed by Antti Koivisto.
Floats should not be considered as inline content. They shrink the available space but we never
add them to the line. This patch decouples InlineContent and candidate floats. Also there can only be
one float box per candidate content (since there's always a soft wrap opportunity before/after the float box).
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineCandidate::InlineContent::runs const):
(WebCore::Layout::LineCandidate::InlineContent::logicalWidth const):
(WebCore::Layout::LineCandidate::InlineContent::trailingLineBreak const):
(WebCore::Layout::LineCandidate::InlineContent::appendLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::setTrailingLineBreak):
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
(WebCore::Layout::LineCandidate::reset):
(WebCore::Layout::LineCandidate::InlineContent::reset):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineCandidateContent::appendLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendFloat): Deleted.
(WebCore::Layout::LineCandidateContent::hasIntrusiveFloats const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineRuns const): Deleted.
(WebCore::Layout::LineCandidateContent::inlineContentLogicalWidth const): Deleted.
(WebCore::Layout::LineCandidateContent::floats const): Deleted.
(WebCore::Layout::LineCandidateContent::trailingLineBreak const): Deleted.
(WebCore::Layout::LineCandidateContent::setTrailingLineBreak): Deleted.
(WebCore::Layout::LineCandidateContent::appendInlineContent): Deleted.
(WebCore::Layout::LineCandidateContent::reset): Deleted.
(WebCore::Layout::LineLayoutContext::tryAddingFloatItems): Deleted.
- layout/inlineformatting/LineLayoutContext.h:
- 8:12 AM Changeset in webkit [256506] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] Layout Test storage/websql/read-transactions-running-concurrently.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=194162
Unreviewed test gardening
- platform/mac/TestExpectations:
- 7:51 AM Changeset in webkit [256505] by
-
- 15 edits in trunk
Implement OffscreenCanvas.copiedImage
https://bugs.webkit.org/show_bug.cgi?id=206220
Patch by Chris Lord <Chris Lord> on 2020-02-13
Reviewed by Žan Doberšek.
Source/WebCore:
No new tests. Covered by existing tests.
- html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::didDraw):
(WebCore::OffscreenCanvas::copiedImage const):
(WebCore::OffscreenCanvas::clearCopiedImage const):
(WebCore::OffscreenCanvas::takeImageBuffer const):
(WebCore::OffscreenCanvas::reset):
- html/OffscreenCanvas.h:
LayoutTests:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-flipY-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-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:
- 6:07 AM WebKitGTK/2.28.x edited by
- (diff)
- 6:06 AM WebKitGTK/2.26.x edited by
- (diff)
- 3:14 AM Changeset in webkit [256504] by
-
- 3 edits8 adds in trunk/LayoutTests
[GTK] Gardening, update TestExpectations and rebaselines
https://bugs.webkit.org/show_bug.cgi?id=207626
Unreviewed gardening.
- platform/gtk/TestExpectations:
- platform/gtk/fast/xmlhttprequest/xmlhttprequest-nonexistent-file-expected.txt: Added.
- platform/gtk/imported/w3c/web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/mediacapture-streams/MediaStream-MediaElement-preload-none-manual.https-expected.txt: Added.
- platform/gtk/storage/domstorage/sessionstorage/blocked-file-access-expected.txt: Added.
Feb 12, 2020:
- 11:20 PM Changeset in webkit [256503] by
-
- 7 edits in trunk
[WebCrypto][CommonCrypto] Incorrect AES-CTR with counterLength longer than 64
https://bugs.webkit.org/show_bug.cgi?id=207238
Reviewed by Jiewen Tan.
Source/WebCore:
Add CounterBlockHelper to calculate the remaining count for counter bits to overflow
and the whole counter block bits (nonce + zero counter bits) after overflow.
With this helper, simplify the AES-CTR implementation on CommonCrypto.
- crypto/algorithms/CryptoAlgorithmAES_CTR.cpp:
(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::CounterBlockHelper):
(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::countToOverflowSaturating const):
(WebCore::CryptoAlgorithmAES_CTR::CounterBlockHelper::counterVectorAfterOverflow const):
- crypto/algorithms/CryptoAlgorithmAES_CTR.h:
- crypto/mac/CryptoAlgorithmAES_CTRMac.cpp:
(WebCore::transformAES_CTR):
(WebCore::bigIntegerToSizeT): Deleted.
LayoutTests:
Add test cases where the counter length is 66 and 128, and the counter capacity
to overflow is 1 and 2.
- crypto/subtle/aes-ctr-import-key-encrypt-expected.txt:
- crypto/subtle/aes-ctr-import-key-encrypt.html:
- 9:54 PM Changeset in webkit [256502] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] More layout tests gardening
https://bugs.webkit.org/show_bug.cgi?id=207679
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-12
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 9:53 PM Changeset in webkit [256501] by
-
- 9 edits6 adds in trunk
WebP image format is not supported
https://bugs.webkit.org/show_bug.cgi?id=192672
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-12
Reviewed by Youenn Fablet.
Source/WebCore:
Add the mime type and the UTI of the WebP to the list of the allowed image
formats. WebP should be enabled only on macOS and iOS post Catalina.
Tests: fast/images/animated-webp-as-image.html
fast/images/webp-as-image.html
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::supportedImageMIMETypes):
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::animationPropertiesFromProperties):
- platform/graphics/cg/UTIRegistry.cpp:
(WebCore::defaultSupportedImageTypes):
Source/WTF:
Introduce HAVE(WEBP) for macOS and iOS.
- wtf/PlatformHave.h:
LayoutTests:
Disable the tests for all ports and enable it only for [ Catalina+ ].
- TestExpectations:
- fast/images/animated-webp-as-image-expected.html: Added.
- fast/images/animated-webp-as-image.html: Added.
- fast/images/resources/animated-red-green-blue-repeat-infinite.webp: Added.
- fast/images/resources/green-400x400.webp: Added.
- fast/images/webp-as-image-expected.html: Added.
- fast/images/webp-as-image.html: Added.
- platform/mac/TestExpectations:
- 8:11 PM Changeset in webkit [256500] by
-
- 9 edits in trunk/Source/JavaScriptCore
Add options for debugging WASM code.
https://bugs.webkit.org/show_bug.cgi?id=207677
<rdar://problem/59411390>
Reviewed by Yusuke Suzuki.
Specifically ...
JSC_useBBQJIT - allows the BBQ JIT to be used if true
JSC_useOMGJIT - allows the OMG JIT to be used if true
JSC_useWasmLLIntPrologueOSR - allows prologue OSR from Wasm LLInt if true
JSC_useWasmLLIntLoopOSR - allows loop OSR from Wasm LLInt if true
JSC_useWasmLLIntEpilogueOSR - allows epilogue OSR from Wasm LLInt if true
JSC_wasmFunctionIndexRangeToCompile=N:M - wasm function index range to allow compilation on, e.g. 1:100
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/Options.cpp:
(JSC::Options::ensureOptionsAreCoherent):
- runtime/OptionsList.h:
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::BBQPlan):
- wasm/WasmOMGForOSREntryPlan.cpp:
(JSC::Wasm::OMGForOSREntryPlan::OMGForOSREntryPlan):
- wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::OMGPlan):
- wasm/WasmOperations.cpp:
(JSC::Wasm::shouldJIT):
(JSC::Wasm::operationWasmTriggerOSREntryNow):
(JSC::Wasm::operationWasmTriggerTierUpNow):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::shouldJIT):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
- 6:47 PM Changeset in webkit [256499] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Remove LineLayoutContext::m_partialTrailingTextItem
https://bugs.webkit.org/show_bug.cgi?id=207670
<rdar://problem/59405854>
Reviewed by Antti Koivisto.
LineBuilder::Run does not hold a reference to these InlineItems anymore.
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::commitPartialContent):
- layout/inlineformatting/LineLayoutContext.h:
- 6:30 PM Changeset in webkit [256498] by
-
- 5 edits in trunk/Source
[JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
https://bugs.webkit.org/show_bug.cgi?id=207673
Reviewed by Mark Lam.
Source/JavaScriptCore:
While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
to avoid this padding.
This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.
- jit/JIT.cpp:
(JSC::JIT::link):
- jit/JITCodeMap.h:
(JSC::JITCodeMap::JITCodeMap):
(JSC::JITCodeMap::find const):
(JSC::JITCodeMap::operator bool const):
(JSC::JITCodeMap::codeLocations const):
(JSC::JITCodeMap::indexes const):
(JSC::JITCodeMapBuilder::append):
(JSC::JITCodeMapBuilder::finalize):
(JSC::JITCodeMap::Entry::Entry): Deleted.
(JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted.
(JSC::JITCodeMap::Entry::codeLocation): Deleted.
(JSC::JITCodeMap::append): Deleted.
(JSC::JITCodeMap::finish): Deleted.
Source/WTF:
- wtf/MallocPtr.h:
- 6:18 PM Changeset in webkit [256497] by
-
- 9 edits in trunk
Web Inspector: encode binary web socket frames using base64
https://bugs.webkit.org/show_bug.cgi?id=207448
Previous representation of binary frames is lossy using fromUTF8WithLatin1Fallback,
this patch consistently encodes binary data using base64.
Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-12
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
- inspector/protocol/Network.json:
Source/WebCore:
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::Inspector::buildWebSocketMessage):
(WebCore::InspectorNetworkAgent::didReceiveWebSocketFrame):
(WebCore::InspectorNetworkAgent::didSendWebSocketFrame):
Source/WebInspectorUI:
- UserInterface/Models/WebSocketResource.js:
(WI.WebSocketResource.prototype.addFrame):
LayoutTests:
- http/tests/websocket/tests/hybi/inspector/binary-expected.txt:
- http/tests/websocket/tests/hybi/inspector/binary.html:
- 6:13 PM Changeset in webkit [256496] by
-
- 2 edits in trunk/Source/WebCore
[WK2][Soup] Implement NetworkStorageSession::getAllCookies
https://bugs.webkit.org/show_bug.cgi?id=207449
Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-02-12
Reviewed by Carlos Garcia Campos.
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::getAllCookies):
- 5:38 PM Changeset in webkit [256495] by
-
- 15 edits in branches/safari-609-branch/Source
Cherry-pick r254859. rdar://problem/59298172
Minor improvements to StorageAreaMap
https://bugs.webkit.org/show_bug.cgi?id=206433
Reviewed by Darin Adler.
Source/WebCore:
Use inline initialization for some of StorageMap's data member.
Also specify uint8_t as underlying type of StorageType enum class for better packing.
- inspector/InspectorInstrumentation.h:
- storage/StorageArea.h:
- storage/StorageMap.cpp: (WebCore::StorageMap::StorageMap):
- storage/StorageMap.h:
- storage/StorageType.h:
Source/WebKit:
Minor improvements to StorageAreaMap:
- The class does not need to be RefCounted, as it is solely owned by StorageNamespaceImpl. Having it RefCounted was actually dangerous because StorageAreaMap had a raw pointer data member to its owner: m_storageNamespace. This raw pointer could become stale if you extend the lifetime of the StorageAreaMap object to outlive its StorageNamespaceImpl.
- Make StorageAreaMap::connect() private as it is never called from outside the class
- Reorder data members for better packing
- Use modern loops in the implementation
- Rename loadValuesIfNeeded() to ensureStorageMap() and have it return the StorageMap object. This makes calls site more concise and it makes it clearer when this method needs to be called.
- Mark class as final
- Replace LOG_ERROR() with RELEASE_LOG_ERROR() so that we can see error logging in sysdiagnoses
- Use more references instead of raw pointers to make it clear when null checks are not needed
- WebProcess/WebStorage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::create): (WebKit::StorageAreaImpl::StorageAreaImpl):
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::StorageAreaMap): (WebKit::StorageAreaMap::length): (WebKit::StorageAreaMap::key): (WebKit::StorageAreaMap::item): (WebKit::StorageAreaMap::setItem): (WebKit::StorageAreaMap::removeItem): (WebKit::StorageAreaMap::clear): (WebKit::StorageAreaMap::contains): (WebKit::StorageAreaMap::resetValues): (WebKit::StorageAreaMap::ensureStorageMap): (WebKit::StorageAreaMap::applyChange): (WebKit::StorageAreaMap::dispatchSessionStorageEvent): (WebKit::StorageAreaMap::dispatchLocalStorageEvent): (WebKit::StorageAreaMap::connect): (WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageAreaMap.messages.in:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::storageArea):
- WebProcess/WebStorage/StorageNamespaceImpl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254859 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:11 PM Changeset in webkit [256494] by
-
- 11 edits in trunk/Source/WebCore
CSSValuePool's constant CSS values should not be allocated dynamically (and same for Vectors)
https://bugs.webkit.org/show_bug.cgi?id=207666
Reviewed by Mark Lam.
r252785 changes contents (CSSValues and Vectors) of CSSValuePool from static ones to
dynamically allocated ones. This was done since we would like to use static CSSValues
even in the other threads (workers etc.) for OffscreenCanvas feature.
But this causes memory regression in Membuster since we allocates many CSSValues and
large Vectors, and they are kept persistently.
This patch removes dynamic allocation part of r252785 to recover memory regression.
The key of this patch is introducing Static CSSValue feature. When incrementing / decrementing
m_refCount of CSSValue, we add / subtract by 0x2. And we put 0x1 as a static-flag. So, even if
this CSSValue is used by multiple threads, we never see that CSSValue gets 0 m_refCount if
it is marked as static (having 0x1). This is the same design to our static StringImpl.
No behavior change.
- css/CSSInheritedValue.h:
- css/CSSInitialValue.h:
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSPrimitiveValue.h:
- css/CSSRevertValue.h:
- css/CSSUnsetValue.h:
- css/CSSValue.cpp:
- css/CSSValue.h:
(WebCore::CSSValue::ref const):
(WebCore::CSSValue::hasOneRef const):
(WebCore::CSSValue::refCount const):
(WebCore::CSSValue::hasAtLeastOneRef const):
(WebCore::CSSValue::deref):
(WebCore::CSSValue::makeStatic):
- css/CSSValuePool.cpp:
(WebCore::StaticCSSValuePool::StaticCSSValuePool):
(WebCore::StaticCSSValuePool::init):
(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::singleton):
(WebCore::CSSValuePool::createIdentifierValue):
(WebCore::CSSValuePool::createColorValue):
(WebCore::CSSValuePool::createValue):
- css/CSSValuePool.h:
(WebCore::CSSValuePool::createInheritedValue):
(WebCore::CSSValuePool::createImplicitInitialValue):
(WebCore::CSSValuePool::createExplicitInitialValue):
(WebCore::CSSValuePool::createUnsetValue):
(WebCore::CSSValuePool::createRevertValue):
- 5:06 PM Changeset in webkit [256493] by
-
- 30 edits8 deletes in trunk
Unreviewed, rolling out r256010.
Introduced ASan crashes
Reverted changeset:
"[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
https://bugs.webkit.org/show_bug.cgi?id=206582
https://trac.webkit.org/changeset/r256010
- 4:34 PM Changeset in webkit [256492] by
-
- 2 edits in trunk/Tools
run-javascriptcore-tests: Allow insecure requests on upload
https://bugs.webkit.org/show_bug.cgi?id=207662
Rubber-stamped by Aakash Jain.
- Scripts/run-javascriptcore-tests:
(uploadResults): Allow insecure curl request when posting results.
- 4:31 PM Changeset in webkit [256491] by
-
- 4 edits in trunk/Source/ThirdParty/ANGLE
Multiple GCC 10 build failures in ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207365
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.
- changes.diff: Updated.
- include/platform/Platform.h: Add missing #include to get size_t.
- src/common/PackedEnums.h: Remove problematic const_casts.
- 4:24 PM Changeset in webkit [256490] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] LineBuilder should be able to take a partial trailing inline text item
https://bugs.webkit.org/show_bug.cgi?id=207640
<rdar://problem/59390284>
Reviewed by Antti Koivisto.
With this patch, now the trailing run on the line has the needsHyphen bit set.
When constructing the final Display:Runs in InlineFormattingContext::setDisplayBoxesForLine using
the line runs, we transfer the needsHyphen bit instead of explicitly set on the trailing run.
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::TextContent::TextContent):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::appendPartialTrailingTextItem):
(WebCore::Layout::LineBuilder::appendTextContent):
(WebCore::Layout::m_textContent):
(WebCore::Layout::LineBuilder::Run::Run):
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::Run::setNeedsHyphen):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):
(WebCore::Layout::LineLayoutContext::commitPartialContent):
- layout/inlineformatting/LineLayoutContext.h:
- 4:24 PM Changeset in webkit [256489] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h
Unreviewed Build Fix, rdar://problem/59298143
- 3:48 PM Changeset in webkit [256488] by
-
- 2 edits in trunk/LayoutTests
[Mac wk2 ] fast/dom/attr_dead_doc.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207668
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:46 PM Changeset in webkit [256487] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Force HTTP/1.1 for WebSocket connection
https://bugs.webkit.org/show_bug.cgi?id=207656
Reviewed by Fujii Hironori.
No tests for H2 in LayoutTests. Checked in real site.
See: https://bugs.webkit.org/show_bug.cgi?id=176483
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::enableConnectionOnly):
- 3:25 PM Changeset in webkit [256486] by
-
- 2 edits in trunk/LayoutTests
[ iOS Sim WK2 ] Layout Test fast/visual-viewport/ios/min-scale-greater-than-one.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=196300
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:16 PM Changeset in webkit [256485] by
-
- 8 edits in trunk
Composition highlight rects should be rounded and inset
https://bugs.webkit.org/show_bug.cgi?id=207655
<rdar://problem/59362474>
Reviewed by Tim Horton.
Source/WebCore:
Apply a couple of minor adjustments to the appearance of composition highlight rects that appear behind marked
text, in the case where the client specifies attributed marked text with background colors.
Test: editing/input/composition-highlights.html
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintCompositionBackground):
In the case where custom composition rects are specified, add a half-pixel inset to all sides of the background
rect, and add a slight corner radius around each background rect.
- rendering/InlineTextBox.h:
Source/WebKit:
Stitch adjacent highlight rects together if they have the same highlight color; this minimizes the number of
composition highlight rects we hand to the web process when changing the marked text.
- UIProcess/ios/WKContentViewInteraction.mm:
(compositionHighlights):
LayoutTests:
Make this existing layout test work with the new composition highlight appearance by covering up the edges of
the composition highlight rect with a black border. Due to subpixel insets around the composition highlight
rect, the reference image would be offset by a half pixel without this change (even when changing the spans to
have aborder-radius
).
- editing/input/composition-highlights-expected.html:
- editing/input/composition-highlights.html:
- 3:03 PM Changeset in webkit [256484] by
-
- 33 edits in trunk
Unreviewed, rolling out r256463.
Caused major flakiness on Mac wk2
Reverted changeset:
"REGRESSION (r255158): http/tests/frame-throttling/raf-
throttle-in-cross-origin-subframe.html is a flaky failure"
https://bugs.webkit.org/show_bug.cgi?id=206839
https://trac.webkit.org/changeset/256463
- 2:52 PM Changeset in webkit [256483] by
-
- 5 edits in trunk/Tools
results.webkit.org: Remove debug JS logging
https://bugs.webkit.org/show_bug.cgi?id=207663
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/view/static/js/investigate.js:
(elapsed):
- resultsdbpy/resultsdbpy/view/static/js/tooltip.js:
(_ToolTip.prototype.toString):
- resultsdbpy/resultsdbpy/view/static/library/js/Ref.js:
(prototype.addWithDelay):
- resultsdbpy/resultsdbpy/view/templates/archive_list.html:
- 2:51 PM Changeset in webkit [256482] by
-
- 16 edits in trunk/Source
Shrink CachedResource
https://bugs.webkit.org/show_bug.cgi?id=207618
Reviewed by Mark Lam.
Source/WebCore:
This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
For each enum class, we definebitsOfXXX
value, which indicates # of bits to represent it. And using
this value for bit-field's width.
No behavior change.
- loader/FetchOptions.h:
(WebCore::FetchOptions::encode const):
- loader/ResourceLoaderOptions.h:
(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::CachedImage):
(WebCore::CachedImage::shouldDeferUpdateImageData const):
(WebCore::CachedImage::didUpdateImageData):
- loader/cache/CachedImage.h:
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::CachedResource):
(WebCore::CachedResource::load):
(WebCore::CachedResource::finish):
- loader/cache/CachedResource.h:
(WebCore::CachedResource::setStatus):
- page/csp/ContentSecurityPolicyResponseHeaders.h:
(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue):
(WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
- platform/network/NetworkLoadMetrics.h:
(WebCore::NetworkLoadMetrics::isolatedCopy const):
(WebCore::NetworkLoadMetrics::clearNonTimingData):
(WebCore::NetworkLoadMetrics::operator== const):
(WebCore::NetworkLoadMetrics::encode const):
(WebCore::NetworkLoadMetrics::decode):
- platform/network/ResourceLoadPriority.h:
- platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::ResourceRequestBase):
- platform/network/ResourceResponseBase.h:
- platform/network/StoredCredentialsPolicy.h:
Source/WTF:
- wtf/Markable.h:
(WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
- wtf/ObjectIdentifier.h:
(WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
(WTF::ObjectIdentifier::MarkableTraits::emptyValue):
(WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
- 2:50 PM Changeset in webkit [256481] by
-
- 17 edits in branches/safari-609-branch/Source/WebCore
Revert r256409. rdar://problem/59298138
- 2:50 PM Changeset in webkit [256480] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Revert r256457. rdar://problem/59298138
- 2:50 PM Changeset in webkit [256479] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
Revert r256469. rdar://problem/59298138
- 2:42 PM Changeset in webkit [256478] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207665
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:26 PM Changeset in webkit [256477] by
-
- 49 edits6 deletes in trunk
Remove CSS_DEVICE_ADAPTATION
https://bugs.webkit.org/show_bug.cgi?id=203479
Reviewed by Tim Horton.
Source/JavaScriptCore:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJSNewlyCreated):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/CSSProperty.cpp:
(WebCore::CSSProperty::isDescriptorOnly):
- css/CSSRule.cpp:
- css/CSSRule.h:
- css/CSSRule.idl:
- css/CSSValueKeywords.in:
- css/StyleRule.cpp:
(WebCore::StyleRuleBase::destroy):
(WebCore::StyleRuleBase::copy const):
(WebCore::StyleRuleBase::createCSSOMWrapper const):
(WebCore::StyleRuleViewport::StyleRuleViewport): Deleted.
(WebCore::StyleRuleViewport::mutableProperties): Deleted.
- css/StyleRule.h:
(WebCore::StyleRuleBase::isSupportsRule const):
(WebCore::StyleRuleBase::isViewportRule const): Deleted.
- css/StyleRuleType.h:
- css/StyleSheetContents.cpp:
(WebCore::traverseRulesInVector):
(WebCore::StyleSheetContents::traverseSubresources const):
- css/ViewportStyleResolver.cpp: Removed.
- css/ViewportStyleResolver.h: Removed.
- css/WebKitCSSViewportRule.cpp: Removed.
- css/WebKitCSSViewportRule.h: Removed.
- css/WebKitCSSViewportRule.idl: Removed.
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeAtRule):
(WebCore::CSSParserImpl::consumeViewportRule): Deleted.
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseValue):
(WebCore::consumeSingleViewportDescriptor): Deleted.
(WebCore::CSSPropertyParser::parseViewportDescriptor): Deleted.
- dom/Document.cpp:
(WebCore::Document::initialViewportSize const): Deleted.
- dom/Document.h:
- page/FrameView.h:
- style/RuleData.cpp:
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::addChildRules):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::appendAuthorStyleSheets):
(WebCore::Style::Resolver::~Resolver):
- style/StyleResolver.h:
(WebCore::Style::Resolver::viewportStyleResolver): Deleted.
Source/WebCore/PAL:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- Configurations/FeatureDefines.xcconfig:
Source/WebKit:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- Configurations/FeatureDefines.xcconfig:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::sendViewportAttributesChanged):
Source/WebKitLegacy/mac:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- Configurations/FeatureDefines.xcconfig:
- DOM/DOMCSS.mm:
(kitClass):
Source/WTF:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- wtf/PlatformEnable.h:
Tools:
CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
so remove the code.
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
LayoutTests:
- css3/device-adapt/opera/cascading-001-expected.txt: Removed.
- css3/device-adapt/opera/cascading-001.xhtml: Removed.
- css3/device-adapt/opera/cascading-002-expected.txt: Removed.
- css3/device-adapt/opera/cascading-002.xhtml: Removed.
- css3/device-adapt/opera/cascading-003-expected.txt: Removed.
- css3/device-adapt/opera/cascading-003.xhtml: Removed.
- css3/device-adapt/opera/cascading-004-expected.txt: Removed.
- css3/device-adapt/opera/cascading-004.xhtml: Removed.
- css3/device-adapt/opera/constrain-001-expected.txt: Removed.
- css3/device-adapt/opera/constrain-001.xhtml: Removed.
- css3/device-adapt/opera/constrain-002-expected.txt: Removed.
- css3/device-adapt/opera/constrain-002.xhtml: Removed.
- css3/device-adapt/opera/constrain-003-expected.txt: Removed.
- css3/device-adapt/opera/constrain-003.xhtml: Removed.
- css3/device-adapt/opera/constrain-004-expected.txt: Removed.
- css3/device-adapt/opera/constrain-004.xhtml: Removed.
- css3/device-adapt/opera/constrain-005-expected.txt: Removed.
- css3/device-adapt/opera/constrain-005.xhtml: Removed.
- css3/device-adapt/opera/constrain-006-expected.txt: Removed.
- css3/device-adapt/opera/constrain-006.xhtml: Removed.
- css3/device-adapt/opera/constrain-007-expected.txt: Removed.
- css3/device-adapt/opera/constrain-007.xhtml: Removed.
- css3/device-adapt/opera/constrain-008-expected.txt: Removed.
- css3/device-adapt/opera/constrain-008.xhtml: Removed.
- css3/device-adapt/opera/constrain-009-expected.txt: Removed.
- css3/device-adapt/opera/constrain-009.xhtml: Removed.
- css3/device-adapt/opera/constrain-010-expected.txt: Removed.
- css3/device-adapt/opera/constrain-010.xhtml: Removed.
- css3/device-adapt/opera/constrain-011-expected.txt: Removed.
- css3/device-adapt/opera/constrain-011.xhtml: Removed.
- css3/device-adapt/opera/constrain-012-expected.txt: Removed.
- css3/device-adapt/opera/constrain-012.xhtml: Removed.
- css3/device-adapt/opera/constrain-013-expected.txt: Removed.
- css3/device-adapt/opera/constrain-013.xhtml: Removed.
- css3/device-adapt/opera/constrain-014-expected.txt: Removed.
- css3/device-adapt/opera/constrain-014.xhtml: Removed.
- css3/device-adapt/opera/constrain-015-expected.txt: Removed.
- css3/device-adapt/opera/constrain-015.xhtml: Removed.
- css3/device-adapt/opera/constrain-016-expected.txt: Removed.
- css3/device-adapt/opera/constrain-016.xhtml: Removed.
- css3/device-adapt/opera/constrain-017-expected.txt: Removed.
- css3/device-adapt/opera/constrain-017.xhtml: Removed.
- css3/device-adapt/opera/constrain-018-expected.txt: Removed.
- css3/device-adapt/opera/constrain-018.xhtml: Removed.
- css3/device-adapt/opera/constrain-019-expected.txt: Removed.
- css3/device-adapt/opera/constrain-019.xhtml: Removed.
- css3/device-adapt/opera/constrain-020-expected.txt: Removed.
- css3/device-adapt/opera/constrain-020.xhtml: Removed.
- css3/device-adapt/opera/constrain-021-expected.txt: Removed.
- css3/device-adapt/opera/constrain-021.xhtml: Removed.
- css3/device-adapt/opera/constrain-022-expected.txt: Removed.
- css3/device-adapt/opera/constrain-022.xhtml: Removed.
- css3/device-adapt/opera/constrain-023-expected.txt: Removed.
- css3/device-adapt/opera/constrain-023.xhtml: Removed.
- css3/device-adapt/opera/constrain-024-expected.txt: Removed.
- css3/device-adapt/opera/constrain-024.xhtml: Removed.
- css3/device-adapt/opera/cssom-001-expected.txt: Removed.
- css3/device-adapt/opera/cssom-001.xhtml: Removed.
- css3/device-adapt/opera/orientation-001-expected.txt: Removed.
- css3/device-adapt/opera/orientation-001.xhtml: Removed.
- css3/device-adapt/opera/orientation-002-expected.txt: Removed.
- css3/device-adapt/opera/orientation-002.xhtml: Removed.
- css3/device-adapt/opera/syntax-001-expected.txt: Removed.
- css3/device-adapt/opera/syntax-001.xhtml: Removed.
- css3/device-adapt/opera/syntax-002-expected.txt: Removed.
- css3/device-adapt/opera/syntax-002.xhtml: Removed.
- css3/device-adapt/opera/syntax-003-expected.txt: Removed.
- css3/device-adapt/opera/syntax-003.xhtml: Removed.
- css3/device-adapt/resources/check-contents-width.html: Removed.
- css3/device-adapt/resources/viewport-width-check-inner-width.html: Removed.
- css3/device-adapt/viewport-at-rule-parsing-expected.txt: Removed.
- css3/device-adapt/viewport-at-rule-parsing.html: Removed.
- css3/device-adapt/viewport-properties-validation-expected.txt: Removed.
- css3/device-adapt/viewport-properties-validation.html: Removed.
- css3/device-adapt/viewport-width-check-window-innerwidth-correct-expected.txt: Removed.
- css3/device-adapt/viewport-width-check-window-innerwidth-correct.html: Removed.
- css3/device-adapt/viewport-width-not-affecting-next-page-expected.txt: Removed.
- css3/device-adapt/viewport-width-not-affecting-next-page.html: Removed.
- platform/gtk/TestExpectations:
- platform/ios-wk1/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wpe/TestExpectations:
- 2:05 PM Changeset in webkit [256476] by
-
- 3 edits in trunk/Source/WebKit
[macOS] Remove irrelevant global-name rule in WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=207659
<rdar://problem/52289544>
Reviewed by Per Arne Vollan.
We have been allowing access to a non-existance global-name. We should remove this rule.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- WebProcess/com.apple.WebProcess.sb.in:
- 1:53 PM Changeset in webkit [256475] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] crypto/subtle/rsa-indexeddb-non-exportable-private.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207660
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 1:50 PM Changeset in webkit [256474] by
-
- 3 edits in trunk/Source/WebCore
Web Inspector: inspector/cpu-profiler/threads.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=207588
<rdar://problem/57458123>
Reviewed by Yusuke Suzuki.
- page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::ResourceUsageThread::platformCollectCPUData):
Use a fence to force Thread to be completely ready for use by other threads
prior to storing it. Otherwise, ResourceUsageThread may see it too early.
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::start): Ignore worker threads that are
not fully initialized.
- 1:49 PM Changeset in webkit [256473] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Remove access to AppleKeyStoreUserClient from the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207654
<rdar://problem/58804060>
Reviewed by Per Arne Vollan.
Testing and telemetry show that we no longer need access to the AppleKeyStoreUserClient
IOKit class in the WebContent or GPU processes. We should remove this access.
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 1:48 PM Changeset in webkit [256472] by
-
- 2 edits24 deletes in branches/safari-610.1.3-branch/Source/ThirdParty/ANGLE
Cherry-pick r256443. rdar://problem/59398102
ANGLE has unused bison and glmark2 code
https://bugs.webkit.org/show_bug.cgi?id=207597
rdar://59361460
Reviewed by Maciej Stachowiak.
Remove some unused files.
- changes.diff:
- src/tests/perf_tests/glmark2Benchmark.cpp: Removed.
- third_party/glmark2/BUILD.gn: Removed.
- third_party/glmark2/README.angle: Removed.
- tools/flex-bison/README.md: Removed.
- tools/flex-bison/linux/bison.sha1: Removed.
- tools/flex-bison/linux/flex.sha1: Removed.
- tools/flex-bison/third_party/.gitattributes: Removed.
- tools/flex-bison/third_party/m4sugar/LICENSE: Removed.
- tools/flex-bison/third_party/m4sugar/README.chromium: Removed.
- tools/flex-bison/third_party/m4sugar/foreach.m4: Removed.
- tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed.
- tools/flex-bison/third_party/skeletons/LICENSE: Removed.
- tools/flex-bison/third_party/skeletons/README.chromium: Removed.
- tools/flex-bison/third_party/skeletons/bison.m4: Removed.
- tools/flex-bison/third_party/skeletons/c-like.m4: Removed.
- tools/flex-bison/third_party/skeletons/c.m4: Removed.
- tools/flex-bison/third_party/skeletons/yacc.c: Removed.
- tools/flex-bison/update_flex_bison_binaries.py: Removed.
- tools/flex-bison/windows/bison.exe.sha1: Removed.
- tools/flex-bison/windows/flex.exe.sha1: Removed.
- tools/flex-bison/windows/m4.exe.sha1: Removed.
- tools/flex-bison/windows/msys-2.0.dll.sha1: Removed.
- tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed.
- tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256443 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:48 PM Changeset in webkit [256471] by
-
- 5 edits in branches/safari-610.1.3-branch/Source/WebKit
Cherry-pick r256396. rdar://problem/59398237
Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256396 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:46 PM Changeset in webkit [256470] by
-
- 2 edits in trunk/Source/WebCore
ServiceWorkerContainer::jobResolvedWithRegistration scopeExit should capture all lambda parameters by value
https://bugs.webkit.org/show_bug.cgi?id=207657
Reviewed by Chris Dumez.
shouldNotifyWhenResolved is captured by reference in the notifyIfExitEarly ScopeExit lambda.
The ScopeExit is not always called synchronously so it is unsafe to capture values by reference here.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
- 1:35 PM Changeset in webkit [256469] by
-
- 1 edit in branches/safari-609-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
Unreviewed Build Fix, rdar://problem/59298138
- 12:32 PM Changeset in webkit [256468] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Compact StructureTransitionTable
https://bugs.webkit.org/show_bug.cgi?id=207616
Reviewed by Mark Lam.
Some of StructureTransitionTable are shown as very large HashMap and we can compact it by encoding key.
We leverage 48bit pointers and 8byte alignment of UniquedStringImpl* to encode other parameters into it.
- runtime/Structure.cpp:
(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):
- runtime/Structure.h:
- runtime/StructureTransitionTable.h:
(JSC::StructureTransitionTable::Hash::Key::Key):
(JSC::StructureTransitionTable::Hash::Key::isHashTableDeletedValue const):
(JSC::StructureTransitionTable::Hash::Key::impl const):
(JSC::StructureTransitionTable::Hash::Key::isAddition const):
(JSC::StructureTransitionTable::Hash::Key::attributes const):
(JSC::StructureTransitionTable::Hash::Key::operator==):
(JSC::StructureTransitionTable::Hash::Key::operator!=):
(JSC::StructureTransitionTable::Hash::hash):
(JSC::StructureTransitionTable::Hash::equal):
- 12:07 PM Changeset in webkit [256467] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Make RegExpCache small
https://bugs.webkit.org/show_bug.cgi?id=207619
Reviewed by Mark Lam.
We can compact RegExpKey by using PackedRefPtr, so that we can shrink memory consumption of RegExpCache.
- runtime/RegExpKey.h:
- 12:01 PM Changeset in webkit [256466] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Do not create Display::Boxes for anonymous inline text boxes
https://bugs.webkit.org/show_bug.cgi?id=207612
<rdar://problem/59374909>
Reviewed by Antti Koivisto.
<div>text content</div> : [text content] only needs a Display::Run.
<div><span>text content</span></div> [span] needs a Display::Box and [text content] needs a Display::Run.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- 11:43 AM Changeset in webkit [256465] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore5.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207652
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:34 AM Changeset in webkit [256464] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore4.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207651
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:31 AM Changeset in webkit [256463] by
-
- 33 edits in trunk
REGRESSION (r255158): http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206839
Reviewed by Simon Fraser.
Source/WebCore:
Remove the setting 'RenderingUpdateThrottling'. We will disable the
RenderingUpdateThrottling till the first layout happens. Then it will be
enabled for the rest of the page's life. This ensures VisuallyIdle won't
throttle the RenderingUpdate steps before the first paint.
- page/Page.cpp:
(WebCore::Page::renderingUpdateThrottlingEnabled const):
(WebCore::Page::addLayoutMilestones):
(WebCore::Page::renderingUpdateThrottlingEnabledChanged): Deleted.
- page/Page.h:
- page/Settings.yaml:
- page/SettingsBase.cpp:
(WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged): Deleted.
- page/SettingsBase.h:
Source/WebKit:
Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetRenderingUpdateThrottlingEnabled): Deleted.
(WKPreferencesGetRenderingUpdateThrottlingEnabled): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
Source/WebKitLegacy/mac:
Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences renderingUpdateThrottlingEnabled]): Deleted.
(-[WebPreferences setRenderingUpdateThrottlingEnabled:]): Deleted.
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm:
(-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):
(WebPreferences::renderingUpdateThrottlingEnabled): Deleted.
(WebPreferences::setRenderingUpdateThrottlingEnabled): Deleted.
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
Remove the WKPreference key 'RenderingUpdateThrottlingEnabled'.
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
- DumpRenderTree/win/DumpRenderTree.cpp:
(enableExperimentalFeatures):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
Remove the setting 'RenderingUpdateThrottling'.
- fast/animation/css-animation-throttling-lowPowerMode.html:
- fast/animation/request-animation-frame-throttle-subframe.html:
- fast/animation/request-animation-frame-throttling-detached-iframe.html:
- fast/animation/request-animation-frame-throttling-lowPowerMode.html:
- fast/animation/request-animation-frame-throttling-outside-viewport.html:
- http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html:
- platform/mac-wk2/TestExpectations:
- 11:27 AM Changeset in webkit [256462] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_delete_objectstore3.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207650
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:15 AM Changeset in webkit [256461] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/idb_webworkers.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207649
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 11:13 AM Changeset in webkit [256460] by
-
- 2 edits in trunk/Source/WebCore
Refactor DocumentLoader::commitData to use a Document& internally
https://bugs.webkit.org/show_bug.cgi?id=207579
Reviewed by Chris Dumez.
Once we write some bytes, the frame has a Document.
Put it in a local variable to improve readability of the code.
No change of behavior.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitData):
- 11:09 AM Changeset in webkit [256459] by
-
- 3 edits in branches/safari-610.1.3-branch/Source/WebCore
Cherry-pick r256400. rdar://problem/59240559
Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm: (WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm: (WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256400 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:07 AM Changeset in webkit [256458] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Display::Run should not have any geometry mutation functions.
https://bugs.webkit.org/show_bug.cgi?id=207633
<rdar://problem/59386235>
Reviewed by Antti Koivisto.
Now that Display::Runs are constructed after merging the runs on the line, we don't need any of
these mutation functions.
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::textContent const):
(WebCore::Display::Run::isLineBreak const):
(WebCore::Display::Run::lineIndex const):
(WebCore::Display::Run::setWidth): Deleted.
(WebCore::Display::Run::setTop): Deleted.
(WebCore::Display::Run::setlLeft): Deleted.
(WebCore::Display::Run::moveVertically): Deleted.
(WebCore::Display::Run::moveHorizontally): Deleted.
(WebCore::Display::Run::expandVertically): Deleted.
(WebCore::Display::Run::expandHorizontally): Deleted.
(WebCore::Display::Run::setTextContent): Deleted.
(WebCore::Display::Run::setExpansion): Deleted.
(WebCore::Display::Run::setImage): Deleted.
- 10:59 AM Changeset in webkit [256457] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Re-apply Cherry-pick r256060. rdar://problem/59298138
Captions sometimes render at the wrong size when in fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=207389
<rdar://problem/58677864>
Reviewed by Jer Noble.
The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
iOS and and in PiP on macOS, frequently rendered captions before layout completed
immediately after it was created. Fix this by having it not render until a layout
happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
backing layer when cues are not visible instead of destroying the whole object.
Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
- html/HTMLMediaElement.cpp: (WebCore::convertEnumerationToString): (WebCore::HTMLMediaElement::configureTextTrackDisplay):
- html/HTMLMediaElementEnums.h: (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
- html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): (WebCore::MediaControlTextTrackContainerElement::updateDisplay): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle): (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary): (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize): (WebCore::MediaControlTextTrackContainerElement::updateSizes): (WebCore::MediaControlTextTrackContainerElement::updateCueStyles): (WebCore::MediaControlTextTrackContainerElement::logger const): (WebCore::MediaControlTextTrackContainerElement::logIdentifier const): (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted. (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
- platform/graphics/TextTrackRepresentation.h:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm: (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC): (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame): (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds): (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation): (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
- platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]): (TextTrackRepresentationCocoa::setHidden const): (TextTrackRepresentationCocoa::boundsChanged):
- rendering/RenderMediaControlElements.cpp: (WebCore::RenderTextTrackContainerElement::layout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [256456] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/tests/ssl/applepay/ApplePayBillingAddress.html a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207577
Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-12
Reviewed by Wenson Hsieh
Fix for race condition when aborting paymentrequest.
- http/tests/ssl/applepay/ApplePayBillingAddress.html:
- 10:49 AM Changeset in webkit [256455] by
-
- 5 edits in trunk
Source/WebKit:
Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740
Patch by Simon Fraser <Simon Fraser> on 2020-02-12
Reviewed by Tim Horton.
TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:
setRootCompositingGraphicsLayer() when frozen
-> stash in m_pendingRootLayer
setRootCompositingGraphicsLayer() when not frozen
-> set the root layer
flushLayers()
-> set the root layer to the (old) m_pendingRootLayer
So we need to clear m_pendingRootLayer at step 2.
Very timing dependent, hard to test.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
LayoutTests:
[iOS] Deny mach lookup access to analytics service in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207482
Reviewed by Darin Adler.
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 10:48 AM Changeset in webkit [256454] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/security/strip-referrer-to-origin-for-third-party-redirects-in-private-mode.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207647
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 10:47 AM Changeset in webkit [256453] by
-
- 4 edits in trunk/Tools
results.webkit.org: Cache archive content
https://bugs.webkit.org/show_bug.cgi?id=207589
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/flask_support/util.py:
(cache_for): Add decorator function which sets the cache values on the returned response.
- resultsdbpy/resultsdbpy/view/archive_view.py:
(ArchiveView): Cache archive content client-side for 12 hours.
- resultsdbpy/resultsdbpy/view/archive_view_unittest.py:
(ArchiveViewUnittest.test_file): Verify that archived content is cached.
- 10:46 AM Changeset in webkit [256452] by
-
- 2 edits in trunk/Source/WebKit
Pages that trigger a redirect will sometimes be left blank
https://bugs.webkit.org/show_bug.cgi?id=207614
rdar://problem/59077740
Reviewed by Tim Horton.
TiledCoreAnimationDrawingArea::setRootCompositingGraphicsLayer() can be called when the layer tree
is frozen, in which case we stash away the layer in m_pendingRootLayer to be parented later at flush
time. However, this sequence of calls had a bug:
setRootCompositingGraphicsLayer() when frozen
-> stash in m_pendingRootLayer
setRootCompositingGraphicsLayer() when not frozen
-> set the root layer
flushLayers()
-> set the root layer to the (old) m_pendingRootLayer
So we need to clear m_pendingRootLayer at step 2.
Very timing dependent, hard to test.
- WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::setRootCompositingLayer):
- 10:40 AM Changeset in webkit [256451] by
-
- 7 edits in trunk
Fix highlight text decorations to work with all decoration types and colors
https://bugs.webkit.org/show_bug.cgi?id=207601
Reviewed by Dean Jackson.
Source/WebCore:
MarkedText styles were incorrectly setting styles, and colors were being
calculated incorrectly.
Extended http/wpt/css/css-highlight-api/highlight-text-decorations.html.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::resolveStyleForMarkedText):
Correctly pass information about text decorations to MarkedTexts styles.
- rendering/TextDecorationPainter.cpp:
(WebCore::collectStylesForRenderer):
(WebCore::TextDecorationPainter::decorationColor):
(WebCore::decorationColor): Deleted.
Expose decorationColor calculator for use in InlineTextBox.
- rendering/TextDecorationPainter.h:
LayoutTests:
- http/wpt/css/css-highlight-api/highlight-text-decorations-expected.html:
- http/wpt/css/css-highlight-api/highlight-text-decorations.html:
- 10:40 AM Changeset in webkit [256450] by
-
- 5 edits in trunk
[iOS] Deny mach lookup access to view service in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207487
Source/WebKit:
<rdar://problem/56995704>
Reviewed by Darin Adler.
As part of sandbox hardening, mach lookup access to com.apple.uikit.viewservice should be denied.
Test: fast/sandbox/ios/sandbox-mach-lookup.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
Reviewed by Darin Adler.
- fast/sandbox/ios/sandbox-mach-lookup-expected.txt:
- fast/sandbox/ios/sandbox-mach-lookup.html:
- 10:36 AM Changeset in webkit [256449] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/security/cross-frame-access-private-browsing.html is a flay timeout
https://bugs.webkit.org/show_bug.cgi?id=207645
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 10:27 AM Changeset in webkit [256448] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/service-workers/service-worker/resource-timing.sub.https.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207643
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 10:24 AM Changeset in webkit [256447] by
-
- 2 edits in trunk/Source/WebCore
RELEASE_ASSERT() under WebSWClientConnection::didResolveRegistrationPromise()
https://bugs.webkit.org/show_bug.cgi?id=207637
<rdar://problem/59093490>
Reviewed by Youenn Fablet.
We were capturing data by reference in the notifyIfExitEarly ScopeExit lambda and then capturing it
in the task posted to the event loop, which was unsafe.
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
- 10:07 AM Changeset in webkit [256446] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 10:03 AM Changeset in webkit [256445] by
-
- 2 edits3 moves3 adds3 deletes in trunk/LayoutTests
[css-grid] Move grid-item-auto-margins-alignment tests to WPT folder
https://bugs.webkit.org/show_bug.cgi?id=207534
Patch by Rossana Monteriso <rmonteriso@igalia.com> on 2020-02-12
Reviewed by Javier Fernandez.
LayoutTests/imported/w3c:
Add grid-item-auto-margins-alignment tests, checked and adapted to WPT, with their expected.txt files.
Imported to WPT with this PR: https://github.com/web-platform-tests/wpt/pull/21509
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-lr-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-lr.html:
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-rl-expected.txt:
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment-vertical-rl.html:
- web-platform-tests/css/css-grid/alignment/grid-item-auto-margins-alignment.html:
LayoutTests:
Remove grid-item-auto-margins-alignment tests and their expected.txt files. These tests
are being replaced by adapted tests in the corresponding WPT test folder.
- fast/css-grid-layout/grid-item-auto-margins-alignment-expected.txt: Removed.
- fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr-expected.txt: Removed.
- fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl-expected.txt: Removed.
- fast/css-grid-layout/grid-item-auto-margins-alignment.html: Removed.
- fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-lr.html: Removed.
- fast/css-grid-layout/grid-item-auto-margins-alignment-vertical-rl.html: Removed.
- 10:02 AM Changeset in webkit [256444] by
-
- 2 edits in trunk/Source/WebKit
Make _WKResourceLoadDelegate.h able to be included before other headers
https://bugs.webkit.org/show_bug.cgi?id=206037
- UIProcess/API/Cocoa/_WKResourceLoadDelegate.h:
Add missing "@class WKWebView;"
- 9:33 AM Changeset in webkit [256443] by
-
- 2 edits24 deletes in trunk/Source/ThirdParty/ANGLE
ANGLE has unused bison and glmark2 code
https://bugs.webkit.org/show_bug.cgi?id=207597
rdar://59361460
Reviewed by Maciej Stachowiak.
Remove some unused files.
- changes.diff:
- src/tests/perf_tests/glmark2Benchmark.cpp: Removed.
- third_party/glmark2/BUILD.gn: Removed.
- third_party/glmark2/README.angle: Removed.
- tools/flex-bison/README.md: Removed.
- tools/flex-bison/linux/bison.sha1: Removed.
- tools/flex-bison/linux/flex.sha1: Removed.
- tools/flex-bison/third_party/.gitattributes: Removed.
- tools/flex-bison/third_party/m4sugar/LICENSE: Removed.
- tools/flex-bison/third_party/m4sugar/README.chromium: Removed.
- tools/flex-bison/third_party/m4sugar/foreach.m4: Removed.
- tools/flex-bison/third_party/m4sugar/m4sugar.m4: Removed.
- tools/flex-bison/third_party/skeletons/LICENSE: Removed.
- tools/flex-bison/third_party/skeletons/README.chromium: Removed.
- tools/flex-bison/third_party/skeletons/bison.m4: Removed.
- tools/flex-bison/third_party/skeletons/c-like.m4: Removed.
- tools/flex-bison/third_party/skeletons/c.m4: Removed.
- tools/flex-bison/third_party/skeletons/yacc.c: Removed.
- tools/flex-bison/update_flex_bison_binaries.py: Removed.
- tools/flex-bison/windows/bison.exe.sha1: Removed.
- tools/flex-bison/windows/flex.exe.sha1: Removed.
- tools/flex-bison/windows/m4.exe.sha1: Removed.
- tools/flex-bison/windows/msys-2.0.dll.sha1: Removed.
- tools/flex-bison/windows/msys-iconv-2.dll.sha1: Removed.
- tools/flex-bison/windows/msys-intl-8.dll.sha1: Removed.
- 9:31 AM Changeset in webkit [256442] by
-
- 10 edits in trunk/Source/WebCore
Support event notifications in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=207581
Reviewed by Chris Fleizach.
- DOM/Render trees notifications are listened to by AXObjectCache and
the corresponding IsolatedTree is updated.
- The update is now happening for state, value and children change
notifications.
- AXObjectCache::updateIsolatedTree re-generates the subtree rooted at
the node receiving the notification.
- Consolidated creation of AXIsolatedObjects by passing treeID and
parentID to the create method and constructor.
- Changes to the IsolatedTree are set on the main thread using the
NodeChange structure, and applied to the tree on the AX thread.
- The updated IsolatedObjects are attached to their corresponding
platform wrappers on the AX thread, so that after creation they are only
accessed on the secondary thread.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postNotification): Invokes updateIsolatedTree.
(WebCore::createIsolatedTreeHierarchy):
(WebCore::AXObjectCache::generateIsolatedTree):
(WebCore::AXObjectCache::updateIsolatedTree):
(WebCore::AXObjectCache::createIsolatedTreeHierarchy): Became a static helper function.
- accessibility/AXObjectCache.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::create):
(WebCore::AXIsolatedObject::setProperty):
(WebCore::AXIsolatedObject::setParent):
(WebCore::AXIsolatedObject::detachFromParent):
(WebCore::AXIsolatedObject::setTreeIdentifier): Deleted, the tree identifier is set in the constructor.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::NodeChange::NodeChange):
(WebCore::AXIsolatedTree::appendNodeChanges):
(WebCore::AXIsolatedTree::applyPendingChanges):
- accessibility/isolatedtree/AXIsolatedTree.h:
- accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:
(WebCore::AXIsolatedObject::attachPlatformWrapper):
- accessibility/mac/AXObjectCacheMac.mm:
- 9:27 AM Changeset in webkit [256441] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/whlsl.html
https://bugs.webkit.org/show_bug.cgi?id=207638
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:13 AM Changeset in webkit [256440] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/textures-sample-bias.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207636
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:05 AM Changeset in webkit [256439] by
-
- 3 edits in trunk/Source/WebKit
Expand WebContent process sandbox with additional syscall
https://bugs.webkit.org/show_bug.cgi?id=206260
<rdar://problem/58580997>
Reviewed by Per Arne Vollan.
Testing shows that we will improve performance on some platforms by supporting an additional Syscall.
This patch revises our sandboxes so that WebKit can use this fast path if available.
No new tests. No change in test result behavior.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- WebProcess/com.apple.WebProcess.sb.in:
- 8:35 AM Changeset in webkit [256438] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] fast/events/before-input-prevent-insert-replacement.html is a flay failure
https://bugs.webkit.org/show_bug.cgi?id=207635
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:53 AM Changeset in webkit [256437] by
-
- 10 edits in trunk/Source/WebCore
[LFC][IFC] Rename Display::Run::TextContext to TextContent
https://bugs.webkit.org/show_bug.cgi?id=207611
<rdar://problem/59374523>
Reviewed by Antti Koivisto.
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::checkForMatchingTextRuns):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::setTextContent):
(WebCore::Display::Run::textContent const):
(WebCore::Display::Run::textContent):
(WebCore::Display::Run::isLineBreak const):
(WebCore::Display::Run::Run):
(WebCore::Display::Run::TextContent::TextContent):
(WebCore::Display::Run::TextContext::start const): Deleted.
(WebCore::Display::Run::TextContext::end const): Deleted.
(WebCore::Display::Run::TextContext::length const): Deleted.
(WebCore::Display::Run::TextContext::content const): Deleted.
(WebCore::Display::Run::TextContext::needsHyphen const): Deleted.
(WebCore::Display::Run::TextContext::setNeedsHyphen): Deleted.
(WebCore::Display::Run::TextContext::expand): Deleted.
(WebCore::Display::Run::setTextContext): Deleted.
(WebCore::Display::Run::textContext const): Deleted.
(WebCore::Display::Run::textContext): Deleted.
(WebCore::Display::Run::TextContext::TextContext): Deleted.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::m_textContent):
(WebCore::Layout::LineBuilder::Run::expand):
(WebCore::Layout::LineBuilder::Run::removeTrailingWhitespace):
(WebCore::Layout::m_textContext): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
(WebCore::Layout::LineBuilder::Run::textContent const):
(WebCore::Layout::LineBuilder::Run::textContext const): Deleted.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):
- rendering/line/LineLayoutTraversalDisplayRunPath.h:
(WebCore::LineLayoutTraversal::DisplayRunPath::hasHyphen const):
(WebCore::LineLayoutTraversal::DisplayRunPath::text const):
(WebCore::LineLayoutTraversal::DisplayRunPath::localStartOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::localEndOffset const):
(WebCore::LineLayoutTraversal::DisplayRunPath::length const):
- 7:49 AM Changeset in webkit [256436] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer][EME] Fix build with ENCRYPTED_MEDIA=OFF
https://bugs.webkit.org/show_bug.cgi?id=207628
Unreviewed build fix.
Covered by existing tests.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):
- 7:42 AM Changeset in webkit [256435] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (256400) tiled-drawing/scrolling/fixed/fixed-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207631
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:39 AM Changeset in webkit [256434] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: (356400) tiled-drawing/scrolling/sticky/sticky-during-rubberband.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207632
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 7:39 AM Changeset in webkit [256433] by
-
- 2 edits in trunk/Source/WebKit
macCatalyst: Unable to grab scrollbar on editable text field
https://bugs.webkit.org/show_bug.cgi?id=207615
<rdar://problem/59212993>
Reviewed by Tim Horton.
In macCatalyst, hovering over the scrollbar (an instance of the internal UIKit class
_UIScrollViewScrollIndicator
) is required in order for a click and drag with the mouse to actually move the
scrollbar. This is because UIKit depends on the cursor interaction added to this view to recognize and call its
delegate methods.
However, we override hit-testing in WebKit to skip over all children of scroll views, and instead force hit-
testing to find the scroll view instead. This means that UIKit can never hit-test to the scroll indicator views
embedded directly beneath each WKChildScrollView, so the cursor interactions described earlier will not
recognize. To work around this, special case these scroll indicator views, such that we will allow
-hitTest:withEvent: to find these views.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:
(WebKit::scrollViewScrollIndicatorClass):
(-[UIView _web_findDescendantViewAtPoint:withEvent:]):
- 7:32 AM Changeset in webkit [256432] by
-
- 4 edits in trunk
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 7:15 AM Changeset in webkit [256431] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Move expansion struct out of Display::Run::TextContext to Display::Run
https://bugs.webkit.org/show_bug.cgi?id=207610
<rdar://problem/59374136>
Reviewed by Antti Koivisto.
This is in preparation for renaming Display::Run::TextContext to Display::Run:TextContent.
Non-text runs now have the default expansion behavior with 0 horizontal expansion.
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::paintInlineContent):
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::TextContext::setNeedsHyphen):
(WebCore::Display::Run::TextContext::expand):
(WebCore::Display::Run::setExpansion):
(WebCore::Display::Run::expansion const):
(WebCore::Display::Run::TextContext::setExpansion): Deleted.
(WebCore::Display::Run::TextContext::expansion const): Deleted.
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::justifyRuns):
(WebCore::Layout::LineBuilder::Run::expand):
(WebCore::Layout::LineBuilder::Run::visuallyCollapseTrailingWhitespace):
(WebCore::Layout::LineBuilder::Run::setExpansionBehavior):
(WebCore::Layout::LineBuilder::Run::expansionBehavior const):
(WebCore::Layout::LineBuilder::Run::setComputedHorizontalExpansion):
(WebCore::Layout::LineBuilder::Run::adjustExpansionBehavior): Deleted.
- layout/inlineformatting/InlineLineBuilder.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- 5:16 AM Changeset in webkit [256430] by
-
- 2 edits in trunk/Source/WebDriver
WebDriver: return invalidSessionID exception if the WebProcess doesn't respond (crashes)
https://bugs.webkit.org/show_bug.cgi?id=207565
Reviewed by Adrian Perez de Castro.
Report InvalidSessionID if the session connection its not connected.
- WebDriverService.cpp:
(WebDriver::WebDriverService::findSessionOrCompleteWithError):
- 3:11 AM Changeset in webkit [256429] by
-
- 15 edits4 adds in trunk/Source/WebCore
[EME][GStreamer] Introduce CDMProxy
https://bugs.webkit.org/show_bug.cgi?id=206730
Reviewed by Xabier Rodriguez-Calvar.
Introduce a new subclass of CDMInstance, CDMProxyInstance.
CDMInstance is a main-thread only class, its purpose is to provide
an interface that will satisfy the JavaScript EME APIs, which by
design, don't actually interact with a real DRM system, what might
also be called "The CDM Instance". That's why the naming is
misleading here, CDMInstance isn't actually an instance of a real
CDM, rather it is a facade for JavaScript.
CDMProxyInstance is a sub-class which provides two APIs,
1/ For background media threads to safely interrogate the status
of keys and to perform decryption using said keys. This API is
exposed by CDMProxy and is platform specific.
2/ For media players to safely assess the state of decryptors and
what their status is.
CDMProxy exists to allow thread-safe access to a real CDM, along
with their quirks. The two main problems GTK integrators of a CDM
have in WebKit is key management and CDM access from background
media threads.
Key management is how to manage the state of keys in a way
coherent with JavaScript, the cross-platform EME implementation,
the real CDMs themselves, and the background media
threads. CDMProxy provides a default key store interface for
sub-classes. Sub-classes can, on receipt of new information from a
real CDM, tell CDMProxy about the keys and their
statuses. CDMProxy is intended to Do The Right Thing from there,
letting JavaScript and WebCore know all the details they need to
about the new state, as well as the media decode threads when they
next come asking.
Access from background threads is ill-advised when using the
thread-unsafe CDMInstance. We used to get away with doing exactly
this, but WebCore recently became more diligent about
thread-unsafe access of main-thread-only data, and we had to do
something to fix the asserts. That something was ProxyCDM (a
terrible name, removed now), which was a hack and please forget
about it. CDMProxy can be safely passed to background threads, and
it will by default provide a thread-safe view of the key store for
background threads to interrogate the key store and perform
CDM-specific decryption / decode.
Covered by existing tests.
- WebCore.xcodeproj/project.pbxproj: Add CDMProxy to build
definition.
- platform/GStreamer.cmake: Add CDMProxy include directories and
implementation files.
- platform/encryptedmedia/CDMInstance.h: Remove references to old
ProxyCDM shim. This approach was a temporary hack to avoid some
thread-safety asserts. I took the liberty of renaming to CDMProxy,
for no other reason that it felt like a better name, sorry for the
confusion.
- platform/encryptedmedia/CDMProxy.cpp: Added.
(WebCore::Key::idAsString const):
(WebCore::Key::valueAsString const):
(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::merge):
(WebCore::KeyStore::allKeysAsReleased const):
(WebCore::KeyStore::addKeys):
(WebCore::KeyStore::add):
(WebCore::KeyStore::removeAllKeysFrom):
(WebCore::KeyStore::remove):
(WebCore::KeyStore::keyValue const):
(WebCore::KeyStore::convertToJSKeyStatusVector const):
(WebCore::CDMProxy::updateKeyStore):
(WebCore::CDMProxy::setInstance):
(WebCore::CDMProxy::keyValue const):
(WebCore::CDMProxy::startedWaitingForKey const):
(WebCore::CDMProxy::stoppedWaitingForKey const):
(WebCore::CDMProxy::tryWaitForKey const):
(WebCore::CDMProxy::keyAvailableUnlocked const):
(WebCore::CDMProxy::keyAvailable const):
(WebCore::CDMProxy::getOrWaitForKey const):
(WebCore::CDMInstanceProxy::startedWaitingForKey):
(WebCore::CDMInstanceProxy::stoppedWaitingForKey):
(WebCore::CDMInstanceProxy::mergeKeysFrom):
(WebCore::CDMInstanceProxy::removeAllKeysFrom):
- platform/encryptedmedia/CDMProxy.h: Added.
(WebCore::Key::create):
(WebCore::Key::idAsSharedBuffer const):
(WebCore::Key::id const):
(WebCore::Key::value const):
(WebCore::Key::value):
(WebCore::Key::status const):
(WebCore::Key::operator==):
(WebCore::Key::addSessionReference):
(WebCore::Key::removeSessionReference):
(WebCore::Key::numSessionReferences const):
(WebCore::Key::Key):
(WebCore::KeyStore::removeAllKeys):
(WebCore::KeyStore::numKeys const):
(WebCore::KeyStore::begin):
(WebCore::KeyStore::begin const):
(WebCore::KeyStore::end):
(WebCore::KeyStore::end const):
(WebCore::KeyStore::rbegin):
(WebCore::KeyStore::rbegin const):
(WebCore::KeyStore::rend):
(WebCore::KeyStore::rend const):
(WebCore::CDMInstanceProxy::setProxy):
(WebCore::CDMInstanceProxy::proxy const):
(WebCore::CDMInstanceProxy::isWaitingForKey const):
(WebCore::CDMInstanceProxy::setPlayer):
(WebCore::CDMInstanceProxy::trackSession):
- platform/encryptedmedia/clearkey/CDMClearKey.cpp:
(WebCore::parseLicenseFormat): Refactored to use new Key class.
(WebCore::extractKeyidsLocationFromCencInitData): Refactored to
use better named constants.
(WebCore::extractKeyidsFromCencInitData): Ditto.
(WebCore::CDMInstanceClearKey::createSession): Use the
trackSession method to allow easier monitoring of all EME
sessions.
(WebCore::CDMInstanceSessionClearKey::requestLicense): Refactor to
keep track of generated session IDs.
(WebCore::CDMInstanceSessionClearKey::updateLicense): Refactor to
use new key management classes.
(WebCore::CDMInstanceSessionClearKey::loadSession): Ditto.
(WebCore::CDMInstanceSessionClearKey::removeSessionData): Ditto.
(WebCore::ClearKeyState::keys): Deleted.
(WebCore::ClearKeyState::singleton): Deleted.
(WebCore::isolatedKey): Deleted.
(WebCore::ProxyCDMClearKey::isolatedKeys const): Deleted.
(WebCore::CDMInstanceClearKey::CDMInstanceClearKey): Deleted.
(WebCore::CDMInstanceClearKey::Key::keyIDAsString const): Deleted.
(WebCore::CDMInstanceClearKey::Key::keyValueAsString const): Deleted.
(WebCore::operator==): Deleted.
(WebCore::operator<): Deleted. It looks like we were unnecessarily
sorting the key vectors. It doesn't make any sense to impose an
ordering on keys, so I removed it.
- platform/encryptedmedia/clearkey/CDMClearKey.h: Refactor to use
new key management classes.
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
Remove obsolete ProxyCDM method.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::parseInitDataFromProtectionMessage):
Refactored out of syncMessage. The code was moved here and into
waitForCDMAttachment.
(WebCore::MediaPlayerPrivateGStreamer::waitForCDMAttachment):
Ditto.
(WebCore::MediaPlayerPrivateGStreamer::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage): Remove
waiting-for-key code, it was all broken anyway.
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):
Enforce use of CDMInstanceProxy, all GStreamer-based ports will be
using the CDMProxy derived classes from background
threads. CDMProxy's need a handle to the MediaPlayer for
waitingForKey management, so wire that in here too. Also wire the
GStreamer specific ClearKey proxy here.
(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateGStreamer::waitingForKey const): Key
status notifications are the responsibility of the CDMProxy now.
(WebCore::MediaPlayerPrivateGStreamer::setWaitingForKey): Deleted.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Now
we use CDMInstanceProxy, not CDMInstance.
- platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:
Added. G*-specific ClearKey implementation.
(WebCore::CDMProxyClearKey::~CDMProxyClearKey):
(WebCore::CDMProxyClearKey::cencSetCounterVector):
(WebCore::CDMProxyClearKey::cencSetDecryptionKey):
(WebCore::CDMProxyClearKey::cencDecryptFullSample):
(WebCore::CDMProxyClearKey::cencDecryptSubsampled):
(WebCore::CDMProxyClearKey::cencDecrypt):
(WebCore::CDMProxyClearKey::initializeGcrypt):
- platform/graphics/gstreamer/eme/CDMProxyClearKey.h: Added.
- platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
Refactor to use CDMProxy.
(webkit_media_clear_key_decrypt_class_init):
(webkit_media_clear_key_decrypt_init):
(finalize):
(cdmProxyAttached):
(decrypt):
(handleKeyResponse): Deleted. This was a badly named method that
has been changed to cdmProxyAttached.
(findAndSetKey): Deleted.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkit_media_common_encryption_decrypt_class_init):
(transformInPlace):
(isCDMProxyAvailable):
(getCDMProxyFromGstContext):
(attachCDMProxy):
(installCDMProxyIfNotAvailable):
(sinkEventHandler):
(changeState):
(setContext):
(): Deleted.
(isCDMInstanceAvailable): Deleted.
(queryHandler): Deleted.
- platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.h:
- testing/MockCDMFactory.cpp:
(WebCore::MockCDMInstance::proxyCDM const): Deleted.
- testing/MockCDMFactory.h:
- 1:25 AM Changeset in webkit [256428] by
-
- 2 edits in trunk/Source/WebCore
[GL] Remove unused methods in GLContext
https://bugs.webkit.org/show_bug.cgi?id=207564
Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-02-12
Reviewed by Carlos Alberto Lopez Perez.
These declarations are crumbs left from
https://bugs.webkit.org/show_bug.cgi?id=161605
No new tests because there's no behavior change.
- platform/graphics/GLContext.h:
- 12:39 AM Changeset in webkit [256427] by
-
- 4 edits2 adds in trunk
Fix crash due to uninitialized currentStyle in CSSTransition
https://bugs.webkit.org/show_bug.cgi?id=205959
<rdar://57073673>
Patch by Sunny He <sunny_he@apple.com> on 2020-02-12
Reviewed by Antoine Quint.
Source/WebCore:
Test: legacy-animation-engine/transitions/svg-bad-scale-crash.html
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):
- animation/CSSTransition.h:
LayoutTests:
Fix crash due to uninitialized currentStyle in CSSTransition
- legacy-animation-engine/transitions/svg-bad-scale-crash-expected.txt: Added.
- legacy-animation-engine/transitions/svg-bad-scale-crash.html: Added.
Feb 11, 2020:
- 10:15 PM Changeset in webkit [256426] by
-
- 2 edits in trunk/Source/WebKit
[ Mac Debug wk2 ] ASSERTION FAILED: m_wasConstructedOnMainThread == isMainThread()
https://bugs.webkit.org/show_bug.cgi?id=207509
<rdar://problem/59325466>
Reviewed by Chris Dumez.
Covered by existing tests.
- NetworkProcess/cache/CacheStorageEngine.cpp:
(WebKit::CacheStorage::Engine::writeSizeFile):
Make sure completion handler is always called on the main thread.
Minor refactoring to make things more efficient.
- 9:41 PM Changeset in webkit [256425] by
-
- 5 edits in trunk/LayoutTests
Add WebCrypto LayoutTests to check if PKCS#7 padding is correctly implemented in AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=207174
Patch by Tomoki Imai <Tomoki Imai> on 2020-02-11
Reviewed by Jiewen Tan.
WebCrypto AES-CBC specification requires PKCS#7 padding,
Add decrypt/encrypt test cases for 0 ~ 33 bytes data.
It covers the boundary values where the padding size are changed, namely, 0, 1, 15, 16, 17, 31, 32, and 33.
- crypto/subtle/aes-cbc-import-key-decrypt-expected.txt:
- crypto/subtle/aes-cbc-import-key-decrypt.html:
- crypto/subtle/aes-cbc-import-key-encrypt-expected.txt:
- crypto/subtle/aes-cbc-import-key-encrypt.html:
- 9:11 PM Changeset in webkit [256424] by
-
- 9 edits3 moves in trunk/Source/WebCore
Rename VideoFullscreenLayerManager to VideoLayerManager
https://bugs.webkit.org/show_bug.cgi?id=207502
Reviewed by Youenn Fablet.
No new tests -- no new or changed functionality.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/VideoLayerManager.h: Renamed from Source/WebCore/platform/graphics/VideoFullscreenLayerManager.h.
(WebCore::VideoLayerManager::~VideoLayerManager):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::requiresTextTrackRepresentation const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenFrame):
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.h: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h.
- platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm.
(WebCore::VideoLayerManagerObjC::VideoLayerManagerObjC):
(WebCore::VideoLayerManagerObjC::setVideoLayer):
(WebCore::VideoLayerManagerObjC::updateVideoFullscreenInlineImage):
(WebCore::VideoLayerManagerObjC::setVideoFullscreenLayer):
(WebCore::VideoLayerManagerObjC::setVideoFullscreenFrame):
(WebCore::VideoLayerManagerObjC::didDestroyVideoLayer):
(WebCore::VideoLayerManagerObjC::requiresTextTrackRepresentation const):
(WebCore::VideoLayerManagerObjC::syncTextTrackBounds):
(WebCore::VideoLayerManagerObjC::setTextTrackRepresentation):
(WebCore::VideoLayerManagerObjC::logChannel const):
- 8:11 PM Changeset in webkit [256423] by
-
- 3 edits in trunk/Source/WebCore
Compress ImmutableStyleProperties by using PackedPtr
https://bugs.webkit.org/show_bug.cgi?id=207604
Reviewed by Mark Lam.
ImmutableStyleProperties is kept so long and consumes enough memory.
We already attempted to compact it by storing CSSProperty's members separately.
But we can compact further by using PackedPtr. This patch makes,
- Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
- Reorder CSSValue* and StylePropertyMetadata arrays since StylePropertyMetadata requires alignment while PackedPtr<CSSValue> is not.
No behavior change.
- css/StyleProperties.cpp:
(WebCore::sizeForImmutableStylePropertiesWithPropertyCount):
(WebCore::ImmutableStyleProperties::ImmutableStyleProperties):
(WebCore::ImmutableStyleProperties::~ImmutableStyleProperties):
(WebCore::ImmutableStyleProperties::findCustomPropertyIndex const):
- css/StyleProperties.h:
(WebCore::ImmutableStyleProperties::valueArray const):
(WebCore::ImmutableStyleProperties::metadataArray const):
(WebCore::ImmutableStyleProperties::propertyAt const):
- 7:43 PM Changeset in webkit [256422] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Gardening some tests crashing in debug builds
https://bugs.webkit.org/show_bug.cgi?id=207607
Unreviewed test gardening.
Patch by Lauro Moura <Lauro Moura> on 2020-02-11
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 6:56 PM Changeset in webkit [256421] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] Debug build fix after r256353.
Unreviewed build fix.
- platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
(WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue):
(WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue):
- 5:59 PM Changeset in webkit [256420] by
-
- 21 edits in trunk/Source
Fix declarations marked by wrong export macros (WEBCORE_EXPORT and WTF_EXPORT)
https://bugs.webkit.org/show_bug.cgi?id=207453
Reviewed by Ross Kirsling.
Source/WebCore:
No new tests because there is no behavior change.
- rendering/RenderTheme.h:
- testing/MockContentFilterSettings.h:
- testing/MockGamepadProvider.h:
Source/WebKit:
- UIProcess/RemoteLayerTree/mac/ScrollingTreeFrameScrollingNodeRemoteMac.h:
- UIProcess/RemoteLayerTree/mac/ScrollingTreeOverflowScrollingNodeRemoteMac.h:
Source/WebKitLegacy:
- Storage/InProcessIDBServer.h:
Source/WebKitLegacy/win:
- Plugins/PluginMainThreadScheduler.h:
Source/WTF:
Export macros are prone to be misused because thier definitions
are identical for POSIX ports. They can be used interchangeably on
such ports.
WTF should use WTF_EXPORT_PRIVATE instead of WTF_EXPORT.
- wtf/HexNumber.h:
- wtf/Language.h:
- wtf/Logger.h:
- wtf/ProcessPrivilege.h:
- wtf/cocoa/CrashReporter.h:
- wtf/cocoa/Entitlements.h:
- wtf/text/LineEnding.h:
- wtf/text/TextBreakIterator.h:
- wtf/text/icu/UTextProviderLatin1.h:
Replaced WTF_EXPORT with WTF_EXPORT_PRIVATE.
- 5:50 PM Changeset in webkit [256419] by
-
- 2 edits in trunk/Source/WebKitLegacy
[Win][CMake][WK1] WebKitLegacyGUID doesn't get recompiled by updating IDL files
https://bugs.webkit.org/show_bug.cgi?id=207456
Reviewed by Don Olmstead.
In GENERATE_INTERFACE macro, only *.h files were specified to
OUTPUT of add_custom_command. Generated *_i.c files were just
marked GENERATED source file property. So, WebKitLegacyGUID didn't
know which command generates *_i.c files.
Added a new option HEADER_ONLY to GENERATE_INTERFACE. If
HEADER_ONLY is not specified, append ${_filewe}_i.c to the OUTPUT.
Only AccessibleStates.idl and IA2CommonTypes.idl are marked with
HEADER_ONLY.
Removed _defines and _depends options to simplify
GENERATE_INTERFACE.
- PlatformWin.cmake:
- 5:21 PM Changeset in webkit [256418] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r236025): Correct flaky WebGL2 test failures
https://bugs.webkit.org/show_bug.cgi?id=207595
<rdar://problem/59367393>
Reviewed by Jon Lee.
Correct handling of sample parameters in the prototype WebGL2 implementation.
Tested by existing tests.
- html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getInternalformatParameter):
- 5:08 PM Changeset in webkit [256417] by
-
- 42 edits2 moves in trunk/Source/WebCore
[LFC] Rename Layout::Container to Layout::ContainerBox
https://bugs.webkit.org/show_bug.cgi?id=207585
<rdar://problem/59363845>
Reviewed by Antti Koivisto.
ContainerBox name is more inline with the rest of the box classes.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::FormattingContext):
(WebCore::Layout::FormattingContext::layoutOutOfFlowContent):
(WebCore::Layout::mapHorizontalPositionToAncestor):
(WebCore::Layout::FormattingContext::mapTopToFormattingContextRoot const):
- layout/FormattingContext.h:
(WebCore::Layout::FormattingContext::root const):
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::contentHeightForFormattingContextRoot const):
(WebCore::Layout::FormattingContext::Geometry::staticVerticalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::staticHorizontalPositionForOutOfFlowPositioned const):
(WebCore::Layout::FormattingContext::Geometry::shrinkToFitWidth):
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutContext::createFormattingContext):
- layout/LayoutContext.h:
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::LayoutState):
(WebCore::Layout::LayoutState::establishedFormattingState const):
(WebCore::Layout::LayoutState::establishedInlineFormattingState const):
(WebCore::Layout::LayoutState::establishedBlockFormattingState const):
(WebCore::Layout::LayoutState::establishedTableFormattingState const):
(WebCore::Layout::LayoutState::ensureFormattingState):
(WebCore::Layout::LayoutState::ensureInlineFormattingState):
(WebCore::Layout::LayoutState::ensureBlockFormattingState):
(WebCore::Layout::LayoutState::ensureTableFormattingState):
- layout/LayoutState.h:
(WebCore::Layout::LayoutState::hasInlineFormattingState const):
(WebCore::Layout::LayoutState::root const):
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
(WebCore::Layout::verifyAndOutputSubtree):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::BlockFormattingContext):
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::placeInFlowPositionedChildren):
(WebCore::Layout::BlockFormattingContext::computedIntrinsicWidthConstraints):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):
- layout/blockformatting/BlockFormattingContextQuirks.cpp:
(WebCore::Layout::initialContainingBlock):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginBeforeCollapsesWithFirstInFlowChildMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginAfterCollapsesWithLastInFlowChildMarginAfter const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginBefore const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeMarginAfter const):
- layout/displaytree/DisplayPainter.cpp:
(WebCore::Display::absoluteDisplayBox):
(WebCore::Display::paintSubtree):
(WebCore::Display::collectPaintRootsAndContentRect):
- layout/floats/FloatAvoider.cpp:
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::mapTopToFloatingStateRoot const):
(WebCore::Layout::FloatingContext::mapPointFromFormattingContextRootToFloatingStateRoot const):
- layout/floats/FloatingContext.h:
(WebCore::Layout::FloatingContext::root const):
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::FloatingState::append):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::top const):
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::create):
(WebCore::Layout::FloatingState::root const):
(WebCore::Layout::FloatingState::leftBottom const):
(WebCore::Layout::FloatingState::rightBottom const):
(WebCore::Layout::FloatingState::bottom const):
(WebCore::Layout::FloatingState::FloatItem::isDescendantOfFormattingRoot const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::InlineFormattingContext):
(WebCore::Layout::nextInlineLevelBoxToLayout):
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computeIntrinsicWidthForFormattingRoot):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
- layout/inlineformatting/InlineFormattingContext.h:
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::computedTextIndent const):
- layout/inlineformatting/InlineFormattingContextQuirks.cpp:
(WebCore::Layout::InlineFormattingContext::Quirks::lineDescentNeedsCollapsing const):
(WebCore::Layout::InlineFormattingContext::Quirks::lineHeightConstraints const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::alignContentVertically):
(WebCore::Layout::LineBuilder::adjustBaselineAndLineHeight):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::LineLayoutContext):
- layout/inlineformatting/LineLayoutContext.h:
(WebCore::Layout::LineLayoutContext::root const):
- layout/integration/LayoutIntegrationBoxTree.h:
(WebCore::LayoutIntegration::BoxTree::rootLayoutBox const):
(WebCore::LayoutIntegration::BoxTree::rootLayoutBox):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::rootLayoutBox const):
(WebCore::LayoutIntegration::LineLayout::rootLayoutBox):
- layout/integration/LayoutIntegrationLineLayout.h:
- layout/invalidation/InvalidationState.h:
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::establishesInlineFormattingContext const):
(WebCore::Layout::Box::containingBlock const):
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
(WebCore::Layout::Box::isDescendantOf const):
(WebCore::Layout::Box::isContainingBlockDescendantOf const):
(WebCore::Layout::Box::isOverflowVisible const):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::parent const):
(WebCore::Layout::Box::isContainerBox const):
(WebCore::Layout::Box::setParent):
(WebCore::Layout::Box::isContainer const): Deleted.
- layout/layouttree/LayoutChildIterator.h:
(WebCore::Layout::LayoutChildIterator<T>::LayoutChildIterator):
(WebCore::Layout::LayoutChildIteratorAdapter<T>::LayoutChildIteratorAdapter):
(WebCore::Layout::childrenOfType):
- layout/layouttree/LayoutContainerBox.cpp: Renamed from Source/WebCore/layout/layouttree/LayoutContainer.cpp.
(WebCore::Layout::ContainerBox::ContainerBox):
(WebCore::Layout::ContainerBox::firstInFlowChild const):
(WebCore::Layout::ContainerBox::firstInFlowOrFloatingChild const):
(WebCore::Layout::ContainerBox::lastInFlowChild const):
(WebCore::Layout::ContainerBox::lastInFlowOrFloatingChild const):
(WebCore::Layout::ContainerBox::setFirstChild):
(WebCore::Layout::ContainerBox::setLastChild):
(WebCore::Layout::ContainerBox::appendChild):
- layout/layouttree/LayoutContainerBox.h: Renamed from Source/WebCore/layout/layouttree/LayoutContainer.h.
- layout/layouttree/LayoutDescendantIterator.h:
(WebCore::Layout::LayoutDescendantIterator<T>::LayoutDescendantIterator):
(WebCore::Layout::LayoutDescendantIteratorAdapter<T>::LayoutDescendantIteratorAdapter):
(WebCore::Layout::descendantsOfType):
- layout/layouttree/LayoutIterator.h:
(WebCore::Layout::LayoutBoxTraversal::firstChild):
(WebCore::Layout::LayoutBoxTraversal::nextAncestorSibling):
(WebCore::Layout::LayoutBoxTraversal::next):
(WebCore::Layout::LayoutBoxTraversal::nextSkippingChildren):
(WebCore::Layout::Traversal::next):
(WebCore::Layout::LayoutIterator<T>::LayoutIterator):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::LayoutTreeContent::LayoutTreeContent):
(WebCore::Layout::appendChild):
(WebCore::Layout::TreeBuilder::buildLayoutTree):
(WebCore::Layout::TreeBuilder::createContainer):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::TreeBuilder::buildTableStructure):
(WebCore::Layout::TreeBuilder::buildSubTree):
(WebCore::Layout::outputInlineRuns):
(WebCore::Layout::outputLayoutTree):
- layout/layouttree/LayoutTreeBuilder.h:
(WebCore::Layout::LayoutTreeContent::rootLayoutBox const):
(WebCore::Layout::LayoutTreeContent::rootLayoutBox):
(WebCore::Layout::LayoutTreeContent::addBox):
(WebCore::Layout::LayoutTreeContent::addContainer):
- layout/tableformatting/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::TableFormattingContext):
(WebCore::Layout::TableFormattingContext::layoutTableCellBox):
(WebCore::Layout::TableFormattingContext::ensureTableGrid):
(WebCore::Layout::TableFormattingContext::computePreferredWidthForColumns):
- layout/tableformatting/TableFormattingContext.h:
- 5:06 PM Changeset in webkit [256416] by
-
- 1 copy in tags/Safari-609.1.17.0.1
Tag Safari-609.1.17.0.1.
- 5:06 PM Changeset in webkit [256415] by
-
- 1 copy in tags/Safari-609.1.17.1.1
Tag Safari-609.1.17.1.1.
- 5:05 PM Changeset in webkit [256414] by
-
- 7 edits in trunk
IndexedDB: iteration of cursors skip records if deleted
https://bugs.webkit.org/show_bug.cgi?id=207437
Reviewed by Brady Eidson.
Source/WebCore:
When changes are made to records, cursors will dump cached records and set new key range for iteration.
The new range did not include key of current cursor record, which is wrong because two index records can have
the same key but different values.
r237590 tried fixing this issue by caching all the following records which have the same key as current record.
That is not quite right as there could be changes on the cached records, and the cached records were not
updated.
To correctly fix the issue, set the new key range to include key of current cursor record and exclude values
visited before. To not regress preformance, we complete this by making an extra statment and changing
IndexRecordsIndex index of table IndexRecords to cover value column.
Added test case in: storage/indexeddb/cursor-update-while-iterating.html
Index upgrade covered by existing API test: IndexedDB.IDBObjectStoreInfoUpgradeToV2
- Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::ensureValidIndexRecordsIndex):
- Modules/indexeddb/server/SQLiteIDBCursor.cpp:
(WebCore::IDBServer::buildPreIndexStatement):
(WebCore::IDBServer::SQLiteIDBCursor::objectStoreRecordsChanged):
(WebCore::IDBServer::SQLiteIDBCursor::resetAndRebindPreIndexStatementIfNecessary):
(WebCore::IDBServer::SQLiteIDBCursor::fetch):
(WebCore::IDBServer::SQLiteIDBCursor::fetchNextRecord):
(WebCore::IDBServer::SQLiteIDBCursor::internalFetchNextRecord):
- Modules/indexeddb/server/SQLiteIDBCursor.h:
(WebCore::IDBServer::SQLiteIDBCursor::isDirectionNext const):
LayoutTests:
- storage/indexeddb/cursor-update-while-iterating-expected.txt:
- storage/indexeddb/resources/cursor-update-while-iterating.js:
(populateObjectStore):
(onOpenSuccess.request.onsuccess):
(onOpenSuccess):
(prepareDatabase): Deleted.
- 5:00 PM Changeset in webkit [256413] by
-
- 26 edits2 adds in branches/safari-609-branch
Cherry-pick r255668. rdar://problem/59299120
MediaDevices should handle changes of iframe allow attribute value
https://bugs.webkit.org/show_bug.cgi?id=207112
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-streams/MediaStream-default-feature-policy.https-expected.txt:
- web-platform-tests/mediacapture-streams/MediaStream-feature-policy-none.https-expected.txt:
Source/WebCore:
MediaDevices was computing whether it could access camera or microphone at creation time.
Since the iframe allow attribute can be modified, we cannot do that.
Instead, we get the feature policy everytime this is needed.
Refactor code to use the newly added routine to check for feature policy.
Update logging to give origin and allow attribute value of the frame that fail the feature policy check.
Test: http/tests/webrtc/enumerateDevicesInFrames.html
- Modules/mediastream/MediaDevices.cpp: (WebCore::MediaDevices::MediaDevices): (WebCore::MediaDevices::refreshDevices): (WebCore::MediaDevices::enumerateDevices): (WebCore::MediaDevices::listenForDeviceChanges):
- Modules/mediastream/MediaDevices.h:
- Modules/mediastream/UserMediaController.cpp: (WebCore::UserMediaController::logGetUserMediaDenial): (WebCore::UserMediaController::logGetDisplayMediaDenial): (WebCore::UserMediaController::logEnumerateDevicesDenial):
- Modules/mediastream/UserMediaController.h:
- Modules/mediastream/UserMediaRequest.cpp: (WebCore::UserMediaRequest::start):
- html/FeaturePolicy.cpp: (WebCore::policyTypeName): (WebCore::isFeaturePolicyAllowedByDocumentAndAllOwners):
- html/FeaturePolicy.h:
- page/DOMWindow.cpp: (WebCore::DOMWindow::printErrorMessage const):
- page/DOMWindow.h:
LayoutTests:
- TestExpectations:
- fullscreen/full-screen-enabled-expected.txt:
- fullscreen/full-screen-enabled-prefixed-expected.txt:
- fullscreen/full-screen-iframe-not-allowed-expected.txt:
- fullscreen/full-screen-iframe-without-allow-attribute-allowed-from-parent-expected.txt:
- fullscreen/full-screen-restrictions-expected.txt:
- http/tests/fullscreen/fullscreen-feature-policy-expected.txt:
- http/tests/media/media-stream/enumerate-devices-iframe-allow-attribute-expected.txt:
- http/tests/media/media-stream/get-display-media-iframe-allow-attribute-expected.txt:
- http/tests/ssl/media-stream/get-user-media-different-host-expected.txt:
- http/tests/ssl/media-stream/get-user-media-nested-expected.txt:
- http/tests/webrtc/enumerateDevicesInFrames-expected.txt: Added.
- http/tests/webrtc/enumerateDevicesInFrames.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255668 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:00 PM Changeset in webkit [256412] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255562. rdar://problem/59299120
Do not copy feature policy in isFeaturePolicyAllowedByDocumentAndAllOwners
https://bugs.webkit.org/show_bug.cgi?id=207110
Reviewed by Eric Carlson.
Use auto& instead of auto to not copy the feature policy object.
Add some auto* to improve code readability.
No change of behavior.
- html/FeaturePolicy.cpp: (WebCore::isFeaturePolicyAllowedByDocumentAndAllOwners):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255562 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:00 PM Changeset in webkit [256411] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Apply patch. rdar://problem/59299139
- 5:00 PM Changeset in webkit [256410] by
-
- 22 edits in branches/safari-609-branch
Cherry-pick r256073. rdar://problem/59299148
Remember if we used legacy TLS in the back/forward cache like we remember if we have only secure content
https://bugs.webkit.org/show_bug.cgi?id=207409
rdar://problem/59275641
Patch by Alex Christensen <achristensen@apple.com> on 2020-02-07
Reviewed by Chris Dumez.
Source/WebCore:
Covered by an API test.
- history/CachedFrame.cpp: (WebCore::CachedFrame::setHasInsecureContent):
- history/CachedFrame.h: (WebCore::CachedFrame::usedLegacyTLS const):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.cpp: (WebCore::FrameLoader::receivedFirstData): (WebCore::FrameLoader::commitProvisionalLoad): (WebCore::FrameLoader::dispatchDidCommitLoad):
- loader/FrameLoader.h:
- loader/FrameLoaderClient.h:
Source/WebKit:
- Scripts/webkit/messages.py:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::hasInsecureContent):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad): (WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDidCommitLoad):
Source/WebKitLegacy/win:
- WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::dispatchDidCommitLoad):
- WebCoreSupport/WebFrameLoaderClient.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256073 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:00 PM Changeset in webkit [256409] by
-
- 17 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256060. rdar://problem/59298138
Captions sometimes render at the wrong size when in fullscreen and PiP
https://bugs.webkit.org/show_bug.cgi?id=207389
<rdar://problem/58677864>
Reviewed by Jer Noble.
The TextTrackRepresentation, used to render captions when in fullscreen and PiP on
iOS and and in PiP on macOS, frequently rendered captions before layout completed
immediately after it was created. Fix this by having it not render until a layout
happens. Additionally, make the code more efficient by hiding the TextTrackRepresentation's
backing layer when cues are not visible instead of destroying the whole object.
Drive by: RELEASE_LOG_DISABLED is always defined for PLATFORM(COCOA), so remove it
from the macOS/iOS media players to make it easier to add logging to VideoFullscreenLayerManagerObjC.
- html/HTMLMediaElement.cpp: (WebCore::convertEnumerationToString): (WebCore::HTMLMediaElement::configureTextTrackDisplay):
- html/HTMLMediaElementEnums.h: (WTF::LogArgument<WebCore::HTMLMediaElementEnums::TextTrackVisibilityCheckType>::toString):
- html/shadow/MediaControlElements.cpp: (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): (WebCore::MediaControlTextTrackContainerElement::updateDisplay): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentationStyle): (WebCore::MediaControlTextTrackContainerElement::layoutIfNecessary): (WebCore::MediaControlTextTrackContainerElement::updateVideoDisplaySize): (WebCore::MediaControlTextTrackContainerElement::updateSizes): (WebCore::MediaControlTextTrackContainerElement::updateCueStyles): (WebCore::MediaControlTextTrackContainerElement::logger const): (WebCore::MediaControlTextTrackContainerElement::logIdentifier const): (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Deleted. (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Deleted.
- platform/graphics/TextTrackRepresentation.h:
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation): (WebCore::MediaPlayerPrivateAVFoundation::logChannel const):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): (WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): (WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage): (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::mediaPlayerLogger):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::logChannel const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::logChannel const):
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm: (WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC): (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer): (WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame): (WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer): (WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds): (WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation): (WebCore::VideoFullscreenLayerManagerObjC::logChannel const):
- platform/graphics/cocoa/TextTrackRepresentationCocoa.h:
- platform/graphics/cocoa/TextTrackRepresentationCocoa.mm: (-[WebCoreTextTrackRepresentationCocoaHelper observeValueForKeyPath:ofObject:change:context:]): (TextTrackRepresentationCocoa::setHidden const): (TextTrackRepresentationCocoa::boundsChanged):
- rendering/RenderMediaControlElements.cpp: (WebCore::RenderTextTrackContainerElement::layout):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256060 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256408] by
-
- 14 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255992. rdar://problem/59298165
[WK2][iOS] Add WKWebviewConfiguration SPI to run client navigations at foreground priority, even if the view is background
https://bugs.webkit.org/show_bug.cgi?id=207341
<rdar://problem/59227077>
Reviewed by Geoff Garen.
Add WKWebviewConfiguration SPI to run client navigations at foreground priority, even if the view is background,
as long as the application itself is foreground. The new SPI is:
WKWebViewConfiguration._clientNavigationsRunAtForegroundPriority
The use case is that the client may choose to load something in an offscreen view and only show the view once the
load is complete (to avoid flashing for e.g.). In such cases, it makes sense to use foreground priority for the
load since it needs to complete as fast as possible, even though the view is technically background.
- UIProcess/API/APINavigation.h: (API::Navigation::setForegroundActivity):
- UIProcess/API/APIPageConfiguration.cpp: (API::PageConfiguration::copy const):
- UIProcess/API/APIPageConfiguration.h: (API::PageConfiguration::clientNavigationsRunAtForegroundPriority const): (API::PageConfiguration::setClientNavigationsRunAtForegroundPriority): (API::PageConfiguration::alwaysRunsAtForegroundPriority const): (API::PageConfiguration::alwaysRunsAtForegroundPriority): Deleted.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration _clientNavigationsRunAtForegroundPriority]): (-[WKWebViewConfiguration _setClientNavigationsRunAtForegroundPriority:]):
- UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::loadRequest): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadData): (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): (WebKit::WebPageProxy::didFinishLoadForFrame): (WebKit::WebPageProxy::didFailLoadForFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::isApplicationVisible):
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::shouldUseForegroundPriorityForClientNavigation const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255992 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256407] by
-
- 11 edits in branches/safari-609-branch/Source
Cherry-pick r255881. rdar://problem/59299143
Adopt MTOverrideShouldPlayHDRVideo()
https://bugs.webkit.org/show_bug.cgi?id=207275
<rdar://problem/58837093>
Reviewed by Eric Carlson.
Source/WebCore:
- platform/PlatformScreen.h:
- platform/mac/PlatformScreenMac.mm: (WebCore::setShouldOverrideScreenSupportsHighDynamicRange):
Source/WebCore/PAL:
- pal/cocoa/MediaToolboxSoftLink.cpp:
- pal/cocoa/MediaToolboxSoftLink.h:
Source/WebKit:
The WebProcess sandbox can block access to the services necessary for MediaToolbox to determine whether
the current display is capable of displaying HDR. Rather than opening up the sandbox, provide the information
gathered by the UIProcess by way of MTOverrideShouldPlayHDRVideo().
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::windowScreenDidChange): (WebKit::WebPage::displayID const):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::setScreenProperties): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm: (WebKit::WebProcess::setScreenProperties): (WebKit::WebProcess::updatePageScreenProperties):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255881 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256406] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r255880. rdar://problem/59299151
Unreviewed, another build fix after r255846
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255880 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256405] by
-
- 38 edits in branches/safari-609-branch
Cherry-pick r255846. rdar://problem/59299151
Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
https://bugs.webkit.org/show_bug.cgi?id=207207
Reviewed by Chris Dumez.
Source/WebCore:
- platform/network/ResourceResponseBase.cpp: (WebCore::ResourceResponseBase::includeCertificateInfo const):
- platform/network/ResourceResponseBase.h: (WebCore::ResourceResponseBase::usedLegacyTLS const): (WebCore::ResourceResponseBase::encode const): (WebCore::ResourceResponseBase::decode):
Source/WebKit:
In PageLoadState::didCommitLoad, I was resetting the value of _negotiatedLegacyTLS to false.
That created a race condition when loading the main resource because the NetworkProcess would
message the UIProcess setting _negotiatedLegacyTLS to false, while the NetworkProcess would
message the WebProcess which would message the UIProcess to call PageLoadState::didCommitLoad
which would reset it to false. Now it resets it to the correct value, whatever it is.
Updating the ResourceResponseBase serialization code has the desirable side effect that the disk
cache will remember whether legacy TLS was used to fetch each resource. This will make it so
_negotiatedLegacyTLS is true if we read content from the disk cache that was originally fetched
using legacy TLS.
In order to not increase the memory footprint of ResourceResponse, I changed m_httpStatusCode from
an int to a short. It just needs to be able to cover the values 0-600 or so, which really only needs 10 bits.
Covered by new API tests.
- NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.cpp: (WebKit::NetworkDataTask::didReceiveResponse): (WebKit::NetworkDataTask::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTaskClient::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
- NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::didReceiveResponse): (WebKit::NetworkLoad::notifyDidReceiveResponse): (WebKit::NetworkLoad::throttleDelayCompleted): (WebKit::NetworkLoad::negotiatedLegacyTLS const): Deleted.
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::didReceiveResponse):
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::didReceiveResponse):
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp: (WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp: (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
- UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::didCommitLoad):
- UIProcess/PageLoadState.h:
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
- UIProcess/ProvisionalPageProxy.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::commitProvisionalPage): (WebKit::WebPageProxy::didCommitLoadForFrame):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
Source/WTF:
- wtf/persistence/PersistentDecoder.cpp: (WTF::Persistence::Decoder::decode):
- wtf/persistence/PersistentDecoder.h:
- wtf/persistence/PersistentEncoder.cpp: (WTF::Persistence::Encoder::encode):
- wtf/persistence/PersistentEncoder.h:
Tools:
HTTPServer now supports HTTPS. Tell your friends!
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm: (testCertificate): (testIdentity): (credentialWithIdentity):
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (TestWebKitAPI::webViewWithNavigationDelegate): (TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/HTTPServer.h:
- TestWebKitAPI/cocoa/HTTPServer.mm: (TestWebKitAPI::HTTPServer::HTTPServer): (TestWebKitAPI::HTTPServer::request const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256404] by
-
- 16 edits in branches/safari-609-branch
Cherry-pick r255845. rdar://problem/59298143
_WKDownload should expose the originating FrameInfo.
<rdar://problem/58022576> and https://bugs.webkit.org/show_bug.cgi?id=207185
Patch by Brady Eidson <beidson@apple.com> on 2020-02-05
Reviewed by Geoff Garen.
Source/WebKit:
Covered by new API test.
For the cases where a navigation is converted into a download, include the relevant
WKFrameInfo on the _WKDownload object.
- UIProcess/API/APIFrameInfo.h:
- UIProcess/API/Cocoa/_WKDownload.h:
- UIProcess/API/Cocoa/_WKDownload.mm: (-[_WKDownload originatingFrameInfo]):
- UIProcess/Downloads/DownloadProxy.cpp: (WebKit::generateDownloadID): (WebKit::DownloadProxy::DownloadProxy): (WebKit::DownloadProxy::create): Deleted. (WebKit::DownloadProxy::setOriginatingPage): Deleted.
- UIProcess/Downloads/DownloadProxy.h: (WebKit::DownloadProxy::create): (WebKit::DownloadProxy::frameInfo):
- UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::createDownloadProxy):
- UIProcess/Downloads/DownloadProxyMap.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::createDownloadProxy):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedPolicyDecision):
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::download): (WebKit::WebProcessPool::resumeDownload): (WebKit::WebProcessPool::createDownloadProxy):
- UIProcess/WebProcessPool.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm: (-[DownloadTestSchemeDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]): (-[DownloadSecurityOriginDelegate _downloadDidStart:]): (loaded):
- TestWebKitAPI/cocoa/HTTPServer.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255845 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256403] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r255826. rdar://problem/59299115
REGRESSION(r255595): page not closed after beforeunload handler returns true
https://bugs.webkit.org/show_bug.cgi?id=207189
<rdar://problem/59149593>
Reviewed by Youenn Fablet.
Add API test coverage for fix landed in r255677.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm: (-[SlowBeforeUnloadPromptUIDelegate _webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:]): (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:59 PM Changeset in webkit [256402] by
-
- 4 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255825. rdar://problem/59299127
REGRESSION: [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207194
<rdar://problem/59148073>
Reviewed by Wenson Hsieh.
Test was flaky because it relied on a 10ms timer.
- fast/scrolling/ios/scroll-events-back-forward-expected.txt:
- fast/scrolling/ios/scroll-events-back-forward.html:
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:49 PM Changeset in webkit [256401] by
-
- 2 edits in trunk/Source/WebKit
WebPage::getFocusedElementInformation should be robust when the focused element changes during layout
https://bugs.webkit.org/show_bug.cgi?id=207582
<rdar://problem/47634344>
Reviewed by Tim Horton.
This is a speculative fix for <rdar://problem/47634344>, wherein the initial layout update in WebPage::
getFocusedElementInformation may cause the currently focused element to disappear (or change). In the case where
m_focusedElement becomes nil, we end up crashing with a null pointer deref, since the rest of the method assumes
that m_focusedElement exists.
To patch this crash, bail early (after the first layout update) if m_focusedElement changed during the layout
pass. Since the rest of the function my trigger even more layout updates that could nuke m_focusedElement, I
also changed the rest of the function to use the locally storedfocusedElement
variable instead of
m_focusedElement, on WebPage.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getFocusedElementInformation):
- 4:49 PM Changeset in webkit [256400] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, partial rollout of r255037.
<rdar://problem/59240559>
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNode.mm:
(WebCore::ScrollingTreeStickyNode::computeLayerPosition const):
- 4:47 PM Changeset in webkit [256399] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Deny access to unused tcp service from NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=207590
<rdar://problem/57895351>
Reviewed by Darin Adler.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 4:47 PM Changeset in webkit [256398] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/do-while-loop.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207599
Unreviewed test gardening.
Adjusted expectations to reflect image failure.
- platform/mac-wk2/TestExpectations:
- 4:39 PM Changeset in webkit [256397] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/do-while-loop.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207599
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:31 PM Changeset in webkit [256396] by
-
- 5 edits in trunk/Source/WebKit
Unreviewed, revert r255662 as it seems to cause blank views in SVC.
https://bugs.webkit.org/show_bug.cgi?id=207144
<rdar://problem/59334011>
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- 4:13 PM Changeset in webkit [256395] by
-
- 4 edits in trunk
Bug 207424: Crash in WebCore::ParsedContentType::parseContentType when parsing invalid MIME type
<https://webkit.org/b/207424>
<rdar://problem/59250384>
Patch by Rob Buis <rbuis@igalia.com> and David Kilzer <ddkilzer@apple.com> on 2020-02-11
Reviewed by Rob Buis.
Source/WebCore:
Return StringView directly rather than wrapping
it in Optional, since StringView's can be null tested.
Tests: TestWebKitAPI.ParsedContentType
- platform/network/ParsedContentType.cpp:
(WebCore::parseToken):
(WebCore::parseQuotedString):
(WebCore::ParsedContentType::parseContentType): Don't set type
parameter if parameterName is null string. Remove unneeded
parameterName
variable; use keyRange.toString() instead.
Tools:
- TestWebKitAPI/Tests/WebCore/ParsedContentType.cpp:
(TestWebKitAPI::TEST): Add more tests.
- 4:05 PM Changeset in webkit [256394] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] fast/viewport/ios/width-is-device-width-overflowing-body-overflow-hidden-tall.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207596
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 3:55 PM Changeset in webkit [256393] by
-
- 1 edit in branches/safari-609-branch/Source/WebKit/WebProcess/WebStorage/StorageAreaImpl.cpp
Unreviewed build fix. rdar://problem/59298172
- 3:55 PM Changeset in webkit [256392] by
-
- 12 edits2 adds2 deletes in branches/safari-609-branch
Cherry-pick r255162. rdar://problem/59299120
Support 'allow="fullscreen"' feature policy
https://bugs.webkit.org/show_bug.cgi?id=206806
<rdar://problem/55640448>
Patch by Jer Noble <jer.noble@apple.com> on 2020-01-27
Reviewed by Youenn Fablet.
Source/WebCore:
Test: http/tests/fullscreen/fullscreen-feature-policy.html
The unprefixed version of the Fullscreen API has deprecated the 'allowfullscreen' iframe
attribute in favor of the 'allow="fullscreen"' style attribute used by Feature Policy.
Add support for such, including the specified handling for the legacy 'allowfullscreen'
attribute.
Note: this patch will (intentionally) change the default behavior of <iframe>s. Previously
any <iframe> without the "allowfullscreen" attribute would not be allowed to enter fullscreen
mode. After this patch, <iframes> without the legacy attribute or an explicit fullscreen
Feature Policy will be allowed to enter fullscreen so long as their origin is the same as
the top document (and that all parent iframes are also allowed to enter fullscreen).
- dom/FullscreenManager.cpp: (WebCore::FullscreenManager::requestFullscreenForElement): (WebCore::FullscreenManager::isFullscreenEnabled const): (WebCore::isAttributeOnAllOwners): Deleted. (WebCore::FullscreenManager::fullscreenIsAllowedForElement const): Deleted.
- dom/FullscreenManager.h:
- html/FeaturePolicy.cpp: (WebCore::isFeaturePolicyAllowedByDocumentAndAllOwners): (WebCore::FeaturePolicy::parse): (WebCore::FeaturePolicy::allows const):
- html/FeaturePolicy.h:
- html/HTMLIFrameElement.cpp: (WebCore::HTMLIFrameElement::parseAttribute): (WebCore::HTMLIFrameElement::featurePolicy const):
- xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::createRequest): (WebCore::isSyncXHRAllowedByFeaturePolicy): Deleted.
LayoutTests:
- fullscreen/full-screen-enabled-prefixed.html:
- fullscreen/full-screen-enabled.html:
- fullscreen/full-screen-frameset-expected.txt: Removed.
- fullscreen/full-screen-frameset.html: Removed.
- fullscreen/full-screen-iframe-not-allowed.html:
- fullscreen/full-screen-restrictions.html:
- http/tests/fullscreen/fullscreen-feature-policy-expected.txt: Added.
- http/tests/fullscreen/fullscreen-feature-policy.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255162 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256391] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255672. rdar://problem/59299127
Regression: (252234?) [ iOS wk2 ] fast/scrolling/ios/scroll-events-back-forward.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207194
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-02-04
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255672 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256390] by
-
- 5 edits1 add in branches/safari-609-branch
Cherry-pick r255595. rdar://problem/59298183
Regression(r253224) WKUIDelegate.webViewDidClose may get called twice after calling _tryClose on the WKWebView
https://bugs.webkit.org/show_bug.cgi?id=207121
<rdar://problem/58880177>
Reviewed by Alex Christensen.
Source/WebKit:
WKUIDelegate.webViewDidClose may get called twice after calling _tryClose on the WKWebView, in case we time out
while waiting for an answer from the WebProcess but the WebProcess eventually responds.
Change is covered by new API test.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::tryClose):
Tools:
Add API test coverage.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/beforeunload-slow.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm: (-[SlowBeforeUnloadHandlerUIDelegate _webView:runBeforeUnloadConfirmPanelWithMessage:initiatedByFrame:completionHandler:]): (-[SlowBeforeUnloadHandlerUIDelegate webViewDidClose:]): (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255595 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256389] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255519. rdar://problem/59298166
Unreviewed macOS build fix after r255518
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleGestureEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256388] by
-
- 8 edits in branches/safari-609-branch
Cherry-pick r255518. rdar://problem/59298166
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934
<rdar://problem/58991581>
Source/WebKit:
Reviewed by Brady Eidson.
Flakiness would happen when the service worker would take too long to launch and the responsiveness timer would fire and
report the process as unresponsive while still launching or very shortly after. When a service worker is reported as
unresponsive, we would kill it.
To address the issue, several changes were made:
- Responsiveness checks are now disabled for slow builds (Debug, ASAN, GuardMalloc)
- We only start the ResponsivenessTimer after the process has finished launching since the responsiveness check relies on IPC to the process and we cannot send the IPC until after the process has launched.
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp: (WebKit::DrawingAreaProxyCoordinatedGraphics::sendUpdateBackingStoreState):
- UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::goToBackForwardItem):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::launchProcessForReload): (WebKit::WebPageProxy::launchProcessWithItem): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile): (WebKit::WebPageProxy::loadDataWithNavigationShared): (WebKit::WebPageProxy::loadAlternateHTML): (WebKit::WebPageProxy::loadWebArchiveData): (WebKit::WebPageProxy::navigateToPDFLinkWithSimulatedClick): (WebKit::WebPageProxy::stopLoading): (WebKit::WebPageProxy::reload): (WebKit::WebPageProxy::goToBackForwardItem): (WebKit::WebPageProxy::dispatchActivityStateChange): (WebKit::WebPageProxy::processNextQueuedMouseEvent): (WebKit::WebPageProxy::handleKeyboardEvent): (WebKit::WebPageProxy::handleGestureEvent): (WebKit::WebPageProxy::handlePreventableTouchEvent): (WebKit::WebPageProxy::handleTouchEvent): (WebKit::WebPageProxy::runJavaScriptAlert): (WebKit::WebPageProxy::runJavaScriptConfirm): (WebKit::WebPageProxy::runJavaScriptPrompt): (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): (WebKit::WebPageProxy::runOpenPanel):
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::mayBecomeUnresponsive): (WebKit::WebProcessProxy::didFinishLaunching): (WebKit::WebProcessProxy::startResponsivenessTimer): (WebKit::WebProcessProxy::isResponsive):
- UIProcess/WebProcessProxy.h: (WebKit::WebProcessProxy::responsivenessTimer):
LayoutTests:
Unskip test which should no longer be flaky.
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255518 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256387] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255379. rdar://problem/59298188
2020-01-29 Jacob Uphoff <Jacob Uphoff>
[ macOS wk2 ] http/tests/media/media-stream/get-display-media-prompt.html is flaky failure & flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=206958
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256386] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255360. rdar://problem/59298166
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-29
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:55 PM Changeset in webkit [256385] by
-
- 54 edits4 adds in branches/safari-609-branch
Cherry-pick r255158. rdar://problem/59298137
Throttling requestAnimationFrame should be controlled by RenderingUpdateScheduler
https://bugs.webkit.org/show_bug.cgi?id=204713
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-27
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/animation/request-animation-frame-throttling-outside-viewport.html
requestAnimationFrame is throttled by a timer although its callback are
serviced by the page RenderingUpdate. This led to excessive rAF firing
which makes it more than the preferred frame per seconds.
The solution is to have two throttling types:
1) Page throttling (or full throttling) which slows down all the steps of
RenderingUpdate for the main document and all the sub-documents.
2) Document throttling (or partial throttling) which only slows down the
rAF of a certain document.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- animation/DocumentTimeline.cpp: (WebCore::DocumentTimeline::animationInterval const): (WebCore::DocumentTimeline::updateThrottlingState): Deleted.
- animation/DocumentTimeline.h: There is no need to have DocumentTimeline throttling. It is already throttled when the page RenderingUpdate is throttled.
- dom/Document.cpp: (WebCore::Document::requestAnimationFrame): (WebCore::Document::updateLastHandledUserGestureTimestamp): LowPowerMode throttling is now handled by the page. So remove its handling in the Document side.
- dom/ScriptedAnimationController.cpp: (WebCore::ScriptedAnimationController::ScriptedAnimationController): (WebCore::ScriptedAnimationController::page const): (WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const): (WebCore::ScriptedAnimationController::interval const): (WebCore::ScriptedAnimationController::isThrottled const): (WebCore::ScriptedAnimationController::isThrottledRelativeToPage const): (WebCore::ScriptedAnimationController::shouldRescheduleRequestAnimationFrame const): (WebCore::ScriptedAnimationController::registerCallback): (WebCore::ScriptedAnimationController::cancelCallback): (WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks): (WebCore::ScriptedAnimationController::scheduleAnimation): (WebCore::throttlingReasonToString): Deleted. (WebCore::throttlingReasonsToString): Deleted. (WebCore::ScriptedAnimationController::addThrottlingReason): Deleted. (WebCore::ScriptedAnimationController::removeThrottlingReason): Deleted. (WebCore::ScriptedAnimationController::animationTimerFired): Deleted.
- dom/ScriptedAnimationController.h: (WebCore::ScriptedAnimationController::addThrottlingReason): (WebCore::ScriptedAnimationController::removeThrottlingReason): Get rid of the rAF throttling timer. Service the rAF callback only when the period from the current time stamp till the last service time stamp is greater than the preferred rAF interval .
- page/FrameView.cpp: (WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState): ThrottlingReason is now defined outside ScriptedAnimationController.
- page/Page.cpp: (WebCore::Page::renderingUpdateThrottlingEnabled const): (WebCore::Page::renderingUpdateThrottlingEnabledChanged): (WebCore::Page::isRenderingUpdateThrottled const):
(WebCore::Page::preferredRenderingUpdateInterval const):
Calculate the preferred RenderingUpdate interval from the throttling
reasons.
(WebCore::Page::setIsVisuallyIdleInternal):
(WebCore::Page::handleLowModePowerChange):
Call adjustRenderingUpdateFrequency() when isLowPowerModeEnabled or
IsVisuallyIdle is toggled.
(WebCore::updateScriptedAnimationsThrottlingReason): Deleted.
- page/Page.h:
- page/RenderingUpdateScheduler.cpp: (WebCore::RenderingUpdateScheduler::adjustFramesPerSecond): (WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency): Change the preferredFramesPerSecond of the DisplayRefreshMonitor if the throttling is not aggressive e.g. 10_s. Otherwise use the timer.
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
Call adjustFramesPerSecond() when DisplayRefreshMonitor is created.
(WebCore::RenderingUpdateScheduler::startTimer):
- page/RenderingUpdateScheduler.h:
- page/Settings.yaml:
- page/SettingsBase.cpp: (WebCore::SettingsBase::renderingUpdateThrottlingEnabledChanged):
- page/SettingsBase.h: Add a setting to enable/disable RenderingUpdateThrottling.
- platform/graphics/AnimationFrameRate.h: Added. (WebCore::preferredFrameInterval): (WebCore::preferredFramesPerSecond):
- platform/graphics/DisplayRefreshMonitor.h: (WebCore::DisplayRefreshMonitor::setPreferredFramesPerSecond):
- platform/graphics/DisplayRefreshMonitorManager.cpp: (WebCore::DisplayRefreshMonitorManager::monitorForClient): Rename createMonitorForClient() to monitorForClient() since it may return a cached DisplayRefreshMonitor.
(WebCore::DisplayRefreshMonitorManager::setPreferredFramesPerSecond):
(WebCore::DisplayRefreshMonitorManager::scheduleAnimation):
(WebCore::DisplayRefreshMonitorManager::windowScreenDidChange):
No need to call registerClient(). This function was just ensuring the
DisplayRefreshMonitor is created. scheduleAnimation() does the same thing.
(WebCore::DisplayRefreshMonitorManager::createMonitorForClient): Deleted.
(WebCore::DisplayRefreshMonitorManager::registerClient): Deleted.
- platform/graphics/DisplayRefreshMonitorManager.h: (WebCore::DisplayRefreshMonitorManager::DisplayRefreshMonitorManager): Deleted.
- platform/graphics/GraphicsLayerUpdater.cpp: (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
- platform/graphics/ios/DisplayRefreshMonitorIOS.mm: (-[WebDisplayLinkHandler setPreferredFramesPerSecond:]): Set the preferredFramesPerSecond of the CADisplayLink.
Source/WebKit:
Create an IPC message on the DrawingArea to send a message from the
WebProcess to the UIProcess to setPreferredFramesPerSecond of the
DisplayRefreshMonitor.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp: (WKPreferencesSetRenderingUpdateThrottlingEnabled): (WKPreferencesGetRenderingUpdateThrottlingEnabled):
- UIProcess/API/C/WKPreferencesRefPrivate.h: Add a WKPreference key for RenderingUpdateThrottlingEnabled.
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm: (-[WKOneShotDisplayLinkHandler setPreferredFramesPerSecond:]): (WebKit::RemoteLayerTreeDrawingAreaProxy::setPreferredFramesPerSecond): Set the preferredFramesPerSecond of the CADisplayLink.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm: (WebKit::RemoteLayerTreeDisplayRefreshMonitor::setPreferredFramesPerSecond): Delegate the call to RemoteLayerTreeDrawingArea.
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
- WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm: (WebKit::RemoteLayerTreeDrawingArea::setPreferredFramesPerSecond): Send the IPC message from the WebProcess to the UIProcess.
Source/WebKitLegacy/mac:
Add a WKPreference key for RenderingUpdateThrottling.
- WebView/WebPreferenceKeysPrivate.h:
- WebView/WebPreferences.mm: (+[WebPreferences initialize]): (-[WebPreferences renderingUpdateThrottlingEnabled]): (-[WebPreferences setRenderingUpdateThrottlingEnabled:]):
- WebView/WebPreferencesPrivate.h:
- WebView/WebView.mm: (-[WebView _preferencesChanged:]):
Source/WebKitLegacy/win:
Add a WKPreference key for RenderingUpdateThrottling.
- Interfaces/IWebPreferencesPrivate.idl:
- WebPreferenceKeysPrivate.h:
- WebPreferences.cpp: (WebPreferences::initializeDefaultSettings): (WebPreferences::renderingUpdateThrottlingEnabled): (WebPreferences::setRenderingUpdateThrottlingEnabled):
- WebPreferences.h:
- WebView.cpp: (WebView::notifyPreferencesChanged):
Tools:
RenderingUpdateThrottling is enabled by default. Turn it off for DRT and
WTR. In some cases, the page may not get visually active while it's
waiting for rAF. Throttling tests will have to explicitly turn it on.
- DumpRenderTree/mac/DumpRenderTree.mm: (resetWebPreferencesToConsistentValues):
- DumpRenderTree/win/DumpRenderTree.cpp: (resetWebPreferencesToConsistentValues):
- WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues):
LayoutTests:
- fast/animation/css-animation-throttling-lowPowerMode.html:
- fast/animation/request-animation-frame-throttle-subframe.html:
- fast/animation/request-animation-frame-throttling-detached-iframe.html: Enable RenderingUpdateThrottling for these tests.
- fast/animation/request-animation-frame-throttling-lowPowerMode-expected.txt:
- fast/animation/request-animation-frame-throttling-lowPowerMode.html: Ensure the actual rAF interval is > 30ms for lowPowerMode.
- fast/animation/request-animation-frame-throttling-outside-viewport-expected.txt: Added.
- fast/animation/request-animation-frame-throttling-outside-viewport.html: Added.
- fast/animation/resources/frame-with-animation-2.html: Added. Test the OutsideViewport throttling case.
- http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html: Enable RenderingUpdateThrottling for this test.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:51 PM Changeset in webkit [256384] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Do not create generic Layout::Box leaf boxes
https://bugs.webkit.org/show_bug.cgi?id=207570
<rdar://problem/59356417>
Reviewed by Antti Koivisto.
A Layout::Box is either a container box or a very specific leaf type (text, replaced etc).
- layout/layouttree/LayoutBox.cpp:
- layout/layouttree/LayoutBox.h:
- 3:49 PM Changeset in webkit [256383] by
-
- 4 edits in trunk
Unreviewed, rolling out r256314.
https://bugs.webkit.org/show_bug.cgi?id=207594
It is breaking an API test (Requested by youenn on #webkit).
Reverted changeset:
"WebSWServerConnection::registerServiceWorkerClient is not
sending IPC message to UIProcess when it should"
https://bugs.webkit.org/show_bug.cgi?id=207537
https://trac.webkit.org/changeset/256314
- 3:42 PM Changeset in webkit [256382] by
-
- 2 edits in trunk/Tools
results.webkit.org: Configuration documentation should include architecture
https://bugs.webkit.org/show_bug.cgi?id=207584
Reviewed by Aakash Jain.
- resultsdbpy/resultsdbpy/view/templates/documentation.html: Add architecture documentation.
- 3:32 PM Changeset in webkit [256381] by
-
- 7 edits in trunk
Parent service worker controller should be used for child iframe as per https://w3c.github.io/ServiceWorker/#control-and-use-window-client
https://bugs.webkit.org/show_bug.cgi?id=207506
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/local-url-inherit-controller.https-expected.txt:
Source/WebCore:
Instead of checking document URL protocol, implement the rules as per spec, in particular:
- If http/https, do not reuse controller
- If iframe has a unique origin, do not reuse controller
- If iframe does not have same origin as parent, do not reuse controller.
Covered by rebased test.
- loader/DocumentLoader.cpp:
(WebCore::isInheritingControllerFromParent):
(WebCore::DocumentLoader::commitData):
(WebCore::isLocalURL): Deleted.
LayoutTests:
- http/tests/workers/service/serviceworkerclients-claim.https-expected.txt:
Rebased test since now the frame is doing a fetch that is no longer intercepted by the service worker,
and is thus failing due to CORS.
- http/tests/workers/service/serviceworkerclients-claim.https.html:
- 3:13 PM Changeset in webkit [256380] by
-
- 18 edits2 moves in trunk/Source/WebCore
[LFC] Introduce Layout::ReplacedBox
https://bugs.webkit.org/show_bug.cgi?id=207561
<rdar://problem/59353151>
Reviewed by Antti Koivisto.
This is in preparation for making Layout::Box an "abstract" box (so that it stops being a leaf type of box).
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
- layout/FormattingContext.h:
- layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::complicatedCases const):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingReplacedWidthAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::floatingWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedHeightAndMargin const):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin const):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowReplacedWidthAndMargin const):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::intrinsicWidthConstraints):
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::marginsCollapseThrough const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::computeWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::computeHeightAndMargin):
- layout/inlineformatting/InlineFormattingContextGeometry.cpp:
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockWidthAndMargin):
(WebCore::Layout::InlineFormattingContext::Geometry::inlineBlockHeightAndMargin const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::append):
(WebCore::Layout::LineBuilder::appendReplacedInlineBox):
(WebCore::Layout::LineBuilder::runContentHeight const):
(WebCore::Layout::LineBuilder::isVisuallyNonEmpty const):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::LineLayoutContext::inlineItemWidth const):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::isInlineBox const):
(WebCore::Layout::Box::replaced const): Deleted.
(WebCore::Layout::Box::replaced): Deleted.
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isTableCell const):
(WebCore::Layout::Box::isReplacedBox const):
(WebCore::Layout::Box::isReplaced const): Deleted.
- layout/layouttree/LayoutReplacedBox.cpp: Renamed from Source/WebCore/layout/layouttree/LayoutReplaced.cpp.
(WebCore::Layout::ReplacedBox::ReplacedBox):
(WebCore::Layout::ReplacedBox::hasIntrinsicWidth const):
(WebCore::Layout::ReplacedBox::hasIntrinsicHeight const):
(WebCore::Layout::ReplacedBox::hasIntrinsicRatio const):
(WebCore::Layout::ReplacedBox::intrinsicWidth const):
(WebCore::Layout::ReplacedBox::intrinsicHeight const):
(WebCore::Layout::ReplacedBox::intrinsicRatio const):
(WebCore::Layout::ReplacedBox::hasAspectRatio const):
- layout/layouttree/LayoutReplacedBox.h: Renamed from Source/WebCore/layout/layouttree/LayoutReplaced.h.
(WebCore::Layout::ReplacedBox::setCachedImage):
(WebCore::Layout::ReplacedBox::cachedImage const):
(WebCore::Layout::ReplacedBox::setIntrinsicSize):
(WebCore::Layout::ReplacedBox::setIntrinsicRatio):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::outputLayoutBox):
- 2:59 PM Changeset in webkit [256379] by
-
- 3 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/service-workers/service-worker-spinning-fetch.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207515
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 2:57 PM Changeset in webkit [256378] by
-
- 2 edits in trunk/Source/WebKit
Should not allow zooming to reveal focused element when suppressing selection assistant
https://bugs.webkit.org/show_bug.cgi?id=207575
Reviewed by Wenson Hsieh.
Do not tell the UIScrollView to scroll and zoom to reveal the focused element when the
selection assistant is being suppressed as it does not make sense to do so: the primary
motivation for zooming to reveal the focused (aka the editable) element is make it easier
to edit it.
This fixes a bug where previewing a partially offscreen link inside an editable element
would cause the page content to scroll and zoom to reveal the editable element. Previewing
a link is not considered an editing operation and selection assistance is prevented, but
"zoom to reveal" was inadvertently allowed. Now it is not.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _zoomToRevealFocusedElement]): Bail out if selection is being suppressed
for any reason. Note that pre-r245882 there was reason SuppressSelectionAssistantReason::DropAnimationIsRunning
that was used to suppress selection assistance AND allow "zoom to reveal". But this
reason was removed and there are no suppression reasons as of the time of writing where
it makes sense to have behavior like SuppressSelectionAssistantReason::DropAnimationIsRunning.
- 2:53 PM Changeset in webkit [256377] by
-
- 5 edits in trunk
Regression: RTCRtpSender.getCapabilities("video") returns null on iOS 13.4 (17E5223h)
https://bugs.webkit.org/show_bug.cgi?id=207325
<rdar://problem/59224810>
Reviewed by Eric Carlson.
Source/WebCore:
Manually tested and covered by API test.
- platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:
(WebCore::LibWebRTCProvider::webRTCAvailable):
Return true unconditionally on iOS since libwebrtc.dylib is always available.
Tools:
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::TEST):
Add a test validating that RTCRtpSender.getCapabilities does not return null.
- TestWebKitAPI/Tests/WebKit/getUserMedia.html:
- 2:50 PM Changeset in webkit [256376] by
-
- 3 edits in trunk/Source/WebKit
Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514
Add the rest of the SPI to convert between the two.
- UIProcess/API/Cocoa/_WKUserContentWorld.h:
- UIProcess/API/Cocoa/_WKUserContentWorld.mm:
(-[_WKUserContentWorld contentWorld]):
- 2:43 PM Changeset in webkit [256375] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/IndexedDB/key-generators/reading-autoincrement-indexes-cursors.any.serviceworker.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=206934
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 2:38 PM Changeset in webkit [256374] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector RTL: Elements closing tag is reversed
https://bugs.webkit.org/show_bug.cgi?id=207214
Reviewed by Timothy Hatcher.
Wrap text nodes in
unicode-bidi: isolate-override
. From MDN:
isolate-override:
This keyword applies the isolation behavior of the isolate
keyword to the surrounding content and the override behavior
of the bidi-override keyword to the inner content.
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom li > span > .html-text-node):
- 2:36 PM Changeset in webkit [256373] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, rolling out r256345.
Broke iOS builds.
Reverted changeset:
"Deprecate _WKUserContentWorld replaced by WKContentWorld"
https://bugs.webkit.org/show_bug.cgi?id=207514
https://trac.webkit.org/changeset/256345
- 2:36 PM Changeset in webkit [256372] by
-
- 2 edits in trunk/Source/WebCore
Cleanup WebCore.xcodeproj/project.pbxproj
https://bugs.webkit.org/show_bug.cgi?id=207573
Reviewed by Darin Adler.
No new tests -- no new or changed functionality.
- WebCore.xcodeproj/project.pbxproj:
- 2:22 PM Changeset in webkit [256371] by
-
- 5 edits in trunk
[iOS] Deny mach lookup access to the tccd service in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=207488
Reviewed by Darin Adler.
Source/WebKit:
As part of sandbox hardening, deny mach lookup access to the tccd service.
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:13 PM Changeset in webkit [256370] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207583
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 2:03 PM Changeset in webkit [256369] by
-
- 3 edits3 adds in branches/safari-609.1.17.1-branch
Cherry-pick r256214. rdar://problem/59349205
WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443
Reviewed by Zalan Bujtas.
Source/WebCore:
There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.
The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.
The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.
This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.
Test: compositing/backing/transition-extent.html
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::startAnimation): (WebCore::RenderLayerBacking::animationFinished):
LayoutTests:
Test with an out-of-view transitioning element which should not get backing store.
- compositing/backing/transition-extent-expected.txt: Added.
- compositing/backing/transition-extent.html: Added.
- platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256368] by
-
- 7 edits in branches/safari-609.1.17.1-branch
Cherry-pick r256181. rdar://problem/59349184
There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>
Reviewed by Simon Fraser.
Source/WebCore:
Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.
To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
- animation/AnimationEffect.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply): (WebCore::KeyframeEffect::updateAcceleratedActions): (WebCore::KeyframeEffect::animationDidTick): (WebCore::KeyframeEffect::animationDidPlay):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::play): (WebCore::WebAnimation::tick):
LayoutTests:
Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
- webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256367] by
-
- 8 edits8 adds in branches/safari-609.1.17.1-branch
Cherry-pick r256095. rdar://problem/59349202
Extent of a composited animation should not include the untransformed position
https://bugs.webkit.org/show_bug.cgi?id=207434
Reviewed by Sam Weinig.
Source/WebCore:
To determine whether to create ("attach") backing store for layers with transform animations,
we compute the union of all the states of the animation as an "extent", and ask whether it intersects
the coverage rect in GraphicsLayerCA.
The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
the start and end state.
The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
and animations) also unioned with the unanimated bounds, which could create overly large extents in some
cases, contributing to jetsams on iOS (rdar://problem/59020443).
Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
LayoutTests:
New test that checks backing store attachment and overlap for an element which is positioned in-view,
but is move offscreen by the animation.
New baselines for overlap tests, since overlap no longer considers the unanimated position.
- compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt:
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256366] by
-
- 3 edits2 adds in branches/safari-609.1.17.1-branch
Cherry-pick r255810. rdar://problem/59349189
[Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
https://bugs.webkit.org/show_bug.cgi?id=207253
<rdar://problem/59143624>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-canceled-before-commit.html
Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
in other situations where the playback state changes for a potentially in-flight animation.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animationDidSeek): (WebCore::KeyframeEffect::animationWasCanceled): (WebCore::KeyframeEffect::willChangeRenderer): (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
LayoutTests:
Add a new test that checks that an accelerated animation that has been enqueued to start but has
not yet been committed is correctly canceled when the cancel() method is called. This test fails
prior to this source change.
- webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- webanimations/accelerated-animation-canceled-before-commit.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256365] by
-
- 9 edits2 adds in branches/safari-609.1.17.1-branch
Cherry-pick r255663. rdar://problem/59349185
Accelerated animations freeze on render tree rebuild
https://bugs.webkit.org/show_bug.cgi?id=201048
<rdar://problem/54612621>
Reviewed by Antoine Quint.
Source/WebCore:
If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
does not continue with the new renderer.
To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
will then become accelerated automatically.
Original test case by Tim Guan-tin Chien.
Test: webanimations/accelerated-animation-renderer-change.html
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::willChangeRendererForElement):
- animation/AnimationTimeline.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::willChangeRenderer):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::willChangeRenderer):
- animation/WebAnimation.h:
- rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
- webanimations/accelerated-animation-renderer-change-expected.html: Added.
- webanimations/accelerated-animation-renderer-change.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256364] by
-
- 6 edits4 adds in branches/safari-609.1.17.1-branch
Cherry-pick r255593. rdar://problem/59349198
[Web Animations] Accelerated animations don't run until their natural completion
https://bugs.webkit.org/show_bug.cgi?id=207130
<rdar://problem/59106047>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
The accelerated animations will be queued for removal in the next animation frame.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
LayoutTests:
Add two new tests that ensures that an accelerated animation still yields compositing on an element when
its finished promise is resolved, but that it's no longer the case on the next frame.
This required an existing test to be updated to wait until the next frame before checking the composited
status of an element on which an animation had just completed.
- compositing/geometry/limit-layer-bounds-opacity-transition.html:
- webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:03 PM Changeset in webkit [256363] by
-
- 4 edits in branches/safari-609.1.17.1-branch
Cherry-pick r255552. rdar://problem/59349213
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
https://bugs.webkit.org/show_bug.cgi?id=207071
<rdar://problem/59076249>
Patch by Antoine Quint <Antoine Quint> on 2020-02-02
Reviewed by Dean Jackson.
Source/WebCore:
We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
because we wouldn't know how to animate that CSS property.
- animation/AnimationTimeline.cpp: (WebCore::compileTransitionPropertiesInStyle):
LayoutTests:
The crash is fixed, we can start running the test as expected again.
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:02 PM Changeset in webkit [256362] by
-
- 2 edits in branches/safari-609.1.17.1-branch/LayoutTests
Cherry-pick r255525. rdar://problem/59349213
[ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207071
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:55 PM Changeset in webkit [256361] by
-
- 8 edits in branches/safari-609.1.17.1-branch/Source
Versioning.
- 1:53 PM Changeset in webkit [256360] by
-
- 6 edits2 adds in trunk
Draw underlines when specified in highlights
https://bugs.webkit.org/show_bug.cgi?id=207319
Reviewed by Simon Fraser.
Source/WebCore:
Test: http/wpt/css/css-highlight-api/highlight-text-decorations.html
When determining if we have any text decorations, currently we were only looking at the lineStyle,
but since highlights can have text decorations, they need to be considered in these calculations.
- dom/Document.cpp:
(WebCore::Document::updateHighlightPositions):
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::textDecorationsInEffectForStyle):
- rendering/TextDecorationPainter.h:
LayoutTests:
- http/wpt/css/css-highlight-api/highlight-text-decorations-expected.html: Copied from LayoutTests/http/wpt/css/css-highlight-api/highlight-text-expected.html.
- http/wpt/css/css-highlight-api/highlight-text-decorations.html: Added.
- http/wpt/css/css-highlight-api/highlight-text-expected.html:
- 1:39 PM Changeset in webkit [256359] by
-
- 1 copy in tags/Safari-610.1.1.4.3
Tag Safari-610.1.1.4.3.
- 1:38 PM Changeset in webkit [256358] by
-
- 2 edits in branches/safari-609.1.17.0-branch/Source/WebCore
Cherry-pick r256230. rdar://problem/59335800
Adjust the minor version number for the desktop user agent string.
https://bugs.webkit.org/show_bug.cgi?id=207498
<rdar://problem/59274765>
Patch by Keith Rollin <Keith Rollin> on 2020-02-10
Reviewed by Wenson Hsieh.
This helps with Netflix compatibility on the iPad.
No new tests -- no new or changed functionality.
- platform/ios/UserAgentIOS.mm: (WebCore::standardUserAgentWithApplicationName):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256230 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:38 PM Changeset in webkit [256357] by
-
- 3 edits3 adds in branches/safari-609.1.17.0-branch
Cherry-pick r256214. rdar://problem/59349590
WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443
Reviewed by Zalan Bujtas.
Source/WebCore:
There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.
The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.
The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.
This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.
Test: compositing/backing/transition-extent.html
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::startAnimation): (WebCore::RenderLayerBacking::animationFinished):
LayoutTests:
Test with an out-of-view transitioning element which should not get backing store.
- compositing/backing/transition-extent-expected.txt: Added.
- compositing/backing/transition-extent.html: Added.
- platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:38 PM Changeset in webkit [256356] by
-
- 7 edits in branches/safari-609.1.17.0-branch
Cherry-pick r256181. rdar://problem/59335793
There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>
Reviewed by Simon Fraser.
Source/WebCore:
Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.
To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
- animation/AnimationEffect.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply): (WebCore::KeyframeEffect::updateAcceleratedActions): (WebCore::KeyframeEffect::animationDidTick): (WebCore::KeyframeEffect::animationDidPlay):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::play): (WebCore::WebAnimation::tick):
LayoutTests:
Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
- webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:38 PM Changeset in webkit [256355] by
-
- 8 edits6 adds in branches/safari-609.1.17.0-branch
Cherry-pick r256095. rdar://problem/59335804
Extent of a composited animation should not include the untransformed position
https://bugs.webkit.org/show_bug.cgi?id=207434
Reviewed by Sam Weinig.
Source/WebCore:
To determine whether to create ("attach") backing store for layers with transform animations,
we compute the union of all the states of the animation as an "extent", and ask whether it intersects
the coverage rect in GraphicsLayerCA.
The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
the start and end state.
The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
and animations) also unioned with the unanimated bounds, which could create overly large extents in some
cases, contributing to jetsams on iOS (rdar://problem/59020443).
Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
LayoutTests:
New test that checks backing store attachment and overlap for an element which is positioned in-view,
but is move offscreen by the animation.
New baselines for overlap tests, since overlap no longer considers the unanimated position.
- compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt:
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:38 PM Changeset in webkit [256354] by
-
- 3 edits2 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255810. rdar://problem/59335797
[Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
https://bugs.webkit.org/show_bug.cgi?id=207253
<rdar://problem/59143624>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-canceled-before-commit.html
Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
in other situations where the playback state changes for a potentially in-flight animation.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animationDidSeek): (WebCore::KeyframeEffect::animationWasCanceled): (WebCore::KeyframeEffect::willChangeRenderer): (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
LayoutTests:
Add a new test that checks that an accelerated animation that has been enqueued to start but has
not yet been committed is correctly canceled when the cancel() method is called. This test fails
prior to this source change.
- webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- webanimations/accelerated-animation-canceled-before-commit.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [256353] by
-
- 60 edits1 copy5 adds in trunk
Support in-band VTT captions when loading media in the GPU Process
https://bugs.webkit.org/show_bug.cgi?id=207467
<rdar://problem/59312749>
Reviewed by Jer Noble.
Source/WebCore:
No new tests, existing tests enabled in GPU process.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
- Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::nextAudioNodeLogIdentifier):
(WebCore::AudioContext::nextAudioParameterLogIdentifier):
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack):
(WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
(WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack):
- html/track/AudioTrack.cpp:
(WebCore::AudioTrack::AudioTrack):
(WebCore::AudioTrack::willRemove):
(WebCore::AudioTrack::setMediaElement):
(WebCore::AudioTrack::setLogger):
- html/track/AudioTrack.h:
- html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::parseWebVTTCueData):
- html/track/InbandGenericTextTrack.h:
- html/track/InbandTextTrack.cpp:
(WebCore::InbandTextTrack::create):
(WebCore::InbandTextTrack::InbandTextTrack):
(WebCore::toPrivate):
(WebCore::InbandTextTrack::updateKindFromPrivate):
(WebCore::InbandTextTrack::setLogger):
- html/track/InbandTextTrack.h:
- html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):
- html/track/InbandWebVTTTextTrack.h:
- html/track/TextTrack.cpp:
(WebCore::TextTrack::setKind):
(WebCore::TextTrack::setMode):
(WebCore::TextTrack::removeAllCues):
(WebCore::TextTrack::addCue):
- html/track/TextTrack.h:
(WTF::LogArgument<WebCore::TextTrack::Kind>::toString):
(WTF::LogArgument<WebCore::TextTrack::Mode>::toString):
- html/track/TrackBase.cpp:
(WebCore::TrackBase::TrackBase):
(WebCore::TrackBase::setMediaElement):
(WebCore::TrackBase::setLogger):
(WebCore::nextLogIdentifier): Deleted.
- html/track/TrackBase.h:
- html/track/VideoTrack.cpp:
(WebCore::VideoTrack::VideoTrack):
(WebCore::VideoTrack::setMediaElement):
(WebCore::VideoTrack::setLogger):
- html/track/VideoTrack.h:
- platform/graphics/InbandTextTrackPrivate.h:
(WebCore::InbandTextTrackPrivate::kind const):
(WebCore::InbandTextTrackPrivate::cueFormat const):
(WebCore::InbandTextTrackPrivate::InbandTextTrackPrivate):
- platform/graphics/InbandTextTrackPrivateClient.h:
- platform/graphics/MediaPlayerEnums.h:
- platform/graphics/TrackPrivateBase.cpp:
(WebCore::TrackPrivateBase::setLogger):
- platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
(WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples):
- platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks):
- platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
(WebCore::InbandTextTrackPrivateAVFObjC::kind const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack):
- platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
(WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):
- platform/graphics/iso/ISOVTTCue.cpp:
(WebCore::ISOWebVTTCue::ISOWebVTTCue):
- platform/graphics/iso/ISOVTTCue.h:
- platform/mock/mediasource/MockTracks.h:
(WebCore::MockTextTrackPrivate::MockTextTrackPrivate):
Source/WebKit:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddAudioTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddVideoTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidAddTextTrack):
(WebKit::RemoteMediaPlayerProxy::mediaPlayerDidRemoveTextTrack):
(WebKit::RemoteMediaPlayerProxy::textTrackRepresentationBoundsChanged):
(WebKit::RemoteMediaPlayerProxy::textTrackSetMode):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/RemoteTextTrackProxy.cpp: Added.
(WebKit::RemoteTextTrackProxy::RemoteTextTrackProxy):
(WebKit::RemoteTextTrackProxy::configuration):
(WebKit::RemoteTextTrackProxy::configurationChanged):
(WebKit::RemoteTextTrackProxy::willRemove):
(WebKit::RemoteTextTrackProxy::idChanged):
(WebKit::RemoteTextTrackProxy::labelChanged):
(WebKit::RemoteTextTrackProxy::languageChanged):
(WebKit::RemoteTextTrackProxy::addDataCue):
(WebKit::RemoteTextTrackProxy::updateDataCue):
(WebKit::RemoteTextTrackProxy::removeDataCue):
(WebKit::RemoteTextTrackProxy::addGenericCue):
(WebKit::RemoteTextTrackProxy::updateGenericCue):
(WebKit::RemoteTextTrackProxy::removeGenericCue):
(WebKit::RemoteTextTrackProxy::parseWebVTTFileHeader):
(WebKit::RemoteTextTrackProxy::parseWebVTTCueData):
- GPUProcess/media/RemoteTextTrackProxy.h: Copied from Source/WebKit/GPUProcess/media/RemoteVideoTrackProxy.h.
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/TextTrackPrivateRemoteConfiguration.h: Added.
(WebKit::TextTrackPrivateRemoteConfiguration::encode const):
(WebKit::TextTrackPrivateRemoteConfiguration::decode):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
- GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
- Scripts/webkit/messages.py:
- Sources.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::removeRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::addRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::removeRemoteTextTrack):
(WebKit::MediaPlayerPrivateRemote::remoteTextTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::parseWebVTTFileHeader):
(WebKit::MediaPlayerPrivateRemote::parseWebVTTCueData):
(WebKit::MediaPlayerPrivateRemote::parseWebVTTCueDataStruct):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/TextTrackPrivateRemote.cpp: Added.
(WebKit::TextTrackPrivateRemote::TextTrackPrivateRemote):
(WebKit::TextTrackPrivateRemote::setMode):
(WebKit::TextTrackPrivateRemote::updateConfiguration):
(WebKit::TextTrackPrivateRemote::addDataCue):
(WebKit::TextTrackPrivateRemote::updateDataCue):
(WebKit::TextTrackPrivateRemote::removeDataCue):
(WebKit::TextTrackPrivateRemote::addGenericCue):
(WebKit::TextTrackPrivateRemote::updateGenericCue):
(WebKit::TextTrackPrivateRemote::removeGenericCue):
(WebKit::TextTrackPrivateRemote::parseWebVTTFileHeader):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueData):
(WebKit::TextTrackPrivateRemote::parseWebVTTCueDataStruct):
- WebProcess/GPU/media/TextTrackPrivateRemote.h: Added.
- WebProcess/GPU/media/TextTrackPrivateRemote.messages.in: Added.
Source/WTF:
- wtf/LoggerHelper.h:
(WTF::LoggerHelper::childLogIdentifier const):
LayoutTests:
- gpu-process/TestExpectations:
- 1:37 PM Changeset in webkit [256352] by
-
- 9 edits2 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255663. rdar://problem/59335773
Accelerated animations freeze on render tree rebuild
https://bugs.webkit.org/show_bug.cgi?id=201048
<rdar://problem/54612621>
Reviewed by Antoine Quint.
Source/WebCore:
If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
does not continue with the new renderer.
To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
will then become accelerated automatically.
Original test case by Tim Guan-tin Chien.
Test: webanimations/accelerated-animation-renderer-change.html
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::willChangeRendererForElement):
- animation/AnimationTimeline.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::willChangeRenderer):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::willChangeRenderer):
- animation/WebAnimation.h:
- rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
- webanimations/accelerated-animation-renderer-change-expected.html: Added.
- webanimations/accelerated-animation-renderer-change.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [256351] by
-
- 6 edits4 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255593. rdar://problem/59335802
[Web Animations] Accelerated animations don't run until their natural completion
https://bugs.webkit.org/show_bug.cgi?id=207130
<rdar://problem/59106047>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
The accelerated animations will be queued for removal in the next animation frame.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
LayoutTests:
Add two new tests that ensures that an accelerated animation still yields compositing on an element when
its finished promise is resolved, but that it's no longer the case on the next frame.
This required an existing test to be updated to wait until the next frame before checking the composited
status of an element on which an animation had just completed.
- compositing/geometry/limit-layer-bounds-opacity-transition.html:
- webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [256350] by
-
- 4 edits in branches/safari-609.1.17.0-branch
Cherry-pick r255552. rdar://problem/59335812
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
https://bugs.webkit.org/show_bug.cgi?id=207071
<rdar://problem/59076249>
Patch by Antoine Quint <Antoine Quint> on 2020-02-02
Reviewed by Dean Jackson.
Source/WebCore:
We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
because we wouldn't know how to animate that CSS property.
- animation/AnimationTimeline.cpp: (WebCore::compileTransitionPropertiesInStyle):
LayoutTests:
The crash is fixed, we can start running the test as expected again.
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [256349] by
-
- 2 edits in branches/safari-609.1.17.0-branch/LayoutTests
Cherry-pick r255525. rdar://problem/59335812
[ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207071
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:37 PM Changeset in webkit [256348] by
-
- 20 edits17 deletes in branches/safari-609.1.17.0-branch
Revert "Cherry-pick r256214. rdar://problem/59349205"
This reverts commit 136c83914552143e2f30738b1892c80bdce440bf.
Revert "Cherry-pick r256181. rdar://problem/59349184"
This reverts commit c243d1210b16f08fe15d2655e5404fc58e3a8f2f.
Revert "Cherry-pick r256095. rdar://problem/59349202"
This reverts commit da093df9a0316d7248cd43eead2fda895dbdc415.
Revert "Cherry-pick r255810. rdar://problem/59349189"
This reverts commit 410a91668843774b2cea733ea441221c8ad6bc40.
Revert "Cherry-pick r255663. rdar://problem/59349185"
This reverts commit ee4f679f99959f7eee3d509950a6b44c611f7dc6.
Revert "Cherry-pick r255593. rdar://problem/59349198"
This reverts commit 1ae924558dd4ff09bf20d97fa3a3648cd9766bcf.
Revert "Cherry-pick r255552. rdar://problem/59349213"
This reverts commit f8feeed1205b837e4912f66bdf76c935612be0f3.
Revert "Cherry-pick r255525. rdar://problem/59349213"
This reverts commit 444142aa67ab570929cada2fcd63156d65e4d55c.
- 1:33 PM Changeset in webkit [256347] by
-
- 3 edits in trunk/Source/WebCore
Fix for crashes in WebAccessibilityObjectWrapper after notification updates in IsolatedTree mode.
https://bugs.webkit.org/show_bug.cgi?id=207558
Reviewed by Chris Fleizach.
- Accessibility methods invoked in the secondary thread that Return id
values retrieved from the main thread, need to retain/autorelease the
returned ids.
- When serving a request on the AX thread that requires retrieving a
value from the main thread, the backing obbject on the main thread may
have gone away, so need to check for nullity of the backing object also
on the main thread.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::Accessibility::retrieveAutoreleasedValueFromMainThread):
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper attachmentView]):
(-[WebAccessibilityObjectWrapper textMarkerRangeFromRange:]):
(-[WebAccessibilityObjectWrapper renderWidgetChildren]):
(-[WebAccessibilityObjectWrapper associatedPluginParent]):
(-[WebAccessibilityObjectWrapper scrollViewParent]):
(-[WebAccessibilityObjectWrapper windowElement:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
- 1:14 PM Changeset in webkit [256346] by
-
- 4 edits2 adds in trunk
video.currentTime is not being updated in iOS 13.4 Beta
https://bugs.webkit.org/show_bug.cgi?id=207489
<rdar://problem/59322640>
Reviewed by Youenn Fablet.
Source/WebKit:
Allow the Web process and the GPU process to communicate with
'com.apple.coremedia.audiodeviceclock.xpc' because it is necessary to use a
CMTimeBase, which is used by MediaPlayerPrivateMediaStreamAVFObjC for currentTime.
Test: fast/mediastream/media-element-current-time.html
- Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
LayoutTests:
- fast/mediastream/media-element-current-time.html: Added.
- 1:09 PM Changeset in webkit [256345] by
-
- 3 edits in trunk/Source/WebKit
Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514
Add the rest of the SPI to convert between the two.
- UIProcess/API/Cocoa/_WKUserContentWorld.h:
- UIProcess/API/Cocoa/_WKUserContentWorld.mm:
(-[_WKUserContentWorld contentWorld]):
- 1:08 PM Changeset in webkit [256344] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/tests/ssl/applepay/ApplePayBillingAddress.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207577
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 12:59 PM Changeset in webkit [256343] by
-
- 2 edits in trunk/Tools
KeyboardInputTests.SupportsImagePaste fails on recent versions of UIKit
https://bugs.webkit.org/show_bug.cgi?id=207557
Reviewed by Jonathan Bedard.
The exception occurs because UIKit attempts to create a QoS interval upon setting the initially selected row in
a UITableView when we focus a date picker. This fails because TestWebKitAPI isn't actually an app, so the call
towork_interval_create
withWORK_INTERVAL_TYPE_CA_CLIENT
as the option flag fails. For the time being, work
around this by focusing an empty select element instead (for which we won't attempt to create and select any
table view cells).
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
- 12:49 PM Changeset in webkit [256342] by
-
- 3 edits3 adds in branches/safari-609.1.17.0-branch
Cherry-pick r256214. rdar://problem/59349205
WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443
Reviewed by Zalan Bujtas.
Source/WebCore:
There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.
The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.
The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.
This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.
Test: compositing/backing/transition-extent.html
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::startAnimation): (WebCore::RenderLayerBacking::animationFinished):
LayoutTests:
Test with an out-of-view transitioning element which should not get backing store.
- compositing/backing/transition-extent-expected.txt: Added.
- compositing/backing/transition-extent.html: Added.
- platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:49 PM Changeset in webkit [256341] by
-
- 7 edits in branches/safari-609.1.17.0-branch
Cherry-pick r256181. rdar://problem/59349184
There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>
Reviewed by Simon Fraser.
Source/WebCore:
Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.
To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
- animation/AnimationEffect.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply): (WebCore::KeyframeEffect::updateAcceleratedActions): (WebCore::KeyframeEffect::animationDidTick): (WebCore::KeyframeEffect::animationDidPlay):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::play): (WebCore::WebAnimation::tick):
LayoutTests:
Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
- webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256340] by
-
- 8 edits8 adds in branches/safari-609.1.17.0-branch
Cherry-pick r256095. rdar://problem/59349202
Extent of a composited animation should not include the untransformed position
https://bugs.webkit.org/show_bug.cgi?id=207434
Reviewed by Sam Weinig.
Source/WebCore:
To determine whether to create ("attach") backing store for layers with transform animations,
we compute the union of all the states of the animation as an "extent", and ask whether it intersects
the coverage rect in GraphicsLayerCA.
The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
the start and end state.
The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
and animations) also unioned with the unanimated bounds, which could create overly large extents in some
cases, contributing to jetsams on iOS (rdar://problem/59020443).
Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
LayoutTests:
New test that checks backing store attachment and overlap for an element which is positioned in-view,
but is move offscreen by the animation.
New baselines for overlap tests, since overlap no longer considers the unanimated position.
- compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt:
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256339] by
-
- 3 edits2 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255810. rdar://problem/59349189
[Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
https://bugs.webkit.org/show_bug.cgi?id=207253
<rdar://problem/59143624>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-canceled-before-commit.html
Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
in other situations where the playback state changes for a potentially in-flight animation.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animationDidSeek): (WebCore::KeyframeEffect::animationWasCanceled): (WebCore::KeyframeEffect::willChangeRenderer): (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
LayoutTests:
Add a new test that checks that an accelerated animation that has been enqueued to start but has
not yet been committed is correctly canceled when the cancel() method is called. This test fails
prior to this source change.
- webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- webanimations/accelerated-animation-canceled-before-commit.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256338] by
-
- 9 edits2 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255663. rdar://problem/59349185
Accelerated animations freeze on render tree rebuild
https://bugs.webkit.org/show_bug.cgi?id=201048
<rdar://problem/54612621>
Reviewed by Antoine Quint.
Source/WebCore:
If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
does not continue with the new renderer.
To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
will then become accelerated automatically.
Original test case by Tim Guan-tin Chien.
Test: webanimations/accelerated-animation-renderer-change.html
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::willChangeRendererForElement):
- animation/AnimationTimeline.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::willChangeRenderer):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::willChangeRenderer):
- animation/WebAnimation.h:
- rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
- webanimations/accelerated-animation-renderer-change-expected.html: Added.
- webanimations/accelerated-animation-renderer-change.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256337] by
-
- 6 edits4 adds in branches/safari-609.1.17.0-branch
Cherry-pick r255593. rdar://problem/59349198
[Web Animations] Accelerated animations don't run until their natural completion
https://bugs.webkit.org/show_bug.cgi?id=207130
<rdar://problem/59106047>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
The accelerated animations will be queued for removal in the next animation frame.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
LayoutTests:
Add two new tests that ensures that an accelerated animation still yields compositing on an element when
its finished promise is resolved, but that it's no longer the case on the next frame.
This required an existing test to be updated to wait until the next frame before checking the composited
status of an element on which an animation had just completed.
- compositing/geometry/limit-layer-bounds-opacity-transition.html:
- webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256336] by
-
- 4 edits in branches/safari-609.1.17.0-branch
Cherry-pick r255552. rdar://problem/59349213
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
https://bugs.webkit.org/show_bug.cgi?id=207071
<rdar://problem/59076249>
Patch by Antoine Quint <Antoine Quint> on 2020-02-02
Reviewed by Dean Jackson.
Source/WebCore:
We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
because we wouldn't know how to animate that CSS property.
- animation/AnimationTimeline.cpp: (WebCore::compileTransitionPropertiesInStyle):
LayoutTests:
The crash is fixed, we can start running the test as expected again.
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:48 PM Changeset in webkit [256335] by
-
- 2 edits in branches/safari-609.1.17.0-branch/LayoutTests
Cherry-pick r255525. rdar://problem/59349213
[ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207071
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:54 AM Changeset in webkit [256334] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Apply patch. rdar://problem/59354409
- 11:41 AM Changeset in webkit [256333] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207571
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 11:40 AM Changeset in webkit [256332] by
-
- 16 edits1 add in trunk/Source/WebKit
Deprecate _WKUserContentWorld replaced by WKContentWorld
https://bugs.webkit.org/show_bug.cgi?id=207514
Reviewed by Brady Eidson.
I also add SPI to convert between the two to aid a smooth transition.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- UIProcess/API/APIContentWorld.cpp:
(API::ContentWorld::fromUserContentWorld):
(API::ContentWorld::ContentWorld):
- UIProcess/API/APIContentWorld.h:
(API::ContentWorldBase::ContentWorldBase):
- UIProcess/API/APIUserContentWorld.cpp:
(API::UserContentWorld::fromContentWorld):
(API::UserContentWorld::UserContentWorld):
- UIProcess/API/APIUserContentWorld.h:
- UIProcess/API/Cocoa/WKContentWorld.mm:
(-[WKContentWorld _userContentWorld]):
- UIProcess/API/Cocoa/WKContentWorldInternal.h:
- UIProcess/API/Cocoa/WKContentWorldPrivate.h: Added.
- UIProcess/API/Cocoa/WKUserContentController.mm:
- UIProcess/API/Cocoa/WKUserScript.mm:
- UIProcess/API/Cocoa/_WKUserContentWorld.h:
- UIProcess/API/Cocoa/_WKUserContentWorld.mm:
- UIProcess/API/Cocoa/_WKUserContentWorldInternal.h:
- UIProcess/API/Cocoa/_WKUserStyleSheet.h:
- UIProcess/API/Cocoa/_WKUserStyleSheet.mm:
- WebKit.xcodeproj/project.pbxproj:
- 11:34 AM Changeset in webkit [256331] by
-
- 8 edits in branches/safari-609.1.17.0-branch/Source
Versioning.
- 11:25 AM Changeset in webkit [256330] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] legacy-animation-engine/animations/3d/transform-origin-vs-functions.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207569
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- 11:16 AM Changeset in webkit [256329] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] inspector/page/overrideUserAgent.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207568
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- 11:16 AM Changeset in webkit [256328] by
-
- 1 copy in branches/safari-609.1.17.1-branch
New branch, safari-609.1.17.1-branch
- 11:15 AM Changeset in webkit [256327] by
-
- 1 delete in branches/Safari-609.1.17.1
Delete branch.
- 11:12 AM Changeset in webkit [256326] by
-
- 1 copy in branches/safari-609.1.17.0-branch
New branch, safari-609.1.17.0-branch
- 11:11 AM Changeset in webkit [256325] by
-
- 1 delete in branches/Safari-609.1.17.0
Delete branch.
- 11:06 AM Changeset in webkit [256324] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207566
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- 11:05 AM Changeset in webkit [256323] by
-
- 1 copy in branches/Safari-609.1.17.1
New branch, safari-609.1.17.1-branch
- 11:05 AM Changeset in webkit [256322] by
-
- 1 copy in branches/Safari-609.1.17.0
New branch, safari-609.1.17.0-branch
- 11:04 AM Changeset in webkit [256321] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-from-serviceworker.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207563
Unreviewed test gardening
- platform/ios/TestExpectations:
- 10:58 AM Changeset in webkit [256320] by
-
- 2 edits in trunk/Source/WebCore/PAL
AX: Wrong includes for internal SDK
https://bugs.webkit.org/show_bug.cgi?id=207554
Reviewed by Chris Dumez.
- pal/spi/mac/HIServicesSPI.h:
- 10:49 AM Changeset in webkit [256319] by
-
- 2 edits in trunk/LayoutTests
[ macOS iOS ] animations/animation-callback-timestamp.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207153
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- 10:38 AM Changeset in webkit [256318] by
-
- 2 edits in trunk/LayoutTests
BOTWATCH: editing/selection/5354455-1.html causes nasty crash
rdar://problem/13448458
Unreviewed test gardening
- platform/mac-wk2/TestExpectations: unskip test because it no longer crashes locally
- 10:26 AM Changeset in webkit [256317] by
-
- 4 edits in trunk
REGRESSION (r256009): [ Mojave wk2 Debug ] ASSERTION FAILED: Completion handler should always be called under WebKit::WebMDNSRegister::PendingRegistration
https://bugs.webkit.org/show_bug.cgi?id=207521
<rdar://problem/59331313>
Reviewed by Eric Carlson.
Source/WebKit:
Covered by debug assertion not hit in layout tests.
- WebProcess/Network/webrtc/WebMDNSRegister.cpp:
(WebKit::WebMDNSRegister::finishedRegisteringMDNSName):
Call completion handler even if the document entry has been cleared, which can happen in suspend/destruction case.
If the entry is not there, all MDNS names for the document have been unregistered. We then report a registration error.
LayoutTests:
- platform/mac-wk2/TestExpectations:
- 10:18 AM Changeset in webkit [256316] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] media/airplay-target-availability.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207560
Unreviewed test gardening
- platform/mac-wk1/TestExpectations:
- 10:14 AM Changeset in webkit [256315] by
-
- 7 edits1 add in trunk
Add WKHTTPCookieStore._getCookiesForURL SPI
https://bugs.webkit.org/show_bug.cgi?id=207527
Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-11
Reviewed by Brady Eidson.
Source/WebKit:
This is needed to implement rdar://problem/57193106 without re-implementing the cookie/URL matching logic that exists in CFNetwork.
Covered by an API test with a great pun in it.
- UIProcess/API/APIHTTPCookieStore.cpp:
(API::HTTPCookieStore::cookiesForURL):
- UIProcess/API/APIHTTPCookieStore.h:
- UIProcess/API/Cocoa/WKHTTPCookieStore.mm:
(-[WKHTTPCookieStore _getCookiesForURL:completionHandler:]):
- UIProcess/API/Cocoa/WKHTTPCookieStorePrivate.h: Added.
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(TEST):
- 9:57 AM Changeset in webkit [256314] by
-
- 4 edits in trunk
WebSWServerConnection::registerServiceWorkerClient is not sending IPC message to UIProcess when it should
https://bugs.webkit.org/show_bug.cgi?id=207537
Reviewed by Chris Dumez.
Source/WebKit:
Covered by added API test.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
Fix use after move so that we can get the context connection and send the IPC message to UIProcess as expected.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
- 9:51 AM Changeset in webkit [256313] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS ] fast/parser/parser-yield-timing.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207559
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 9:48 AM Changeset in webkit [256312] by
-
- 2 edits in trunk/Source/WebKit
Add WKContentWorld.h to WebKit.h
https://bugs.webkit.org/show_bug.cgi?id=207351
Suggested by Alex Christensen.
Patch by Brady Eidson <beidson@apple.com> on 2020-02-11
- Shared/API/Cocoa/WebKit.h:
- 9:12 AM Changeset in webkit [256311] by
-
- 8 edits2 adds in trunk/Source/WebCore
[LFC] Introduce Layout::LineBreakBox
https://bugs.webkit.org/show_bug.cgi?id=207550
<rdar://problem/59348274>
Reviewed by Antti Koivisto.
This is in preparation for making Layout::Box an abstract box (so that it stops being a leaf type of box).
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isImage const):
(WebCore::Layout::Box::isLineBreakBox const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLineBreakBox):
(WebCore::Layout::TreeBuilder::createLayoutBox):
- layout/layouttree/LayoutTreeBuilder.h:
- 9:11 AM Changeset in webkit [256310] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/idbcursor_update_objectstore8.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207555
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 8:50 AM Changeset in webkit [256309] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] imported/w3c/IndexedDB-private-browsing/abort-in-initial-upgradeneeded.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207553
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 8:42 AM Changeset in webkit [256308] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/redirected-response.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190852
Updating expectations to include ios
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 8:40 AM UpdatingANGLE edited by
- Update instructions for updating ANGLE (diff)
- 8:36 AM Changeset in webkit [256307] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/storageAccess/has-storage-access-false-by-default-ephemeral-database.html is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=207552
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 8:15 AM Changeset in webkit [256306] by
-
- 2 edits in trunk/LayoutTests
[ iOS ] http/tests/adClickAttribution/store-disabled-in-ephemeral-session.html is flaky timing out
https://bugs.webkit.org/show_bug.cgi?id=207551
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 7:58 AM Changeset in webkit [256305] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r253312): imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies.html is super flaky
https://bugs.webkit.org/show_bug.cgi?id=205216
Updated test expectations to include ios.
Unreviewed test gardening
- platform/ios-wk2/TestExpectations:
- 7:13 AM Changeset in webkit [256304] by
-
- 20 edits1 copy1 move in trunk/Source/WebCore
[LFC] Introduce Layout::InlineTextBox
https://bugs.webkit.org/show_bug.cgi?id=207530
<rdar://problem/59336020>
Reviewed by Antti Koivisto.
Any text that is directly contained inside a block container element (not inside an inline element) must be treated as an anonymous inline element.
- Sources.txt:
- layout/Verification.cpp:
(WebCore::Layout::checkForMatchingTextRuns):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
- layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::LineBreaker::tryBreakingTextRun const):
- layout/inlineformatting/InlineLineBuilder.cpp:
(WebCore::Layout::m_textContext):
- layout/inlineformatting/InlineSoftLineBreakItem.h:
(WebCore::Layout::InlineSoftLineBreakItem::createSoftLineBreakItem):
(WebCore::Layout::InlineSoftLineBreakItem::InlineSoftLineBreakItem):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::isEmptyContent const):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::inlineTextBox const):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createEmptyItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
- layout/inlineformatting/LineLayoutContext.cpp:
(WebCore::Layout::endsWithSoftWrapOpportunity):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::split):
- layout/inlineformatting/text/TextUtil.h:
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box):
(): Deleted.
- layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::isInlineTextBox const):
(WebCore::Layout::Box::hasTextContent const): Deleted.
(WebCore::Layout::Box::textContext const): Deleted.
- layout/layouttree/LayoutContainer.cpp:
(WebCore::Layout::Container::Container):
(): Deleted.
- layout/layouttree/LayoutInlineTextBox.cpp: Copied from Source/WebCore/layout/layouttree/TextContext.h.
(WebCore::Layout::InlineTextBox::InlineTextBox):
(WebCore::Layout::m_canUseSimplifiedContentMeasuring):
- layout/layouttree/LayoutInlineTextBox.h: Renamed from Source/WebCore/layout/layouttree/TextContext.h.
(WebCore::Layout::InlineTextBox::content const):
(WebCore::Layout::InlineTextBox::canUseSimplifiedContentMeasuring const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTextBox):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::outputLayoutBox):
- layout/layouttree/LayoutTreeBuilder.h:
- 6:08 AM Changeset in webkit [256303] by
-
- 17 edits1 copy in trunk/Source/WebKit
Use ObjectIdentifier for WebSocketStream/WebSocketChannel
https://bugs.webkit.org/show_bug.cgi?id=207507
Reviewed by Alex Christensen.
Replace uint64_t by ObjectIdentifier.
This adds type safety and ensures we get valid identifiers from IPC.
We still need to check for destinationID being not null in a few places.
No observable change of behavior.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::createSocketStream):
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
(WebKit::NetworkConnectionToWebProcess::removeSocketChannel):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/NetworkSocketStream.cpp:
(WebKit::NetworkSocketStream::create):
(WebKit::NetworkSocketStream::NetworkSocketStream):
(WebKit::NetworkSocketStream::messageSenderDestinationID const):
- NetworkProcess/NetworkSocketStream.h:
- Scripts/webkit/messages.py:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::WebSocketChannel):
(WebKit::WebSocketChannel::messageSenderDestinationID const):
(WebKit::WebSocketChannel::connect):
- WebProcess/Network/WebSocketChannel.h:
(WebKit::WebSocketChannel::identifier const):
- WebProcess/Network/WebSocketChannelManager.cpp:
(WebKit::WebSocketChannelManager::didReceiveMessage):
- WebProcess/Network/WebSocketChannelManager.h:
- WebProcess/Network/WebSocketIdentifier.h: Added.
- WebProcess/Network/WebSocketStream.cpp:
(WebKit::WebSocketStream::streamWithIdentifier):
(WebKit::WebSocketStream::WebSocketStream):
(WebKit::WebSocketStream::~WebSocketStream):
(WebKit::WebSocketStream::messageSenderDestinationID const):
- WebProcess/Network/WebSocketStream.h:
- 5:09 AM Changeset in webkit [256302] by
-
- 2 edits in trunk/Tools
[WPE][WebDriver] MiniBrowser should react to close session commands
https://bugs.webkit.org/show_bug.cgi?id=207529
Patch by Lauro Moura <Lauro Moura> on 2020-02-11
Reviewed by Carlos Garcia Campos.
WebDriver delete session command asks to close the WebView associated to the
current automation session. We must react to it to avoid lots of
timeouts and errors.
- MiniBrowser/wpe/main.cpp:
(main): Listen to "close" signal on the main WebView.
- 5:03 AM Changeset in webkit [256301] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed. Fix WPE build after r256298
It started to fail in r256298 because of unified builds, but the issue was introduced in r256013.
- platform/network/soup/ResourceRequestSoup.cpp: Add missing header include.
- 3:31 AM Changeset in webkit [256300] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Mac ] legacy-animation-engine/fast/animation/request-animation-frame-iframe2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206624
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-02-11
Reviewed by Antoine Quint.
Rewrite test to have a reliable asynchronous execution order.
- fast/animation/script-tests/request-animation-frame-subframe.html:
- 2:47 AM Changeset in webkit [256299] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] imported/w3c/web-platform-tests/css/css-lists/counter-* tests consistently pass
https://bugs.webkit.org/show_bug.cgi?id=207533
Unreviewed test gardening.
Patch by Chris Lord <Chris Lord> on 2020-02-11
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 1:35 AM Changeset in webkit [256298] by
-
- 5 edits in trunk/Source/WebCore
[WPE] Add initial support for rendering scrollbars
https://bugs.webkit.org/show_bug.cgi?id=206999
Reviewed by Michael Catanzaro.
Show overlay scrollbars with a style similar to Adwaita.
- SourcesWPE.txt: Add ScrollAnimatorGeneric.cpp to the build.
- platform/ScrollAnimator.cpp: Switch to use ScrollAnimatorGeneric, required to show/hide the overlay scrollbars.
- platform/wpe/ScrollbarThemeWPE.cpp:
(WebCore::ScrollbarThemeWPE::scrollbarThickness):
(WebCore::ScrollbarThemeWPE::minimumThumbLength):
(WebCore::ScrollbarThemeWPE::hasButtons):
(WebCore::ScrollbarThemeWPE::hasThumb):
(WebCore::ScrollbarThemeWPE::backButtonRect):
(WebCore::ScrollbarThemeWPE::forwardButtonRect):
(WebCore::ScrollbarThemeWPE::trackRect):
(WebCore::ScrollbarThemeWPE::paint):
- platform/wpe/ScrollbarThemeWPE.h:
- 12:24 AM Changeset in webkit [256297] by
-
- 3 edits in trunk/Tools
[iOS] Non-internal API test runners frequently crash due to Objective-C exceptions
https://bugs.webkit.org/show_bug.cgi?id=207525
<rdar://problem/59110543>
Reviewed by Tim Horton.
After the fix for <rdar://problem/56301207>, some scroll view content offset changes will attempt to call into
CoreAnalytics API to try and report data about scrolling velocities. In the iOS 13.3 simulator, this involves
creating a dictionary, of which one of the keys is the bundle identifier of the application. The value is
unconditionally inserted into the dictionary. Since TestWebKitAPI does not run in the context of a
UIApplication, the bundle identifier (that is,NSBundle.mainBundle.bundleIdentifier
) ends up being nil,
causing us to crash upon trying to create the dictionary.
While it would make things easier, we can't just swizzle -bundleIdentifier for the entirely of every test, since
some tests expect the bundle identifier to be nil (or call into system frameworks that expect the bundle
identifier to be nil). These tests fail or time out when -bundleIdentifier is unconditionally swizzled
throughout the test run. To work around this bug for the time being, simply pretend that we have a bundle
identifier when running API tests on iOS, by swizzling-[NSBundle bundleIdentifier]
to return a string at the
beginning of each API test.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/cocoa/TestWKWebView.mm:
(overrideBundleIdentifier):
Move this to the top of the file, so it can be shared.
(+[WKWebView initialize]):
At the start of each test, force UIKit to cache a fake value for
_UIMainBundleIdentifier()
by invoking an
internal class method that calls into the internal helper function, with no other side effects.
- TestWebKitAPI/ios/UIKitSPI.h:
- 12:21 AM Changeset in webkit [256296] by
-
- 1 copy in releases/WPE WebKit/webkit-2.27.90
WPE WebKit 2.27.90
- 12:21 AM Changeset in webkit [256295] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.27.90 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.27.90.
- 12:10 AM Changeset in webkit [256294] by
-
- 4 edits in trunk/Source
AX: Unable to build webkit open source - build errors related to AXClientType
https://bugs.webkit.org/show_bug.cgi?id=207524
<rdar://problem/59279722>
Reviewed by Mark Lam.
Source/WebCore/PAL:
- pal/spi/mac/HIServicesSPI.h:
Source/WebKit:
- Platform/spi/mac/ApplicationServicesSPI.h:
Feb 10, 2020:
- 10:26 PM Changeset in webkit [256293] by
-
- 3 edits3 adds in branches/safari-609-branch
Cherry-pick r256214. rdar://problem/59329555
WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443
Reviewed by Zalan Bujtas.
Source/WebCore:
There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.
The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.
The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.
This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.
Test: compositing/backing/transition-extent.html
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::startAnimation): (WebCore::RenderLayerBacking::animationFinished):
LayoutTests:
Test with an out-of-view transitioning element which should not get backing store.
- compositing/backing/transition-extent-expected.txt: Added.
- compositing/backing/transition-extent.html: Added.
- platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256214 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256292] by
-
- 7 edits in branches/safari-609-branch
Cherry-pick r256181. rdar://problem/59329544
There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>
Reviewed by Simon Fraser.
Source/WebCore:
Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.
To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
- animation/AnimationEffect.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::apply): (WebCore::KeyframeEffect::updateAcceleratedActions): (WebCore::KeyframeEffect::animationDidTick): (WebCore::KeyframeEffect::animationDidPlay):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::play): (WebCore::WebAnimation::tick):
LayoutTests:
Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
- webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256181 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256291] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r256173. rdar://problem/59329542
Make FormDataElement::lengthInBytes() safe to call on a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=207419
<rdar://problem/54386521>
Reviewed by Youenn Fablet.
Make FormDataElement::lengthInBytes() safe to call on a non-main thread by using the
ThreadableBlobRegistry. DOMCache code in workers may call this on worker threads for
example.
- platform/network/FormData.cpp: (WebCore::FormDataElement::lengthInBytes const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256173 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256290] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256105. rdar://problem/59302221
Fix the watchOS build after <rdar://problem/56134081>
https://bugs.webkit.org/show_bug.cgi?id=207443
<rdar://problem/59295173>
Reviewed by Maciej Stachowiak.
Use the version of the SPI that's guaranteed to be available across all platforms.
- UIProcess/ios/WKContentViewInteraction.mm: (gestureRecognizerModifierFlags):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256289] by
-
- 8 edits8 adds in branches/safari-609-branch
Cherry-pick r256095. rdar://problem/59329549
Extent of a composited animation should not include the untransformed position
https://bugs.webkit.org/show_bug.cgi?id=207434
Reviewed by Sam Weinig.
Source/WebCore:
To determine whether to create ("attach") backing store for layers with transform animations,
we compute the union of all the states of the animation as an "extent", and ask whether it intersects
the coverage rect in GraphicsLayerCA.
The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
the start and end state.
The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
and animations) also unioned with the unanimated bounds, which could create overly large extents in some
cases, contributing to jetsams on iOS (rdar://problem/59020443).
Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- page/animation/KeyframeAnimation.cpp: (WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
LayoutTests:
New test that checks backing store attachment and overlap for an element which is positioned in-view,
but is move offscreen by the animation.
New baselines for overlap tests, since overlap no longer considers the unanimated position.
- compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt:
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256288] by
-
- 3 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256090. rdar://problem/59298156
Resource Load Statistics: Hold off non-cookie website data deletion until an hour after user interaction
https://bugs.webkit.org/show_bug.cgi?id=207418
<rdar://problem/58550164>
Reviewed by Chris Dumez.
This change makes sure there is at least a one-hour or older timestamp
for user interaction for some website before activating deletion of
non-cookie website data for sites the user has not interacted with.
This ensures that a fresh start such as after a reset or on a new
device doesn't interpret the lack of data as lack of user interaction.
No new tests. Existing tests make sure we don't regress the functionality.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp: (WebKit::ResourceLoadStatisticsDatabaseStore::registrableDomainsToRemoveWebsiteDataFor):
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp: (WebKit::ResourceLoadStatisticsMemoryStore::registrableDomainsToRemoveWebsiteDataFor):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256090 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256287] by
-
- 34 edits in branches/safari-609-branch/Source
Cherry-pick r256075. rdar://problem/59298173
[Hardening] Validate Geolocation access permission on UIProcess side
https://bugs.webkit.org/show_bug.cgi?id=207393
<rdar://problem/56816051>
Reviewed by Brent Fulgham.
Source/WebCore:
Validate Geolocation access permission on UIProcess side, instead of only relying solely on the WebProcess for this.
The workflow is as follows:
- The Geolocation objects request for permission to access location data
- The UIProcess shows a prompt
- If the user accepts, the UIProcess sends an authorization token (a UUID string) to the Geolocation object.
- When the Geolocation object later asks for location updates from the UIProcess, the UIProcess validates that this is a valid authorization token (one that it previously issued for this page)
- When the Geolocation objects gets destroyed (or resets its permission), the authorization token gets revoked so that it is no longer valid.
No new tests, no Web-facing behavior change, merely hardening.
- Modules/geolocation/Geolocation.cpp: (WebCore::Geolocation::~Geolocation): (WebCore::Geolocation::resumeTimerFired): (WebCore::Geolocation::resetAllGeolocationPermission): (WebCore::Geolocation::stop): (WebCore::Geolocation::setIsAllowed): (WebCore::Geolocation::revokeAuthorizationTokenIfNecessary): (WebCore::Geolocation::resetIsAllowed):
- Modules/geolocation/Geolocation.h:
- Modules/geolocation/GeolocationClient.h: (WebCore::GeolocationClient::revokeAuthorizationToken):
- Modules/geolocation/GeolocationController.cpp: (WebCore::GeolocationController::addObserver): (WebCore::GeolocationController::revokeAuthorizationToken): (WebCore::GeolocationController::activityStateDidChange):
- Modules/geolocation/GeolocationController.h:
- platform/mock/GeolocationClientMock.cpp: (WebCore::GeolocationClientMock::permissionTimerFired): (WebCore::GeolocationClientMock::startUpdating):
- platform/mock/GeolocationClientMock.h:
Source/WebKit:
- UIProcess/GeolocationPermissionRequestManagerProxy.cpp: (WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision): (WebKit::GeolocationPermissionRequestManagerProxy::isValidAuthorizationToken const): (WebKit::GeolocationPermissionRequestManagerProxy::revokeAuthorizationToken):
- UIProcess/GeolocationPermissionRequestManagerProxy.h:
- UIProcess/WebGeolocationManagerProxy.cpp: (WebKit::WebGeolocationManagerProxy::startUpdating):
- UIProcess/WebGeolocationManagerProxy.h:
- UIProcess/WebGeolocationManagerProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::geolocationPermissionRequestManager):
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp: (WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation): (WebKit::GeolocationPermissionRequestManager::revokeAuthorizationToken): (WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
- WebProcess/Geolocation/GeolocationPermissionRequestManager.h:
- WebProcess/Geolocation/WebGeolocationManager.cpp: (WebKit::WebGeolocationManager::registerWebPage):
- WebProcess/Geolocation/WebGeolocationManager.h:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp: (WebKit::WebGeolocationClient::startUpdating): (WebKit::WebGeolocationClient::revokeAuthorizationToken):
- WebProcess/WebCoreSupport/WebGeolocationClient.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didReceiveGeolocationPermissionDecision):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebGeolocationClient.h:
- WebCoreSupport/WebGeolocationClient.mm: (WebGeolocationClient::startUpdating): (WebGeolocationClient::requestPermission): (-[WebGeolocationPolicyListener allow]): (-[WebGeolocationPolicyListener deny]):
Source/WebKitLegacy/win:
- WebCoreSupport/WebGeolocationClient.cpp: (WebGeolocationClient::startUpdating):
- WebCoreSupport/WebGeolocationClient.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256075 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256286] by
-
- 1 edit3 adds in branches/safari-609-branch/Source/WebInspectorUI
Cherry-pick r256056. rdar://problem/59299137
Web Inspector: Add another Protocol Version (iOS 13.4)
https://bugs.webkit.org/show_bug.cgi?id=207213
<rdar://problem/52846208>
Reviewed by Timothy Hatcher.
- UserInterface/Protocol/Legacy/13.4/InspectorBackendCommands.js: Added.
- Versions/Inspector-iOS-13.4.json: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256056 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256285] by
-
- 2 edits in branches/safari-609-branch/Source/WTF
Cherry-pick r256030. rdar://problem/59298146
Mandate UUID version 4 for mDNS ICE candidates
https://bugs.webkit.org/show_bug.cgi?id=207329
<rdar://problem/59221606>
Address post-commit comments from Darin by using isASCIIHexDigit.
Unreviewed.
- wtf/UUID.cpp: (WTF::isVersion4UUID): (WTF::isHexadecimalCharacter): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256030 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256284] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r256022. rdar://problem/59298187
Address post-landing review comments from Darin on r255989.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::terminateServiceWorkerProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256022 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256283] by
-
- 7 edits in branches/safari-609-branch/Source
Cherry-pick r256016. rdar://problem/59298146
Mandate UUID version 4 for mDNS ICE candidates
https://bugs.webkit.org/show_bug.cgi?id=207329
Reviewed by Alex Christensen.
Source/WebCore:
Ignore ICE candidates if they are mDNS but not UUID version 4.
Covered by existing tests relying on mDNS to do the connection.
- Modules/mediastream/PeerConnectionBackend.cpp: (WebCore::shouldIgnoreCandidate): (WebCore::PeerConnectionBackend::addIceCandidate):
Source/WebKit:
- NetworkProcess/webrtc/NetworkMDNSRegister.cpp: (WebKit::NetworkMDNSRegister::registerMDNSName): Remove the count at the end of the mDNS name to make it a fully version 4 UUID.
Source/WTF:
Add a routine to validate version 4 UUID.
- wtf/UUID.cpp: (WTF::isHexadecimalCharacter): (WTF::isVersion4UUID):
- wtf/UUID.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256016 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256282] by
-
- 4 edits3 adds in branches/safari-609-branch
Cherry-pick r256009. rdar://problem/59298150
Do not process newly gathered ICE candidates if document is suspended
https://bugs.webkit.org/show_bug.cgi?id=207326
<rdar://problem/57336453>
Reviewed by Alex Christensen.
Source/WebCore:
We should not register MDNS candidates for suspended documents.
For that reason, enqueue a task when receiving a new candidate.
If document is not suspended, it will be executed immediately.
Otherwise, we will wait until document gets unsuspended.
Add a mock endpoint that delays gathering of candidates until document is suspended.
Test: webrtc/peerconnection-new-candidate-page-cache.html
- Modules/mediastream/PeerConnectionBackend.cpp: (WebCore::PeerConnectionBackend::newICECandidate):
- testing/MockLibWebRTCPeerConnection.cpp: (WebCore::MockLibWebRTCPeerConnection::GetTransceivers const): (WebCore::MockLibWebRTCPeerConnectionForIceCandidates::MockLibWebRTCPeerConnectionForIceCandidates): (WebCore::MockLibWebRTCPeerConnectionForIceCandidates::gotLocalDescription): (WebCore::MockLibWebRTCPeerConnectionForIceCandidates::sendCandidates): (WebCore::MockLibWebRTCPeerConnectionFactory::CreatePeerConnection):
LayoutTests:
- fast/history/resources/page-cache-helper-100ms.html: Added.
- webrtc/peerconnection-new-candidate-page-cache-expected.txt: Added.
- webrtc/peerconnection-new-candidate-page-cache.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256009 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:26 PM Changeset in webkit [256281] by
-
- 6 edits in branches/safari-609-branch/Source
Cherry-pick r256005. rdar://problem/59299335
macCatalyst: Unnecessary I-beam over images in editable areas
https://bugs.webkit.org/show_bug.cgi?id=207370
<rdar://problem/59235429>
Reviewed by Wenson Hsieh.
Source/WebCore:
- dom/Position.h:
Source/WebKit:
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext): Add a bit indicating whether the forced I-beam for editable contexts should be used or not, based on whether it is adjacent to (or immediately over) a replaced element.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256005 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256280] by
-
- 6 edits1 add in branches/safari-609-branch
Cherry-pick r256000. rdar://problem/59299326
WebPage::rangeForGranularityAtPoint always returns null in the case of CharacterGranularity
https://bugs.webkit.org/show_bug.cgi?id=207350
<rdar://problem/59239914>
Reviewed by Tim Horton.
Source/WebKit:
Handle the character granularity case in
WebPage::rangeForGranularityAtPoint
by just returning a collapsed
Range. Certain internal clients will have a need to place and update the text selection using character
granularity; see radar for more details.
Test: UIWKInteractionViewProtocol.SelectTextWithCharacterGranularity
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView supportsTextSelectionWithCharacterGranularity]):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::rangeForGranularityAtPoint):
Tools:
Add a test to exercise the corner case in the SPI.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/UIWKInteractionViewProtocol.mm: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256000 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256279] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255989. rdar://problem/59298187
REGRESSION (r254706): Crash under WebProcessPool::terminateServiceWorkerProcess()
https://bugs.webkit.org/show_bug.cgi?id=207354
<rdar://problem/59184818>
Reviewed by Geoffrey Garen.
No new tests, not easily testable AFAIK since this happens on failure to send sync IPC to
the service worker when terminating it.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::terminateServiceWorkerProcess): 'auto' resolved to 'WeakPtr<WebProcessProxy>' in this method and the call to disableServiceWorkers() could cause the process to get destroyed. We would then do a null dereference on the next line.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255989 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256278] by
-
- 5 edits in branches/safari-609-branch
Cherry-pick r255982. rdar://problem/59298167
Web Inspector: REGRESSION(r249831): Sources: endless spinner when trying to view a resource
https://bugs.webkit.org/show_bug.cgi?id=207346
<rdar://problem/59209016>
Reviewed by Timothy Hatcher.
Source/WebInspectorUI:
- UserInterface/Workers/Formatter/HTMLParser.js: (HTMLParser.prototype._parseAttr): Attributes are allowed to contain "/". https://html.spec.whatwg.org/multipage/parsing.html#before-attribute-value-state
LayoutTests:
- inspector/formatting/resources/html-tests/attributes.html:
- inspector/formatting/resources/html-tests/attributes-expected.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255982 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256277] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255908. rdar://problem/59298159
Crash when printing at WebCore: WebCore::FrameView::paintContents
<https://webkit.org/b/207313>
<rdar://problem/56675778>
Reviewed by Brent Fulgham.
- page/PrintContext.cpp: (WebCore::PrintContext::spoolPage): (WebCore::PrintContext::spoolRect):
- Add nullptr check for frame.view(). This matches similar checks in other methods.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255908 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256276] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255879. rdar://problem/59299329
[macCatalyst] Incorrect IBeam cursor when selecting text on Wikipedia
https://bugs.webkit.org/show_bug.cgi?id=207299
<rdar://problem/59200545>
Reviewed by Tim Horton.
After r255827, if EventHandler selects an IBeam cursor at the position information request location, we will
always attempt to show a caret at that location, whose height is the height of the editing caret for that
visible position. However, this means that:
- It's possible for the caret to be incorrectly sized if the caret is before a large replaced element, such as
a table. Since the request location is also outside of any line rect, it doesn't make sense to use the caret
height for the height of the cursor. Instead, fall back to computed line height. This fixes an issue on
en.wikipedia.org where the line rect would sometimes update to an enormous size when selecting text, since
the caret would temporarily hover over an editing position that is before a large table.
- This fallback path completely negates certain cursor behaviors; partially restore this behavior by making it
so that in the case where the cursor is in editable content and the line caret first line from the top of
the hit-tested node already contains the request point, don't bother trying to recenter the line rect to be
right over the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255879 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256275] by
-
- 6 edits in branches/safari-609-branch/Source
Cherry-pick r255874. rdar://problem/59298178
[iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
https://bugs.webkit.org/show_bug.cgi?id=207279
<rdar://problem/59030957>
Source/WebKit:
Reviewed by Brent Fulgham.
Do not create sandbox reports when the UI process cannot issue mach extensions to the diagnostics service.
The majority of clients are capable of doing this.
No new tests, since it is not trivial to test if no sandbox reports are generated for a violation.
- Shared/Cocoa/SandboxExtensionCocoa.mm: (WebKit::SandboxExtensionImpl::create): (WebKit::SandboxExtensionImpl::sandboxExtensionForType): (WebKit::SandboxExtensionImpl::SandboxExtensionImpl): (WebKit::SandboxExtension::createHandleForMachLookup):
- Shared/SandboxExtension.h:
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess):
Source/WTF:
Reviewed by Brent Fulgham.
Add flag which avoids generating sandbox reports.
- wtf/spi/darwin/SandboxSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255874 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256274] by
-
- 2 edits in branches/safari-609-branch/Tools
Cherry-pick r255863. rdar://problem/59299151
Unreviewed build fix after r255846.
- TestWebKitAPI/cocoa/HTTPServer.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255863 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256273] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255848. rdar://problem/59298190
[IPC Hardening] Protect against bad RegistrableDomain under WebProcessProxy::didCollectPrewarmInformation()
https://bugs.webkit.org/show_bug.cgi?id=207281
<rdar://problem/55318108>
Reviewed by Geoffrey Garen.
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didCollectPrewarmInformation):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255848 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256272] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255827. rdar://problem/59299345
[macCatalyst] IBeam cursor doesn't show up when hovering over text form controls prior to editing
https://bugs.webkit.org/show_bug.cgi?id=207268
<rdar://problem/59188152>
Reviewed by Tim Horton.
On macCatalyst, when hovering over textareas and input fields that have not been edited yet, the cursor fails to
change to an IBeam and instead falls back to the default style. Even thoughEventHandler::selectCursor()
returnsIBeam
, we end up not actually using an IBeam because the position information'slineCaretExtent
is
an empty rect, which means the caret height is 0 and, more importantly, the line rect will not contain the
request point.
The line rect is empty in text fields that have not been edited yet because the form control's inner plaintext
contenteditable div (embedded in the shadow root) does not contain any child renderers with a non-zero height.
Even if it did, however, the element may still be much taller than the combined height of the inner div's
children, so the line rect may still not contain the position information request point (this is most easily
noticeable when focusing a textarea, typing a few letters, and then moving the cursor to near the bottom of the
textarea element).
To fix this, add a fallback path for the scenario where we want to show an IBeam, but fail to find line rects
that contain the request point. Instead, we still show an IBeam, but simply fake the lineCaretExtent to be an
element-wide rect that is the height of the caret, and is also vertically centered about the request point.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::populateCaretContext):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256271] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255814. rdar://problem/59298180
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256270] by
-
- 3 edits2 adds in branches/safari-609-branch
Cherry-pick r255810. rdar://problem/59298154
[Web Animations] Canceling an accelerated animation before it was committed does not prevent it from playing
https://bugs.webkit.org/show_bug.cgi?id=207253
<rdar://problem/59143624>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-canceled-before-commit.html
Merely checking whether an accelerated animation is running prior to enqueuing an action to cancel it is not sufficient
since there could be an uncommitted change to start it upon the next animation frame. The same logic would need to apply
in other situations where the playback state changes for a potentially in-flight animation.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::animationDidSeek): (WebCore::KeyframeEffect::animationWasCanceled): (WebCore::KeyframeEffect::willChangeRenderer): (WebCore::KeyframeEffect::animationSuspensionStateDidChange):
LayoutTests:
Add a new test that checks that an accelerated animation that has been enqueued to start but has
not yet been committed is correctly canceled when the cancel() method is called. This test fails
prior to this source change.
- webanimations/accelerated-animation-canceled-before-commit-expected.html: Added.
- webanimations/accelerated-animation-canceled-before-commit.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255810 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256269] by
-
- 4 edits2 adds in branches/safari-609-branch
Cherry-pick r255786. rdar://problem/59298135
REGRESSION (r251320): Can't double tap to select word in Notes on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=207239
<rdar://problem/58686015>
Reviewed by Tim Horton.
Source/WebKit:
Following r251320, all synthetic mouse events on iOS additionally dispatched corresponding pointer events. This
led to duplicate "pointerdown"/"pointerup" events dispatched with every tap. r253878 fixed this by avoiding
pointer event dispatch for synthetically generated mouse events (and made this determination by consulting
syntheticClickType()
).
However, in the case where we're synthesizing a mouse event for a "dblclick" event handler (after a double-
tap), we currently passNoTap
as the synthetic click event type when creating the mouse event. This causes
additional pointer events to be synthesized and dispatched during a double tap, which creates three pairs of
"pointerdown"/"pointerup" events upon double-tap. This subsequently confuses iCloud Notes' web app when double
tapping to select a word.
Fix this by passing in
OneFingerTap
as the synthetic click type instead (since two-finger double taps should
already be handled by the two-finger double-tap magnification gesture).
Test: pointerevents/ios/pointer-events-for-double-tap.html
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::handleDoubleTapForDoubleClickAtPoint):
LayoutTests:
Add a test to verify that performing a double tap on an element with a dblclick handler results in the following
sequence of events:[ "pointerdown", "pointerup", "pointerdown", "pointerup", "dblclick" ]
.
- pointerevents/ios/pointer-events-for-double-tap-expected.txt: Added.
- pointerevents/ios/pointer-events-for-double-tap.html: Added.
- pointerevents/utils.js: (const.ui.new.UIController.prototype.doubleTap):
Add a helper method to simulate a double-tap gesture.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255786 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256268] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255710. rdar://problem/59299340
macCatalyst: Shouldn't get text cursor on checkboxes
https://bugs.webkit.org/show_bug.cgi?id=207234
<rdar://problem/59155917>
Reviewed by Wenson Hsieh.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::canForceCaretForPosition): (WebKit::populateCaretContext): (WebKit::lineCaretExtent): Deleted. The I-beam forcing code was a bit too aggressive; it should consider the style of the node that it ends up finding after searching, not just assume it wants an I-beam because it's "texty".
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256267] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255705. rdar://problem/59298180
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255705 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256266] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255691. rdar://problem/59299315
[macCatalyst] Missing custom cursors in subframes that are offset from the origin of the root view
https://bugs.webkit.org/show_bug.cgi?id=207215
<rdar://problem/59157625>
Reviewed by Tim Horton.
<https://trac.webkit.org/r255046> added support for custom cursor styles when hovering over subframes. However,
we currently try to hit-test content in the subframe using the interaction information request's point, which is
in root view coordinates; as such, we only get the correct custom cursor styles when hovering over elements in a
subframe, if the subframe is also at the origin of the root view.
To fix this, simply convert from root view coordinates to frame coordinates when performing the hit-test.
Unfortunately, this change is currently untestable; see <rdar://problem/59158410>.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::lineCaretExtent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255691 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256265] by
-
- 21 edits in branches/safari-609-branch/Source
Cherry-pick r255681. rdar://problem/59298166
NetworkProcess should be notified by UIProcess when its service worker process connection should be on
https://bugs.webkit.org/show_bug.cgi?id=207122
<rdar://problem/59089780>
Reviewed by Chris Dumez.
Source/WebCore:
Add a completion handler to the create context connection callback.
This is called when the context connection should have been created.
In case there is a context connection, completion handler does nothing.
Otherwise, SWServer will retry creating a context connection if needed.
The pending connection map entry is now removed in the completion handler instead of addContextConnection.
This ensures that only one connection request is sent by network process at a time.
Add extra logging to monitor creation of a context connection.
- workers/service/context/SWContextManager.h:
- workers/service/server/SWServer.cpp: (WebCore::SWServer::addContextConnection): (WebCore::SWServer::removeContextConnection): (WebCore::SWServer::createContextConnectionFinished):
- workers/service/server/SWServer.h:
Source/WebKit:
Add completion handlers to the messaging from NetworkProcess -> UIProcess -> WebProcess -> NetworkProcess
used to create a service worker context connection.
This allows NetworkProcess to ask again for a connection if the connection is still needed but NetworkProcess did not find the context connection.
This is difficult to test since we would need for the process selected to host service workers to exit between the
time it is selected and the time it sends the message to Networking process.
To ensure that the context connection is created by WebProcess, WebProcessProxy takes a background assertion until WebProcess finishes
creating the context connection to Network process.
- NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::establishSWContextConnection):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::swServerForSession):
- NetworkProcess/NetworkProcess.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::establishServiceWorkerContext):
- UIProcess/WebProcessProxy.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::m_userAgent): (WebKit::WebSWContextManagerConnection::establishConnection):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255681 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256264] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r255680. rdar://problem/59298160
Check for callback being null in Notification.requestPermission
https://bugs.webkit.org/show_bug.cgi?id=207192
<rdar://problem/59130804>
Reviewed by Chris Dumez.
Source/WebCore:
Covered by updated test.
- Modules/notifications/Notification.cpp: (WebCore::Notification::requestPermission): Callback can be null if no function is given to requestPermission. Check this before calling the callback.
LayoutTests:
- http/tests/notifications/notification-in-non-secure-context.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256263] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255679. rdar://problem/59298180
Unreviewed, follow-up assertion fix after r255662.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:25 PM Changeset in webkit [256262] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255677. rdar://problem/59299115
REGRESSION(r255595): page not closed after beforeunload handler returns true
https://bugs.webkit.org/show_bug.cgi?id=207189
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2020-02-04
Reviewed by Chris Dumez.
We are assuming the try close did timeout in that case, because the timer is stopped before running the
beforeunload dialog.
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel): Start the try close timer again when the beforeunload dialog replies.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255677 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256261] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255664. rdar://problem/59299338
Add a WebKitAdditions hook to provide additional customizations to UIDragInteraction
https://bugs.webkit.org/show_bug.cgi?id=207177
<rdar://problem/59121266>
Reviewed by Tim Horton.
Add a WebKitAdditions extension point that runs immediately after setting up UIDragInteraction and
UIDropInteraction.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupDragAndDropInteractions]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255664 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256260] by
-
- 9 edits2 adds in branches/safari-609-branch
Cherry-pick r255663. rdar://problem/59299135
Accelerated animations freeze on render tree rebuild
https://bugs.webkit.org/show_bug.cgi?id=201048
<rdar://problem/54612621>
Reviewed by Antoine Quint.
Source/WebCore:
If there is an accelerated animation in progress for a renderer and the render tree is rebuild the animation
does not continue with the new renderer.
To fix, make sure that the animation leaves the accelerated state when the renderer is removed. The new renderer
will then become accelerated automatically.
Original test case by Tim Guan-tin Chien.
Test: webanimations/accelerated-animation-renderer-change.html
- animation/AnimationTimeline.cpp: (WebCore::AnimationTimeline::willChangeRendererForElement):
- animation/AnimationTimeline.h:
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::willChangeRenderer):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp: (WebCore::WebAnimation::willChangeRenderer):
- animation/WebAnimation.h:
- rendering/updating/RenderTreeUpdater.cpp: (WebCore::RenderTreeUpdater::tearDownRenderers):
LayoutTests:
- webanimations/accelerated-animation-renderer-change-expected.html: Added.
- webanimations/accelerated-animation-renderer-change.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255663 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256259] by
-
- 5 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255662. rdar://problem/59298180
Stop relying on ResponsivenessTimer to keep the WebProcess from suspending during initialization
https://bugs.webkit.org/show_bug.cgi?id=207144
Reviewed by Brady Eidson.
Stop relying on ResponsivenessTimer to keep the WebProcess from suspending during initialization. Instead, make the
WebProcess::InitializeWebProcess IPC async with a reply and take a process assertion on behalf of the WebContent
process until we get a response back.
This avoids sending an extra WebProcess::MainThreadPing IPC to the WebProcess for no reason (since we're already
sending the WebProcess::InitializeWebProcess IPC) and this is also more reliable since the ResponsivenessTimer can
actually time out and cause the process to get suspended during initialization still.
- UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::initializeNewWebProcess):
- WebProcess/WebProcess.cpp: (WebKit::WebProcess::initializeWebProcess):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255662 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256258] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255658. rdar://problem/59299333
Unreviewed, fix the internal build after <rdar://problem/59132944>
- UIProcess/ios/WKContentViewInteraction.h: Declare this helper in the header, now that it's consulted by some WebKitAdditions code.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255658 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256257] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255625. rdar://problem/59299317
Add a WebKitAdditions hook to override the behavior of -[WKContentView gestureRecognizer:shouldReceiveTouch:]
https://bugs.webkit.org/show_bug.cgi?id=207162
<rdar://problem/59129739>
Reviewed by Tim Horton.
Allow an internal implementation of
-_allowGestureRecognizer:toReceiveTouch:
to prevent touches from being
routed to certain gesture recognizers, if necessary.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255625 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256256] by
-
- 4 edits in branches/safari-609-branch/Source
Cherry-pick r255615. rdar://problem/59298181
Crash in WebCore::IDBServer::IDBServer::createIndex
https://bugs.webkit.org/show_bug.cgi?id=207137
<rdar://problem/59096231>
Reviewed by Darin Adler.
Source/WebCore:
Export IDBIndexInfo::isolatedCopy so it can be used in WebKitLegacy framework code.
- Modules/indexeddb/shared/IDBIndexInfo.h:
Source/WebKitLegacy:
- Storage/InProcessIDBServer.cpp: (InProcessIDBServer::createIndex): Create an isolated copy of IDBIndexInfo before passing it to IDB thread.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255615 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256255] by
-
- 6 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255610. rdar://problem/59298157
[WK2] Use per-UIProcess default cookie storage for Mac Catalyst apps
https://bugs.webkit.org/show_bug.cgi?id=207139
<rdar://problem/59047014>
Reviewed by Brent Fulgham.
Use per-UIProcess default cookie storage for Mac Catalyst apps, similarly to what
we do for regular macOS apps.
- NetworkProcess/NetworkProcess.h:
- NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
- NetworkProcess/NetworkProcessCreationParameters.h:
- NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeNetworkProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256254] by
-
- 6 edits2 adds in branches/safari-609-branch
Cherry-pick r255603. rdar://problem/59299321
[iOS 13] Dragging on-screen volume control on a YouTube video selects text around the panel
https://bugs.webkit.org/show_bug.cgi?id=207140
<rdar://problem/58852938>
Reviewed by Tim Horton.
Source/WebKit:
This bug occurs on iPadOS when long pressing the volume controls on the desktop version of YouTube, and then
performing a pan gesture; this activates the highlight text selection gesture recognizer added in iOS 13,
causing text to be selected while adjusting the volume using these custom controls. On macOS, we avoid this
becauseNode::canStartSelection()
returnsfalse
, due to a container node having bothuser-drag: element
anduser-select: none
; in this scenario, we allow dragging to take precendence over text selection, so the
volume slider can be moved using a mouse without simultaneously selecting text.
This logic is currently absent on iOS, where UIKit text interaction gesture recognizers ask us for information
about the DOM at given locations, and we determine whether to allow text interaction gestures (such as long
pressing) to begin in-textInteractionGesture:shouldBeginAtPoint:
and-hasSelectablePositionAtPoint:
.
Ideally, we'd want to eventually unify these two codepaths for triggering text selection (and preferably just
have both go through EventHandler); in lieu of this, simply make the iOS codepath behave a little more like
macOS by adding a bit to allow text interaction gestures to bail in the case where at least one container of the
hit-tested element is both draggable and unselectable.
Test: editing/selection/ios/prefer-drag-over-text-selection.html
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm: (WebKit::InteractionInformationAtPosition::encode const): (WebKit::InteractionInformationAtPosition::decode):
Add the new bit to InteractionInformationAtPosition.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
Avoid beginning text selection if the bit is set.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::selectionPositionInformation):
Move a comment about the ">= 97% of the document's visible area" heuristic next to the relevant code, and also
leave a FIXME mentioning that we should reconsider whether this is really needed; it seems that this was
originally intended to avoid ending up with an excessively large block selection, but block selection has been
removed entirely since iOS 12. That said, this logic may still be helping avoid situations where the text
selection is too aggressive on iOS and ends up selecting too much text.
LayoutTests:
Add a layout test to verify that we don't allow text selection gestures inside of containers that have both
user-drag: element
anduser-select: none
.
- editing/selection/ios/prefer-drag-over-text-selection-expected.txt: Added.
- editing/selection/ios/prefer-drag-over-text-selection.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255603 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256253] by
-
- 6 edits4 adds in branches/safari-609-branch
Cherry-pick r255593. rdar://problem/59298189
[Web Animations] Accelerated animations don't run until their natural completion
https://bugs.webkit.org/show_bug.cgi?id=207130
<rdar://problem/59106047>
Reviewed by Dean Jackson.
Source/WebCore:
Tests: webanimations/transform-accelerated-animation-finishes-before-removal.html
webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html
Ensure we don't tear down a composited renderer until all of its runnning accelerated animations are completed.
The accelerated animations will be queued for removal in the next animation frame.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::isRunningAcceleratedAnimationForProperty const):
- animation/KeyframeEffect.h:
- animation/KeyframeEffectStack.cpp: (WebCore::KeyframeEffectStack::isCurrentlyAffectingProperty const):
LayoutTests:
Add two new tests that ensures that an accelerated animation still yields compositing on an element when
its finished promise is resolved, but that it's no longer the case on the next frame.
This required an existing test to be updated to wait until the next frame before checking the composited
status of an element on which an animation had just completed.
- compositing/geometry/limit-layer-bounds-opacity-transition.html:
- webanimations/transform-accelerated-animation-finishes-before-removal-expected.txt: Added.
- webanimations/transform-accelerated-animation-finishes-before-removal.html: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise-expected.txt: Added.
- webanimations/transform-accelerated-animation-removed-one-frame-after-finished-promise.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256252] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255586. rdar://problem/59298164
Replace the custom allocator in AudioArray::allocate() with fastAlignedMalloc().
https://bugs.webkit.org/show_bug.cgi?id=206504
Reviewed by Filip Pizlo.
AudioArray wants to have its data aligned at 16-byte boundaries, as that's a requirement for
some of the accelerated math frameworks used by Web Audio. Now that we have fastAlignedMalloc(),
there's no need to use a custom aligned allocator.
Drive-by fixes: clean up the constructors a bit to use the modern initialization syntax.
- platform/audio/AudioArray.h: (WebCore::AudioArray::AudioArray): (WebCore::AudioArray::~AudioArray): (WebCore::AudioArray::allocate): (WebCore::AudioArray::data): (WebCore::AudioArray::data const): (WebCore::AudioArray::alignedAddress): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256251] by
-
- 4 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255582. rdar://problem/59298188
[ macOS wk2 ] http/tests/media/media-stream/get-display-media-prompt.html is flaky failure
https://bugs.webkit.org/show_bug.cgi?id=206958
<rdar://problem/59003765>
Reviewed by Eric Carlson.
We added a rule to only allow one getDisplayMedia call per gesture.
For that reason, we were storing a pointer to the gesture event and
resetting in case the current gesture event was equal to the stored pointer.
Instead, store a WeakPtr which ensures that if the previous event is destroyed,
the weak pointer will be null and so will not have the same value as the new gesture event.
Covered by existing tests no longer being flaky.
- Modules/mediastream/MediaDevices.cpp: (WebCore::MediaDevices::computeUserGesturePriviledge):
- Modules/mediastream/MediaDevices.h:
- dom/UserGestureIndicator.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255582 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256250] by
-
- 8 edits in branches/safari-609-branch/Source
Cherry-pick r255581. rdar://problem/59298169
[macOS] AirPlay sometimes stops after 60 minutes of playback
https://bugs.webkit.org/show_bug.cgi?id=207056
Source/WebCore:
<rdar://problem/53649508>
Reviewed by Jer Noble.
No new tests, this only reproduces when playing to an AirPlay device.
AVPlayerItem.tracks is empty during AirPlay. If AirPlay is activated immediately
after the item is created, as is typically the case when switching from an MSE to
a url based player, MediaPlayerPrivateAVFoundationObjC doesn't know if the AVPlayerItem
has audio or video so the state reported to the WebMediaSessionManager is incorrect.
AirPlay can't actually be active if an item doesn't have audio or video, so always claim
to have both during AirPlay.
Converted WebMediaSessionManager logging from debug-only to runtime to make it easier
to diagnose problems in the future.
- Modules/mediasession/WebMediaSessionManager.cpp: (WebCore::mediaProducerStateString): (WebCore::WebMediaSessionLogger::create): (WebCore::WebMediaSessionLogger::WebMediaSessionLogger): (WebCore::WebMediaSessionLogger::log const): (WebCore::WebMediaSessionManager::logger): (WebCore::WebMediaSessionManager::alwaysOnLoggingAllowed const): (WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerEnabled): (WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerState): (WebCore::WebMediaSessionManager::mockMediaPlaybackTargetPickerDismissPopup): (WebCore::WebMediaSessionManager::addPlaybackTargetPickerClient): (WebCore::WebMediaSessionManager::removePlaybackTargetPickerClient): (WebCore::WebMediaSessionManager::removeAllPlaybackTargetPickerClients): (WebCore::WebMediaSessionManager::showPlaybackTargetPicker): (WebCore::WebMediaSessionManager::clientStateDidChange): (WebCore::WebMediaSessionManager::setPlaybackTarget): (WebCore::WebMediaSessionManager::externalOutputDeviceAvailableDidChange): (WebCore::WebMediaSessionManager::playbackTargetPickerWasDismissed): (WebCore::WebMediaSessionManager::configurePlaybackTargetClients): (WebCore::WebMediaSessionManager::configurePlaybackTargetMonitoring): (WebCore::WebMediaSessionManager::configureWatchdogTimer): (WebCore::WebMediaSessionManager::watchdogTimerFired): (WebCore::ClientState::logAlways const): Deleted.
- Modules/mediasession/WebMediaSessionManager.h:
- Modules/mediasession/WebMediaSessionManagerClient.h: (WebCore::WebMediaSessionManagerClient::alwaysOnLoggingAllowed):
- html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::mediaState const):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: (WebCore::MediaPlayerPrivateAVFoundationObjC::hasVideo const): (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAudio const):
Source/WebKit:
Reviewed by Jer Noble.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256249] by
-
- 4 edits in branches/safari-609-branch
Cherry-pick r255552. rdar://problem/59298191
ASSERTION FAILED: !HashTranslator::equal(KeyTraits::emptyValue(), key) on animations/keyframe-autoclose-brace.html
https://bugs.webkit.org/show_bug.cgi?id=207071
<rdar://problem/59076249>
Patch by Antoine Quint <Antoine Quint> on 2020-02-02
Reviewed by Dean Jackson.
Source/WebCore:
We cannot add CSSPropertyInvalid to a HashSet<CSSPropertyID>, because it triggers an ASSERT, and also we shouldn't
because we wouldn't know how to animate that CSS property.
- animation/AnimationTimeline.cpp: (WebCore::compileTransitionPropertiesInStyle):
LayoutTests:
The crash is fixed, we can start running the test as expected again.
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255552 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256248] by
-
- 2 edits in branches/safari-609-branch/Source/JavaScriptCore
Cherry-pick r255539. rdar://problem/59299142
GetButterfly should check if the input value is an object in safe to execute
https://bugs.webkit.org/show_bug.cgi?id=207082
Reviewed by Mark Lam.
We can only hoist GetButterfly when we know the incoming value is an object.
We might want to reconsider making GetButterfly use ObjectUse as its edge
kind, but that's out of the scope of this patch. Currently, we use CellUse
for GetButterfly node's child1.
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255539 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256247] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255527. rdar://problem/59299116
Unreviewed build fix after r255522.
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): Switched to a C-style cast.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255527 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256246] by
-
- 2 edits in branches/safari-609-branch/LayoutTests
Cherry-pick r255525. rdar://problem/59298191
[ iOS Debug wk2 ] animations/keyframe-autoclose-brace.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207071
Unreviewed test gardening.
Patch by Jason Lawrence <Jason_Lawrence> on 2020-01-31
- platform/ipad/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255525 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256245] by
-
- 22 edits in branches/safari-609-branch
Cherry-pick r255522. rdar://problem/59299116
Add KVO SPI WKWebView._negotiatedLegacyTLS
https://bugs.webkit.org/show_bug.cgi?id=207067
Patch by Alex Christensen <achristensen@webkit.org> on 2020-01-31
Reviewed by Andy Estes.
Source/WebKit:
Covered by API tests.
- NetworkProcess/NetworkDataTask.cpp: (WebKit::NetworkDataTask::negotiatedLegacyTLS const):
- NetworkProcess/NetworkDataTask.h: (WebKit::NetworkDataTaskClient::negotiatedLegacyTLS const):
- NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::negotiatedLegacyTLS const):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
- Shared/Authentication/AuthenticationManager.cpp: (WebKit::AuthenticationManager::negotiatedLegacyTLS const):
- Shared/Authentication/AuthenticationManager.h:
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _negotiatedLegacyTLS]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/Cocoa/NavigationState.h:
- UIProcess/Cocoa/NavigationState.mm: (WebKit::NavigationState::willChangeNegotiatedLegacyTLS): (WebKit::NavigationState::didChangeNegotiatedLegacyTLS):
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::negotiatedLegacyTLS):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/PageLoadState.cpp: (WebKit::PageLoadState::commitChanges): (WebKit::PageLoadState::hasNegotiatedLegacyTLS const): (WebKit::PageLoadState::negotiatedLegacyTLS): (WebKit::PageLoadState::didCommitLoad):
- UIProcess/PageLoadState.h: (WebKit::PageLoadState::Observer::willChangeNegotiatedLegacyTLS): (WebKit::PageLoadState::Observer::didChangeNegotiatedLegacyTLS): (WebKit::PageLoadState::Data::Data): Deleted.
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm: (-[TLSObserver observeValueForKeyPath:ofObject:change:context:]): (-[TLSObserver waitUntilNegotiatedLegacyTLSChanged]): (TestWebKitAPI::TEST):
- TestWebKitAPI/config.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255522 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:24 PM Changeset in webkit [256244] by
-
- 2 edits in branches/safari-609-branch/Source/WebKit
Cherry-pick r255438. rdar://problem/59299136
Disable Service Workers before terminating an unresponsive service worker process
https://bugs.webkit.org/show_bug.cgi?id=206994
Reviewed by Chris Dumez.
In case a process becomes unresponsive, we terminate it in case it is a service worker process.
In that case, we should make sure not to call the service worker process crash callback.
To do so, disable service workers before terminating the IPC connection.
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::didBecomeUnresponsive):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255438 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:23 PM Changeset in webkit [256243] by
-
- 2 edits in branches/safari-609-branch/Source/WebCore
Cherry-pick r255898. rdar://problem/59298172
Unreviewed build fix for Windows ports since r255875
https://bugs.webkit.org/show_bug.cgi?id=207073
<rdar://problem/59168065>
WEBCORE_TESTSUPPORT_EXPORT should be used only for WebCoreTestSupport, not for WebCore
See also Bug 203876.
- storage/StorageNamespaceProvider.h: Replaced WEBCORE_TESTSUPPORT_EXPORT with WEBCORE_EXPORT.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255898 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:23 PM Changeset in webkit [256242] by
-
- 15 edits3 adds in branches/safari-609-branch
Cherry-pick r255875. rdar://problem/59298172
Regression(r248734) StorageAreaMap objects are getting leaked
https://bugs.webkit.org/show_bug.cgi?id=207073
<rdar://problem/59168065>
Reviewed by Darin Adler.
Source/WebCore:
Add test infrastructure for testing this change.
Test: http/tests/storage/storage-map-leaking.html
- storage/StorageNamespace.h: (WebCore::StorageNamespace::storageAreaMapCountForTesting const):
- storage/StorageNamespaceProvider.h:
- testing/Internals.cpp: (WebCore::Internals::storageAreaMapCount const):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Make sure that StorageAreaMap objects are getting removed from the HashMap
in StorageNamespaceImpl, once they no longer have any users.
- WebProcess/WebStorage/StorageAreaImpl.cpp: (WebKit::StorageAreaImpl::StorageAreaImpl): (WebKit::StorageAreaImpl::~StorageAreaImpl):
- WebProcess/WebStorage/StorageAreaMap.cpp: (WebKit::StorageAreaMap::incrementUseCount): (WebKit::StorageAreaMap::decrementUseCount):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageNamespaceImpl.cpp: (WebKit::StorageNamespaceImpl::destroyStorageAreaMap): (WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap): Deleted.
- WebProcess/WebStorage/StorageNamespaceImpl.h: (WebKit::StorageNamespaceImpl::storageType const): Deleted. (WebKit::StorageNamespaceImpl::storageNamespaceID const): Deleted. (WebKit::StorageNamespaceImpl::topLevelOrigin const): Deleted. (WebKit::StorageNamespaceImpl::quotaInBytes const): Deleted.
LayoutTests:
Add layout test coverage.
- TestExpectations:
- http/tests/storage/resources/storage-map-leaking-iframe.html: Added.
- http/tests/storage/storage-map-leaking-expected.txt: Added.
- http/tests/storage/storage-map-leaking.html: Added.
- platform/wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:23 PM Changeset in webkit [256241] by
-
- 8 edits in branches/safari-609-branch/Source
Versioning.
- 10:08 PM Changeset in webkit [256240] by
-
- 4 edits1 add in branches/safari-610.1.3-branch
Cherry-pick r256234. rdar://problem/59336307
[iOS] Crash when granting access to asset services
https://bugs.webkit.org/show_bug.cgi?id=207520
Source/WebKit:
<rdar://problem/59321848>
Reviewed by Brent Fulgham.
Pass correct handle when calling SandboxExtension::createHandleForMachLookup.
API test: WebKit.GrantAccessToMobileAssetsCrash
- UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::grantAccessToAssetServices):
Tools:
Reviewed by Brent Fulgham.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/GrantAccessToMobileAssets.mm: Added. (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256234 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:08 PM Changeset in webkit [256239] by
-
- 2 edits in branches/safari-610.1.3-branch/Source/WebCore
Cherry-pick r256228. rdar://problem/59336278
[iOS] REGRESSION (r255592): The simulated mouse event dispatch quirk should not be on by default
https://bugs.webkit.org/show_bug.cgi?id=207513
<rdar://problem/59326119>
Reviewed by Tim Horton.
Turn
shouldDispatchSimulatedMouseEvents
back off by default (r255592 enabled it by default on all web pages).
- page/Quirks.cpp: (WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:35 PM Changeset in webkit [256238] by
-
- 6 edits in trunk/Source/WebKit
[WebAuthn] Move the async code from WebAuthenticationPanelClient to AuthenticatorManager
https://bugs.webkit.org/show_bug.cgi?id=206248
Reviewed by Alex Christensen.
No change of behaviors.
- UIProcess/API/APIWebAuthenticationPanelClient.h:
(API::WebAuthenticationPanelClient::selectAssertionResponse const):
- UIProcess/WebAuthentication/AuthenticatorManager.cpp:
(WebKit::AuthenticatorManager::serviceStatusUpdated):
(WebKit::AuthenticatorManager::authenticatorStatusUpdated):
(WebKit::AuthenticatorManager::requestPin):
(WebKit::AuthenticatorManager::selectAssertionResponse):
(WebKit::AuthenticatorManager::runPanel):
(WebKit::AuthenticatorManager::invokePendingCompletionHandler):
(WebKit::AuthenticatorManager::dispatchPanelClientCall const):
- UIProcess/WebAuthentication/AuthenticatorManager.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
- UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:
(WebKit::WebAuthenticationPanelClient::updatePanel const):
(WebKit::WebAuthenticationPanelClient::dismissPanel const):
(WebKit::WebAuthenticationPanelClient::requestPin const):
(WebKit::WebAuthenticationPanelClient::selectAssertionResponse const):
- 7:32 PM Changeset in webkit [256237] by
-
- 2 edits in trunk/Tools
TestWebKitAPI: Support ClipboardTests.ReadMultipleItems on Catalyst
https://bugs.webkit.org/show_bug.cgi?id=207501
<rdar://problem/59323414>
Reviewed by Alex Christensen.
- TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:
(writeMultipleObjectsToPlatformPasteboard): All iOS family ports should have
The same behavior.
- 6:18 PM Changeset in webkit [256236] by
-
- 12 edits1 add in trunk
Add a variant of -[WKWebViewPrivate _getContentsAsStringWithCompletionHandler:] that includes contents from subframes
https://bugs.webkit.org/show_bug.cgi?id=207352
<rdar://problem/59115798>
Patch by Alan Sien Wei Hshieh <hshieh@apple.com> on 2020-02-10
Reviewed by Alex Christensen.
Source/WebKit:
A number of intelligence features like Spotlight rely on -_getContentsAsStringWithCompletionHandler:. However, this
method does not return content strings for subframes. This means that Spotlight and others are not able to get
text for things like AMP pages, that live in subframes. -_getContentsAsStringWithCompletionHandler: has clients outside
of just intelligence features, and we don't want to wholesale change their behavior. As a result, introduce a new
-_getContentsAsStringInAllFrames:withCompletionHandler: which clients can adopt as necessary. Providing NO for the first
parameter allows clients to get the same contents as -_getContentsAsStringWithCompletionHandler:. Otherwise, we enumerate
all subframes and extract text from there. Finally, append a test for getting stuff out of frames.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _getContentsAsStringWithCompletionHandler:]):
(-[WKWebView _getContentsOfAllFramesAsStringWithCompletionHandler:]): Call the new function to extract contents from all
frames.
- UIProcess/API/Cocoa/WKWebViewPrivate.h: Expose a new SPI for clients.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getContentsAsStringInAllFrames): Piping. This emulates what getContentsAsString() does.
- UIProcess/WebPageProxy.h: Expose new method.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsString): Augment to take a flag saying whether or not we want to extract
from all frames. If we do, iterate over all the frames and get their content strings, appending two
new lines in the middle.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in: Piping.
- Shared/ContentAsStringIncludesChildFrames.h: Add a new header to expose an enum.
Tools:
Add a test to exercise the new SPI.
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewGetContents.mm: Add a test for getting text from all frames with
a webpage that contains text in subframes.
- 6:08 PM Changeset in webkit [256235] by
-
- 6 edits in trunk/LayoutTests
REGRESSION: (253807) [ macOS iOS ] storage/indexeddb/intversion-long-queue-private.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=206965
<rdar://problem/59005652>
Reviewed by Ryosuke Niwa.
Modify a test to make it less flaky. Based on our current implementation, there is no guarantee that Block event on
delete request would be fired before Complete event on transaction from connection2 in this test. The events
sequence we are sure are:
- UpgradeNeeded event on openRequest2 -> VersionChange event on connection2 -> Complete event on VersionChange
transaction on connection2 -> Success event on openRequest2.
- VersionChange event on connection2 -> Block event on delete request.
Therefore I am changing the test to ensure sequence 1.
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- storage/indexeddb/intversion-long-queue-expected.txt:
- storage/indexeddb/intversion-long-queue-private-expected.txt:
- storage/indexeddb/resources/intversion-long-queue.js:
(connection2Blocked):
(connection2UpgradeNeeded):
(connection2VersionChangeCallback):
(deleteDatabaseBlockedCallback): Deleted.
- 5:46 PM Changeset in webkit [256234] by
-
- 4 edits1 add in trunk
[iOS] Crash when granting access to asset services
https://bugs.webkit.org/show_bug.cgi?id=207520
Source/WebKit:
<rdar://problem/59321848>
Reviewed by Brent Fulgham.
Pass correct handle when calling SandboxExtension::createHandleForMachLookup.
API test: WebKit.GrantAccessToMobileAssetsCrash
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::grantAccessToAssetServices):
Tools:
Reviewed by Brent Fulgham.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/GrantAccessToMobileAssets.mm: Added.
(TEST):
- 5:13 PM Changeset in webkit [256233] by
-
- 2 edits in trunk/Source/WebKit
WebKit::WebProcessPool::initializeClassesForParameterCoding() should keep a copy of CString
<https://webkit.org/b/207519>
<rdar://problem/59043436>
Reviewed by Brent Fulgham.
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::initializeClassesForParameterCoding):
- Change
className
to keep a copy of the CString object.
- 4:53 PM Changeset in webkit [256232] by
-
- 2 edits in trunk/Tools
[DRT] InternalSettingsGenerated::resetToConsistentState() may override TestOptions
https://bugs.webkit.org/show_bug.cgi?id=207481
Reviewed by Alexey Proskuryakov.
InternalSettingsGenerated::resetToConsistentState() may override TestOptions such as enableBackForwardCache.
This is causing issues such as the back/forward cache sometimes getting enabled on tests where
TestOptions::enableBackForwardCache() is false, because a previous test has enabled the back/forward cache.
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
Make sure we reset preferences after we call WebCoreTestSupport::resetInternalsObject(), since
resetInternalsObject() updates settings and TestOptions / DRT preferences should have priority
over internal settings.
- 4:49 PM Changeset in webkit [256231] by
-
- 2 edits in trunk/LayoutTests
Regression: (r256009?) [ Mojave wk2 Debug ] webrtc/peerconnection-page-cache-long.html is crashing.
https://bugs.webkit.org/show_bug.cgi?id=207521
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:44 PM Changeset in webkit [256230] by
-
- 2 edits in trunk/Source/WebCore
Adjust the minor version number for the desktop user agent string.
https://bugs.webkit.org/show_bug.cgi?id=207498
<rdar://problem/59274765>
Patch by Keith Rollin <Keith Rollin> on 2020-02-10
Reviewed by Wenson Hsieh.
This helps with Netflix compatibility on the iPad.
No new tests -- no new or changed functionality.
- platform/ios/UserAgentIOS.mm:
(WebCore::standardUserAgentWithApplicationName):
- 4:30 PM Changeset in webkit [256229] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] tiled-drawing/simple-document-with-margin-tiles.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207518
unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 4:22 PM Changeset in webkit [256228] by
-
- 2 edits in trunk/Source/WebCore
[iOS] REGRESSION (r255592): The simulated mouse event dispatch quirk should not be on by default
https://bugs.webkit.org/show_bug.cgi?id=207513
<rdar://problem/59326119>
Reviewed by Tim Horton.
Turn
shouldDispatchSimulatedMouseEvents
back off by default (r255592 enabled it by default on all web pages).
- page/Quirks.cpp:
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
- 4:12 PM Changeset in webkit [256227] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug ] inspector/animation/lifecycle-css-transition.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207517
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 3:57 PM Changeset in webkit [256226] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] http/wpt/service-workers/service-worker-spinning-fetch.https.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207515
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 3:49 PM Changeset in webkit [256225] by
-
- 4 edits1 add in trunk
[watchOS] Notification listener is never unregistered
https://bugs.webkit.org/show_bug.cgi?id=207459
Source/WebKit:
<rdar://problem/58923393>
Reviewed by Maciej Stachowiak.
On watchOS, the backlight changed notification is registered in WebProcessPool::registerNotificationObservers(),
but not unregistered in WebProcessPool::unregisterNotificationObservers().
API test: WebKit.BacklightLevelNotificationCrash
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::unregisterNotificationObservers):
Tools:
Reviewed by Maciej Stachowiak.
Add a test which tests that posting a backlight level change notification will not cause a crash.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/BacklightLevelNotification.mm: Added.
(TEST):
- 3:46 PM Changeset in webkit [256224] by
-
- 8 edits in branches/safari-610.1.1.4-branch/Source
Versioning.
- 3:17 PM Changeset in webkit [256223] by
-
- 2 edits in trunk/Source/WebCore
[WebCore] Shrink Vectors passed to SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=207503
Reviewed by Yusuke Suzuki.
Once SharedBuffer::DataSegment is created, the content won't change in its life cycle. Shrink the passed vector
before assigning to member variable to save space.
With the quick research, when displaying Apple's website, 1~3% RSS usage reduction on PlayStation port.
No new tests because there's no behavior change.
- platform/SharedBuffer.h:
- 3:14 PM Changeset in webkit [256222] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Win ] ( r254044 ) css1/box_properties/padding_left.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207480
<rdar://problem/59316463>
Unreviewed test gardening.
- platform/win/css1/box_properties/padding_left-expected.txt:
- 3:11 PM Changeset in webkit [256221] by
-
- 1 copy in tags/Safari-609.1.17.2.1
Tag Safari-609.1.17.2.1.
- 3:03 PM Changeset in webkit [256220] by
-
- 8 edits in branches/safari-610.1.3-branch/Source
Versioning.
- 2:43 PM Changeset in webkit [256219] by
-
- 2 edits in branches/safari-609.1.17.2-branch/Source/WebKit
Cherry-pick r256105. rdar://problem/59301764
Fix the watchOS build after <rdar://problem/56134081>
https://bugs.webkit.org/show_bug.cgi?id=207443
<rdar://problem/59295173>
Reviewed by Maciej Stachowiak.
Use the version of the SPI that's guaranteed to be available across all platforms.
- UIProcess/ios/WKContentViewInteraction.mm: (gestureRecognizerModifierFlags):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:42 PM Changeset in webkit [256218] by
-
- 1 copy in branches/safari-610.1.3-branch
New branch.
- 2:40 PM Changeset in webkit [256217] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (r246055): Data detected URLs are no longer blue
https://bugs.webkit.org/show_bug.cgi?id=207490
rdar://problem/58760796
Reviewed by Tim Horton.
This matches how the old code ended up working, since the old approach inlined the blue link color when
"shouldUseLightLinks" was false. This change allows the link style color to naturally apply as expected.
DD only uses light links when the category is "link" or "phone number" and not in the email signature.
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange): Only set color: currentColor when setting underline color.
- 2:39 PM Changeset in webkit [256216] by
-
- 8 edits in branches/safari-609.1.17.2-branch/Source
Versioning.
- 2:38 PM Changeset in webkit [256215] by
-
- 27 edits in trunk
Standard gamepad mapping for GameControllerGamepads
https://bugs.webkit.org/show_bug.cgi?id=206033
Patch by James Howard <jameshoward@mac.com> on 2020-02-10
Reviewed by Dean Jackson.
Source/WebCore:
Extend PlatformGamepad to add a field for the gamepad mapping.
The mapping defines the order and interpretation of the axes and
buttons vectors, and is passed along to users of the Gamepad
API[1].
Letting PlatformGamepad subclassers define their mapping is the
natural place for this functionality. The PlatformGamepad
already defines the order of the axes and buttons and
PlatformGamepad subclassers may know something about the
physical layout of the gamepad they represent.
This change modifies the GameControllerGamepad subclass of
PlatformGamepad to set the mapping to "standard" when a
GCExtendedGamepad is detected, and to bind the axes and buttons
appropriately. Previously, the buttons and axes were bound
arbitrarily, and in some cases incompletely. While that wasn't a
bug per se, because with the mapping set to the empty string an
implementation is free to provide any interpretation of the
gamepad elements it likes, it was certainly less useful than the
"standard" mapping.
[1] https://www.w3.org/TR/gamepad/#remapping
- Modules/gamepad/Gamepad.cpp:
(WebCore::Gamepad::Gamepad):
- platform/gamepad/PlatformGamepad.h:
(WebCore::PlatformGamepad::mapping const):
- platform/gamepad/cocoa/GameControllerGamepad.mm:
(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
- testing/MockGamepad.cpp:
(WebCore::MockGamepad::MockGamepad):
(WebCore::MockGamepad::updateDetails):
- testing/MockGamepad.h:
- testing/MockGamepadProvider.cpp:
(WebCore::MockGamepadProvider::setMockGamepadDetails):
- testing/MockGamepadProvider.h:
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setMockGamepadDetails):
- testing/js/WebCoreTestSupport.h:
Source/WebKit:
Make the mapping as provided by PlatformGamepad
available in UIGamepad, and pass it along to
GamepadData so it can be correctly reflected
in the Gamepad API.
- Shared/Gamepad/GamepadData.cpp:
(WebKit::GamepadData::GamepadData):
(WebKit::GamepadData::encode const):
(WebKit::GamepadData::decode):
- Shared/Gamepad/GamepadData.h:
(WebKit::GamepadData::mapping const):
- UIProcess/Gamepad/UIGamepad.cpp:
(WebKit::UIGamepad::UIGamepad):
(WebKit::UIGamepad::fullGamepadData const):
- UIProcess/Gamepad/UIGamepad.h:
- WebProcess/Gamepad/WebGamepad.cpp:
(WebKit::WebGamepad::WebGamepad):
Tools:
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setMockGamepadDetails):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- gamepad/gamepad-polling-access-expected.txt:
- gamepad/gamepad-polling-access.html:
- gamepad/gamepad-timestamp.html:
- gamepad/gamepad-visibility-1.html:
- 2:27 PM Changeset in webkit [256214] by
-
- 3 edits3 adds in trunk
WebContent jetsams on Sony lens webpage due to spike of IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=207493
rdar://problem/59020443
Reviewed by Zalan Bujtas.
Source/WebCore:
There were three issues that contributed to massive backing store allocation on
<https://www.sony.com/electronics/lenses/t/camera-lenses>.
The first, fixed in r256095, was that the Web Animations code unioned the untransitioning
bounds with the transitioning bounds, causing the computation of large extent rects.
The second, fixed in r256181, was that GraphicsLayerCA would keep hold of a transform
animation for an extra frame, causing a rendering update where
RenderLayerBacking::updateGeometry() would have cleared the extent, but GraphicsLayerCA
still thought transform was animating, causing GraphicsLayerCA::updateCoverage() to keep
backing store attached.
This patch is the final fix; when animations start and end, we need to ensure that
RenderLayerBacking::updateGeometry() is called so that we compute the animation extent in
the same frame that adds the animation.
Test: compositing/backing/transition-extent.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::animationFinished):
LayoutTests:
Test with an out-of-view transitioning element which should not get backing store.
- compositing/backing/transition-extent-expected.txt: Added.
- compositing/backing/transition-extent.html: Added.
- platform/ios-wk2/compositing/backing/transition-extent-expected.txt: Added.
- 2:24 PM Changeset in webkit [256213] by
-
- 2 edits in trunk/LayoutTests
[ Mac Debug wk2 ] imported/w3c/web-platform-tests/fetch/api/request/destination/fetch-destination-worker.https.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=207509
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 2:08 PM Changeset in webkit [256212] by
-
- 2 edits in trunk/Tools
[ews] Display flaky layout test names in build summary
https://bugs.webkit.org/show_bug.cgi?id=207504
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(ReRunWebKitTests.evaluateCommand): Drive-by fix to correct the pluralization.
(AnalyzeLayoutTestsResults.report_pre_existing_failures): Append the flaky failure information.
(AnalyzeLayoutTestsResults.start):
- 2:08 PM Changeset in webkit [256211] by
-
- 2 edits in trunk/LayoutTests
[ Mac wk2 ] webgpu/whlsl/textures-load.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207508
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:35 PM Changeset in webkit [256210] by
-
- 2 edits in trunk/LayoutTests
[ iOS wk2 ] http/wpt/cache-storage/cache-put-keys.https.any.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=207496
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 1:29 PM Changeset in webkit [256209] by
-
- 2 edits in trunk/LayoutTests
Folloup to r256193 to set the proper ImageOnlyFailure expectation.
https://bugs.webkit.org/show_bug.cgi?id=207477
unreviewed test gardening.
- platform/win/TestExpectations:
- 1:27 PM Changeset in webkit [256208] by
-
- 2 edits in trunk/LayoutTests
[ Win ] (r255593) webanimations/transform-accelerated-animation-finishes-before-removal.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207499
Unreviewed test gardening.
- platform/win/TestExpectations:
- 1:23 PM Changeset in webkit [256207] by
-
- 8 edits in trunk
Don't update selection when calling setSelectionRange on a disconnected input element
https://bugs.webkit.org/show_bug.cgi?id=207357
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Rebaselined the test that progressed a little. The test now passes offset checks but still fails direction check.
- web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea-expected.txt:
Source/WebCore:
Don't update FrameSelection when the text form control element is disconnected from document.
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionRange):
LayoutTests:
Rebaselined the test that has progressed with this change.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt:
- 1:14 PM Changeset in webkit [256206] by
-
- 3 edits in trunk/Tools
[ews] Use SetBuildSummary instead of buildFinished in Layout tests
https://bugs.webkit.org/show_bug.cgi?id=207492
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKitTests.evaluateCommand):
(ReRunWebKitTests.evaluateCommand):
(AnalyzeLayoutTestsResults.report_pre_existing_failures):
- BuildSlaveSupport/ews-build/factories.py:
(TestFactory.init):
- 1:06 PM Changeset in webkit [256205] by
-
- 2 edits in trunk/LayoutTests
[ Win ] (r255383) webanimations/width-and-opacity-separate-animation-yields-compositing.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207495
Unreviewed test gardening.
- platform/win/TestExpectations:
- 12:58 PM Changeset in webkit [256204] by
-
- 1 copy in branches/safari-609.1.17.2-branch
New branch, safari-609.1.17.2-branch.
- 12:51 PM Changeset in webkit [256203] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, speculative build fix on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183
- wtf/HashTable.h:
(WTF::HashTableCapacityForSize::capacityForSize):
- 12:40 PM Changeset in webkit [256202] by
-
- 3 edits1 add in trunk
Placate exception check validator in GenericArguments<Type>::put().
https://bugs.webkit.org/show_bug.cgi?id=207485
<rdar://problem/59302535>
Reviewed by Robin Morisset.
JSTests:
- stress/placate-exception-check-validator-in-GenericArguments-put.js: Added.
Source/JavaScriptCore:
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::put):
- 12:26 PM Changeset in webkit [256201] by
-
- 4 edits in trunk/Source/WebCore
[WebAuthn] Merge some of the CTAP response decoder's code
https://bugs.webkit.org/show_bug.cgi?id=205375
Reviewed by Darin Adler.
This patch makes those code more compact and maintainable.
No change of behaviors.
- Modules/webauthn/fido/DeviceResponseConverter.cpp:
(fido::decodeResponseMap):
(fido::readCTAPMakeCredentialResponse):
(fido::readCTAPGetAssertionResponse):
(fido::readCTAPGetInfoResponse):
- Modules/webauthn/fido/DeviceResponseConverter.h:
- Modules/webauthn/fido/Pin.cpp:
(fido::pin::encodePinCommand):
(fido::pin::RetriesResponse::parse):
(fido::pin::KeyAgreementResponse::parse):
(fido::pin::TokenResponse::parse):
- 12:24 PM Changeset in webkit [256200] by
-
- 2 edits in trunk
[CMake] Prepend -Wno-noexcept-type only to global CXX flags
https://bugs.webkit.org/show_bug.cgi?id=207468
Patch by Michael Catanzaro <Michael Catanzaro> on 2020-02-10
Reviewed by Adrian Perez de Castro.
-Wno-noexcept-type is a C++-specific flag that should not be passed to the C compiler. This
causes a warning spam in GCC 10.
- Source/cmake/WebKitCompilerFlags.cmake:
- 12:09 PM Changeset in webkit [256199] by
-
- 2 edits in trunk/JSTests
arm64_32: microbenchmarks/delete-property-keeps-cacheable-structure.js is timing out
https://bugs.webkit.org/show_bug.cgi?id=207484
Reviewed by Yusuke Suzuki.
- microbenchmarks/delete-property-keeps-cacheable-structure.js:
- 11:47 AM Changeset in webkit [256198] by
-
- 3 edits1 add in trunk
Missing exception check in GenericArguments<Type>::deletePropertyByIndex().
https://bugs.webkit.org/show_bug.cgi?id=207483
<rdar://problem/59302616>
Reviewed by Yusuke Suzuki.
JSTests:
- stress/missing-exception-check-in-GenericArguments-deletePropertyByIndex.js: Added.
Source/JavaScriptCore:
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::deletePropertyByIndex):
- 11:36 AM Changeset in webkit [256197] by
-
- 3 edits in trunk/LayoutTests
REGRESSION: (256055) http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207479
<rdar://problem/59316238>
Unreviewed test gardening
- http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
- platform/mac-wk2/TestExpectations:
- 11:32 AM Changeset in webkit [256196] by
-
- 44 edits2 moves in trunk/Source/WebCore
Rename SelectionData classes and structures HighlightData, etc to be more inclusive for their new use cases
https://bugs.webkit.org/show_bug.cgi?id=206340
Reviewed by Ryosuke Niwa.
Rename only, no behaviour change.
With the new Highlight API, we will be using these data structures to support Highlights as well as Selection,
rename to Highlight, as a Selection is a type of Highlight.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/DragImage.cpp:
(WebCore::ScopedFrameSelectionState::~ScopedFrameSelectionState):
(WebCore::createDragImageForRange):
- rendering/ComplexLineLayout.cpp:
(WebCore::ComplexLineLayout::constructLine):
- rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
- rendering/EllipsisBox.h:
- rendering/HighlightData.cpp: Renamed from Source/WebCore/rendering/SelectionRangeData.cpp.
(WebCore::isValidRendererForSelection):
(WebCore::collect):
(WebCore::HighlightData::HighlightData):
(WebCore::HighlightData::setRenderRange):
(WebCore::HighlightData::selectionStateForRenderer):
(WebCore::HighlightData::set):
(WebCore::HighlightData::clear):
(WebCore::HighlightData::repaint const):
(WebCore::HighlightData::collectBounds const):
(WebCore::HighlightData::apply):
- rendering/HighlightData.h: Renamed from Source/WebCore/rendering/SelectionRangeData.h.
(WebCore::HighlightData::RenderRange::RenderRange):
(WebCore::HighlightData::RenderRange::operator== const):
(WebCore::HighlightData::get const):
(WebCore::HighlightData::start const):
(WebCore::HighlightData::end const):
(WebCore::HighlightData::startOffset const):
(WebCore::HighlightData::endOffset const):
- rendering/InlineBox.cpp:
(WebCore::InlineBox::selectionState):
- rendering/InlineBox.h:
- rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::selectionState):
- rendering/InlineFlowBox.h:
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::selectionState):
(WebCore::InlineTextBox::verifySelectionState const):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::clampedStartEndForState const):
(WebCore::InlineTextBox::highlightStartEnd const):
(WebCore::InlineTextBox::collectMarkedTextsForHighlights const):
- rendering/InlineTextBox.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::shouldPaintSelectionGaps const):
(WebCore::RenderBlock::selectionGaps):
(WebCore::RenderBlock::blockSelectionGaps):
(WebCore::RenderBlock::getSelectionGapInfo):
- rendering/RenderBlock.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::setSelectionState):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
- rendering/RenderBlockFlow.h:
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::setSelectionState):
- rendering/RenderBoxModelObject.h:
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::setSelectionState):
- rendering/RenderLineBreak.h:
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::paint):
(WebCore::RenderListMarker::setSelectionState):
(WebCore::RenderListMarker::selectionRectForRepaint):
- rendering/RenderListMarker.h:
- rendering/RenderObject.cpp:
(WebCore::RenderObject::isSelectionBorder const):
- rendering/RenderObject.h:
(WebCore::RenderObject::selectionState const):
(WebCore::RenderObject::setSelectionState):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::RenderObjectBitfields::selectionState const):
(WebCore::RenderObject::RenderObjectBitfields::setSelectionState):
(WebCore::RenderObject::setSelectionStateIfNeeded):
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::shouldDrawSelectionTint const):
(WebCore::RenderReplaced::paint):
(WebCore::RenderReplaced::setSelectionState):
(WebCore::RenderReplaced::isSelected const):
- rendering/RenderReplaced.h:
- rendering/RenderSelectionInfo.h:
(WebCore::RenderSelectionInfoBase::state const):
- rendering/RenderText.cpp:
(WebCore::RenderText::setSelectionState):
(WebCore::RenderText::collectSelectionRectsForLineBoxes):
- rendering/RenderText.h:
- rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::setSelectionState):
- rendering/RenderTextLineBoxes.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintAttachment):
- rendering/RenderView.h:
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setSelectionState):
- rendering/RenderWidget.h:
- rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::lineSelectionGap):
(WebCore::RootInlineBox::selectionState):
(WebCore::RootInlineBox::firstSelectedBox):
(WebCore::RootInlineBox::lastSelectedBox):
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock const):
- rendering/RootInlineBox.h:
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseForWithReason):
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintSelectionBackground):
(WebCore::SVGInlineTextBox::paint):
- rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint):
- 10:49 AM Changeset in webkit [256195] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Win ] css1/box_properties/padding_left.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207480
Unreviewed test gardening
- platform/win/TestExpectations:
- 10:35 AM Changeset in webkit [256194] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, fix build failure on watchOS simulator
https://bugs.webkit.org/show_bug.cgi?id=207183
- wtf/HashTable.h:
(WTF::HashTableCapacityForSize::capacityForSize):
- 10:25 AM Changeset in webkit [256193] by
-
- 2 edits in trunk/LayoutTests
REGRESSION: [ Win ] animations/stacking-context-not-fill-forwards.html is failing
https://bugs.webkit.org/show_bug.cgi?id=207477
unreviewed test gardening.
- platform/win/TestExpectations:
- 10:21 AM Changeset in webkit [256192] by
-
- 3 edits2 adds in trunk
Unreachable code hit in WebCore::Shape::createShape
https://bugs.webkit.org/show_bug.cgi?id=207399
Reviewed by Darin Adler.
Source/WebCore:
CSS parser should not consume the 'shape-outside' property with type 'path'
since it has not been implemented yet. This will prevent an assertion in
the debug build and null dref in the release build.
Test: css3/shapes/shape-outside-path-no-crash.html
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBasicShape):
(WebCore::consumeShapeOutside):
LayoutTests:
- css3/shapes/shape-outside-path-no-crash-expected.txt: Added.
- css3/shapes/shape-outside-path-no-crash.html: Added.
- 10:16 AM Changeset in webkit [256191] by
-
- 29 edits4 copies6 adds in trunk
Disallow setting base URL to a data or JavaScript URL
https://bugs.webkit.org/show_bug.cgi?id=207136
Source/WebCore:
Reviewed by Brent Fulgham.
Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.
Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
discussion in <https://github.com/whatwg/html/issues/2249>.
On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
avoid breaking shipped apps.
For all other ports, this restriction is enabled by default.
Tests: fast/url/relative2.html
fast/url/segments-from-data-url2.html
http/tests/security/allowed-base-url-data-url-via-setting.html
http/tests/security/denied-base-url-data-url.html
http/tests/security/denied-base-url-javascript-url.html
- dom/Document.cpp:
(WebCore::Document::processBaseElement): Condition updating the parsed
base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise,
do what we do now. If the scheme is disallowed then log a message to the console to
explain this to web developers.
- html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL
to updatePredictedBaseURL(). This depends on whether the setting is enabled or not.
(WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to
whether to apply restrictions. If restrictions are not to be applied do what we do now.
Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
- html/parser/HTMLPreloadScanner.h:
- page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
- page/SecurityPolicy.h:
- page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.
Source/WebKit:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Shared/WebPreferences.yaml:
- UIProcess/API/Cocoa/WKWebView.mm:
(shouldRestrictBaseURLSchemes): Added.
(-[WKWebView _setupPageConfiguration:]): Update settings.
- UIProcess/Cocoa/VersionChecks.h:
Source/WebKitLegacy/mac:
Reviewed by Brent Fulgham.
Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
- Misc/WebKitVersionChecks.h:
- WebView/WebView.mm:
(shouldRestrictBaseURLSchemes): Added.
(-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.
Source/WTF:
Reviewed by Brent Fulgham.
Add some more macro definitions.
- wtf/spi/darwin/dyldSPI.h:
LayoutTests:
RReviewed by Brent Fulgham.
Add some tests. Update others to toggle the setting to apply or unapply the new behavior.
The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.
- fast/url/relative-expected.txt:
- fast/url/relative.html:
- fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
- fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
- fast/url/resources/utilities.js:
(setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching.
Otherwise, file URLs could be machine-specific.
(canonicalizedPathname): Added.
(segments): Modified to optionally call canonicalizedPathname.
(canonicalize): Ditto.
- fast/url/segments-from-data-url-expected.txt:
- fast/url/segments-from-data-url.html:
- fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
- fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
- fetch/fetch-url-serialization-expected.txt:
- http/tests/plugins/navigation-during-load-embed.html:
- http/tests/plugins/navigation-during-load.html:
- http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
- http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
- http/tests/security/denied-base-url-data-url-expected.txt: Added.
- http/tests/security/denied-base-url-data-url.html: Added.
- http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
- http/tests/security/denied-base-url-javascript-url.html: Added.
- 10:14 AM Changeset in webkit [256190] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/store-to-property-updates-properly.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207476
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 10:08 AM Changeset in webkit [256189] by
-
- 2 edits in trunk/LayoutTests
Regression (r255961): fast/loader/data-url-load-denied.html is consistently timing out on windows
https://bugs.webkit.org/show_bug.cgi?id=207373
Unreviewed test gardening.
- platform/win/TestExpectations:
- 10:00 AM Changeset in webkit [256188] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] http/tests/cache-storage/cache-records-persistency.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207474
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 9:57 AM Changeset in webkit [256187] by
-
- 2 edits in trunk/Source/WebKit
Crash under WebProcessProxy::shouldSendPendingMessage()
https://bugs.webkit.org/show_bug.cgi?id=207464
<rdar://problem/59293825>
Reviewed by Alex Christensen.
I suspect the WebProcessProxy object is getting destroyed as we are iterating over the
pending messages in AuxiliaryProcessProxy::didFinishLaunching(), thus crashing when
calling WebProcessProxy::shouldSendPendingMessage() inside the loop. As a speculative
fix, protect |this| at the beginning of WebProcessProxy::didFinishLaunching().
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- 9:36 AM Changeset in webkit [256186] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/workers/WorkerGlobalScope_ErrorEvent_colno.htm is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207470
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 9:29 AM Changeset in webkit [256185] by
-
- 18 edits1 copy in trunk/Source/WebKit
Use ObjectIdentifier for WebRTC resolvers
https://bugs.webkit.org/show_bug.cgi?id=207381
Reviewed by Eric Carlson.
Use ObjectIdentifier instead of uint64_t which gives type safety and ensures we do not receive wrong identifiers from IPC.
No change of behavior.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::close):
(WebKit::NetworkRTCProvider::createResolver):
Remove empty string check case since DNS resolver should be robust to null/empty strings.
(WebKit::NetworkRTCProvider::stopResolver):
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCProvider.messages.in:
- NetworkProcess/webrtc/NetworkRTCResolver.cpp:
(WebKit::NetworkRTCResolver::create):
(WebKit::NetworkRTCResolver::NetworkRTCResolver):
(WebKit::NetworkRTCResolver::start):
(WebKit::NetworkRTCResolver::stop):
- NetworkProcess/webrtc/NetworkRTCResolver.h:
- NetworkProcess/webrtc/NetworkRTCResolverCocoa.cpp:
(WebKit::NetworkRTCResolver::create):
(WebKit::NetworkRTCResolverCocoa::NetworkRTCResolverCocoa):
- NetworkProcess/webrtc/NetworkRTCResolverCocoa.h:
- Scripts/webkit/messages.py:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/Network/webrtc/LibWebRTCNetwork.h:
(WebKit::LibWebRTCNetwork::resolver):
- WebProcess/Network/webrtc/LibWebRTCResolver.cpp:
(WebKit::LibWebRTCResolver::Start):
(WebKit::LibWebRTCResolver::Destroy):
- WebProcess/Network/webrtc/LibWebRTCResolver.h:
- WebProcess/Network/webrtc/LibWebRTCResolverIdentifier.h: Copied from Source/WebKit/WebProcess/Network/webrtc/WebRTCResolver.h.
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.cpp:
(WebKit::LibWebRTCSocketFactory::createAsyncResolver):
- WebProcess/Network/webrtc/LibWebRTCSocketFactory.h:
(WebKit::LibWebRTCSocketFactory::resolver):
(WebKit::LibWebRTCSocketFactory::takeResolver):
- WebProcess/Network/webrtc/WebRTCResolver.cpp:
(WebKit::WebRTCResolver::WebRTCResolver):
- WebProcess/Network/webrtc/WebRTCResolver.h:
- 9:28 AM Changeset in webkit [256184] by
-
- 26 edits in trunk
Unreviewed, rolling out r256091.
Broke internal builds
Reverted changeset:
"Move trivial definitions from FeatureDefines.xcconfig to
PlatformEnableCocoa.h"
https://bugs.webkit.org/show_bug.cgi?id=207155
https://trac.webkit.org/changeset/256091
- 9:26 AM Changeset in webkit [256183] by
-
- 15 edits in trunk
Unreviewed, rolling out r256103.
This patch is blocking the rollout of r256091
Reverted changeset:
"Move JavaScriptCore related feature defines from
FeatureDefines.xcconfig to PlatformEnableCocoa.h"
https://bugs.webkit.org/show_bug.cgi?id=207436
https://trac.webkit.org/changeset/256103
- 9:25 AM Changeset in webkit [256182] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk1 ] imported/w3c/web-platform-tests/svg/animations/slider-switch.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207469
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 9:24 AM Changeset in webkit [256181] by
-
- 7 edits in trunk
There's an event loop cycle between an animation finishing, and it being removed from GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=207361
<rdar://problem/59280370>
Reviewed by Simon Fraser.
Source/WebCore:
Animations should be removed from GraphicsLayersCAs in the same rendering update that changes the playState of the
animation to "finished", to avoid layer flush where a GraphicsLayersCAs has no extent set, but thinks there is
an active transform animation.
To do this, instead of enqueuing accelerated actions when resolving animations during style resolution, in
KeyframeAnimation::apply(), we enqueue them as soon as an animation's current time may have changed: in
WebAnimation::tick() and WebAnimation::play() with supporting functions newly exposed on AnimationEffect.
Now, accelerated animations are enqueued and applied during the "update animations and send events" procedure.
- animation/AnimationEffect.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::apply):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::animationDidTick):
(WebCore::KeyframeEffect::animationDidPlay):
- animation/KeyframeEffect.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::play):
(WebCore::WebAnimation::tick):
LayoutTests:
Lower the number of frames to wait after an animation completes by one to check that the accelerated animation has been removed
to show that we enqueue accelerated actions as part of the "update animations and send events" procedure.
- webanimations/accelerated-animation-removal-upon-transition-completion.html: Added.
- 9:16 AM Changeset in webkit [256180] by
-
- 1 copy in releases/WebKitGTK/webkit-2.27.90
WebKitGTK 2.27.90
- 9:16 AM Changeset in webkit [256179] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.27.90 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.27.90.
- 9:13 AM Changeset in webkit [256178] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS wk2 ] http/wpt/service-workers/service-worker-networkprocess-crash.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207466
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 9:11 AM Changeset in webkit [256177] by
-
- 3 edits in trunk/LayoutTests
[Web Animations] Fix animations/stop-animation-on-suspend.html
https://bugs.webkit.org/show_bug.cgi?id=184580
<rdar://problem/39406014>
Reviewed by Simon Fraser.
The expectations of this test were incorrect. The test animates a transform from 0 to 400px across 400ms with a linear timing function. The test suspends
animations from 100ms to 300ms with timers, and polls animations at 200ms and 400ms. At 200ms, it expects a value of 100px, which is correct since the animation
is suspended and so the value at 100ms (when it was suspended) is expected.
However, the test expected the value at 400ms to be 200px, which leads me to think this test assumes that animations, when resumed, account for the time suspended
and subtracts it from the page time. This is incorrect: when animations resume, they resume at the current time, no matter how long they were suspended. So the expected
value should be 400px.
- animations/stop-animation-on-suspend-expected.txt:
- animations/stop-animation-on-suspend.html:
- 8:54 AM Changeset in webkit [256176] by
-
- 3 edits in trunk/LayoutTests
[ macOS iOS wk2 ] storage/indexeddb/intversion-long-queue.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=207465
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 8:37 AM Changeset in webkit [256175] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] inspector/runtime/getCollectionEntries.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207463
Unreviewed test gardening
- platform/mac/TestExpectations:
- 8:20 AM Changeset in webkit [256174] by
-
- 2 edits in trunk/LayoutTests
Regression (~r252261): [ Mac wk2 ] inspector/heap/getPreview.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207209
Correcting test expectations.
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 8:17 AM Changeset in webkit [256173] by
-
- 2 edits in trunk/Source/WebCore
Make FormDataElement::lengthInBytes() safe to call on a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=207419
<rdar://problem/54386521>
Reviewed by Youenn Fablet.
Make FormDataElement::lengthInBytes() safe to call on a non-main thread by using the
ThreadableBlobRegistry. DOMCache code in workers may call this on worker threads for
example.
- platform/network/FormData.cpp:
(WebCore::FormDataElement::lengthInBytes const):
- 8:10 AM Changeset in webkit [256172] by
-
- 2 edits2 adds in trunk/Tools
results.webkit.org: Abstract archive storage solutions
https://bugs.webkit.org/show_bug.cgi?id=207277
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/model/archive_context.py:
(ArchiveContext):
(ArchiveContext.ArchiveMetaDataByCommit.unpack):
(ArchiveContext.init): Add archiver member.
(ArchiveContext.enter): archiver is a context manager.
(ArchiveContext.exit): Ditto.
(ArchiveContext.register): The archiver member owns saving an archive.
(ArchiveContext.find_archive): The archiver member owns retrieving an archive.
(ArchiveContext.ArchiveChunks): Move to CassandraArchiver.
- resultsdbpy/resultsdbpy/model/archiver.py: Added.
(Archiver): Base class for all Archiving systems.
(Archiver.archive_digest): Given a file-like archive, calculate it's digest.
(Archiver.archive_size): Given a file-like archive, calculate it's size.
(Archiver.save):
(Archiver.retrieve):
- resultsdbpy/resultsdbpy/model/cassandra_archiver.py: Added.
(CassandraArchiver):
(CassandraArchiver.ArchiveChunks): Moved from ArchiveContext.
(CassandraArchiver.init):
(CassandraArchiver.enter):
(CassandraArchiver.exit):
(CassandraArchiver.save): Split the provided archive into chunks for saving, moved
from ArchiveContext.
(CassandraArchiver.retrieve): Retrieve an archive with the provided hash, moved
from ArchiveContext.
- 8:02 AM Changeset in webkit [256171] by
-
- 2 edits in trunk/LayoutTests
[ macOS ] imported/w3c/web-platform-tests/wasm/jsapi/constructor/instantiate-bad-imports.any.worker.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207461
Unreviewed test gardening
- platform/mac/TestExpectations:
- 7:46 AM Changeset in webkit [256170] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/buffer-vertex.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207127
Correcting test expectations for ImageOnlyFailure
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 7:34 AM Changeset in webkit [256169] by
-
- 2 edits in trunk/LayoutTests
[ macOS wk2 ] webgpu/whlsl/separate-shader-modules/separate-shader-modules-7.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=207460
Unreviewed test gardening
- platform/mac-wk2/TestExpectations:
- 7:26 AM Changeset in webkit [256168] by
-
- 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merged r256167 - [geolocation] Fix non-unified build issues
https://bugs.webkit.org/show_bug.cgi?id=207457
Unreviewed build fix.
No new tests needed.
- UIProcess/GeolocationPermissionRequestManagerProxy.h: Add missing includes.
- UIProcess/WebGeolocationManagerProxy.cpp: Ditto.
- 6:48 AM Changeset in webkit [256167] by
-
- 3 edits in trunk/Source/WebKit
[geolocation] Fix non-unified build issues
https://bugs.webkit.org/show_bug.cgi?id=207457
Unreviewed build fix.
No new tests needed.
- UIProcess/GeolocationPermissionRequestManagerProxy.h: Add missing includes.
- UIProcess/WebGeolocationManagerProxy.cpp: Ditto.
- 6:01 AM Changeset in webkit [256166] by
-
- 4 edits in trunk/Source/WebCore
Remove setHTTPAccept call for main resources
https://bugs.webkit.org/show_bug.cgi?id=207441
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-10
Reviewed by Darin Adler.
Remove setHTTPAccept call for main resources since all main resource loading goes
through CachedResourceLoader, which sets the Accept header as specified in:
https://fetch.spec.whatwg.org/#fetching (Step 1.3).
This patch also removed unused Accept header related functionality
in ResourceRequest.
No test since no change in behavior, tested by http/tests/misc/xhtml.php.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::addExtraFieldsToRequest):
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::httpAccept const): Deleted.
(WebCore::ResourceRequestBase::setHTTPAccept): Deleted.
(WebCore::ResourceRequestBase::clearHTTPAccept): Deleted.
- platform/network/ResourceRequestBase.h:
- 5:27 AM Changeset in webkit [256165] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r256114 - [GTK][WebInspector] Do not make Web Inspector windows transient
https://bugs.webkit.org/show_bug.cgi?id=207455
Reviewed by Carlos Garcia Campos.
Stop setting Web Inspector windows as transient for the window
containing the web view being inspected, to allow changing their
relative stacking order. No changes are needed for inspector windows
to continue being destroyed correctly when the corresponding web view
is destroyed because code for handling that was already present in
WebInspectorProxyGtk.cpp.
No new tests needed.
- UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:
(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
Do not pass a parent window parameter to webkitInspectorWindowNew().
- UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:
(WebKit::WebInspectorProxy::platformCreateFrontendWindow): Remove code
to obtain the top level window of the WebKitWebView, which no longer
needs being passed to webkitInspectorWindowNew().
- UIProcess/Inspector/gtk/WebKitInspectorWindow.cpp:
(webkitInspectorWindowNew): Do not set the GtkWindow.transient-for
property for the Web Inspector window. Remove the parent window
parameter.
- UIProcess/Inspector/gtk/WebKitInspectorWindow.h: Remove the parent
window parameter for webkitInspectorWindowNew().
- 5:27 AM Changeset in webkit [256164] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Merge r256113 - [GTK] Mouse pointer no longer hidden during fullscreen video playback
https://bugs.webkit.org/show_bug.cgi?id=197346
Reviewed by Adrian Perez de Castro.
.:
Enabled the CURSOR_VISIBILITY feature on the GTK port.
- Source/cmake/OptionsGTK.cmake:
Source/WebKit:
Covered by existing tests.
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves): Added implementation.
- 5:27 AM Changeset in webkit [256163] by
-
- 28 edits in releases/WebKitGTK/webkit-2.28/LayoutTests
Merge r256111 - [WPE] Gardening, update baselines and synchronize with GTK
https://bugs.webkit.org/show_bug.cgi?id=207442
Unreviewed gardening.
- platform/wpe/TestExpectations:
- platform/wpe/css3/selectors3/html/css3-modsel-161-expected.txt:
- platform/wpe/css3/selectors3/xhtml/css3-modsel-161-expected.txt:
- platform/wpe/css3/selectors3/xml/css3-modsel-161-expected.txt:
- platform/wpe/fast/block/float/float-avoidance-expected.txt:
- platform/wpe/fast/block/margin-collapse/103-expected.txt:
- platform/wpe/fast/box-shadow/inset-box-shadow-radius-expected.txt:
- platform/wpe/fast/css/text-transform-select-expected.txt:
- platform/wpe/fast/html/keygen-expected.txt:
- platform/wpe/fast/invalid/014-expected.txt:
- platform/wpe/fast/parser/document-write-option-expected.txt:
- platform/wpe/fast/replaced/replaced-breaking-expected.txt:
- platform/wpe/fast/replaced/replaced-breaking-mixture-expected.txt:
- platform/wpe/fast/replaced/three-selects-break-expected.txt:
- platform/wpe/fast/replaced/width100percent-menulist-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug29326-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug33855-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug4382-expected.txt:
- platform/wpe/tables/mozilla/bugs/bug96334-expected.txt:
- platform/wpe/tables/mozilla/core/margins-expected.txt:
- platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
- platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/wpe/transforms/2d/zoom-menulist-expected.txt:
- 5:27 AM Changeset in webkit [256162] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256110 - Replace redundant functions with variadic template function.
https://bugs.webkit.org/show_bug.cgi?id=207413
Reviewed by Darin Adler.
No new tests. Covered by existing tests.
- loader/TextResourceDecoder.cpp:
(WebCore::bytesEqual):
- 5:27 AM Changeset in webkit [256161] by
-
- 7 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256107 - [LFC][Integration] Support intruding floats
https://bugs.webkit.org/show_bug.cgi?id=207099
Reviewed by Zalan Bujtas.
Add support for for floats placed by the legacy render tree layout intruding to IFC flow.
This was the last frequently used feature supported by the simple line layout but not
the integrated LFC (pagination is the final missing piece).
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::remove): Deleted.
- layout/floats/FloatingContext.h:
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::FloatingState::remove): Deleted.
Delete some unused functions.
- layout/floats/FloatingState.h:
(WebCore::Layout::FloatingState::FloatItem::isLeftPositioned const):
(WebCore::Layout::FloatingState::clear):
(WebCore::Layout::FloatingState::FloatItem::operator== const): Deleted.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::canUseFor):
Allow floats.
(WebCore::LayoutIntegration::LineLayout::layout):
(WebCore::LayoutIntegration::LineLayout::prepareLayoutState):
(WebCore::LayoutIntegration::LineLayout::prepareFloatingState):
Translate floats from render tree to IFC float structures.
- layout/integration/LayoutIntegrationLineLayout.h:
- 5:27 AM Changeset in webkit [256160] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256106 - [LFC][BFC] Move updatePositiveNegativeMarginValues out of MarginCollapse class
https://bugs.webkit.org/show_bug.cgi?id=207445
<rdar://problem/59297879>
Reviewed by Antti Koivisto.
MarginCollapse::updatePositiveNegativeMarginValues is just a static helper.
Let's split this function so that it can be just a regular member function (move the state updating to the BlockFormattingContext caller).
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::resolvedPositiveNegativeMarginValues):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updatePositiveNegativeMarginValues): Deleted.
- 5:27 AM Changeset in webkit [256159] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256102 - Optimize Style::determineChange()
https://bugs.webkit.org/show_bug.cgi?id=207438
Reviewed by Antti Koivisto.
Style::determineChange() called RenderStyle::operator!=() before the testing some other
sets of properties for inequality.
It's faster to call inheritedEqual() etc before the full style compare. Also optimize
comparing alignItems() and justifyItems() by adding a helper function that first tests
for equality of the m_rareNonInheritedData pointer. These (added in r213480) return Inherit
because align-items and justify-items affect child layout.
This is a ~4% progression on some MotionMark subtests. Time under TreeResolver::createAnimatedElementUpdate()
drops from 2.4% to 0.9%.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::descendantAffectingNonInheritedPropertiesEqual const):
- rendering/style/RenderStyle.h:
- style/StyleChange.cpp:
(WebCore::Style::determineChange):
- 5:26 AM Changeset in webkit [256158] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256101 - [LFC] FloatingContext::constraints should take a vertical range instead of just vertical position.
https://bugs.webkit.org/show_bug.cgi?id=207440
<rdar://problem/59295022>
Reviewed by Antti Koivisto.
In an IFC, this covers the entire line when searching for intrusive float to shrink the available horizontal space.
(This fix is limited to content with fixed line height)
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
- layout/floats/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::constraints const):
- layout/floats/FloatingContext.h:
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::constraintsForLine):
- 5:26 AM Changeset in webkit [256157] by
-
- 7 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256100 - [LFC][BFC] Replace "estimated" term with "precomputed"
https://bugs.webkit.org/show_bug.cgi?id=207433
<rdar://problem/59288794>
Reviewed by Antti Koivisto.
The term "pre-computed" describes better what this value is.
- layout/MarginTypes.h:
(WebCore::Layout::EstimatedMarginBefore::usedValue const): Deleted.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::usedAvailableWidthForFloatAvoider const):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPosition):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::setPrecomputedMarginBefore):
(WebCore::Layout::BlockFormattingContext::hasPrecomputedMarginBefore const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPosition): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors): Deleted.
(WebCore::Layout::BlockFormattingContext::setEstimatedMarginBefore): Deleted.
(WebCore::Layout::BlockFormattingContext::hasEstimatedMarginBefore const): Deleted.
- layout/blockformatting/BlockFormattingContext.h:
- layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::hasClearance const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::updateMarginAfterForPreviousSibling):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::positiveNegativeValues const):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::precomputedMarginBefore):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginBefore): Deleted.
- layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Box):
- layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::setHasPrecomputedMarginBefore):
(WebCore::Display::Box::invalidatePrecomputedMarginBefore):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setHasEstimatedMarginBefore): Deleted.
(WebCore::Display::Box::invalidateEstimatedMarginBefore): Deleted.
- 5:26 AM Changeset in webkit [256156] by
-
- 3 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256099 - [LFC][BFC] Pre-compute vertical position only when we really need it.
https://bugs.webkit.org/show_bug.cgi?id=207432
<rdar://problem/59288539>
Reviewed by Antti Koivisto.
Instead of pre-computing the vertical position at computeStaticVerticalPosition, let's compute it when
- we are about to layout a new non-float-avoider/float clear FC (e.g. so that intrusive floats can shrink the lines inside IFCs)
- we are about to compute the non-static vertical position of a float avoider block level box.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutInFlowContent):
(WebCore::Layout::BlockFormattingContext::computeStaticVerticalPosition):
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForAncestors):
(WebCore::Layout::BlockFormattingContext::precomputeVerticalPositionForFormattingRoot):
(WebCore::Layout::BlockFormattingContext::computePositionToAvoidFloats):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot): Deleted.
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFloatClear): Deleted.
(WebCore::Layout::BlockFormattingContext::hasPrecomputedMarginBefore const): Deleted.
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition): Deleted.
- layout/blockformatting/BlockFormattingContext.h:
- 5:26 AM Changeset in webkit [256155] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256098 - [LFC][BFC] Remove establishesBlockFormattingContextOnly and establishesInlineFormattingContextOnly
https://bugs.webkit.org/show_bug.cgi?id=207431
<rdar://problem/59288366>
Reviewed by Antti Koivisto.
The current caller of establishesInlineFormattingContextOnly is actually interested in whether the box is float avoider
(and the debug-only caller of establishesBlockFormattingContextOnly should instead check if the box also establishes an IFC).
- layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::createFormattingContext):
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeEstimatedVerticalPositionForFormattingRoot):
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::establishesInlineFormattingContextOnly const): Deleted.
(WebCore::Layout::Box::establishesBlockFormattingContextOnly const): Deleted.
- layout/layouttree/LayoutBox.h:
- 5:26 AM Changeset in webkit [256154] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256097 - [LFC][BFC] Adjust Box::isFloatAvoider() for Inline and Independent FCs.
https://bugs.webkit.org/show_bug.cgi?id=207430
<rdar://problem/59288236>
Reviewed by Antti Koivisto.
A block container box that establishes both BFC and IFC is not a float avoider (add support for independent formatting context too).
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isFloatAvoider const):
- 5:26 AM Changeset in webkit [256153] by
-
- 8 edits8 adds in releases/WebKitGTK/webkit-2.28
Merge r256095 - Extent of a composited animation should not include the untransformed position
https://bugs.webkit.org/show_bug.cgi?id=207434
Reviewed by Sam Weinig.
Source/WebCore:
To determine whether to create ("attach") backing store for layers with transform animations,
we compute the union of all the states of the animation as an "extent", and ask whether it intersects
the coverage rect in GraphicsLayerCA.
The non-Web Animations transition code did this correctly, just unioning the bounds transformed by
the start and end state.
The non-Web Animations keyframe code, and the Web Animations KeyframeEffect code (used for both CSS transitions
and animations) also unioned with the unanimated bounds, which could create overly large extents in some
cases, contributing to jetsams on iOS (rdar://problem/59020443).
Fix KeyframeAnimation and KeyframeEffect to not union with the untransformed bounds.
Tests: compositing/backing/backing-store-attachment-animating-outside-viewport.html
legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::computeExtentOfTransformAnimation const):
- page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation const):
LayoutTests:
New test that checks backing store attachment and overlap for an element which is positioned in-view,
but is move offscreen by the animation.
New baselines for overlap tests, since overlap no longer considers the unanimated position.
- compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- compositing/layer-creation/translate-animation-overlap-expected.txt:
- compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport.html: Added.
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap-expected.txt:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap-expected.txt:
- platform/ios-wk2/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- platform/ios-wk2/legacy-animation-engine/compositing/backing/backing-store-attachment-animating-outside-viewport-expected.txt: Added.
- 5:26 AM Changeset in webkit [256152] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256094 - [LFC][BFC] Box::isFloatAvoider should not check for isFloatingPositioned()
https://bugs.webkit.org/show_bug.cgi?id=207429
<rdar://problem/59288204>
Reviewed by Antti Koivisto.
Box::isFloatAvoider() already checks for establishesBlockFormattingContext() (and floats do establish BFCs).
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isFloatAvoider const):
- 5:26 AM Changeset in webkit [256151] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Merge r256093 - [WTF] Try using 75% load factor for HashTable
https://bugs.webkit.org/show_bug.cgi?id=207183
Reviewed by Mark Lam.
Source/WTF:
We know that hash-table is one of the most memory consuming part in WebKit.
By analyzing many production hash-table implementations[1], I found that many
of them are using 75% load-factor while our one is 50%.
This patch changes the load-factor from 50% to 75%. But we pick 75% only for
small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
The collected data is telling that longer probe-length affects on performance if table
size gets larger.
[1]: LLVM DenseMap, Abseil's, rust's, and so on.
- wtf/HashTable.h:
(WTF::HashTableCapacityForSize::shouldExpand):
(WTF::HashTableCapacityForSize::capacityForSize):
(WTF::HashTable::shouldExpand const):
(WTF::KeyTraits>::computeBestTableSize):
Tools:
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::testInitialCapacity):
- 5:26 AM Changeset in webkit [256150] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.28
Merge r256089 - Crash in RenderTreeBuilder::Table::findOrCreateParentForChild with multicol spanner
https://bugs.webkit.org/show_bug.cgi?id=206917
Patch by Doug Kelly <Doug Kelly> on 2020-02-08
Reviewed by Zalan Bujtas.
Source/WebCore:
During render tree construction, multi-column spanners are moved from their original tree position to
next to the enclosing anonymous fragmented flow and we mark their previous location with a spanner placeholder.
If we try to add a new renderer right before the spanner (beforeChild is the spanner renderer), we need to use
the spanner's original position as the insertion point.
This patch addresses the mismatching position issue by adjusting the spanner beforeChild right before
we start searching for the final insertion point.
Test: fast/multicol/spanner-crash-when-finding-table-parent.html
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attach):
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
LayoutTests:
- fast/multicol/spanner-crash-when-finding-table-parent-expected.txt: Added.
- fast/multicol/spanner-crash-when-finding-table-parent.html: Added.
- 5:26 AM Changeset in webkit [256149] by
-
- 5 edits2 deletes in releases/WebKitGTK/webkit-2.28/Source/bmalloc
Merge r256088 - [bmalloc] VMHeap can be merge into Heap
https://bugs.webkit.org/show_bug.cgi?id=207410
Reviewed by Yusuke Suzuki.
VMHeap has only one member function in it and Heap is the only client of that.
No member variable is defined. It does nothing special with its context as a class.
It is safe to merge the function into Heap.
- CMakeLists.txt:
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/Heap.cpp:
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::tryAllocateLargeChunk): Moved from VMHeap.
- bmalloc/Heap.h:
- bmalloc/VMHeap.cpp: Removed.
- bmalloc/VMHeap.h: Removed.
- 5:26 AM Changeset in webkit [256148] by
-
- 8 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore
Merge r256087 - Throw OutOfMemory exception instead of crashing if DirectArguments/ScopedArguments can't be created
https://bugs.webkit.org/show_bug.cgi?id=207423
Reviewed by Mark Lam.
AllocationFailureMode::Assert is problematic because fuzzers keep producing spurious error reports when they generate code that tries allocating infinite amount of memory.
The right approach is to use AllocationFailureMode::ReturnNull, and throw a JS exception upon receiving null.
In this patch I fixed two functions that were using AllocationFailureMode::Assert:
DirectArguments::DirectArguments::overrideThings
GenericArguments<Type>::initModifiedArgumentsDescriptor
No test added, because the only test we have is highly non-deterministic/flaky (only triggers about 10 to 20% of the time even before the fix).
- runtime/DirectArguments.h:
- runtime/GenericArguments.h:
- runtime/GenericArgumentsInlines.h:
(JSC::GenericArguments<Type>::deletePropertyByIndex):
(JSC::GenericArguments<Type>::defineOwnProperty):
(JSC::GenericArguments<Type>::initModifiedArgumentsDescriptor):
(JSC::GenericArguments<Type>::initModifiedArgumentsDescriptorIfNecessary):
(JSC::GenericArguments<Type>::setModifiedArgumentDescriptor):
- runtime/ScopedArguments.h:
- 5:25 AM Changeset in webkit [256147] by
-
- 75 edits10 copies13 adds1 delete in releases/WebKitGTK/webkit-2.28/Source
Merge r256086 - Web Inspector: Revert slim toolbar
https://bugs.webkit.org/show_bug.cgi?id=207422
Reviewed by Timothy Hatcher.
The slim toolbar needs a little more work before landing.
This patch reverts r255547, r255557, r255890, r255892, r255893, r255901, r255980.
Source/WebCore:
- en.lproj/Localizable.strings:
- inspector/InspectorFrontendClient.h:
- inspector/InspectorFrontendClientLocal.cpp:
- inspector/InspectorFrontendClientLocal.h:
- inspector/InspectorFrontendHost.cpp:
- inspector/InspectorFrontendHost.h:
- inspector/InspectorFrontendHost.idl:
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Base/Main.js:
- UserInterface/Base/Setting.js:
- UserInterface/Controllers/ConsoleManager.js:
- UserInterface/Debug/Bootstrap.js:
- UserInterface/Images/NewTab.svg: Added.
- UserInterface/Images/NewTabPlus.svg: Added.
- UserInterface/Images/Origin.svg:
- UserInterface/Images/SearchResults.svg: Added.
- UserInterface/Images/SourcesPaused.svg: Removed.
- UserInterface/Main.html:
- UserInterface/Models/DebuggerDashboard.js: Copied from Source/WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css.
- UserInterface/Models/DefaultDashboard.js: Added.
- UserInterface/Views/ActivateButtonToolbarItem.js: Copied from Source/WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css.
- UserInterface/Views/AuditTabContentView.js:
- UserInterface/Views/ButtonNavigationItem.css:
- UserInterface/Views/ButtonNavigationItem.js:
- UserInterface/Views/ButtonToolbarItem.css: Copied from Source/WebInspectorUI/UserInterface/Views/DividerNavigationItem.css.
- UserInterface/Views/ButtonToolbarItem.js: Copied from Source/WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css.
- UserInterface/Views/ConsoleTabContentView.js:
- UserInterface/Views/ContentBrowserTabContentView.js:
- UserInterface/Views/ControlToolbarItem.css: Copied from Source/WebInspectorUI/UserInterface/Views/DividerNavigationItem.css.
- UserInterface/Views/ControlToolbarItem.js: Copied from Source/WebInspectorUI/UserInterface/Views/DividerNavigationItem.css.
- UserInterface/Views/DOMTreeContentView.css:
- UserInterface/Views/DashboardContainerView.css: Added.
- UserInterface/Views/DashboardContainerView.js: Added.
- UserInterface/Views/DashboardView.js: Copied from Source/WebInspectorUI/UserInterface/Views/PinnedTabBarItem.js.
- UserInterface/Views/DebuggerDashboardView.css: Added.
- UserInterface/Views/DebuggerDashboardView.js: Added.
- UserInterface/Views/DefaultDashboardView.css: Added.
- UserInterface/Views/DefaultDashboardView.js: Added.
- UserInterface/Views/DividerNavigationItem.css:
- UserInterface/Views/ElementsTabContentView.js:
- UserInterface/Views/FlexibleSpaceNavigationItem.css:
- UserInterface/Views/GeneralTabBarItem.js:
- UserInterface/Views/GraphicsTabContentView.js:
- UserInterface/Views/GroupNavigationItem.js:
- UserInterface/Views/LayersTabContentView.js:
- UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js.
- UserInterface/Views/Main.css:
- UserInterface/Views/NavigationBar.js:
- UserInterface/Views/NetworkDetailView.css:
- UserInterface/Views/NetworkTabContentView.js:
- UserInterface/Views/NetworkTableContentView.css:
- UserInterface/Views/NetworkTableContentView.js:
- UserInterface/Views/NewTabContentView.css: Copied from Source/WebInspectorUI/UserInterface/Views/RenderingFrameTimelineOverviewGraph.css.
- UserInterface/Views/NewTabContentView.js: Added.
- UserInterface/Views/PinnedTabBarItem.js:
- UserInterface/Views/QuickConsole.js:
- UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:
- UserInterface/Views/SearchTabContentView.js:
- UserInterface/Views/SettingsTabContentView.js:
- UserInterface/Views/Sidebar.js:
- UserInterface/Views/SizesToFitNavigationBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/FlexibleSpaceNavigationItem.css.
- UserInterface/Views/SourcesTabContentView.js:
- UserInterface/Views/StorageTabContentView.js:
- UserInterface/Views/TabBar.css:
- UserInterface/Views/TabBar.js:
- UserInterface/Views/TabBarItem.js:
- UserInterface/Views/TabBrowser.js:
- UserInterface/Views/TabContentView.js:
- UserInterface/Views/TimelineOverview.css:
- UserInterface/Views/TimelineRecordFrame.css:
- UserInterface/Views/TimelineRuler.css:
- UserInterface/Views/TimelineTabContentView.js:
- UserInterface/Views/Toolbar.css: Added.
- UserInterface/Views/Toolbar.js: Added.
- UserInterface/Views/Variables.css:
Source/WebKit:
- UIProcess/Inspector/RemoteWebInspectorProxy.cpp:
- UIProcess/Inspector/RemoteWebInspectorProxy.h:
- UIProcess/Inspector/RemoteWebInspectorProxy.messages.in:
- UIProcess/Inspector/WebInspectorProxy.cpp:
- UIProcess/Inspector/WebInspectorProxy.h:
- UIProcess/Inspector/WebInspectorProxy.messages.in:
- UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:
- UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:
- UIProcess/Inspector/mac/RemoteWebInspectorProxyMac.mm:
- UIProcess/Inspector/mac/WebInspectorProxyMac.mm:
- UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:
- UIProcess/Inspector/win/WebInspectorProxyWin.cpp:
- WebProcess/Inspector/RemoteWebInspectorUI.cpp:
- WebProcess/Inspector/RemoteWebInspectorUI.h:
- WebProcess/Inspector/WebInspectorUI.cpp:
- WebProcess/Inspector/WebInspectorUI.h:
Source/WebKitLegacy/ios:
- WebCoreSupport/WebInspectorClientIOS.mm:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebInspectorClient.h:
- WebCoreSupport/WebInspectorClient.mm:
- 5:25 AM Changeset in webkit [256146] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r256084 - [IPC Hardening] Protect against bad parameters in WebProcessProxy::getPluginProcessConnection()
https://bugs.webkit.org/show_bug.cgi?id=207416
<rdar://problem/58617244>
Reviewed by David Kilzer.
- UIProcess/Plugins/PluginProcessManager.cpp:
(WebKit::PluginProcessManager::getPluginProcessConnection):
- UIProcess/Plugins/PluginProcessManager.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPluginProcessConnection):
- 5:25 AM Changeset in webkit [256145] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source
Merge r256081 - Harden HashTable IPC decoders
https://bugs.webkit.org/show_bug.cgi?id=207415
Reviewed by Chris Dumez.
Source/WebKit:
- Platform/IPC/ArgumentCoders.h:
Source/WTF:
- wtf/HashCountedSet.h:
- 5:25 AM Changeset in webkit [256144] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r256077 - Nullptr crash in WebCore::FontFamilySpecificationCoreText::fontRanges
https://bugs.webkit.org/show_bug.cgi?id=207236
<rdar://problem/57214193>
Patch by Jack Lee <Jack Lee> on 2020-02-07
Reviewed by Ryosuke Niwa.
Add a state variable in FontDescriptionKey for tracking hash entry deletion.
- platform/graphics/FontCache.h:
(WebCore::FontDescriptionKey::FontDescriptionKey):
(WebCore::FontDescriptionKey::operator== const):
(WebCore::FontDescriptionKey::isHashTableDeletedValue const):
- 5:25 AM Changeset in webkit [256143] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28/Source/ThirdParty/ANGLE
Merge r256076 - Try adding glBindFramebuffer flush workaround to ANGLE as remedy for flaky WebGL tests
https://bugs.webkit.org/show_bug.cgi?id=206625
Patch by Kenneth Russell <kbr@chromium.org> on 2020-02-07
Reviewed by Dean Jackson.
- include/platform/FeaturesGL.h:
- src/libANGLE/renderer/gl/StateManagerGL.cpp:
(rx::StateManagerGL::bindFramebuffer):
- src/libANGLE/renderer/gl/renderergl_utils.cpp:
(rx::nativegl_gl::InitializeFeatures):
- 5:25 AM Changeset in webkit [256142] by
-
- 34 edits in releases/WebKitGTK/webkit-2.28/Source
Merge r256075 - [Hardening] Validate Geolocation access permission on UIProcess side
https://bugs.webkit.org/show_bug.cgi?id=207393
<rdar://problem/56816051>
Reviewed by Brent Fulgham.
Source/WebCore:
Validate Geolocation access permission on UIProcess side, instead of only relying solely on the WebProcess for this.
The workflow is as follows:
- The Geolocation objects request for permission to access location data
- The UIProcess shows a prompt
- If the user accepts, the UIProcess sends an authorization token (a UUID string) to the Geolocation object.
- When the Geolocation object later asks for location updates from the UIProcess, the UIProcess validates that this is a valid authorization token (one that it previously issued for this page)
- When the Geolocation objects gets destroyed (or resets its permission), the authorization token gets revoked so that it is no longer valid.
No new tests, no Web-facing behavior change, merely hardening.
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::~Geolocation):
(WebCore::Geolocation::resumeTimerFired):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::stop):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::revokeAuthorizationTokenIfNecessary):
(WebCore::Geolocation::resetIsAllowed):
- Modules/geolocation/Geolocation.h:
- Modules/geolocation/GeolocationClient.h:
(WebCore::GeolocationClient::revokeAuthorizationToken):
- Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::addObserver):
(WebCore::GeolocationController::revokeAuthorizationToken):
(WebCore::GeolocationController::activityStateDidChange):
- Modules/geolocation/GeolocationController.h:
- platform/mock/GeolocationClientMock.cpp:
(WebCore::GeolocationClientMock::permissionTimerFired):
(WebCore::GeolocationClientMock::startUpdating):
- platform/mock/GeolocationClientMock.h:
Source/WebKit:
- UIProcess/GeolocationPermissionRequestManagerProxy.cpp:
(WebKit::GeolocationPermissionRequestManagerProxy::didReceiveGeolocationPermissionDecision):
(WebKit::GeolocationPermissionRequestManagerProxy::isValidAuthorizationToken const):
(WebKit::GeolocationPermissionRequestManagerProxy::revokeAuthorizationToken):
- UIProcess/GeolocationPermissionRequestManagerProxy.h:
- UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::startUpdating):
- UIProcess/WebGeolocationManagerProxy.h:
- UIProcess/WebGeolocationManagerProxy.messages.in:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::geolocationPermissionRequestManager):
- UIProcess/WebPageProxy.messages.in:
- WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):
(WebKit::GeolocationPermissionRequestManager::revokeAuthorizationToken):
(WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
- WebProcess/Geolocation/GeolocationPermissionRequestManager.h:
- WebProcess/Geolocation/WebGeolocationManager.cpp:
(WebKit::WebGeolocationManager::registerWebPage):
- WebProcess/Geolocation/WebGeolocationManager.h:
- WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
(WebKit::WebGeolocationClient::startUpdating):
(WebKit::WebGeolocationClient::revokeAuthorizationToken):
- WebProcess/WebCoreSupport/WebGeolocationClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::didReceiveGeolocationPermissionDecision):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebGeolocationClient.h:
- WebCoreSupport/WebGeolocationClient.mm:
(WebGeolocationClient::startUpdating):
(WebGeolocationClient::requestPermission):
(-[WebGeolocationPolicyListener allow]):
(-[WebGeolocationPolicyListener deny]):
Source/WebKitLegacy/win:
- WebCoreSupport/WebGeolocationClient.cpp:
(WebGeolocationClient::startUpdating):
- WebCoreSupport/WebGeolocationClient.h:
- 5:24 AM Changeset in webkit [256141] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r256068 - Crash under WKBundleFrameForJavaScriptContext dereferencing a NULL WebCore::Frame.
https://bugs.webkit.org/show_bug.cgi?id=207407
rdar://problem/59206599
Reviewed by Tim Horton.
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::frameForContext): Add a null check for the coreFrame.
- 5:24 AM Changeset in webkit [256140] by
-
- 6 edits in releases/WebKitGTK/webkit-2.28
Merge r256034 - Align getDisplayMedia() with spec
https://bugs.webkit.org/show_bug.cgi?id=207191
<rdar://problem/59151017>
Reviewed by Eric Carlson.
Source/WebCore:
Update WebIDL as per spec to have the correct default values for getDisplayMedia.
Covered by updated test.
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getDisplayMedia):
- Modules/mediastream/MediaDevices.h:
- Modules/mediastream/MediaDevices.idl:
LayoutTests:
- fast/mediastream/screencapture-user-gesture.html:
- 5:24 AM Changeset in webkit [256139] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r256023 - BackgroundProcessResponsivenessTimer should not be active if running active pages and service workers
https://bugs.webkit.org/show_bug.cgi?id=207264
Reviewed by Chris Dumez.
In case a service worker is running, the process might still be foreground if a page is running in the same process.
Not observable.
- UIProcess/BackgroundProcessResponsivenessTimer.cpp:
(WebKit::BackgroundProcessResponsivenessTimer::shouldBeActive const):
- 5:24 AM Changeset in webkit [256138] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r256022 - Address post-landing review comments from Darin on r255989.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::terminateServiceWorkerProcess):
- 5:24 AM Changeset in webkit [256137] by
-
- 9 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore
Merge r256015 - [JSC] CodeBlock::shrinkToFit should shrink m_constantRegisters and m_constantsSourceCodeRepresentation in 64bit architectures
https://bugs.webkit.org/show_bug.cgi?id=207356
Reviewed by Mark Lam.
Only 32bit architectures are using m_constantRegisters's address. 64bit architectures are not relying on m_constantRegisters's address.
This patches fixes the thing so that CodeBlock::shrinkToFit will shrink m_constantRegisters and m_constantsSourceCodeRepresentation
regardless of whether this is EarlyShrink or not. We also move DFG/FTL's LateShrink call to the place after calling DFGCommon reallyAdd
since they can add more constant registers.
Relanding it by fixing dead-lock.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::shrinkToFit):
- bytecode/CodeBlock.h:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGJITFinalizer.cpp:
(JSC::DFG::JITFinalizer::finalizeCommon):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
- jit/JIT.cpp:
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::emitLoadDouble):
(JSC::JIT::emitLoadInt32ToDouble): Deleted.
- 5:24 AM Changeset in webkit [256136] by
-
- 16 edits in releases/WebKitGTK/webkit-2.28
Merge r256013 - [GTK][WPE] Add same-site cookie support
https://bugs.webkit.org/show_bug.cgi?id=204137
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Implements same-site cookie support in the soup backend.
- platform/network/HTTPParsers.cpp:
(WebCore::isSafeMethod):
- platform/network/HTTPParsers.h:
- platform/network/SameSiteInfo.cpp:
(WebCore::SameSiteInfo::create):
- platform/network/SameSiteInfo.h:
(WebCore::SameSiteInfo::encode const):
(WebCore::SameSiteInfo::decode):
- platform/network/soup/CookieSoup.cpp:
(WebCore::coreSameSitePolicy):
(WebCore::soupSameSitePolicy):
(WebCore::Cookie::Cookie):
(WebCore::Cookie::toSoupCookie const):
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
- platform/network/soup/ResourceRequestSoup.cpp:
(WebCore::ResourceRequest::updateSoupMessageMembers const):
(WebCore::ResourceRequest::updateFromSoupMessage):
Source/WebKit:
Implements same-site cookie support in the soup backend.
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::continueHTTPRedirection):
Tools:
Update libsoup to 2.69.90 in JHBuild.
- gtk/jhbuild.modules:
- wpe/jhbuild.modules:
LayoutTests:
Updated GTK/WPE test expectations to pass most same-site cookie tests
matching the Apple ports.
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:24 AM Changeset in webkit [256135] by
-
- 25 edits in releases/WebKitGTK/webkit-2.28
Merge r256012 - Fix fetch/api/policies/referrer-origin-worker.html
https://bugs.webkit.org/show_bug.cgi?id=206520
Patch by Rob Buis <rbuis@igalia.com> on 2020-02-07
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Updated improved test result.
- web-platform-tests/fetch/api/policies/referrer-origin-when-cross-origin-worker-expected.txt:
- web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
Source/WebCore:
Expose referrer policy as part of the worker global scope [1] through
the new ScriptExecutionContext::referrerPolicy method.
Call it as environment settings object when starting a fetch in case
the FetchRequestInit has no referrerPolicy set [2].
Test: imported/w3c/web-platform-tests/fetch/api/policies/referrer-origin-worker.html
[1] https://html.spec.whatwg.org/multipage/workers.html#set-up-a-worker-environment-settings-object
[2] https://fetch.spec.whatwg.org/#ref-for-concept-main-fetch① (Step 2.5)
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::start):
- dom/Document.h:
(WebCore::Document::referrerPolicy const): Deleted.
- dom/ScriptExecutionContext.h:
- workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
- workers/DedicatedWorkerGlobalScope.h:
- workers/DedicatedWorkerThread.cpp:
(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
- workers/DedicatedWorkerThread.h:
- workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::referrerPolicy const):
- workers/WorkerGlobalScope.h:
- workers/WorkerGlobalScopeProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
- workers/WorkerMessagingProxy.h:
- workers/WorkerThread.cpp:
(WebCore::WorkerParameters::isolatedCopy const):
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::workerThread):
- workers/WorkerThread.h:
- workers/service/ServiceWorkerGlobalScope.cpp:
(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):
- workers/service/ServiceWorkerGlobalScope.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::ServiceWorkerThread):
(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
- workers/service/context/ServiceWorkerThread.h:
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::referrerPolicy const):
- worklets/WorkletGlobalScope.h:
- 5:24 AM Changeset in webkit [256134] by
-
- 4 edits in releases/WebKitGTK/webkit-2.28
Merge r256011 - Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
https://bugs.webkit.org/show_bug.cgi?id=207183
Source/WTF:
- wtf/HashTable.h:
(WTF::HashTable::shouldExpand const):
(WTF::KeyTraits>::computeBestTableSize):
(WTF::HashTable::shouldExpand): Deleted.
(WTF::HashTableCapacityForSize::capacityForSize): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/HashSet.cpp:
(TestWebKitAPI::testInitialCapacity):
- 5:23 AM Changeset in webkit [256133] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebInspectorUI
Merge r256006 - [Web Inspector][WinCairo] Selecting an error message in Console causes "TypeError: selection.focusNode.closest is not a function."
https://bugs.webkit.org/show_bug.cgi?id=207248
Reviewed by Devin Rousso.
r242174 replaced Node.enclosingNodeOrSelfWithClass with
Element.closest. However, selection.focusNode isn't necessarily an
Element, but can be a Text node.
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype._mousemove): Use selection.focusNode.parentElement.closest
if selection.focusNode is not a instance of Element.
- 5:23 AM Changeset in webkit [256132] by
-
- 27 edits in releases/WebKitGTK/webkit-2.28/Source/JavaScriptCore
Merge r256003 - Most of B3 and Air does not need to include CCallHelpers.h
https://bugs.webkit.org/show_bug.cgi?id=206975
Reviewed by Mark Lam.
They only do to use CCallHelpers::Jump or CCallHelpers::Label.
But CCallHelpers inherit those from MacroAssembler. And MacroAssembler.h is dramatically cheaper to include (since CCallHelpers includes AssemblyHelpers which includes CodeBlock.h which includes roughly the entire runtime).
- b3/B3CheckSpecial.cpp:
- b3/B3CheckSpecial.h:
- b3/B3LowerMacros.cpp:
- b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::generate):
- b3/B3PatchpointSpecial.h:
- b3/B3StackmapGenerationParams.cpp:
(JSC::B3::StackmapGenerationParams::successorLabels const):
- b3/B3StackmapGenerationParams.h:
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
- b3/air/AirCCallSpecial.cpp:
- b3/air/AirCCallSpecial.h:
- b3/air/AirCode.cpp:
- b3/air/AirCode.h:
(JSC::B3::Air::Code::entrypointLabel const):
- b3/air/AirCustom.cpp:
(JSC::B3::Air::CCallCustom::generate):
(JSC::B3::Air::ShuffleCustom::generate):
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
- b3/air/AirCustom.h:
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::EntrySwitchCustom::generate):
- b3/air/AirDisassembler.cpp:
(JSC::B3::Air::Disassembler::addInst):
- b3/air/AirDisassembler.h:
- b3/air/AirGenerationContext.h:
- b3/air/AirInst.h:
- b3/air/AirPrintSpecial.cpp:
(JSC::B3::Air::PrintSpecial::generate):
- b3/air/AirPrintSpecial.h:
- b3/air/AirSpecial.h:
- b3/air/AirValidate.cpp:
- b3/air/opcode_generator.rb:
- 5:23 AM Changeset in webkit [256131] by
-
- 1 edit2 adds in releases/WebKitGTK/webkit-2.28/LayoutTests
Merge r255996 - Add slot based test for the accelerated animations freezing bug (201048)
https://bugs.webkit.org/show_bug.cgi?id=207359
Reviewed by Ryosuke Niwa.
201048 had a simpler test case but it is good to add one for the original problem too.
Based on the original test by Tim Guan-tin Chien.
- webanimations/accelerated-animation-slot-invalidation-expected.html: Added.
- webanimations/accelerated-animation-slot-invalidation.html: Added.
- 5:23 AM Changeset in webkit [256130] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebCore
Merge r255990 - webgl/1.0.3/conformance/glsl/misc/shader-with-reserved-words.html is timing out on some hardware configurations
https://bugs.webkit.org/show_bug.cgi?id=205739
Patch by James Darpinian <James Darpinian> on 2020-02-06
Reviewed by Dean Jackson.
Optimize disabling ANGLE_texture_rectangle.
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLOpenGL::compileShader):
- 5:23 AM Changeset in webkit [256129] by
-
- 2 edits in releases/WebKitGTK/webkit-2.28/Source/WebKit
Merge r255989 - REGRESSION (r254706): Crash under WebProcessPool::terminateServiceWorkerProcess()
https://bugs.webkit.org/show_bug.cgi?id=207354
<rdar://problem/59184818>
Reviewed by Geoffrey Garen.
No new tests, not easily testable AFAIK since this happens on failure to send sync IPC to
the service worker when terminating it.
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::terminateServiceWorkerProcess):
'auto' resolved to 'WeakPtr<WebProcessProxy>' in this method and the call to
disableServiceWorkers() could cause the process to get destroyed. We would then
do a null dereference on the next line.
- 5:23 AM Changeset in webkit [256128] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28
Merge r255986 - Web Inspector: show JavaScript Worker terminated state as an internal property
https://bugs.webkit.org/show_bug.cgi?id=207347
Reviewed by Brian Burg.
Source/WebCore:
Test: inspector/worker/worker-create-and-terminate.html
- inspector/WebInjectedScriptHost.cpp:
(WebCore::WebInjectedScriptHost::getInternalProperties):
- workers/Worker.h:
(WebCore::Worker::wasTerminated): Added.
LayoutTests:
- inspector/worker/worker-create-and-terminate.html:
Add assertions throughout the test to check that the
terminated
value matches what the
frontend knows.
- 5:23 AM Changeset in webkit [256127] by
-
- 5 edits in releases/WebKitGTK/webkit-2.28
Merge r255982 - Web Inspector: REGRESSION(