Timeline



Jun 16, 2020:

11:48 PM Changeset in webkit [263137] by Simon Fraser
  • 7 edits
    2 adds in trunk

REGRESSION (r255037): Broken position while comparing watch bands on www.apple.com/shop/studio/apple-watch
https://bugs.webkit.org/show_bug.cgi?id=213282
Source/WebCore:

Reviewed by Antti Koivisto.

Test: fast/scrolling/ios/user-then-programmatic-scroll.html

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::applyLayerPositionsAfterCommit):

  • page/scrolling/ScrollingTree.h:

(WebCore::ScrollingTree::setNeedsApplyLayerPositionsAfterCommit):
(WebCore::ScrollingTree::didScrollByDelegatedScrolling): Deleted.

  • page/scrolling/ScrollingTreeScrollingNode.cpp:

(WebCore::ScrollingTreeScrollingNode::wasScrolledByDelegatedScrolling):

Source/WebKit:

<rdar://problem/63862940>

Reviewed by Antti Koivisto.

If a scrolling tree commit has a requested scroll position update for a node, we need
to call applyLayerPositons() to set the UIScrollView's contentOffset.

Often the layer tree commit will contain a boundsOrigin change for the layer in question
(which is equivalent to setting the UIScrollView's contentOffset), but some combinations of
user and programmatic scrolling result in no boundsOrigin change, revealing the bug.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(WebKit::ScrollingTreeScrollingNodeDelegateIOS::commitStateAfterChildren):

LayoutTests:

<rdar://problem/63862940>

Reviewed by Antti Koivisto.

  • fast/scrolling/ios/user-then-programmatic-scroll-expected.html: Added.
  • fast/scrolling/ios/user-then-programmatic-scroll.html: Added.
9:11 PM Changeset in webkit [263136] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Subpixel] Replaced content bleeds over content box when border radius is set
https://bugs.webkit.org/show_bug.cgi?id=213275
<rdar://problem/64320995>

Reviewed by Simon Fraser.

Source/WebCore:

Snap the border to device pixels on the replaced box when border radius is set.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

LayoutTests:

  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius-expected.html: Added.
  • fast/images/hidpi-image-position-on-device-pixels-with-border-radius.html: Added.
8:09 PM Changeset in webkit [263135] by mmaxfield@apple.com
  • 6 edits in trunk/LayoutTests

Make fast/ruby/ruby-expansion tests more robust
<rdar://problem/59688895>

Unreviewed test gardening.

Update the tests to no longer be sensitive to arbitrary fallback font metrics.

  • fast/ruby/ruby-expansion-cjk-2.html:
  • fast/ruby/ruby-expansion-cjk-3.html:
  • fast/ruby/ruby-expansion-cjk-4.html:
  • fast/ruby/ruby-expansion-cjk.html:
  • platform/mac-wk1/TestExpectations:
7:30 PM Changeset in webkit [263134] by ysuzuki@apple.com
  • 34 edits
    2 adds in trunk

[JSC] Check NullSetterFunction under strict-mode context since structure / PropertyCondition are unaware of this
https://bugs.webkit.org/show_bug.cgi?id=213266

Reviewed by Mark Lam.

JSTests:

  • stress/null-setter-frame.js: Added.

(shouldBe):
(realm.runString.test):
(object.get value):
(i.catch):

  • stress/setter-throw-in-strict.js: Added.

(foo):

Source/JavaScriptCore:

Our PropertyCondition is tracking the shape of Structure. This is enough for IC except for one case: throwing an error when invoking null setters in strict code.

"use strict";
var object = { get value() { return 42; } }
object.value = 42;

In the above case, we need to throw an error. Let's consider the following scenario.

  1. Object has valid setter.
  2. IC is buffering OPC which includes (1)'s object in Prototype? hit.
  3. IC commits buffered AccessCase with OPC. And PropertyCondition says Object + setter-offset => Presence.
  4. Object deletes its setter.
  5. Just after (4), DFG concurrently reads buffered committed OPCs.
  6. DFG see that PropertyCondition is valid even after (4) since accessor property does exist.
  7. Set up DFG sequence GetSetter, Call.
  8. DFG calls null-setter under strict code, which is not assumed to be called.

In this patch, we insert NullSetterFunction check before setter invocation under strict mode. In IC, if we see NullSetterFunction,
we replace the calling target with special function which throws an error. In DFG / FTL, we emit CheckNotJSCast DFG node which
ensures that this setter is not null setter.

In IC code, we already have null-setter checking code before. So this change does not have any impact in terms of performance.
In DFG / FTL code, we only insert this check when we do not inline this setter. This is because inlining emits CheckCell anyway so
we can know that this is not NullSetterFunction. And this means that DFG Call opcode exists after CheckNotJSCast. Since Call opcode
loads the fields of call target anyway, this also does not affect on performance.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::AccessGenerationState):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::addAccessCase):

  • bytecode/StructureStubInfo.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handlePutById):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasClassInfo const):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckJSCast):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::isNotSubClassOf const):

  • dfg/DFGStructureAbstractValue.h:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckJSCast):

  • jit/Repatch.cpp:

(JSC::tryCacheGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::tryCacheDeleteBy):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):

  • jit/ThunkGenerators.cpp:

(JSC::virtualThunkFor):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::finishCreation):

  • runtime/JSCast.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::nullSetterStrictFunction const):

  • runtime/JSType.cpp:

(WTF::printInternal):

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

(JSC::NullSetterFunctionInternal::callThrowError):
(JSC::NullSetterFunction::NullSetterFunction):

  • runtime/NullSetterFunction.h:
7:15 PM Changeset in webkit [263133] by mark.lam@apple.com
  • 2 edits in trunk/Tools

TestWebKitAPI.WebCore.WildcardStringMatching needs to initialize Options before accessing them.
https://bugs.webkit.org/show_bug.cgi?id=213270
<rdar://problem/64427499>

Reviewed by Yusuke Suzuki.

  • TestWebKitAPI/Tests/WebCore/StringUtilities.mm:

(TestWebKitAPI::TEST):

6:34 PM Changeset in webkit [263132] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should not re-extract elements whose children have been manipulated
https://bugs.webkit.org/show_bug.cgi?id=213276
<rdar://problem/64193446>

Reviewed by Tim Horton.

Source/WebCore:

After an element has undergone text manipulation, we have a mechanism for not extracting that element again,
if the element is later hidden and shown, or relocated in the DOM. This works by adding the inserted text
manipulation node to a weak element map (m_manipulatedElements) if the inserted node is an element. However,
this mechanism is bypassed in the case where text nodes are inserted, since these child nodes are not elements.
This means that if the element containing this manipulated text is hidden and later shown, we'll attempt to re-
extract its contents, which is problematic for text manipulation clients.

To mitigate this, when inserting content during text manipulation, if a new parent of the inserted content
contains _only_ manipulated child nodes, then avoid trying to manipulate it in the future by adding it to
m_manipulatedElements.

Test: TextManipulation.CompleteTextManipulationAvoidExtractingManipulatedTextAfterManipulation

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::updateInsertions):

Drive-by style fix: add a space after the assignment operator.

(WebCore::TextManipulationController::replace):

If the parent node that we're inserting a text manipulation node underneath has only 1 child (i.e. the node that
we've just inserted), then flag it as having only manipulated children. This parent may be un-flagged later when
applying NodeInsertions, if the NodeInsertion's child has not been manipulated.

Tools:

Add a new API test where we start and complete text manipulation, and then hide and show the manipulated
element. This test verifies that the new item callbacks are *not* called after element is shown again.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

6:17 PM Changeset in webkit [263131] by dino@apple.com
  • 6 edits
    2 adds
    1 delete in trunk

Add a dynamic library target for ANGLE
https://bugs.webkit.org/show_bug.cgi?id=207591

Reviewed by Tim Horton.

In preparation for moving to a dynamic library, start
by compiling and linking it. It isn't used anywhere
but getting it into the build will help Apple's
build system remain happy as we migrate, as well
as have the system know it exists for building
the shared system cache.

.:

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:
  • Configurations/ANGLE-dynamic.xcconfig: Added.
  • Configurations/ANGLE-static.xcconfig: Added.
  • Configurations/ANGLE.xcconfig: Removed.
  • Configurations/Base.xcconfig:
  • Configurations/DebugRelease.xcconfig:
5:59 PM Changeset in webkit [263130] by Russell Epstein
  • 5 edits
    2 moves in branches/safari-609-branch/Source/WebCore

Cherry-pick r263129. rdar://problem/64428805

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp. (WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter. (WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue dispatching to DirectoryFileListCreator::start. (WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here from the ctor.
  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h. (WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and changed the return value back to Ref<>.
  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that calls didCreateFileList in its completion handler. (WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and clears m_directoryFileListCreator.
  • html/FileInputType.h:

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

5:47 PM Changeset in webkit [263129] by aestes@apple.com
  • 5 edits
    2 moves in trunk/Source/WebCore

FileListCreator should only be used for resolving directories
https://bugs.webkit.org/show_bug.cgi?id=213259
<rdar://problem/64375709>

Reviewed by David Kilzer.

Depending on whether directories should be resolved, FileListCreator::create would either
synchronously execute its completion handler then return nullptr or asynchronously dispatch
its completion handler then return a non-null RefPtr. Interfaces with sometimes-synchronous
callbacks can be hard to use correctly; e.g., r262962 fixes a problem where
FileInputType::m_fileListCreator was being modified in an unexpected order.

This patch makes the interface between FileInputType and FileListCreator less error-prone
and more explicit by renaming FileListCreator to DirectoryFileListCreator, making its job
solely to create directory FileLists on a background queue, and giving it an explicit start
member function. For non-directories, FileInputType::filesChosen now bypasses
DirectoryFileListCreator and directly converts from Vector<FileChooserFileInfo> to FileList.

Covered by existing tests.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • html/DirectoryFileListCreator.cpp: Renamed from html/FileListCreator.cpp.

(WebCore::createFileList): Removed the template and ShouldResolveDirectories parameter.
(WebCore::DirectoryFileListCreator::DirectoryFileListCreator): Moved the work queue
dispatching to DirectoryFileListCreator::start.
(WebCore::DirectoryFileListCreator::start): Added; moved the work queue dispatching here
from the ctor.

  • html/DirectoryFileListCreator.h: Renamed from html/FileListCreator.h.

(WebCore::DirectoryFileListCreator::create): Stopped performing non-directory creation and
changed the return value back to Ref<>.

  • html/FileInputType.cpp:

(WebCore::FileInputType::filesChosen): Moved most of the work done in the FileListCreator
completion handler to didCreateFileList. When !FileInputType::allowsDirectories, used
Vector::map to convert paths to a Vector<Ref<File>>, used that to create a FileList, then
called didCreateFileList. Otherwise, created and started a DirectoryFileListCreator that
calls didCreateFileList in its completion handler.
(WebCore::FileInputType::didCreateFileList): Added; sets the new file list and icon and
clears m_directoryFileListCreator.

  • html/FileInputType.h:
5:44 PM Changeset in webkit [263128] by dino@apple.com
  • 5 edits
    2 adds in trunk

REGRESSION (r262643): DumpRenderTree at com.apple.WebCore: WebCore::Document::prepareCanvasesForDisplayIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=213221
rdar://64260400

Reviewed by Simon Fraser.

Source/WebCore:

A Document could still be holding a pointer to an HTMLCanvasElement after the
canvas had been deleted because the CanvasObserver protocol was disconnected
too early. The fix is to explicitly clear the canvas from the Document as it
stops observing.

Test: webgl/preparation-removed-from-document.html

  • dom/Document.cpp:

(WebCore::Document::prepareCanvasesForDisplayIfNeeded): Copy the HashSet to a Vector
just in case something weird happens to the set during iteration.
(WebCore::Document::clearCanvasPreparation): Remove the canvas from the list of
of elements that need preparation.

  • dom/Document.h: Add the new clearCanvasPreparation method.
  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::~HTMLCanvasElement): Clear the document.
(WebCore::HTMLCanvasElement::didMoveToNewDocument): Ditto.
(WebCore::HTMLCanvasElement::removedFromAncestor): Ditto.

LayoutTests:

Test that triggers a rendering on a canvas, then rips it out of
the document before drawing.

  • webgl/preparation-removed-from-document-expected.txt: Added.
  • webgl/preparation-removed-from-document.html: Added.
5:44 PM Changeset in webkit [263127] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

[WebGL] Lose the context if IOSurface allocation fails
https://bugs.webkit.org/show_bug.cgi?id=213265
<rdar://problem/64424742>

Reviewed by Simon Fraser.

If we are unable to allocate the backing store for the WebGL
content, we should immediately lose the context.

  • platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs): Lose the context if the
call to allocateIOSurfaceBackingStore didn't work.

  • platform/graphics/cocoa/GraphicsContextGLOpenGLCocoa.mm:

(WebCore::GraphicsContextGLOpenGL::allocateIOSurfaceBackingStore):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]): Return a boolean
so that we can detect if the allocation failed.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/opengl/GraphicsContextGLOpenGLBase.cpp:

(WebCore::GraphicsContextGLOpenGL::reshapeFBOs):

5:03 PM Changeset in webkit [263126] by Peng Liu
  • 3 edits in trunk/LayoutTests

REGRESSION: [iOS wk2] media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html is failing consistently
https://bugs.webkit.org/show_bug.cgi?id=213267

Reviewed by Eric Carlson.

Enable the mock video presentation mode for layout tests and use shouldBecomeEqual() to check
the value of media.webkitDisplayingFullscreen.

  • media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen-expected.txt:
  • media/modern-media-controls/media-controller/ios/media-controller-stop-updates-in-fullscreen.html:
4:31 PM Changeset in webkit [263125] by mmaxfield@apple.com
  • 11 edits in trunk/LayoutTests

Update fast/text/international/system-language/navigator-language tests
<rdar://problem/64047392>

Unreviewed.

Update to new behavior of +[NSLocale minimizedLanguagesFromLanguages:].

  • fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt:
  • fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
4:29 PM Changeset in webkit [263124] by sbarati@apple.com
  • 2 edits in trunk/Tools

Fix two typos "signifcant" and "signficance". Should be "significant" and "significance"

  • Scripts/compare-results:

(displayStr):
(computeMultipleHypothesesSignificance):
(dumpBreakdowns):
(writeCSV):
(computeMultipleHypothesesSignficance): Deleted.

4:22 PM Changeset in webkit [263123] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Fix build with !HAVE(MACHINE_CONTEXT)
https://bugs.webkit.org/show_bug.cgi?id=213223
<rdar://problem/64390209>

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-16
Reviewed by Yusuke Suzuki.

In r263074, I messed up and broke the build with !HAVE(MACHINE_CONTEXT). Even though the
sole purpose of that commit was to fix !HAVE(MACHINE_CONTEXT), I must have somehow messed up
when testing my change.

Anyway, we can just create an empty PlatformRegisters object when HAVE(MACHINE_CONTEXT) is
false. At first, I was worried that passing an empty PlatformRegisters could be open to
misuse, but it's actually hard to misuse it because the only sensible thing you can do with
it is pass it to MachineContext, and you can't use MachineContext outside
HAVE(MACHINE_CONTEXT), so we should be good.

  • wtf/threads/Signals.cpp:

(WTF::jscSignalHandler):

3:57 PM Changeset in webkit [263122] by Kate Cheney
  • 7 edits in trunk/Source/WebKit

Check for inAppBrowserPrivacyEnabled flag in WebsiteDataStore::initializeAppBoundDomains is expensive and calls a non-static function WebsiteDataStore::parameters().
https://bugs.webkit.org/show_bug.cgi?id=213261
<rdar://problem/64317084>

Reviewed by Brent Fulgham.

There are two bugs here. First, WebsiteDataStore::parameters()
does a lot of work aside from returning the parameters, making this an
expensive call just to check the value of one flag. Second,
appBoundDomains() is a static hashset, and initializing the hashset
should not rely on non-static functions.

  • NetworkProcess/NetworkSessionCreationParameters.cpp:

(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):

  • NetworkProcess/NetworkSessionCreationParameters.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):
Remove flag, it is no longer used here.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformSetNetworkParameters):
Save the flag value in a member variable so we can use that later
when checking app-bound domains. Rename to something more descriptive.

(WebKit::WebsiteDataStore::initializeAppBoundDomains):
Remove the check for the non-static runtime flag.

(WebKit::WebsiteDataStore::ensureAppBoundDomains const):
Enable test mode quirks. We must do it in two places in case the
initialization hasn't happened by the time we call
ensureAppBoundDomains.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:41 PM Changeset in webkit [263121] by eric.carlson@apple.com
  • 7 edits
    2 adds in trunk

Don't claim to support fullscreen mode unless fullScreenEnabled setting is enabled
https://bugs.webkit.org/show_bug.cgi?id=213142
<rdar://63753327>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/video-supports-fullscreen.html

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::supportsFullscreen const): Check settings.fullScreenEnabled.

LayoutTests:

  • media/video-supports-fullscreen-expected.txt: Added.
  • media/video-supports-fullscreen.html: Added.
  • media/video-fullscreen-only-playback.html: Don't set fullScreenEnabled to false.
  • TestExpectations: Skip the test, it is WK2-only.
  • platform/wk2/TestExpectations: Expect the test to pass.
3:36 PM Changeset in webkit [263120] by Andres Gonzalez
  • 8 edits in trunk

Fix for accessibility/textarea-selected-text-range.html in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=213257

Reviewed by Chris Fleizach.

Source/WebCore:

accessibility/textarea-selected-text-range.html.

Implementation of AXIsolatedObject::selectedTextRange.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::selectedTextRange const):

  • accessibility/isolatedtree/AXIsolatedObject.h:

Tools:

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::setAttributeValue):
(WTR::AccessibilityUIElement::selectedTextRange): Dispatch call into
WebAccessibilityWrapper onto AX secondary thread to simulate isolated
tree mode.

LayoutTests:

  • Re-write this test so that it can pass in both isolated tree mode on

and off.

  • Replaced shouldBecomeEqual with setTimeout follow by debug because

shouldBecomeEqual causes a thread lock on isolated tree mode.

  • accessibility/textarea-selected-text-range-expected.txt:
  • accessibility/textarea-selected-text-range.html:
3:23 PM Changeset in webkit [263119] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

Web Inspector: replace completion handler with a function in interception.
https://bugs.webkit.org/show_bug.cgi?id=213252

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-16
Reviewed by Devin Rousso.

Don't use a CompletionHandler as it asserts that it's been called when it's destroyed.
Both Network.interceptRequestWithResponse and Network.interceptRequestWithError essentially
"skip" the network pipeline, so the CompletionHandler is not invoked for those commands.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::interceptRequestImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::interceptRequest):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::interceptRequest):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::interceptRequest):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithError):

  • inspector/agents/InspectorNetworkAgent.h:

(WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueAsHandled):

2:54 PM Changeset in webkit [263118] by commit-queue@webkit.org
  • 15 edits in trunk

Added missing position attributes to PannerNode
https://bugs.webkit.org/show_bug.cgi?id=213151

Patch by Clark Wang <clark_wang@apple.com> on 2020-06-16
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Re-baselined previous tests that either now pass, or fail at a further stage than before.

  • web-platform-tests/webaudio/historical-expected.txt:
  • web-platform-tests/webaudio/idlharness.https.window-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/ctor-panner-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-automation-position-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/panner-distance-clamping-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/pannernode-basic-expected.txt:
  • web-platform-tests/webaudio/the-audio-api/the-pannernode-interface/test-pannernode-automation-expected.txt:

Source/WebCore:

Implemented position attributes in PannerNode interface, as per spec:
https://www.w3.org/TR/webaudio/#pannernode.

Re-baselined tests previous tests that either now pass, or fail at a further stage than before.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::PannerNode):
(WebCore::PannerNode::position const):
(WebCore::PannerNode::setPosition):
(WebCore::PannerNode::getAzimuthElevation):
(WebCore::PannerNode::dopplerRate):
(WebCore::PannerNode::distanceConeGain):

  • Modules/webaudio/PannerNode.h:
  • Modules/webaudio/PannerNode.idl:

LayoutTests:

Added change to unprefix PannerNode in web-platform-tests.

  • resources/testharnessreport.js:
2:30 PM Changeset in webkit [263117] by mark.lam@apple.com
  • 32 edits in trunk/Source

Make Options::useJIT() be the canonical source of truth on whether we should use the JIT.
https://bugs.webkit.org/show_bug.cgi?id=212556
<rdar://problem/63780436>

Reviewed by Saam Barati.

Source/JavaScriptCore:

After r263055, Options::useJIT() always equals VM::canUseJIT() after canUseJIT()
has been computed. This patch removes VM::canUseJIT(), and replaces all calls to
it with calls to Options::useJIT().

In the old code, VM::canUseJIT() would assert s_canUseJITIsSet to ensure that
its clients will not access s_canUseJIT before it is initialized. We not have an
equivalent mechanism with Options. This is how it works:

  1. There are 2 new Options flags in the g_jscConfig:

g_jscConfig.options.isFinalized
g_jscConfig.options.allowUnfinalizedAccess

g_jscConfig.options.isFinalized means that all Options values are finalized
i.e. initialization is complete and ready to be frozen in the Config.

g_jscConfig.options.isFinalized is set by initializeThreading() by calling
Options::finalize() once options initialization is complete.

g_jscConfig.options.allowUnfinalizedAccess is an allowance for clients to
access Options values before they are finalized. This is only needed in
options initialization code where Options values are read and written to.

g_jscConfig.options.allowUnfinalizedAccess is set and cleared using the
Options::AllowUnfinalizedAccessScope RAII object. The few pieces of code that
do options initialization will instantiate this scope object.

  1. All Options accessors (e.g. Option::useJIT()) will now assert that either g_jscConfig.options.allowUnfinalizedAccess or g_jscConfig.options.isFinalized is set.
  1. Since r263055, Options::recomputeDependentOptions() ensures that if useJIT() is false, all other JIT options (e.g. useBaselineJIT(), useDFTJIT(), useFTLJIT(), etc.) are also false. This patch also adds useBBQJIT() and useOMGJIT() to that list.

With this, checks for useJIT() are now redundant if there's also another JIT
option check, e.g. useRegExpJIT() or useDFGJIT(). When redundant, this patch
elides the useJIT() check (which used to be a VM::canUseJIT() check).

Ideally, we should also introduce a separate abstraction for requested option
values before finalization than the finalized option values that will be adopted
by the system. We'll do this as a separate exercise in a later patch.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • API/tests/FunctionOverridesTest.cpp:

(testFunctionOverrides):

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • Removed redundant calls to Options::initialize().
  • API/tests/testapi.c:

(main):

  • move the call to testExecutionTimeLimit() to after finalizeMultithreadedMultiVMExecutionTest() returns. This is because testExecutionTimeLimit() modifies JIT options at runtime as part of its testing. This can wreak havoc on the rest of the system that expects the options to be frozen. Ideally, we'll find a way for testExecutionTimeLimit() to do its work without changing JIT options, but that is not easy to do. For now, we'll just run it at the end as a workaround.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setNumParameters):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::isSupported):

  • heap/Heap.cpp:

(JSC::Heap::completeAllJITPlans):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::gatherScratchBufferRoots):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::stopThePeriphery):
(JSC::Heap::suspendCompilerThreads):
(JSC::Heap::resumeCompilerThreads):
(JSC::Heap::addCoreConstraints):

  • interpreter/AbstractPC.cpp:

(JSC::AbstractPC::AbstractPC):

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiNativeTailCall):
(JSC::JITThunks::ctiNativeTailCallWithoutSavedTags):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):
(JSC::JITThunks::hostFunctionStub):

  • jsc.cpp:

(CommandLine::parseArguments):
(jscmain):

  • llint/LLIntEntrypoint.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setModuleProgramEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::shouldJIT):
(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/JSCConfig.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::numberToStringWatchpointSet):

  • runtime/Options.cpp:

(JSC::jitEnabledByDefault):
(JSC::disableAllJITOptions):

(JSC::Options::initialize):

  • Move the calls to dumpOptionsIfNeeded() and ensureOptionsAreCoherent() to the end after all the options have been initialized because this where they belong.

(JSC::Options::finalize):
(JSC::Options::setOptions):
(JSC::Options::setOption):
(JSC::Options::dumpAllOptions):
(JSC::Options::ensureOptionsAreCoherent):

  • runtime/Options.h:

(JSC::Options::AllowUnfinalizedAccessScope::AllowUnfinalizedAccessScope):
(JSC::Options::AllowUnfinalizedAccessScope::~AllowUnfinalizedAccessScope):

  • runtime/OptionsList.h:
  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::isWatchable const):

  • runtime/VM.cpp:

(JSC::VM::computeCanUseJIT):
(JSC::VM::VM):
(JSC::VM::getHostFunction):
(JSC::VM::getCTIInternalFunctionTrampolineFor):

  • runtime/VM.h:

(JSC::VM::isInMiniMode):
(JSC::VM::canUseJIT): Deleted.

  • wasm/WasmCapabilities.h:

(JSC::Wasm::isSupported):

  • wasm/WasmOperations.cpp:

(JSC::Wasm::shouldJIT):

  • wasm/WasmSlowPaths.cpp:

(JSC::LLInt::shouldJIT):

Source/WebCore:

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::compileSelector):

Source/WebKit:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::isJITEnabled):

2:17 PM Changeset in webkit [263116] by rmorisset@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Optimize Air::TmpWidth analysis in IRC
https://bugs.webkit.org/show_bug.cgi?id=152478

Reviewed by Filip Pizlo.

AirTmpWidth currently uses a HashMap to map tmps to their width.
Since tmps have consecutive indices, we can instead use vectors (one for GP and one for FP tmps).
As a bonus, we can just compute the width of the tmps of the bank the register allocator is currently looking at.
This cuts the time spent in the register allocator in JetStream2 by about 100ms out of 3.4s
(or sometimes 80ms out of 2.4, the bimodality of the time spent is due to a huge function in tagcloud-SP which usually but not always reach the FTL, I'll check later if it can be fixed by tweaking the inliner).

  • b3/air/AirAllocateRegistersByGraphColoring.cpp:

(JSC::B3::Air::allocateRegistersByGraphColoring):

  • b3/air/AirTmpWidth.cpp:

(JSC::B3::Air::TmpWidth::TmpWidth):
(JSC::B3::Air::TmpWidth::recompute):

  • b3/air/AirTmpWidth.h:

(JSC::B3::Air::TmpWidth::width const):
(JSC::B3::Air::TmpWidth::requiredWidth):
(JSC::B3::Air::TmpWidth::defWidth const):
(JSC::B3::Air::TmpWidth::useWidth const):
(JSC::B3::Air::TmpWidth::Widths::Widths):
(JSC::B3::Air::TmpWidth::widths):
(JSC::B3::Air::TmpWidth::widths const):
(JSC::B3::Air::TmpWidth::addWidths):
(JSC::B3::Air::TmpWidth::widthsVector):

2:11 PM Changeset in webkit [263115] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Sources: objects in Scope Chain panel flicker when resizing details sidebar
https://bugs.webkit.org/show_bug.cgi?id=213234
<rdar://problem/64391213>

Reviewed by David Kilzer.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WI.ScopeChainDetailsSidebarPanel.prototype.layout):
Don't regenerate the DOM in layout unless the reason is WI.View.LayoutReason.Dirty, such
as if the current call frame changes or a watch expression is added/updated/removed.

