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

Timeline



Feb 24, 2020:

11:37 PM Changeset in webkit [257297] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix for WinCairo port
https://bugs.webkit.org/show_bug.cgi?id=208112
<rdar://problem/59709701>

WebCore\layout/inlineformatting/LineLayoutContext.cpp(337): error C2397: conversion from 'size_t' to 'WTF::Optional<unsigned int>' requires a narrowing conversion
WebCore\layout/inlineformatting/LineLayoutContext.cpp(361): error C2397: conversion from 'size_t' to 'WTF::Optional<unsigned int>' requires a narrowing conversion

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::close): Changed the type of 'trailingInlineItemIndex' from 'auto' to 'unsigned'.

11:25 PM Changeset in webkit [257296] by Darin Adler
  • 25 edits in trunk/Source/WebCore

Refactor TextTrackCue to use more traditional design patterns
https://bugs.webkit.org/show_bug.cgi?id=208114

Reviewed by Alex Christensen.

  • Fixed is<VTTCue> to accurately match the class hierarchy. Before, TextTrackCueGeneric derived from VTTCue, but is<VTTCue> would return false. Normalizing this lets us use is<VTTCue> and downcast<VTTCue> in the conventional way.
  • Made the TextTrackCue::isEqual function a non-virtual function that calls a virtual function TextTrackCue::cueContentsMatch. Before there was a mix of overridding both functions in derived classes, achieving the same thing in multiple ways with unneccessary additional virtual function call overhead.
  • Made the TextTrackCue::toJSONString function a non-virtual function that calls a virtual funtion TextTrackCue::toJSON. Before there were two virtual functions and inconsistent patterns for which one was overridden.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackRemoveCue): Use downcast instead of toVTTCue.

  • html/HTMLMediaElement.h: Removed some unneeded includes.
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateDisplay): Use downcast
instead of toVTTCue.
(WebCore::MediaControlTextTrackContainerElement::processActiveVTTCue): Removed
an assertion that no longer makes sense; guaranteed at runtime.

  • html/shadow/MediaControls.h: Removed an unneeded include.
  • html/track/DataCue.cpp:

(WebCore::toDataCue): Deleted. No need for this function since we can use
downcast<DataCue> instead.
(WebCore::DataCue::cueContentsMatch const): Removed unnecessary check of cueType.
The isEqual function checks cueType and only calls this function if it matches.
Use downcast instead of toDataCue.
(WebCore::DataCue::isEqual const): Deleted. Base class now handles this.
(WebCore::DataCue::doesExtendCue const): Deleted. Was never being called.
(WebCore::DataCue::toJSONString const): Deleted. Override toJSON instead.
(WebCore::DataCue::toJSON const): Moved the code here that used to be in toJSONString.

  • html/track/DataCue.h: Reduced includes. Made overridden functions private

and final. Removed functions as mmentioned above. Changed WTF::LogArgument implementation
to just forward to TextTrackCue instead of reimplementing here.

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::removeCue): Use downcast instead of toDataCue.

  • html/track/InbandGenericTextTrack.cpp: Removed an unneeded include.
  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::LoadableTextTrack): Removed unneeded initialization of
m_isDefault, which is initialized in the class definition.
(WebCore::LoadableTextTrack::newCuesAvailable): Removed unneeded call to toVTTCue,
taking advantage of the better interface of getNewCues, which now returns
Vector<Ref<VTTCue>>, making the type explicit.

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::addCue): Use is<DataCue> instead of checking cueType.

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::create): Fixed confusing naming that called the fragment the
cue is contained in "cueDocument"; call it cueFragment instead. This constructor
already required that the ScriptExecutionContext be a Document. Did the type cast
for that up front. In the future would be good to change the argument type to Document.
Also fixed how the newly-created fragment is passed to the constructor. The old code
tried to use DocumentFragment&& to pass ownership, but since this is a reference-counted
object it needs to be Ref<DocumentFragment>&&.
(WebCore::TextTrackCue::TextTrackCue):
(WebCore::TextTrackCue::scriptExecutionContext const): Moved this here from the header
file so we can compile without TextTrackCue.h including Document.h.
(WebCore::TextTrackCue::cueContentsMatch const): Removed the code that checks cueType.
It's now isEqual that is responsible for checking that the cueType matches, and
cueContentsMatch is only called when the types are the same.
(WebCore::TextTrackCue::isEqual const): Reordered the boolean checks a bit so it's
easier to see the logic; no need for a cascade of if statements.
(WebCore::TextTrackCue::doesExtendCue const): Deleted. Was never being called.
(WebCore::operator<<): Use downcast instead of toVTTCue.

  • html/track/TextTrackCue.h: Made isEqual no longer virtual. The per-class behavior

is now all in the virtual cueContentsMatch function, only called by isEqual.
Removed uncalled doesExtendCue function. Added some argument names in cases where
the type alone did not make their purpose clear. Made some things more private.
Replaced m_scriptExecutionContext with m_document.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGeneric::create): Moved this function here from the header.
(WebCore::TextTrackCueGeneric::TextTrackCueGeneric): Initialized data members in the
class definition so they don't also need to be initialized here.
(WebCore::TextTrackCueGeneric::cueContentsMatch const): Rewrote using && rather than
castcading if statements, making the function shorter andd easier to read.
(WebCore::TextTrackCueGeneric::isEqual const): Deleted. Base class now handes this.
The old version had confusing logic to deal with checking cue type; can now do this
in a more straightforward way.
(WebCore::TextTrackCueGeneric::doesExtendCue const): Deleted. Was never called.
(WebCore::TextTrackCueGeneric::isOrderedBefore const): Use is<TextTrackCueGeneric>
and downcast<TextTrackCueGeneric>.
(WebCore::TextTrackCueGeneric::isPositionedAbove const): Ditto. Also merged two
if statements so there is less repeated logic.
(WebCore::TextTrackCueGeneric::toJSONString const): Deleted.
(WebCore::TextTrackCueGeneric::toJSON const): Moved code here that was in toJSONString.

  • html/track/TextTrackCueGeneric.h: Made things more private. Changed WTF::LogArgument

implementation to just forward to TextTrackCue instead of reimplementing here.

  • html/track/TextTrackCueList.cpp:

(WebCore::TextTrackCueList::create): Moved here from header.

  • html/track/TextTrackCueList.h: Ditto.
  • html/track/VTTCue.cpp: Moved undefinedPosition to be a private static constexpr

data member so it can be used in initialization.
(WebCore::VTTCueBox::applyCSSProperties): Use is<VTTCue> and downcast<VTTCue>.
(WebCore::VTTCue::create): Moved more overloads of this function here from the
header file.
(WebCore::VTTCue::VTTCue): Take Document instead of ScriptExecutionContext.
Also took the ScriptExecutionContext argument away from the initialize function.
(WebCore::VTTCue::initialize): Do less initialization here. This function is
only called in constructors, so it doesn't need to initialize anything that
is initialized in all constructors or initialized in the class definition.
What remains are things that require a little code to initialize and the
bitfields, which can't be initialized in the class definition.
(WebCore::VTTCue::setPosition): Rearranged the code a tiny bit.
(WebCore::copyWebVTTNodeToDOMTree): Made this a non-member function. Also changed
the argument types to use references.
(WebCore::VTTCue::getCueAsHTML): Updated for changes to copyWebVTTNodeToDOMTree.
(WebCore::VTTCue::removeDisplayTree): Check m_displayTree directly instead
of calling a hasDisplayTree function, since that's more a more straightforward
way to guard a subsequent line of code that then uses m_displayTree.
(WebCore::VTTCue::setCueSettings): Merged two if statements into one.
(WebCore::VTTCue::cueContentsMatch const): Rewrote using && rather than
castcading if statements, making the function shorter andd easier to read.
(WebCore::VTTCue::isEqual const): Deleted. Base class now handles this.
(WebCore::VTTCue::doesExtendCue const): Deleted. Was never called.
(WebCore::toVTTCue): Deleted.
(WebCore::VTTCue::toJSONString const): Deleted. Base class now handles this.
(WebCore::VTTCue::toJSON const): Added a comment.

  • html/track/VTTCue.h: Moved create functions out of header, made some things

more private and final, initialized more data members in the class definition.
Removed toVTTCue. Changed WTF::LogArgument implementation to just forward to
TextTrackCue instead of reimplementing here. Corrected the isType function so
it knows about both cue types that result in a VTTCue object. This allows us
to use is<VTTCue> and downcast<VTTCue> in the normal way. Removed the FIXME
saying we should do that.

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::getNewCues): Changed to return a Vector<Ref<VTTCue>>.
In modern C++ return value is better than an out argument for a function like
this, and the more-specific type helps us at the call sites.

  • loader/TextTrackLoader.h: Updated for the above.
  • page/CaptionUserPreferencesMediaAF.cpp: Removed unneeded include.
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

Use #pragma once and removed some unneded includes and forward declarations.

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::RenderVTTCue): Use downcast<VTTCue>.
(WebCore::RenderVTTCue::layout): Removed unneeded call to toVTTCue.
(WebCore::RenderVTTCue::repositionGenericCue): Use downcast instead of
static_cast for TextTrackCueGeneric.

  • style/RuleSet.cpp: Removed unneeded include.
11:03 PM Changeset in webkit [257295] by ysuzuki@apple.com
  • 5 edits
    1 add in trunk

[WTF] Add tests for CompactRefPtrTuple
https://bugs.webkit.org/show_bug.cgi?id=208172

Reviewed by Darin Adler.

Source/WTF:

Include Noncopyable.h.

  • wtf/CompactRefPtrTuple.h:

Tools:

We copy tests from RefPtr for CompactRefPtrTuple to ensure that it is working correctly.
Many of tests are not necessary since currently CompactRefPtrTuple is non-copyable / non-movable.

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

(TestWebKitAPI::TEST):

10:22 PM Changeset in webkit [257294] by Chris Fleizach
  • 4 edits in trunk/Source/WebCore

AX: Support relative frames for isolated trees correctly
https://bugs.webkit.org/show_bug.cgi?id=208169
<rdar://problem/59746529>

Reviewed by Zalan Bujtas.

To support relative frames correctly for accessibility, we should:

1) Only expose for isolated tree clients.
2) Support FloatRects in the attribute variants.

This patch also fixes an issue where we weren't reserving capacity before using.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setObjectVectorProperty):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

7:19 PM Changeset in webkit [257293] by ysuzuki@apple.com
  • 4 edits in trunk

Do not use target/icu.cmake
https://bugs.webkit.org/show_bug.cgi?id=208173

Reviewed by Don Olmstead.

icu.cmake is removed in r256731. Use find_package + ICU since WebKit offers find_package implementation
which can find appropriate system-installed ICU.

  • Source/cmake/OptionsFTW.cmake:
  • Source/cmake/OptionsJSCOnly.cmake:
  • Source/cmake/OptionsMac.cmake:
7:02 PM Changeset in webkit [257292] by ChangSeok Oh
  • 2 edits in trunk/Source/WebCore

PS-2019-006: [GTK] WebKit - AXObjectCache - m_deferredFocusedNodeChange - UaF
https://bugs.webkit.org/show_bug.cgi?id=204342

Reviewed by Carlos Garcia Campos.

m_deferredFocusedNodeChange keeps pairs of a old node and a new one
to update a focused node later. When a node is removed in the document,
it is also removed from the pair vector. The problem is only comparing
the new node in each pair with a removed node decides the removal.
In the case where the removed node lives in m_deferredFocusedNodeChange
as an old node, a crash happens while we get a renderer of the removed node
to handle focused elements. To fix this, we find all entries of which old node
is matched to the removed node, and set their first value null.

No new tests since no functionality changed.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::remove):

5:42 PM Changeset in webkit [257291] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC][Floats] Fix float boxes embedded to unbreakable inline runs.
https://bugs.webkit.org/show_bug.cgi?id=208112
<rdar://problem/59709701>

Reviewed by Antti Koivisto.

This patch fixes the cases when the float is embedded to otherwise unbreakable inline content.
e.g. "text_<div style="float: left"></div>_content"

The logic goes like this:

  1. collect the floats inside the unbreakable candidate content
  2. mark them intrusive if they potentially influence the current line
  3. at handleFloatsAndInlineContent(), adjust available width with the intrusive floats first
  4. feed the inline content to the LineBreaker
  5. commit the float content based on the line breaking result (commit none, partially, all).

(Note that this algorithm produces a different layout compared to WebKit trunk. It mostly matches FireFox though.)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
(WebCore::Layout::InlineFormattingContext::setDisplayBoxesForLine):

  • layout/inlineformatting/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::moveLogicalLeft):
(WebCore::Layout::LineBuilder::moveLogicalRight):

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::nextWrapOpportunity):
(WebCore::Layout::LineCandidate::FloatContent::append):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::close):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::LineLayoutContext::addIntrusiveFloats):
(WebCore::Layout::LineLayoutContext::revertIntrusiveFloats):
(WebCore::Layout::LineLayoutContext::handleFloatsAndInlineContent):
(WebCore::Layout::isLineConsideredEmpty): Deleted.
(WebCore::Layout::LineLayoutContext::tryAddingFloatContent): Deleted.
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:
5:38 PM Changeset in webkit [257290] by Simon Fraser
  • 4 edits in trunk/Source

Rename the clashing WebOverlayLayer classes
https://bugs.webkit.org/show_bug.cgi?id=208156
rdar://problem/59739250

Reviewed by Tim Horton.

The name WebOverlayLayer was used in two places. Rename them both to more specific names.

Source/WebCore:

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(-[WebResourceUsageOverlayLayer initWithResourceUsageOverlay:]):
(WebCore::ResourceUsageOverlay::platformInitialize):
(-[WebOverlayLayer initWithResourceUsageOverlay:]): Deleted.
(-[WebOverlayLayer drawInContext:]): Deleted.

Source/WebKitLegacy/mac:

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController init]):
(-[WebOverlayLayer layoutSublayers]): Deleted.

5:22 PM Changeset in webkit [257289] by commit-queue@webkit.org
  • 18 edits
    30 adds in trunk

Add canShare function for Web Share API v2
https://bugs.webkit.org/show_bug.cgi?id=207491

Patch by Nikos Mouchtaris <Nikos Mouchtaris> on 2020-02-24
Reviewed by Tim Horton.

LayoutTests/imported/w3c:

Imported new web platform tests for canShare function.

  • resources/import-expectations.json:
  • web-platform-tests/web-share/OWNERS: Removed.
  • web-platform-tests/web-share/idlharness.https.html: Removed.
  • web-platform-tests/web-share/resources/manual-helper.js:

(setupManualShareTest):
(callWhenButtonClicked):

  • web-platform-tests/web-share/resources/w3c-import.log:
  • web-platform-tests/web-share/share-empty.https.html:
  • web-platform-tests/web-share/share-url-invalid.https.html:
  • web-platform-tests/web-share/share-without-user-gesture.https.html:
  • web-platform-tests/web-share/w3c-import.log:

Source/WebCore:

Added files member to share data and canShare function to
navigator.cpp. Can share function should always be used
before call to share, and can be used to check if file
sharing is implemented by passing a share data object with
only files.

Imported new Web Platform Tests to test new function.

  • page/Navigator.cpp:

(WebCore::Navigator::canShare): Will currently return false for
only file share data objects, since file sharing is currently
not implemented.
(WebCore::Navigator::share): Changed to use canShare to
determine if data is shareable.

  • page/Navigator.h:
  • page/NavigatorShare.idl:
  • page/ShareData.h:
  • page/ShareData.idl:
5:08 PM Changeset in webkit [257288] by pvollan@apple.com
  • 2 edits in trunk

[Win] Fix AppleWin build.
https://bugs.webkit.org/show_bug.cgi?id=208164

Unreviewed build fix.

Allow a warning which happens when building with older SDKs.

  • Source/cmake/OptionsMSVC.cmake:
5:03 PM Changeset in webkit [257287] by Alan Coon
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

5:02 PM Changeset in webkit [257286] by Alan Coon
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

4:57 PM Changeset in webkit [257285] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[WTF] Attach WARN_UNUSED_RETURN to makeScopeExit and fix existing wrong usage
https://bugs.webkit.org/show_bug.cgi?id=208162

Reviewed by Robin Morisset.

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseUnaryExpression):

Source/WebCore:

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

Source/WTF:

We should hold ScopeExit to call destructor when we exit from the scope actually.
Putting WARN_UNUSED_RETURN to fix existing misuse.

  • wtf/Scope.h:
4:55 PM Changeset in webkit [257284] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] commit-queue should check that patch have appropriate review flag
https://bugs.webkit.org/show_bug.cgi?id=208138

Reviewed by Jonathan Bedard.

  • BuildSlaveSupport/ews-build/steps.py:

(BugzillaMixin._is_patch_obsolete): Drive-by fix to set build properties for patch author, commiter and reviewer.
(BugzillaMixin._is_patch_cq_plus):
(BugzillaMixin._does_patch_have_acceptable_review_flag): Method to check if patch have r? or r- flag.
(ValidatePatch.start):

4:48 PM Changeset in webkit [257283] by Justin Fan
  • 9 edits in trunk/LayoutTests

[WebGL] Unskip runnable WebGL 2.0.0 conformance suite for mac
https://bugs.webkit.org/show_bug.cgi?id=208078

Unreviewed test gardening.

Actually run WebGL 2 tests. Update expectations for ANGLE backend.

  • TestExpectations: Unskip non-DEQP WebGL 2.0.0 tests that do not crash nor timeout.
  • platform/ios-wk2/TestExpectations: Continue to skip 2.0.0 on iOS WK2 until discrepancies can be addressed.
  • webgl/2.0.0/conformance2/renderbuffers/framebuffer-object-attachment-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/invalidate-framebuffer-expected.txt:
  • webgl/2.0.0/conformance2/renderbuffers/multisampled-renderbuffer-initialization-expected.txt:
  • webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
  • webgl/2.0.0/conformance2/rendering/rgb-format-support-expected.txt:
  • webgl/2.0.0/conformance2/textures/misc/tex-3d-size-limit-expected.txt:
4:46 PM Changeset in webkit [257282] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 Debug ] is inspector/dom-debugger/attribute-modified-style.html is flaky crashing.
https://bugs.webkit.org/show_bug.cgi?id=208167

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:41 PM Changeset in webkit [257281] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.3.3

Tag Safari-609.1.20.3.3.

4:40 PM Changeset in webkit [257280] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

REGRESSION (r257126): fast/frames/flattening/iframe-tiny.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208055
<rdar://problem/59668089>

Reviewed by Simon Fraser.

In the frame flattening context when optional layout is delayed, getComputedStyle() might return
the un-flattened geometry unless the iframe element is forced to get laid out.

  1. main frame content is loaded and laid out -> if the iframe content is not ready yet, we don't initiate iframe flattening.
  2. iframe content is ready -> layout is scheduled.
  3. getComputedStyle() is called which initiates a style update/layout on the main frame, but only dirty boxes trigger layout (the iframe renderer itself is not dirty <- this is where frame flattening fails: webkit.org/b/208161)
  4. getComputedStyle() returns with the "stale" geometry.
  • fast/frames/flattening/iframe-tiny.html:
4:36 PM Changeset in webkit [257279] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.2.3

Tag Safari-609.1.20.2.3.

4:35 PM Changeset in webkit [257278] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.111.4

Tag Safari-609.1.20.111.4.

4:34 PM Changeset in webkit [257277] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark http/tests/cookies/document-cookie-after-showModalDialog.html as flaky on WK1.

  • platform/mac-wk1/TestExpectations:
4:30 PM Changeset in webkit [257276] by Alan Coon
  • 1 edit in branches/safari-609-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm

Apply patch. rdar://problem/59736045

4:27 PM Changeset in webkit [257275] by Alan Coon
  • 1 copy in tags/Safari-609.1.20.0.4

Tag Safari-609.1.20.0.4.

4:11 PM Changeset in webkit [257274] by Alan Coon
  • 3 edits in branches/safari-609.1.20.3-branch/Source/JavaScriptCore

Cherry-pick r257134. rdar://problem/59676909

Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>

Reviewed by Yusuke Suzuki.

If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:

  1. Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.

This ensures that we won't get corrupted cache files due to interrupted writes.

  1. Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.

This ensures that we won't be crashing while decoding a corrupted cache file.

Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:

  1. no cache file on disk.
  2. a 0-sized cache file on a disk.
  3. a truncated cache file on disk.
  4. a corrupted cache file on disk.
  5. an uncorrupted cache file on disk.

Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.

  • API/JSScript.mm: (-[JSScript readCache]): (-[JSScript writeCache:]):
  • runtime/CachedTypes.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:11 PM Changeset in webkit [257273] by Alan Coon
  • 10 edits in branches/safari-609.1.20.3-branch/Source/WebKit

Cherry-pick r256967. rdar://problem/59654613

Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>

Reviewed by Alex Christensen.

NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).

To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): (WebKit::NetworkProcess::setCacheModel):
  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::cacheModel const):
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::initialize):
  • NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::computeCapacity): (WebKit::NetworkCache::Cache::open): (WebKit::NetworkCache::Cache::capacity const): (WebKit::NetworkCache::Cache::updateCapacity): (WebKit::NetworkCache::Cache::setCapacity): Deleted.
  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::setCapacity):
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setCacheModel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:11 PM Changeset in webkit [257272] by Alan Coon
  • 6 edits in branches/safari-609.1.20.3-branch/Source/WebKit

Cherry-pick r256881. rdar://problem/59654579

Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

4:11 PM Changeset in webkit [257271] by Alan Coon
  • 3 edits in branches/safari-609.1.20.3-branch/Source/WebKit

