⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Feb 12, 2020:

11:20 PM Changeset in webkit [256503] by yoshiaki.jitsukawa@sony.com
  • 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 9 edits
    6 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 mark.lam@apple.com
  • 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

(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 Alan Bujtas
  • 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 ysuzuki@apple.com
  • 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 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 Russell Epstein
  • 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:

  1. 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.
  2. Make StorageAreaMap::connect() private as it is never called from outside the class
  3. Reorder data members for better packing
  4. Use modern loops in the implementation
  5. 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.
  6. Mark class as final
  7. Replace LOG_ERROR() with RELEASE_LOG_ERROR() so that we can see error logging in sysdiagnoses
  8. 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 ysuzuki@apple.com
  • 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 Ryan Haddad
  • 30 edits
    8 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 Jonathan Bedard
  • 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 commit-queue@webkit.org
  • 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 Alan Bujtas
  • 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 Russell Epstein
  • 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 Jason_Lawrence
  • 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 basuke.suzuki@sony.com
  • 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 Jason_Lawrence
  • 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 Wenson Hsieh
  • 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 a border-radius).

  • editing/input/composition-highlights-expected.html:
  • editing/input/composition-highlights.html:
3:03 PM Changeset in webkit [256484] by Truitt Savell
  • 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 Jonathan Bedard
  • 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 ysuzuki@apple.com
  • 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 define bitsOfXXX 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 Alan Coon
  • 17 edits in branches/safari-609-branch/Source/WebCore

Revert r256409. rdar://problem/59298138

2:50 PM Changeset in webkit [256480] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebCore

Revert r256457. rdar://problem/59298138

2:50 PM Changeset in webkit [256479] by Alan Coon
  • 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 Jason_Lawrence
  • 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 Simon Fraser
  • 49 edits
    6 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 Brent Fulgham
  • 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 Jason_Lawrence
  • 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 BJ Burg
  • 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 Brent Fulgham
  • 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 Russell Epstein
  • 2 edits
    24 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 Russell Epstein
  • 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 youenn@apple.com
  • 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 Russell Epstein
  • 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 ysuzuki@apple.com
  • 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 ysuzuki@apple.com
  • 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 Alan Bujtas
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Said Abou-Hallawa
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 youenn@apple.com
  • 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 Alan Coon
  • 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 Alan Bujtas
  • 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 Russell Epstein
  • 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 commit-queue@webkit.org
  • 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 pvollan@apple.com
  • 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 Jacob Uphoff
  • 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 Jonathan Bedard
  • 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 Simon Fraser
  • 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 Megan Gardner
  • 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 pvollan@apple.com
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Chris Dumez
  • 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 Jacob Uphoff
  • 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 commit-queue@webkit.org
  • 2 edits
    3 moves
    3 adds
    3 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 achristensen@apple.com
  • 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 dino@apple.com
  • 2 edits
    24 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 Andres Gonzalez
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Brent Fulgham
  • 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 Jacob Uphoff
  • 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 Alan Bujtas
  • 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 cturner@igalia.com
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Wenson Hsieh
  • 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 youenn@apple.com
  • 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 Alan Bujtas
  • 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 clopez@igalia.com
  • 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 cturner@igalia.com
  • 15 edits
    4 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 4 edits
    2 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 youenn@apple.com
  • 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 commit-queue@webkit.org
  • 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 Peng Liu
  • 9 edits
    3 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 ysuzuki@apple.com
  • 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,

  1. Use PackedPtr for CSSValue* in ImmutableStyleProperties so that we can cut some bytes
  2. 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 commit-queue@webkit.org
  • 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 clopez@igalia.com
  • 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 Fujii Hironori
  • 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 Fujii Hironori
  • 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 Brent Fulgham
  • 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 Alan Bujtas
  • 42 edits
    2 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 Russell Epstein
  • 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 Alan Coon
  • 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 sihui_liu@apple.com
  • 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 Alan Coon
  • 26 edits
    2 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 Alan Coon
  • 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 Alan Coon
  • 2 edits in branches/safari-609-branch/Source/JavaScriptCore

Apply patch. rdar://problem/59299139

5:00 PM Changeset in webkit [256410] by Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Wenson Hsieh
  • 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 stored focusedElement variable instead of
m_focusedElement, on WebPage.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