2:09 PM Changeset in webkit [263114] by sbarati@apple.com
  • 2 edits in trunk/Tools

Multiple hypothesis testing should use False Discovery Rate instead of Bonferroni
https://bugs.webkit.org/show_bug.cgi?id=213219

Reviewed by Mark Lam.

My previous patch here used Bonferroni to do multiple hypotheses correction.
Bonferroni does a good job at reducing false positive rate (type I error,
saying something is significant when it's not, e.g, rejecting the null
hypothesis when we shouldn't), but at the expense of also having a high
false negative rate (type II error, saying something is not significant when
it is, e.g, not rejecting the null hypothesis when we should).

After doing a bit more reading, it seems like using a technique called False
Discovery Rate (FDR) is better. It still does a good job at controlling type
I error rate, but without sacrificing a high type II error rate. FDR is based
on a technique for "estimating the proportion of wrongly rejected null hypotheses" [2].

This patch uses Benjamini and Hochberg estimation of FDR, which relies
on hypotheses being independent. We know subtests in a benchmark aren't
fully independent variables, but it's a good enough approximation.

You can read more about FDR:

  1. https://www.stat.berkeley.edu/~mgoldman/Section0402.pdf
  2. https://besjournals.onlinelibrary.wiley.com/doi/10.1111/j.2041-210X.2010.00061.x
  3. https://en.wikipedia.org/wiki/False_discovery_rate
  • Scripts/compare-results:

(displayStr):
(computeMultipleHypothesesSignficance):
(dumpBreakdowns):
(writeCSV):

2:03 PM Changeset in webkit [263113] by weinig@apple.com
  • 14 edits in trunk

[WPT] form.action does not return document.url when unset (part of https://wpt.live/html/dom/reflection-forms.html)
https://bugs.webkit.org/show_bug.cgi?id=213205

Reviewed by David Kilzer.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/reflection-forms-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/form-action-reflection-with-base-url-expected.txt:

Update test results.

Source/WebCore:

Update existing test results that now pass.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formAction const):
Call document.completeURL() directly rather than getURLAttribute() as that
will cause the attribute to have to be looked up again.

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::action const):
Match HTMLFormControlElement::formAction (and the spec) and return the document's
url if the attribute value is missing.

  • html/HTMLFormElement.idl:

Remove Reflect/URL extended attributes, as we need custom handling for the empty
case.

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/mac/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:

Update test results.

1:42 PM Changeset in webkit [263112] by ddkilzer@apple.com
  • 10 edits
    1 add in trunk

REGRESSION (r262994): Web Inspector is killed when context-clicking anywhere
<https://webkit.org/b/213224>
<rdar://problem/64383320>

Reviewed by Darin Adler.

Source/WebCore:

Test: TestWebKitAPI.WebCore.ContextMenuAction_IsValidEnum

The issue is that using WTF::isValidEnum() with
WTF::EnumTraits<WebCore::ContextMenuAction> didn't explicitly
list all 1000 custom tags, or any application tags (besides the
base), so the unlisted tags were marked as invalid during enum
validation.

The fix is to define a custom validation function for
WebCore::ContextMenuAction enum values.

  • platform/ContextMenuItem.h:

(WTF::isValidEnum):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction): Add.

  • Validates CustomTag and ApplicationTag ranges.
  • platform/ContextMenuItem.h:

(WebCore::isValidContextMenuAction): Add declaration.
(WTF::EnumTraits<WebCore::ContextMenuAction>): Delete.
(WTF::HasCustomIsValidEnum<WebCore::ContextMenuAction>): Add.
(WTF::isValidEnum): Add.

  • Call WebCore::isValidContextMenuAction() to validate all enum values.

Source/WebKit:

  • Platform/IPC/Decoder.h:
  • Platform/IPC/Encoder.h:
  • Include <WebCore/ContextMenuItem.h> since the definition of the custom WTF::isValidEnum<WebCore::ContextMenuAction> function is needed.
  • Scripts/webkit/messages.py:

(generate_message_names_header):

  • Change the third typename in the template for WTF::isValidEnum<IPC::MessageName>() to avoid partial template specialization errors from other implementations like WTF::isValidEnum<WebCore::ContextMenuAction>().
  • Also replace hard-coded "IPC::MessageName" names with template values.

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • Add ContextMenuAction.cpp to build systems.
  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp: Add.

(TestWebKitAPI::TEST):

  • Add TestWebKitAPI.WebCore.ContextMenuAction_IsValidEnum.
1:37 PM Changeset in webkit [263111] by Fujii Hironori
  • 19 edits in trunk/LayoutTests

[WinCairo] Unreviewed test gardening after r263073

  • platform/wincairo/editing/inserting/before-after-input-element-expected.txt:
  • platform/wincairo/editing/selection/3690703-2-expected.txt:
  • platform/wincairo/editing/selection/3690703-expected.txt:
  • platform/wincairo/editing/selection/3690719-expected.txt:
  • platform/wincairo/editing/selection/4895428-3-expected.txt:
  • platform/wincairo/editing/selection/4975120-expected.txt:
  • platform/wincairo/editing/selection/drag-select-1-expected.txt:
  • platform/wincairo/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/wincairo/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wincairo/fast/css/input-search-padding-expected.txt:
  • platform/wincairo/fast/css/line-height-expected.txt:
  • platform/wincairo/fast/css/text-overflow-input-expected.txt:
  • platform/wincairo/fast/events/context-no-deselect-expected.txt:
  • platform/wincairo/fast/html/details-no-summary4-expected.txt:
  • platform/wincairo/fast/html/details-open-javascript-expected.txt:
  • platform/wincairo/fast/html/details-open2-expected.txt:
  • platform/wincairo/fast/html/details-open4-expected.txt:
  • platform/wincairo/fast/text/textIteratorNilRenderer-expected.txt:
12:49 PM Changeset in webkit [263110] by Fujii Hironori
  • 3 edits in trunk/Tools

[Win] Mouse dragging tests are failing because WebKitTestRunner dispatches WM_MOUSELEAVE to the hidden WebView
https://bugs.webkit.org/show_bug.cgi?id=213239

Reviewed by Don Olmstead.

There are two problems:

  1. Windows EventSenderProxy::mouseMoveTo doesn't set WPARAM of WM_MOUSEMOVE
  2. Unexpected WM_MOUSELEAVE discontinues the mouse dragging events

WPARAM of WM_MOUSEMOVE should represent pressed mouse buttons while dragging.

WM_MOUSELEAVE is unexpectedly dispatched because the mouse cursor
is always out of the hidden WebView. The unexpected WM_MOUSELEAVE
discontinues dragging events. WM_MOUSELEAVE shouldn't be
dispatched in WebKitTestRunner. Ignore it.

  • WebKitTestRunner/win/EventSenderProxyWin.cpp:

(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):
(WTR::EventSenderProxy::mouseMoveTo): Set MK_LBUTTON to WPARAM of
WM_MOUSEMOVE while dragging.

  • WebKitTestRunner/win/TestControllerWin.cpp:

(WTR::runRunLoopUntil): Ignore WM_MOUSELEAVE.

12:48 PM Changeset in webkit [263109] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[CMake][Visual Studio] CSSPropertyNames.h is generated twice in WebCore.vcxproj and WebCore_CopyPrivateHeaders.vcxproj
https://bugs.webkit.org/show_bug.cgi?id=213226

Reviewed by Don Olmstead.

WebCore_CopyPrivateHeaders needs to have a direct or indirect
dependency of WebCore target for CMake Visual Studio generator to
eliminate duplicated custom commands.

  • CMakeLists.txt: Added add_dependencies(WebCore_CopyPrivateHeaders WebCore).
12:46 PM Changeset in webkit [263108] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[CMake][Visual Studio] CombinedDomains.json is generated twice in JavaScriptCore.vcxproj and InspectorBackendCommands.vcxproj
https://bugs.webkit.org/show_bug.cgi?id=213225

Reviewed by Don Olmstead.

Since r262203 (Bug 210014) added a new target
InspectorBackendCommands, CombinedDomains.json is generated twice
in JavaScriptCore.vcxproj and InspectorBackendCommands.vcxproj.
This caused unnecessary incremental builds.

The fundamental issue of this issue was fixed in CMake side.
<https://gitlab.kitware.com/cmake/cmake/issues/16767>
However, JavaScriptCore target needs to have a direct or indirect
dependency of InspectorBackendCommands target for CMake Visual
Studio generator to eliminate duplicated custom commands.

  • CMakeLists.txt: Added add_dependencies(JavaScriptCore InspectorBackendCommands).
11:47 AM Changeset in webkit [263107] by Russell Epstein
  • 4 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262739. rdar://problem/64413138

Use usual promise in readableStreamTee
https://bugs.webkit.org/show_bug.cgi?id=212715

Reviewed by Mark Lam.

The spec[1] is organized to be OK to use usual promises here. This patch uses usual promises instead of internal ones.

[1]: https://streams.spec.whatwg.org/#readable-stream-tee

  • Modules/streams/ReadableStreamInternals.js: (readableStreamTee):

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

11:46 AM Changeset in webkit [263106] by Russell Epstein
  • 3 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r263092. rdar://problem/64412673

O(n2) behavior in media query resolution
https://bugs.webkit.org/show_bug.cgi?id=213243

Reviewed by Anders Carlsson.

We were traversing all rules in a RuleSet inside a loop over all media queries that change value.
This becomes problematic when you have thousands of media queries.

  • style/RuleSet.cpp: (WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Instead collect the rule positions that need flipping into a map and then traverse only once
to do the actual flipping.

Longer term we should maintain a data stucture that can map directly from a position to RuleDatas.
This will require some data structure rethink so this patch takes a simpler approach.

(WebCore::Style::RuleSet::MediaQueryCollector::pop):

  • style/RuleSet.h:

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

11:46 AM Changeset in webkit [263105] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262594. rdar://problem/64413274

HTMLAppletElement::updateWidget should check for renderer after the overlapping test.
https://bugs.webkit.org/show_bug.cgi?id=212789
<rdar://problem/61854614>

Reviewed by Simon Fraser.

createJavaAppletWidget needs to check if the plugin(replacement) is obscured.
Since the overlapping test requires up-to-date geometry, it initiates a top level style recalc/layout.
We need to check if the apple element still has a renderer after the style recalc.

  • html/HTMLAppletElement.cpp: (WebCore::HTMLAppletElement::updateWidget):

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

11:46 AM Changeset in webkit [263104] by Russell Epstein
  • 2 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262540. rdar://problem/64413268

Reset fragment line info when the relatively positioned inline box becomes static with block child.
https://bugs.webkit.org/show_bug.cgi?id=212724
<rdar://problem/62847534>

Reviewed by Simon Fraser.

adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded was missing the case when the
block container was inside an inline box. It happens when the inline box is relatively positioned while the
child block box is absolutely positioned.
RenderFragmentedFlow keeps track of the associated root lineboxes in m_lineToFragmentMap.
In adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded, when the block is no longer part of the fragment
we remove these cached lineboxes from the m_lineToFragmentMap.
This patch fixes the case when the cached lineboxes are generated by a child block box.

  • rendering/RenderElement.cpp: (WebCore::RenderElement::adjustFragmentedFlowStateOnContainingBlockChangeIfNeeded):

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

11:30 AM Changeset in webkit [263103] by Diego Pino Garcia
  • 108 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Update baselines after r263073.

  • platform/gtk/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/gtk/editing/inserting/before-after-input-element-expected.txt:
  • platform/gtk/editing/pasteboard/4806874-expected.txt:
  • platform/gtk/editing/pasteboard/input-field-1-expected.txt:
  • platform/gtk/editing/selection/3690703-2-expected.txt:
  • platform/gtk/editing/selection/3690703-expected.txt:
  • platform/gtk/editing/selection/3690719-expected.txt:
  • platform/gtk/editing/selection/4895428-3-expected.txt:
  • platform/gtk/editing/selection/4975120-expected.txt:
  • platform/gtk/editing/selection/drag-select-1-expected.txt:
  • platform/gtk/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/gtk/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/gtk/fast/css/input-search-padding-expected.txt:
  • platform/gtk/fast/css/text-overflow-input-expected.txt:
  • platform/gtk/fast/events/context-no-deselect-expected.txt:
  • platform/gtk/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/gtk/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/gtk/fast/forms/basic-inputs-expected.txt:
  • platform/gtk/fast/forms/box-shadow-override-expected.txt:
  • platform/gtk/fast/forms/control-restrict-line-height-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/gtk/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/gtk/fast/forms/encoding-test-expected.txt:
  • platform/gtk/fast/forms/fieldset-align-expected.txt:
  • platform/gtk/fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • platform/gtk/fast/forms/form-element-geometry-expected.txt:
  • platform/gtk/fast/forms/input-align-expected.txt:
  • platform/gtk/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/gtk/fast/forms/input-appearance-focus-expected.txt:
  • platform/gtk/fast/forms/input-appearance-height-expected.txt:
  • platform/gtk/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/gtk/fast/forms/input-appearance-selection-expected.txt:
  • platform/gtk/fast/forms/input-appearance-visibility-expected.txt:
  • platform/gtk/fast/forms/input-appearance-width-expected.txt:
  • platform/gtk/fast/forms/input-baseline-expected.txt:
  • platform/gtk/fast/forms/input-disabled-color-expected.txt:
  • platform/gtk/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/gtk/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/gtk/fast/forms/input-spaces-expected.txt:
  • platform/gtk/fast/forms/input-table-expected.txt:
  • platform/gtk/fast/forms/input-text-click-inside-expected.txt:
  • platform/gtk/fast/forms/input-text-click-outside-expected.txt:
  • platform/gtk/fast/forms/input-text-double-click-expected.txt:
  • platform/gtk/fast/forms/input-text-drag-down-expected.txt:
  • platform/gtk/fast/forms/input-text-option-delete-expected.txt:
  • platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/gtk/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/gtk/fast/forms/input-type-text-min-width-expected.txt:
  • platform/gtk/fast/forms/input-value-expected.txt:
  • platform/gtk/fast/forms/input-width-expected.txt:
  • platform/gtk/fast/forms/placeholder-position-expected.txt:
  • platform/gtk/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/gtk/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/gtk/fast/forms/search-input-rtl-expected.txt:
  • platform/gtk/fast/forms/search-styled-expected.txt:
  • platform/gtk/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/gtk/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/gtk/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/gtk/fast/forms/textfield-focus-ring-expected.txt:
  • platform/gtk/fast/forms/textfield-outline-expected.txt:
  • platform/gtk/fast/forms/textfield-overflow-expected.txt:
  • platform/gtk/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/gtk/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/gtk/fast/html/details-no-summary4-expected.txt:
  • platform/gtk/fast/html/details-open-javascript-expected.txt:
  • platform/gtk/fast/html/details-open2-expected.txt:
  • platform/gtk/fast/html/details-open4-expected.txt:
  • platform/gtk/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/gtk/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/gtk/fast/repaint/search-field-cancel-expected.txt:
  • platform/gtk/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-expected.txt:
  • platform/gtk/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/gtk/fast/table/colspanMinWidth-expected.txt:
  • platform/gtk/fast/table/spanOverlapRepaint-expected.txt:
  • platform/gtk/fast/table/text-field-baseline-expected.txt:
  • platform/gtk/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/gtk/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/gtk/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/gtk/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/gtk/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/gtk/svg/hixie/mixed/003-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/gtk/tables/mozilla/dom/tableDom-expected.txt:
  • platform/gtk/tables/mozilla/other/move_row-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/gtk/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/gtk/transforms/3d/general/perspective-non-layer-expected.txt:
11:21 AM Changeset in webkit [263102] by Russell Epstein
  • 8 edits in branches/safari-609-branch/Source

Versioning.

WebKit-609.3.5

11:11 AM Changeset in webkit [263101] by Wenson Hsieh
  • 4 edits in trunk

Text manipulation should handle nested item boundary elements
https://bugs.webkit.org/show_bug.cgi?id=213251
<rdar://problem/63371514>

Reviewed by Sihui Liu.

Source/WebCore:

In the case where there are nested item boundary elements (e.g. block-level list items or links), text
manipulation will currently only observe that we've crossed the top-level item boundary, and proceed to extract
text from the nested boundary elements as tokens in the same item.

Address this by maintaining a stack of boundary elements rather than just a single item. Additionally, create
and add an item when crossing into a new item boundary, rather than only when we exit a boundary; this handles
the case where we descend from one boundary element into another boundary element that is a child.

Test: TextManipulation.StartTextManipulationTreatsNestedInlineBlockListItemsAndLinksAsParagraphs

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

Tools:

Add a new API test to exercise this scenario.

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:
11:10 AM Changeset in webkit [263100] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Stop calling userPreferredLanguages() in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=213214
<rdar://problem/64317593>

Reviewed by Darin Adler.

Follow-up to r263094 to address post-landing feedback from Darin.
Use makeVector() functionality in WTF to convert the NSArray into a Vector instead
of doing it by hand. Also mark the NeverDestroyed variable as static const to
avoid leaking.

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformOverrideLanguages const):

10:57 AM Changeset in webkit [263099] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Provide alternatively-named WKBrowsingContextGroup SPI
https://bugs.webkit.org/show_bug.cgi?id=213229

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-16
Reviewed by Tim Horton.

This is unfortunately still used. In order to try to convince the user to make the smallest change possible, make newly named SPI that behaves identically.
Doubly-deprecate the old SPI and implement it in terms of the new during the transition period.

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

(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:includeMatchPatternStrings:excludeMatchPatternStrings:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
(-[WKBrowsingContextGroup addUserScript:baseURL:includeMatchPatternStrings:excludeMatchPatternStrings:injectionTime:mainFrameOnly:]):

10:18 AM Changeset in webkit [263098] by youenn@apple.com
  • 5 edits
    5 adds in trunk

Loads triggered by an opaque stylesheet should not be visible to service workers
https://bugs.webkit.org/show_bug.cgi?id=213246

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/wpt/service-workers/no-cors-css-with-subresources.https.html

  • loader/ResourceLoaderOptions.h:

Move it to boolean

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
In case the load is triggered from an opaque response, set service worker mode to none.

LayoutTests:

  • http/wpt/service-workers/no-cors-css-with-subresources.https-expected.txt: Added.
  • http/wpt/service-workers/no-cors-css-with-subresources.https.html: Added.
  • http/wpt/service-workers/no-cors-css-worker.js: Added.

(async doTest):
(async doFetch):

  • http/wpt/service-workers/resources/loading-subresources.css: Added.
  • http/wpt/service-workers/resources/subresource.css: Added.

(div#resource_link_css):

10:06 AM Changeset in webkit [263097] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

Increase pixel check tolerance for http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html
https://bugs.webkit.org/show_bug.cgi?id=213237

Reviewed by Eric Carlson.

  • http/wpt/mediarecorder/MediaRecorder-AV-audio-video-dataavailable.html:

Increase pixel tolerance as we encode/decode video which might create some artefacts.

9:35 AM Changeset in webkit [263096] by Chris Fleizach
  • 8 edits in trunk

AX: <address> element should no longer map to ARIA contentinfo role
https://bugs.webkit.org/show_bug.cgi?id=212617
<rdar://problem/63848604>

Reviewed by Joanmarie Diggs.

Source/WebCore:

Change the mapping of <address> to be a basic group. Update tests.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • accessibility/mac/landmark-not-ignored-expected.txt:
  • accessibility/mac/landmark-not-ignored.html:
  • platform/mac-wk2/accessibility/roles-exposed-expected.txt:
  • platform/mac/accessibility/roles-exposed-expected.txt:
  • platform/win/accessibility/roles-exposed-expected.txt:
9:24 AM Changeset in webkit [263095] by cturner@igalia.com
  • 23 edits
    4 adds in trunk

[GTK] Disable video autoplay
https://bugs.webkit.org/show_bug.cgi?id=184845

Reviewed by Carlos Garcia Campos.

Source/WebKit:

  • PlatformGTK.cmake: Add new source files to the build.
  • PlatformWPE.cmake: Ditto.
  • SourcesGTK.txt: Ditto.
  • SourcesWPE.txt: Ditto.
  • UIProcess/API/glib/WebKitPolicyDecision.cpp:

(webkit_policy_decision_use_with_policies): : Add an API to
respond to navigation decisions with policies.

  • UIProcess/API/glib/WebKitWebContext.cpp:

(webkitWebContextCreatePageForWebView): Plumb in the default
website policies that are associated with the web view.

  • UIProcess/API/glib/WebKitWebContextPrivate.h:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewConstructed):
(webkitWebViewSetProperty):
(webkitWebViewGetProperty):
(webkit_web_view_class_init):
(webkit_web_view_get_website_policies):

  • UIProcess/API/glib/WebKitWebsitePolicies.cpp: Added.

(_WebKitWebsitePoliciesPrivate::_WebKitWebsitePoliciesPrivate):
(webkitWebsitePoliciesGetWebsitePolicies):
(webkitWebsitePoliciesGetPoliciesData):
(webkitWebsitePoliciesGetProperty):
(webkitWebsitePoliciesSetAutoplayPolicy):
(webkitWebsitePoliciesSetProperty):
(webkit_website_policies_class_init):
(webkit_website_policies_new):
(webkit_website_policies_new_with_policies):
(webkit_website_policies_get_autoplay_policy):

  • UIProcess/API/glib/WebKitWebsitePoliciesPrivate.h: Added.
  • UIProcess/API/gtk/WebKitPolicyDecision.h:
  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(webkit_web_view_new_with_related_view):

  • UIProcess/API/gtk/WebKitWebsitePolicies.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitPolicyDecision.h:
  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/API/wpe/WebKitWebsitePolicies.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:

Tools:

Update the various callsites for constructing a view to take into
account the default policies. I chose the default as autoplay
allow without sound, which is in keeping with WebCore's choice.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewDecidePolicy):
(newTabCallback):
(openPrivateWindow):
(browser_window_get_or_create_web_view_for_automation):
(browser_window_create_web_view_in_new_tab_for_automation):

  • MiniBrowser/gtk/main.c:

(createBrowserTab):
(main):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitPolicyClient.cpp: Add

autoplay policy tests, and use modern class initializers.
(testAutoplayPolicy):
(beforeAll):

8:30 AM Changeset in webkit [263094] by Chris Dumez
  • 12 edits in trunk/Source

Stop calling userPreferredLanguages() in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=213214
<rdar://problem/64317593>

Reviewed by Per Arne Vollan.

Source/WebKit:

Stop calling userPreferredLanguages() in the UIProcess since this can be slow and may keep
the main thread busy. Nowadays, the WebProcess is able to call it by itself anyway. The
sandbox is allowing it.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::languageChanged):
(WebKit::WebProcessPool::initializeNewWebProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::userPreferredLanguagesChanged const):

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

Source/WTF:

Export WTF::languageDidChange() so we can call it from WebKit2.

  • wtf/Language.h:
8:19 AM Changeset in webkit [263093] by Truitt Savell
  • 41 edits
    3 deletes in trunk

Unreviewed, reverting r263079.

Broke Internal builds.

Reverted changeset:

"IndexedDB: Support IDBFactory databases method"
https://bugs.webkit.org/show_bug.cgi?id=211043
https://trac.webkit.org/changeset/263079

8:12 AM Changeset in webkit [263092] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

O(n2) behavior in media query resolution
https://bugs.webkit.org/show_bug.cgi?id=213243

Reviewed by Anders Carlsson.

We were traversing all rules in a RuleSet inside a loop over all media queries that change value.
This becomes problematic when you have thousands of media queries.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

Instead collect the rule positions that need flipping into a map and then traverse only once
to do the actual flipping.

Longer term we should maintain a data stucture that can map directly from a position to RuleDatas.
This will require some data structure rethink so this patch takes a simpler approach.

(WebCore::Style::RuleSet::MediaQueryCollector::pop):

  • style/RuleSet.h:
8:06 AM Changeset in webkit [263091] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[iOS wk2] http/tests/security/cookies/third-party-cookie-blocking-main-frame.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=206946

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
8:00 AM Changeset in webkit [263090] by pvollan@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Collecting screen properties in the UI process introduced a Safari launch time regression.
https://bugs.webkit.org/show_bug.cgi?id=213217
<rdar://problem/64374461>

Reviewed by Brent Fulgham.

Calling collectScreenProperties() in WebProcessPool::platformInitializeWebProcess() introduced a Safari launch time regression on iOS.
It turns out that calling screenIsMonochrome on iOS is expensive, but this call can still be done in the WebContent process, since there
are no sandbox restrictions making that call fail in the WebContent process. Call this function in the WebContent process instead of in
the UI process.

No new tests, since this change should not introduce a change in behavior. It goes back to calling the screenIsMonochrome function in the
WebContent process.

  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::collectScreenProperties):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::collectScreenProperties):

7:58 AM Changeset in webkit [263089] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Subversion perl bindings unusable
https://bugs.webkit.org/show_bug.cgi?id=213241

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-16
Reviewed by Sergio Villar Senin.

  • buildstream/elements/sdk/subversion.bst: The svn swig perl library wasn't correctly

installed, leading to undefined symbols when importing it from the bindings. A new
integration command now tests this.

7:58 AM Changeset in webkit [263088] by commit-queue@webkit.org
  • 8 edits
    1 add
    1 delete in trunk/Tools

[Flatpak SDK] Update to Qt 5.15
https://bugs.webkit.org/show_bug.cgi?id=213192

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-16
Reviewed by Sergio Villar Senin.

The new patch comes from the upstream KDE SDK: https://github.com/KDE/flatpak-kde-runtime/tree/qt5.15lts/patch

  • buildstream/elements/qt5/qtbase.bst:
  • buildstream/elements/qt5/qtdeclarative.bst:
  • buildstream/elements/qt5/qtquickcontrols.bst:
  • buildstream/elements/qt5/qtquickcontrols2.bst:
  • buildstream/elements/qt5/qtwayland.bst:
  • buildstream/elements/qt5/qtx11extras.bst:
  • buildstream/patches/qtbase-make-sure-to-correctly-construct-base-platform-theme.patch: Added.
  • buildstream/patches/qtwayland-use-gnome-platform-theme-on-gnome-based-desktops.patch: Removed.
  • buildstream/project.conf:
7:57 AM Changeset in webkit [263087] by calvaris@igalia.com
  • 9 edits in trunk/Source/WebCore

[EME] Create CDMProxyFactory
https://bugs.webkit.org/show_bug.cgi?id=212695

Reviewed by Youenn Fablet.

Currently in the GStreamer port we have the CDMProxy cabled in the
player private and set to the instance. Setting this too late can
create key sync issues that are worked around. This does not seem
to be needed because it can be created in the constructor from a
CDMProxyFactory if we just use the key system that we already
have.

This patch declares a CDMProxyFactory that is used in the
CDMInstanceProxy to instantiate the proper CDMProxy in its
constructor.

CDMProxyFactoryClearKey is created and added to the GStreamer
platform CDMProxyFactories.

Initializing too fast creates flakyness in several ClearKey tests
because of asking for protected memory so we need to initialize it
in a lazy way.

No new tests, just a rework.

  • platform/encryptedmedia/CDMProxy.cpp:

(WebCore::CDMProxyFactory::registerFactory):
(WebCore::CDMProxyFactory::unregisterFactory):
(WebCore::CDMProxyFactory::createCDMProxyForKeySystem):
(WebCore::CDMProxyFactory::platformRegisterFactories):

  • platform/encryptedmedia/CDMProxy.h:

(WebCore::CDMProxyFactory::~CDMProxyFactory):
(WebCore::CDMInstanceProxy::CDMInstanceProxy):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::CDMInstanceClearKey::CDMInstanceClearKey):
(WebCore::CDMInstanceClearKey::keySystem const):

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::cdmInstanceAttached):

  • platform/graphics/gstreamer/eme/CDMFactoryGStreamer.cpp:

(WebCore::CDMProxyFactory::platformRegisterFactories):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.cpp:

(WebCore::CDMProxyFactoryClearKey::singleton):
(WebCore::CDMProxyFactoryClearKey::createCDMProxy):
(WebCore::CDMProxyFactoryClearKey::supportsKeySystem):

  • platform/graphics/gstreamer/eme/CDMProxyClearKey.h:
7:57 AM Changeset in webkit [263086] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Rebase tables/mozilla_expected_failures/bugs/bug2479-5.html after the changes in https://trac.webkit.org/changeset/263073/webkit
https://bugs.webkit.org/show_bug.cgi?id=212856

Unreviewed test gardening.

  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
2:31 AM Changeset in webkit [263085] by Carlos Garcia Campos
  • 18 edits in trunk

[GTK][WPE] Add API to configure and enable resource load statistics
https://bugs.webkit.org/show_bug.cgi?id=177943

Reviewed by Michael Catanzaro.

Source/WebKit:

  • UIProcess/API/glib/WebKitWebsiteData.cpp:

(recordContainsSupportedDataTypes):
(toWebKitWebsiteDataTypes):

  • UIProcess/API/glib/WebKitWebsiteDataManager.cpp:

(webkitWebsiteDataManagerGetProperty):
(webkitWebsiteDataManagerSetProperty):
(webkitWebsiteDataManagerConstructed):
(webkit_website_data_manager_class_init):
(webkitWebsiteDataManagerGetDataStore):
(webkit_website_data_manager_get_itp_directory):
(webkit_website_data_manager_set_itp_enabled):
(webkit_website_data_manager_get_itp_enabled):
(toWebsiteDataTypes):

  • UIProcess/API/gtk/WebKitWebsiteData.h:
  • UIProcess/API/gtk/WebKitWebsiteDataManager.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/WebKitWebsiteData.h:
  • UIProcess/API/wpe/WebKitWebsiteDataManager.h:
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):

Tools:

Add --enable-itp command line version to MiniBrowser and unit tests to check the new API.

  • MiniBrowser/gtk/main.c:

(gotWebsiteDataCallback):
(activate):

  • MiniBrowser/wpe/main.cpp:

(main):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:

(serverCallback):
(testWebsiteDataConfiguration):
(testWebsiteDataEphemeral):
(testWebsiteDataITP):
(beforeAll):

  • TestWebKitAPI/glib/TestExpectations.json:
  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::Test):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(directoryChangedCallback):
(WebViewTest::waitUntilFileChanged):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:
2:18 AM Changeset in webkit [263084] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Make sure MediaRecorder.requestData returns data with the new writer backend
https://bugs.webkit.org/show_bug.cgi?id=206929

Reviewed by Darin Adler.

Source/WebCore:

Test: http/wpt/mediarecorder/MediaRecorder-requestData.html

  • platform/mediarecorder/cocoa/MediaRecorderPrivateWriterCocoa.mm:

(WebCore::MediaRecorderPrivateWriter::fetchData):
Flush data whenever calling fetchData.

LayoutTests:

  • http/wpt/mediarecorder/MediaRecorder-requestData-expected.txt: Added.
  • http/wpt/mediarecorder/MediaRecorder-requestData.html: Added.
1:56 AM Changeset in webkit [263083] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r263029): [Flatpak SDK] Broke initial SDK installation

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-16
Rubber-stamped by Žan Doberšek.

  • flatpak/flatpakutils.py:

(FlatpakObject.version): Gracefully return an empty version when the flatpak info command
fails. This usually means the app has not been installed yet.

1:32 AM Changeset in webkit [263082] by mark.lam@apple.com
  • 6 edits in trunk

Add SIGABRT handler for non OS(DARWIN) builds to the jsc shell with the -s option.
https://bugs.webkit.org/show_bug.cgi?id=213200

Reviewed by Michael Catanzaro.

JSTests:

  • stress/ensure-crash.js:
  • unskip this test since expected crashes should now be handled on non-darwin builds.

Source/JavaScriptCore:

This is needed because non OS(DARWIN) builds uses abort as their "CRASH"ing
mechanism.

  • jsc.cpp:

(CommandLine::parseArguments):

Source/WTF:

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):
(WTF::fromSystemSignal):

12:29 AM Changeset in webkit [263081] by Devin Rousso
  • 4 edits in trunk/LayoutTests

REGRESSION: [ Mac ] inspector/page/setBootstrapScript-sub-frame.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213087
<rdar://problem/64262900>

Reviewed by Maciej Stachowiak.

  • inspector/page/setBootstrapScript-sub-frame.html:
  • inspector/page/resources/bootstrap-iframe.html:
  • platform/mac/TestExpectations:
12:28 AM Changeset in webkit [263080] by youenn@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTest imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=169572

Unreviewed.

  • platform/mac/TestExpectations:

Remove no longer needed expectation.

12:27 AM Changeset in webkit [263079] by commit-queue@webkit.org
  • 41 edits
    2 copies
    1 add in trunk

IndexedDB: Support IDBFactory databases method
https://bugs.webkit.org/show_bug.cgi?id=211043

Patch by Darryl Pogue <darryl@dpogue.ca> on 2020-06-16
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Adjust test expectations for IDBFactory.prototype.databases().

  • web-platform-tests/IndexedDB/get-databases.any-expected.txt:
  • web-platform-tests/IndexedDB/get-databases.any.worker-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-databases-opaque-origin-expected.txt:
  • web-platform-tests/IndexedDB/idbfactory-origin-isolation-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any-expected.txt:
  • web-platform-tests/IndexedDB/idlharness.any.worker-expected.txt:

Source/WebCore:

Add support for fetching the list of IDB database names and versions
from the IDBServer, and expose the functionality as
IDBFactory.prototype.databases().

Spec: https://w3c.github.io/IndexedDB/#dom-idbfactory-databases

  • Headers.cmake:
  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.cpp: Added.

(WebCore::IDBDatabaseNameAndVersionRequest::create):
(WebCore::IDBDatabaseNameAndVersionRequest::IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::~IDBDatabaseNameAndVersionRequest):
(WebCore::IDBDatabaseNameAndVersionRequest::complete):
(WebCore::IDBDatabaseNameAndVersionRequest::activeDOMObjectName const):
(WebCore::IDBDatabaseNameAndVersionRequest::virtualHasPendingActivity const):
(WebCore::IDBDatabaseNameAndVersionRequest::stop):

  • Modules/indexeddb/IDBDatabaseNameAndVersionRequest.h: Added.
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::databases):
(WebCore::IDBFactory::getAllDatabaseNames):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionProxy::forgetActivityForCurrentThread):
(WebCore::IDBClient::IDBConnectionProxy::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebCore::IDBClient::IDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions):
(WebCore::IDBServer::IDBServer::getAllDatabaseNames): Deleted.

  • Modules/indexeddb/server/IDBServer.h:
  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameAndVersionFromFile):
(WebCore::IDBServer::SQLiteIDBBackingStore::databaseNameFromFile): Deleted.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.h:
  • Modules/indexeddb/shared/IDBDatabaseNameAndVersion.h: Added.

(WebCore::IDBDatabaseNameAndVersion::encode const):
(WebCore::IDBDatabaseNameAndVersion::decode):
(WebCore::IDBDatabaseNameAndVersion::isolatedCopy const):

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::InspectorIndexedDBAgent::requestDatabaseNames):

  • loader/EmptyClients.cpp:

Source/WebKit:

Plumbing for returning a list of IDB databases and versions.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:
  • NetworkProcess/IndexedDB/WebIDBServer.cpp:

(WebKit::WebIDBServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBServer::getAllDatabaseNames): Deleted.

  • NetworkProcess/IndexedDB/WebIDBServer.h:
  • NetworkProcess/IndexedDB/WebIDBServer.messages.in:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::getAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNamesAndVersions):
(WebKit::WebIDBConnectionToServer::getAllDatabaseNames): Deleted.
(WebKit::WebIDBConnectionToServer::didGetAllDatabaseNames): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

Source/WebKitLegacy:

Plumbing for returning a list of IDB databases and versions.

  • Storage/InProcessIDBServer.cpp:

(InProcessIDBServer::getAllDatabaseNamesAndVersions):
(InProcessIDBServer::didGetAllDatabaseNamesAndVersions):
(InProcessIDBServer::getAllDatabaseNames): Deleted.
(InProcessIDBServer::didGetAllDatabaseNames): Deleted.

  • Storage/InProcessIDBServer.h:
12:18 AM Changeset in webkit [263078] by Devin Rousso
  • 5 edits in trunk/LayoutTests

[ Mac wk2 ] http/tests/inspector/network/har/har-page.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207954
<rdar://problem/59599895>

Reviewed by Maciej Stachowiak.

  • http/tests/inspector/network/har/har-page.html:
  • http/tests/inspector/network/har/har-page-aggressive-gc.html:
  • http/tests/inspector/network/har/har-page-aggressive-gc-expected.txt:

Explicitly disable resource caching as the test reloads the page and expects resource load
metrics to be populated/valid.

  • platform/mac-wk2/TestExpectations:
12:15 AM Changeset in webkit [263077] by Diego Pino Garcia
  • 44 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update baselines after r263073.

  • platform/wpe/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/wpe/fast/css/line-height-expected.txt:
  • platform/wpe/fast/css/text-overflow-input-expected.txt:
  • platform/wpe/fast/events/context-no-deselect-expected.txt:
  • platform/wpe/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/wpe/fast/html/details-no-summary4-expected.txt:
  • platform/wpe/fast/html/details-open-javascript-expected.txt:
  • platform/wpe/fast/html/details-open2-expected.txt:
  • platform/wpe/fast/html/details-open4-expected.txt:
  • platform/wpe/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-expected.txt:
  • platform/wpe/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/wpe/fast/table/colspanMinWidth-expected.txt:
  • platform/wpe/fast/table/spanOverlapRepaint-expected.txt:
  • platform/wpe/fast/table/text-field-baseline-expected.txt:
  • platform/wpe/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/wpe/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/wpe/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/wpe/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/wpe/svg/hixie/mixed/003-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/wpe/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/wpe/tables/mozilla/dom/tableDom-expected.txt:
  • platform/wpe/tables/mozilla/other/move_row-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/wpe/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/wpe/transforms/3d/general/perspective-non-layer-expected.txt:

Jun 15, 2020:

10:39 PM Changeset in webkit [263076] by ChangSeok Oh
  • 4 edits
    6 moves in trunk/Source/WebCore

[GTK] Rename GC3D to GCGL.
https://bugs.webkit.org/show_bug.cgi?id=211117

Reviewed by Fujii Hironori.

GraphicsContext3D has been renamed to GraphicsContextGL after r254103 but some files
still follow the old name. This change reflects the new name to them for consistency.

No new tests because of no new functionalities.

  • platform/TextureMapper.cmake:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp.

(Nicosia::GCGLANGLELayer::ANGLEContext::errorString):
(Nicosia::GCGLANGLELayer::ANGLEContext::lastErrorString):
(Nicosia::GCGLANGLELayer::ANGLEContext::createContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::ANGLEContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::~ANGLEContext):
(Nicosia::GCGLANGLELayer::ANGLEContext::makeContextCurrent):
(Nicosia::GCGLANGLELayer::ANGLEContext::platformContext const):
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::~GCGLANGLELayer):
(Nicosia::GCGLANGLELayer::makeContextCurrent):
(Nicosia::GCGLANGLELayer::platformContext const):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h.
  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp.

(Nicosia::GCGLLayer::GCGLLayer):
(Nicosia::GCGLLayer::~GCGLLayer):
(Nicosia::GCGLLayer::makeContextCurrent):
(Nicosia::GCGLLayer::platformContext const):
(Nicosia::GCGLLayer::swapBuffersIfNeeded):

  • platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h.

(Nicosia::GCGLLayer::contentLayer const):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:

(WebCore::GraphicsContextGLOpenGL::GraphicsContextGLOpenGL):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.cpp: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.cpp.

(WebCore::TextureMapperGCGLPlatformLayer::TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::~TextureMapperGCGLPlatformLayer):
(WebCore::TextureMapperGCGLPlatformLayer::makeContextCurrent):
(WebCore::TextureMapperGCGLPlatformLayer::platformContext const):
(WebCore::TextureMapperGCGLPlatformLayer::proxy const):
(WebCore::TextureMapperGCGLPlatformLayer::swapBuffersIfNeeded):
(WebCore::TextureMapperGCGLPlatformLayer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperGCGLPlatformLayer.h: Renamed from Source/WebCore/platform/graphics/texmap/TextureMapperGC3DPlatformLayer.h.
10:04 PM Changeset in webkit [263075] by Diego Pino Garcia
  • 4 edits
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Garden flaky failures after r263069.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Removed.
8:03 PM Changeset in webkit [263074] by commit-queue@webkit.org
  • 6 edits in trunk/Source

WTF signal machinery is guarded by #if USE(PTHREADS) && HAVE(MACHINE_CONTEXT) but does not use pthreads or machine context
https://bugs.webkit.org/show_bug.cgi?id=213223

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-15
Reviewed by Mark Lam.

Source/JavaScriptCore:

Use #if OS(UNIX) here too. This should fix stress/ensure-crash.js when
HAVE(MACHINE_CONTEXT) is false.

  • jsc.cpp:

(printUsageStatement):
(CommandLine::parseArguments):

Source/WTF:

Use #if OS(UNIX) instead.

  • wtf/WTFConfig.h:
  • wtf/threads/Signals.cpp:
  • wtf/threads/Signals.h:
7:17 PM Changeset in webkit [263073] by Megan Gardner
  • 339 edits in trunk

Text form controls can scroll by 1px when value is the same length as size. No scrolling should happen.
https://bugs.webkit.org/show_bug.cgi?id=212856
<rdar://problem/63541707>

Reviewed by Zalan Bujtas.

Source/WebCore:

We were only adding caret width to an input when determining if the input should start to be scrolled,
but that additional width was not included in the initial calculation, which could result in fields being
scrollable by 1px when they had the same number of fixed-width characters as the size of the field. This was
incorrect, and caused fast/forms/password-scrolled-after-caps-lock-toggled.html to fail when the default size
of the security dots increased to be the same as the average character width. Adding the caret width when the
size of the input field is calculated brings consistency to when an input field is scrollable.

Tested by fixing:
fast/forms/password-scrolled-after-caps-lock-toggled.html

And rebasing:

  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt:
  • editing/editable-region/text-field-basic-expected.txt:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html:
  • fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html:
  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios-wk2/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios-wk2/fast/forms/textfield-outline-expected.txt:
  • platform/ios-wk2/fast/overflow/overflow-focus-ring-expected.txt:
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/clip/outline-overflowClip-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac/editing/inserting/before-after-input-element-expected.txt:
  • platform/mac/editing/pasteboard/4806874-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/input-field-1-expected.txt:
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/drag-select-1-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/mac/fast/css/line-height-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/mac/fast/forms/encoding-test-expected.txt:
  • platform/mac/fast/forms/fieldset-align-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-appearance-visibility-expected.txt:
  • platform/mac/fast/forms/input-appearance-width-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-click-outside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/input-text-word-wrap-expected.txt:
  • platform/mac/fast/forms/input-type-text-min-width-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/input-width-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/mac/fast/forms/placeholder-position-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/mac/fast/forms/search-input-rtl-expected.txt:
  • platform/mac/fast/forms/search-styled-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/repaint/search-field-cancel-expected.txt:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-expected.txt:
  • platform/mac/fast/table/spanOverlapRepaint-expected.txt:
  • platform/mac/fast/table/text-field-baseline-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/mac/svg/hixie/mixed/003-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/mac/tables/mozilla/dom/tableDom-expected.txt:
  • platform/mac/tables/mozilla/other/move_row-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/win/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/win/editing/inserting/before-after-input-element-expected.txt:
  • platform/win/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/win/fast/events/context-no-deselect-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/win/fast/forms/basic-inputs-expected.txt:
  • platform/win/fast/forms/box-shadow-override-expected.txt:
  • platform/win/fast/forms/control-restrict-line-height-expected.txt:
  • platform/win/fast/forms/encoding-test-expected.txt:
  • platform/win/fast/forms/fieldset-align-expected.txt:
  • platform/win/fast/forms/form-element-geometry-expected.txt:
  • platform/win/fast/forms/input-align-expected.txt:
  • platform/win/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-disabled-expected.txt:
  • platform/win/fast/forms/input-appearance-focus-expected.txt:
  • platform/win/fast/forms/input-appearance-height-expected.txt:
  • platform/win/fast/forms/input-appearance-readonly-expected.txt:
  • platform/win/fast/forms/input-appearance-selection-expected.txt:
  • platform/win/fast/forms/input-appearance-visibility-expected.txt:
  • platform/win/fast/forms/input-appearance-width-expected.txt:
  • platform/win/fast/forms/input-baseline-expected.txt:
  • platform/win/fast/forms/input-disabled-color-expected.txt:
  • platform/win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/win/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/win/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/win/fast/forms/input-readonly-empty-expected.txt:
  • platform/win/fast/forms/input-spaces-expected.txt:
  • platform/win/fast/forms/input-table-expected.txt:
  • platform/win/fast/forms/input-text-click-inside-expected.txt:
  • platform/win/fast/forms/input-text-click-outside-expected.txt:
  • platform/win/fast/forms/input-text-double-click-expected.txt:
  • platform/win/fast/forms/input-text-drag-down-expected.txt:
  • platform/win/fast/forms/input-text-option-delete-expected.txt:
  • platform/win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/win/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/win/fast/forms/input-text-word-wrap-expected.txt:
  • platform/win/fast/forms/input-type-text-min-width-expected.txt:
  • platform/win/fast/forms/input-value-expected.txt:
  • platform/win/fast/forms/input-width-expected.txt:
  • platform/win/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/win/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/win/fast/forms/search-styled-expected.txt:
  • platform/win/fast/forms/search-vertical-alignment-expected.txt:
  • platform/win/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/win/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/win/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/win/fast/forms/textfield-focus-ring-expected.txt:
  • platform/win/fast/forms/textfield-outline-expected.txt:
  • platform/win/fast/forms/textfield-overflow-expected.txt:
  • platform/win/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/win/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/win/fast/html/details-no-summary4-expected.txt:
  • platform/win/fast/html/details-open-javascript-expected.txt:
  • platform/win/fast/html/details-open2-expected.txt:
  • platform/win/fast/html/details-open4-expected.txt:
  • platform/win/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/win/fast/table/colspanMinWidth-expected.txt:
  • platform/win/fast/table/spanOverlapRepaint-expected.txt:
  • platform/win/fast/table/text-field-baseline-expected.txt:
  • platform/win/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/win/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/win/svg/hixie/mixed/003-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/win/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/win/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/win/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/win/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/win/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/win/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/win/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/win/tables/mozilla/dom/tableDom-expected.txt:
  • platform/win/tables/mozilla/other/move_row-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • rendering/ComplexLineLayout.cpp:

(WebCore::ComplexLineLayout::addOverflowFromInlineChildren):

  • rendering/RenderBlockFlow.h:

(WebCore::RenderBlockFlow::endPaddingWidthForCaret const):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth const):

Tools:

Rebased to reflect new sizes.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

LayoutTests:

  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt:
  • editing/editable-region/text-field-basic-expected.txt:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html:
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html:
  • fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection-expected.txt:
  • fast/forms/fieldset/fieldset-elements-htmlcollection.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-disabled.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly-expected.html:
  • fast/forms/search/search-cancel-button-visible-when-input-becomes-readonly.html:
  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-contenteditable-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios-wk2/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios-wk2/fast/forms/textfield-outline-expected.txt:
  • platform/ios-wk2/fast/overflow/overflow-focus-ring-expected.txt:
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/fast/clip/outline-overflowClip-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/mac-mojave/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac/editing/inserting/before-after-input-element-expected.txt:
  • platform/mac/editing/pasteboard/4806874-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/input-field-1-expected.txt:
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/drag-select-1-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/mac/fast/css/line-height-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/mac/fast/forms/encoding-test-expected.txt:
  • platform/mac/fast/forms/fieldset-align-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt:
  • platform/mac/fast/forms/input-appearance-visibility-expected.txt:
  • platform/mac/fast/forms/input-appearance-width-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-click-outside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/input-text-word-wrap-expected.txt:
  • platform/mac/fast/forms/input-type-text-min-width-expected.txt:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/input-width-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/mac/fast/forms/placeholder-position-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/mac/fast/forms/search-input-rtl-expected.txt:
  • platform/mac/fast/forms/search-styled-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/repaint/search-field-cancel-expected.txt:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-expected.txt:
  • platform/mac/fast/table/spanOverlapRepaint-expected.txt:
  • platform/mac/fast/table/text-field-baseline-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/mac/svg/hixie/mixed/003-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/mac/tables/mozilla/dom/tableDom-expected.txt:
  • platform/mac/tables/mozilla/other/move_row-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/win/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/win/editing/inserting/before-after-input-element-expected.txt:
  • platform/win/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/win/fast/events/context-no-deselect-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/win/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/win/fast/forms/basic-inputs-expected.txt:
  • platform/win/fast/forms/box-shadow-override-expected.txt:
  • platform/win/fast/forms/control-restrict-line-height-expected.txt:
  • platform/win/fast/forms/encoding-test-expected.txt:
  • platform/win/fast/forms/fieldset-align-expected.txt:
  • platform/win/fast/forms/form-element-geometry-expected.txt:
  • platform/win/fast/forms/input-align-expected.txt:
  • platform/win/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/win/fast/forms/input-appearance-disabled-expected.txt:
  • platform/win/fast/forms/input-appearance-focus-expected.txt:
  • platform/win/fast/forms/input-appearance-height-expected.txt:
  • platform/win/fast/forms/input-appearance-readonly-expected.txt:
  • platform/win/fast/forms/input-appearance-selection-expected.txt:
  • platform/win/fast/forms/input-appearance-visibility-expected.txt:
  • platform/win/fast/forms/input-appearance-width-expected.txt:
  • platform/win/fast/forms/input-baseline-expected.txt:
  • platform/win/fast/forms/input-disabled-color-expected.txt:
  • platform/win/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/win/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/win/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/win/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/win/fast/forms/input-readonly-empty-expected.txt:
  • platform/win/fast/forms/input-spaces-expected.txt:
  • platform/win/fast/forms/input-table-expected.txt:
  • platform/win/fast/forms/input-text-click-inside-expected.txt:
  • platform/win/fast/forms/input-text-click-outside-expected.txt:
  • platform/win/fast/forms/input-text-double-click-expected.txt:
  • platform/win/fast/forms/input-text-drag-down-expected.txt:
  • platform/win/fast/forms/input-text-option-delete-expected.txt:
  • platform/win/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/win/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/win/fast/forms/input-text-word-wrap-expected.txt:
  • platform/win/fast/forms/input-type-text-min-width-expected.txt:
  • platform/win/fast/forms/input-value-expected.txt:
  • platform/win/fast/forms/input-width-expected.txt:
  • platform/win/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/win/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/win/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/win/fast/forms/search-styled-expected.txt:
  • platform/win/fast/forms/search-vertical-alignment-expected.txt:
  • platform/win/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/win/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/win/fast/forms/text-control-intrinsic-widths-expected.txt:
  • platform/win/fast/forms/textfield-focus-ring-expected.txt:
  • platform/win/fast/forms/textfield-outline-expected.txt:
  • platform/win/fast/forms/textfield-overflow-expected.txt:
  • platform/win/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/win/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/win/fast/html/details-no-summary4-expected.txt:
  • platform/win/fast/html/details-open-javascript-expected.txt:
  • platform/win/fast/html/details-open2-expected.txt:
  • platform/win/fast/html/details-open4-expected.txt:
  • platform/win/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-expected.txt:
  • platform/win/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/win/fast/table/colspanMinWidth-expected.txt:
  • platform/win/fast/table/spanOverlapRepaint-expected.txt:
  • platform/win/fast/table/text-field-baseline-expected.txt:
  • platform/win/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/win/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/win/svg/hixie/mixed/003-expected.txt:
  • platform/win/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/win/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/win/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/win/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/win/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/win/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/win/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/win/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/win/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/win/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/win/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/win/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/win/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/win/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/win/tables/mozilla/dom/tableDom-expected.txt:
  • platform/win/tables/mozilla/other/move_row-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/win/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
6:46 PM Changeset in webkit [263072] by commit-queue@webkit.org
  • 19 edits
    24 adds in trunk

Web Inspector: introduce request interception
https://bugs.webkit.org/show_bug.cgi?id=207446

Patch by Pavel Feldman <pavel.feldman@gmail.com> on 2020-06-15
Reviewed by Devin Rousso.

Source/JavaScriptCore:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • inspector/protocol/Network.json:

Source/WebCore:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

Tests: http/tests/inspector/network/intercept-aborted-request.html

http/tests/inspector/network/intercept-request-continue.html
http/tests/inspector/network/intercept-request-fragment.html
http/tests/inspector/network/intercept-request-main-resource-with-response.html
http/tests/inspector/network/intercept-request-main-resource.html
http/tests/inspector/network/intercept-request-properties.html
http/tests/inspector/network/intercept-request-subresource-with-error.html
http/tests/inspector/network/intercept-request-subresource-with-response.html
http/tests/inspector/network/intercept-request-subresource.html
http/tests/inspector/network/intercept-request-with-response.html

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::willInterceptImpl):
(WebCore::InspectorInstrumentation::shouldInterceptRequestImpl):
(WebCore::InspectorInstrumentation::interceptRequestImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willIntercept):
(WebCore::InspectorInstrumentation::shouldInterceptRequest):
(WebCore::InspectorInstrumentation::interceptRequest):

  • inspector/InspectorInstrumentationWebKit.cpp:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequestInternal):
(WebCore::InspectorInstrumentationWebKit::interceptRequestInternal):

  • inspector/InspectorInstrumentationWebKit.h:

(WebCore::InspectorInstrumentationWebKit::shouldInterceptRequest):
(WebCore::InspectorInstrumentationWebKit::interceptRequest):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::disable):
(WebCore::InspectorNetworkAgent::shouldIntercept):
(WebCore::InspectorNetworkAgent::continuePendingRequests):
(WebCore::InspectorNetworkAgent::setInterceptionEnabled):
(WebCore::InspectorNetworkAgent::addInterception):
(WebCore::InspectorNetworkAgent::removeInterception):
(WebCore::InspectorNetworkAgent::willIntercept):
(WebCore::InspectorNetworkAgent::shouldInterceptRequest):
(WebCore::InspectorNetworkAgent::shouldInterceptResponse):
(WebCore::InspectorNetworkAgent::interceptRequest):
(WebCore::InspectorNetworkAgent::interceptContinue):
(WebCore::InspectorNetworkAgent::interceptWithRequest):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
(WebCore::InspectorNetworkAgent::interceptRequestWithError):

  • inspector/agents/InspectorNetworkAgent.h:

(WebCore::InspectorNetworkAgent::PendingInterceptRequest::PendingInterceptRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueWithOriginalRequest):
(WebCore::InspectorNetworkAgent::PendingInterceptRequest::continueWithRequest):
(WebCore::InspectorNetworkAgent::Intercept::operator== const):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::preload):

Source/WebInspectorUI:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.addLocalResourceOverride):
(WI.NetworkManager.prototype.removeLocalResourceOverride):
(WI.NetworkManager.prototype.requestIntercepted):
(WI.NetworkManager.prototype.responseIntercepted):
(WI.NetworkManager.prototype._handleResourceOverrideDisabledChanged):

  • UserInterface/Protocol/NetworkObserver.js:

(WI.NetworkObserver.prototype.requestIntercepted):

Source/WebKit:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

LayoutTests:

This change introduces network request interception to the Network
protocol domain. It adds Network.interceptWithRequest notification that
can be continued, modified or fulfilled. NetworkStage enum can now have
'request' and 'response' values.

  • http/tests/inspector/network/intercept-aborted-request-expected.txt: Added.
  • http/tests/inspector/network/intercept-aborted-request.html: Added.
  • http/tests/inspector/network/intercept-request-continue-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-continue.html: Added.
  • http/tests/inspector/network/intercept-request-fragment-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-fragment.html: Added.
  • http/tests/inspector/network/intercept-request-main-resource-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-main-resource-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-main-resource-with-response.html: Added.
  • http/tests/inspector/network/intercept-request-main-resource.html: Added.
  • http/tests/inspector/network/intercept-request-properties-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-properties.html: Added.
  • http/tests/inspector/network/intercept-request-subresource-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-error-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-error.html: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-subresource-with-response.html: Added.
  • http/tests/inspector/network/intercept-request-subresource.html: Added.
  • http/tests/inspector/network/intercept-request-with-response-expected.txt: Added.
  • http/tests/inspector/network/intercept-request-with-response.html: Added.
  • http/tests/inspector/network/resources/intercept-echo.php: Added.
  • http/tests/inspector/network/resources/intercept-request-overriden-page.html: Added.
  • http/tests/inspector/network/resources/intercept-request-overriden-script.js: Added.
  • http/tests/inspector/resources/protocol-test.js:
  • inspector/network/local-resource-override-continue-response.html:
  • inspector/network/resources/data-intercepted.json: Added.
  • platform/mac-wk1/TestExpectations:
6:26 PM Changeset in webkit [263071] by Tadeu Zagallo
  • 8 edits
    1 add in trunk

JSTests:
Bytecode liveness should be aware of checkpoints
https://bugs.webkit.org/show_bug.cgi?id=213106
<rdar://problem/63416838>

Reviewed by Keith Miller.

  • stress/iterator-open-checkpoint-liveness.js: Added.

(f):
(next):
(iterator):
(catch):

Source/JavaScriptCore:
op_iterator_open getNext checkpoint needs to declare it uses m_iterator
https://bugs.webkit.org/show_bug.cgi?id=213106
<rdar://problem/63416838>

Reviewed by Keith Miller.

Currently, we have no way of specifying that a checkpoint uses an operand defined at an earlier
point in the same bytecode, which is the case for op_iterator_open: we assume that it will have
already allocated the iterator and stored it in m_iterator by the time we get to the getNext
checkpoint. In order to support that, we change tmpLivenessForCheckpoint to livenessForCheckpoint
and allow it to also declare the use of the operands defined within the bytecode.

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::livenessForCheckpoint):
(JSC::tmpLivenessForCheckpoint): Deleted.

  • bytecode/BytecodeLivenessAnalysis.h:
  • bytecode/FullBytecodeLiveness.h:
  • dfg/DFGForAllKills.h:

(JSC::DFG::forAllKilledOperands):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:
6:23 PM Changeset in webkit [263070] by Alexey Shvayka
  • 3 edits
    3 adds in trunk

Expand JSObject::defineOwnIndexedProperty() fast path for existing properties
https://bugs.webkit.org/show_bug.cgi?id=213133

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/array-redefine-index-and-reverse.js: Added.
  • microbenchmarks/array-redefine-index.js: Added.
  • stress/define-own-indexed-property-fast-path.js: Added.

Source/JavaScriptCore:

This patch expands fast path of JSObject::defineOwnIndexedProperty() to cover existing properties
if given data descriptor has no falsy attributes, preventing the object from entering SparseMode.
The optimization is possible due to this invariant: indexed properties of non-SparseMode objects
have attributes of PropertyAttribute::None (except for typed arrays; added assert covers it).

PropertyDescriptor::attributesOverridingCurrent() with PropertyAttribute::None descriptor
is used to support partial descriptors like {value: 1, writable: true}.

This change advances Object.defineProperty microbenchmark by 35%; array read/write benchmark
following property redefinition is progressed by a factor of 16 due to avoiding SparseMode.

  • runtime/JSObject.cpp:

(JSC::JSObject::defineOwnIndexedProperty):

5:20 PM Changeset in webkit [263069] by Wenson Hsieh
  • 4 edits in trunk/LayoutTests

REGRESSION: [ iOS wk2 Debug ] fast/forms/call-text-did-change-in-text-field-when-typing.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213218

Reviewed by Tim Horton.

UIHelper.typeCharacter is guaranteed to wait until the application in the UI process has dequeued the
synthesized key events, but is not necessarily guaranteed to wait until the web process is done handling the
key events. As a result, it's possible for this test to check the value of the text field in step (1) before the
event has been received, which causes the test to fail with a diff.

To fix this, wait for the key event to be handled (like we do for the synthetic click event below).

  • fast/forms/call-text-did-change-in-text-field-when-typing-expected.txt:
  • fast/forms/call-text-did-change-in-text-field-when-typing.html:
  • platform/ios-wk2/TestExpectations:
5:10 PM Changeset in webkit [263068] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

testB3::testReportUsedRegistersLateUseFollowedByEarlyDefDoesNotMarkUseAsDead() has a validation failure in debug mode
https://bugs.webkit.org/show_bug.cgi?id=196103
<rdar://problem/57808549>

Reviewed by Keith Miller.

The problem was trivial: patchpoints were referring to constants that were defined after them.
Just exchanging the order of the definition was enough to make this test pass.

  • b3/testb3_1.cpp:

(shouldRun):

  • b3/testb3_7.cpp:

(testReportUsedRegistersLateUseFollowedByEarlyDefDoesNotMarkUseAsDead):

4:00 PM Changeset in webkit [263067] by Jonathan Bedard
  • 3 edits in trunk/WebKitLibraries

watchOS/tvOS: Remote unneeded FileProvider symbols
https://bugs.webkit.org/show_bug.cgi?id=213216
<rdar://problem/64380232>

Reviewed by Alexey Proskuryakov.

  • WebKitPrivateFrameworkStubs/appletvos/13/FileProvider.framework/FileProvider.tbd:
  • WebKitPrivateFrameworkStubs/watchos/6/FileProvider.framework/FileProvider.tbd:
3:34 PM Changeset in webkit [263066] by achristensen@apple.com
  • 2 edits in trunk/Tools

Follow-up fix: Make API tests tolerant of our relatively new use of WebPageProxy::preconnectTo
https://bugs.webkit.org/show_bug.cgi?id=213144
<rdar://problem/64316743>

Unreviewed build fix.

Patch by Jonathan Bedard <Jonathan Bedard> on 2020-06-15

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm: Guard didFinishNavigation declaration with HAVE(NETWORK_FRAMEWORK).
3:24 PM Changeset in webkit [263065] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r263045): TestWTF.Signals.SignalsWorkOnExit crashing
https://bugs.webkit.org/show_bug.cgi?id=213211

Reviewed by Mark Lam.

Don't call toMachMask on Signal::Usr as mach doesn't support user exceptions.

  • wtf/threads/Signals.cpp:

(WTF::SignalHandlers::add):

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

REGRESSION: [ iOS wk2 Debug ] fast/forms/call-text-did-change-in-text-field-when-typing.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213218

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
3:03 PM Changeset in webkit [263063] by Russell Epstein
  • 1 copy in tags/Safari-609.3.4

Tag Safari-609.3.4.

2:57 PM Changeset in webkit [263062] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

Consistently use WTF_ATTRIBUTE_PRINTF in Assertions.[cpp,h]
https://bugs.webkit.org/show_bug.cgi?id=213204

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-15
Reviewed by Darin Adler.

Use WTF_ATTRIBUTE_PRINTF for all functions taking a printf format specifier. The first
argument should be the position of the format string itself (starting from 1), and the
second argument should be the position of the ... parameter pack, or 0 for functions that
take a va_list.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
2:36 PM Changeset in webkit [263061] by Brent Fulgham
  • 4 edits in trunk/Source/WebKit

[macOS] Update sandboxes to reduce logging for media-related operations
https://bugs.webkit.org/show_bug.cgi?id=213210
<rdar://problem/64376237>

Reviewed by Per Arne Vollan.

Ongoing testing has uncovered a set of additional services and IOKit
properties that we should allow without logging.

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::mediaRelatedMachServices):

  • WebProcess/com.apple.WebProcess.sb.in:
2:17 PM Changeset in webkit [263060] by commit-queue@webkit.org
  • 20 edits in trunk

Provide alternatively-named SPI for user style sheets and scripts
https://bugs.webkit.org/show_bug.cgi?id=213206

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-15
Reviewed by Brady Eidson.

Source/WebKit:

Test-only SPI was just renamed.
SPI used by other projects was deprecated with a replacement so we can remove the old names soon.

_WKUserContentWorld/WKContentWorld was tied up in this, and rather than provide replacement SPI with deprecated _WKUserContentWorld,
this will move some SPI from _WKUserContentWorld to WKContentWorld too. The most heavy user of _WKUserContentWorld is TestWebKitAPI and we'll remove it soon.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetFontAllowList):
(WKContextSetFontWhitelist): Deleted.

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.mm:

(-[WKUserContentController _removeAllUserScriptsAssociatedWithContentWorld:]):
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithContentWorld:]):
(-[WKUserContentController _addScriptMessageHandler:name:contentWorld:]):
(-[WKUserContentController _removeAllUserScriptsAssociatedWithUserContentWorld:]): Deleted.
(-[WKUserContentController _removeAllUserStyleSheetsAssociatedWithUserContentWorld:]): Deleted.

  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:associatedURL:contentWorld:deferRunningUntilNotification:]):

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm:

(-[_WKUserStyleSheet initWithSource:forWKWebView:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:baseURL:level:contentWorld:]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setFontAllowList):
(WebKit::WebProcessPool::setFontWhitelist): Deleted.

  • UIProcess/WebProcessPool.h:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(+[WebView _addOriginAccessAllowListEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _removeOriginAccessAllowListEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]):
(+[WebView _resetOriginAccessAllowLists]):
(+[WebView _addUserScriptToGroup:world:source:url:whitelist:blacklist:injectionTime:injectedFrames:]):
(+[WebView _addUserScriptToGroup:world:source:url:includeMatchPatternStrings:excludeMatchPatternStrings:injectionTime:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:whitelist:blacklist:injectedFrames:]):
(+[WebView _addUserStyleSheetToGroup:world:source:url:includeMatchPatternStrings:excludeMatchPatternStrings:injectedFrames:]):
(+[WebView _setFontAllowList:]):
(+[WebView _addOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): Deleted.
(+[WebView _removeOriginAccessWhitelistEntryWithSourceOrigin:destinationProtocol:destinationHost:allowDestinationSubdomains:]): Deleted.
(+[WebView _resetOriginAccessWhitelists]): Deleted.
(+[WebView _setFontWhitelist:]): Deleted.

  • WebView/WebViewPrivate.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(fontAllowList):
(createWebViewAndOffscreenWindow):
(resetWebViewToConsistentStateBeforeTesting):
(fontWhitelist): Deleted.

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::addOriginAccessWhitelistEntry):
(TestRunner::removeOriginAccessWhitelistEntry):
(TestRunner::addUserScript):
(TestRunner::addUserStyleSheet):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(TEST):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::generateFontAllowList):
(WTR::TestController::platformInitializeContext):
(WTR::generateWhitelist): Deleted.

2:15 PM Changeset in webkit [263059] by commit-queue@webkit.org
  • 40 edits
    28 adds
    2 deletes in trunk/LayoutTests

Update WPT tests for FileAPI
https://bugs.webkit.org/show_bug.cgi?id=213198

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-15
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Import from 90446389b82ae924cdef637bca2dd99ece41160c

  • web-platform-tests/FileAPI/BlobURL/support/w3c-import.log:
  • web-platform-tests/FileAPI/FileReader/support/w3c-import.log:
  • web-platform-tests/FileAPI/FileReader/w3c-import.log:
  • web-platform-tests/FileAPI/FileReaderSync.worker-expected.txt:
  • web-platform-tests/FileAPI/FileReaderSync.worker.js:

(setup):
(test):

  • web-platform-tests/FileAPI/META.yml: Added.
  • web-platform-tests/FileAPI/OWNERS: Removed.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.js: Added.

(string_appeared_here.promise_test.async const):

  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-array-buffer.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-constructor-endings.html:
  • web-platform-tests/FileAPI/blob/Blob-constructor.html:
  • web-platform-tests/FileAPI/blob/Blob-stream.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.js: Added.

(async read_all_chunks):
(promise_test.async const):
(promise_test):

  • web-platform-tests/FileAPI/blob/Blob-stream.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-stream.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.html: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.js: Added.

(string_appeared_here.promise_test.async const):

  • web-platform-tests/FileAPI/blob/Blob-text.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/blob/Blob-text.any.worker.html: Added.
  • web-platform-tests/FileAPI/blob/w3c-import.log:
  • web-platform-tests/FileAPI/file/File-constructor-endings.html:
  • web-platform-tests/FileAPI/file/File-constructor.html:
  • web-platform-tests/FileAPI/file/w3c-import.log:
  • web-platform-tests/FileAPI/filelist-section/support/w3c-import.log:
  • web-platform-tests/FileAPI/filelist-section/w3c-import.log:
  • web-platform-tests/FileAPI/idlharness.html:
  • web-platform-tests/FileAPI/idlharness.worker.js:
  • web-platform-tests/FileAPI/reading-data-section/FileReader-multiple-reads.html:
  • web-platform-tests/FileAPI/reading-data-section/filereader_abort-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any-expected.txt: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.html: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.js: Added.

(promise_test.async t):

  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_events.any.worker.html: Added.
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_readAsDataURL.html:
  • web-platform-tests/FileAPI/reading-data-section/filereader_result-expected.txt:
  • web-platform-tests/FileAPI/reading-data-section/filereader_result.html:
  • web-platform-tests/FileAPI/reading-data-section/support/w3c-import.log:
  • web-platform-tests/FileAPI/reading-data-section/w3c-import.log:
  • web-platform-tests/FileAPI/support/Blob.js:

(self.assert_equals_typed_array):
(test_blob): Deleted.

  • web-platform-tests/FileAPI/support/w3c-import.log:
  • web-platform-tests/FileAPI/url/cross-global-revoke.sub.html:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt:
  • web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub.html:
  • web-platform-tests/FileAPI/url/resources/revoke-helper.js:
  • web-platform-tests/FileAPI/url/resources/w3c-import.log:
  • web-platform-tests/FileAPI/url/sandboxed-iframe-expected.txt:
  • web-platform-tests/FileAPI/url/sandboxed-iframe.html:
  • web-platform-tests/FileAPI/url/url-format.any.js:
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window.html: Added.
  • web-platform-tests/FileAPI/url/url-in-tags-revoke.window.js:

(async_test.t.const.blob.new.Blob.window_contents_for_channel):

  • web-platform-tests/FileAPI/url/url-in-tags.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-in-tags.window.html: Added.
  • web-platform-tests/FileAPI/url/url-lifetime.html:
  • web-platform-tests/FileAPI/url/url-reload.window-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-reload.window.html: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any.js:
  • web-platform-tests/FileAPI/url/url_xmlhttprequest-expected.txt: Removed.
  • web-platform-tests/FileAPI/url/w3c-import.log:
  • web-platform-tests/FileAPI/w3c-import.log:

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/multi-global-origin-serialization.sub-expected.txt: Added.
  • tests-options.json:
2:14 PM Changeset in webkit [263058] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

[ Mojave wk2 Release ] webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-2d-rgb16f-rgb-half_float.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213212

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:59 PM Changeset in webkit [263057] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk

Add SPI to preconnect to a server
https://bugs.webkit.org/show_bug.cgi?id=213109
<rdar://problem/64184412>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-15
Reviewed by Geoff Garen.

Source/WebKit:

Covered by API tests.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _preconnectToServer:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::preconnectTo):

  • UIProcess/WebPageProxy.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
1:59 PM Changeset in webkit [263056] by Caio Lima
  • 2 edits in trunk/JSTests

[ARMv7][MIPS][JSC] Skip check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js
https://bugs.webkit.org/show_bug.cgi?id=213208

Unreviewed Gardening.

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js:
12:59 PM Changeset in webkit [263055] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Do not install the VMTraps signal handler if Options::useJIT=false.
https://bugs.webkit.org/show_bug.cgi?id=212543
<rdar://problem/63772519>

Reviewed by Keith Miller.

VMTraps is only needed for JITted code. Hence, if the JIT is disabled, we should
set Options::usePollingTraps() to true to indicate that we won't be using VMTraps.

With this change, we no longer install any signal handling machinery if
Options::useJIT() is false.

Because we may still disable the JIT even if useJIT() is true (due to failure to
allocate JIT memory or a number of other factors), we will also add a check of
VM::canUseJIT() in initializeThreading(), and disable useJIT() if needed. Of
course, this also means we need to call Options::recomputeDependentOptions() to
make other options consistent with useJIT() being false.

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/Options.cpp:

(JSC::disableAllJITOptions):
(JSC::Options::recomputeDependentOptions):
(JSC::recomputeDependentOptions): Deleted.

  • runtime/Options.h:
  • runtime/VMTraps.cpp:

(JSC::VMTraps::initializeSignals):

  • tools/SigillCrashAnalyzer.cpp:

(JSC::SigillCrashAnalyzer::instance):

12:50 PM Changeset in webkit [263054] by keith_miller@apple.com
  • 19 edits
    1 add in trunk

CheckIsConstant should not use BadCache exit kind
https://bugs.webkit.org/show_bug.cgi?id=213141

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/check-is-constant-non-cell-should-not-array-profile-during-osr-exit.js: Added.

(foo.bar):

Source/JavaScriptCore:

The BadCache exit kind causes the OSR exit compilers to try to
update ArrayProfiles. This is just incorrect for CheckIsConstant
since the node's origin may not even have an
ArrayProfile... BadCache also strongly assumes the value it's
profiling is a cell, which is clearly not always the case for
CheckIsConstant.

CheckIsConstant now uses the BadConstantValue (BadValue conflicts
with macros exported by X11 on GTK) exit kind for all use kinds,
which is just a rename of BadCell. All existing places where we
can emit a CheckIsConstant already have a story for BadConstantValue.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):
(JSC::CallLinkStatus::computeExitSiteData):

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
(JSC::DFG::ByteCodeParser::handleCreateInternalFieldObject):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::isPseudoTerminal):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckIsConstant):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIsConstant):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckBadValue):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckBadCell): Deleted.

12:21 PM Changeset in webkit [263053] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Webkit Feature BigInt on webkit.org
https://bugs.webkit.org/show_bug.cgi?id=197546

Reviewed by Sam Weinig.

Add BigInt entry to JSC features.json.

  • features.json:
12:20 PM Changeset in webkit [263052] by Wenson Hsieh
  • 3 edits in trunk/LayoutTests

Add console logging to try and diagnose editing/deleting/ios/backspace-last-character.html
https://bugs.webkit.org/show_bug.cgi?id=213201
<rdar://problem/64165890>

Reviewed by Tim Horton.

Break the test down into more steps (namely, separate waiting for events from synthesizing key events), and add
a console log statement at each step.

  • editing/deleting/ios/backspace-last-character-expected.txt:
  • editing/deleting/ios/backspace-last-character.html:
12:07 PM Changeset in webkit [263051] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update expected results of flaky image failures.

The results of these flaky image failures have been actually ImageOnlyFailure for the last 4000 revisions.

  • platform/wpe/TestExpectations:
11:58 AM Changeset in webkit [263050] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove more stale flaky failures from test expectations.

  • platform/wpe/TestExpectations:
11:56 AM Changeset in webkit [263049] by keith_miller@apple.com
  • 20 edits in trunk

JIT thunks should work on arm64_32
https://bugs.webkit.org/show_bug.cgi?id=213103

Reviewed by Saam Barati.

JSTests:

skip test on memory limited since it breaks on watch with JIT.

  • stress/array-buffer-view-watchpoint-can-be-fired-in-really-add-in-dfg.js:

Source/JavaScriptCore:

This patch fixes various issues when running JSC on arm64_32 with
useJIT=1 and useBaselineJIT=0. In particular this patch makes the
following changes:

1) ScalePtr is now just part of the Scale enum and is set based on
the size of the address space.

2) MacroAssembler::*Ptr functions call 32/64 bit variants based on
Address space size rather than cpu architecture. Vetting of callsites
using Ptr as 64 will happen in future patches since it's hard to
comprehensively vet.

3) Add some missing variants of functions for when pointers are 32-bit.

4) Add a load/storeReg function that stores a full register regardless
of pointer size for storing/loading callee saves.

5) numberOfDFGCompiles should report a big number for
useBaselineJIT=0 as some tests fail by default if useBaselineJIT=0
but useJIT=1.

6) Assert BaseIndex has a scale of PtrSize or TimesOne (for pre-scaled
values) when passed to a load/storePtr function.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::timesPtr): Deleted.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::rotateRightPtr):
(JSC::MacroAssembler::loadPtr):
(JSC::MacroAssembler::loadPtrWithCompactAddressOffsetPatch):
(JSC::MacroAssembler::branchPtr):
(JSC::MacroAssembler::storePtr):
(JSC::MacroAssembler::shouldBlindDouble):
(JSC::MacroAssembler::moveDouble):
(JSC::MacroAssembler::store64):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::add32):
(JSC::MacroAssemblerARM64::signExtend32ToPtr):
(JSC::MacroAssemblerARM64::loadPtr):
(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::farJump):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::rotateRight32):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::rotateRight32):

  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86_64.h:
  • b3/B3LowerMacros.cpp:
  • b3/testb3_6.cpp:

(testInterpreter):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitSwitchIntJump):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitLoadStructure):
(JSC::AssemblyHelpers::emitAllocateVariableSized):
(JSC::AssemblyHelpers::restoreCalleeSavesFromEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::copyCalleeSavesToEntryFrameCalleeSavesBufferImpl):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::storeReg):
(JSC::AssemblyHelpers::loadReg):
(JSC::AssemblyHelpers::emitMaterializeTagCheckRegisters):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
(JSC::AssemblyHelpers::emitPutToCallFrameHeader):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_enumerator_structure_pname):
(JSC::JIT::emit_op_enumerator_generic_pname):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • runtime/TestRunnerUtils.cpp:

(JSC::numberOfDFGCompiles):

Source/WebCore:

Refactor timesPtr() to ScalePtr.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasClasses):

11:52 AM Changeset in webkit [263048] by Diego Pino Garcia
  • 8 edits
    7 adds
    1 delete in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update baselines of flaky tests which were consistently failing for the last 4000 revisions.

  • platform/wpe/TestExpectations:
  • platform/wpe/fast/css/resize-corner-tracking-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/content-security-policy/reporting/report-only-in-meta.sub-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/content-security-policy/reporting/report-same-origin-with-cookies-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location_hash-expected.txt: Added.
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-10-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-33-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/svg/import/animate-elem-34-t-manual-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
  • platform/wpe/security/block-test-expected.txt:
  • platform/wpe/svg/custom/non-scaling-stroke-expected.txt: Removed.
11:50 AM Changeset in webkit [263047] by keith_miller@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, build fix for build without mach exceptions.

  • wtf/threads/Signals.cpp:

(WTF::SignalHandlers::add):
(WTF::addSignalHandler):

11:35 AM Changeset in webkit [263046] by caitp@igalia.com
  • 8 edits in trunk

[JSC] add machinery to disable JIT tiers when experimental features are enabled
https://bugs.webkit.org/show_bug.cgi?id=213193

Reviewed by Mark Lam.

JSTests:

  • stress/get-private-name.js:
  • stress/put-by-val-direct-addprivate.js:
  • stress/put-by-val-direct-putprivate.js:

Source/JavaScriptCore:

A new macro FOR_EACH_JSC_EXPERIMENTAL_OPTION() supplies flags indicating the supported
JIT tiers (or, in the future, other options) of a particular feature,
in an easy to understand format. These flags are then used to
recompute dependent feature flags.

This should simplify the incremental development of language features.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/OptionsList.h:
11:29 AM Changeset in webkit [263045] by keith_miller@apple.com
  • 14 edits in trunk

Signal handlers should have a two phase installation.
https://bugs.webkit.org/show_bug.cgi?id=213160

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • jsc.cpp:

(CommandLine::parseArguments):
(jscmain):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/VMTraps.cpp:
  • tools/SigillCrashAnalyzer.cpp:

(JSC::installCrashHandler):

  • wasm/WasmFaultSignalHandler.cpp:

(JSC::Wasm::enableFastMemory):
(JSC::Wasm::prepareFastMemory):

  • wasm/WasmFaultSignalHandler.h:

Source/WebKit:

Put back old WASM fast memory installation.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Source/WTF:

LLDB does not like it when we single step while there are mach exception
handlers installed because LLDB suspends all the non-active threads.
With Mach exception handlers installed, the OS will send a mach message
to our exception handler port, which is different than the active thread.
When this happens, the combination of LLDB and the process JSC is in effectively
deadlock.

Under our new approach, we go back to only telling the OS we care about
these exceptions late but lock down the function pointers early. This way
processes that benefit from our exception handler code are easier to debug.

  • wtf/threads/Signals.cpp:

(WTF::addSignalHandler):
(WTF::activateSignalHandlersFor):
(WTF::installSignalHandler): Deleted.

  • wtf/threads/Signals.h:

Tools:

  • TestWebKitAPI/Tests/WTF/Signals.cpp:

(TEST):

10:51 AM Changeset in webkit [263044] by sihui_liu@apple.com
  • 5 edits in trunk

Text manipulation does not observe newly displayed element inside previously observed content
https://bugs.webkit.org/show_bug.cgi?id=213156

Reviewed by Darin Adler.

Source/WebCore:

Fix two issues:

  1. Some inserted nodes are marked as manipulated, but they are inserted because they get removed in the

replacement process, not because they are manipulated or in the range of item.

  1. TextManipulationController does not perform manipulation on an element if its ancestor is manipulated. This

means the newly inserted/displayed children of a manipulated element are ruled out for manipulation.

Test: TextManipulation.CompleteTextManipulationForNewlyDisplayedParagraph

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):
(WebCore::TextManipulationController::didCreateRendererForElement):
(WebCore::TextManipulationController::updateInsertions):
(WebCore::TextManipulationController::replace):
(WebCore::TextManipulationController::isInManipulatedElement): Deleted.

  • editing/TextManipulationController.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