Cherry-pick r256857. rdar://problem/59654281

NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486

Reviewed by Alex Christensen.

NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:51 PM Changeset in webkit [257270] by keith_miller@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

LLInt should fast path for jtrue/false on Symbols and Objects
https://bugs.webkit.org/show_bug.cgi?id=208151

Reviewed by Yusuke Suzuki.

64-bit interpreter can fast path the case where an object or symbol
is passed to a jtrue or jfalse opcode. This is because these values
are always truthy.

Also, fix some weird indentation in LowLevelInterpreter.asm.

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSType.h:
3:51 PM Changeset in webkit [257269] by jiewen_tan@apple.com
  • 27 edits
    1 copy
    4 adds in trunk

[WebAuthn] Implement SPI for the platform authenticator
https://bugs.webkit.org/show_bug.cgi?id=208087
<rdar://problem/59369305>

Reviewed by Brent Fulgham.

Source/WebCore:

Enhances AuthenticatorAssertionResponse to accommondate responses
returned from the platform authenticator.

Covered by API tests.

  • Modules/webauthn/AuthenticatorAssertionResponse.cpp:

(WebCore::AuthenticatorAssertionResponse::create):
(WebCore::AuthenticatorAssertionResponse::setAuthenticatorData):
(WebCore::AuthenticatorAssertionResponse::AuthenticatorAssertionResponse):

  • Modules/webauthn/AuthenticatorAssertionResponse.h:

(WebCore::AuthenticatorAssertionResponse::authenticatorData const):
(WebCore::AuthenticatorAssertionResponse::signature const):
(WebCore::AuthenticatorAssertionResponse::name const):
(WebCore::AuthenticatorAssertionResponse::displayName const):
(WebCore::AuthenticatorAssertionResponse::numberOfCredentials const):
(WebCore::AuthenticatorAssertionResponse::accessControl const):
(WebCore::AuthenticatorAssertionResponse::setSignature):
(WebCore::AuthenticatorAssertionResponse::setName):
(WebCore::AuthenticatorAssertionResponse::setDisplayName):
(WebCore::AuthenticatorAssertionResponse::setNumberOfCredentials):

Source/WebKit:

Here is the newly added SPI:
typedef NS_ENUM(NSInteger, _WKWebAuthenticationPanelUpdate) {

...
_WKWebAuthenticationPanelUpdateLAError,
_WKWebAuthenticationPanelUpdateLADuplicateCredential,
_WKWebAuthenticationPanelUpdateLANoCredential,

};

typedef NS_ENUM(NSInteger, _WKWebAuthenticationTransport) {

...
_WKWebAuthenticationTransportInternal,

};

@protocol _WKWebAuthenticationPanelDelegate <NSObject>
@optional
...

  • (void)panel:(_WKWebAuthenticationPanel *)panel verifyUserWithAccessControl:(SecAccessControlRef)accessControl completionHandler:(void ()(LAContext *))completionHandler;

@end

Illustrations:
1) _WKWebAuthenticationPanelUpdate: Three errors are added to help clients present meaningful error messages to users.
a) WKWebAuthenticationPanelUpdateLAError: An internal error, clients should inform users and terminate the platform
authentication process. This error can be returned at any time.
b) _WKWebAuthenticationPanelUpdateLADuplicateCredential: It means a credential is found to match an entry in the
excludeList. Clients should inform users and terminate the platform authentication process. This error will only be
returned during makeCredential and before verifyUserWithAccessControl delegate.
c) _WKWebAuthenticationPanelUpdateLANoCredential: It means no credentials are found. Clients should inform users and
terminate the platform authentication process. This error will only be returned during getAssertion and before
verifyUserWithAccessControl delegate.

2) _WKWebAuthenticationTransport: _WKWebAuthenticationTransportInternal is added such that clients can learn platform
authenticator will be used from _WKWebAuthenticationPanel.transports.

3) verifyUserWithAccessControl: A delegate that will be called during makeCredential or getAssertion when the platform
authenticator is involved. This delegate is used to obtain user verification from a LAContext. In addition, the LAContext
should evaluate the passed accessControl, such that the SEP protected credential private key can be used. A typical
example will be [LAContext evaluateAccessControl:accessControl operation:LAAccessControlOperationUseKeySign localizedReason:reply:].
Noted, for getAssertion, selectAssertionResponse will be called before verifyUserWithAccessControl. So users need to be
prompted to select a credential before the user verification.

In the scenario when both the platform authenticator and external authenticators are requested. Clients are advised to
wait until verifyUserWithAccessControl to show the combined UI. If any of the LAError states are received before
verifyUserWithAccessControl, clients should then only show the external authenticator UI. Also, platform authenticator and
external authenticators are being discovered at the same time, which means a user can plug in a security key at anytime.
If a valid response is received from the security key, the whole ceremony will be terminated.

Besides introducing the SPI, and all the necessary plumbing to make it happen. This patch also:
1) adds LocalAuthenticationSPI, which is used to check whether a given LAContext is unlocked or not;
2) improves MockLocalConnection such that mock testing can still be ran.

  • Platform/spi/Cocoa/LocalAuthenticationSPI.h: Copied from Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/API/APIWebAuthenticationPanel.cpp:

(API::WebAuthenticationPanel::WebAuthenticationPanel):

  • UIProcess/API/APIWebAuthenticationPanelClient.h:

(API::WebAuthenticationPanelClient::verifyUser const):

  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
  • UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:

(wkWebAuthenticationTransport):

  • UIProcess/WebAuthentication/Authenticator.h:
  • UIProcess/WebAuthentication/AuthenticatorManager.cpp:

(WebKit::AuthenticatorManager::verifyUser):

  • UIProcess/WebAuthentication/AuthenticatorManager.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:

(WebKit::LocalAuthenticatorInternal::toNSData):
(WebKit::LocalAuthenticatorInternal::toArrayBuffer):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterResponseSelected):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
(WebKit::LocalAuthenticator::receiveException const):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h:

(WebKit::LocalConnection::filterResponses const):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::isUnlocked const):
(WebKit::LocalConnection::getUserConsent const): Deleted.
(WebKit::LocalConnection::selectCredential const): Deleted.

  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticationPanelClient.mm:

(WebKit::WebAuthenticationPanelClient::WebAuthenticationPanelClient):
(WebKit::wkWebAuthenticationPanelUpdate):
(WebKit::WebAuthenticationPanelClient::selectAssertionResponse const):
(WebKit::WebAuthenticationPanelClient::verifyUser const):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h:
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::isUnlocked const):
(WebKit::MockLocalConnection::filterResponses const):
(WebKit::MockLocalConnection::getUserConsent const): Deleted.
(WebKit::MockLocalConnection::selectCredential const): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticationFlags.h:
  • WebKit.xcodeproj/project.pbxproj:

Tools:

Besides adding API tests, this patch also teaches TestWebKitAPI to use restricted entitlements.

  • TestWebKitAPI/Configurations/TestWebKitAPI-macOS.entitlements:
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:

(-[TestWebAuthenticationPanelDelegate panel:updateWebAuthenticationPanel:]):
(-[TestWebAuthenticationPanelDelegate panel:selectAssertionResponse:completionHandler:]):
(-[TestWebAuthenticationPanelDelegate panel:verifyUserWithAccessControl:completionHandler:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion-la.html: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/web-authentication-get-assertion.html.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-duplicate-credential.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-error.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la.html: Added.
3:45 PM Changeset in webkit [257268] by Simon Fraser
  • 104 edits in trunk

Remove geometry information from the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=208085

Reviewed by Sam Weinig.

The scrolling tree doesn't have enough information to do hit-testing because it has
no representation of layers that overlap scrollers. We'll have to do hit-testing another
way, so remove hit-testing-geometry data from the scrolling tree.

Source/WebCore:

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setRectRelativeToParentNode): Deleted.

  • page/scrolling/AsyncScrollingCoordinator.h:
  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::setRectRelativeToParentNode): Deleted.

  • page/scrolling/ScrollingStateFrameHostingNode.cpp:

(WebCore::ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode):
(WebCore::ScrollingStateFrameHostingNode::dumpProperties const):
(WebCore::ScrollingStateFrameHostingNode::setPropertyChangedBitsAfterReattach): Deleted.
(WebCore::ScrollingStateFrameHostingNode::setParentRelativeScrollableRect): Deleted.

  • page/scrolling/ScrollingStateFrameHostingNode.h:
  • page/scrolling/ScrollingStateScrollingNode.cpp:

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setPropertyChangedBitsAfterReattach):
(WebCore::ScrollingStateScrollingNode::dumpProperties const):
(WebCore::ScrollingStateScrollingNode::setParentRelativeScrollableRect): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.h:

(WebCore::ScrollingStateScrollingNode::parentRelativeScrollableRect const): Deleted.

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::handleWheelEvent):
(WebCore::ScrollingTree::scrollingNodeForPoint):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ScrollingTreeFrameHostingNode.cpp:

(WebCore::ScrollingTreeFrameHostingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):
(WebCore::ScrollingTreeFrameHostingNode::parentToLocalPoint const): Deleted.

  • page/scrolling/ScrollingTreeFrameHostingNode.h:

(WebCore::ScrollingTreeFrameHostingNode::parentRelativeScrollableRect const): Deleted.

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::parentToLocalPoint const): Deleted.
(WebCore::ScrollingTreeFrameScrollingNode::localToContentsPoint const): Deleted.

  • page/scrolling/ScrollingTreeFrameScrollingNode.h:
  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::ScrollingTreeNode):
(WebCore::ScrollingTreeNode::scrollingNodeForPoint const): Deleted.

  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::parentToLocalPoint const): Deleted.
(WebCore::ScrollingTreeNode::localToContentsPoint const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeScrollingNode::dumpProperties const):
(WebCore::ScrollingTreeScrollingNode::parentToLocalPoint const): Deleted.
(WebCore::ScrollingTreeScrollingNode::localToContentsPoint const): Deleted.
(WebCore::ScrollingTreeScrollingNode::scrollingNodeForPoint const): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):
(WebCore::RenderLayerCompositor::rootParentRelativeScrollableRect const): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameHostingNode>::encode):

LayoutTests:

  • fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
  • fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
  • fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
  • platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • scrollingcoordinator/scrolling-tree/absolute-in-nested-sc-scrollers-expected.txt:
  • scrollingcoordinator/scrolling-tree/absolute-inside-stacking-in-scroller-expected.txt:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/clipped-layer-in-overflow-nested-expected.txt:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/composited-in-absolute-in-stacking-context-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
  • scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-absolute-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-relative-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-absolute-in-sc-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/nested-overflow-scroll-expected.txt:
  • scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-complex-expected.txt:
  • scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
  • scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
  • scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
  • scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
  • scrollingcoordinator/scrolling-tree/sticky-in-overflow-expected.txt:
  • scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
  • tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
  • tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-expected.txt:
  • tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
  • tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
  • tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
  • tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
  • tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
  • tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
