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

Timeline



Jan 5, 2020:

9:47 PM Changeset in webkit [254048] by eric.carlson@apple.com
  • 19 edits
    1 copy
    1 add in trunk/Source

[Media in GPU process] Add remote MIME type cache
https://bugs.webkit.org/show_bug.cgi?id=205763
<rdar://problem/58312152>

Reviewed by Dean Jackson.
Source/WebCore:

Create a MIME type cache for RemoteMediaPlayerManager so types without a
'codecs' parameter don't typically require IPC, and when it is required the
result is cached so it is only required once.

  • platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::supportsContainerType):
(WebCore::MIMETypeCache::canDecodeType):
(WebCore::MIMETypeCache::setSupportedTypes):
(WebCore::MIMETypeCache::staticContainerTypeList):
(WebCore::MIMETypeCache::isUnsupportedContainerType):
(WebCore::MIMETypeCache::isAvailable const):
(WebCore::MIMETypeCache::isEmpty const):
(WebCore::MIMETypeCache::initializeCache):
(WebCore::MIMETypeCache::canDecodeExtendedType):
(WebCore::MIMETypeCache::canDecodeTypePrivate): Deleted.
(WebCore::MIMETypeCache::addSupportedTypes): Deleted.
(WebCore::MIMETypeCache::addSupportedType): Deleted.

  • platform/graphics/MIMETypeCache.h:

(WebCore::MIMETypeCache::isUnsupportedContainerType): Deleted.
(WebCore::MIMETypeCache::isAvailable const): Deleted.
(WebCore::MIMETypeCache::isEmpty const): Deleted.
(WebCore::MIMETypeCache::canDecodeTypeInternal): Deleted.
(WebCore::MIMETypeCache::initializeCache): Deleted.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.h:
  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm:

(WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):
(WebCore::AVAssetMIMETypeCache::setSupportedTypes):
(WebCore::AVAssetMIMETypeCache::canDecodeTypeInternal): Deleted.

  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.h:
  • platform/graphics/avfoundation/objc/AVStreamDataParserMIMETypeCache.mm:

(WebCore::AVStreamDataParserMIMETypeCache::canDecodeExtendedType):
(WebCore::AVStreamDataParserMIMETypeCache::canDecodeTypeInternal): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsTypeAndCodecs):
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):

Source/WebKit:

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp:

(WebKit::RemoteMediaPlayerManagerProxy::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerManagerProxy::canDecodeExtendedType):
(WebKit::RemoteMediaPlayerManagerProxy::supportsType): Deleted.

  • GPUProcess/media/RemoteMediaPlayerManagerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerManagerProxy.messages.in:
  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.cpp: Added.

(WebKit::RemoteMediaPlayerMIMETypeCache::RemoteMediaPlayerMIMETypeCache):
(WebKit::RemoteMediaPlayerMIMETypeCache::mimeCache const):
(WebKit::RemoteMediaPlayerMIMETypeCache::isAvailable const):
(WebKit::RemoteMediaPlayerMIMETypeCache::staticContainerTypeList):
(WebKit::RemoteMediaPlayerMIMETypeCache::isUnsupportedContainerType):
(WebKit::RemoteMediaPlayerMIMETypeCache::canDecodeExtendedType):
(WebKit::RemoteMediaPlayerMIMETypeCache::supportsTypeAndCodecs):
(WebKit::RemoteMediaPlayerMIMETypeCache::initializeCache):

  • WebProcess/GPU/media/RemoteMediaPlayerMIMETypeCache.h: Added.
  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::mimeCaches):
(WebKit::RemoteMediaPlayerManager::typeCache):
(WebKit::RemoteMediaPlayerManager::initialize):
(WebKit::RemoteMediaPlayerManager::getSupportedTypes):
(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):

  • WebProcess/GPU/media/RemoteMediaPlayerManager.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::setMediaMIMETypes):

5:36 PM Changeset in webkit [254047] by Wenson Hsieh
  • 5 edits in trunk/Source/WebCore

Work towards implementing DisplayList::DrawGlyphs
https://bugs.webkit.org/show_bug.cgi?id=205782

Reviewed by Sam Weinig.

Encode DrawGlyphs when serializing the drawing item over IPC, with the exception of data in WebCore::Font.
No change in behavior.

  • platform/graphics/GlyphBuffer.h:

Make GlyphBufferAdvance codable.