10:23 AM Changeset in webkit [263043] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix LLInt
https://bugs.webkit.org/show_bug.cgi?id=157972

loadi only takes address.

  • llint/LowLevelInterpreter64.asm:
10:05 AM Changeset in webkit [263042] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262904): [ Mac wk1 Debug ] media/remoteplayback-target-availability.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213146

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
9:44 AM Changeset in webkit [263041] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Suppress compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=213034

Patch by Víctor Manuel Jáquez Leal <vjaquez@igalia.com> on 2020-06-15
Reviewed by Darin Adler.

Source/WebCore:

Use PRIu64 formatter for uint64_t instead of %llu.

No functional changes.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::putOrAdd):

Source/WebKit:

Convert to std:size_t to compare equal data types.

  • NetworkProcess/cache/NetworkCacheData.cpp:

(WebKit::NetworkCache::readOrMakeSalt):

9:42 AM Changeset in webkit [263040] by ChangSeok Oh
  • 3 edits in trunk/Source/WebCore

[GTK] Use GRefPtr for ManetteMonitor
https://bugs.webkit.org/show_bug.cgi?id=213094

Reviewed by Carlos Garcia Campos.

We should use GRefPtr for ManetteMonitor, but not GUniquePtr. Because it is a gobject instance.

No new tests because of no functionality changed.

  • platform/gamepad/manette/ManetteGamepadProvider.h:
8:57 AM Changeset in webkit [263039] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Pack bytes a little tighter in MemoryPressureHandler
https://bugs.webkit.org/show_bug.cgi?id=200392

Reviewed by Yusuke Suzuki.

Save a tiny bit of memory by packing member variables tighter in MemoryPressureHandler.

  • wtf/MemoryPressureHandler.h:
8:44 AM Changeset in webkit [263038] by Chris Dumez
  • 13 edits
    2 adds in trunk/Source/WebKit

Revert r260856 as it seems to have regressed PLT on iOS
https://bugs.webkit.org/show_bug.cgi?id=213194
<rdar://problem/64331458>

Unreviewed, revert r260856 due to regression.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::resume):

  • NetworkProcess/NetworkProcess.h:
  • Shared/WebSQLiteDatabaseTracker.cpp: Added.

(WebKit::WebSQLiteDatabaseTracker::WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::~WebSQLiteDatabaseTracker):
(WebKit::WebSQLiteDatabaseTracker::setIsSuspended):
(WebKit::WebSQLiteDatabaseTracker::willBeginFirstTransaction):
(WebKit::WebSQLiteDatabaseTracker::didFinishLastTransaction):
(WebKit::WebSQLiteDatabaseTracker::setIsHoldingLockedFiles):

  • Shared/WebSQLiteDatabaseTracker.h: Added.
  • SourcesCocoa.txt:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

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

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::prepareToSuspend):
(WebKit::WebProcess::processDidResume):

  • WebProcess/WebProcess.h:
8:39 AM Changeset in webkit [263037] by Jason_Lawrence
  • 3 edits in trunk/LayoutTests

[ iOS wk2 and Mac wk2 ] imported/w3c/web-platform-tests/fetch/stale-while-revalidate/frame-removal.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209281

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:59 AM Changeset in webkit [263036] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk2 ] inspector/canvas/create-context-webgpu.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213123

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
7:42 AM Changeset in webkit [263035] by Alexey Shvayka
  • 42 edits
    2 adds in trunk

super should not depend on proto
https://bugs.webkit.org/show_bug.cgi?id=157972

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/object-get-prototype-of-primitive.js: Added.
  • stress/class-syntax-derived-default-constructor.js:
  • stress/get-prototype-of.js: Added.
  • stress/super-property-access.js:
  • test262/expectations.yaml: Mark 4 test cases as passing.

Source/JavaScriptCore:

Before this change, both super() call [1] and super.property [2] relied on
Object.prototype.proto to acquire super base, which was observable and
incorrect if proto gets removed.

This patch introduces get_prototype_of bytecode, ensuring returned values
are profiled so the op can be wired to existing DFG and FTL implementations.
In order to avoid performance regression w/o DFG (proto is optimized via
IntrinsicGetterAccessCase), fast paths for LLInt and baseline JIT are added
(64-bit only), utilizing OverridesGetPrototypeOutOfLine type info flag.

This change aligns JSC with V8 and SpiderMonkey, progressing microbenchmarks/
super-get-by-{id,val}-with-this-monomorphic.js by 7-10%. SixSpeed is neutral.

Also, extracts JSValue::getPrototype() method to avoid code duplication and
utilizes it in objectConstructorGetPrototypeOf(), advancing provided
microbenchmark by 40%.

[1]: https://tc39.es/ecma262/#sec-getsuperconstructor (step 5)
[2]: https://tc39.es/ecma262/#sec-getsuperbase (step 5)

  • builtins/BuiltinNames.h:
  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):
(JSC::computeDefsForBytecodeIndexImpl):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Opcode.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitGetPrototypeOf):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::emitSuperBaseForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getPrototypeOf):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicGetter):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGOperations.cpp:
  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::canEmitIntrinsicGetter):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_prototype_of):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::getPrototype const):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

  • runtime/JSObject.h:

(JSC::JSObject::getPrototype):

  • runtime/JSObjectInlines.h:

(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):

  • runtime/JSProxy.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::overridesGetPrototype const):

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetPrototypeOf):

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

(JSC::Structure::validateFlags):

Source/WebCore:

No new tests, no behavior change.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Set OverridesGetPrototype structure flag for CustomGetPrototype IDL attribute.

6:39 AM Changeset in webkit [263034] by Diego Pino Garcia
  • 2 edits
    1 add in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove stale flaky text and image failures from test expectations.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https-expected.txt: Added.
5:25 AM Changeset in webkit [263033] by Diego Pino Garcia
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Remove stale flaky timeout failures from test expectations.

  • platform/wpe/TestExpectations:
4:14 AM Changeset in webkit [263032] by commit-queue@webkit.org
  • 2 edits
    1 add in trunk/Tools

[Flatpak SDK] Bump Subversion and enable Perl bindings
https://bugs.webkit.org/show_bug.cgi?id=213189

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

  • buildstream/elements/sdk-build-depends/swig.bst: Added.
  • buildstream/elements/sdk/subversion.bst: Enable Perl bindings so that git svn can be used within the sandbox.
3:33 AM Changeset in webkit [263031] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] ImageDecoder hits Debug ASSERTs
https://bugs.webkit.org/show_bug.cgi?id=213178

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Xabier Rodriguez-Calvar.

Pass a reference of the decoder to its inner implementation instead of a WeakPtr, which
can't be used across multiple threads.

Covered by fast/images/animated-image-mp4{,-crash}.html tests.

  • platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:

(WebCore::ImageDecoderGStreamer::InnerDecoder::connectDecoderPad):

  • platform/graphics/gstreamer/ImageDecoderGStreamer.h:
3:04 AM Changeset in webkit [263030] by Diego Pino Garcia
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed test gardening. Update test expectations after 263019.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest-expected.txt:
2:31 AM Changeset in webkit [263029] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] flatpak update still not displayed
https://bugs.webkit.org/show_bug.cgi?id=213180

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

Added a new --version option to the script. We no longer gather the flatpak update command
output to know if something was updated or not. Instead we get the version of the SDK prior
to the update operation and compare that with the version after the update.

  • flatpak/flatpakutils.py:

(FlatpakObject.version):
(WebkitFlatpak.load_from_args):
(WebkitFlatpak.main):

2:27 AM Changeset in webkit [263028] by Carlos Garcia Campos
  • 14 edits
    4 adds in trunk

[GTK][WPE] Add API to expose UIClient::requestStorageAccessConfirm
https://bugs.webkit.org/show_bug.cgi?id=210422

Reviewed by Michael Catanzaro.

Source/WebKit:

Add WebKitWebsiteDataAccessPermissionRequest to ask for permission to the user using the existing permission
request API.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/glib/WebKitWebsiteDataAccessPermissionRequest.cpp: Added.

(webkitWebsiteDataAccessPermissionRequestAllow):
(webkitWebsiteDataAccessPermissionRequestDeny):
(webkit_permission_request_interface_init):
(webkitWebsiteDataAccessPermissionRequestDispose):
(webkit_website_data_access_permission_request_class_init):
(webkitWebsiteDataAccessPermissionRequestCreate):
(webkit_website_data_access_permission_request_get_requesting_domain):
(webkit_website_data_access_permission_request_get_current_domain):

  • UIProcess/API/glib/WebKitWebsiteDataAccessPermissionRequestPrivate.h: Added.
  • UIProcess/API/gtk/WebKitWebsiteDataAccessPermissionRequest.h: Added.
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml:
  • UIProcess/API/gtk/webkit2.h:
  • UIProcess/API/wpe/WebKitWebsiteDataAccessPermissionRequest.h: Added.
  • UIProcess/API/wpe/docs/wpe-1.0-sections.txt:
  • UIProcess/API/wpe/docs/wpe-docs.sgml:
  • UIProcess/API/wpe/webkit.h:

Tools:

Handle WebKitWebsiteDataAccessPermissionRequest in MiniBrowser.

  • MiniBrowser/gtk/BrowserTab.c:

(decidePermissionRequest):

2:20 AM Changeset in webkit [263027] by commit-queue@webkit.org
  • 9 edits
    3 adds
    5 deletes in trunk/Tools

[Flatpak SDK] Add libavif
https://bugs.webkit.org/show_bug.cgi?id=212964
<rdar://problem/64291035>

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

Because of the ABI bump of dav1d, which ffmpeg depends on, ffmpeg needs to be rebuilt. So
this is a good opportunity to include it in the SDK and not rely on the ffmpeg-full
extension anymore, because it doesn't provide debug symbols.

  • buildstream/elements/flatpak/platform.bst:
  • buildstream/elements/flatpak/sdk.bst:
  • buildstream/elements/freedesktop-sdk.bst:
  • buildstream/elements/sdk-platform.bst:
  • buildstream/elements/sdk/ffmpeg.bst: Added.
  • buildstream/elements/sdk/gst-libav.bst:
  • buildstream/elements/sdk/libavif.bst: Added.
  • buildstream/elements/sdk/ruby-highline.bst: Remove the spec source, un-needed.
  • buildstream/patches/fdo/0001-dav1d-Bump-to-0.7.0.patch: Added.
  • buildstream/patches/fdo/0001-ffmpeg-Add-MS-MPEG-DivX-variants.patch: Removed.
  • buildstream/patches/fdo/0002-ffmpeg-Add-VP6-and-Sorenson-Spark-video-codecs.patch: Removed.
  • buildstream/patches/fdo/0003-ffmpeg-Add-Intel-Indeo-and-Cinepak-video-support.patch: Removed.
  • buildstream/patches/fdo/0004-ffmpeg-Add-MPEG-2-video-decoder.patch: Removed.
  • buildstream/patches/fdo/0005-ffmpeg-Add-msmpeg4v3-support.patch: Removed.
  • buildstream/project.conf:
  • flatpak/flatpakutils.py:

(WebkitFlatpak._get_packages):

2:19 AM Changeset in webkit [263026] by youenn@apple.com
  • 7 edits in trunk/Source/WebCore

Simplify MediaRecorderPrivateWriterCocoa threading logic
https://bugs.webkit.org/show_bug.cgi?id=213126

Reviewed by Eric Carlson.

Always hop to the main thread when receiving compressed samples.
This makes the threading model simpler and pushing enqueued samples in the writer is not very performance sensitive.

Add handling of the special case of video samples being pushed but no compressed sample is yet produced.
In that case, when stopping recording, the samples will be pushed and we will start the writer.

Minor refactoring to remove some unnecessary checks and make sure some of the member fields gets initialized in their declaration.
Covered by existing tests.

  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/AudioSampleBufferCompressor.mm:

(WebCore::AudioSampleBufferCompressor::~AudioSampleBufferCompressor):

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

(WebCore::MediaRecorderPrivateWriter::compressedVideoOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::compressedAudioOutputBufferCallback):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedVideoSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::processNewCompressedAudioSampleBuffers):
(WebCore::MediaRecorderPrivateWriter::stopRecording):

  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.h:
  • platform/mediarecorder/cocoa/VideoSampleBufferCompressor.mm:

(WebCore::VideoSampleBufferCompressor::~VideoSampleBufferCompressor):

2:13 AM Changeset in webkit [263025] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Add a quirk to allow starting AudioContext if document was interacted
https://bugs.webkit.org/show_bug.cgi?id=213118

Reviewed by Eric Carlson.

Manually tested on bing.com.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::isDocumentAllowingAutoplayWebAudio):
(WebCore::AudioContext::willBeginPlayback):

  • page/Quirks.cpp:

(WebCore::Quirks::shouldAutoplayWebAudioForArbitraryUserGesture const):

  • page/Quirks.h:
2:09 AM Changeset in webkit [263024] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[Flatpak SDK] Remove webkit-build-directory dependency from flatpakutils
https://bugs.webkit.org/show_bug.cgi?id=213179

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-15
Reviewed by Žan Doberšek.

This makes webkit-flatpak usable without installing additional perl modules (version) on the host OS.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args): Make --release and --debug mutually exclusive, and default to Release builds.
(WebkitFlatpak.init):
(WebkitFlatpak.clean_args): No need to pull in webkitpy which pulls webkitdirs.pm only to
determine the default configuration. Assume we use Release by default.

1:57 AM Changeset in webkit [263023] by Paulo Matos
  • 2 edits in trunk/Tools

Properly propagate TZ to the remote test devices
https://bugs.webkit.org/show_bug.cgi?id=212816

Reviewed by Philippe Normand.

  • Scripts/run-jsc-stress-tests:
1:35 AM Changeset in webkit [263022] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Move textFromUTF8() to TextResourceDecoder from FetchBodyConsumer
https://bugs.webkit.org/show_bug.cgi?id=213170

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-15
Reviewed by Youenn Fablet.

This function abstracts https://encoding.spec.whatwg.org/#utf-8-decode
so I think it's better to place to TextResourceDecoder.

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::resolveWithTypeAndData):
(WebCore::FetchBodyConsumer::takeAsText):

  • loader/TextResourceDecoder.cpp:

(WebCore::shouldPrependBOM):
(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/TextResourceDecoder.h:
1:17 AM Changeset in webkit [263021] by Russell Epstein
  • 5 edits in branches/safari-609-branch/Source/WebCore

Cherry-pick r262962. rdar://problem/64316002

FileInputType should use WeakPtr for FileListCreator lambdas
https://bugs.webkit.org/show_bug.cgi?id=213130
<rdar://problem/64276591>

Reviewed by David Kilzer.

FileInputType::filesChosen was passing a completion handler to FileListCreator::create that
captured |this|. If the FileListCreator instance still existed when |this| was destroyed,
FileInputType::~FileInputType would clear the captured |this| by calling
FileListCreator::clear. This can be simplified by having the FileListCreator completion
handler capture a WeakPtr to |this|.

Also, when FileInputType::allowsDirectories is false, m_fileListCreator would not be
properly cleared after creating the file list. The FileListCreator completion handler would
set m_fileListCreator to nullptr, but would be executed *before* FileListCreator::create
returned and set m_fileListCreator to the newly-created FileListCreator object. Fixed this
by having FileListCreator::create execute the completion handler immediately and return
nullptr in cases where a FileListCreator does not need to be created for directory
resolution.

Covered by existing tests.

  • html/FileInputType.cpp: (WebCore::FileInputType::~FileInputType): (WebCore::FileInputType::filesChosen):
  • html/FileInputType.h:
  • html/FileListCreator.cpp: (WebCore::createFileList): (WebCore::FileListCreator::create): (WebCore::FileListCreator::FileListCreator): (WebCore::FileListCreator::createFileList):
  • html/FileListCreator.h: (WebCore::FileListCreator::create): Deleted.

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

1:12 AM Changeset in webkit [263020] by Russell Epstein
  • 8 edits
    7 adds in branches/safari-609-branch

Cherry-pick r262918. rdar://problem/64315999

[iOS] nullptr deref in FileInputType::iconLoaded when the input's type attribute is modified by a change event listener
https://bugs.webkit.org/show_bug.cgi?id=208244
<rdar://problem/41855350>

Reviewed by Wenson Hsieh.

Source/WebCore:

When an <input> element's type attribute changes, its existing InputType is detached from
the HTMLInputElement by nulling InputType::m_element. When FileInputType::filesChosen is
called, it dispatches the input and change events, which can run arbitrary JavaScript that
might modify the element's type attribute. If this happens, FileInputType::m_element will be
null after returning from FileInputType::setFiles and if there is an icon will be
dereferenced by FileInputType::iconLoaded.

Fixed this by checking for a non-null m_element before calling iconLoaded. While here, also
fixed a bug where we sometimes checked the length of m_fileList before FileListCreator had
finished setting m_fileList. This bug resulted in missing file icons whenever an
<input type=file> had the webkitdirectory attribute.

Tests: fast/forms/file/file-input-type-detached-on-change.html

fast/forms/file/file-input-webkitdirectory-icon.html

  • html/FileInputType.cpp: (WebCore::FileInputType::filesChosen):

Tools:

  • DumpRenderTree/TestRunner.cpp: (SetOpenPanelFilesMediaIconCallback): (TestRunner::staticFunctions):
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp: (WTR::TestRunner::setOpenPanelFilesMediaIcon):

LayoutTests:

  • fast/forms/file/file-input-type-detached-on-change-expected.txt: Added.
  • fast/forms/file/file-input-type-detached-on-change.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon-expected.html: Added.
  • fast/forms/file/file-input-webkitdirectory-icon.html: Added.
  • fast/forms/file/file-reset-in-change-using-open-panel-with-icon.html:
  • fast/forms/file/open-file-panel-crash.html:
  • fast/forms/file/resources/file-icon-bytes.js: Added.

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

12:42 AM Changeset in webkit [263019] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

MediaRecorder should not be collectable when fetching data from its backend
https://bugs.webkit.org/show_bug.cgi?id=213121

Reviewed by Eric Carlson.

Take a pending activity when fetching data since we might want dispatch an event when receiving the fetch data.
Covered by existing tests no longer crashing in debug.

  • Modules/mediarecorder/MediaRecorder.cpp:

(WebCore::MediaRecorder::stopRecording):
(WebCore::MediaRecorder::requestData):

Jun 14, 2020:

10:56 PM Changeset in webkit [263018] by svillar@igalia.com
  • 7 edits in trunk

Unreviewed, reverting r262124.

Twitter videos go blank after exiting fullscreen

Reverted changeset:

"[css-flex] Allow indefinite size flex items to be definite
wrt resolving percentages inside them"
https://bugs.webkit.org/show_bug.cgi?id=212264
https://trac.webkit.org/changeset/262124

7:07 PM Changeset in webkit [263017] by weinig@apple.com
  • 31 edits
    2 copies
    1 add
    1 delete in trunk

[WPT] html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray.html fails due to lack of caching of Plugin objects
https://bugs.webkit.org/show_bug.cgi?id=213185

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray-expected.txt:

Update results now that this test passes.

Source/WebCore:

Tests:

  • Updates results for web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray.html which now passes.
  • Splits up http/tests/plugins/plugin-javascript-access.html, adding http/tests/plugins/plugin-javascript-access-allow-all-plugins.html which tests the internals.setShowAllPlugins(true) case. This was required now that the plugin and mimetype arrays are immutable after creation.

Overhaul web exposed plugin APIs:

  • All DOMPlugin and DOMMimeTypes are now created together (along with the DOMPluginArray and DOMMimeTypeArray) on first access of either navigator.plugins or navigator.mimeTypes.
  • DOMPlugins are created and stored in the DOMPluginArray (fixing the initial lack of caching issue)
  • DOMMimeTypes are created and stored in the DOMMimeTypeArray.
  • DOMPlugins hold a strong reference to their associated DOMMimeType. The DOMMimeType has a weak reference back to the DOMPlugin. This means for a single executation context, we only ever create one DOMPlugin / DOMMimeType for each underlying plugin / mimetype.
  • Update GC so that DOMPlugin and DOMMimeType (in addition to DOMPluginArray and DOMMimeTypeArray which were already doing this) use navigator reachability for their lifetime. This is almost correct, except if we ever implement DOMPluginArray.refresh(false) to match the spec, in which case you could end up with some DOMPlugins and DOMMimeTypes that are marked as reachable when they really are not, but only plugins that were removed. This seems so unlikely to matter that implementing a more strict reachability function seems like the wrong way to go.
  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:

Add NavigatorPlugins.idl

  • loader/SubframeLoader.cpp:

(WebCore::findPluginMIMETypeFromURL):
(WebCore::logPluginRequest):
Simplify and cleanup code making use of the new webVisibleMimeTypes() rather than the
clunky getWebVisibleMimesAndPluginIndices().

  • page/Navigator.cpp:
  • page/Navigator.h:

(WebCore::Navigator::initializePluginAndMIMETypeArrays):
(WebCore::Navigator::plugins):
(WebCore::Navigator::mimeTypes):
Fully initialize Navigator.plugins/mimeTypes on first access of either, following
the specified behavior that they should not change after initial access for a script
execution context. This also ensures we always return the same wrappers for these
objects on multiple accesses, something the spec mandates but we failed to do prior.
In addition, we now correctly sort the plugins by name and mimeTypes by type, also as
specified.

  • page/Navigator.idl:
  • page/NavigatorPlugins.idl: Added.

Split NavigatorPlugins out of Navigator.idl as specified. No functional change but
makes things nicer when we match the spec closer.

  • plugins/DOMMimeType.cpp:

(WebCore::DOMMimeType::DOMMimeType):
(WebCore::DOMMimeType::suffixes const):
(WebCore::DOMMimeType::enabledPlugin const):

  • plugins/DOMMimeType.h:

(WebCore::DOMMimeType::create):
(WebCore::DOMMimeType::navigator):

  • plugins/DOMMimeType.idl:
  • plugins/DOMMimeTypeArray.cpp:

(WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
(WebCore::DOMMimeTypeArray::length const):
(WebCore::DOMMimeTypeArray::item):
(WebCore::DOMMimeTypeArray::namedItem):
(WebCore::DOMMimeTypeArray::supportedPropertyNames):
(WebCore::DOMMimeTypeArray::getPluginData const): Deleted.

  • plugins/DOMMimeTypeArray.h:
  • plugins/DOMPlugin.cpp:

(WebCore::DOMPlugin::DOMPlugin):
(WebCore::DOMPlugin::item):
(WebCore::DOMPlugin::namedItem):
(WebCore::DOMPlugin::supportedPropertyNames):

  • plugins/DOMPlugin.h:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.cpp:

(WebCore::DOMPluginArray::DOMPluginArray):
(WebCore::DOMPluginArray::length const):
(WebCore::DOMPluginArray::item):
(WebCore::DOMPluginArray::namedItem):
(WebCore::DOMPluginArray::supportedPropertyNames):
(WebCore::DOMPluginArray::pluginData const): Deleted.

  • plugins/DOMPluginArray.h:

Rather than dynamically accessing plugin information through Page
on each interaction with the DOM plugin objects, we now fully initialize
them on creation, allowing for correct wrapper caching and behavior if
plugins are added / removed (e.g. the arrays should not change).

  • plugins/PluginData.cpp:

(WebCore::PluginData::initPlugins):
(WebCore::PluginData::publiclyVisiblePluginsAndAdditionalWebVisiblePlugins const):
(WebCore::PluginData::webVisibleMimeTypes const):
(WebCore::supportsMimeTypeForPlugins):
(WebCore::PluginData::supportsMimeType const):
(WebCore::PluginData::supportsWebVisibleMimeType const):
(WebCore::PluginData::supportsWebVisibleMimeTypeForURL const):
(WebCore::PluginData::pluginFileForWebVisibleMimeType const):
(WebCore::PluginData::publiclyVisiblePlugins const): Deleted.
(WebCore::PluginData::getWebVisibleMimesAndPluginIndices const): Deleted.
(WebCore::PluginData::getMimesAndPluginIndices const): Deleted.
(WebCore::PluginData::getMimesAndPluginIndiciesForPlugins const): Deleted.
(WebCore::PluginData::getPluginInfoForWebVisibleMimeType const): Deleted.

  • plugins/PluginData.h:

Simplify interface by removing out parameter based getWebVisibleMimesAndPluginIndices
(and helpers) and adding more straigtword alternatives. getWebVisibleMimesAndPluginIndices
was useful for the old DOM plugin model, but now that the arrays are initialized all
together, it no longer provides an optimization. Instead, all callers really just want
a either a list of MimeClassInfos or to know if one is supported under a specific scenario,
so we now just expose that.

Source/WebKit:

  • UIProcess/Plugins/PluginInfoStore.h:

Add missing #include that is now needed due to pruning of unnecessary #includes
in WebCore.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::pluginSupportsExtension):
Update to use new webVisibleMimeTypes() rather than the clunky getWebVisibleMimesAndPluginIndices().

LayoutTests:

  • http/tests/plugins/plugin-javascript-access-allow-all-plugins-expected.txt: Added.
  • http/tests/plugins/plugin-javascript-access-allow-all-plugins.html: Added.
  • http/tests/plugins/plugin-javascript-access-expected.txt:
  • http/tests/plugins/plugin-javascript-access.html:

Split out internals.setShowAllPlugins(true) part of plugin-javascript-access.html to
allow the test to continue working now that navigator.plugins is immutable after
accessing it.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray-expected.txt: Removed.

Remove imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray.html
from TestExpectations now that it passes all the time.

5:58 PM Changeset in webkit [263016] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

[IPC hardening] Return type of -[NSCoder validateClassSupportsSecureCoding:] is incorrect
<https://webkit.org/b/213161>
<rdar://problem/64050085>

Reviewed by Darin Adler.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(validateClass):

  • Fix return type of -[NSCoder validateClassSupportsSecureCoding:]. Throw an NSException in case the method ever returns NO without throwing its own NSException. (Currently this method does throw an NSException instead of returning NO.)
4:45 PM Changeset in webkit [263015] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Release Assert @ WebCore::RenderTreeBuilder::RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=212714

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-06-14
Reviewed by Geoffrey Garen.

Added a regression test.

  • fast/rendering/widget-removal-in-render-tree-builder-crash-expected.txt: Added.
  • fast/rendering/widget-removal-in-render-tree-builder-crash.html: Added.
4:06 PM Changeset in webkit [263014] by Wenson Hsieh
  • 2 edits in trunk/Tools

[iOS] Two KeyboardInputTests are failing on recent iOS SDK versions
https://bugs.webkit.org/show_bug.cgi?id=213183
<rdar://problem/64273483>

Reviewed by Tim Horton.

On recent versions of the iOS SDK, iOS simulators that are not shown on-screen are treated as if the hardware
keyboard is not available (that is, +[UIIKeyboard isInHardwareKeyboardMode] returns NO). When running API
tests while Simulator.app is already launched, an iOS simulator is presented on-screen, whereas the simulator
is not visible when running API tests without launching Simulator.app beforehand.

This discrepancy causes two iOS API tests to fail (i.e. CaretSelectionRectAfterRestoringFirstResponder and
RangedSelectionRectAfterRestoringFirstResponder), due to the fact that -[WKWebView becomeFirstResponder] no
longer causes an input session to begin.

Interestingly, these tests already attempt to circumvent this by using webViewWithAutofocusedInput(), which
creates and loads a WKWebView with a single autofocusing input element, with a _WKInputDelegate that
unconditionally allows input sessions to begin. However, this doesn't work as intended in these tests, because
nothing keeps the delegate (a TestInputDelegate) alive past the scope of the call to
webViewWithAutofocusedInput(). Since [WKWebView _inputDelegate] is a weak property, the input delegate
simply disappears after we finish waiting for the load to finish (and the autofocused input element begins its
input session). This causes us to erroneously fall back to default behavior (i.e.
_WKFocusStartsInputSessionPolicyAuto) for subsequent calls to show the keyboard for the focused element, as is
the case when these two API tests call -becomeFirstResponder. The end result is that the keyboard doesn't
appear and text selection views are not created and laid out, but only when API tests are run without having
launched the Simulator app beforehand.

To fix this, refactor webViewWithAutofocusedInput() into webViewAndInputDelegateWithAutofocusedInput(),
which returns both the new WKWebView as well as the TestInputDelegate of the web view. The call site is then
responsible for keeping the input delegate around for as long as it needs.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(webViewWithAutofocusedInput):

Drive-by fix: fix a potential stack smasher by using an Objective-C block when setting the input delegate's
policy handler, and by using __block for the doneWaiting boolean flag. This is now a problem becuase this
block may be invoked multiple times.

(webViewAndInputDelegateWithAutofocusedInput):

1:27 PM Changeset in webkit [263013] by Fujii Hironori
  • 2 edits in trunk/LayoutTests

[AppleWin] Unreviewed test gardening

  • platform/win/TestExpectations: Marked fast/text/combining-character-sequence-vertical.html with ImageOnlyFailure.
11:57 AM Changeset in webkit [263012] by weinig@apple.com
  • 7 edits
    2 adds in trunk

[WPT] websockets/Close-reason-unpaired-surrogates.any.html fails due to failure to convert unpaired surrogates to replacement character for close reason
https://bugs.webkit.org/show_bug.cgi?id=213182

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/websockets/Close-reason-unpaired-surrogates.any-expected.txt:
  • web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker-expected.txt:
  • web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any-expected.txt: Added.
  • web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker-expected.txt: Added.

Update/add results now that these tests pass.

Source/WebCore:

Now passing the following tests:

imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.html
imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html
imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html
imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html

  • Modules/websockets/WebSocket.idl:

Match spec (https://html.spec.whatwg.org/multipage/web-sockets.html#the-websocket-interface)
by making the reason argument in close() a USVString rather than a DOMString. This causes
all unpaired surrogates to be replaced with \uFFFD, the replacement character.

LayoutTests:

Unskips the following tests which now pass all the time:

imported/w3c/web-platform-tests/websockets/Close-reason-unpaired-surrogates.any.worker.html
imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.html
imported/w3c/web-platform-tests/websockets/Secure-Close-Reason-Unpaired-surrogates.any.worker.html

11:55 AM Changeset in webkit [263011] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk/JSTests

Add wasm regresion test for loop
https://bugs.webkit.org/show_bug.cgi?id=213176

Reviewed by Darin Adler.

This patch adds one more regression test for r246134.

  • wasm/regress/regression-with-loop.js: Added.
2:07 AM Changeset in webkit [263010] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[SOUP] Disable HSTS for requests when cookies will be blocked by ITP
https://bugs.webkit.org/show_bug.cgi?id=210739

Reviewed by Michael Catanzaro.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::shouldAllowHSTSProtocolUpgrade const):

12:11 AM Changeset in webkit [263009] by commit-queue@webkit.org
  • 4 edits in trunk

Withdraw FileReaderSync from ServiceWorker
https://bugs.webkit.org/show_bug.cgi?id=213136

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-14
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/FileAPI/historical.https-expected.txt:

Source/WebCore:

FileReaderSync is not exposed for ServiceWorker.

We does not support SharedWorker. We don't have to care about it.

  • fileapi/FileReaderSync.idl:

Jun 13, 2020:

11:34 PM Changeset in webkit [263008] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

https://bugs.webkit.org/show_bug.cgi?id=213166
Rename executeIfJavaScriptURL to executeJavaScriptURL

Patch by Rob Buis <rbuis@igalia.com> on 2020-06-13
Reviewed by Darin Adler.

Rename executeIfJavaScriptURL to executeJavaScriptURL in order to make the function
unconditional, i.e. the passed url is expected to have the javascript protocol, this
is asserted first thing in the method. This allows us to remove the return parameter
since the remaining return statements all return true.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeJavaScriptURL):
(WebCore::ScriptController::executeIfJavaScriptURL): Deleted.

  • bindings/js/ScriptController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::submitForm):

  • loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestFrame):