3:45 PM Changeset in webkit [257267] by Alan Coon
  • 1 copy in tags/Safari-610.1.4.1

Tag Safari-610.1.4.1.

3:27 PM Changeset in webkit [257266] by Alan Coon
  • 8 edits in branches/safari-609.1.20.3-branch/Source

Versioning.

3:27 PM Changeset in webkit [257265] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mac wk2 ] fast/scrolling/overflow-scroll-past-max.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=208160

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
3:18 PM Changeset in webkit [257264] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Use one telemetry decoration for each sandbox rule
https://bugs.webkit.org/show_bug.cgi?id=207897

Reviewed by Brent Fulgham.

Currently, we are using the decorations '(with telemetry)' and '(with telemetry-backtrace)' for some sandbox rules
in the WebContent process' sandbox. Only one of the two decorations should be used.

No new tests, no behavior change.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:15 PM Changeset in webkit [257263] by Alan Coon
  • 3 edits in branches/safari-609.1.20.2-branch/Source/JavaScriptCore

Cherry-pick r257134. rdar://problem/59676898

Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>

Reviewed by Yusuke Suzuki.

If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:

  1. Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.

This ensures that we won't get corrupted cache files due to interrupted writes.

  1. Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.

This ensures that we won't be crashing while decoding a corrupted cache file.

Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:

  1. no cache file on disk.
  2. a 0-sized cache file on a disk.
  3. a truncated cache file on disk.
  4. a corrupted cache file on disk.
  5. an uncorrupted cache file on disk.

Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.

  • API/JSScript.mm: (-[JSScript readCache]): (-[JSScript writeCache:]):
  • runtime/CachedTypes.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:15 PM Changeset in webkit [257262] by Alan Coon
  • 10 edits in branches/safari-609.1.20.2-branch/Source/WebKit

Cherry-pick r256967. rdar://problem/59654603

Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>

Reviewed by Alex Christensen.

NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).

To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): (WebKit::NetworkProcess::setCacheModel):
  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::cacheModel const):
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::initialize):
  • NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::computeCapacity): (WebKit::NetworkCache::Cache::open): (WebKit::NetworkCache::Cache::capacity const): (WebKit::NetworkCache::Cache::updateCapacity): (WebKit::NetworkCache::Cache::setCapacity): Deleted.
  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::setCapacity):
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setCacheModel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:15 PM Changeset in webkit [257261] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, mark several tests as flaky
https://bugs.webkit.org/show_bug.cgi?id=208140

Unreviewed gardening.

  • platform/gtk/TestExpectations:
3:15 PM Changeset in webkit [257260] by Alan Coon
  • 6 edits in branches/safari-609.1.20.2-branch/Source/WebKit

Cherry-pick r256881. rdar://problem/59654287

Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:14 PM Changeset in webkit [257259] by Alan Coon
  • 3 edits in branches/safari-609.1.20.2-branch/Source/WebKit

Cherry-pick r256857. rdar://problem/59654273

NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486

Reviewed by Alex Christensen.

NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

3:08 PM Changeset in webkit [257258] by Alan Coon
  • 8 edits in branches/safari-609.1.20.2-branch/Source

Versioning.

2:46 PM Changeset in webkit [257257] by ysuzuki@apple.com
  • 2 edits in trunk/Tools

Unreviewed, updating LLDB test for CompactPointerTuple.
https://bugs.webkit.org/show_bug.cgi?id=207827

  • lldb/lldb_webkit.py:

(WTFCompactPointerTupleProvider):
(WTFCompactPointerTupleProvider.update):

2:32 PM Changeset in webkit [257256] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

Changed results due to ANGLE use
https://bugs.webkit.org/show_bug.cgi?id=207858

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:18 PM Changeset in webkit [257255] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

[WebAccessibilityObjectWrapper updateObjectBackingStore] should return the backing object.
https://bugs.webkit.org/show_bug.cgi?id=208153

Reviewed by Chris Fleizach.

Covered by existing tests.

Currently in many WebAccessibilityObjectWrapper's methods we call
updateObjectBackingStore followed by one or more calls to
axBackingObject. This patch eliminates this unnecessary call by making
updateObjectBackingStore return the backing object. It also cleans up
other unnecessary calls to axBackingObject and does some minor code
cleanup.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityFocusedUIElement]):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
(-[WebAccessibilityObjectWrapper _accessibilityPerformPressAction]):
(-[WebAccessibilityObjectWrapper _accessibilityPerformIncrementAction]):
(-[WebAccessibilityObjectWrapper _accessibilityPerformDecrementAction]):
(-[WebAccessibilityObjectWrapper accessibilityPerformAction:]):
(-[WebAccessibilityObjectWrapper accessibilityReplaceRange:withText:]):
(-[WebAccessibilityObjectWrapper accessibilityInsertText:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
(-[WebAccessibilityObjectWrapper accessibilityIndexOfChild:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeCount:]):
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):

2:08 PM Changeset in webkit [257254] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Temporarily disable in-process cookie cache as it seems to be causing hangs on iOS
https://bugs.webkit.org/show_bug.cgi?id=208152
<rdar://problem/59706587>

Reviewed by Alex Christensen.

  • Shared/WebPreferences.yaml:
1:57 PM Changeset in webkit [257253] by Alan Coon
  • 8 edits in branches/safari-610.1.4-branch/Source

Versioning.

1:53 PM Changeset in webkit [257252] by Alan Coon
  • 1 edit in branches/safari-609.1.20.0-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm

Apply patch. rdar://problem/59735101

1:52 PM Changeset in webkit [257251] by Alan Coon
  • 3 edits in branches/safari-609.1.20.0-branch/Source/JavaScriptCore

Cherry-pick r257134. rdar://problem/59676913

Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>

Reviewed by Yusuke Suzuki.

If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:

  1. Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.

This ensures that we won't get corrupted cache files due to interrupted writes.

  1. Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.

This ensures that we won't be crashing while decoding a corrupted cache file.

Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:

  1. no cache file on disk.
  2. a 0-sized cache file on a disk.
  3. a truncated cache file on disk.
  4. a corrupted cache file on disk.
  5. an uncorrupted cache file on disk.

Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.

  • API/JSScript.mm: (-[JSScript readCache]): (-[JSScript writeCache:]):
  • runtime/CachedTypes.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257250] by Alan Coon
  • 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Cherry-pick r257106. rdar://problem/59676872

Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037
<rdar://problem/59480381>

Reviewed by Brent Fulgham.

No new tests. This patch just adds a domain name to a quirks function.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingRecommendedForRequest):

fidelity.com and its subdomains now return false.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257249] by Alan Coon
  • 2 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Cherry-pick r257103. rdar://problem/59676894

WebIDBServer resume should return early if suspend does not happen
https://bugs.webkit.org/show_bug.cgi?id=208027
<rdar://problem/59617654>

Reviewed by Geoffrey Garen.

We should not try releasing a lock that is not held.

  • NetworkProcess/IndexedDB/WebIDBServer.cpp: (WebKit::WebIDBServer::resume):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257103 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257248] by Alan Coon
  • 4 edits in branches/safari-609.1.20.0-branch

Cherry-pick r257077. rdar://problem/59676884

REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm: (TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257077 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257247] by Alan Coon
  • 10 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Cherry-pick r256967. rdar://problem/59654620

Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>

Reviewed by Alex Christensen.

NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).

To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): (WebKit::NetworkProcess::setCacheModel):
  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::cacheModel const):
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::initialize):
  • NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::computeCapacity): (WebKit::NetworkCache::Cache::open): (WebKit::NetworkCache::Cache::capacity const): (WebKit::NetworkCache::Cache::updateCapacity): (WebKit::NetworkCache::Cache::setCapacity): Deleted.
  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::setCapacity):
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setCacheModel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257246] by Alan Coon
  • 6 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Cherry-pick r256881. rdar://problem/59654584

Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257245] by Alan Coon
  • 3 edits in branches/safari-609.1.20.0-branch/Source/WebKit

Cherry-pick r256857. rdar://problem/59654285

NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486

Reviewed by Alex Christensen.

NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

1:52 PM Changeset in webkit [257244] by Alan Coon
  • 1 edit in branches/safari-609.1.20.0-branch/Source/JavaScriptCore/runtime/JSCJSValue.h

Apply patch. rdar://problem/59654707

1:52 PM Changeset in webkit [257243] by Alan Coon
  • 23 edits
    3 adds in branches/safari-609.1.20.0-branch

Apply patch. rdar://problem/59654271

1:51 PM Changeset in webkit [257242] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Context menu platter animation is wrong occasionally when invoking it repeatedly and rapidly
https://bugs.webkit.org/show_bug.cgi?id=208147
<rdar://problem/54436720>

Reviewed by Wenson Hsieh.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):
If a new context menu interaction has started, don't remove the hint
container view out from under it when the previous animation finishes,
or the presentation animation will go crazy (in a variety of humorous
and unpredictable ways), because UIKit can't do coordinate conversion
through an unparented view.

Eventually the final animation will complete and unparent the view.

1:50 PM Changeset in webkit [257241] by Russell Epstein
  • 1 edit in branches/safari-609.1.20.111-branch/Source/WebKitLegacy/mac/WebView/WebPreferences.mm

Apply patch. rdar://problem/59736039

1:50 PM Changeset in webkit [257240] by Russell Epstein
  • 23 edits
    3 adds in branches/safari-609.1.20.111-branch

Apply patch. rdar://problem/59654262

1:50 PM Changeset in webkit [257239] by Russell Epstein
  • 4 edits in branches/safari-609.1.20.111-branch/Source/JavaScriptCore

Apply patch. rdar://problem/59654262

1:42 PM Changeset in webkit [257238] by Caio Lima
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] 32-bits debug build broken after r257212
https://bugs.webkit.org/show_bug.cgi?id=208149

Reviewed by Yusuke Suzuki.

Changing Structure::setCachedPrototypeChain to use
m_cachedPrototypeChainOrRareData.setMayBeNull, since chain may be
null.

  • runtime/StructureInlines.h:

(JSC::Structure::setCachedPrototypeChain):

1:18 PM Changeset in webkit [257237] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix watchOS build
https://bugs.webkit.org/show_bug.cgi?id=207827

While watchOS does not use FTL at all, it still compiles.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
(JSC::FTL::DFG::LowerDFGToB3::loadStructureClassInfo):
(JSC::FTL::DFG::LowerDFGToB3::loadStructureCachedPrototypeChainOrRareData):

1:15 PM Changeset in webkit [257236] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC][IFC][Floats] Fix float box handling inside unbreakable content
https://bugs.webkit.org/show_bug.cgi?id=208109
<rdar://problem/59708646>

Reviewed by Antti Koivisto.