(WebCore::GlyphBufferAdvance::encode const):
(WebCore::GlyphBufferAdvance::decode):

  • platform/graphics/displaylists/DisplayListItems.cpp:
  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):
(WebCore::DisplayList::Item::encode const):
(WebCore::DisplayList::Item::decode):

  • platform/text/TextFlags.h:

Add EnumTraits for FontSmoothingMode, so that it is encodable using <<.

4:20 PM Changeset in webkit [254046] by weinig@apple.com
  • 25 edits
    1 add in trunk

Further simplify StringBuilder usage by standardizing hex formating to a single hex() function
https://bugs.webkit.org/show_bug.cgi?id=205759

Reviewed by Dean Jackson.

Source/JavaScriptCore:

  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::json):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::encode):
(JSC::globalFuncEscape):
Replace appendUnsignedAsHex() and appendByteAsHex() with append(hex()).

Source/WebCore:

  • Modules/websockets/WebSocket.cpp:

(WebCore::encodeProtocolString):

  • css/CSSMarkup.cpp:

(WebCore::serializeCharacterAsCodePoint):

  • css/parser/CSSParserToken.cpp:

(WebCore::CSSParserToken::serialize const):

  • platform/graphics/Color.cpp:

(WebCore::Color::serialized const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::generateHashedName):

  • platform/network/curl/CurlCacheEntry.cpp:

(WebCore::CurlCacheEntry::generateBaseFilename):

  • rendering/RenderTreeAsText.cpp:

(WebCore::quoteAndEscapeNonPrintables):
Replace appendByteAsHex()/appendUnsignedAsHex()/appendUnsignedAsHexFixedSize() with append(hex()).

  • platform/network/FormDataBuilder.cpp:

(WebCore::FormDataBuilder::appendFormURLEncoded):
This was the last non-StringBuilder/makeString use of appendByteAsHex. Rather than keep appendByteAsHex
around, it is replaced with direct appends of the character buffer hex() produces.

Source/WebKit:

  • UIProcess/DeviceIdHashSaltStorage.cpp:

(WebKit::DeviceIdHashSaltStorage::completeDeviceIdHashSaltForOriginCall):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::loggingString):
Replace appendUnsignedAsHex() with append(hex()).

Source/WTF:

Removes appendByteAsHex, appendUnsignedAsHex and appendUnsignedAsHexFixedSize with the
following mappings:

appendByteAsHex(value, builder, case)

-> builder.append(hex(static_cast<unsigned char>(value), 2, case))

appendUnsignedAsHex(value, builder, case)

-> builder.append(hex(value, case))

appendUnsignedAsHexFixedSize(value, builder, size, case)

-> builder.append(hex(value, size, case))

Adds new API test for HexNumber.cpp

  • wtf/HexNumber.h:

(WTF::appendByteAsHex): Deleted.
(WTF::appendUnsignedAsHex): Deleted.
(WTF::appendUnsignedAsHexFixedSize): Deleted.
Remove now unused helper functions.

  • wtf/FileSystem.cpp:

(WTF::FileSystemImpl::encodeForFileName):
Replace appendByteAsHex with direct use of hex(x, 2). The static_cast is needed
since there was an implicit down cast when appendByteAsHex was used.

  • wtf/Logger.cpp:

(WTF::Logger::LogSiteIdentifier::toString const):
(WTF::>::toString):

  • wtf/UUID.cpp:

(WTF::createCanonicalUUIDString):
Replace appendUnsignedAsHex/appendUnsignedAsHexFixedSize with hex(). Use makeString()
rather StringBuilder to simplify things further.

  • wtf/text/WTFString.cpp:

(asciiDebug):
Replace appendUnsignedAsHexFixedSize with append(hex()).

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/HexNumber.cpp: Added.

Add testing for hex formatting of integers.

3:22 PM Changeset in webkit [254045] by commit-queue@webkit.org
  • 4 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION (r253926): Flaky crashes on webgl/1.0.3/conformance/textures/texture-copying-feedback-loops.html and webgl/2.0.0/conformance/textures/misc/texture-copying-feedback-loops.html
https://bugs.webkit.org/show_bug.cgi?id=205707

Work around bugs in Intel's graphics driver where operations can
be incorrectly reordered across glBindFramebuffer calls by
flushing before/after these calls. Conclusively addresses this
crash; may also address other layout test flakiness seen when
switching to ANGLE backend for WebGL.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-01-05
Reviewed by Dean Jackson.

  • include/platform/FeaturesGL.h:
  • src/libANGLE/renderer/gl/StateManagerGL.cpp:

(rx::StateManagerGL::bindFramebuffer):

  • src/libANGLE/renderer/gl/renderergl_utils.cpp:

(rx::nativegl_gl::InitializeFeatures):

11:23 AM Changeset in webkit [254044] by Alan Bujtas
  • 397 edits
    1 add in trunk

[SLL] Generate runs for preserved new lines
https://bugs.webkit.org/show_bug.cgi?id=205762
<rdar://problem/58311927>

Reviewed by Antti Koivisto.

Source/WebCore:

It matches CLL (and IFC) behavior.

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::createLineRuns):

LayoutTests:

  • platform/mac/css1/basic/containment-expected.txt:
  • platform/mac/css1/basic/contextual_selectors-expected.txt:
  • platform/mac/css1/basic/grouping-expected.txt:
  • platform/mac/css1/basic/id_as_selector-expected.txt:
  • platform/mac/css1/basic/inheritance-expected.txt:
  • platform/mac/css1/box_properties/border-expected.txt:
  • platform/mac/css1/box_properties/border_bottom-expected.txt:
  • platform/mac/css1/box_properties/border_bottom_inline-expected.txt:
  • platform/mac/css1/box_properties/border_bottom_width-expected.txt:
  • platform/mac/css1/box_properties/border_bottom_width_inline-expected.txt:
  • platform/mac/css1/box_properties/border_color-expected.txt:
  • platform/mac/css1/box_properties/border_color_inline-expected.txt:
  • platform/mac/css1/box_properties/border_inline-expected.txt:
  • platform/mac/css1/box_properties/border_left-expected.txt:
  • platform/mac/css1/box_properties/border_left_inline-expected.txt:
  • platform/mac/css1/box_properties/border_left_width-expected.txt:
  • platform/mac/css1/box_properties/border_left_width_inline-expected.txt:
  • platform/mac/css1/box_properties/border_right-expected.txt:
  • platform/mac/css1/box_properties/border_right_inline-expected.txt:
  • platform/mac/css1/box_properties/border_right_width-expected.txt:
  • platform/mac/css1/box_properties/border_right_width_inline-expected.txt:
  • platform/mac/css1/box_properties/border_style-expected.txt:
  • platform/mac/css1/box_properties/border_style_inline-expected.txt:
  • platform/mac/css1/box_properties/border_top-expected.txt:
  • platform/mac/css1/box_properties/border_top_inline-expected.txt:
  • platform/mac/css1/box_properties/border_top_width-expected.txt:
  • platform/mac/css1/box_properties/border_top_width_inline-expected.txt:
  • platform/mac/css1/box_properties/border_width-expected.txt:
  • platform/mac/css1/box_properties/border_width_inline-expected.txt:
  • platform/mac/css1/box_properties/clear-expected.txt:
  • platform/mac/css1/box_properties/clear_float-expected.txt:
  • platform/mac/css1/box_properties/float-expected.txt:
  • platform/mac/css1/box_properties/float_elements_in_series-expected.txt:
  • platform/mac/css1/box_properties/float_margin-expected.txt:
  • platform/mac/css1/box_properties/height-expected.txt:
  • platform/mac/css1/box_properties/margin-expected.txt:
  • platform/mac/css1/box_properties/margin_bottom-expected.txt:
  • platform/mac/css1/box_properties/margin_bottom_inline-expected.txt:
  • platform/mac/css1/box_properties/margin_inline-expected.txt:
  • platform/mac/css1/box_properties/margin_left-expected.txt:
  • platform/mac/css1/box_properties/margin_left_inline-expected.txt:
  • platform/mac/css1/box_properties/margin_right-expected.txt:
  • platform/mac/css1/box_properties/margin_right_inline-expected.txt:
  • platform/mac/css1/box_properties/margin_top-expected.txt:
  • platform/mac/css1/box_properties/margin_top_inline-expected.txt:
  • platform/mac/css1/box_properties/padding-expected.txt:
  • platform/mac/css1/box_properties/padding_bottom-expected.txt:
  • platform/mac/css1/box_properties/padding_bottom_inline-expected.txt:
  • platform/mac/css1/box_properties/padding_inline-expected.txt:
  • platform/mac/css1/box_properties/padding_left-expected.txt:
  • platform/mac/css1/box_properties/padding_left_inline-expected.txt:
  • platform/mac/css1/box_properties/padding_right-expected.txt:
  • platform/mac/css1/box_properties/padding_right_inline-expected.txt:
  • platform/mac/css1/box_properties/padding_top-expected.txt:
  • platform/mac/css1/box_properties/padding_top_inline-expected.txt:
  • platform/mac/css1/box_properties/width-expected.txt:
  • platform/mac/css1/cascade/cascade_order-expected.txt:
  • platform/mac/css1/cascade/important-expected.txt:
  • platform/mac/css1/classification/display-expected.txt:
  • platform/mac/css1/classification/list_style-expected.txt:
  • platform/mac/css1/classification/list_style_image-expected.txt:
  • platform/mac/css1/classification/list_style_position-expected.txt:
  • platform/mac/css1/classification/list_style_type-expected.txt:
  • platform/mac/css1/classification/white_space-expected.txt:
  • platform/mac/css1/color_and_background/background-expected.txt:
  • platform/mac/css1/color_and_background/background_attachment-expected.txt:
  • platform/mac/css1/color_and_background/background_color-expected.txt:
  • platform/mac/css1/color_and_background/background_image-expected.txt:
  • platform/mac/css1/color_and_background/background_position-expected.txt:
  • platform/mac/css1/color_and_background/background_repeat-expected.txt:
  • platform/mac/css1/color_and_background/color-expected.txt:
  • platform/mac/css1/conformance/forward_compatible_parsing-expected.txt:
  • platform/mac/css1/font_properties/font-expected.txt:
  • platform/mac/css1/font_properties/font_family-expected.txt:
  • platform/mac/css1/font_properties/font_size-expected.txt:
  • platform/mac/css1/font_properties/font_style-expected.txt:
  • platform/mac/css1/font_properties/font_variant-expected.txt:
  • platform/mac/css1/font_properties/font_weight-expected.txt:
  • platform/mac/css1/formatting_model/canvas-expected.txt:
  • platform/mac/css1/formatting_model/floating_elements-expected.txt:
  • platform/mac/css1/formatting_model/height_of_lines-expected.txt:
  • platform/mac/css1/formatting_model/inline_elements-expected.txt:
  • platform/mac/css1/formatting_model/replaced_elements-expected.txt:
  • platform/mac/css1/formatting_model/vertical_formatting-expected.txt:
  • platform/mac/css1/pseudo/anchor-expected.txt:
  • platform/mac/css1/pseudo/firstletter-expected.txt:
  • platform/mac/css1/pseudo/firstline-expected.txt:
  • platform/mac/css1/pseudo/multiple_pseudo_elements-expected.txt:
  • platform/mac/css1/pseudo/pseudo_elements_in_selectors-expected.txt:
  • platform/mac/css1/text_properties/letter_spacing-expected.txt:
  • platform/mac/css1/text_properties/line_height-expected.txt:
  • platform/mac/css1/text_properties/text_align-expected.txt:
  • platform/mac/css1/text_properties/text_decoration-expected.txt:
  • platform/mac/css1/text_properties/text_indent-expected.txt:
  • platform/mac/css1/text_properties/text_transform-expected.txt:
  • platform/mac/css1/text_properties/vertical_align-expected.txt:
  • platform/mac/css1/text_properties/word_spacing-expected.txt:
  • platform/mac/css1/units/color_units-expected.txt:
  • platform/mac/css1/units/length_units-expected.txt:
  • platform/mac/css1/units/percentage_units-expected.txt:
  • platform/mac/css1/units/urls-expected.txt:
  • platform/mac/css2.1/t100801-c548-ln-ht-00-c-a-expected.txt:
  • platform/mac/css2.1/t1606-c562-white-sp-00-b-ag-expected.txt:
  • platform/mac/fast/css/empty-pseudo-class-expected.txt:
  • platform/mac/fast/css/first-child-pseudo-class-expected.txt:
  • platform/mac/fast/css/last-child-pseudo-class-expected.txt:
  • platform/mac/fast/css/only-child-pseudo-class-expected.txt:
  • platform/mac/fast/frames/onlyCommentInIFrame-expected.txt:
  • platform/mac/fast/html/listing-expected.txt:
  • platform/mac/fast/invalid/junk-data-expected.txt:
  • platform/mac/fast/invalid/missing-end-tag-expected.txt:
  • platform/mac/fast/overflow/clip-rects-fixed-ancestor-expected.txt:
  • platform/mac/fast/parser/xhtml-alternate-entities-expected.txt:
  • platform/mac/fast/table/border-collapsing/004-expected.txt:
  • platform/mac/fast/table/border-collapsing/004-vertical-expected.txt:
  • platform/mac/fast/text/whitespace/001-expected.txt:
  • platform/mac/fast/text/whitespace/013-expected.txt:
  • platform/mac/fast/text/whitespace/014-expected.txt:
  • platform/mac/fast/text/whitespace/022-expected.txt:
  • platform/mac/fast/text/whitespace/023-expected.txt: Added.
  • platform/mac/fast/text/whitespace/024-expected.txt:
  • platform/mac/fast/text/whitespace/030-expected.txt:
  • platform/mac/fast/text/word-break-expected.txt:
  • platform/mac/fast/xsl/xslt-extra-content-at-end-expected.txt:
  • platform/mac/fast/xsl/xslt-missing-namespace-in-xslt-expected.txt:
  • platform/mac/svg/custom/bug45331-expected.txt:
  • platform/mac/svg/custom/junk-data-expected.txt:
  • platform/mac/svg/custom/missing-xlink-expected.txt:
  • platform/mac/svg/custom/path-bad-data-expected.txt:
  • platform/mac/svg/custom/use-font-face-crash-expected.txt:
  • platform/mac/svg/hixie/error/012-expected.txt:
  • platform/mac/tables/mozilla/bugs/45621-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug139524-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug157890-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1055-2-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug21518-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug22122-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/marvin/backgr_fixed-bg-expected.txt:
11:18 AM Changeset in webkit [254043] by commit-queue@webkit.org
  • 9 edits in trunk

Tighten up stylesheet loading
https://bugs.webkit.org/show_bug.cgi?id=189913

Patch by Rob Buis <rbuis@igalia.com> on 2020-01-05
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update improved test result.

  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https-expected.txt:

Source/WebCore:

When fetching and processing a linked resource [1], step 11.3 states
that fetch failure should result in a network error. This patch
implements that for stylesheets.

The behavior matches Chrome and Firefox.

[1] https://html.spec.whatwg.org/multipage/semantics.html#default-fetch-and-process-the-linked-resource

Test: imported/w3c/web-platform-tests/html/semantics/document-metadata/the-link-element/link-load-error-events.https.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet):

  • css/StyleSheetContents.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

LayoutTests:

Adjust test to new behavior.

  • http/tests/security/mixedContent/insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet-expected.txt:
  • http/tests/security/mixedContent/resources/frame-with-insecure-stylesheet-redirects-to-basic-auth-secure-stylesheet.html:
9:58 AM Changeset in webkit [254042] by Simon Fraser
  • 11 edits in trunk

Source/WebCore/PAL:
DumpRenderTree doesn't always call updateRendering() when a test completes
https://bugs.webkit.org/show_bug.cgi?id=205761