5:39 PM Changeset in webkit [263007] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][Floats] Floating positioned box is always a float avoider.
https://bugs.webkit.org/show_bug.cgi?id=213162

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/layoutformattingcontext/inline-float-simple.html

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isFloatAvoider const): also fix the independent formatting context case.

LayoutTests:

  • fast/layoutformattingcontext/inline-float-simple-expected.html: Added.
  • fast/layoutformattingcontext/inline-float-simple.html: Added.
1:40 PM Changeset in webkit [263006] by Devin Rousso
  • 12 edits
    1 add in trunk

Make errors an own property of AggregateError instead of a prototype accessor
https://bugs.webkit.org/show_bug.cgi?id=212677

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/AggregateError-own-property-errors.js: Added.
  • test262/expectations.yaml:

Mark 9 tests as failing while waiting for test262 to update to match the spec.

Source/JavaScriptCore:

  • runtime/AggregateError.h:

(JSC::AggregateError::destroy): Deleted.
(JSC::AggregateError::subspaceFor): Deleted.
(JSC::AggregateError::errors): Deleted.

  • runtime/AggregateError.cpp:

(JSC::AggregateError::AggregateError):
(JSC::AggregateError::finishCreation): Added.
(JSC::AggregateError::visitChildren): Deleted.

  • runtime/AggregateErrorPrototype.h:
  • runtime/AggregateErrorPrototype.cpp:

(JSC::AggregateErrorPrototype::finishCreation):
(JSC::aggregateErrorPrototypeAccessorErrors): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::initializeAggregateErrorConstructor):

  • runtime/VM.h:
  • runtime/VM.cpp:

(JSC::VM::VM):

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):
Remove aggregateErrorSpace since AggregateError doesn't add any new member variables.
Ensure that it can share an IsoSubspace with ErrorInstance.

  • runtime/CommonIdentifiers.h:

Add errors.

1:20 PM Changeset in webkit [263005] by sbarati@apple.com
  • 2 edits in trunk/Tools

compare-results should have an option to print a breakdown and to save the breakdown as csv file
https://bugs.webkit.org/show_bug.cgi?id=213140

Reviewed by Filip Pizlo.

In this patch, compare-results has a new --breakdown feature which will
break down the results for -a and -b per subtest. It will also show you
p values with a significance threshold determined using the Bonferroni
correction for testing multiple hypotheses:
https://en.wikipedia.org/wiki/Bonferroni_correction

And there is also now a --csv option to generate a csv file containing
the same per subtest breakdown.

--breakdown will print out results like:


| subtest | ms | ms | b / a | pValue, alpha = 0.003125 |


| Elm-TodoMVC |616.625000 |583.625000 |0.946483 | 0.065002 |
| VueJS-TodoMVC |89.425000 |83.225000 |0.930668 | 0.039102 |
| EmberJS-TodoMVC |695.875000 |664.000000 |0.954194 | 0.088901 |
| Flight-TodoMVC |263.600000 |257.600000 |0.977238 | 0.249259 |
| BackboneJS-TodoMVC |213.025000 |201.550000 |0.946133 | 0.000636 (significant) |
| Preact-TodoMVC |48.800000 |47.550000 |0.974385 | 0.502768 |
| AngularJS-TodoMVC |745.300000 |704.275000 |0.944955 | 0.011779 |
| Inferno-TodoMVC |607.900000 |354.800000 |0.583649 | 0.000000 (significant) |
| Vanilla-ES2015-TodoMVC |214.950000 |200.575000 |0.933124 | 0.005018 |
| Angular2-TypeScript-TodoMVC |191.575000 |187.025000 |0.976250 | 0.542229 |
| VanillaJS-TodoMVC |162.075000 |160.375000 |0.989511 | 0.747186 |
| jQuery-TodoMVC |855.275000 |833.825000 |0.974920 | 0.103439 |
| EmberJS-Debug-TodoMVC |2056.250000 |1952.050000 |0.949325 | 0.000003 (significant) |
| React-TodoMVC |475.225000 |428.950000 |0.902625 | 0.007566 |
| React-Redux-TodoMVC |791.100000 |736.675000 |0.931203 | 0.066091 |
| Vanilla-ES2015-Babel-Webpack-TodoMVC |208.050000 |202.000000 |0.970920 | 0.152470 |


  • Scripts/compare-results:

(readJSONFile):
(speedometer2Breakdown):
(jetStream2Breakdown):
(motionMarkBreakdown):
(plt5Breakdown):
(displayStr):
(dumpBreakdowns):
(writeCSV):
(detectMotionMark1_1):
(detectMotionMark1_1_1):
(motionMarkResults):
(detectBenchmark):
(getOptions):
(main):
(motionMark1_1Results): Deleted.

12:06 PM Changeset in webkit [263004] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Fix Overrelease in makeFailureSetForAllTextManipulationItems
https://bugs.webkit.org/show_bug.cgi?id=213165
<rdar://problem/61389164>

Patch by Richard Houle <rhoule@apple.com> on 2020-06-13
Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/WKWebView.mm:

(makeFailureSetForAllTextManipulationItems):

11:35 AM Changeset in webkit [263003] by weinig@apple.com
  • 9 edits in trunk

[WPT] dom/nodes/Document-createCDATASection-xhtml.xhtml fails due to missing exception in Document.createCDATASection()
https://bugs.webkit.org/show_bug.cgi?id=213167

Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/Document-createCDATASection-xhtml-expected.txt:

Update results to show we are now passing all subtests.

Source/WebCore:

Tested by existing (formerly failing) test: imported/w3c/web-platform-tests/dom/nodes/Document-createCDATASection-xhtml.xhtml

Throw an "InvalidCharacterError" DOMException if the data passed to createCDATASection
contains the string "]]>" as specified by https://dom.spec.whatwg.org/#dom-document-createcdatasection

  • dom/Document.cpp:

(WebCore::Document::createCDATASection):

LayoutTests:

  • dom/xhtml/level3/core/documentnormalizedocument07-expected.txt:
  • dom/xhtml/level3/core/documentnormalizedocument08-expected.txt:
  • dom/xhtml/level3/core/handleerror01-expected.txt:
  • dom/xhtml/level3/core/splitcdatasections01-expected.txt:

Update expected results with new error now being thrown.

11:24 AM Changeset in webkit [263002] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Obsolete comment in FontCustomPlatformDataFreeType.cpp
https://bugs.webkit.org/show_bug.cgi?id=213169

Unreviewed, remove the stale comment.

Patch by Michael Catanzaro <Michael Catanzaro> on 2020-06-13

  • platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:

(WebCore::defaultFontconfigOptions):

11:14 AM Changeset in webkit [263001] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Mac Catalyst] Color inputs and selects fail to display popovers when clicked
https://bugs.webkit.org/show_bug.cgi?id=213157
<rdar://problem/64004135>

Reviewed by Tim Horton.

In Mac Catalyst, presenting popovers using UIPopoverController causes the first responder to change. This
means that the WKContentView will resign first responder, which in turn causes the currently presented popover
to be dismissed. This means that popovers for color inputs and select elements will be dismissed immediately
after presentation.

To mitigate this, adapt the approach taken in r259840 to WKColorPopover and WKSelectPopover by teaching the
base class (WKRotatingPopover) to temporarily preserve the focused element in light of first responder changes
while presenting a popover on Mac Catalyst.

  • UIProcess/ios/forms/WKFormPopover.mm:

(-[WKRotatingPopover presentPopoverAnimated:]):
(-[WKRotatingPopover dismissPopoverAnimated:]):

9:42 AM Changeset in webkit [263000] by weinig@apple.com
  • 33 edits
    1 add in trunk

Extended Color: Experiment with strongly typed ColorComponents
https://bugs.webkit.org/show_bug.cgi?id=212396

Reviewed by Darin Adler.

Source/WebCore:

Adds simple explicit types for sRGBA, LinearSRGBA, DisplayP3,
LinearDisplayP3, XYZA and HSLA colors. Conversion to/from
ColorComponents<float> is easy but explicit to make conversions
easier to spot.

The goal is to add type clarity (you know when you are dealing
with an sRGB color vs. a DisplayP3 color) and make dealing with
the colors nicer (color.red rather than color[0]). It also allows
us to simplify the naming of functions that convert between color
types as now only the output type needs to be in the function name.

  • Headers.cmake:

Add new header, ColorTypes.h

  • WebCore.xcodeproj/project.pbxproj:

Add new header, ColorTypes.h

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
Switch from hslToSRGB({ ... }) to toSRGBA(HSLAColor { ... })

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Update to use toHSLA() and HSLA<float> making the code a bit more readable.

  • platform/graphics/Color.cpp:

(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::isDark const):
(WebCore::Color::lightness const):
(WebCore::Color::luminance const):
(WebCore::Color::colorSpaceAndComponents const):
(WebCore::Color::toSRGBASimpleColorLossy const):
(WebCore::Color::toSRGBALossy const):
(WebCore::Color::toSRGBAComponentsLossy const): Deleted.

  • platform/graphics/Color.h:

Renames toSRGBAComponentsLossy() to toSRGBALossy() which now returns
a SRGBA<float>.

  • platform/graphics/ColorMatrix.h:

(WebCore::ColorMatrix::transformColorComponents const): Deleted.
Remove transformColorComponents, keeping just transformedColorComponents
to simplify the interface. With late conversion to ColorComponents, the
latter is more straightforward to use in most cases anyway.

  • platform/graphics/ColorUtilities.cpp:

(WebCore::linearToRGBColorComponent):
(WebCore::rgbToLinearColorComponent):
(WebCore::toLinearSRGBA):
(WebCore::toSRGBA):
(WebCore::toLinearDisplayP3):
(WebCore::toDisplayP3):
(WebCore::toXYZ):
(WebCore::lightness):
(WebCore::luminance):
(WebCore::contrastRatio):
(WebCore::toHSLA):
(WebCore::premultiplied):
(WebCore::rgbToLinearComponents): Deleted.
(WebCore::linearToRGBComponents): Deleted.
(WebCore::xyzToLinearSRGB): Deleted.
(WebCore::linearSRGBToXYZ): Deleted.
(WebCore::XYZToLinearP3): Deleted.
(WebCore::linearP3ToXYZ): Deleted.
(WebCore::p3ToSRGB): Deleted.
(WebCore::sRGBToP3): Deleted.
(WebCore::sRGBToHSL): Deleted.
(WebCore::hslToSRGB): Deleted.

  • platform/graphics/ColorUtilities.h:

Rename / rework conversion and utility functions to operate on explicit Color
types. In doing so, simplify the names of the conversion functions so only name
the output type. For instance:

ColorComponents<float> p3ToSRGB(const ColorComponents<float>&);

is now

SRGBA<float> toSRGBA(const DisplayP3<float>&);

as the input type is implicit in the call. A little duplication was needed
for linearToRGBColorComponent/rgbToLinearColorComponent (as it was used for
both sRGB and DisplayP3 linearization), but mostly things stay the same.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::toSRGBALossy const):
(WebCore::ExtendedColor::toSRGBAComponentsLossy const): Deleted.

  • platform/graphics/ExtendedColor.h:

Renamed toSRGBAComponentsLossy() to toSRGBALossy() and have it
return a SRGBA<float>.

  • platform/graphics/SimpleColor.h:

(WebCore::SimpleColor::asSRGBA const):
(WebCore::makeSimpleColor):
(WebCore::SimpleColor::asSRGBFloatComponents const): Deleted.
Rename asSRGBFloatComponents() to asSRGBA<T>() and have it
return a SRGBA<float>. Replace makeSimpleColor taking FloatComponents
with one taking a SRGBA<float>, making it much clearer that this
is only valid for sRGB.

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):
Rework to support seperate types for SRGB<float> and LinearSRGBA<float>.

  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::drawLighting):

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperation.h:

(WebCore::FilterOperation::transformColor const):
(WebCore::FilterOperation::inverseTransformColor const):

  • platform/graphics/filters/FilterOperations.cpp:

(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
Use SRGBA<float> rather than ColorComponents<float> to make it clear
that the filters only work on sRGB colors right now.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::disabledTextColor const):

  • rendering/TextPaintStyle.cpp:

(WebCore::textColorIsLegibleAgainstBackgroundColor):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::setSourceRGBAFromColor):

  • platform/graphics/cairo/GradientCairo.cpp:

(WebCore::addColorStopRGBA):
(WebCore::setCornerColorRGBA):
(WebCore::interpolateColorStop):

  • platform/graphics/gtk/ColorGtk.cpp:

(WebCore::Color::operator GdkRGBA const):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawNumber):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::clearColor):

  • platform/graphics/win/ColorDirect2D.cpp:

(WebCore::Color::operator D2D1_COLOR_F const):
(WebCore::Color::operator D2D1_VECTOR_4F const):

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient):

  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContext::colorWithGlobalAlpha const):
Update to call toSRGBALossy() rather than toSRGBAComponentsLossy().

Source/WebKit:

  • UIProcess/API/wpe/WebKitColor.cpp:

(webkitColorFillFromWebCoreColor):

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::ViewGestureController::beginSwipeGesture):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::getDocumentBackgroundColor):
Update to call toSRGBALossy() rather than toSRGBAComponentsLossy().

Tools:

  • TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/ExtendedColorTests.cpp:

(TestWebKitAPI::TEST):
Update for changed names (e.g. toSRGBAComponentsLossy() -> toSRGBALossy())
and use of explicit types.

9:24 AM Changeset in webkit [262999] by commit-queue@webkit.org
  • 21 edits
    1 delete in trunk/Source

Remove FileError.h
https://bugs.webkit.org/show_bug.cgi?id=213119

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-13
Reviewed by Chris Dumez.

Source/WebCore:

  • Headers.cmake:
  • Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:

(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFail):

  • Modules/async-clipboard/ClipboardItemBindingsDataSource.h:
  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::createMessageQueue):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::didFail):
(WebCore::WebSocketChannel::abortOutgoingFrameQueue):

  • Modules/websockets/WebSocketChannel.h:
  • WebCore.xcodeproj/project.pbxproj:
  • fileapi/BlobLoader.h:

(WebCore::BlobLoader::didFail):

  • fileapi/FileError.h: Removed.
  • fileapi/FileReader.cpp:

(WebCore::FileReader::didFail):

  • fileapi/FileReader.h:
  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):
(WebCore::FileReaderLoader::cancel):
(WebCore::FileReaderLoader::cleanup):
(WebCore::FileReaderLoader::didReceiveResponse):
(WebCore::FileReaderLoader::didReceiveData):
(WebCore::FileReaderLoader::didFail):
(WebCore::FileReaderLoader::failed):
(WebCore::FileReaderLoader::toErrorCode):
(WebCore::FileReaderLoader::httpStatusCodeToErrorCode):
(WebCore::FileReaderLoader::arrayBufferResult const):
(WebCore::FileReaderLoader::stringResult):

  • fileapi/FileReaderLoader.h:

(WebCore::FileReaderLoader::errorCode const):

  • fileapi/FileReaderLoaderClient.h:
  • fileapi/FileReaderSync.cpp:

(WebCore::FileReaderSync::startLoading):

  • fileapi/FileReaderSync.h:
  • fileapi/NetworkSendQueue.cpp:

(WebCore::NetworkSendQueue::processMessages):

  • fileapi/NetworkSendQueue.h:
  • html/ImageBitmap.cpp:

Source/WebKit:

  • WebProcess/Network/WebSocketChannel.cpp:

(WebKit::WebSocketChannel::createMessageQueue):

1:43 AM Changeset in webkit [262998] by Diego Pino Garcia
  • 2 edits in trunk/Tools

Unreviewed, fix configuration setting of WPE Debug (Tests JS) bot
https://bugs.webkit.org/show_bug.cgi?id=213164

The bot was meant to run as Debug.

  • BuildSlaveSupport/build.webkit.org-config/config.json:

Jun 12, 2020:

11:22 PM Changeset in webkit [262997] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Automation.computeElementLayout should return iframe-relative element rects (when coordinate system is 'Page')
https://bugs.webkit.org/show_bug.cgi?id=213139
<rdar://problem/55042445>

Reviewed by Devin Rousso.

Automation.computeElementLayout has two coordinate systems it can use, LayoutViewport (used for hit testing)
and Page (used for Get Element Rect). Since Get Element Rect expects coordinates relative to the current
browsing context, make the mode simpler by reporting the bounds from Element::boundingClientRect() which
are frame-relative.

Covered by existing WPT suite. The semantics of this command are under review, as
the remote end steps seem to describe a different result than what the non-normative text does.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout):

11:13 PM Changeset in webkit [262996] by Simon Fraser
  • 11 edits
    2 adds in trunk

REGRESSION(r261985): Unable to respond to large comments on Bugzilla with always-on scrollbars
https://bugs.webkit.org/show_bug.cgi?id=213135
<rdar://problem/64302086>

Reviewed by Tim Horton.
Source/WebCore:

The combination of programmatic scrolls (e.g. anchor click, reveal selection) and user scrolling
could result in a mismatch between the main thread and scrolling thread scroll positions, resulting
in missing tiles and offset cursor handling.

This happened if a programmatic scroll occurred and 'scrolledSinceLastCommit' was true for
the equivalent scrolling node at the start of a rendering update. synchronizeStateFromScrollingTree()
would take the scrolling thread's notion of the scroll position, clobbering the position resulting
from the programmatic scroll.

To fix this, call commitTreeStateIfNeeded() before synchronizeStateFromScrollingTree() to ensure that
any programmatic scrolls have been pushed to the scrolling tree before we fetch its state.

Some infrastructure is needed for testing; getting into the state where a programmatic
scroll and 'scrolledSinceLastCommit' happened in the same event loop cycle required adding
internals.scrollBySimulatingWheelEvent(), which just pokes the scrolling tree directly
without the complexities of wheel events dispatched via the UI process.

Test: scrollingcoordinator/mac/reveal-selection-tile-coverage.html

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scrollBySimulatingWheelEventForTesting):

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

(WebCore::ScrollingCoordinator::scrollBySimulatingWheelEventForTesting):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::scrollBySimulatingWheelEventForTesting):

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::willStartRenderingUpdate):

  • testing/Internals.cpp:

(WebCore::Internals::scrollBySimulatingWheelEvent):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Test that does a fake user scroll then a programmatic scroll from a timer (i.e. outside
the rendering update), then dumps tile caches to check that coverage rects match the
right scroll position.

  • scrollingcoordinator/mac/reveal-selection-tile-coverage-expected.txt: Added.
  • scrollingcoordinator/mac/reveal-selection-tile-coverage.html: Added.
8:09 PM Changeset in webkit [262995] by rmorisset@apple.com
  • 4 edits
    1 add in trunk
The
operator (and similar ones) should produce valid bytecode even if the right side is a static error

https://bugs.webkit.org/show_bug.cgi?id=213154

Reviewed by Devin Rousso.

JSTests:

  • stress/bytecode-for-rmw-with-invalid-right-side.js: Added.

(catch):

Source/JavaScriptCore:

There were two minor issues here that interacted:

  • emitThrowReferenceError did not take an optional dst argument like everything else, and instead always returned a new temporary. As a result, the various functions that sometimes did "return emitThrowReferenceError(..);" could return a different RegisterID than the one provided to them through dst, breaking the invariant stated at the top of the file.
  • ShortCircuitReadModifyResolveNode::emitBytecode used the result of such a function, unnecessarily, and (correctly) relied on the invariant being upheld.

The combination of these led to the bytecode trying to do a move of a temporary that was only defined in one of the predecessors of the basic block it was on,
which was caught by validateBytecode.

I fixed both issues, and verified that either fix is enough to stop the bug.
I fixed the first because other code may depend on that invariant in more subtle ways.
I fixed the second because it was just unnecessary complexity and made the code misleading.

I also reworded the comment at the top of NodesCodegen.cpp based on Keith's explanation and Mark's advice to make it less cryptic.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThrowableExpressionData::emitThrowReferenceError):
(JSC::PostfixNode::emitBytecode):
(JSC::DeleteBracketNode::emitBytecode):
(JSC::DeleteDotNode::emitBytecode):
(JSC::PrefixNode::emitBytecode):
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
(JSC::AssignErrorNode::emitBytecode):

  • parser/Nodes.h:
7:55 PM Changeset in webkit [262994] by ddkilzer@apple.com
  • 74 edits in trunk/Source

[IPC hardening] Check enum values in IPC::Decoder::decodeEnum() an IPC::Encoder::encodeEnum()
<https://webkit.org/b/211988>
<rdar://problem/63137695>

Reviewed by Darin Adler.

Replace decodeEnum() with decode() and encodeEnum() with
operator<<().

Source/ThirdParty/libwebrtc:

  • Source/webrtc/sdk/WebKit/WebKitEncoder.h:

(webrtc::WebKitEncodedFrameInfo::decode):
(webrtc::WebKitEncodedFrameInfo::encode const):

Source/WebCore:

  • Modules/applicationmanifest/ApplicationManifest.h:

(WebCore::ApplicationManifest::decode):

  • Modules/indexeddb/IDBKeyData.h:

(WebCore::IDBKeyData::encode const):
(WebCore::IDBKeyData::decode):

  • Modules/indexeddb/shared/IDBCursorInfo.h:

(WebCore::IDBCursorInfo::encode const):
(WebCore::IDBCursorInfo::decode):

  • Modules/indexeddb/shared/IDBError.h:

(WebCore::IDBError::encode const):
(WebCore::IDBError::decode):

  • Modules/indexeddb/shared/IDBGetAllRecordsData.h:

(WebCore::IDBGetAllRecordsData::encode const):
(WebCore::IDBGetAllRecordsData::decode):

  • Modules/indexeddb/shared/IDBGetRecordData.h:

(WebCore::IDBGetRecordData::encode const):
(WebCore::IDBGetRecordData::decode):

  • Modules/indexeddb/shared/IDBIterateCursorData.h:

(WebCore::IDBIterateCursorData::encode const):
(WebCore::IDBIterateCursorData::decode):

  • Modules/indexeddb/shared/IDBRequestData.h:

(WebCore::IDBRequestData::encode const):
(WebCore::IDBRequestData::decode):

  • Modules/indexeddb/shared/IDBResultData.h:

(WebCore::IDBResultData::encode const):
(WebCore::IDBResultData::decode):

  • Modules/indexeddb/shared/IDBTransactionInfo.h:

(WebCore::IDBTransactionInfo::encode const):
(WebCore::IDBTransactionInfo::decode):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::Parameters::decode):
(WebCore::PublicKeyCredentialCreationOptions::AuthenticatorSelectionCriteria::decode):

  • Modules/webauthn/PublicKeyCredentialDescriptor.h:

(WebCore::PublicKeyCredentialDescriptor::decode):

  • dom/ExceptionData.h:

(WebCore::ExceptionData::encode const):
(WebCore::ExceptionData::decode):

  • html/DataListSuggestionInformation.h:

(WebCore::DataListSuggestionInformation::encode const):
(WebCore::DataListSuggestionInformation::decode):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::encode const):
(WebCore::SecurityOrigin::decode):

  • platform/ContextMenuItem.h:

(WTF::EnumTraits<WebCore::ContextMenuAction>):

  • Add missing ContextMenuItemTagPasteAsPlainText that was added in r261800.
  • platform/LinkIcon.h:

(WebCore::LinkIcon::encode const):
(WebCore::LinkIcon::decode):

  • platform/PasteboardItemInfo.h:

(WebCore::PasteboardItemInfo::encode const):
(WebCore::PasteboardItemInfo::decode):

  • platform/ScreenProperties.h:

(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):

  • platform/graphics/InbandGenericCue.h:

(WebCore::GenericCueData::encode const):

  • platform/graphics/Path.h:

(WebCore::Path::encode const):
(WebCore::Path::decode):

  • platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::SetState::encode const):
(WebCore::DisplayList::SetState::decode):
(WebCore::DisplayList::DrawTiledScaledImage::encode const):
(WebCore::DisplayList::DrawTiledScaledImage::decode):

  • platform/mediastream/CaptureDevice.h:

(WebCore::CaptureDevice::encode const):

  • platform/mediastream/MediaConstraints.h:

(WebCore::MediaConstraint::encode const):
(WebCore::MediaConstraint::decode):

  • platform/mediastream/MediaStreamRequest.h:

(WebCore::MediaStreamRequest::encode const):
(WebCore::MediaStreamRequest::decode):

  • platform/mediastream/RealtimeMediaSourceCapabilities.h:

(WebCore::CapabilityValueOrRange::encode const):
(WebCore::CapabilityValueOrRange::decode):
(WebCore::RealtimeMediaSourceCapabilities::encode const):
(WebCore::RealtimeMediaSourceCapabilities::decode):

  • platform/mediastream/RealtimeMediaSourceSettings.h:

(WebCore::RealtimeMediaSourceSettings::encode const):
(WebCore::RealtimeMediaSourceSettings::decode):

  • platform/mock/MockMediaDevice.h:

(WebCore::MockDisplayProperties::encode const):

  • platform/network/HTTPHeaderMap.h:

(WebCore::HTTPHeaderMap::CommonHeader::encode const):
(WebCore::HTTPHeaderMap::CommonHeader::decode):

  • testing/MockWebAuthenticationConfiguration.h:

(WebCore::MockWebAuthenticationConfiguration::HidConfiguration::decode):
(WebCore::MockWebAuthenticationConfiguration::NfcConfiguration::decode):

  • workers/service/ServiceWorkerContextData.h:

(WebCore::ServiceWorkerContextData::decode):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

Source/WebKit:

  • GPUProcess/media/TextTrackPrivateRemoteConfiguration.h:

(WebKit::TextTrackPrivateRemoteConfiguration::encode const):

  • GPUProcess/media/TrackPrivateRemoteConfiguration.h:

(WebKit::TrackPrivateRemoteConfiguration::encode const):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • Platform/IPC/Decoder.h:

(IPC::Decoder::decode):
(IPC::Decoder::operator>>):

  • Make use of std::underlying_type_t<>.

(IPC::Decoder::decodeEnum): Delete.

  • Replace with calls to decode().
  • Platform/IPC/Encoder.h:

(IPC::Encoder::operator<<):
(IPC::Encoder::encode):

  • Make use of WTF::enumToUnderlyingType<>.

(IPC::Encoder::encodeEnum): Delete.

  • Replace with calls to operator<<().
  • Shared/Cocoa/ArgumentCodersCocoa.mm:

(IPC::decodeObject):

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::encode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::encode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::decode):

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::encode const):
(WebKit::ContextMenuContextData::decode):

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/PlatformPopupMenuData.cpp:

(WebKit::PlatformPopupMenuData::encode const):
(WebKit::PlatformPopupMenuData::decode):

  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode const):
(WebKit::PluginProcessCreationParameters::decode):

  • Shared/PrintInfo.cpp:

(WebKit::PrintInfo::encode const):
(WebKit::PrintInfo::decode):

  • Shared/RTCPacketOptions.cpp:

(WebKit::RTCPacketOptions::encode const):
(WebKit::RTCPacketOptions::decode):

  • Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerCreationProperties::decode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):

  • Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateNode>::encode):
(ArgumentCoder<RequestedScrollData>::encode):
(ArgumentCoder<RequestedScrollData>::decode):
(WebKit::RemoteScrollingCoordinatorTransaction::decode):

  • Shared/SessionState.cpp:

(WebKit::HTTPBody::Element::encode const):
(WebKit::HTTPBody::Element::decode):
(WebKit::PageState::encode const):
(WebKit::PageState::decode):

  • Shared/TouchBarMenuItemData.cpp:

(WebKit::TouchBarMenuItemData::encode const):
(WebKit::TouchBarMenuItemData::decode):

  • Shared/UserData.cpp:

(WebKit::UserData::encode):
(WebKit::UserData::decode):

  • Shared/WebContextMenuItemData.cpp:

(WebKit::WebContextMenuItemData::encode const):
(WebKit::WebContextMenuItemData::decode):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<LinearTimingFunction>::encode):
(IPC::ArgumentCoder<CubicBezierTimingFunction>::encode):
(IPC::ArgumentCoder<CubicBezierTimingFunction>::decode):
(IPC::ArgumentCoder<StepsTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<PluginInfo>::encode):
(IPC::ArgumentCoder<PluginInfo>::decode):
(IPC::ArgumentCoder<ProtectionSpace>::encode):
(IPC::ArgumentCoder<ProtectionSpace>::decode):
(IPC::ArgumentCoder<Credential>::encode):
(IPC::ArgumentCoder<Credential>::decode):
(IPC::ArgumentCoder<Cursor>::encode):
(IPC::ArgumentCoder<Cursor>::decode):
(IPC::ArgumentCoder<ResourceError>::encode):
(IPC::ArgumentCoder<ResourceError>::decode):
(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):
(IPC::ArgumentCoder<CompositionUnderline>::encode):
(IPC::ArgumentCoder<CompositionUnderline>::decode):
(IPC::ArgumentCoder<FileChooserSettings>::encode):
(IPC::ArgumentCoder<FileChooserSettings>::decode):
(IPC::ArgumentCoder<TextCheckingRequestData>::encode):
(IPC::ArgumentCoder<TextCheckingRequestData>::decode):
(IPC::ArgumentCoder<TextCheckingResult>::encode):
(IPC::ArgumentCoder<TextCheckingResult>::decode):
(IPC::ArgumentCoder<UserStyleSheet>::encode):
(IPC::ArgumentCoder<UserStyleSheet>::decode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::encode):
(IPC::ArgumentCoder<ScrollableAreaParameters>::decode):
(IPC::ArgumentCoder<FilterOperation>::encode):
(IPC::decodeFilterOperation):
(IPC::ArgumentCoder<FontAttributes>::encode):
(IPC::ArgumentCoder<FontAttributes>::decode):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::encode):
(IPC::ArgumentCoder<WebCore::SerializedPlatformDataCueValue>::decode):

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPopupItem.cpp:

(WebKit::WebPopupItem::encode const):
(WebKit::WebPopupItem::decode):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebsiteData/WebsiteData.cpp:

(WebKit::WebsiteData::Entry::encode const):
(WebKit::WebsiteData::Entry::decode):

  • Shared/curl/WebCoreArgumentCodersCurl.cpp:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
(IPC::ArgumentCoder<ProtectionSpace>::encodePlatformData):
(IPC::ArgumentCoder<ProtectionSpace>::decodePlatformData):

  • Shared/glib/InputMethodState.cpp:

(WebKit::InputMethodState::encode const):
(WebKit::InputMethodState::decode):

  • Shared/glib/UserMessage.cpp:

(WebKit::UserMessage::encode const):
(WebKit::UserMessage::decode):

  • Shared/mac/ColorSpaceData.mm:

(WebKit::ColorSpaceData::encode const):
(WebKit::ColorSpaceData::decode):

  • Shared/mac/SecItemRequestData.cpp:

(WebKit::SecItemRequestData::encode const):
(WebKit::SecItemRequestData::decode):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):
(IPC::ArgumentCoder<WebCore::CertificateInfo>::encode):
(IPC::ArgumentCoder<WebCore::CertificateInfo>::decode):

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<SoupNetworkProxySettings>::encode):
(IPC::ArgumentCoder<SoupNetworkProxySettings>::decode):

  • WebProcess/GPU/media/RemoteMediaPlayerState.h:

(WebKit::RemoteMediaPlayerState::encode const):
(WebKit::RemoteMediaPlayerState::decode):

  • WebProcess/Network/NetworkProcessConnectionInfo.h:

(WebKit::NetworkProcessConnectionInfo::decode):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::Parameters::encode const):
(WebKit::Plugin::Parameters::decode):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::KeyframeValue::encode const):
(WebKit::PlatformCAAnimationRemote::KeyframeValue::decode):
(WebKit::PlatformCAAnimationRemote::Properties::encode const):
(WebKit::PlatformCAAnimationRemote::Properties::decode):

7:01 PM Changeset in webkit [262993] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

[iPadOS] Focusing selects and color inputs should not bring up the software keyboard
https://bugs.webkit.org/show_bug.cgi?id=213149
<rdar://problem/64312450>

Reviewed by Darin Adler.

Source/WebKit:

After <trac.webkit.org/r261658>, we now opt into bringing up the software keyboard when focusing color inputs
and select elements. This is due to the changes in -_shouldShowAutomaticKeyboardUIIgnoringInputMode, which
were intended to make us return NO for date and time inputs, but also unintentionally makes us return YES
on iPadOS.

This patch fixes the bug by returning !WebKit::currentUserInterfaceIdiomIsPad() instead, and additionally
preserves the existing behavior of now showing a color picker for <input type="color" readonly> on iPhone.

Test: fast/forms/ios/ipad/select-should-not-bring-up-software-keyboard.html

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView becomeFirstResponderForWebView]):
(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView _shouldShowAutomaticKeyboardUIIgnoringInputMode]):
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

LayoutTests:

Add a new layout test.

  • fast/forms/ios/ipad/select-should-not-bring-up-software-keyboard-expected.txt: Added.
  • fast/forms/ios/ipad/select-should-not-bring-up-software-keyboard.html: Added.
6:15 PM Changeset in webkit [262992] by ysuzuki@apple.com
  • 3 edits
    1 add in trunk

[JSC] el(Greek) characters' upper-case conversion is locale-sensitive
https://bugs.webkit.org/show_bug.cgi?id=213155
<rdar://problem/55018467>

Reviewed by Darin Adler.

JSTests:

  • stress/intl-el-case.js: Added.

(shouldBe):

Source/JavaScriptCore:

CLDR defines 4 locales which has language-sensitive case conversions. "az", "el", "lt", and "tr", where,

az = Azerbaijani
el = Greek
lt = Lithuanian
tr = Turkish