We've been handling float boxes and other inline items as mutually exclusive content (in the context of unbreakable candidate runs).
While this works in most cases, when the unbreakable content includes float boxes, the layout
ends up being incorrect.
This patch is in preparation for making sure we process the inline content and the associated float boxes as one entity.
(e.g "text_<div style="float: left"></div>_content" produces an unbreakable inline content of [text_][_content] and an associated float box)

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::isAtSoftWrapOpportunity):
(WebCore::Layout::LineCandidate::FloatContent::append):
(WebCore::Layout::LineCandidate::FloatContent::list const):
(WebCore::Layout::LineCandidate::FloatContent::reset):
(WebCore::Layout::LineCandidate::reset):
(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::nextContentForLine):
(WebCore::Layout::LineLayoutContext::tryAddingFloatContent):
(WebCore::Layout::LineLayoutContext::tryAddingFloatItem): Deleted.

  • layout/inlineformatting/LineLayoutContext.h:
12:28 PM Changeset in webkit [257235] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Document / DOMWindow objects get leaked on CNN.com due to CSSTransitions
https://bugs.webkit.org/show_bug.cgi?id=208145

Reviewed by Antoine Quint.

Break reference cycles using WeakPtr so that CSSTransitions can no longer cause whole document / DOM trees to
get leaked.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::DocumentTimeline):

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffect.cpp:

(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::setTarget):

  • animation/KeyframeEffect.h:
12:06 PM Changeset in webkit [257234] by youenn@apple.com
  • 9 edits in trunk/Source

Add a runtime flag dedicated to WebRTC codecs in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=208136

Reviewed by Alex Christensen.

Source/WebCore:

Add a runtime flag for WebRTC codecs in GPUProcess.
Enable the flag by default for MacOS.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCPlatformCodecsInGPUProcessEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCPlatformCodecsInGPUProcessEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::setUseGPUProcessForWebRTC):

Source/WebKit:

Add a runtime flag dedicated to enabling WebRTC codecs in GPUProcess.
Use this flag instead of the media flag.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:

(WebKit::LibWebRTCProvider::createDecoderFactory):

11:26 AM Changeset in webkit [257233] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Revert "Cherry-pick r257106. rdar://problem/59676862"

This reverts commit r257231.

11:17 AM Changeset in webkit [257232] by Russell Epstein
  • 3 edits in branches/safari-609.1.20.111-branch/Source/JavaScriptCore

Cherry-pick r257134. rdar://problem/59676904

Make support for bytecode caching more robust against file corruption.
https://bugs.webkit.org/show_bug.cgi?id=207972
<rdar://problem/59260595>

Reviewed by Yusuke Suzuki.

If a bytecode cache file is corrupted, we currently will always crash every time
we try to read it (in perpetuity as long as the corrupted cache file continues to
exist on disk). To guard against this, we'll harden the bytecode caching mechanism
as follows:

  1. Modify the writeCache operation to always write the cache file in a transactional manner i.e. we'll first write to a .tmp file, and then rename the .tmp file to the cache file only if the entire file has been written in completeness.

This ensures that we won't get corrupted cache files due to interrupted writes.

  1. Modify the writeCache operation to also compute a SHA1 hash of the cache file and append the hash at end of the file. Modify the readCache operation to first authenticate the SHA1 hash before allowing the cache file to be used. If the hash does not match, the file is bad, and we'll just delete it.

This ensures that we won't be crashing while decoding a corrupted cache file.

Manually tested with the following scenarios and ensuring that the client recovers
with no crashes:

  1. no cache file on disk.
  2. a 0-sized cache file on a disk.
  3. a truncated cache file on disk.
  4. a corrupted cache file on disk.
  5. an uncorrupted cache file on disk.

Also added some static_asserts in CachedTypes.cpp to document some invariants that
the pre-existing code is dependent on.

  • API/JSScript.mm: (-[JSScript readCache]): (-[JSScript writeCache:]):
  • runtime/CachedTypes.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257134 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257231] by Russell Epstein
  • 2 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Cherry-pick r257106. rdar://problem/59676862

Add fidelity.com to the desktop class quirks list
https://bugs.webkit.org/show_bug.cgi?id=208037
<rdar://problem/59480381>

Reviewed by Brent Fulgham.

No new tests. This patch just adds a domain name to a quirks function.

  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::desktopClassBrowsingRecommendedForRequest):

fidelity.com and its subdomains now return false.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257106 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257230] by Russell Epstein
  • 5 edits in branches/safari-609.1.20.111-branch

Cherry-pick r257089. rdar://problem/59676917

NetworkCache should use 4KB threshold for mmap-ed files instead of 16KB
https://bugs.webkit.org/show_bug.cgi?id=207882

Reviewed by Alex Christensen.

Source/WebKit:

We found that a lot of Vectors in Membuster is holding resource content. This is because we have 16KB threshold for mmap-ed files.
If a file is smaller than 16KB, it is copied to Vector instead. But this is costly in terms of memory. If we use mmap-ed files,
it becomes named-pages instead of anonymous-pages. File-backed non-dirty named-pages have a lot of benefit.

  1. The application is offering a hint that pages are file-backed. This means that OS can purge them at any time since the content can be recovered from the disk. This is cheaper than swapping / compressing anonymous pages since just discarding works.
  2. The application is offering a hint that pages have spatial locality. Purging pages in one named-pages region is better compared to purging the same # of anonymous pages randomly. Anonymous pages are split by malloc implementation and access pattern of pages in one VA is random. On the other hand, named-pages are accessed together because it is file, and file typically has sequential locality. And recovery of named pages are also cheap compared to anonymous pages since OS can prefetch pages once access happens because of sequential locality of files. This tendency makes OS like purging named pages instead of anonymous pages. In WebKit use case, this works perfectly. CachedResource typically has decoded content. So typically WebProcess does not access SharedBuffer after the content is decoded.

This patch reduces the threshold from 16KB to page size (4KB in macOS, 16KB in iOS). This is pre-2015 behavior.
This offers 2.56% progression with 98% probability in Membuster.

  • NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::maximumInlineBodySize): (WebKit::NetworkCache::estimateRecordsSize): (WebKit::NetworkCache::Storage::shouldStoreBodyAsBlob):

LayoutTests:

The test is assuming that 12KB file is served via non-mmap-file.
This assumption is flaky and broken by this change. For now, we pick smaller
file to meet this assumption.

  • http/tests/inspector/network/resource-sizes-disk-cache-expected.txt:
  • http/tests/inspector/network/resource-sizes-disk-cache.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257089 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257229] by Russell Epstein
  • 4 edits in branches/safari-609.1.20.111-branch

Cherry-pick r257077. rdar://problem/59676877

REGRESSION (r255677): Reloading tab with beforeunload prompt closes tab when asking to stay on page
https://bugs.webkit.org/show_bug.cgi?id=208015
<rdar://problem/59591630>

Reviewed by Geoffrey Garen.

Source/WebKit:

Make sure we only restart the tryClose timer after the beforeunload prompt if the timer was actually
active before the prompt (i.e. tryClose was actually called). On Reload, tryClose is not called
but beforeunload prompt may still happen.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::runBeforeUnloadConfirmPanel):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ModalAlerts.mm: (TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@257077 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257228] by Russell Epstein
  • 10 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Cherry-pick r256967. rdar://problem/59654605

Regression(r247567) HTTP Disk cache capacity is no longer set
https://bugs.webkit.org/show_bug.cgi?id=207959
<rdar://problem/59603972>

Reviewed by Alex Christensen.

NetworkProcess::initializeNetworkProcess() was setting the cache model, which
would iterate over all network sessions to update their network cache capacity.
The issue was that network sessions were not constructed yet at this point.
When the network session(s) would get created later on, they would construct
their NetworkCache and it would use the default capacity (i.e.
std::numeric_limits<size_t>::max()).

To make this safer, I have moved the capacity computation to the Cache::open()
method and now pass the capacity when constructing the network cache storage.

  • NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::initializeNetworkProcess): (WebKit::NetworkProcess::setCacheModelSynchronouslyForTesting): (WebKit::NetworkProcess::setCacheModel):
  • NetworkProcess/NetworkProcess.h: (WebKit::NetworkProcess::cacheModel const):
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::initialize):
  • NetworkProcess/cache/NetworkCache.cpp: (WebKit::NetworkCache::computeCapacity): (WebKit::NetworkCache::Cache::open): (WebKit::NetworkCache::Cache::capacity const): (WebKit::NetworkCache::Cache::updateCapacity): (WebKit::NetworkCache::Cache::setCapacity): Deleted.
  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp: (WebKit::NetworkCache::Storage::open): (WebKit::NetworkCache::Storage::Storage): (WebKit::NetworkCache::Storage::setCapacity):
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::setCacheModel):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257227] by Russell Epstein
  • 6 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Cherry-pick r256881. rdar://problem/59654289

Drop getSandboxExtensionsForBlobFiles() as it is dead code
https://bugs.webkit.org/show_bug.cgi?id=207909
<rdar://problem/59562180>

Reviewed by Per Arne Vollan.

  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/NetworkProcess.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256881 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257226] by Russell Epstein
  • 3 edits in branches/safari-609.1.20.111-branch/Source/WebKit

Cherry-pick r256857. rdar://problem/59654274

NetworkDataTask should not expect its session wrapper to be always live
https://bugs.webkit.org/show_bug.cgi?id=207903
rdar://problem/59291486

Reviewed by Alex Christensen.

NetworkDataTaskCocoa should take a weak pointer to its session wrapper.
If the session wrapper is still valid, then we can remove the task from the session wrapper map.
We cannot guarantee session wrapper is valid since NetworkDataTask is ref counted.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa): (WebKit::NetworkDataTaskCocoa::~NetworkDataTaskCocoa):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256857 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:17 AM Changeset in webkit [257225] by commit-queue@webkit.org
  • 21 edits
    1 add in trunk

Provide alternate way to name Web Content process
https://bugs.webkit.org/show_bug.cgi?id=205224
rdar://57038084

Patch by Ellie Epskamp-Hunt <eepskamphunt@apple.com> on 2020-02-24
Reviewed by Alex Christensen.

Source/WebKit:

Test: TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm

Add the ability to set _processDisplayName on WKWebViewConfiguration to allow the name of the web
content process that appears in Activity Monitor to be set to a custom string.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::lsDisplayName const):
(API::PageConfiguration::setlsDisplayName):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getDisplayNameWithCompletionHandler:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _lsDisplayName]):
(-[WKWebViewConfiguration _setlsDisplayName:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::getDisplayName):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getDisplayName):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lsDisplayName):
(WebKit::WebPage::close):
(WebKit::WebPage::didCommitLoad):
(WebKit::m_overriddenMediaType): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::updateActivePages):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateActivePages):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm: Added.

(TestWebKitAPI::TEST):

11:17 AM Changeset in webkit [257224] by Russell Epstein
  • 3 edits in branches/safari-609.1.20.111-branch/Source/WebCore

Cherry-pick r256856. rdar://problem/59654781