4:49 PM Changeset in webkit [256400] by Ryan Haddad
  • 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 Brent Fulgham
  • 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 Jason_Lawrence
  • 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 Jason_Lawrence
  • 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 Chris Dumez
  • 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 ddkilzer@apple.com
  • 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 Jason_Lawrence
  • 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 Alan Coon
  • 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 Alan Coon
  • 12 edits
    2 adds
    2 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 Alan Coon
  • 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 Alan Coon
  • 5 edits
    1 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 54 edits
    4 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 Alan Bujtas
  • 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 commit-queue@webkit.org
  • 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 Jonathan Bedard
  • 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 youenn@apple.com
  • 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 Alan Bujtas
  • 18 edits
    2 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 Jason_Lawrence
  • 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 dbates@webkit.org
  • 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 youenn@apple.com
  • 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 achristensen@apple.com
  • 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 Jason_Lawrence
  • 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 Nikita Vasilyev
  • 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 Ryan Haddad
  • 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 Peng Liu
  • 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 pvollan@apple.com
  • 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 Jason_Lawrence
  • 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 Alan Coon
  • 3 edits
    3 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 Alan Coon
  • 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 Alan Coon
  • 8 edits
    8 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 Alan Coon
  • 3 edits
    2 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 Alan Coon
  • 9 edits
    2 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 Alan Coon
  • 6 edits
    4 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 Alan Coon
  • 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 Alan Coon
  • 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 Alan Coon
  • 8 edits in branches/safari-609.1.17.1-branch/Source

Versioning.

1:53 PM Changeset in webkit [256360] by Megan Gardner
  • 6 edits
    2 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 Alan Coon
  • 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 Russell Epstein
  • 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 Russell Epstein
  • 3 edits
    3 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 Russell Epstein
  • 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 Russell Epstein
  • 8 edits
    6 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 Russell Epstein
  • 3 edits
    2 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 eric.carlson@apple.com
  • 60 edits
    1 copy
    5 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 Russell Epstein
  • 9 edits
    2 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 Russell Epstein
  • 6 edits
    4 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 Russell Epstein
  • 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 Russell Epstein
  • 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 Russell Epstein
  • 20 edits
    17 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 Andres Gonzalez
  • 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 eric.carlson@apple.com
  • 4 edits
    2 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 achristensen@apple.com
  • 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 Jason_Lawrence
  • 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 Wenson Hsieh
  • 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
to work_interval_create with WORK_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 Russell Epstein
  • 3 edits
    3 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 Russell Epstein
  • 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 Russell Epstein
  • 8 edits
    8 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 Russell Epstein
  • 3 edits
    2 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 Russell Epstein
  • 9 edits
    2 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 Russell Epstein
  • 6 edits
    4 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 Russell Epstein
  • 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 Russell Epstein
  • 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 Brent Fulgham
  • 2 edits in branches/safari-609-branch/Source/WebKit

Apply patch. rdar://problem/59354409

11:41 AM Changeset in webkit [256333] by Jacob Uphoff
  • 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 achristensen@apple.com
  • 16 edits
    1 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 Russell Epstein
  • 8 edits in branches/safari-609.1.17.0-branch/Source

Versioning.

11:25 AM Changeset in webkit [256330] by Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Russell Epstein
  • 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 Russell Epstein
  • 1 delete in branches/Safari-609.1.17.1

Delete branch.

11:12 AM Changeset in webkit [256326] by Russell Epstein
  • 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 Russell Epstein
  • 1 delete in branches/Safari-609.1.17.0

Delete branch.

11:06 AM Changeset in webkit [256324] by Jacob Uphoff
  • 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 Russell Epstein
  • 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 Russell Epstein
  • 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 Truitt Savell
  • 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 Chris Fleizach
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 youenn@apple.com
  • 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 Jacob Uphoff
  • 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 commit-queue@webkit.org
  • 7 edits
    1 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 youenn@apple.com
  • 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 Jacob Uphoff
  • 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 achristensen@apple.com
  • 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 Alan Bujtas
  • 8 edits
    2 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Michael Catanzaro
Update instructions for updating ANGLE (diff)
8:36 AM Changeset in webkit [256307] by Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Jacob Uphoff
  • 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 Alan Bujtas
  • 20 edits
    1 copy
    1 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 youenn@apple.com
  • 17 edits
    1 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 commit-queue@webkit.org
  • 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 Carlos Garcia Campos
  • 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 commit-queue@webkit.org
  • 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 commit-queue@webkit.org
  • 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 Carlos Garcia Campos
  • 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 Wenson Hsieh
  • 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 Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.27.90

WPE WebKit 2.27.90

12:21 AM Changeset in webkit [256295] by Adrian Perez de Castro
  • 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 Chris Fleizach
  • 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:
Note: See TracTimeline for information about the timeline view.