We can ensure it easily like this.

  1. Download CLDR data
  2. ls common/transforms/*Upper.xml

common/transforms/az-Upper.xml
common/transforms/el-Upper.xml
common/transforms/lt-Upper.xml
common/transforms/tr-Upper.xml

And ECMA-402 String.prototype.{toLocaleLowerCase,toLocaleUpperCase} requires these locales are listed as availableLocales.

  1. Let availableLocales be a List with language tags that includes the languages for which the Unicode Character Database contains language sensitive case mappings. Implementations may add additional language tags if they support case mapping for additional locales.

https://tc39.es/ecma402/#sup-string.prototype.tolocalelowercase

This patch adds "el" to our maintained availableLocales list. Previously we only had "az", "lt", and "tr".

  • runtime/StringPrototype.cpp:

(JSC::toLocaleCase):
(JSC::stringProtoFuncToLocaleUpperCase):

5:22 PM Changeset in webkit [262991] by keith_miller@apple.com
  • 17 edits
    1 delete in trunk

Tests expecting a crash should use a signal handler in the JSC CLI process
https://bugs.webkit.org/show_bug.cgi?id=212479

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/ensure-crash.js:
  • stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition-debug.js:
  • stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-bad-transition.js:
  • stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior-debug.js: Removed.
  • stress/incorrect-put-could-generate-invalid-ic-but-still-not-causing-bad-behavior.js:
  • stress/incorrect-put-could-generate-invalid-ic-involving-dictionary-flatten-debug.js:

Source/JavaScriptCore:

Have the -s option use WTF::Signals and make sure it adds breakpoint catching
as well.

  • jsc.cpp:

(printUsageStatement):
(CommandLine::parseArguments):

  • tools/SigillCrashAnalyzer.cpp:

(JSC::installCrashHandler):

Source/WTF:

Add signals for floating point exceptions and breakpoints. There's a
note for breakpoints that explains how using them in the same process
as lldb will cause badness. Fortunately, the only place I plan on using
the breakpoint handler is to check for tests where crashing is expected.

  • wtf/threads/Signals.cpp:

(WTF::fromMachException):
(WTF::toMachMask):

  • wtf/threads/Signals.h:

(WTF::toSystemSignal):
(WTF::fromSystemSignal):

Tools:

Crashing tests should now exit with status zero.

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitruby/jsc-stress-test-writer-default.rb:
  • Scripts/webkitruby/jsc-stress-test-writer-playstation.rb:
  • Scripts/webkitruby/jsc-stress-test-writer-ruby.rb:
5:06 PM Changeset in webkit [262990] by Alan Coon
  • 5 edits in branches/safari-609-branch

Cherry-pick r262978. rdar://problem/64315997

Stop allowing pages served over HTTPS with "Cache-Control: no-store" into the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=213147
<rdar://problem/64249683>

Reviewed by Geoffrey Garen.

Source/WebCore:

Stop allowing pages served over HTTPS with "Cache-Control: no-store" into the back/forward cache.
This is a revert of r250437 due to push back from Web developers.

No new tests, updated existing tests.

  • history/BackForwardCache.cpp: (WebCore::canCacheFrame):

LayoutTests:

Update layout test coverage.

  • http/tests/navigation/https-in-page-cache-expected.txt:
  • http/tests/navigation/resources/https-in-page-cache-1.php:

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

5:06 PM Changeset in webkit [262989] by Alan Coon
  • 5 edits
    1 add in branches/safari-609-branch

Cherry-pick r262707. rdar://problem/64226888

File URLs with hostnames are misleading
https://bugs.webkit.org/show_bug.cgi?id=212739
<rdar://problem/63754917>

Reviewed by Alex Christensen.

Source/WebCore:

Showing a file URL like file://example.org/test is misleading to users.
To prevent this, we just do a redirection to the same file URL with an empty host.
Remove the port at the same time.
Covered by added API test.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::willSendRequest):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/open-window-with-file-url-with-host.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm: (TEST):

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

5:06 PM Changeset in webkit [262988] by Alan Coon
  • 2 edits in branches/safari-609-branch/Source/WebKit

Cherry-pick r262508. rdar://problem/62977672

[iOS] Hide the PiP button in fullscreen mode if PiP is disabled in preferences
https://bugs.webkit.org/show_bug.cgi?id=212699
<rdar://problem/60391437>

Reviewed by Eric Carlson.

In r260474, we hid the PiP button in fullscreen when PiP was unsupported on the
current device; we must also hide the PiP button when clients have disabled PiP
via preferences.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm: (-[WKFullScreenViewController videoControlsManagerDidChange]):

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

4:55 PM Changeset in webkit [262987] by Andres Gonzalez
  • 4 edits in trunk/LayoutTests

Re-write accessibility/form-control-value-settable.html so that it can pass in both isolated tree mode on and off.
https://bugs.webkit.org/show_bug.cgi?id=213150

Reviewed by Chris Fleizach.

In isolated tree mode, it is necessary to setTimeout after setting the
focus so that the isolated tree can be updated.

  • accessibility/form-control-value-settable.html:
  • platform/gtk/accessibility/form-control-value-settable-expected.txt:
  • platform/mac/accessibility/form-control-value-settable-expected.txt:
4:45 PM Changeset in webkit [262986] by Alan Coon
  • 8 edits in branches/safari-609-branch/Source

Versioning.

WebKit-609.3.4

4:32 PM Changeset in webkit [262985] by achristensen@apple.com
  • 12 edits in trunk

Make API tests tolerant of our relatively new use of WebPageProxy::preconnectTo
https://bugs.webkit.org/show_bug.cgi?id=213144

Reviewed by Geofferey Garen.

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:didCompleteWithError:]):
(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
(WebKit::NetworkSessionCocoa::taskServerConnectionSucceeded):
(WebKit::NetworkSessionCocoa::taskReceivedBytes): Deleted.
Fix our logic that remembers successful client certificate connections.
If a task completes with no error (like a preconnect task does), consider that a successful connection.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):
Remove the check to not preconnect to loopback addresses.
This was making our tests different than the real internet and prevented me from landing a perfectly good test
in https://bugs.webkit.org/show_bug.cgi?id=213109

Tools:

Most changes are straightforward moving to HTTPServer, which is more tolerant of different numbers of connections except these two:

The ResourceLoadDelegate.Challenge API test was checking the output of _WKResourceLoadDelegate.didReceiveChallenge
by using a server trust challenge. Now that preconnecting happens, the server trust evaluation would happen with a
PreconnectTask, not the main resource load. The WKNavigationDelegate still gets the challenge and there is no problem
here, but in order to continue to test _WKResourceLoadDelegate.didReceiveChallenge I use a basic authentication challenge
instead of a server trust evaluation.

The WebKit.FastServerTrust API test now has two failed attempts (one from the preconnect attempt, one from the main resource load attempt),
but only when _strictTrustEvaluate is not available.

  • TestWebKitAPI/TCPServer.cpp:

(TestWebKitAPI::TCPServer::TCPServer):

  • TestWebKitAPI/TCPServer.h:
  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/cocoa/HTTPServer.h:
  • TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::HTTPServer::respondWithChallengeThenOK):

3:38 PM Changeset in webkit [262984] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Preferences are not being observed if the process pool is being created after activation
https://bugs.webkit.org/show_bug.cgi?id=213145

Reviewed by Brent Fulgham.

If the app is creating the Web process pool after being activated, preferences will not be observed until the app is being backgrounded
and then foregrounded again, since the preference observer is initialized when handling the app activation notification.

No new tests, since an API test would make sense in this case, but API tests aren't run on iOS.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

3:22 PM Changeset in webkit [262983] by Alan Coon
  • 8 edits in branches/safari-610.1.15.51-branch/Source

Versioning 610.1.15.51.4.

3:17 PM Changeset in webkit [262982] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.51.3

Tag Safari-610.1.15.51.3.

3:16 PM Changeset in webkit [262981] by Alan Coon
  • 8 edits in branches/safari-610.1.15.51-branch/Source

Versioning.

3:15 PM Changeset in webkit [262980] by Alan Coon
  • 1 copy in tags/Safari-610.1.15.50.4

Tag Safari-610.1.15.50.4.

3:13 PM Changeset in webkit [262979] by Alexey Shvayka
  • 7 edits in trunk

AsyncGenerator should await "return" completions
https://bugs.webkit.org/show_bug.cgi?id=212774

Reviewed by Ross Kirsling.

JSTests:

With this change, async generator stress tests now pass in Chrome and Firefox (tested manually).

  • stress/async-iteration-yield-star-interface.js:
  • stress/async-iteration-yield-star.js:
  • test262/expectations.yaml: Mark 8 test cases as passing.

Source/JavaScriptCore:

This patch fixes 2 spec discrepancies, observable with async generators if the
value of "return" completion is a Promise, aligning JSC with V8 and SpiderMonkey.

  • builtins/AsyncGeneratorPrototype.js:

(onFulfilled):
This change implements step 8 of AsyncGeneratorYield [1], that is executed after
step 15 of AsyncGeneratorResumeNext [2] (implemented as @doAsyncGeneratorBodyCall).
We are safe to rely on AsyncGeneratorState? being "suspendedYield" (set in
step 6 of AsyncGeneratorYield [1]) instead of adding extra field to AsyncGenerator:
AsyncGeneratorResumeNext [2] does not overwrite "suspendedYield" state.
This change fixes most of test262 cases.

[1]: https://tc39.es/ecma262/#sec-asyncgeneratoryield
[2]: https://tc39.es/ecma262/#sec-asyncgeneratorresumenext

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDelegateYield):
This change implements step 7.c.iii.1 of yield* runtime semantics [3], that is
observable only if Value? has userland "then" getter. Awaited result is discarded.
This change fixes async-generator/yield-star-return-then-getter-ticks.js test262 case.

[3]: https://tc39.es/ecma262/#sec-generator-function-definitions-runtime-semantics-evaluation

3:05 PM Changeset in webkit [262978] by Chris Dumez
  • 5 edits in trunk

Stop allowing pages served over HTTPS with "Cache-Control: no-store" into the back/forward cache
https://bugs.webkit.org/show_bug.cgi?id=213147
<rdar://problem/64249683>

Reviewed by Geoffrey Garen.

Source/WebCore:

Stop allowing pages served over HTTPS with "Cache-Control: no-store" into the back/forward cache.
This is a revert of r250437 due to push back from Web developers.

No new tests, updated existing tests.

  • history/BackForwardCache.cpp:

(WebCore::canCacheFrame):

LayoutTests:

Update layout test coverage.

  • http/tests/navigation/https-in-page-cache-expected.txt:
  • http/tests/navigation/resources/https-in-page-cache-1.php:
2:58 PM Changeset in webkit [262977] by Jason_Lawrence
  • 2 edits in trunk/Source/WTF

Unreviewed, reverting r262904.

This commit broke a test on Mac wk1 Debug.

Reverted changeset:

"[Cocoa] Build callOnMainThread on WTF::RunLoop rather than on
a timer"
https://bugs.webkit.org/show_bug.cgi?id=213063
https://trac.webkit.org/changeset/262904

2:03 PM Changeset in webkit [262976] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: [ Mac wk1 Debug ] media/remoteplayback-target-availability.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213146

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:02 PM Changeset in webkit [262975] by Diego Pino Garcia
  • 4 edits in trunk/Tools

[buildbot] [GTK][WPE] Move WebDriver test to own bot
https://bugs.webkit.org/show_bug.cgi?id=212527

Reviewed by Carlos Alberto Lopez Perez.

Move 'webdriver-test' step from GTK Release and GTK Debug test bots
to separated bots.

For bots that require a Wayland display (WPE and GTK Wayland),
'webdriver-test' step is run on the corresponding general test bot,
since it's not possible at the moment to run tests that require a
Wayland display in a bot set as a container.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/factories.py:

(TestFactory.init):
(TestWebDriverFactory):
(TestWebDriverFactory.init):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
1:56 PM Changeset in webkit [262974] by Ross Kirsling
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, address Darin's feedback on r262890.

  • runtime/IntlObject.cpp:

(JSC::addScriptlessLocaleIfNeeded):
Use != instead of < for clarity.

1:52 PM Changeset in webkit [262973] by Adrian Perez de Castro
  • 8 edits in trunk

Build is broken with EVENT_LOOP_TYPE=GLib
https://bugs.webkit.org/show_bug.cgi?id=212987

Reviewed by Konstantin Tokarev.

.:

  • Source/cmake/OptionsJSCOnly.cmake: Add gio-unix as a required component of the GLib

package, as it is needed for the remote inspector support with EVENT_LOOP_TYPE=GLib.

Source/JavaScriptCore:

  • PlatformJSCOnly.cmake: Add sources needed to support the remote inspector to

JavaScriptCore_SOURCES.

Source/WTF:

  • wtf/CurrentTime.cpp: Make sure that <time.h> is included to get clock_gettime() and

friends defined when USE_GLIB is disabled.

  • wtf/PlatformJSCOnly.cmake: Use FileSystemGLib instead of FileSystemPOSIX when

EVENT_LOOP_TYPE=GLib is set, add missing sources needed when ENABLE_REMOTE_INSPECTOR
is set.

  • wtf/glib/RunLoopSourcePriority.h: Use the same list of priorities for WPE and JSCOnly.
1:36 PM Changeset in webkit [262972] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Stop to use ActiveDOMObject::setPendingActivity() for Modules/fetch
https://bugs.webkit.org/show_bug.cgi?id=213037

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-12
Reviewed by Youenn Fablet.

By ActiveDOMObject's comments,
these methods should be replaced with using makePendingActivity().

JSFetchRequest/JSFetchResponse (as derived class of JSDOMWrapper) hold
FetchRequest/FetchResponse, and they have FetchBodyOwner
as a base class and keep alive it. We can replace
setPendingActivity() calling from FetchBodyOwner.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::finishBlobLoading):
(WebCore::FetchBodyOwner::virtualHasPendingActivity const):

  • Modules/fetch/FetchBodyOwner.h:
  • Modules/fetch/FetchBodySource.cpp:

(WebCore::FetchBodySource::setActive):
(WebCore::FetchBodySource::setInactive):

  • Modules/fetch/FetchBodySource.h:
12:47 PM Changeset in webkit [262971] by commit-queue@webkit.org
  • 18 edits in trunk

[Curl] Implement functions to use ResourceLoadStatistics.
https://bugs.webkit.org/show_bug.cgi?id=207692

Patch by Takashi Komori <Takashi.Komori@sony.com> on 2020-06-12
Reviewed by Don Olmstead.

Implement functions which are required to implement ResourceLoadStatistics for Curl port.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/

  • CMakeLists.txt:
  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::openDatabase):
(WebCore::CookieJarDB::setCookie):
(WebCore::CookieJarDB::allDomains):
(WebCore::CookieJarDB::deleteCookiesForHostname):

  • platform/network/curl/CookieJarDB.h:
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):

Source/WebKit:

In NetworkDataTaskCurl.cpp we check if we should block cookies and block if needed.

Tests: http/tests/resourceLoadStatistics/

  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::create):

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::createCurlRequest):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::blockCookies):
(WebKit::NetworkDataTaskCurl::unblockCookies):
(WebKit::NetworkDataTaskCurl::shouldBlockCookies):
(WebKit::NetworkDataTaskCurl::isThirdPartyRequest):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:
  • NetworkProcess/curl/NetworkSessionCurl.cpp:

(WebKit::NetworkSessionCurl::NetworkSessionCurl):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreGetAllStorageAccessEntries):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

Tools:

Tests: http/tests/resourceLoadStatistics/

  • WebKitTestRunner/TestController.cpp:

(WTR::GetAllStorageAccessEntriesCallbackContext::GetAllStorageAccessEntriesCallbackContext):
(WTR::getAllStorageAccessEntriesCallback):
(WTR::TestController::getAllStorageAccessEntries):

LayoutTests:

Tests: http/tests/resourceLoadStatistics/

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
12:38 PM Changeset in webkit [262970] by Russell Epstein
  • 1 copy in tags/Safari-609.3.3

Tag Safari-609.3.3.

12:36 PM Changeset in webkit [262969] by Russell Epstein
  • 1 delete in tags/Safari-609.3.3

Delete tag.

12:31 PM Changeset in webkit [262968] by Russell Epstein
  • 1 copy in tags/Safari-609.3.3

Tag Safari-609.3.3.

12:25 PM Changeset in webkit [262967] by Ryan Haddad
  • 2 edits in branches/safari-609-branch/Tools

Cherry-pick r261243. rdar://problem/61953702

REGRESSION (r260278): TestWebKitAPI.Fullscreen.Delegate is timing out on macOS bots
https://bugs.webkit.org/show_bug.cgi?id=210676

Unreviewed test gardening.

  • TestWebKitAPI/Tests/WebKitCocoa/FullscreenAlert.mm: (TestWebKitAPI::TEST): Skip the test to get the bots to green.

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

12:24 PM Changeset in webkit [262966] by Andres Gonzalez
  • 5 edits in trunk/Source/WebCore

In isolated tree mode 2, AXIsolatedObject::setChildrenIDs should be called only on secondary thread.
https://bugs.webkit.org/show_bug.cgi?id=213124

Reviewed by Chris Fleizach.

Covered by existing tests.

  • AXIsolatedTree::createSubtree was calling AXIsolatedObject::setChildrenIDs

which should be called only on the secondary thread. Now it is queueing
the children update under lock.

  • The unsigned int range for object IDs was being overrun for large

number of objects like in the case of the sample page in <rdar://problem/59331146>.
Increased the size of AXID to size_t.

  • Better handle the case of invalid object IDs, although this needs

more work, since we should never encounter this case.

  • accessibility/AccessibilityObjectInterface.h: AXID are now size_t instead of unsigned ints.
  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::AXIsolatedObject):
(WebCore::AXIsolatedObject::setChildrenIDs): Inlined in header.

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

(WebCore::AXIsolatedTree::createSubtree):

12:14 PM Changeset in webkit [262965] by Russell Epstein
  • 1 delete in tags/Safari-609.3.3

Delete tag.

12:13 PM Changeset in webkit [262964] by Russell Epstein
  • 1 copy in tags/Safari-609.3.3

Tag Safari-609.3.3.

11:53 AM Changeset in webkit [262963] by ysuzuki@apple.com
  • 3 edits in trunk/LayoutTests

[ Mojave wk2 Release ] js/dom/unhandled-promise-rejection-console-no-report.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=212851

Reviewed by Darin Adler.

This test is wrong since both onunhandledrejection and setTimeout are driven by macro-tasks.
There is no ordering between them so they have race condition, and this race condition makes this
the test flaky. We should fix the test. This patch removes the dependency to setTimeout.

  • js/dom/unhandled-promise-rejection-console-no-report-expected.txt:
  • js/dom/unhandled-promise-rejection-console-no-report.html:
11:40 AM Changeset in webkit [262962] by aestes@apple.com
  • 5 edits in trunk/Source/WebCore

FileInputType should use WeakPtr for FileListCreator lambdas
https://bugs.webkit.org/show_bug.cgi?id=213130
<rdar://problem/64276591>

Reviewed by David Kilzer.

FileInputType::filesChosen was passing a completion handler to FileListCreator::create that
captured |this|. If the FileListCreator instance still existed when |this| was destroyed,
FileInputType::~FileInputType would clear the captured |this| by calling
FileListCreator::clear. This can be simplified by having the FileListCreator completion
handler capture a WeakPtr to |this|.

Also, when FileInputType::allowsDirectories is false, m_fileListCreator would not be
properly cleared after creating the file list. The FileListCreator completion handler would
set m_fileListCreator to nullptr, but would be executed *before* FileListCreator::create
returned and set m_fileListCreator to the newly-created FileListCreator object. Fixed this
by having FileListCreator::create execute the completion handler immediately and return
nullptr in cases where a FileListCreator does not need to be created for directory
resolution.

Covered by existing tests.

  • html/FileInputType.cpp:

(WebCore::FileInputType::~FileInputType):
(WebCore::FileInputType::filesChosen):

  • html/FileInputType.h:
  • html/FileListCreator.cpp:

(WebCore::createFileList):
(WebCore::FileListCreator::create):
(WebCore::FileListCreator::FileListCreator):
(WebCore::FileListCreator::createFileList):

  • html/FileListCreator.h:

(WebCore::FileListCreator::create): Deleted.

11:24 AM Changeset in webkit [262961] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

Double tap to zoom out doesn't work after upgrading to iOS 13
https://bugs.webkit.org/show_bug.cgi?id=205158
<rdar://problem/205158>

Unreviewed. Make the test that was previously added into a test that can be run on iPad instead
of having to be skipped.

  • fast/events/ios/fast-click-double-tap-to-zoom-in-on-text-and-then-again-to-zoom-out.html:
  • platform/ipad/TestExpectations:
11:22 AM Changeset in webkit [262960] by Antti Koivisto
  • 3 edits
    2 adds in trunk

REGRESSION (r262618): Very slow typing in a github issue
https://bugs.webkit.org/show_bug.cgi?id=213137
<rdar://problem/64214117>

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/media/media-query-keyframes-resolution-count.html

If a stylesheet had multiple media queries and one of them forced static resolution
(by containing @keyframes rule for example) we would end up reseting the style multiple
times and forcing unneeded style resolutions.

  • style/RuleSet.cpp:

(WebCore::Style::RuleSet::evaluteDynamicMediaQueryRules):

We can't bail out from the loop. Even though the result is known we still need to loop to
save the evaluation result for all media queries.

LayoutTests:

  • fast/media/media-query-keyframes-resolution-count-expected.txt: Added.
  • fast/media/media-query-keyframes-resolution-count.html: Added.
11:03 AM Changeset in webkit [262959] by graouts@webkit.org
  • 4 edits
    2 adds in trunk

Double tap to zoom out doesn't work after upgrading to iOS 13
https://bugs.webkit.org/show_bug.cgi?id=205158
<rdar://problem/205158>

Reviewed by Wenson Hsieh.

Source/WebKit:

Test: fast/events/ios/fast-click-double-tap-to-zoom-in-on-text-and-then-again-to-zoom-out.html

In order to determine whether a significant zoom to happen, we should use the current page scale
factor and not the initial page scale factor.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _handleSmartMagnificationInformationForPotentialTap:renderRect:fitEntireRect:viewportMinimumScale:viewportMaximumScale:nodeIsRootLevel:]):

LayoutTests:

Add a test that double taps to zoom in and then double taps to zoom out. This test would fail to zoom
out prior to this source change. This test is skipped on iPad since desktop-class browsing mode has
heuristics that would prevent the second double-tap to zoom out.

  • fast/events/ios/fast-click-double-tap-to-zoom-in-on-text-and-then-again-to-zoom-out-expected.txt: Added.
  • fast/events/ios/fast-click-double-tap-to-zoom-in-on-text-and-then-again-to-zoom-out.html: Added.
  • platform/ipad/TestExpectations:
10:40 AM Changeset in webkit [262958] by Jonathan Bedard
  • 6 edits in trunk/Tools

Support building test runners for watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=213128
<rdar://problem/64298006>

Reviewed by Tim Horton.

  • DumpRenderTree/mac/Configurations/Base.xcconfig: Link against framework stubs.
  • DumpRenderTree/mac/Configurations/DumpRenderTree.xcconfig: Apply iOS rules to all embedded sdks.
  • WebKitTestRunner/Configurations/Base.xcconfig: Link against framework stubs.
  • WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig: Apply iOS rules to all embedded sdks.
  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig: Use watchOS entitlements for tvOS.
10:39 AM Changeset in webkit [262957] by Jonathan Bedard
  • 7 edits in trunk/Tools

TestWebKitAPI: Build for watchOS and tvOS
https://bugs.webkit.org/show_bug.cgi?id=213127
<rdar://problem/64297979>

Reviewed by Tim Horton.

  • TestWebKitAPI/Configurations/Base.xcconfig: Link against framework stubs.
  • TestWebKitAPI/Configurations/InjectedBundle.xcconfig: Apply iOS rules to all embedded sdks.
  • TestWebKitAPI/Configurations/TestWTF.xcconfig: Ditto.
  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig: Link against framework stubs.
  • TestWebKitAPI/Configurations/WebProcessPlugIn.xcconfig: Apply iOS rules to all embedded sdks.
  • TestWebKitAPI/config.h: WatchOS uses SSL.
10:29 AM Changeset in webkit [262956] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: modify initial content localized string for Inspector Bootstrap Script
https://bugs.webkit.org/show_bug.cgi?id=213134

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async createBootstrapScript):

  • Localizations/en.lproj/localizedStrings.js:
9:30 AM Changeset in webkit [262955] by Jason_Lawrence
  • 2 edits in trunk/LayoutTests

REGRESSION: (r262397): [ Mac wk2 ] inspector/canvas/create-context-webgpu.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=213123

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:20 AM Changeset in webkit [262954] by Lauro Moura
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Remove some duplicated entries and add missing bug info

Unreviewed test gardening

Unified the unsuported tests entries for GTK and WPE and added some
entries for the skipped top level tests.

  • platform/glib/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
9:14 AM Changeset in webkit [262953] by commit-queue@webkit.org
  • 23 edits
    1 delete in trunk

LayoutTests/imported/w3c:
Change FileReader.error to DOMException from obsoleted FileError
https://bugs.webkit.org/show_bug.cgi?id=213117

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-12
Reviewed by Chris Dumez.

  • web-platform-tests/FileAPI/historical.https-expected.txt: FileError should not be exposed.

Source/WebCore:
FileReader.error should be DOMException now
https://bugs.webkit.org/show_bug.cgi?id=213117

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-12
Reviewed by Chris Dumez.

By the [lastest spec](https://w3c.github.io/FileAPI/),
FileReader.error should return DOMException
and this remove obsoleted FileError from exposed interfaces.

Internally, our codebase still depends on fileapi/FileError.h
in everywhere. I'll plan to create a patch to refactor them.

  • CMakeLists.txt:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.order:
  • WebCore.xcodeproj/project.pbxproj:
  • fileapi/FileError.idl: Removed.
  • fileapi/FileReader.cpp:

(WebCore::FileReader::abort):
(WebCore::FileReader::didFail):

  • fileapi/FileReader.h:
  • fileapi/FileReader.idl:
  • fileapi/FileReaderSync.cpp:

(WebCore::FileReaderSync::errorCodeToException):

  • fileapi/FileReaderSync.h:

LayoutTests:
Change FileReader.error to DOMException from obsoleted FileError
https://bugs.webkit.org/show_bug.cgi?id=213117

Patch by Tetsuharu Ohzeki <Tetsuharu Ohzeki> on 2020-06-12
Reviewed by Chris Dumez.

By the [lastest spec](https://w3c.github.io/FileAPI/),
FileReader.error should return DOMException
and this change remove FileError from exposed interfaces.

  • fast/files/file-reader-abort-expected.txt:
  • fast/files/file-reader-abort-using-open-panel-expected.txt:
  • fast/files/read-blob-async-expected.txt:
  • fast/files/read-file-async-expected.txt:
  • fast/files/workers/worker-read-blob-async-expected.txt:
  • fast/files/workers/worker-read-file-async-expected.txt: Update to DOMException error code from FileError error code.
  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/historical.https-expected.txt: FileError should not be exposed.
9:09 AM Changeset in webkit [262952] by commit-queue@webkit.org
  • 3 edits
    2 deletes in trunk/Tools

Unreviewed, reverting r262942.
https://bugs.webkit.org/show_bug.cgi?id=213132

Broke gst-libav due to dav1d ABI bump

Reverted changeset:

"[Flatpak SDK] Add libavif"
https://bugs.webkit.org/show_bug.cgi?id=212964
https://trac.webkit.org/changeset/262942

8:55 AM Changeset in webkit [262951] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[LFC][TFC] Add support for min/max-width
https://bugs.webkit.org/show_bug.cgi?id=213111

Reviewed by Antti Koivisto.

Source/WebCore:

Apply min/max-width to constrain the available width for the table content.

Test: fast/layoutformattingcontext/table-min-max-width-simple.html

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::computeWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::computedWidthAndMargin):

  • layout/blockformatting/BlockFormattingContext.h:
  • layout/blockformatting/tablewrapper/TableWrapperBlockFormattingContext.cpp:

(WebCore::Layout::TableWrapperBlockFormattingContext::computeWidthAndMarginForTableBox):

LayoutTests:

  • fast/layoutformattingcontext/table-min-max-width-simple-expected.html: Added.
  • fast/layoutformattingcontext/table-min-max-width-simple.html: Added.
8:48 AM Changeset in webkit [262950] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add WKUserScript initializer SPI with alternative names
https://bugs.webkit.org/show_bug.cgi?id=213096

Patch by Alex Christensen <achristensen@webkit.org> on 2020-06-12
Reviewed by Youenn Fablet.

And deprecate the existing ones so we can remove them soon.

  • UIProcess/API/Cocoa/WKUserScript.mm:

(-[WKUserScript _initWithSource:injectionTime:forMainFrameOnly:includeMatchPatternStrings:excludeMatchPatternStrings:associatedURL:contentWorld:deferRunningUntilNotification:]):

  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
8:45 AM Changeset in webkit [262949] by ysuzuki@apple.com
  • 1 edit
    1 add in trunk/JSTests

[JSC] Add sampling-profiler code-origin lookup test
https://bugs.webkit.org/show_bug.cgi?id=213108
<rdar://problem/52044072>

Reviewed by Saam Barati.

This is fixed by r262920. This patch just adds a test additionally.
We are keeping CallSiteIndex valid until corresponding JIT stub is destroyed.
This fixes SamplingProfiler too since SamplingProfiler also collects CallSiteIndex and gets corresponding CodeOrigin.
Since SamplingProfiler does this CallSiteIndex => CodeOrigin before running GC finalizer, validity of CallSiteIndex
should be kept correctly.

  • stress/sampling-profiler-code-origin.js: Added.

(let.oThrow.get f):
(foo):
(return.get f):
(f):

8:43 AM Changeset in webkit [262948] by Lauro Moura
  • 2 edits in trunk/WebDriverTests

[WebDriver][WPE] Add remaining WPE failures to expectations.

Unreviewed test gardening.

8:19 AM Changeset in webkit [262947] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Unreviewed. Fix GTK4 build

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSynthesizeKeyEvent):

7:40 AM Changeset in webkit [262946] by Antti Koivisto
  • 46 edits
    2 adds in trunk

Relative font size values (em) within CSS animations compound
https://bugs.webkit.org/show_bug.cgi?id=194749
<rdar://problem/48171898>

Reviewed by Antoine Quint.

Source/WebCore:

The em unit should be relative to the font size of the parent style when resolving 'font-size' property.
We weren't passing the parent style when resolving keyframes.

Test case by Scott Kellum.

Test: animations/keyframe-em-unit.html

  • style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForKeyframe):

  • style/StyleResolver.h:

(WebCore::Style::Resolver::overrideDocumentElementStyle const):
(WebCore::Style::Resolver::setOverrideDocumentElementStyle):
(WebCore::Style::Resolver::setParentElementStyleForKeyframes):

Add a way to pass the parent element style directly to the style resolver.
This should really be passed via the animation system like other context but that requires
lots of refactoring.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

Pass it.

LayoutTests:

  • animations/keyframe-em-unit-expected.html: Added.
  • animations/keyframe-em-unit.html: Added.
7:28 AM Changeset in webkit [262945] by weinig@apple.com
  • 15 edits in trunk

Document.currentScript does not work for SVGScriptElements
https://bugs.webkit.org/show_bug.cgi?id=213104

Reviewed by Yusuke Suzuki.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.currentScript-expected.txt:

Update test results after making currentScript work with SVGScriptElements.

  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden-meta.tentative.sub-expected.txt:
  • web-platform-tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative-expected.txt:

Update results. Not passing, but getting further.

Source/WebCore:

Updates results for existing tests.

  • WebCore.xcodeproj/project.pbxproj:

Add CurrentScriptIncrementer.h to the Xcode project as it was missing.

  • dom/CurrentScriptIncrementer.h:

(WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
(WebCore::CurrentScriptIncrementer::~CurrentScriptIncrementer):
Re-work using ScriptElement, removing the HTMLScriptElement checks. Also changes
scriptType check to explicitly check that against classic scripts, as they are
the only supported type, and if any types other than modules are added in the
future, we would not want this to change behavior.

  • dom/Document.cpp:

(WebCore::Document::pushCurrentScript):

  • dom/Document.h:

(WebCore::Document::currentScript const):
Use an Element, rather than an HTMLScriptElement for currentScript/currentScriptStack
so that either an HTMLScriptElement or an SVGScriptElement can be stored. Using a
ScriptElement would be possible, but would complicate the implementation unnecessarily
by requiring currentScript to have an additional checks before extracting the Element.
Variant<RefPtr<HTMLScriptElement>, RefPtr<SVGScriptElement>> could also have been used
but also would unnecessarily complicated the interface and caused more memory to be used.

  • dom/Document.idl:

Update interface to use Element rather HTMLScriptElement with a comment explaining why we
are not using HTMLOrSVGScriptElement but retaining the same observable behavior.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript):
(WebCore::ScriptElement::executeModuleScript):
Pass *this directly to CurrentScriptIncrementer to simplify implementation.

Source/WebKit:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp:

(webkit_dom_document_get_current_script):
Update to account for change in Document::currentScript() now returning an
Element* that can be either an HTMLScriptElement or an SVGScriptElement. To
keep API compatibility, only return non-null for HTMLScriptElements.

Source/WebKitLegacy/mac:

  • DOM/DOMDocument.mm:

(-[DOMDocument currentScript]):
Update to account for change in Document::currentScript() now returning an
Element* that can be either an HTMLScriptElement or an SVGScriptElement. To
keep API compatibility, only return non-null for HTMLScriptElements.

6:21 AM Changeset in webkit [262944] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK WebDriver tests after r262938

Ensure a valid title for backforward items in MiniBrowser, using the URL when the title is empty.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowCreateBackForwardMenu):

2:54 AM Changeset in webkit [262943] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak SDK] Update GTK4 to 3.98.5

Rubber-stamped by Carlos Alberto Lopez Perez.

  • buildstream/elements/sdk/gtk.bst:
2:24 AM Changeset in webkit [262942] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk/Tools

[Flatpak SDK] Add libavif
https://bugs.webkit.org/show_bug.cgi?id=212964

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-12
Reviewed by Carlos Alberto Lopez Perez.

  • buildstream/elements/freedesktop-sdk.bst:
  • buildstream/elements/sdk-platform.bst:
  • buildstream/elements/sdk/libavif.bst: Added.
  • buildstream/patches/fdo/0001-dav1d-Bump-to-0.7.0.patch: Added.
2:22 AM Changeset in webkit [262941] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

[Flatpak SDK] Add libkate
https://bugs.webkit.org/show_bug.cgi?id=212865

Patch by Philippe Normand <pnormand@igalia.com> on 2020-06-12
Reviewed by Carlos Alberto Lopez Perez.

The GStreamer kate decoder is required for some media/track tests being re-enabled in bug
120665.

  • buildstream/elements/sdk-platform.bst:
  • buildstream/elements/sdk/gst-plugins-bad.bst:
  • buildstream/elements/sdk/libkate.bst: Added.
1:49 AM Changeset in webkit [262940] by cturner@igalia.com
  • 2 edits
    1 add in trunk/Source/WebKit

[GTK] Add an internal API to run javascript without forced user gestures
https://bugs.webkit.org/show_bug.cgi?id=212969

Reviewed by Carlos Garcia Campos.

To be used by tests in a follow-up commit.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkitWebViewRunJavaScriptWithParams): Factor out the glue to run
JavaScript in the page.
(webkitWebViewRunJavascriptWithoutForcedUserGestures): Add a new
internal API for use by tests.
(webkit_web_view_run_javascript): Modified to use factored out
glue.

  • UIProcess/API/glib/WebKitWebViewInternal.h: Added. Place to keep

API test-specific internal APIs.

1:42 AM Changeset in webkit [262939] by Carlos Garcia Campos
  • 10 edits
    1 move
    1 add
    1 delete in trunk

[GTK4] Get MiniBrowser ready for GTK4
https://bugs.webkit.org/show_bug.cgi?id=210276

Reviewed by Adrian Perez de Castro.

.:

Bump GTK4 required version.

  • Source/cmake/OptionsGTK.cmake:

Tools:

Port MiniBrowser to GTK4. BrowserSearchBar has been renamed as BrowserSearchBox, because in GTK GtkSearchBar is
final class, so we derive from GtkBox and to be used as contents of a GtkSearchBar.

  • MiniBrowser/gtk/BrowserCellRendererVariant.c:

(browserCellRendererVariantCellRendererSnapshot):
(browser_cell_renderer_variant_class_init):

  • MiniBrowser/gtk/BrowserCellRendererVariant.h:
  • MiniBrowser/gtk/BrowserSearchBar.c: Removed.
  • MiniBrowser/gtk/BrowserSearchBox.c: Added.

(setFailedStyleForEntry):
(doSearch):
(searchNext):
(searchPrevious):
(searchEntryMenuIconPressedCallback):
(searchEntryClearIconReleasedCallback):
(searchEntryChangedCallback):
(searchEntryActivatedCallback):
(searchPreviousButtonCallback):
(searchNextButtonCallback):
(searchMenuCheckButtonToggledCallback):
(findControllerFailedToFindTextCallback):
(findControllerFoundTextCallback):
(browserSearchBoxFinalize):
(browserSearchBoxDispose):
(browserSearchBoxSizeAllocate):
(browser_search_box_class_init):
(browser_search_box_new):
(browser_search_box_get_entry):

  • MiniBrowser/gtk/BrowserSearchBox.h: Renamed from Tools/MiniBrowser/gtk/BrowserSearchBar.h.
  • MiniBrowser/gtk/BrowserSettingsDialog.c:

(browser_settings_dialog_init):
(browser_settings_dialog_new):

  • MiniBrowser/gtk/BrowserSettingsDialog.h:
  • MiniBrowser/gtk/BrowserTab.c:

(loadChanged):
(createInfoBarQuestionMessage):
(tlsErrorsDialogResponse):
(loadFailedWithTLSerrors):
(permissionRequestDialogResponse):
(decidePermissionRequest):
(colorChooserRequestFinished):
(runColorChooserCallback):
(tabCloseClicked):
(browserTabConstructed):
(browserTabIsSearchBarOpen):
(browser_tab_start_search):
(browser_tab_stop_search):
(browser_tab_enter_fullscreen):
(browser_tab_leave_fullscreen):

  • MiniBrowser/gtk/BrowserWindow.c:

(settingsCallback):
(resetEntryProgress):
(webViewLoadProgressChanged):
(browserWindowCreateBackForwardMenu):
(browserWindowUpdateNavigationMenu):
(navigationButtonPressed):
(navigationButtonPressCallback):
(scrollEventCallback):
(webViewIsLoadingChanged):
(searchCallback):
(insertImageDialogResponse):
(insertImageCommandCallback):
(insertLinkDialogResponse):
(insertLinkCommandCallback):
(typingAttributesChanged):
(browserWindowSaveSession):
(browserWindowFinalize):
(browserWindowDispose):
(addToolbarButton):
(browserWindowSwitchTab):
(browserWindowTabAddedOrRemoved):
(browserWindowBuildPopoverMenu):
(browserWindowCloseRequest):
(browserWindowDeleteEvent):
(browser_window_class_init):
(browser_window_append_view):
(browser_window_set_background_color):

  • MiniBrowser/gtk/CMakeLists.txt:
1:28 AM Changeset in webkit [262938] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] MiniBrowser: stop using GtkToolbar
https://bugs.webkit.org/show_bug.cgi?id=212898

Reviewed by Adrian Perez de Castro.

GtkToolbar iss no longer available in GTK4, use a GtkBox with buttons instead. Also use symbolic icons and move
some of the actions to a gear menu.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowHistoryItemActivated):
(browserWindowCreateBackForwardMenu):
(browserWindowUpdateNavigationMenu):
(navigationButtonPressCallback):
(browserWindowCanZoomDefault):
(browserWindowUpdateZoomActions):
(webViewIsLoadingChanged):
(addToolbarButton):
(browserWindowBuildPopoverMenu):
(resetStatusText): Deleted.
(browserWindowHistoryItemSelected): Deleted.
(browserWindowSetupEditorToolbarItem): Deleted.

1:25 AM Changeset in webkit [262937] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[GTK] MiniBrowser: stop using GtkToolbar for the search bar
https://bugs.webkit.org/show_bug.cgi?id=212817

Reviewed by Adrian Perez de Castro.

Use a GtkSearchBar instead, because GtkToolbar is no longer available in GTK4. Also use a GtkPopover for the
options menu instead of the GtkMenu.

  • MiniBrowser/gtk/BrowserSearchBar.c:

(setFailedStyleForEntry):
(doSearch):
(searchEntryMenuIconPressedCallback):
(searchEntryChangedCallback):
(searchMenuCheckButtonToggledCallback):
(browserSearchBarFinalize):
(browser_search_bar_new):
(browser_search_bar_open):
(browser_search_bar_close):
(browser_search_bar_is_open):
(searchCloseButtonClickedCallback): Deleted.
(searchEntryClearIconReleasedCallback): Deleted.

  • MiniBrowser/gtk/BrowserSearchBar.h:
  • MiniBrowser/gtk/BrowserTab.c:

(browser_tab_start_search):
(browser_tab_stop_search):

1:19 AM Changeset in webkit [262936] by Carlos Garcia Campos
  • 9 edits in trunk

[GTK4] Make WebDriver work
https://bugs.webkit.org/show_bug.cgi?id=212316

Reviewed by Adrian Perez de Castro.

Source/WebCore:

Add helper gtk definitions to avoid ifdefs and implement currentScreenMonitor() for GTK4.

  • platform/gtk/GtkVersioning.h:

(gtk_window_move):
(gtk_window_minimize):
(gtk_window_unminimize):

  • platform/gtk/PlatformScreenGtk.cpp:

(WebCore::currentScreenMonitor):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::getCurrentScreenMonitor): Deleted.

Source/WebKit:

Fix UIClient::setWindowFrame to wait for surface size-changed signal after resizing the window and implement
maximize, minimize and restore windows for GTK4.

  • UIProcess/API/glib/WebKitUIClient.cpp:
  • UIProcess/API/gtk/WebKitWebViewGtk.cpp:

(surfaceStateChangedCallback):
(webkitWebViewMonitorWindowState):
(webkitWebViewMaximizeWindow):
(webkitWebViewMinimizeWindow):
(webkitWebViewRestoreWindow):

Tools:

Stop connecting to WebKitWebView::close signal twice for newaly created windows.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewCreate):

12:01 AM Changeset in webkit [262935] by Keith Rollin
  • 4 edits in trunk/Source/WebKitLegacy

Add dependencies for Migrate Headers and Generate Export Files build phases
https://bugs.webkit.org/show_bug.cgi?id=213072
<rdar://problem/64249345>

Reviewed by Tim Horton.

These build phases have incomplete specifications for the files they
consume and produce, which can lead to incorrect builds. Address this
by:

  • Adding the WebCore/PrivateHeaders directory (which contains the headers being migrated) as input to the Migrate Headers build phase
  • Touching a timestamp file when re-exporting any headers in the Migrate Headers build phase
  • Adding the timestamp file as an output of the Migrate Headers build phase
  • Adding the timestamp file as an input of the Generate Export Files build phase
  • Adding other files that Generate Export Files consumes to the list of input files

In this way, if any exported headers are changed, both Migrate Headers
and Generate Export Files will be run.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • MigrateHeaders.make:
Note: See TracTimeline for information about the timeline view.