MediaSource.isTypeSupported() says "video/mp4;codecs=\"avc3.42C015\"" is not supported, but it is
https://bugs.webkit.org/show_bug.cgi?id=207622

Reviewed by Eric Carlson.

Revert the behavior change of MediaPlayerPrivateMediaSourceAVFObjC::supportsType() in r253952.

  • platform/graphics/avfoundation/objc/AVAssetMIMETypeCache.mm: (WebCore::AVAssetMIMETypeCache::canDecodeExtendedType):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256856 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:15 AM Changeset in webkit [257223] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

fast/forms/ios/click-should-not-suppress-misspelling.html fails on iOS 13.4 beta
https://bugs.webkit.org/show_bug.cgi?id=208086
<rdar://problem/59631501>

Reviewed by Tim Horton.

In the iOS 13.4 beta, tapping near the caret rect in an editable text field causes the callout bar to toggle
visibility instead of triggering word-granularity spellchecking and changing the selection. This test in
particular dispatches two taps: the first at (100, 100), and the second at (300, 100) in content view
coordinates. However, since the page does not have a viewport, the entire page is scaled down on iPhone, such
that the second tap at (300, 100) ends up being very close to the caret rect.

To fix this, we simply make the text field take up 100% of the viewport width, and make the viewport use
device-width with an initial scale of 1. This ensures that the second tap will be somewhere near the end of the
misspelled word, which triggers spellchecking as intended by the test instead of just showing the callout bar.

  • fast/forms/ios/click-should-not-suppress-misspelling-expected.txt:
  • fast/forms/ios/click-should-not-suppress-misspelling.html:
11:01 AM Changeset in webkit [257222] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Protect WebProcessPool from null weak pointers in m_serviceWorkerProcesses map
https://bugs.webkit.org/show_bug.cgi?id=208143
rdar://problem/58285589

Reviewed by Alex Christensen.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::updateProcessAssertions):
When iterating through the map, make sure it does not have a null entry.

10:59 AM Changeset in webkit [257221] by Alan Coon
  • 8 edits in trunk/Source

Versioning.

10:58 AM Changeset in webkit [257220] by Alan Coon
  • 1 copy in branches/safari-610.1.5-branch

New branch.

10:57 AM Changeset in webkit [257219] by Jonathan Bedard
  • 6 edits
    1 add in trunk/Tools

results.webkit.org: Link to result archives
https://bugs.webkit.org/show_bug.cgi?id=207646
<rdar://problem/59395807>

Rubber-stamped by Aakash Jain.

  • resultsdbpy/resultsdbpy/view/static/js/archiveRouter.js: Added.

(_ArchiveRouter): Retrieve json from archive-router endpoint.
(_ArchiveRouter.prototype._determineArgumentFromAncestry): Given an argument, default and ancestry values,
return the most specific value.
(_ArchiveRouter.prototype.hasArchive): Check if a suite and mode have an archive link.
(_ArchiveRouter.prototype.pathFor): Construct the path for archive access.
(_ArchiveRouter.prototype.labelFor): Return a label for an archive link.

  • resultsdbpy/resultsdbpy/view/static/js/investigate.js:

(parametersForInstance): Extract from lambda function.
(testRunLink): Use parametersForInstance instead of a lambda function.
(archiveLink): Return an archive link for data.
(contentForData): Add archive link to view.

  • resultsdbpy/resultsdbpy/view/static/js/timeline.js:

(TimelineFromEndpoint): Accept both suite and test.
(TimelineFromEndpoint.prototype.render.onDotEnterFactory): Add archive link to pop-over.

  • resultsdbpy/resultsdbpy/view/templates/search.html: Pass suite and test to TimelineEndpoint.
  • resultsdbpy/resultsdbpy/view/templates/suite_results.html: Pass suite to TimelineEndpoint.
  • resultsdbpy/resultsdbpy/view/view_routes.py:

(ViewRoutes.init): Add archive_route dictionary.

10:57 AM Changeset in webkit [257218] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[watchOS] Adopt UICollectionView-based SPI on PUICQuickboardListViewController
https://bugs.webkit.org/show_bug.cgi?id=208137
<rdar://problem/57756279>

Reviewed by Tim Horton.

Fixes deprecation warnings due to the main content area of PUICQuickboardListViewController becoming backed by a
UICollectionView rather than a UITableView. See below for more details.

  • UIProcess/ios/forms/WKQuickboardListViewController.h:
  • UIProcess/ios/forms/WKQuickboardListViewController.mm:

(-[WKQuickboardListCollectionViewItemCell topToLabelBaselineSpecValue]):
(-[WKQuickboardListCollectionViewItemCell baselineToBottomSpecValue]):

Add WKQuickboardListCollectionViewItemCell, a PUICQuickboardListCollectionViewItemCell subclass which will
replace WKQuickboardListItemCell.

  • UIProcess/ios/forms/WKSelectMenuListViewController.mm:

(-[WKSelectMenuCollectionViewItemCell initWithFrame:]):
(-[WKSelectMenuCollectionViewItemCell imageView]):

Similarly, add WKSelectMenuCollectionViewItemCell, a collection view cell which replaces WKSelectMenuItemCell.

(-[WKSelectMenuListViewController didSelectListItem:]):
(-[WKSelectMenuListViewController didSelectListItemAtIndexPath:]):

Reimplement -didSelectListItem: using -didSelectListItemAtIndexPath:. The latter handles model updates when
the user interacts with select options in the Quickboard view controller that is collection-view-backed.

(-[WKSelectMenuListViewController listItemCellClass]):
(-[WKSelectMenuListViewController listItemCellReuseIdentifier]):
(-[WKSelectMenuListViewController itemCellForListItem:forIndexPath:]):
(-[WKSelectMenuListViewController collectionViewSectionIsRadioSection:]):

10:53 AM Changeset in webkit [257217] by Russell Epstein
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

10:41 AM Changeset in webkit [257216] by Alan Coon
  • 8 edits in branches/safari-609.1.20.0-branch/Source

Versioning.

10:11 AM Changeset in webkit [257215] by achristensen@apple.com
  • 4 edits in trunk

WKWebViewConfiguration._corsDisablingPatterns should also disable CORS for non-DocumentThreadableLoader loading
https://bugs.webkit.org/show_bug.cgi?id=208035
<rdar://problem/58011337>

Reviewed by Tim Hatcher.

Source/WebCore:

Covered by an API test.

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createPotentialAccessControlRequest):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:
10:05 AM Changeset in webkit [257214] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

REGRESSION (r248481): drag animation of a link starts from the incorrect location
https://bugs.webkit.org/show_bug.cgi?id=208113
<rdar://problem/59448696>

Reviewed by Tim Horton.

For both dragging and context menu interactions, UIKit asks us for targeted previews, which are hosted under
container views provided by WebKit. These container views must be in the hierarchy (i.e. they must have a
UIWindow); otherwise, UIKit incorrectly computes some geometry when animating the previews. Prior to the fix for
<rdar://problem/57172514>, this caused targeted drag previews to animate in from a seemingly random location;
however, UIKit worked around this by falling back to the same codepath used for remotely hosted views, which
uses the last known touch location as an approximation of where to start the drag preview animation. This mostly
makes the bug go away, but the delta between the touch location and the actual location of the dragged element
in the page still causes some very minor visual differences.

Due to r248481, a separate UIView (_contextMenuHintContainerView) under the content view is used when generating
targeted previews for both drag and drop and context menu hints. This view is removed when the context menu
interaction ends; however, when starting a drag, the context menu interaction ends right before the drag session
actually begins, which means that when UIKit actually starts to animate the drag preview, the container view has
already been unparented.

To address this, introduce a separate _dragPreviewContainerView alongside _contextMenuHintContainerView, and use
this new view when generating targeted previews for dragging. This view is generated lazily and cleaned up
(unparented and cleared out) when the drag interaction has ended, in -cleanUpDragSourceSessionState.

  • UIProcess/ios/WKContentViewInteraction.h:

Add _dragPreviewContainerView.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _didCommitLoadForMainFrame]):
(-[WKContentView dataDetectionContextForPositionInformation:]):
(-[WKContentView containerForDragPreviews]):
(-[WKContentView containerForContextMenuHintPreviews]):

Split -containerViewForTargetedPreviews into -containerForDragPreviews and -containerForContextMenuHintPreviews,
and use them as appropriate.

(-[WKContentView _hideTargetedPreviewContainerViews]):

Renamed from _hideContextMenuHintContainer, since it hides both types of targeted preview containers now.

(-[WKContentView cleanUpDragSourceSessionState]):

Clear out and remove _dragPreviewContainerView here.

(-[WKContentView _deliverDelayedDropPreviewIfPossible:]):
(-[WKContentView dragInteraction:previewForLiftingItem:session:]):

Use -containerForDragPreviews when creating previews for dragging.

(-[WKContentView _createTargetedContextMenuHintPreviewIfPossible]):
(-[WKContentView contextMenuInteraction:previewForHighlightingMenuWithConfiguration:]):

Use -containerForContextMenuHintPreviews when creating previews for the context menu hint.

(-[WKContentView containerViewForTargetedPreviews]): Deleted.
(-[WKContentView _hideContextMenuHintContainer]): Deleted.
(-[WKContentView _createTargetedPreviewIfPossible]): Deleted.

9:44 AM Changeset in webkit [257213] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Remove redundant trailing line break handling.
https://bugs.webkit.org/show_bug.cgi?id=208108
<rdar://problem/59708620>

Reviewed by Antti Koivisto.

LineLayoutContext::layoutLine should be able to handle both cases of trailing line breaks.
(This patch also makes tryAddingInlineItems return explicit IsEndOfLine values.)

  • layout/inlineformatting/LineLayoutContext.cpp:

(WebCore::Layout::LineLayoutContext::layoutLine):
(WebCore::Layout::LineLayoutContext::tryAddingInlineItems):

9:42 AM Changeset in webkit [257212] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for 32bit pointer architectures
https://bugs.webkit.org/show_bug.cgi?id=207827

  • runtime/Structure.h:
9:24 AM Changeset in webkit [257211] by commit-queue@webkit.org
  • 6 edits
    5 adds in trunk

Verify Prefetch and credential behavior
https://bugs.webkit.org/show_bug.cgi?id=200000

Patch by Rob Buis <rbuis@igalia.com> on 2020-02-24
Reviewed by Youenn Fablet.

Source/WebKit:

Cancel cross-origin prefetches for Vary: Cookie.

Test: http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • NetworkProcess/cache/PrefetchCache.cpp:

(WebKit::PrefetchCache::take):

LayoutTests:

Add a test to verify that navigating to a prefetched main resource
that sets Vary: Cookie does send cookies.

  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie-expected.txt: Added.
  • http/wpt/prefetch/link-prefetch-cross-origin-vary-cookie.html: Added.
  • http/wpt/prefetch/resources/main-resource-cross-origin-set-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/main-resource-cross-origin-vary-cookie.py: Added.