Reviewed by Darin Adler.

Add -[CATransaction synchronize].

  • pal/spi/cocoa/QuartzCoreSPI.h:

Source/WebKit:
DumpRenderTree doesn't always call updateRendering() when a test completes
https://bugs.webkit.org/show_bug.cgi?id=205761

Reviewed by Darin Adler.

Use the QuartzCore SPI header.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

Source/WebKitLegacy/mac:
Fix a souce of WebKit1 test flakiness
https://bugs.webkit.org/show_bug.cgi?id=205761

Reviewed by Darin Adler.

Some animation tests (and possibly many others) are flakey or broken in WK1 because
there was no code to guarantee that Page::updateRendering() was called at notifyDone()
time.

WK2 calls DrawingArea::forceRepaint(), which does updateRendering(), flushes layers,
and flushes a CATransaction.

In WK1, we historically relied in AppKit to call -viewWillDraw on WebView and/or WebHTMLView,
and just called [webView display] to make this happen. However, with layer backing, AppKit behavior
changes, and WebCore changes that make more things happen with HTML event loop timing, this
approach no longer works. The fix is to add WebView SPI, _forceRepaintForTesting, which emulates what
WK2 is doing.

  • WebView/WebView.mm:

(-[WebView _forceRepaintForTesting]):

  • WebView/WebViewPrivate.h:

Tools:
DumpRenderTree doesn't always call updateRendering() when a test completes
https://bugs.webkit.org/show_bug.cgi?id=205761

Reviewed by Darin Adler.

Some animation tests (and possibly many others) are flakey or broken in WK1 because
there was no code to guarantee that Page::updateRendering() was called at notifyDone()
time.