(main):

  • http/wpt/prefetch/resources/navigate-cross-origin-vary-cookie.html: Added.
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
9:07 AM Changeset in webkit [257210] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Gardening, update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=208128

Unreviewed gardening.

  • platform/gtk/TestExpectations:
8:42 AM Changeset in webkit [257209] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Protect from null session in NetworkDataTaskCocoa::restrictRequestReferrerToOriginIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=208127
rdar://problem/57937917

Reviewed by Chris Dumez.

In case of a data task whose session is destroyed, do not follow redirection early on.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

8:12 AM Changeset in webkit [257208] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][IFC][Floats] Move float handling out of LineBreaker
https://bugs.webkit.org/show_bug.cgi?id=208107
<rdar://problem/59708575>

Reviewed by Antti Koivisto.

LineBreaker should only deal with inline content.

  • layout/inlineformatting/InlineLineBreaker.cpp:

(WebCore::Layout::LineBreaker::shouldWrapFloatBox): Deleted.

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

(WebCore::Layout::LineLayoutContext::tryAddingFloatItem):

8:04 AM Changeset in webkit [257207] by graouts@webkit.org
  • 2 edits in trunk/Source/WebCore

RenderLayerBacking::notifyAnimationStarted calls directly into the old animation controller
https://bugs.webkit.org/show_bug.cgi?id=207979

Reviewed by Simon Fraser.

Only call into CSSAnimationController if the "Web Animations for CSS Animations" flag is disabled.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyAnimationStarted):

7:50 AM Changeset in webkit [257206] by commit-queue@webkit.org
  • 21 edits
    3 adds in trunk

Handle page closure for stale-while-revalidate revalidations
https://bugs.webkit.org/show_bug.cgi?id=204147

Patch by Rob Buis <rbuis@igalia.com> on 2020-02-24
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Add test to verify that frame removal triggers revalidation cancellation.

  • web-platform-tests/fetch/stale-while-revalidate/frame-removal-expected.txt: Added.
  • web-platform-tests/fetch/stale-while-revalidate/frame-removal.html: Added.
  • web-platform-tests/fetch/stale-while-revalidate/resources/stale-frame.py: Added.

(id_token):
(main):

Source/WebCore:

Add a new hook to LoaderStrategy to signal browsing context removal
and call it when the main frame stops all loaders.

Test: imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopAllLoaders):

  • loader/LoaderStrategy.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::canUseCacheValidator const):

Source/WebKit:

Add a message for browsing context removal. When the message happens,
pass it down to the network cache to remove any pending
async revalidations for that page.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::browsingContextRemoved):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:
  • NetworkProcess/cache/AsyncRevalidation.cpp:

(WebKit::NetworkCache::AsyncRevalidation::cancel):

  • NetworkProcess/cache/AsyncRevalidation.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::startAsyncRevalidationIfNeeded):
(WebKit::NetworkCache::Cache::browsingContextRemoved):

  • NetworkProcess/cache/NetworkCache.h:

(WebKit::NetworkCache::GlobalFrameID::hash const):
(WebKit::NetworkCache::operator==):
(WTF::GlobalFrameIDHash::hash):
(WTF::GlobalFrameIDHash::equal):
(WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::emptyValue):
(WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::constructDeletedValue):
(WTF::HashTraits<WebKit::NetworkCache::GlobalFrameID>::isDeletedValue):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::cancel):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::browsingContextRemoved):

  • WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

Provide empty stub for new method on LoaderStrategy.

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::browsingContextRemoved):

  • WebCoreSupport/WebResourceLoadScheduler.h:
7:48 AM Changeset in webkit [257205] by Andres Gonzalez
  • 2 edits in trunk/Source/WebCore

Fix for build: follow up to bug 208074.
https://bugs.webkit.org/show_bug.cgi?id=208133

Unreviewed build fix.

No new tests needed.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::cellForColumnAndRow):

7:32 AM Changeset in webkit [257204] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION: (r256619) [ Mac wk1 Release ] legacy-animation-engine/fast/animation/animation-mixed-transform-crash.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=208019
rdar://59676811

Reviewed by Antti Koivisto.

Since this test should be using the legacy animation engine, ensure that it does.

  • legacy-animation-engine/fast/animation/animation-mixed-transform-crash.html:
  • platform/mac-wk1/TestExpectations
3:43 AM Changeset in webkit [257203] by Diego Pino Garcia
  • 4 edits
    2 adds in trunk/LayoutTests

[GTK] Gardening, update TestExpectations and baselines
https://bugs.webkit.org/show_bug.cgi?id=208124

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fetch/fetch-url-serialization-expected.txt: Added.
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-serializable-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
2:03 AM WebKitGTK/2.28.x edited by Philippe Normand
(diff)
1:13 AM Changeset in webkit [257202] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer][WPE] Add GstGLMemoryEGL support for the video-plane-display
https://bugs.webkit.org/show_bug.cgi?id=208046

Reviewed by Žan Doberšek.

The glupload element might fill EGL memories in some cases, so for
the video sink we can then directly access the corresponding
EGLImage and export it to DMABuf, instead of using the more
general GLMemory code path.

With this patch we also ensure that both DMABuf FD and stride are valid.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::handoffVideoDmaBuf):

12:38 AM Changeset in webkit [257201] by ysuzuki@apple.com
  • 36 edits
    1 add in trunk

[JSC] Shrink Structure
https://bugs.webkit.org/show_bug.cgi?id=207827

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch shrinks sizeof(Structure) from 112 to 96 (16 bytes) in architectures using 64 bit pointers.
Structure is one of the most frequently allocated JSCell in JSC. So it is worth doing
all the sort of bit hacks to make it compact as much as possible.

  1. Put outOfLineTypeFlags, maxOffset and transitionOffset into highest bits of m_propertyTableUnsafe, m_cachedPrototypeChain, m_classInfo, and m_transitionPropertyName. Do not use PackedPtr here since some of them are concurrently accessed by GC.
  2. Put m_inlineCapacity into lower 8 bits of m_propertyHash.
  3. Remove m_lock, and use Structure::cellLock() instead.
  4. Remove m_cachedPrototypeChain clearing from the concurrent collector since it is dead code, it was old code. We were setting m_cachedPrototypeChain only if Structure is for JSObject. Clearing happened only if it was not a Structure for JSObject.
  5. Previous Structure is held as StructureID m_previous. And m_previousOrRareData becomes m_cachedPrototypeChainOrRareData.

Many pairs are using CompactPointerTuple to make code clean.
Combining all of the above techniques saves us 16 bytes.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::create):
(JSC::AccessCase::propagateTransitions const):

  • bytecode/AccessCase.h:

(JSC::AccessCase::structure const):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckSubClass):
(JSC::DFG::SpeculativeJIT::compileObjectKeys):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileCreatePromise):
(JSC::DFG::SpeculativeJIT::compileCreateInternalFieldObject):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileObjectKeys):
(JSC::FTL::DFG::LowerDFGToB3::compileCreatePromise):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateInternalFieldObject):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitLoadClassInfoFromStructure):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_create_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_create_this):

  • jit/Repatch.cpp:

(JSC::tryCachePutByID):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createStructure):

  • runtime/ConcurrentJSLock.h:

(JSC::ConcurrentJSLockerBase::ConcurrentJSLockerBase):
(JSC::GCSafeConcurrentJSLockerImpl::GCSafeConcurrentJSLockerImpl):
(JSC::GCSafeConcurrentJSLockerImpl::~GCSafeConcurrentJSLockerImpl):
(JSC::ConcurrentJSLockerImpl::ConcurrentJSLockerImpl):
(JSC::GCSafeConcurrentJSLocker::GCSafeConcurrentJSLocker): Deleted.
(JSC::GCSafeConcurrentJSLocker::~GCSafeConcurrentJSLocker): Deleted.
(JSC::ConcurrentJSLocker::ConcurrentJSLocker): Deleted.

  • runtime/JSCell.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::deleteProperty):
(JSC::JSObject::shiftButterflyAfterFlattening):

  • runtime/JSObject.h:

(JSC::JSObject::getDirectConcurrently const):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::prepareToPutDirectWithoutTransition):

  • runtime/JSType.cpp:

(WTF::printInternal):

  • runtime/JSType.h:
  • runtime/Structure.cpp:

(JSC::StructureTransitionTable::contains const):
(JSC::StructureTransitionTable::get const):
(JSC::StructureTransitionTable::add):
(JSC::Structure::dumpStatistics):
(JSC::Structure::Structure):
(JSC::Structure::create):
(JSC::Structure::findStructuresAndMapForMaterialization):
(JSC::Structure::materializePropertyTable):
(JSC::Structure::addPropertyTransitionToExistingStructureImpl):
(JSC::Structure::addPropertyTransitionToExistingStructureConcurrently):
(JSC::Structure::addNewPropertyTransition):
(JSC::Structure::removeNewPropertyTransition):
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransitionSlow):
(JSC::Structure::flattenDictionaryStructure):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::allocateRareData):
(JSC::Structure::ensurePropertyReplacementWatchpointSet):
(JSC::Structure::copyPropertyTableForPinning):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::visitChildren):
(JSC::Structure::canCachePropertyNameEnumerator const):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::get):
(JSC::Structure::ruleOutUnseenProperty const):
(JSC::Structure::seenProperties const):
(JSC::Structure::addPropertyHashAndSeenProperty):
(JSC::Structure::forEachPropertyConcurrently):
(JSC::Structure::transitivelyTransitionedFrom):
(JSC::Structure::cachedPrototypeChain const):
(JSC::Structure::setCachedPrototypeChain):
(JSC::Structure::prototypeChain const):
(JSC::Structure::propertyReplacementWatchpointSet):
(JSC::Structure::checkOffsetConsistency const):
(JSC::Structure::add):
(JSC::Structure::remove):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::setPropertyTable):
(JSC::Structure::clearPropertyTable):
(JSC::Structure::setOutOfLineTypeFlags):
(JSC::Structure::setInlineCapacity):
(JSC::Structure::setClassInfo):
(JSC::Structure::setPreviousID):
(JSC::Structure::clearPreviousID):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::createStructure):
(JSC::StructureRareData::create):
(JSC::StructureRareData::StructureRareData):
(JSC::StructureRareData::visitChildren):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setCachedPrototypeChain):
(JSC::StructureRareData::setPreviousID): Deleted.
(JSC::StructureRareData::clearPreviousID): Deleted.

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVMHelper::functionGetStructureTransitionList):

  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::jsCallEntrypointSlow):

Source/WTF:

Make CompactPointerTuple usable for storing 16 bits data.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CompactPointerTuple.h:
  • wtf/CompactRefPtrTuple.h: Added.
  • wtf/text/StringImpl.h:
  • wtf/text/SymbolImpl.h:

(WTF::SymbolImpl::hashForSymbol const):
(WTF::SymbolImpl::SymbolImpl):

LayoutTests:

This test is half-broken since it relies on HashMap's order implicitly.
We changed SymbolImpl's hash code, so it makes the result different.

  • inspector/debugger/tail-deleted-frames/tail-deleted-frames-this-value-expected.txt:

Feb 23, 2020:

4:54 PM Changeset in webkit [257200] by Andres Gonzalez
  • 27 edits in trunk/Source/WebCore

AXIsolatedObject support for tables.
https://bugs.webkit.org/show_bug.cgi?id=208074

Reviewed by Chris Fleizach.

Covered by existing tests.

AccessibilityObjectWrapper code and some utility functions in
AccessibilityObject.cpp assume that AX objects can be downcast to a
specialized subclass like AccessibilityTable. That is not true for
AXIsolatedObjects, and the reason why tables don’t work in IsolatedTree
mode.

To solve this problem, this patch exposes the AccessibilityTable
interface as part of the AXCoreObject. Thus it eliminates the need to
downcast an AX object to an AccessibilityTable. It also implements the
AccessibilityTable interface in the AXIsolatedObject class. The same
approach will be used in subsequent patches for other specialized
interfaces used by client code.

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityARIAGrid.h:
  • accessibility/AccessibilityARIAGridCell.cpp:

(WebCore::AccessibilityARIAGridCell::parentTable const):
(WebCore::AccessibilityARIAGridCell::rowIndexRange const):
(WebCore::AccessibilityARIAGridCell::columnIndexRange const):

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow const):
(WebCore::AccessibilityARIAGridRow::parentTable const):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::shouldUseAccessibilityObjectInnerText):

  • accessibility/AccessibilityObject.cpp:

(WebCore::appendChildrenToArray): Use AXCoreObject interface instead of downcasting.
(WebCore::Accessibility::isAccessibilityObjectSearchMatchAtIndex): Use AXCoreObject interface instead of downcasting.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h: AXCoreObject now exposes the table interface.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::ariaSelectedRows):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::init):
(WebCore::AccessibilityTable::isExposable const):
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::headerContainer): Returns an AXCoreObject.

The following methods now return a vector of objects instead of taking
and out parameter. RVO guaranties that this does not cause extra copy.
(WebCore::AccessibilityTable::columns):
(WebCore::AccessibilityTable::rows):
(WebCore::AccessibilityTable::columnHeaders):
(WebCore::AccessibilityTable::rowHeaders):
(WebCore::AccessibilityTable::visibleRows):
(WebCore::AccessibilityTable::cells):

(WebCore::AccessibilityTable::tableLevel const):
(WebCore::AccessibilityTable::roleValue const):
(WebCore::AccessibilityTable::computeAccessibilityIsIgnored const):
(WebCore::AccessibilityTable::title const):
(WebCore::AccessibilityTable::isExposableThroughAccessibility const): Renamed to just isExposable.

  • accessibility/AccessibilityTable.h:

(WebCore::AccessibilityTable::supportsSelectedRows): Deleted.

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::parentTable const):
(WebCore::AccessibilityTableCell::isTableCell const):
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):

  • accessibility/AccessibilityTableCell.h:
  • accessibility/AccessibilityTableColumn.cpp:

(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::addChildren):

  • accessibility/AccessibilityTableHeaderContainer.cpp:

(WebCore::AccessibilityTableHeaderContainer::addChildren):

  • accessibility/AccessibilityTableRow.cpp:

(WebCore::AccessibilityTableRow::isTableRow const):
(WebCore::AccessibilityTableRow::parentTable const):

  • accessibility/atk/WebKitAccessible.cpp:

(webkitAccessibleGetAttributes):

  • accessibility/atk/WebKitAccessibleInterfaceTable.cpp:

(webkitAccessibleTableGetColumnHeader):
(webkitAccessibleTableGetRowHeader):

  • accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:

(webkitAccessibleTableCellGetColumnHeaderCells):
(webkitAccessibleTableCellGetRowHeaderCells):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):
(WebCore::AXIsolatedObject::setObjectVectorProperty):
(WebCore::AXIsolatedObject::cellForColumnAndRow):
(WebCore::AXIsolatedObject::fillChildrenVectorForProperty const):
(WebCore::AXIsolatedObject::isAccessibilityTableInstance const):
(WebCore::AXIsolatedObject::isDataTable const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::nodeForID const):
(WebCore::AXIsolatedTree::objectsForIDs const):

  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postPlatformNotification):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

In addition to replacing the downcast to AccessibilityTable, cleaned up
the unnecessary calls to self.axBackingObject. This used to be a macro,
but it is now a method that check for the execution thread and returns
the appropriate AX object.
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper _accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

4:31 PM Changeset in webkit [257199] by Adrian Perez de Castro
  • 17 edits in trunk/Source

Non-unified build fixes late February 2020 edition
https://bugs.webkit.org/show_bug.cgi?id=208111

Unreviewed build fix.

Source/WebCore:

No new tests needed.

  • dom/WindowEventLoop.cpp: Add missing include.
  • html/HTMLEmbedElement.cpp: Ditto.
  • html/HTMLFrameSetElement.cpp: Ditto.
  • html/HTMLOptionElement.cpp: Ditto.
  • html/HTMLTablePartElement.cpp: Ditto.
  • html/HTMLTextFormControlElement.cpp: Ditto.
  • html/RangeInputType.cpp: Ditto.
  • inspector/agents/InspectorCSSAgent.cpp: Ditto.
  • loader/ImageLoader.h: Add missing forward declration for WebCore::Document.
  • platform/graphics/ImageBuffer.cpp: Add missing include.
  • platform/graphics/filters/FilterEffect.cpp: Ditto.
  • platform/wpe/ThemeWPE.h: Add missing include and forward declaration for WebCore::Path.
  • svg/graphics/filters/SVGFilterBuilder.cpp: Add missing include.

Source/WebKit:

  • NetworkProcess/NetworkSocketChannel.cpp: Add missing include.
  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::screenRectOfContents): Add missing namespace to usage of WebCore::IntRect.
(WebKit::WebFullScreenManager::didExitFullScreen): Add missing namespace to usage of
WebCore::FloatBoxExtent.

2:12 PM Changeset in webkit [257198] by bshafiei@apple.com
  • 1 copy in tags/Safari-609.1.20.111.3

Tag Safari-609.1.20.111.3.

2:00 PM Changeset in webkit [257197] by bshafiei@apple.com
  • 8 edits in branches/safari-609.1.20.111-branch/Source

Versioning.

1:41 PM Changeset in webkit [257196] by Darin Adler
  • 17 edits in trunk/Source/WebCore

Follow up element iterator work by reducing includes and using is<> in a few more places
https://bugs.webkit.org/show_bug.cgi?id=207816

Reviewed by Antti Koivisto.

  • accessibility/AccessibilityTableColumn.cpp: Removed unneeded includes.
  • bindings/js/JSDOMWindowCustom.cpp: Ditto.
  • dom/CustomElementRegistry.cpp: Ditto.
  • dom/Node.cpp: Ditto.
  • editing/markup.cpp: Ditto.
  • html/GenericCachedHTMLCollection.cpp: Ditto.
  • html/HTMLCollection.cpp: Ditto.
  • html/HTMLFrameSetElement.cpp: Ditto.
  • html/track/TextTrackCue.cpp: Ditto.
  • page/scrolling/AxisScrollSnapOffsets.cpp: Ditto.
  • platform/DataListSuggestionsClient.h: Reduced includes, use forward declarations.
  • style/StyleResolver.cpp:

(WebCore::Style::isAtShadowBoundary): Use the is<ShadowRoot> function.

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::pathOnlyClipping): Use is<RenderSVGText> and
is<SVGGraphicsElement>, tweak coding style a tiny bit, and fix wording of comments.

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::createElementRenderer): Use is<SVGElement>.

  • svg/SVGElement.cpp: Removed unneeded includes.

(WebCore::SVGElement::isOutermostSVGSVGElement): Use is<SVGElement> and
is<SVGForeignObjectElement>.
(WebCore::SVGElement::reportAttributeParsingError): Use is<SVGElement>.
(WebCore::SVGElement::updateRelativeLengthsInformation): Use
is<SVGGraphicsElement> and is<SVGElement>, and use an if statement instead of
a while loop since this doesn't loop.

9:44 AM Changeset in webkit [257195] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[GTK] Mark several async loading tests as failure
https://bugs.webkit.org/show_bug.cgi?id=208105

Unreviewed gardening.

  • platform/gtk/TestExpectations:
7:16 AM Changeset in webkit [257194] by Darin Adler
  • 13 edits in trunk

Fix HTMLDataListElement.options to include even options that are not suggestions
https://bugs.webkit.org/show_bug.cgi?id=208102

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/forms/the-datalist-element/datalistoptions-expected.txt:

Expect this test to pass instead of failing.

Source/WebCore:

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::suggestedColors const): Use
HTMLDataListElement::suggestions instead of HTMLCollection, both for efficiency
and for correctness.

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches const):
Removed code to filter out options that are not valid suggestions. This is not
called for in the HTML specification.

  • html/HTMLDataListElement.cpp:

(WebCore::HTMLDataListElement::isSuggestion): Added.

  • html/HTMLDataListElement.h: Added isSuggestion and suggestions functions so

logic about which datalist options are suggestions can be easily shared. The
suggestions uses the new filteredDescendants function template.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setupDateTimeChooserParameters): Use
HTMLDataListElement::suggestions instead of HTMLCollection.

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::suggestions): Use
HTMLDataListElement::suggestions instead of HTMLCollection. Also added a FIXME
since this implementation uses case-insensitive ASCII but it's for user interface
and the current implementation might be insufficient for some lanagues.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks): Use
HTMLDataListElement::suggestions instead of HTMLCollection.

LayoutTests:

  • fast/forms/datalist/datalist-expected.txt: Updated expectations.
  • fast/forms/datalist/datalist.html: Updated test since the options collection

includes all options that are descendants, even ones that are not sugggestions.
The web platform tests already had this right; we had a failing test there.

4:20 AM Changeset in webkit [257193] by Diego Pino Garcia
  • 1 edit
    23 adds in trunk/LayoutTests

[GTK] Gardening, emit new baselines for WebGL tests
https://bugs.webkit.org/show_bug.cgi?id=208103

Unreviewed gardening.

  • platform/gtk/fast/canvas/webgl/copy-tex-image-and-sub-image-2d-bad-input-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/draw-elements-out-of-bounds-uint-index-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/drawElements-empty-vertex-data-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/readPixels-float-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/vertexAttribPointer-with-bad-offset-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt: Added.
  • platform/gtk/fast/canvas/webgl/webgl-drawarrays-crash-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/context/context-lost-restored-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/glsl/misc/shaders-with-name-conflicts-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/misc/webgl-specific-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/rendering/point-no-attributes-expected.txt: Added.
  • platform/gtk/webgl/1.0.3/conformance/textures/texture-copying-feedback-loops-expected.txt: Added.
Note: See TracTimeline for information about the timeline view.