WK2 calls DrawingArea::forceRepaint(), which does updateRendering(), flushes layers,
and flushes a CATransaction.

In WK1, we historically relied in AppKit to call -viewWillDraw on WebView and/or WebHTMLView,
and just called [webView display] to make this happen. However, with layer backing, AppKit behavior
changes, and WebCore changes that make more things happen with HTML event loop timing, this
approach no longer works. The fix is to add WebView SPI, _forceRepaintForTesting, which emulates what
WK2 is doing.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(updateDisplay):

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:
7:13 AM Changeset in webkit [254041] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Fix compositing/masks/compositing-clip-path-change-no-repaint.html
https://bugs.webkit.org/show_bug.cgi?id=205771
<rdar://problem/58319828>

Reviewed by Antti Koivisto.

Add LFC line layout check when deciding whether the current layout path needs
invalidation after style change.

Original patch by Antti.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

6:50 AM Changeset in webkit [254040] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][Integration] Fix fast/repaint/simple-line-layout-shrinking-content.html
https://bugs.webkit.org/show_bug.cgi?id=205773
<rdar://problem/58319960>

Reviewed by Antti Koivisto.

Let's add padding and border to the repaint rect (which is not quite right since at this level reapint rect should
be about the content change, but that's what SLL does and it fixes some repaint issues when
the box with padding/border shrinks).

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutLFCLines):

3:06 AM Changeset in webkit [254039] by youenn@apple.com
  • 10 edits in trunk/Source/WebCore

Make MediaRecorderPrivate use CompletionHandler for retrieving encoded data
https://bugs.webkit.org/show_bug.cgi?id=205726

Reviewed by Eric Carlson.

Refactoring to allow asynchronous fetching of data.
No change of behavior.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::createRecordingDataBlob): Deleted.

  • Modules/mediarecorder/MediaRecorder.h:
  • platform/mediarecorder/MediaRecorderPrivate.h:
  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:

(WebCore::MediaRecorderPrivateAVFImpl::fetchData):

  • platform/mediarecorder/MediaRecorderPrivateAVFImpl.h:
  • platform/mediarecorder/MediaRecorderPrivateMock.cpp:

(WebCore::MediaRecorderPrivateMock::fetchData):

  • platform/mediarecorder/MediaRecorderPrivateMock.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.h:
  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::fetchData):

12:55 AM Changeset in webkit [254038] by Ross Kirsling
  • 12 edits in trunk

JavaScript: Invalid date parse for ISO 8601 strings when no timezone given
https://bugs.webkit.org/show_bug.cgi?id=89071

Reviewed by Darin Adler.

Source/JavaScriptCore:

Since ES2016, the specification for Date.parse has included the following statement:

When the UTC offset representation is absent, date-only forms are interpreted as a UTC time
and date-time forms are interpreted as a local time.

This patch updates us from the old ES5 behavior, which treated offsetless date-time forms as UTC.

  • runtime/JSDateMath.cpp:

(JSC::parseDateFromNullTerminatedCharacters):
(JSC::parseES5DateFromNullTerminatedCharacters): Added.
(JSC::parseDate):

  • runtime/JSDateMath.h:

Make a local time adjustment if necessary after calling WTF::parseES5DateFromNullTerminatedCharacters.

Source/WTF:

  • wtf/DateMath.cpp:

(WTF::parseES5TimePortion):
(WTF::parseES5DateFromNullTerminatedCharacters):

  • wtf/DateMath.h:

Add an out param to tell JSC whether we still need to do a local time adjustment.

LayoutTests:

  • js/date-parse-test-expected.txt:
  • js/script-tests/date-parse-test.js:

Update test to match new behavior.

  • storage/indexeddb/modern/resources/date-basic.js:
  • storage/indexeddb/modern/resources/get-keyrange.js:
  • storage/indexeddb/modern/resources/idbobjectstore-delete-1.js:

Fix tests relying on obsolete behavior.

Jan 4, 2020:

9:09 PM Changeset in webkit [254037] by Alexey Shvayka
  • 4 edits in trunk

JSON.parse should initialize wrapper object with DefineOwnProperty
https://bugs.webkit.org/show_bug.cgi?id=205767

Reviewed by Darin Adler.

JSTests:

  • test262/expectations.yaml: Mark 2 test cases as passing.

Source/JavaScriptCore:

This patch makes JSON.parse use DefineOwnProperty instead of Set to initialize wrapper object,
aligning JSC with the spec (step 7.c of https://tc39.es/ecma262/#sec-json.parse) and other engines.
Performing Set was observable by a setter on Object.prototype (with empty String key).
Also removes two extra exceptions checks.

  • runtime/JSONObject.cpp:

(JSC::Stringifier::stringify):
(JSC::Walker::walk):

2:35 PM Changeset in webkit [254036] by dino@apple.com
  • 13 edits in trunk/Source

Add support for iOS Simulator to ANGLE backend for WebGL
https://bugs.webkit.org/show_bug.cgi?id=205618

Source/ThirdParty/ANGLE:

Extend EGL_ANGLE_iosurface_client_buffer extension to require use
of TEXTURE_2D target on iOS, and to provide read/write usage hints
for the pbuffer created from the IOSurface.

Emulate missing [EAGLContext texImageIOSurface:...] via texture
upload in eglBindTexImage and readback in eglReleaseTexImage.

These changes will be upstreamed in
https://bugs.chromium.org/p/angleproject/issues/detail?id=4256 .

Patch by Kenneth Russell <kbr@chromium.org> on 2020-01-04
Reviewed by Dean Jackson.

  • extensions/EGL_ANGLE_iosurface_client_buffer.txt:
  • include/EGL/eglext_angle.h:
  • src/libANGLE/renderer/gl/eagl/DisplayEAGL.mm:

(rx::DisplayEAGL::initialize):

  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.h:
  • src/libANGLE/renderer/gl/eagl/IOSurfaceSurfaceEAGL.mm:

(rx::IOSurfaceSurfaceEAGL::IOSurfaceSurfaceEAGL):
(rx::IOSurfaceSurfaceEAGL::bindTexImage):
(rx::IOSurfaceSurfaceEAGL::releaseTexImage):
(rx::IOSurfaceSurfaceEAGL::validateAttributes):
(rx::IOSurfaceSurfaceEAGL::createDefaultFramebuffer):
(rx::IOSurfaceSurfaceEAGL::getIOSurfaceLockOptions const):

  • src/libANGLE/validationEGL.cpp:

(egl::ValidateCreatePbufferFromClientBuffer):

Source/WebCore:

Refactor use of EGL_ANGLE_iosurface_client_buffer extension to
uniformly use rectangular textures on macOS, and 2D textures on
iOS, including the simulator. This should make the on-device iOS
code paths more correct as well.

Pass usage hints, only affecting the iOS Simulator, when creating
all pbuffers from IOSurfaces.

This patch does not turn on ANGLE for the iOS Simulator yet; that
will be done in a follow-on patch after more testing.

Covered by the preexisting WebGL conformance suite in the layout
tests.

Patch by Kenneth Russell <kbr@chromium.org> on 2020-01-04
Reviewed by Dean Jackson.

  • platform/graphics/GraphicsContext3DBase.h:
  • platform/graphics/angle/GraphicsContext3DANGLE.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer display]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):
(-[WebGLLayer bindFramebufferToNextAvailableSurface]):

  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::VideoTextureCopierCV::attachIOSurfaceToTexture):
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):

2:31 PM Changeset in webkit [254035] by dino@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac ] webgl/2.0.0/conformance2/glsl3/no-attribute-vertex-shader.html is failing
https://bugs.webkit.org/show_bug.cgi?id=205756
<rdar://problem/58309241>

Marking this as Pass Failure.

  • platform/mac/TestExpectations:
11:07 AM Changeset in webkit [254034] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Adopt updated MouseEvent initializer
https://bugs.webkit.org/show_bug.cgi?id=205765

Patch by Luming Yin <luming_yin@apple.com> on 2020-01-04
Reviewed by Wenson Hsieh.

Adopt updated MouseEvent initializer to fix the iOS build.

  • dom/ios/MouseEventIOS.cpp:

(WebCore::MouseEvent::create):

  • dom/ios/PointerEventIOS.cpp:

(WebCore::PointerEvent::PointerEvent):

10:23 AM Changeset in webkit [254033] by Keith Rollin
  • 2 edits in trunk/Source/WebKit

Reformat WebPage logging
https://bugs.webkit.org/show_bug.cgi?id=205705
<rdar://problem/58288704>

Reviewed by Alex Christensen.

Update the format used by WebPage in its RELEASE_LOG logging. Use the
format used by WebPageProxy and NetworkResourceLoader, which is
generally of the form:

<object-address> - [<values that help thread together operations>] <class>::<method>: <message and other useful values>

So, for example:

0x7f83ba009208 - WebPage (webPageID=15) - Adding a reason 1 to freeze layer tree (now 1); old reasons were 0

becomes:

0x7f83ba009208 - [webPageID=15] WebPage::freezeLayerTree: Adding a reason to freeze layer tree (reason=1, new=1, old=0)

No new tests - no added or changed functionality.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_overriddenMediaType):
(WebKit::WebPage::createPlugin):
(WebKit::WebPage::freezeLayerTree):
(WebKit::WebPage::unfreezeLayerTree):
(WebKit::WebPage::markLayersVolatile):
(WebKit::WebPage::cancelMarkLayersVolatile):
(WebKit::WebPage::touchEventSync):

6:54 AM Changeset in webkit [254032] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LFC][IFC] LineBuilder::ContinuousContent::append should return void
https://bugs.webkit.org/show_bug.cgi?id=205760
<rdar://problem/58309948>

Reviewed by Antti Koivisto.

Introduce ContinuousContent::isEligible to make merging logic more clear.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::isContentWrappingAllowed const):
(WebCore::Layout::LineBreaker::shouldKeepEndOfLineWhitespace const):
(WebCore::Layout::LineBreaker::shouldWrapInlineContent):
(WebCore::Layout::LineBreaker::tryWrappingInlineContent const):
(WebCore::Layout::ContinuousContent::ContinuousContent):
(WebCore::Layout::ContinuousContent::hasTextContentOnly const):
(WebCore::Layout::ContinuousContent::isVisuallyEmptyWhitespaceContentOnly const):
(WebCore::Layout::ContinuousContent::firstTextRunIndex const):
(WebCore::Layout::ContinuousContent::lastContentRunIndex const):
(WebCore::Layout::ContinuousContent::hasNonContentRunsOnly const):
(WebCore::Layout::ContinuousContent::lastWrapOpportunityIndex const):
(WebCore::Layout::ContinuousContent::TrailingCollapsibleContent::reset):
(WebCore::Layout::ContinousContent::runs const): Deleted.
(WebCore::Layout::ContinousContent::isEmpty const): Deleted.
(WebCore::Layout::ContinousContent::size const): Deleted.
(WebCore::Layout::ContinousContent::width const): Deleted.
(WebCore::Layout::ContinousContent::nonCollapsibleWidth const): Deleted.
(WebCore::Layout::ContinousContent::hasTrailingCollapsibleContent const): Deleted.
(WebCore::Layout::ContinousContent::isTrailingContentFullyCollapsible const): Deleted.
(WebCore::Layout::ContinousContent::ContinousContent): Deleted.
(WebCore::Layout::ContinousContent::hasTextContentOnly const): Deleted.
(WebCore::Layout::ContinousContent::isVisuallyEmptyWhitespaceContentOnly const): Deleted.
(WebCore::Layout::ContinousContent::firstTextRunIndex const): Deleted.
(WebCore::Layout::ContinousContent::lastContentRunIndex const): Deleted.
(WebCore::Layout::ContinousContent::hasNonContentRunsOnly const): Deleted.
(WebCore::Layout::ContinousContent::lastWrapOpportunityIndex const): Deleted.
(WebCore::Layout::ContinousContent::TrailingCollapsibleContent::reset): Deleted.

  • layout/inlineformatting/InlineLineBreaker.h:
  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::ContinuousContent::isContinuous):
(WebCore::Layout::LineBuilder::ContinuousContent::canBeExpanded):
(WebCore::Layout::LineBuilder::ContinuousContent::ContinuousContent):
(WebCore::Layout::LineBuilder::ContinuousContent::append):
(WebCore::Layout::LineBuilder::ContinuousContent::close):
(WebCore::Layout::LineBuilder::close):
(WebCore::Layout::LineBuilder::ContinousContent::canBeExpanded): Deleted.
(WebCore::Layout::LineBuilder::ContinousContent::canBeMerged const): Deleted.
(WebCore::Layout::LineBuilder::ContinousContent::ContinousContent): Deleted.
(WebCore::Layout::LineBuilder::ContinousContent::append): Deleted.
(WebCore::Layout::LineBuilder::ContinousContent::close): Deleted.

  • layout/inlineformatting/InlineLineBuilder.h:
Note: See TracTimeline for information about the timeline view.