WebKit-https.git
5 months ago[CMake] Use WEBKIT_EXECUTABLE in MallocBench
don.olmstead@sony.com [Sat, 9 May 2020 23:35:11 +0000 (23:35 +0000)]
[CMake] Use WEBKIT_EXECUTABLE in MallocBench
https://bugs.webkit.org/show_bug.cgi?id=211665

Reviewed by Yusuke Suzuki.

.:

Add the PerformanceTest subdirectory for all ports when in DEVELOPER_MODE.

* CMakeLists.txt:

PerformanceTests:

Cleanup MallocBench definitions using WEBKIT_EXECUTABLE. Notify developers
that MallocBench is unavailable only if bmalloc is being used but the platform
does not have the functionality required.

* CMakeLists.txt:
* MallocBench/MallocBench/CMakeLists.txt:

Source/bmalloc:

Only build mbmalloc if its possible to run MallocBench.

* CMakeLists.txt:

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

5 months agoXML external entity resources should only be loaded from XML MIME types
ddkilzer@apple.com [Sat, 9 May 2020 23:20:29 +0000 (23:20 +0000)]
XML external entity resources should only be loaded from XML MIME types
<https://webkit.org/b/211488>
<rdar://problem/62869515>

Reviewed by Darin Adler.

Source/WebCore:

Tests: dom/xhtml/level3/core/entitygetinputencoding03.xhtml
       dom/xhtml/level3/core/entitygetinputencoding04.xhtml
       dom/xhtml/level3/core/entitygetxmlencoding02.xhtml
       dom/xhtml/level3/core/entitygetxmlencoding03.xhtml
       dom/xhtml/level3/core/entitygetxmlencoding04.xhtml
       dom/xhtml/level3/core/entitygetxmlversion03.xhtml
       dom/xhtml/level3/core/entitygetxmlversion04.xhtml
       dom/xhtml/level3/core/nodegetbaseuri16.xhtml
       dom/xhtml/level3/core/nodegetbaseuri19.xhtml
       dom/xhtml/level3/core/nodegetbaseuri20.xhtml
       fast/parser/external-entities-in-xslt.xml
       fast/xsl/dtd-in-source-document.xml
       fast/xsl/xslt-second-level-import.xml
       http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml
       http/tests/security/xss-DENIED-xsl-external-entity-redirect.xml

* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::href const):
- Add comment about keeping code in sync with openFunc() in
  XMLDocumentParserLibxml2.cpp.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseMIMEType const):
- Add comment about keeping code in sync with
  externalEntityMimeTypeAllowed() in
  XMLDocumentParserLibxml2.cpp.
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::externalEntityMimeTypeAllowed):
- Rename from externalEntityMimeTypeAllowedByNosniff().
- Change to only allow XML MIME types regardless of nosniff
  option.
- Add fallback path to determine MIME type for file:/// URLs to
  make layout tests work properly.  Logic taken from
  XMLHttpRequest::responseMIMEType().  Not sure if there was a
  good place to share it.
(WebCore::openFunc):
- Fix relative URLs by providing the document's URL as a base.
  Also provide an encoding if needed.  Logic taken from
  HTMLBaseElement::href().  (Not sure if there was a good place
  to share it.)  This was required to fix loading of external
  entity resources in the dom/xhtml/level3/core tests, which
  hadn't been loading these resources for a while.  Ultimately
  this didn't matter--except for new error messages being
  printed in test results--because the tests fail due to missing
  DOM features for XHTML documents).
- Change the fix for Bug 21963 into an empty URL check since
  setting FetchOptions.mode to Mode::SameOrigin prevents a
  redirect from loading a resource outside the document's
  origin.  The previous check worked, but the relaxed check in
  externalEntityMimeTypeAllowed() caused the XML MIME type
  warning to be output on redirects to non-same-origin URLs.  I
  didn't see a way to check for a cross-origin loading error.
- Add a console message for a cross-origin load failing.
- Update for function rename.
- Remove double negative from console message for an invalid
  MIME type.
(WebCore::externalEntityMimeTypeAllowedByNosniff):
- Rename to externalEntityMimeTypeAllowed().

LayoutTests:

To fix these layout tests, the following changes were made:
- Rename *.ent files to *.ent.xml so that an XML MIME type would
  be given to the resources when loading from a file:/// URL.
- Similarly, rename *.dtd files to *.dtd.xml.
- Update tests to refer to new entity/dtd file names.
- There are more *.dtd and *.ent files that weren't renamed.  I
  will fix those in a follow-up patch.  They weren't needed to
  fix any tests, so may be unused.

* dom/xhtml/level3/core/entitygetinputencoding03.xhtml:
* dom/xhtml/level3/core/entitygetinputencoding04.xhtml:
* dom/xhtml/level3/core/entitygetxmlencoding02.xhtml:
* dom/xhtml/level3/core/entitygetxmlencoding03.xhtml:
* dom/xhtml/level3/core/entitygetxmlencoding04.xhtml:
* dom/xhtml/level3/core/entitygetxmlversion03.xhtml:
* dom/xhtml/level3/core/entitygetxmlversion04.xhtml:
* dom/xhtml/level3/core/resources/external_foo.ent.xml: Rename from LayoutTests/dom/xhtml/level3/core/external_foo.ent.xml.
* dom/xhtml/level3/core/resources/external_foobr.ent.xml: Rename from LayoutTests/dom/xhtml/level3/core/external_foobr.ent.xml.
* dom/xhtml/level3/core/resources/external_widget.ent.xml: Rename from LayoutTests/dom/xhtml/level3/core/external_widget.ent.xml.
* dom/xhtml/level3/core/nodegetbaseuri16.xhtml:
* dom/xhtml/level3/core/nodegetbaseuri19.xhtml:
* dom/xhtml/level3/core/nodegetbaseuri20.xhtml:
* fast/parser/external-entities.xml:
* fast/parser/resources/external-entities.dtd.xml: Rename from LayoutTests/fast/parser/resources/external-entities.dtd.
* fast/parser/resources/external-entities.xsl:
* fast/xsl/dtd-in-source-document.xml:
* fast/xsl/resources/dtd-in-source-document.dtd.xml: Rename from LayoutTests/fast/xsl/resources/dtd-in-source-document.dtd.
* fast/xsl/resources/xslt-second-level-import.xsl:
* fast/xsl/resources/xslt-second-level-import.xsl.dtd.xml: Rename from LayoutTests/fast/xsl/resources/xslt-second-level-import.xsl.dtd.

* http/tests/security/contentTypeOptions/nosniff-xml-external-entity-expected.txt:
* http/tests/security/contentTypeOptions/nosniff-xml-external-entity.xhtml:
- Add test cases without "X-Content-Type-Options: nosniff"
  header.

* http/tests/security/xss-DENIED-xsl-external-entity-redirect-expected.txt:
- Add newly expected console error messages about cross-origin
  resource load failures.

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

5 months agoAdapt LocalCurrentGraphicsContext for iOS
ddkilzer@apple.com [Sat, 9 May 2020 23:10:41 +0000 (23:10 +0000)]
Adapt LocalCurrentGraphicsContext for iOS
<https://webkit.org/b/211660>

Reviewed by Darin Adler.

Source/WebCore:

* PlatformMac.cmake:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
- Update build files for:
  - Rename of LocalCurrentGraphicsContext.mm to
    LocalCurrentGraphicsContextMac.mm.
  - Move of LocalCurrentGraphicsContext.h from platform/mac to
    platform/cocoa.
  - Addition of LocalCurrentGraphicsContextIOS.mm.

* platform/cocoa/LocalCurrentGraphicsContext.h: Renamed from Source/WebCore/platform/mac/LocalCurrentGraphicsContext.h.
- Make this work for iOS by using PLATFORM(COCOA) for the outer
  guard and USE(APPKIT) for the Mac-specific bits.
- Use RetainPtr<> for NSGraphicsContext to clean up code in
  LocalCurrentGraphicsContextMac.mm.
(WebCore::LocalCurrentGraphicsContext::cgContext):
- Inline from LocalCurrentGraphicsContextMac.mm.

* platform/ios/LocalCurrentGraphicsContextIOS.mm: Copied from Source/WebCore/platform/mac/LocalCurrentGraphicsContext.mm.
(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
(WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
- Implement based on LocalCurrentGraphicsContextMac.mm.  Use
  UIGraphics{GetCurrent,Pop,Push}Context() functions added to
  UIKitSoftLink.h.

* platform/mac/LocalCurrentGraphicsContextMac.mm: Renamed from Source/WebCore/platform/mac/LocalCurrentGraphicsContext.mm.
(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
- Use m_savedGraphicsContext instead of graphicsContext in the
  body of the constructor.
- Remove set-to-nil/retain of m_savedNSGraphicsContext since
  that is handled by RetainPtr<> now.
(WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
- Remove release of m_savedNSGraphicsContext since that is
  handled by RetainPtr<> now.
(WebCore::LocalCurrentGraphicsContext::cgContext): Delete.
- Inline into header to share implementation with iOS.

Source/WebCore/PAL:

* pal/ios/UIKitSoftLink.h:
* pal/ios/UIKitSoftLink.mm:
- Add soft linking of UIGraphics{GetCurrent,Pop,Push}Context()
  functions.

Source/WebKit:

* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::convertPlatformImageToBitmap):
- Use LocalCurrentGraphicsContext for both iOS and Mac code
  paths.

* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
- Switch from PLATFORM(MAC) and PLATFORM(IOS_FAMIY) to
  USE(APPKIT) to separate platform code.
(WebKit::convertDragImageToBitmap):
(WebKit::convertImageToBitmap): Delete.
(WebKit::convertCGImageToBitmap): Delete.
- Combine Mac-specific convertImageToBitmap() and iOS-specific
  convertCGImageToBitmap() into a single method using DragImage
  type and special-casing one line of code.
(WebKit::WebDragClient::startDrag):
(WebKit::WebDragClient::didConcludeEditDrag):
- Combine iOS and Mac methods into a singe method.

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

5 months agoFix build errors and warnings for non-unified JSCOnly
ross.kirsling@sony.com [Sat, 9 May 2020 22:40:13 +0000 (22:40 +0000)]
Fix build errors and warnings for non-unified JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=211655

Reviewed by Darin Adler and Yusuke Suzuki.

* bytecode/BytecodeDumper.cpp:
(JSC::isConstantRegisterIndex): Deleted.
Remove unused function.

* llint/LLIntEntrypoint.cpp:
* llint/LLIntThunks.cpp:
* llint/LLIntThunks.h:
* runtime/AggregateErrorConstructor.cpp:
* runtime/AggregateErrorPrototype.cpp:
* wasm/js/WebAssemblyFunction.cpp:
Fix includes.

* tools/JSDollarVM.cpp:
Deal with "unused constant" warnings for needsDestruction.

* wasm/WasmLLIntPlan.cpp:
* wasm/WasmSignature.cpp:
Remove unused constants.

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

5 months agoAdd iterator checking to ListHashSet
darin@apple.com [Sat, 9 May 2020 22:29:50 +0000 (22:29 +0000)]
Add iterator checking to ListHashSet
https://bugs.webkit.org/show_bug.cgi?id=211669

Reviewed by Anders Carlsson.

HashSet and HashMap have iterator checking in debug builds.
Add similar checking to ListHashSet, controlled by the same
macro, CHECK_HASHTABLE_ITERATORS. Use WeakPtr to make the
implementation simple.

* wtf/ListHashSet.h: Make ListHashSet and ListHashSetNode derive
from CanMakeWeakPtr. Add m_weakSet and m_weakPosition members to
ListHashSetConstIterator, and assert their values at the appropriate
times so we will get a breakpoint or crash.

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

5 months agoFix null-dereference in DocumentTimelinesController::updateAnimationsAndSendEvents
darin@apple.com [Sat, 9 May 2020 20:15:39 +0000 (20:15 +0000)]
Fix null-dereference in DocumentTimelinesController::updateAnimationsAndSendEvents
https://bugs.webkit.org/show_bug.cgi?id=211667

Reviewed by Antoine Quint.

* animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents): Add null
check before removing animationsToRemove, which may already have been removed
since any arbitrary change could occur while animations are firing.

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

5 months agoAdd missing null-check of page in ResourceLoader::loadDataURL
darin@apple.com [Sat, 9 May 2020 16:07:49 +0000 (16:07 +0000)]
Add missing null-check of page in ResourceLoader::loadDataURL
https://bugs.webkit.org/show_bug.cgi?id=211589
rdar://57213601

Reviewed by Anders Carlsson.

* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::loadDataURL): Add null check before using page.

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

5 months agoStreamline MarkupAccumulator to improve efficiency a bit
darin@apple.com [Sat, 9 May 2020 16:04:01 +0000 (16:04 +0000)]
Streamline MarkupAccumulator to improve efficiency a bit
https://bugs.webkit.org/show_bug.cgi?id=211656

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

* b3/air/AirFixPartialRegisterStalls.h: Fix spelling of "explicitly".

Source/WebCore:

* editing/MarkupAccumulator.cpp:
(WebCore::MarkupAccumulator::appendCharactersReplacingEntities): Corrected early
exit so it returns any time the length is 0. For some reason the code before
wouldn't do the early return when offset is non-zero, which is unnecessary.
(WebCore::MarkupAccumulator::appendString): Deleted.
(WebCore::MarkupAccumulator::appendStringView): Deleted.
(WebCore::MarkupAccumulator::appendEndTag): Use variadic append to cut down
on memory allocations.
(WebCore::MarkupAccumulator::totalLength): Deleted.
(WebCore::MarkupAccumulator::concatenateMarkup): Deleted.
(WebCore::MarkupAccumulator::takeMarkup): Added.
(WebCore::MarkupAccumulator::appendQuotedURLAttributeValue): Use variadic
append to cut down on memory allocations. Also use char instead of UChar so
the string building code doesn't have to do an 8/16 bit check.
(WebCore::shouldAddNamespaceElement): Prepend a literal, don't bother to
make a String just to append to another String. Also made this a
non-member function.
(WebCore::shouldAddNamespaceAttribute): Made this a non-member function.
(WebCore::MarkupAccumulator::appendNamespace): Fix hash table usage
to use add instead of get followed by set to avoid double hashing.
Use variadic append to cut down on memory allocation.
(WebCore::MarkupAccumulator::appendText): Tweaked style to make this a
one-line function.
(WebCore::appendComment): Deleted.
(WebCore::appendXMLDeclaration): Made this a non-member function.
Use variadic append to cut down on memory allocation.
(WebCore::appendDocumentType): Made this a non-member function.
Use variadic append to cut down on memory allocation.
(WebCore::MarkupAccumulator::appendCDATASection): Deleted.
(WebCore::MarkupAccumulator::appendNonElementNode): Moved the bodies of
appendComment, appendProcessingInstruction, and appendCDATASection in
here since they can all be one-line variadic append calls.

* editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::length const): Changed the return type
of length to be unsigned since that's what StringBuilder returns.
Made isAllASCII call StringBuilder::isAllASCII. Replaced appendString
and appendStringView with variadic append. Removed many functions
that no longer need to be member functions. Made appendAttributeValue
a static member function. Made appendNamespace private. Made
m_serializationSyntax const.

* editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::wrapWithStyleNode): Use append
instead of appenString.
(WebCore::StyledMarkupAccumulator::isAllASCII const): Added. Before
the code would only check the StringBuilder, but we also need to
check m_reversedPrecedingMarkup.
(WebCore::StyledMarkupAccumulator::takeResults): Use CheckedUint32
since StringBuilder's reserveCapacity function takes unsigned, not
size_t. The old code, using totalLength, would just pass a size_t
and let it get chopped off, which didn't do any harm, but it seems
strange to compute a 64-bit value just to chop off the lower 32
bits. An alternative is to compute the 32-bit value and just let
it overflow. Use a modern for loop by defining a ReverseView
template rather than writing a confusing backwards loop. Use the
new takeMarkup instead of concatenateMarkup.
(WebCore::StyledMarkupAccumulator::appendText): Tweak coding
style a little bit.
(WebCore::StyledMarkupAccumulator::appendStartTag): Ditto.
(WebCore::StyledMarkupAccumulator::appendNodeToPreserveMSOList):
Use variadic append to cut down on memory allocations.
(WebCore::propertyMissingOrEqualToNone): Tweak coding style a bit.
(WebCore::serializePreservingVisualAppearanceInternal): Use
append instead of appendString.
(WebCore::shouldPreserveMSOLists): Take a StringView instead of a
String to eliminate unnecessary memory allocation in call to substring.
(WebCore::sanitizedMarkupForFragmentInDocument): Use makeString
instead of StringBuilder to cut down on memory allocation.

* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::resetDefaultButton): Fix spelling error
in the word "explicitly".
* mathml/MathMLOperatorDictionary.cpp:
(WebCore::MathMLOperatorDictionary::search): Ditto.

* page/PageSerializer.cpp:
(WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator):
Use variadic append instead of appendString to cut down on
memory allocations.

* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paint): Fix spelling error in the word
"explicitly".

Source/WTF:

* wtf/text/StringBuilder.cpp:
(WTF::StringBuilder::isAllASCII const): Added.
* wtf/text/StringBuilder.h: Added isAllASCII.

Tools:

* TestWebKitAPI/Tests/WTF/StringImpl.cpp:
(TestWebKitAPI::TEST): Fix spellling error in the word "explicitly".

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

5 months agoRemove HAVE_UI_SCROLL_VIEW_INDICATOR_FLASHING_SPI
david_quesada@apple.com [Sat, 9 May 2020 16:02:26 +0000 (16:02 +0000)]
Remove HAVE_UI_SCROLL_VIEW_INDICATOR_FLASHING_SPI
https://bugs.webkit.org/show_bug.cgi?id=211662
rdar://problem/63048713

Reviewed by Darin Adler.

Source/WebKit:

Remove this platform conditional and unconditionally use -[UIScrolView _flashScrollIndicatorsForAxes:
persistingPreviousFlashes:]. All supported platforms with UIScrollView have this SPI, and the conditional
was excluding Mac Catalyst, making WKKeyboardScrollViewAnimator send a message to its scroll view that
is no longer implemented.

* Platform/spi/ios/UIKitSPI.h:
    Remove the declaration of the now unused -_flashScrollIndicatorsPersistingPreviousFlashes:.
* UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(axesForDelta):
(-[WKKeyboardScrollViewAnimator scrollToContentOffset:animated:]):

Source/WTF:

* wtf/PlatformHave.h:

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

5 months ago[GTK] Gardening, update test expectations
dpino@igalia.com [Sat, 9 May 2020 11:10:51 +0000 (11:10 +0000)]
[GTK] Gardening, update test expectations
https://bugs.webkit.org/show_bug.cgi?id=211664

Gardening of flaky failures and failures reintroduced after latest
patches reverted.

* platform/gtk/TestExpectations:

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

5 months agoNullptr crash in LegacyWebArchive::createPropertyListRepresentation when copying...
shihchieh_lee@apple.com [Sat, 9 May 2020 08:07:27 +0000 (08:07 +0000)]
Nullptr crash in LegacyWebArchive::createPropertyListRepresentation when copying selected range that contains surrogate characters
https://bugs.webkit.org/show_bug.cgi?id=211658
<rdar://problem/62844424>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Added check for null LegacyWebArchive in LegacyWebArchive::createFromSelection. Return nullptr when creation fails.

Test: webarchive/copy-surrogate-char-crash.html

* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createFromSelection):

LayoutTests:

Added a regression test for the crash.

* webarchive/copy-surrogate-char-crash-expected.txt: Added.
* webarchive/copy-surrogate-char-crash.html: Added.

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

5 months agoFix wpt shadow-dom/slots-fallback-in-document.html
commit-queue@webkit.org [Sat, 9 May 2020 07:00:41 +0000 (07:00 +0000)]
Fix wpt shadow-dom/slots-fallback-in-document.html
https://bugs.webkit.org/show_bug.cgi?id=211640

Patch by Tetsuharu Ohzeki <tetsuharu.ohzeki@gmail.com> on 2020-05-09
Reviewed by Ryosuke Niwa.

By specs, HTMLSlotElement.assignedNodes() should not count children of
a slot in a document tree for flattened assigned nodes.

https://html.spec.whatwg.org/multipage/scripting.html#dom-slot-assignednodes
https://dom.spec.whatwg.org/#find-flattened-slotables

As sideeffect, this patch also fix wpt
shadow-dom/slots-outside-shadow-dom-expected.html

LayoutTests/imported/w3c:

* web-platform-tests/shadow-dom/slots-fallback-in-document-expected.txt:
* web-platform-tests/shadow-dom/slots-outside-shadow-dom-expected.txt:

Source/WebCore:

Test: web-platform-tests/shadow-dom/slots-fallback-in-document.html
      web-platform-tests/shadow-dom/slots-outside-shadow-dom.html

* html/HTMLSlotElement.cpp:
(WebCore::flattenAssignedNodes):

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

5 months ago[GTK] Gardening, update expectations after revert of r261341 and r261392
dpino@igalia.com [Sat, 9 May 2020 05:32:06 +0000 (05:32 +0000)]
[GTK] Gardening, update expectations after revert of r261341 and r261392
https://bugs.webkit.org/show_bug.cgi?id=211661

Unreviewed gardening.

* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes-expected.txt: Removed.

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

5 months agoFix build error on PlatStation port after r261132
basuke.suzuki@sony.com [Sat, 9 May 2020 04:17:33 +0000 (04:17 +0000)]
Fix build error on PlatStation port after r261132
https://bugs.webkit.org/show_bug.cgi?id=211659

Unreviewed build fix after r261132.

* page/scrolling/ScrollingTreeGestureState.cpp:

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

5 months agoArray.prototype.concat fast path checks should not be observable
shvaikalesh@gmail.com [Sat, 9 May 2020 01:43:42 +0000 (01:43 +0000)]
Array.prototype.concat fast path checks should not be observable
https://bugs.webkit.org/show_bug.cgi?id=211643

Reviewed by Ross Kirsling.

JSTests:

While test262 has complete coverage for @@isConcatSpreadable getters in prototype
chain, Proxy cases are covered by stress/array-concat-fast-spread-proxy.js and
stress/array-concat-spread-proxy.js.

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

Source/JavaScriptCore:

This change utilizes @tryGetByIdWithWellKnownSymbol intrinsic to make
off the spec Symbol.isConcatSpreadable lookups unobservable to userland code,
aligning JSC with V8 and SpiderMonkey.

Since @tryGetById uses PropertySlot::getPureResult(), which returns `null`
for Proxy [[Get]] traps and JS getters (covered by stress/try-get-by-id.js),
we can safely compare its result `undefined`. Also, this allows us to remove
@isProxyObject check as Proxy argument is never a fast path anyway.

This patch is neutral on microbenchmarks/concat-append-one.js.

* builtins/ArrayPrototype.js:
(concat):

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

5 months agoRemove empty directories from from svn.webkit.org repository
ddkilzer@apple.com [Sat, 9 May 2020 01:21:28 +0000 (01:21 +0000)]
Remove empty directories from from svn.webkit.org repository
<https://webkit.org/b/211644>

Reviewed by Darin Adler.

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

5 months ago[WTF] Share Linux's MemoryPressureHandler among other Unix ports
basuke.suzuki@sony.com [Sat, 9 May 2020 01:13:46 +0000 (01:13 +0000)]
[WTF] Share Linux's MemoryPressureHandler among other Unix ports
https://bugs.webkit.org/show_bug.cgi?id=208955

Reviewed by Yusuke Suzuki.

Source/bmalloc:

Added FreeBSD implementation of memoryFootprint().

* bmalloc/AvailableMemory.cpp:
(bmalloc::memoryStatus):
* bmalloc/AvailableMemory.h:
(bmalloc::isUnderMemoryPressure):
* bmalloc/bmalloc.h:

Source/WTF:

Renamed MemoryPressureHandlerLinux to MemoryPressureHandlerUnix and added FreeBSD implementation
of memory status functions. Change PlayStation port to use it from generic implementation.

* wtf/MemoryPressureHandler.cpp:
(WTF::MemoryPressureHandler::MemoryPressureHandler):
* wtf/MemoryPressureHandler.h:
* wtf/PlatformGTK.cmake:
* wtf/PlatformJSCOnly.cmake:
* wtf/PlatformPlayStation.cmake:
* wtf/PlatformWPE.cmake:
* wtf/generic/MemoryFootprintGeneric.cpp:
(WTF::memoryFootprint):
* wtf/unix/MemoryPressureHandlerUnix.cpp: Renamed from Source\WTF\wtf\linux\MemoryPressureHandlerLinux.cpp.
(WTF::processMemoryUsage):

Tools:

Fix unneeded library dependency.

* TestWebKitAPI/CMakeLists.txt:

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

5 months agoAsync overflow scroll: sometimes a <select> becomes non-scrollable
simon.fraser@apple.com [Sat, 9 May 2020 00:02:45 +0000 (00:02 +0000)]
Async overflow scroll: sometimes a <select> becomes non-scrollable
https://bugs.webkit.org/show_bug.cgi?id=211433
<rdar://problem/62338474>

Reviewed by Dean Jackson.

Source/WebCore:

Scrollable <select>s (RenderListBox) contribute to the non-fast scrollable region, so
wheel events inside them are propagated to the main thread. If the select is scrolled
to the end, the event will propagate to the enclosing scroller, then then FrameView::wheelEvent()
may send it back to the scrolling thread. If the scrolling thread is processing such an event
after the main thread, it should not perform any latching on the main thread.

Test: scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html

* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::handleWheelEvent):
* page/scrolling/ScrollingTree.h:
* page/scrolling/ScrollingTreeLatchingController.cpp:
(WebCore::ScrollingTreeLatchingController::receivedWheelEvent):
(WebCore::ScrollingTreeLatchingController::latchedNodeForEvent const):
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
(WebCore::ScrollingTreeLatchingController::clearLatchedNode):
* page/scrolling/ScrollingTreeLatchingController.h:
* page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::handleWheelEventAfterMainThread):
* page/scrolling/ThreadedScrollingTree.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::handleWheelEvent):
* platform/PlatformWheelEvent.cpp:
(WebCore::operator<<):

LayoutTests:

* scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe-expected.txt: Added.
* scrollingcoordinator/mac/latching/scrolling-select-should-not-latch-mainframe.html: Added.

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

5 months agoOverflow scrollers in iframes don't get mouseMovedInContentArea()
simon.fraser@apple.com [Sat, 9 May 2020 00:02:41 +0000 (00:02 +0000)]
Overflow scrollers in iframes don't get mouseMovedInContentArea()
https://bugs.webkit.org/show_bug.cgi?id=211347
<rdar://problem/62784560>

Reviewed by Tim Horton.

Land some tests that were missing from r261382.

* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered-expected.txt: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal-expected.txt: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html: Added.

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

5 months ago[LFC][TFC] The fixed logical width should be used as the max width for a cell
ryanhaddad@apple.com [Sat, 9 May 2020 00:00:39 +0000 (00:00 +0000)]
[LFC][TFC] The fixed logical width should be used as the max width for a cell
https://bugs.webkit.org/show_bug.cgi?id=211610

Unreviewed test gardening.

Add a baseline for Windows.

* platform/win/fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content-expected.txt: Added.

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

5 months agoRemove now-unneeded HAVE(AVFOUNDATION_LOADER_DELEGATE)
darin@apple.com [Fri, 8 May 2020 23:20:01 +0000 (23:20 +0000)]
Remove now-unneeded HAVE(AVFOUNDATION_LOADER_DELEGATE)
https://bugs.webkit.org/show_bug.cgi?id=211646

Reviewed by Eric Carlson.

Source/WebCore:

* loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::requestResource): Remove check of
HAVE(AVFOUNDATION_LOADER_DELEGATE) in a place where it also checks PLATFORM(MAC).

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
Remove HAVE(AVFOUNDATION_LOADER_DELEGATE) in Cocoa-only code.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: Ditto.
(WebCore::globalLoaderDelegateQueue): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest): Ditto.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Ditto.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Ditto.

Source/WTF:

* wtf/PlatformHave.h: Don't set HAVE_AVFOUNDATION_LOADER_DELEGATE.

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

5 months agoRegression(r210945): No attachment when sharing to mail
cdumez@apple.com [Fri, 8 May 2020 23:11:38 +0000 (23:11 +0000)]
Regression(r210945): No attachment when sharing to mail
https://bugs.webkit.org/show_bug.cgi?id=211651
<rdar://problem/63040170>

Reviewed by Tim Horton.

When failing to determine foreground state, the code before r210945 was assuming
'foreground', while the code in r210945 assume 'background'. This causes things
to not render properly when we fail to determine the foreground state.

This patch merely restores pre-r210945 behavior. I will investigate why we are
unable to determinate the host application PID for the MailCompositionService.

* UIProcess/ApplicationStateTracker.mm:
(WebKit::isApplicationForeground):

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

5 months agoTextureMapper should skip clipping a content layer if it's not needed
commit-queue@webkit.org [Fri, 8 May 2020 23:11:16 +0000 (23:11 +0000)]
TextureMapper should skip clipping a content layer if it's not needed
https://bugs.webkit.org/show_bug.cgi?id=210787

Patch by Tomoki Imai <Tomoki.Imai@sony.com> on 2020-05-08
Reviewed by Don Olmstead.

Source/WebCore:

This patch follows up r260174.
We don't need to clip a content layer if the clipping rect contains the content rect.
This patch doesn't change the behavior but saves stencil indices.

* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::paintSelf):

LayoutTests:

This patch follows up r260174 by updating the test expectation.

* platform/gtk/compositing/video/video-object-fit-expected.txt: Added.

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

5 months agowebkitpy: 'iPhone SE' should match 'iPhone SE 1st generation'
jbedard@apple.com [Fri, 8 May 2020 22:56:48 +0000 (22:56 +0000)]
webkitpy: 'iPhone SE' should match 'iPhone SE 1st generation'
https://bugs.webkit.org/show_bug.cgi?id=211642
<rdar://problems/62986242>

Rubber-stamped by Aakash Jain.

* Scripts/webkitpy/xcode/device_type.py:
(DeviceType):
(DeviceType.standardized_hardware_type): Strip '1st generation' from models.
(DeviceType.__eq__): Use standardized hardware type.
(DeviceType.__contains__): Ditto.
(DeviceType.__hash__): Ditto.
* Scripts/webkitpy/xcode/device_type_unittest.py:
(DeviceTypeTest):
(DeviceTypeTest.test_generation_matching):
* Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager._get_device_identifier_for_type): Handle case where the requests model does not
end with '(1st generation)', but the simctl model does.
* Scripts/webkitpy/xcode/simulated_device_unittest.py:

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

5 months agoTestWebKitAPI.WebKit.AllowsContentJavaScript fails on iPad simulator
ryanhaddad@apple.com [Fri, 8 May 2020 21:41:59 +0000 (21:41 +0000)]
TestWebKitAPI.WebKit.AllowsContentJavaScript fails on iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=207874

Unreviewed test gardening.

* TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
Disable the test for iOS.

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

5 months agoRemove no-longer-used PerformanceTests/StitchMarker
darin@apple.com [Fri, 8 May 2020 21:21:44 +0000 (21:21 +0000)]
Remove no-longer-used PerformanceTests/StitchMarker
https://bugs.webkit.org/show_bug.cgi?id=211639

Reviewed by Ryosuke Niwa.

Having this test around can be confusing since it contains old versions
of many WebKit source files, which will show up when searching the source
tree. And since we're not using it, we don't need to keep a copy of it
in the tip of tree in the repository.

* StitchMarker: Removed.

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

5 months ago[iOS] Text-style fonts aren't locale-specific
mmaxfield@apple.com [Fri, 8 May 2020 21:16:23 +0000 (21:16 +0000)]
[iOS] Text-style fonts aren't locale-specific
https://bugs.webkit.org/show_bug.cgi?id=211438
<rdar://problem/51654163>

Reviewed by Sam Weinig.

Source/WebCore:

Simply hook up the locale to the Core Text function.

It turns out that this patch actually has no behavior change,
because this locale is only used for font fallback, but WebKit
does its own font fallback and we already pass the locale into
CTFontCopyDefaultCascadeListForLanguages(). However, for
symmetry with CTFontCreateUIFontWithLanguage() it's a good idea
to just supply it anyway. Just in case.

Test: platform/ios/fast/text/lang-text-style.html

* platform/graphics/cocoa/SystemFontDatabaseCoreText.cpp:
(WebCore::SystemFontDatabaseCoreText::createTextStyleFont):

LayoutTests:

This test actually already passes. But it's a good idea to make
sure that it continues to pass in the future.

* platform/ios/fast/text/lang-text-style-expected-mismatch.html: Added.
* platform/ios/fast/text/lang-text-style.html: Added.

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

5 months agocheck-webkit-style false positive for [readability/naming/protected] with method...
ddkilzer@apple.com [Fri, 8 May 2020 21:14:24 +0000 (21:14 +0000)]
check-webkit-style false positive for [readability/naming/protected] with method declaration
<https://webkit.org/b/210682>

Reviewed by Darin Adler.

* Scripts/webkitpy/style/checkers/cpp.py:
(check_identifier_name_in_declaration):
- Don't check for invalid protector name if the capitalized
  protected name is the same as the original protected name,
  indicating it's a type name.
* Scripts/webkitpy/style/checkers/cpp_unittest.py:
(WebKitStyleTest.test_names):
- Add test cases.

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

5 months agoFix build on platforms without network framework.
achristensen@apple.com [Fri, 8 May 2020 20:57:57 +0000 (20:57 +0000)]
Fix build on platforms without network framework.
https://bugs.webkit.org/show_bug.cgi?id=211603

* TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
Add HAVE(NETWORK_FRAMEWORK) around test that uses network framework.

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

5 months ago[WebGL2] Complete new texture upload entry points in WebGL2RenderingContext
commit-queue@webkit.org [Fri, 8 May 2020 20:48:47 +0000 (20:48 +0000)]
[WebGL2] Complete new texture upload entry points in WebGL2RenderingContext
https://bugs.webkit.org/show_bug.cgi?id=208875

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

Source/WebCore:

Implement the remaining texture upload entry points - mainly for
3D textures - in WebGL2RenderingContext. Add support for uploading
from the pixel unpack buffer.

Refactor the WebGL 2.0 binding points into WebGL2RenderingContext,
where they had previously been in the base class. Refactor
validation code to override the base class where necessary.
Refactor getParameter into WebGLRenderingContextBase and override
it in WebGL2RenderingContext, eliminating duplicate code and
fixing bugs.

* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::~WebGL2RenderingContext):
(WebCore::WebGL2RenderingContext::getInt64Parameter):
(WebCore::WebGL2RenderingContext::validateBufferTarget):
(WebCore::WebGL2RenderingContext::validateBufferTargetCompatibility):
(WebCore::WebGL2RenderingContext::validateBufferDataTarget):
(WebCore::WebGL2RenderingContext::validateAndCacheBufferBinding):
(WebCore::WebGL2RenderingContext::validateTexImageBinding):
(WebCore::WebGL2RenderingContext::validateTexture3DBinding):
(WebCore::WebGL2RenderingContext::copyBufferSubData):
(WebCore::WebGL2RenderingContext::bindFramebuffer):
(WebCore::WebGL2RenderingContext::deleteFramebuffer):
(WebCore::WebGL2RenderingContext::getTexParameter):
(WebCore::WebGL2RenderingContext::texStorage2D):
(WebCore::WebGL2RenderingContext::texStorage3D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::getFramebufferAttachmentParameter):
(WebCore::WebGL2RenderingContext::validateFramebufferTarget):
(WebCore::WebGL2RenderingContext::getFramebufferBinding):
(WebCore::WebGL2RenderingContext::getReadFramebufferBinding):
(WebCore::WebGL2RenderingContext::restoreCurrentFramebuffer):
(WebCore::WebGL2RenderingContext::getParameter):
(WebCore::WebGL2RenderingContext::uncacheDeletedBuffer):
(WebCore::WebGL2RenderingContext::validateFramebufferFuncParameters): Deleted.
* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::setTarget):
* html/canvas/WebGLBuffer.h:
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::attach):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
(WebCore::WebGLFramebuffer::isBound const):
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters): Deleted.
(WebCore::WebGLRenderingContext::getParameter): Deleted.
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::initializeNewContext):
(WebCore::WebGLRenderingContextBase::~WebGLRenderingContextBase):
(WebCore::WebGLRenderingContextBase::validateBufferTarget):
(WebCore::WebGLRenderingContextBase::validateBufferDataTarget):
(WebCore::WebGLRenderingContextBase::validateAndCacheBufferBinding):
(WebCore::WebGLRenderingContextBase::bindBuffer):
(WebCore::WebGLRenderingContextBase::bindFramebuffer):
(WebCore::WebGLRenderingContextBase::bindTexture):
(WebCore::WebGLRenderingContextBase::checkFramebufferStatus):
(WebCore::WebGLRenderingContextBase::uncacheDeletedBuffer):
(WebCore::WebGLRenderingContextBase::deleteFramebuffer):
(WebCore::WebGLRenderingContextBase::deleteRenderbuffer):
(WebCore::WebGLRenderingContextBase::deleteTexture):
(WebCore::WebGLRenderingContextBase::framebufferRenderbuffer):
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
(WebCore::WebGLRenderingContextBase::getParameter):
(WebCore::WebGLRenderingContextBase::readPixels):
(WebCore::WebGLRenderingContextBase::copyTexImage2D):
(WebCore::WebGLRenderingContextBase::texParameter):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferColorFormat):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferWidth):
(WebCore::WebGLRenderingContextBase::getBoundReadFramebufferHeight):
(WebCore::WebGLRenderingContextBase::validateFramebufferTarget):
(WebCore::WebGLRenderingContextBase::getFramebufferBinding):
(WebCore::WebGLRenderingContextBase::getReadFramebufferBinding):
(WebCore::WebGLRenderingContextBase::validateFramebufferFuncParameters):
(WebCore::WebGLRenderingContextBase::validateBufferDataParameters):
(WebCore::WebGLRenderingContextBase::setFramebuffer):
(WebCore::WebGLRenderingContextBase::restoreCurrentFramebuffer):
(WebCore::WebGLRenderingContextBase::getInt64Parameter): Deleted.
* html/canvas/WebGLRenderingContextBase.h:

LayoutTests:

All of the 3D texture tests in
webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/ and
webgl/2.0.0/conformance2/textures/image_data/ now pass, and
several others progress, including some which now pass completely.
Rebaseline all of these.

Skip webgl/2.0.0/conformance2/textures/image_bitmap_from_canvas/
temporarily to reduce the size of these rebaselines, as the
failures are likely caused by non-WebGL browser bugs. Filed Bug
211484 to track re-enabling them.

* TestExpectations:
* platform/mac/webgl/fingerprinting-strings-expected.txt:
* webgl/2.0.0/conformance/state/gl-enable-enum-test-expected.txt:
* webgl/2.0.0/conformance2/buffers/buffer-copying-contents-expected.txt:
* webgl/2.0.0/conformance2/buffers/buffer-copying-restrictions-expected.txt:
* webgl/2.0.0/conformance2/buffers/buffer-type-restrictions-expected.txt:
* webgl/2.0.0/conformance2/buffers/uniform-buffers-expected.txt:
* webgl/2.0.0/conformance2/misc/expando-loss-2-expected.txt:
* webgl/2.0.0/conformance2/misc/getextension-while-pbo-bound-stability-expected.txt:
* webgl/2.0.0/conformance2/misc/object-deletion-behaviour-2-expected.txt:
* webgl/2.0.0/conformance2/misc/views-with-offsets-expected.txt:
* webgl/2.0.0/conformance2/renderbuffers/framebuffer-texture-layer-expected.txt:
* webgl/2.0.0/conformance2/rendering/blitframebuffer-test-expected.txt:
* webgl/2.0.0/conformance2/rendering/canvas-resizing-with-pbo-bound-expected.txt:
* webgl/2.0.0/conformance2/rendering/out-of-bounds-index-buffers-after-copying-expected.txt:
* webgl/2.0.0/conformance2/state/gl-get-calls-expected.txt:
* webgl/2.0.0/conformance2/state/gl-getstring-expected.txt:
* webgl/2.0.0/conformance2/state/gl-object-get-calls-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r16f-red-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r32f-red-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8-red-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg16f-rg-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg32f-rg-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8-rg-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb16f-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb32f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba16f-rgba-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba32f-rgba-float-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/canvas_sub_rectangle/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r11f_g11f_b10f-rgb-unsigned_int_10f_11f_11f_rev-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r16f-red-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r32f-red-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8-red-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-r8ui-red_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg16f-rg-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg32f-rg-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8-rg-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rg8ui-rg_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb16f-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb32f-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb565-rgb-unsigned_short_5_6_5-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb5_a1-rgba-unsigned_short_5_5_5_1-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb8ui-rgb_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgb9_e5-rgb-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba16f-rgba-half_float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba32f-rgba-float-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba4-rgba-unsigned_short_4_4_4_4-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-rgba8ui-rgba_integer-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8-rgb-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/image_data/tex-3d-srgb8_alpha8-rgba-unsigned_byte-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/copy-texture-image-luma-format-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/copy-texture-image-webgl-specific-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/gl-get-tex-parameter-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-image-and-sub-image-with-array-buffer-view-sub-source-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-input-validation-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-mipmap-levels-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-new-formats-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-storage-2d-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-storage-and-subimage-3d-expected.txt:
* webgl/2.0.0/conformance2/textures/misc/tex-unpack-params-expected.txt:

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

5 months agoImplement web-share v2 for files
nmouchtaris@apple.com [Fri, 8 May 2020 20:46:10 +0000 (20:46 +0000)]
Implement web-share v2 for files
https://bugs.webkit.org/show_bug.cgi?id=209265

Reviewed by Andy Estes.

LayoutTests/imported/w3c:

Updated test expectations for new behavior.

* ios-wk2/imported/w3c/web-platform-tests/web-share/canShare-files.https-expected.txt :
* mac-wk2/imported/w3c/web-platform-tests/web-share/canShare-files.https-expected.txt :

Source/WebCore:

Modified existing tests for new behavior.

Added support for handling of files in share/canShare,
and implemented asynchronous reading of data from blobs on
disk into memory.

* WebCore.xcodeproj/project.pbxproj:
* page/Navigator.cpp:
(WebCore::Navigator::canShare):
(WebCore::Navigator::share):
(WebCore::Navigator::finishedLoad):
* page/Navigator.h:
* page/ReadShareDataAsync.cpp: Added.
(WebCore::ReadShareDataAsync::readInternal):
(WebCore::ReadShareDataAsync::ReadShareDataAsync):
(WebCore::ReadShareDataAsync::~ReadShareDataAsync):
(WebCore::ReadShareDataAsync::start):
(WebCore::ReadShareDataAsync::didFinishLoading):
(WebCore::ReadShareDataAsync::didReceiveData):
(WebCore::ReadShareDataAsync::didStartLoading):
(WebCore::ReadShareDataAsync::didFail):
* page/ReadShareDataAsync.hpp: Added.
* page/ShareData.h:

Source/WebKit:

Added support for passing file objects over IPC and
sharing of files to share sheet.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Vector<RawFile>>::encode):
(IPC::ArgumentCoder<Vector<RawFile>>::decode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::encode):
(IPC::ArgumentCoder<ShareDataWithParsedURL>::decode):
* Shared/WebCoreArgumentCoders.h:
* UIProcess/Cocoa/ShareableFileWrite.h: Added.
* UIProcess/Cocoa/ShareableFileWrite.mm: Added.
(+[WKShareableFileWrite getSharingDirectoryPath]):
(+[WKShareableFileWrite getFileDirectoryForSharing]):
(+[WKShareableFileWrite removeFileDirectoryForSharing]):
(+[WKShareableFileWrite setQuarantineInformationForFilePath:]):
(+[WKShareableFileWrite applyQuarantineSandboxAndDownloadFlagsToFileAtPath:]):
(+[WKShareableFileWrite createFilename:]):
(+[WKShareableFileWrite writeFileToShareableURL:data:]):
* UIProcess/Cocoa/WKShareSheet.mm:
(-[WKShareSheet presentWithParameters:inRect:completionHandler:]):
(-[WKShareSheet _didCompleteWithSuccess:]):
* WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Modified to no longer use url of image.

* fast/web-share/share-with-files.html:

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

5 months agoRevise sandbox to stop logging some commonly-used properties
bfulgham@apple.com [Fri, 8 May 2020 20:43:00 +0000 (20:43 +0000)]
Revise sandbox to stop logging some commonly-used properties
https://bugs.webkit.org/show_bug.cgi?id=211636
<rdar://problem/63014244>

Reviewed by Per Arne Vollan.

Further living on and testing has shown a handful of sysctl entries that are in regular use, and do not need
to be logged or considered for removal. This patch has no change in behavior, just reduces logging.

* NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
* Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:

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

5 months agoREGRESSION [ iOS ] fast/forms/validationMessage.html is flaky and timing out
lawrence.j@apple.com [Fri, 8 May 2020 20:41:08 +0000 (20:41 +0000)]
REGRESSION [ iOS ] fast/forms/validationMessage.html is flaky and timing out
https://bugs.webkit.org/show_bug.cgi?id=206630

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

5 months agoUnreviewed, reverting r261341 and r261392.
ryanhaddad@apple.com [Fri, 8 May 2020 20:27:45 +0000 (20:27 +0000)]
Unreviewed, reverting r261341 and r261392.

Caused multiple regression test failures

Reverted changesets:

"Poster set after playback begins should be ignored"
https://bugs.webkit.org/show_bug.cgi?id=211464
https://trac.webkit.org/changeset/261341

"REGRESSION(r261341): imported/w3c/web-platform-
tests/html/semantics/embedded-content/the-video-
element/intrinsic_sizes.htm is failing"
https://bugs.webkit.org/show_bug.cgi?id=211612
https://trac.webkit.org/changeset/261392

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

5 months agoDelete old ews client side code
aakash_jain@apple.com [Fri, 8 May 2020 20:20:09 +0000 (20:20 +0000)]
Delete old ews client side code
https://bugs.webkit.org/show_bug.cgi?id=211638

Reviewed by Jonathan Bedard.

* Scripts/webkitpy/common/checkout/changelog_unittest.py:
* Scripts/webkitpy/common/config/urls.py: Removed old ews server url.
* Scripts/webkitpy/common/net/statusserver.py: Removed.
* Scripts/webkitpy/common/net/statusserver_mock.py: Removed.
* Scripts/webkitpy/tool/bot/botinfo.py:
* Scripts/webkitpy/tool/bot/botinfo_unittest.py:
* Scripts/webkitpy/tool/bot/flakytestreporter.py:
* Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
* Scripts/webkitpy/tool/bot/queueengine.py:
* Scripts/webkitpy/tool/bot/queueengine_unittest.py:
* Scripts/webkitpy/tool/commands/earlywarningsystem.py:
* Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
* Scripts/webkitpy/tool/commands/perfalizer.py:
* Scripts/webkitpy/tool/commands/queues.py:
(AbstractQueue._log_from_script_error_for_upload): Deleted.
(AbstractQueue._update_status_for_script_error): Deleted.
(AbstractPatchQueue._update_status): Deleted.
(AbstractPatchQueue._release_work_item): Deleted.
(AbstractPatchQueue._did_pass): Deleted.
(AbstractPatchQueue._did_fail): Deleted.
* Scripts/webkitpy/tool/commands/queues_unittest.py:
(AbstractQueueTest._assert_run_webkit_patch):
(AbstractQueueTest.test_no_iteration_count):
(PatchProcessingQueueTest.test_upload_results_archive_for_patch):
(AbstractQueueTest._assert_log_message): Deleted.
(AbstractQueueTest.test_log_from_script_error_for_upload): Deleted.
(AbstractPatchQueueTest): Deleted.
(NeedsUpdateSequence): Deleted.
(NeedsUpdateSequence._run): Deleted.
(StyleQueueTest): Deleted.
(StyleQueueTest.test_style_queue_with_style_exception): Deleted.
* Scripts/webkitpy/tool/commands/queuestest.py:
(QueuesTest._default_begin_work_queue_logs):
(QueuesTest._default_begin_work_queue_stderr): Deleted.
* Scripts/webkitpy/tool/commands/sheriffbot.py:
* Scripts/webkitpy/tool/main.py:
* Scripts/webkitpy/tool/mocktool.py:

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

5 months agoMake WKWebViewConfiguration._alwaysRunsAtForegroundPriority an alias for _clientNavig...
cdumez@apple.com [Fri, 8 May 2020 20:10:24 +0000 (20:10 +0000)]
Make WKWebViewConfiguration._alwaysRunsAtForegroundPriority an alias for _clientNavigationsRunAtForegroundPriority
https://bugs.webkit.org/show_bug.cgi?id=211632

Reviewed by Darin Adler.

Make WKWebViewConfiguration._alwaysRunsAtForegroundPriority an alias for _clientNavigationsRunAtForegroundPriority.
_alwaysRunsAtForegroundPriority is a frequent source of process assertion leaks that get blamed on WebKit. Clients
are using this in order to be able to do loads in background views so _clientNavigationsRunAtForegroundPriority
should suffice and is not leak prone since the process assertion is released after the navigation has completed.

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::copy const):
* UIProcess/API/APIPageConfiguration.h:
(API::PageConfiguration::alwaysRunsAtForegroundPriority const): Deleted.
(API::PageConfiguration::setAlwaysRunsAtForegroundPriority): Deleted.
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):
* UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):
* UIProcess/WebPageProxy.h:

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

5 months agoAdd a regression test for bug 211541
darin@apple.com [Fri, 8 May 2020 20:08:38 +0000 (20:08 +0000)]
Add a regression test for bug 211541
https://bugs.webkit.org/show_bug.cgi?id=211635

Reviewed by Geoffrey Garen.

* fast/box-shadow/box-shadow-huge-area-crash-expected.html: Added.
* fast/box-shadow/box-shadow-huge-area-crash.html: Added.

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

5 months agoRevert r260390
achristensen@apple.com [Fri, 8 May 2020 20:05:27 +0000 (20:05 +0000)]
Revert r260390
https://bugs.webkit.org/show_bug.cgi?id=210759
<rdar://problem/62608140>

r260390 was intended to stop hitting some assertions in ~PendingFrameLoad, but it seems to have caused a regression.
Reverting it and removing the invalid assertions.

* NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::~PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::~SpeculativeLoadManager):

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

5 months agomedia/video-zoom.html is a flaky failure
jer.noble@apple.com [Fri, 8 May 2020 19:59:37 +0000 (19:59 +0000)]
media/video-zoom.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211631

Reviewed by Eric Carlson.

Remove the 1.5s early timeout check here; with the additional 150ms per video element timeout elsewhere
in the test, this is short enough to cause flaky failures on busy bots.

* media/video-zoom.html:

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

5 months agoLimit HTTP referer to 4kb
commit-queue@webkit.org [Fri, 8 May 2020 19:39:43 +0000 (19:39 +0000)]
Limit HTTP referer to 4kb
https://bugs.webkit.org/show_bug.cgi?id=211603
<rdar://problem/56768823>

Patch by Alex Christensen <achristensen@webkit.org> on 2020-05-08
Reviewed by Chris Dumez.

Source/WebCore:

Use the origin if it's longer, unless the origin is too long.
This matches the behavior of other browsers.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1557346

Tested by API tests.

* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::setHTTPReferrer):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST):

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

5 months agoSIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
commit-queue@webkit.org [Fri, 8 May 2020 18:36:32 +0000 (18:36 +0000)]
SIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
https://bugs.webkit.org/show_bug.cgi?id=211539

Patch by Pinki Gyanchandani <pgyanchandani@apple.com> on 2020-05-08
Reviewed by Simon Fraser.

Corrected the comment.

No new test needed.

* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):

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

5 months agoFix urlsearchparams-delete.html
commit-queue@webkit.org [Fri, 8 May 2020 17:57:54 +0000 (17:57 +0000)]
Fix urlsearchparams-delete.html
https://bugs.webkit.org/show_bug.cgi?id=211456

Patch by Rob Buis <rbuis@igalia.com> on 2020-05-08
Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Update improved test expectation.

* web-platform-tests/url/urlsearchparams-delete-expected.txt:

Source/WebCore:

Step 2 of URLSearchParams.delete algorithm [1] indicates
we should run the update steps, even if no name-value
pairs were removed.

Behavior matches Chrome and Firefox.

[1] https://url.spec.whatwg.org/#dom-urlsearchparams-delete

Test: web-platform-tests/url/urlsearchparams-delete.html

* html/URLSearchParams.cpp:
(WebCore::URLSearchParams::remove):

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

5 months ago[iOS] caret appears in the middle of a search field when field is focused on agoda.com
wenson_hsieh@apple.com [Fri, 8 May 2020 17:57:39 +0000 (17:57 +0000)]
[iOS] caret appears in the middle of a search field when field is focused on agoda.com
https://bugs.webkit.org/show_bug.cgi?id=211591
<rdar://problem/60605873>

Reviewed by Antoine Quint.

Source/WebCore:

See WebKit/ChangeLog for more details.

Test: editing/selection/ios/caret-rect-after-animating-focused-text-field.html

* animation/WebAnimation.cpp:
(WebCore::WebAnimation::finishNotificationSteps):

Add plumbing to call out to the WebKit client layer after an animation finishes running.

* dom/Node.h:
* editing/VisibleSelection.h:

WEBCORE_EXPORT a couple of methods.

* page/ChromeClient.h:
(WebCore::ChromeClient::animationDidFinishForElement):

Source/WebKit:

The main search field on the mobile version of this website begins offscreen, with a CSS transform that moves it
to the far right; tapping the button element that (visually) has a search-field-like appearance on the front
page programmatically focuses the real offscreen search field, and animates it onscreen by changing the CSS
transform attribute to remove the x-axis translation.

On iOS, the caret rect is computed and sent to the UI process via editor state updates; however, the editor
state is computed immediately after focusing the input field. As such, the caret rect at this moment is computed
in the middle of the animation, leaving it stuck in an unpredictable location.

To fix this, add plumbing to call into the WebKit client layer when an animation has ended. On iOS, if the
selection is visible (i.e. a ranged selection, or editable caret), then check to see whether the element that
has finished animating contains either endpoint of the selection. If so, then schedule a followup editor state
update to push updated selection information to the UI process.

* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::animationDidFinishForElement):
* WebProcess/WebCoreSupport/WebChromeClient.h:

Add a new client hook for when animations end.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::animationDidFinishForElement):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:

Add logic to schedule a new editor state update if needed, after an animation ends that might affect either
the start or end of the selection.

(WebKit::WebPage::animationDidFinishForElement):

LayoutTests:

Add a new layout test to verify that the caret view eventually becomes visible when after a focused text field
containing the caret is animated.

* editing/selection/ios/caret-rect-after-animating-focused-text-field-expected.txt: Added.
* editing/selection/ios/caret-rect-after-animating-focused-text-field.html: Added.

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

5 months agoAllow run-safari to launch an iPad simulator
dino@apple.com [Fri, 8 May 2020 17:56:48 +0000 (17:56 +0000)]
Allow run-safari to launch an iPad simulator
https://bugs.webkit.org/show_bug.cgi?id=211606
<rdar://problem/63002849>

Reviewed by Jon Lee.

Add an "--ipad-simulator" command line option to run-safari.

* Scripts/webkitdirs.pm:
(argumentsForConfiguration):
(determineXcodeSDK): Mark the device idiom depending on the command line argument.
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded):
(findOrCreateSimulatorForIOSDevice): Create an iPad Pro simulator if requested.

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

5 months agoREGRESSION (r260228): Linker warning about limitsNavigationsToAppBoundDomains propert...
ddkilzer@apple.com [Fri, 8 May 2020 17:53:22 +0000 (17:53 +0000)]
REGRESSION (r260228): Linker warning about limitsNavigationsToAppBoundDomains property overriding instance methods from class
<https://webkit.org/b/211393>

Reviewed by Brent Fulgham.

* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration limitsNavigationsToAppBoundDomains]):
(-[WKWebViewConfiguration setLimitsNavigationsToAppBoundDomains:]):
- Move from WKPrivate category to main category to fix linker
  warnings.

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

5 months agoPreserve character set information when writing to the pasteboard when copying rich...
wenson_hsieh@apple.com [Fri, 8 May 2020 17:35:46 +0000 (17:35 +0000)]
Preserve character set information when writing to the pasteboard when copying rich text
https://bugs.webkit.org/show_bug.cgi?id=211524

Reviewed by Darin Adler.

Source/WebCore:

This patch is a followup to r261247, which introduced a workaround for Cocoa platforms to automatically add a
`meta charset` when writing HTML data to the platform pasteboard. When copying a rich text selection, we use a
different codepath when sanitizing DOM content - that is, `serializePreservingVisualAppearance`.

The previous change also introduced an enum, `AddMetaCharsetIfNeeded`, to limit applying this workaround to only
when we're writing HTML to the clipboard. However, it should be harmless to include this when reading sanitized
HTML as well, so we can also simplify this code by removing the `AddMetaCharsetIfNeeded` enum (and all of its
uses).

Test: CopyHTML.SanitizationPreservesCharacterSetInSelectedText

* Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::sanitizeDataIfNeeded):
* dom/DataTransfer.cpp:
(WebCore::DataTransfer::setDataFromItemList):
* editing/MarkupAccumulator.h:
(WebCore::MarkupAccumulator::isAllASCII const):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readHTML):
(WebCore::WebContentMarkupReader::readHTML):
* editing/markup.cpp:
(WebCore::sanitizeMarkup):
(WebCore::serializePreservingVisualAppearanceInternal):

Move the `meta charset` workaround from sanitizedMarkupForFragmentInDocument to
serializePreservingVisualAppearanceInternal, such that HTML data written to the pasteboard when copying rich
text can be used to load a web view, without losing the fact that the copied content was UTF-8 encoded.

(WebCore::sanitizedMarkupForFragmentInDocument):
* editing/markup.h:

Tools:

Add a new API test to verify that the HTML data written to the pasteboard when copying a rich text selection
can be converted into an `NSAttributedString` that contains correctly encoded non-Latin characters.

* TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

LayoutTests:

Rebaseline several layout tests.

* platform/ios/editing/pasteboard/onpaste-text-html-expected.txt:
* platform/mac/editing/pasteboard/onpaste-text-html-expected.txt: Added.
* platform/mac/fast/events/ondrop-text-html-expected.txt: Added.

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

5 months agoREGRESSION(r259209) Webview's pending URL is null after restoring session state
cdumez@apple.com [Fri, 8 May 2020 17:33:58 +0000 (17:33 +0000)]
REGRESSION(r259209) Webview's pending URL is null after restoring session state
https://bugs.webkit.org/show_bug.cgi?id=211626
<rdar://problem/62992262>

Reviewed by Alex Christensen.

Source/WebKit:

The issue was that WebPageProxy::goToBackForwardItem() would behave differently whether
the page has a running process or not. In particular, when the page did not have a
running process, goToBackForwardItem() would return early and call launchProcessWithItem()
instead. Unlike goToBackForwardItem(), launchProcessWithItem() would fail to set the
pending API request.

To address the issue, I am getting rid of launchProcessWithItem() and merging its logic
into goToBackForwardItem() instead. Both methods shared a lot of code anyway and having
2 separate code paths that may diverge is error prone.

Change is covered by new API test.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::launchProcessWithItem): Deleted.
* UIProcess/WebPageProxy.h:

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKit/RestoreSessionState.cpp:
(TestWebKitAPI::TEST):

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

5 months ago[clang-tidy] Run modernize-use-nullptr over WTF
don.olmstead@sony.com [Fri, 8 May 2020 17:31:54 +0000 (17:31 +0000)]
[clang-tidy] Run modernize-use-nullptr over WTF
https://bugs.webkit.org/show_bug.cgi?id=211628

Reviewed by Yusuke Suzuki.

Use the fix option in clang-tidy to ensure nullptr is being used across WTF.

* wtf/Assertions.cpp:
* wtf/BumpPointerAllocator.h:
(WTF::BumpPointerPool::BumpPointerPool):
(WTF::BumpPointerPool::create):
(WTF::BumpPointerAllocator::BumpPointerAllocator):
* wtf/DataLog.cpp:
(WTF::setDataFile):
* wtf/DateMath.cpp:
(WTF::parseES5DatePortion):
(WTF::parseES5TimePortion):
* wtf/FastMalloc.cpp:
(WTF::fastZeroedMalloc):
(WTF::fastStrDup):
(WTF::tryFastZeroedMalloc):
(WTF::isFastMallocEnabled):
(WTF::fastMallocGoodSize):
(WTF::fastAlignedMalloc):
(WTF::tryFastAlignedMalloc):
(WTF::fastAlignedFree):
(WTF::tryFastMalloc):
(WTF::fastMalloc):
(WTF::tryFastCalloc):
(WTF::fastCalloc):
(WTF::fastFree):
(WTF::fastRealloc):
(WTF::tryFastRealloc):
(WTF::releaseFastMallocFreeMemory):
(WTF::releaseFastMallocFreeMemoryForThisThread):
(WTF::fastMallocStatistics):
(WTF::fastMallocSize):
(WTF::fastCommitAlignedMemory):
(WTF::fastDecommitAlignedMemory):
(WTF::fastEnableMiniMode):
(WTF::fastDisableScavenger):
(WTF::fastMallocDumpMallocStats):
(WTF::AvoidRecordingScope::avoidRecordingCount):
(WTF::AvoidRecordingScope::AvoidRecordingScope):
(WTF::AvoidRecordingScope::~AvoidRecordingScope):
(WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
(WTF::MallocCallTracker::singleton):
(WTF::MallocCallTracker::MallocCallTracker):
(WTF::MallocCallTracker::recordMalloc):
(WTF::MallocCallTracker::recordRealloc):
(WTF::MallocCallTracker::recordFree):
(WTF::MallocCallTracker::dumpStats):
* wtf/HashTable.h:
(WTF::KeyTraits>::inlineLookup):
(WTF::KeyTraits>::lookupForWriting):
(WTF::KeyTraits>::fullLookupForWriting):
(WTF::KeyTraits>::add):
* wtf/MetaAllocator.cpp:
(WTF::MetaAllocator::findAndRemoveFreeSpace):
* wtf/ParallelJobsGeneric.cpp:
* wtf/RandomDevice.cpp:
(WTF::RandomDevice::cryptographicallyRandomValues):
* wtf/RawPointer.h:
(WTF::RawPointer::RawPointer):
* wtf/RedBlackTree.h:
* wtf/SHA1.cpp:
(WTF::SHA1::hexDigest):
* wtf/SchedulePair.h:
(WTF::SchedulePair::SchedulePair):
* wtf/StackTrace.cpp:
(WTFGetBacktrace):
(WTF::StackTrace::dump const):
* wtf/StringExtras.h:
(strnstr):
* wtf/Variant.h:
* wtf/Vector.h:
(WTF::VectorBufferBase::deallocateBuffer):
(WTF::VectorBufferBase::releaseBuffer):
(WTF::VectorBufferBase::VectorBufferBase):
* wtf/cf/CFURLExtras.cpp:
(WTF::createCFURLFromBuffer):
(WTF::getURLBytes):
* wtf/cf/CFURLExtras.h:
* wtf/cf/FileSystemCF.cpp:
(WTF::FileSystem::pathAsURL):
* wtf/dtoa/double-conversion.cc:
* wtf/dtoa/utils.h:
(WTF::double_conversion::BufferReference::BufferReference):
* wtf/text/CString.cpp:
(WTF::CString::mutableData):
* wtf/text/CString.h:
* wtf/text/StringBuffer.h:
(WTF::StringBuffer::release):
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::createUninitializedInternal):
(WTF::StringImpl::reallocateInternal):
* wtf/text/StringImpl.h:
(WTF::StringImpl::constructInternal<LChar>):
(WTF::StringImpl::constructInternal<UChar>):
(WTF::StringImpl::characters<LChar> const):
(WTF::StringImpl::characters<UChar> const):
(WTF::find):
(WTF::reverseFindLineTerminator):
(WTF::reverseFind):
(WTF::equalIgnoringNullity):
(WTF::codePointCompare):
(WTF::isSpaceOrNewline):
(WTF::lengthOfNullTerminatedString):
(WTF::StringImplShape::StringImplShape):
(WTF::StringImpl::isolatedCopy const):
(WTF::StringImpl::isAllASCII const):
(WTF::StringImpl::isAllLatin1 const):
(WTF::isAllSpecialCharacters):
(WTF::isSpecialCharacter const):
(WTF::StringImpl::StringImpl):
(WTF::StringImpl::create8BitIfPossible):
(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::createFromLiteral):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::adopt):
(WTF::StringImpl::cost const):
(WTF::StringImpl::costDuringGC):
(WTF::StringImpl::setIsAtom):
(WTF::StringImpl::setHash const):
(WTF::StringImpl::ref):
(WTF::StringImpl::deref):
(WTF::StringImpl::copyCharacters):
(WTF::StringImpl::at const):
(WTF::StringImpl::allocationSize):
(WTF::StringImpl::maxInternalLength):
(WTF::StringImpl::tailOffset):
(WTF::StringImpl::requiresCopy const):
(WTF::StringImpl::tailPointer const):
(WTF::StringImpl::tailPointer):
(WTF::StringImpl::substringBuffer const):
(WTF::StringImpl::substringBuffer):
(WTF::StringImpl::assertHashIsCorrect const):
(WTF::StringImpl::StaticStringImpl::StaticStringImpl):
(WTF::StringImpl::StaticStringImpl::operator StringImpl&):
(WTF::equalIgnoringASCIICase):
(WTF::startsWithLettersIgnoringASCIICase):
(WTF::equalLettersIgnoringASCIICase):
* wtf/text/TextBreakIterator.cpp:
(WTF::initializeIterator):
(WTF::setContextAwareTextForIterator):
(WTF::openLineBreakIterator):
* wtf/text/TextBreakIterator.h:
(WTF::LazyLineBreakIterator::get):
* wtf/text/WTFString.cpp:
(WTF::charactersToFloat):
* wtf/text/cf/StringImplCF.cpp:
(WTF::StringWrapperCFAllocator::allocate):
(WTF::StringWrapperCFAllocator::create):
(WTF::StringImpl::createCFString):
* wtf/text/icu/UTextProviderLatin1.cpp:
(WTF::uTextLatin1Clone):
(WTF::openLatin1ContextAwareUTextProvider):
* wtf/text/icu/UTextProviderUTF16.cpp:
(WTF::openUTF16ContextAwareUTextProvider):
* wtf/win/FileSystemWin.cpp:
(WTF::FileSystemImpl::makeAllDirectories):
(WTF::FileSystemImpl::storageDirectory):
(WTF::FileSystemImpl::openTemporaryFile):
(WTF::FileSystemImpl::openFile):
(WTF::FileSystemImpl::writeToFile):
(WTF::FileSystemImpl::readFromFile):
(WTF::FileSystemImpl::deleteNonEmptyDirectory):
* wtf/win/LanguageWin.cpp:
(WTF::localeInfo):
* wtf/win/MainThreadWin.cpp:
(WTF::initializeMainThreadPlatform):
* wtf/win/OSAllocatorWin.cpp:
(WTF::OSAllocator::reserveUncommitted):
(WTF::OSAllocator::reserveAndCommit):
* wtf/win/RunLoopWin.cpp:
(WTF::RunLoop::run):
(WTF::RunLoop::iterate):
(WTF::RunLoop::RunLoop):
(WTF::RunLoop::cycle):
(WTF::RunLoop::TimerBase::start):
* wtf/win/ThreadingWin.cpp:
(WTF::Thread::establishHandle):

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

5 months agoREGRESSION(r261341): imported/w3c/web-platform-tests/html/semantics/embedded-content...
eric.carlson@apple.com [Fri, 8 May 2020 17:30:34 +0000 (17:30 +0000)]
REGRESSION(r261341): imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm is failing
https://bugs.webkit.org/show_bug.cgi?id=211612
<rdar://problem/63024081>

Unreviewed test gardening.

* TestExpectations: Mark test as Flakey. A proper fix is tracked by https://bugs.webkit.org/show_bug.cgi?id=211630.

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

5 months agoCode pattern in GC tests in LayoutTests is broken
ysuzuki@apple.com [Fri, 8 May 2020 17:14:15 +0000 (17:14 +0000)]
Code pattern in GC tests in LayoutTests is broken
https://bugs.webkit.org/show_bug.cgi?id=211595

Reviewed by Saam Barati.

LayoutTests have several tests which attempt to ensure that document is not leaked. But they are broken since these tests are not correctly
handling conservative GC of JavaScriptCore. These tests are taking a following approach.

    1. Allocate *one* iframe doing something inside it.
    2. Remove iframe from the parent document to make it released.
    3. Repeatedly invoke GC and test whether (1)'s document gets collected.

This is not the right approach. Since JavaScriptCore has conservative GC, it is easily possible that (1)'s pointer value remains in some of
conservative roots: CPU registers, stack etc. And JavaScriptCore conservative GC scans it and keeps it alive. The above approach makes the
test super flaky and any unrelated changes in JavaScriptCore and C compiler can make this test failed.

This is not a problem in practice. Web pages are executing various kind of code and they clobber conservative roots. However, tests in
LayoutTests are too simple to keep it alive accidentally.

The right approach for conservative GC is the following.

    1. Allocate *many* iframes doing something inside them with loop. By creating iframes with loop, for every iteration, it is likely that
       the same CPU registers and stack locations are overwritten by the last created iframe reference. This dramatically reduces the possibility
       for GC to find these addresses in conservative roots.
    2. Remove iframes from the parent document to make them released.
    3. Repeatedly invoke GC and test whether *one of (1) iframes* gets collected at least. Theoretically this is still possible that completely
       unrelated integer value in conservative roots can point to the reference of (1). By allocating many iframes in (1) and testing one of them,
       we can reduce the possibility of this conflict.

This patch adds testDocumentIsNotLeaked helper function to enforce this pattern. And rewrite broken tests with this helper to make it less-flaky.

* highlight/highlight-world-leak.html:
* http/tests/IndexedDB/collect-IDB-objects.https.html:
* http/tests/media/clearkey/collect-webkit-media-session.html:
* http/tests/media/media-stream/collect-media-devices.https.html:
* http/tests/resources/gc.js: Added.
(window.gc.gcRec):
(window.gc.window.gc):
(nukeArray):
(async testDocumentIsNotLeaked):
* intersection-observer/no-document-leak.html:
* performance-api/performance-observer-no-document-leak.html:
* resources/gc.js:
(nukeArray):
(async testDocumentIsNotLeaked):
* webanimations/leak-document-with-web-animation.html:

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

5 months agoWKWebView.title should be safe browsing warning's title during a safe browsing warning
commit-queue@webkit.org [Fri, 8 May 2020 17:13:36 +0000 (17:13 +0000)]
WKWebView.title should be safe browsing warning's title during a safe browsing warning
https://bugs.webkit.org/show_bug.cgi?id=211403

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

Source/WebKit:

Add a new property to PageLoadState, which allows the title to be set underneath it.
That way, once the safe browsing warning is closed, we can update the title to what it would've been,
including any changes that happened while the warning was open.

Covered by an API test.  I also manually verified this fixes rdar://problem/56201982

* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::commitChanges):
(WebKit::PageLoadState::reset):
(WebKit::PageLoadState::didCommitLoad):
(WebKit::PageLoadState::title const):
(WebKit::PageLoadState::setTitleFromSafeBrowsingWarning):
* UIProcess/PageLoadState.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:
(TEST):

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

5 months ago[iOS] Update message filtering rules in the WebContent process' sandbox
pvollan@apple.com [Fri, 8 May 2020 16:55:43 +0000 (16:55 +0000)]
[iOS] Update message filtering rules in the WebContent process' sandbox
https://bugs.webkit.org/show_bug.cgi?id=211188

Reviewed by Brent Fulgham.

Based on telemetry and local testing, update the message filtering rules in the WebContent process' sandbox on iOS.
Messages that have not been observed being in use should be denied.

No new tests, covered by existing tests.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 months agoTurn processDidBecomeUnresponsive logging into error logging
cdumez@apple.com [Fri, 8 May 2020 16:48:32 +0000 (16:48 +0000)]
Turn processDidBecomeUnresponsive logging into error logging
https://bugs.webkit.org/show_bug.cgi?id=211629

Reviewed by Youenn Fablet.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::processDidBecomeUnresponsive):

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

5 months ago[Cocoa] Close connections to Launch Services after revoking extension
pvollan@apple.com [Fri, 8 May 2020 16:33:21 +0000 (16:33 +0000)]
[Cocoa] Close connections to Launch Services after revoking extension
https://bugs.webkit.org/show_bug.cgi?id=211594

Reviewed by Brent Fulgham.

Source/WebCore/PAL:

Declare _LSDService class.

* pal/spi/cocoa/LaunchServicesSPI.h:

Source/WebKit:

In <https://trac.webkit.org/changeset/258915/webkit>, connections to the Launch Services database mapping
services were denied, by creating a temporary extension. After revoking this extension in the WebContent
process, it is important to close any open connections to Launch Services initiated by the mapping.

No new tests, covered by existing UTI/MIME type tests.

* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

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

5 months agoMake callBufferProducingFunction safer to use by adding a compile-time assertion
darin@apple.com [Fri, 8 May 2020 16:23:22 +0000 (16:23 +0000)]
Make callBufferProducingFunction safer to use by adding a compile-time assertion
https://bugs.webkit.org/show_bug.cgi?id=211599

Reviewed by Ross Kirsling.

* wtf/unicode/icu/ICUHelpers.h:
(WTF::CallBufferProducingFunction::argumentTuple): Add a static_assert that
checks these are just simple types, aside from the Vector for the buffer.
This would have caught the UpconvertedCharacters problem fixed earlier today.

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

5 months agoFix for crashes in LayoutTests in isolated tree mode.
andresg_22@apple.com [Fri, 8 May 2020 16:17:55 +0000 (16:17 +0000)]
Fix for crashes in LayoutTests in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=211622

Reviewed by Chris Fleizach.

Several LayoutTests.

Return the root from the isolated tree when it is really ready.
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::rootObject):

Some code cleanup.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::clickPoint):

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

5 months agoWTF headers should compile independently
don.olmstead@sony.com [Fri, 8 May 2020 15:39:39 +0000 (15:39 +0000)]
WTF headers should compile independently
https://bugs.webkit.org/show_bug.cgi?id=211608

Reviewed by Yusuke Suzuki.

When a WTF header is included on its own within a source file it should compile.
These issues were found when working on a tooling build for running static
analysis over WTF. Forward declarations were used whenever possible otherwise
an include was used.

Additionally fix some errors found by Clang 10.

* wtf/AggregateLogger.h:
* wtf/CallbackAggregator.h:
* wtf/Dominators.h:
* wtf/HashIterators.h:
* wtf/IndexSparseSet.h:
* wtf/LoggingHashMap.h:
* wtf/LoggingHashTraits.h:
* wtf/RunLoopTimer.h:
* wtf/Stopwatch.h:
* wtf/Threading.h:
* wtf/cf/RunLoopTimerCF.cpp:
* wtf/persistence/PersistentCoder.h:
* wtf/text/LineBreakIteratorPoolICU.h:
* wtf/text/NullTextBreakIterator.h:
* wtf/text/StringOperators.h:
* wtf/text/StringToIntegerConversion.h:
* wtf/text/cf/TextBreakIteratorCF.h:
* wtf/text/icu/TextBreakIteratorICU.h:
* wtf/text/win/WCharStringExtras.h:

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

5 months ago[GTK][WPE] Create common glib expectation file
lmoura@igalia.com [Fri, 8 May 2020 15:21:57 +0000 (15:21 +0000)]
[GTK][WPE] Create common glib expectation file
https://bugs.webkit.org/show_bug.cgi?id=211183

Reviewed by Carlos Garcia Campos.

Tools:

* Scripts/webkitpy/port/gtk.py:
(GtkPort._search_paths): Add glib to expectations search path
(GtkPort.test_expectations_file_position): Update test
* Scripts/webkitpy/port/gtk_unittest.py:
(GtkPortTest.test_default_baseline_search_path): Update test
(GtkPortTest.test_port_specific_expectations_files): Update test and
make check-webkit-style happier
* Scripts/webkitpy/port/wpe.py:
(WPEPort._search_paths): Add glib to expectations search path
(WPEPort.test_expectations_file_position): Update test
* Scripts/webkitpy/port/wpe_unittest.py:
(WPEPortTest.test_default_baseline_search_path): Update test
(WPEPortTest.test_port_specific_expectations_files): Update test and
make check-webkit-style happier

LayoutTests:

* platform/glib/TestExpectations: Added.

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

5 months agoOverflow scrollers in iframes don't get mouseMovedInContentArea()
simon.fraser@apple.com [Fri, 8 May 2020 15:02:23 +0000 (15:02 +0000)]
Overflow scrollers in iframes don't get mouseMovedInContentArea()
https://bugs.webkit.org/show_bug.cgi?id=211347
<rdar://problem/62784560>

Reviewed by Tim Horton.

Source/WebCore:

We never dispatched mouseMovedInContentArea() on ScrollableAreas in subframes, so overlay scrollbar
interactions there were broken. This is because the code ran from EventHandler::mouseMoved(), which
only runs for the main frame.

Instead, move the mouseMovedInContentArea() dispatch down into updateMouseEventTargetNode() which
is run for each subframe. notifyScrollableAreasOfMouseEvents() takes an event name so we only dispatch
for mouseMove events. There's some complexity here related to whether the old and new ScrollableArea
targets are nested; this code doesn't try to do the right thing with nesting, but does handle the mouse
moving between the scrollable main frame and an overflow region.

enclosingScrollableArea() is fixed to return the FrameView. enclosingScrollableLayer() is flawed, as noted
in the RenderLayer.h comment.

Tests: fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html
       fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html

* page/EventHandler.cpp:
(WebCore::EventHandler::enclosingScrollableArea):
(WebCore::EventHandler::mouseMoved):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::pointerCaptureElementDidChange):
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::notifyScrollableAreasOfMouseEvents):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::enclosingScrollableArea): Deleted.
(WebCore::EventHandler::notifyScrollableAreasOfMouseEnterExit): Deleted.
* page/EventHandler.h:
* page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::dispatchSyntheticMouseOut):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::debugDescription const):
* rendering/RenderLayer.h:

LayoutTests:

The ordering of callbacks in the scroll-animator tests changed, but in ways that don't materially
affect behavior. Two new real overlay scrollbar tests.

* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered-expected.txt: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-hovered.html: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal-expected.txt: Added.
* fast/scrolling/mac/scrollbars/overflow-in-iframe-overlay-scrollbar-reveal.html: Added.
* fast/scrolling/scroll-animator-basic-events-expected.txt:
* fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
* fast/scrolling/scroll-animator-overlay-scrollbars-hovered-expected.txt:
* fast/scrolling/scroll-animator-select-list-events-expected.txt:

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

5 months agoFlaky Test: media/track/track-in-band-metadata-display-order.html
lawrence.j@apple.com [Fri, 8 May 2020 14:24:45 +0000 (14:24 +0000)]
Flaky Test: media/track/track-in-band-metadata-display-order.html
https://bugs.webkit.org/show_bug.cgi?id=206226

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

5 months ago[ macOS wk2 ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing
lawrence.j@apple.com [Fri, 8 May 2020 14:08:01 +0000 (14:08 +0000)]
[ macOS wk2 ] http/tests/IndexedDB/collect-IDB-objects.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=207571

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

5 months ago[ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing...
lawrence.j@apple.com [Fri, 8 May 2020 14:02:33 +0000 (14:02 +0000)]
[ iOS wk2 ] http/tests/cache-storage/cache-representation.https.html is flaky timing out.
https://bugs.webkit.org/show_bug.cgi?id=207665

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

5 months ago[LFC][TFC] The fixed logical width should be used as the max width for a cell
zalan@apple.com [Fri, 8 May 2020 14:02:00 +0000 (14:02 +0000)]
[LFC][TFC] The fixed logical width should be used as the max width for a cell
https://bugs.webkit.org/show_bug.cgi?id=211610

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content.html

* layout/tableformatting/TableFormattingContextGeometry.cpp:
(WebCore::Layout::TableFormattingContext::Geometry::intrinsicWidthConstraintsForCell):

LayoutTests:

* fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content-expected.txt: Added.
* fast/layoutformattingcontext/table-simple-with-fixed-widht-and-inline-content.html: Added.

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

5 months agoREGRESSION: [ iOS wk2 ] fast/forms/input-text-scroll-left-on-blur.html is flaky failing.
lawrence.j@apple.com [Fri, 8 May 2020 13:51:12 +0000 (13:51 +0000)]
REGRESSION: [ iOS wk2 ] fast/forms/input-text-scroll-left-on-blur.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209812

Unreviewed test gardening.

* platform/ios-wk2/TestExpectations:

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

5 months ago[ Mojave wk1 Release ] platform/mac/media/media-source/videoplaybackquality-decompres...
lawrence.j@apple.com [Fri, 8 May 2020 13:46:10 +0000 (13:46 +0000)]
[ Mojave wk1 Release ] platform/mac/media/media-source/videoplaybackquality-decompressionsession.html is flaky failing.
https://bugs.webkit.org/show_bug.cgi?id=209866

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

5 months agoHandle remote audio capture IPC messages in a background thread
youenn@apple.com [Fri, 8 May 2020 12:42:03 +0000 (12:42 +0000)]
Handle remote audio capture IPC messages in a background thread
https://bugs.webkit.org/show_bug.cgi?id=211583

Reviewed by Eric Carlson.

Source/WebCore:

* platform/mediastream/mac/AudioMediaStreamTrackRendererCocoa.cpp:
(WebCore::AudioMediaStreamTrackRendererCocoa::pushSamples):
Add assertion to check that we are not running on the main thread.

Source/WebKit:

We introduce RemoteCaptureSampleManager which is responsible to get remote capture sample IPC messages and treat them from a background thread.
It is currently used to handle audio capture IPC messages.
We move UserMediaCaptureManager::Source in its own file and rename it to RemoteRealtimeMediaSource.

Covered by existing tests.

* DerivedSources-input.xcfilelist:
* DerivedSources-output.xcfilelist:
* DerivedSources.make:
* PlatformMac.cmake:
* SourcesCocoa.txt:
* UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/cocoa/RemoteCaptureSampleManager.cpp: Added.
(WebKit::RemoteCaptureSampleManager::RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::~RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::setConnection):
(WebKit::RemoteCaptureSampleManager::addSource):
(WebKit::RemoteCaptureSampleManager::removeSource):
(WebKit::RemoteCaptureSampleManager::dispatchToThread):
(WebKit::RemoteCaptureSampleManager::storageChanged):
(WebKit::RemoteCaptureSampleManager::audioSamplesAvailable):
* WebProcess/cocoa/RemoteCaptureSampleManager.h: Added.
* WebProcess/cocoa/RemoteCaptureSampleManager.messages.in: Added.
* WebProcess/cocoa/RemoteRealtimeMediaSource.cpp: Added.
(WebKit::RemoteRealtimeMediaSource::RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::~RemoteRealtimeMediaSource):
(WebKit::RemoteRealtimeMediaSource::whenReady):
(WebKit::RemoteRealtimeMediaSource::didFail):
(WebKit::RemoteRealtimeMediaSource::setAsReady):
(WebKit::RemoteRealtimeMediaSource::clone):
(WebKit::RemoteRealtimeMediaSource::setCapabilities):
(WebKit::RemoteRealtimeMediaSource::setSettings):
(WebKit::RemoteRealtimeMediaSource::remoteAudioSamplesAvailable):
(WebKit::RemoteRealtimeMediaSource::remoteVideoSampleAvailable):
(WebKit::RemoteRealtimeMediaSource::connection):
(WebKit::RemoteRealtimeMediaSource::startProducingData):
(WebKit::RemoteRealtimeMediaSource::stopProducingData):
(WebKit::RemoteRealtimeMediaSource::setShouldApplyRotation):
(WebKit::RemoteRealtimeMediaSource::capabilities):
(WebKit::RemoteRealtimeMediaSource::applyConstraints):
(WebKit::RemoteRealtimeMediaSource::applyConstraintsSucceeded):
(WebKit::RemoteRealtimeMediaSource::applyConstraintsFailed):
(WebKit::RemoteRealtimeMediaSource::hasEnded):
(WebKit::RemoteRealtimeMediaSource::stopBeingObserved):
(WebKit::RemoteRealtimeMediaSource::requestToEnd):
* WebProcess/cocoa/RemoteRealtimeMediaSource.h: Added.
(WebKit::RemoteRealtimeMediaSource::identifier const):
(WebKit::RemoteRealtimeMediaSource::settings const):
(WebKit::RemoteRealtimeMediaSource::setShouldCaptureInGPUProcess):
(WebKit::RemoteRealtimeMediaSource::shouldCaptureInGPUProcess const):
* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::createCaptureSource):
(WebKit::UserMediaCaptureManager::cloneSource):
(WebKit::UserMediaCaptureManager::cloneVideoSource):
(WebKit::UserMediaCaptureManager::AudioFactory::createAudioCaptureSource):
(WebKit::UserMediaCaptureManager::AudioFactory::setShouldCaptureInGPUProcess):
(WebKit::UserMediaCaptureManager::VideoFactory::createVideoCaptureSource):
(WebKit::UserMediaCaptureManager::DisplayFactory::createDisplayCaptureSource):
* WebProcess/cocoa/UserMediaCaptureManager.h:
* WebProcess/cocoa/UserMediaCaptureManager.messages.in:

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

5 months agoAdd myself as committer to contributors.json
pmatos@igalia.com [Fri, 8 May 2020 11:36:25 +0000 (11:36 +0000)]
Add myself as committer to contributors.json

Patch by Paulo Matos <pmatos@igalia.com> on 2020-05-08

* Scripts/webkitpy/common/config/contributors.json:

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

5 months agoVideo capture does not get unmuted in case of tab switch on iOS
youenn@apple.com [Fri, 8 May 2020 10:54:07 +0000 (10:54 +0000)]
Video capture does not get unmuted in case of tab switch on iOS
https://bugs.webkit.org/show_bug.cgi?id=211509

Reviewed by Eric Carlson.

Source/WebCore:

Remove setInterrupted and related code.
Instead, directly use setMuted(true/false) of the source of capture tracks.
To ensure we validate that the active source is tied to a track of the document,
we add RealtimeSource::isSameAs which handles the case of a RealtimeVideoSource wrapping an AVVideoCaptureSource.
There might be multiple video tracks with each one its RealtimeVideoSource using the same AVVideoCaptureSource.
We mute the AVVideoCaptureSource directly to make sure all linked tracks will get muted/unmuted at the same time.
Tests to be fixed.

* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::isSourceCapturingForDocument):
(WebCore::MediaStreamTrack::updateCaptureAccordingToMutedState):
* Modules/mediastream/MediaStreamTrack.h:
* dom/Document.cpp:
(WebCore::Document::visibilityStateChanged):
* platform/mediastream/RealtimeMediaSource.cpp:
* platform/mediastream/RealtimeMediaSource.h:
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
* platform/mediastream/RealtimeMediaSourceCenter.h:
* platform/mediastream/RealtimeMediaSourceFactory.h:
* platform/mediastream/RealtimeVideoSource.h:
* platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
* platform/mediastream/mac/CoreAudioCaptureSource.h:
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
* platform/mock/MockRealtimeMediaSourceCenter.cpp:

Source/WebKit:

Remove no longer needed code.

* WebProcess/cocoa/UserMediaCaptureManager.cpp:
(WebKit::UserMediaCaptureManager::VideoFactory::setActiveSource):
* WebProcess/cocoa/UserMediaCaptureManager.h:

LayoutTests:

* platform/ios/TestExpectations:
Disable GPU process test since we are not able yet to mute/unmute handle multiple video tracks
with different sources as can be done if capture is done out of process.
* platform/ios/mediastream/video-muted-in-background-tab.html:
Update test to ensure the track is producing content.

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

5 months agoUnreviewed, reverting r261010.
psaavedra@igalia.com [Fri, 8 May 2020 10:23:22 +0000 (10:23 +0000)]
Unreviewed, reverting r261010.

Test skipped for all ARM. no evidence of this affecting iOS

Reverted changeset:

"Skip on ARM and MIPS stress/array-buffer-view-watchpoint-can-
be-fired-in-really-add-in-dfg.js added after r260990"
https://bugs.webkit.org/show_bug.cgi?id=211304
https://trac.webkit.org/changeset/261010

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

5 months agoUnreviewed. Fix GTK4 build after r261370
carlosgc@webkit.org [Fri, 8 May 2020 08:47:28 +0000 (08:47 +0000)]
Unreviewed. Fix GTK4 build after r261370

* UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:
(webkitScriptDialogIsUserHandled):

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

5 months ago[WPE][WebDriver] Implement user prompt support
lmoura@igalia.com [Fri, 8 May 2020 08:21:55 +0000 (08:21 +0000)]
[WPE][WebDriver] Implement user prompt support
https://bugs.webkit.org/show_bug.cgi?id=207372

Reviewed by Carlos Garcia Campos.

Provide a default implementation for WebDriver dialog commands.
This implementation will mimic the expected browser behavior of
accepting/dismissing the dialogs, while not exposing any new API.

* UIProcess/API/glib/WebKitScriptDialogPrivate.h:
- Expose new private function to check whether the dialog is using a
default implementation or is handled by the user.
* UIProcess/API/glib/WebKitWebView.cpp:
- Avoid default WebDriver behavior if the dialog is user-handled.
(webkitWebViewSetCurrentScriptDialogUserInput):
(webkitWebViewAcceptCurrentScriptDialog):
(webkitWebViewDismissCurrentScriptDialog):
* UIProcess/API/gtk/WebKitScriptDialogGtk.cpp:
(webkitScriptDialogIsUserHandled):
- Return whether the dialog is user handled.
* UIProcess/API/wpe/WebKitScriptDialogWPE.cpp:
- Added basic behavior for the WebDriver dialog callbacks for WPE.
(webkitScriptDialogAccept):
(webkitScriptDialogDismiss):
(webkitScriptDialogSetUserInput):
(webkitScriptDialogIsUserHandled):

* UIProcess/API/wpe/WebKitWebViewWPE.cpp:
(webkitWebViewScriptDialog):
- Hold a dialog ref if the webview is controlled by automation and ends
up calling the default "script-dialog" event handler.

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

5 months ago[GTK][WPE] Gardening, update expectations and baselines after r261341
dpino@igalia.com [Fri, 8 May 2020 08:06:44 +0000 (08:06 +0000)]
[GTK][WPE] Gardening, update expectations and baselines after r261341
https://bugs.webkit.org/show_bug.cgi?id=211616

Unreviewed gardening.

* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-video-element/intrinsic_sizes-expected.txt: Added.
* platform/wpe/TestExpectations:

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

5 months agoMayBegin wheel event in a <select> doesn't flash the scrollers
simon.fraser@apple.com [Fri, 8 May 2020 05:48:59 +0000 (05:48 +0000)]
MayBegin wheel event in a <select> doesn't flash the scrollers
https://bugs.webkit.org/show_bug.cgi?id=211605

Reviewed by Antti Koivisto.

Source/WebCore:

We need to special-case scrollable <select> elements, because they are ScrollableAreas
which are never asynchronously scrolled, so the ScrollingTree never dispatches the handleWheelEventPhase()
which is necessary to flash overlay scrollbars. Scrollable <select> elements are always in the
non-fast scrollable region.

Fix findEnclosingScrollableContainer() to return a ScrollableArea for the "maybegin" and "canceled" events
that have no delta.

Remove some "inline" and make some things references.

Tests: fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html
       fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html

* page/EventHandler.cpp:
(WebCore::handleWheelEventPhaseInScrollableArea):
(WebCore::didScrollInScrollableArea):
(WebCore::handleWheelEventInAppropriateEnclosingBox):
(WebCore::shouldGesturesTriggerActive):
(WebCore::EventHandler::eventLoopHandleMouseUp):
(WebCore::EventHandler::eventLoopHandleMouseDragged):
* page/mac/EventHandlerMac.mm:
(WebCore::findEnclosingScrollableContainer):
(WebCore::EventHandler::determineWheelEventTarget):
* testing/Internals.cpp:
(WebCore::Internals::scrollableAreaForNode): Fix to find the ScrollableArea for RenderListBoxes.

LayoutTests:

* fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered-expected.txt: Added.
* fast/scrolling/mac/scrollbars/select-overlay-scrollbar-hovered.html: Added.
* fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal-expected.txt: Added.
* fast/scrolling/mac/scrollbars/select-overlay-scrollbar-reveal.html: Added.

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

5 months ago[GTK] Gardening two poster tests and a webgl failure
lmoura@igalia.com [Fri, 8 May 2020 04:23:01 +0000 (04:23 +0000)]
[GTK] Gardening two poster tests and a webgl failure

Unreviewed test gardening.

* platform/gtk/TestExpectations:

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

5 months ago[WebAuthn] Roll back newly created credentials if an error occurs
jiewen_tan@apple.com [Fri, 8 May 2020 02:33:15 +0000 (02:33 +0000)]
[WebAuthn] Roll back newly created credentials if an error occurs
https://bugs.webkit.org/show_bug.cgi?id=183530
<rdar://problem/43357305>

Reviewed by Brent Fulgham.

Source/WebKit:

We should clean up any newly created credentials if an error occurs before the relying party
registers the identity. Otherwise we are left with a dangling credential.

Covered by API tests.

* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h:
* UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserVerification):
(WebKit::LocalAuthenticator::receiveException const):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-attestation.html: Added.
* TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la.html:

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

5 months agorun-javascriptcore-tests with remote should be verbose
sbarati@apple.com [Fri, 8 May 2020 02:22:20 +0000 (02:22 +0000)]
run-javascriptcore-tests with remote should be verbose
https://bugs.webkit.org/show_bug.cgi?id=211596

Reviewed by Alexey Proskuryakov.

Our iOS testing bots could use this better output.

* Scripts/run-javascriptcore-tests:
(runJSCStressTests):

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

5 months agoUnreviewed, reverting r261252.
cdumez@apple.com [Fri, 8 May 2020 02:14:33 +0000 (02:14 +0000)]
Unreviewed, reverting r261252.

Reland r260684 now that a proper fix has landed in Reader

Reverted changeset:

"REGRESSION (r260684): Reader background is lost after
multitasking"
https://bugs.webkit.org/show_bug.cgi?id=211533
https://trac.webkit.org/changeset/261252

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

5 months agoSIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
commit-queue@webkit.org [Fri, 8 May 2020 01:54:31 +0000 (01:54 +0000)]
SIGILL @ WebCore::Shape::createRasterShape -- DOS ASAN
https://bugs.webkit.org/show_bug.cgi?id=211539

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

Source/WebCore:

Removed the RELEASE_ASSERT because its possible for imageData to be null when imageRect size is huge value.

Test: fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html

* rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape):

LayoutTests:

Added a regression test and enabled it only for WK1.

* TestExpectations:
* fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-imagedata-overflow.html: Added.
* platform/ios-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:

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

5 months agoWeb Inspector: Timelines: visible outline after clicking the close X button
nvasilyev@apple.com [Fri, 8 May 2020 01:04:02 +0000 (01:04 +0000)]
Web Inspector: Timelines: visible outline after clicking the close X button
https://bugs.webkit.org/show_bug.cgi?id=211604
<rdar://problem/62998871>

Reviewed by Timothy Hatcher.

Never display focus outline for TreeOutline items.

* UserInterface/Views/TreeOutline.css:
(.tree-outline .item):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.selected):

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

5 months agoBuild Fix for MacCatalyst
megan_gardner@apple.com [Fri, 8 May 2020 00:39:24 +0000 (00:39 +0000)]
Build Fix for MacCatalyst
https://bugs.webkit.org/show_bug.cgi?id=211601

Reviewed by Tim Horton.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _removeContextMenuViewIfPossible]):

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

5 months agoCrash under WebKit::XPCServiceMain
cdumez@apple.com [Thu, 7 May 2020 23:54:54 +0000 (23:54 +0000)]
Crash under WebKit::XPCServiceMain
https://bugs.webkit.org/show_bug.cgi?id=211600
<rdar://problem/62875458>

Reviewed by Darin Adler.

Made the following changes:
- Crash under strcmp() could in theory happen if expectedBundleVersion.UTF8String was null, which could
  happen if expectedBundleVersion was null. I now use higher level String types for the versions, make
  sure they are not null and use String comparison to compare them.
- Call CRASH() instead of __builtin_trap(), to guarantee that we crash with a SIGTRAP (see comment next
  to CRASH() macro).
- Move CRASH() call to a crashDueWebKitFrameworkVersionMismatch() never inlined function to make it
  clear when it crashes due to a framework version mismatch and distinguish from proper crashes.

* Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::crashDueWebKitFrameworkVersionMismatch):
(WebKit::XPCServiceMain):

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

5 months agoWeb Inspector: Uncaught Exception: TypeError: null is not an object (evaluating ...
drousso@apple.com [Thu, 7 May 2020 23:22:14 +0000 (23:22 +0000)]
Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
https://bugs.webkit.org/show_bug.cgi?id=211593

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

* UserInterface/Views/ResourceClusterContentView.js:
(WI.ResourceClusterContentView.prototype._normalizeMIMETypeForDOM):

LayoutTests:

* inspector/unit-tests/mimetype-utilities.html:
* inspector/unit-tests/mimetype-utilities-expected.txt:
Add some tests for `parseMIMEType`.

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

5 months agoRemove AudioMediaStreamTrackRenderer::muted
youenn@apple.com [Thu, 7 May 2020 23:17:26 +0000 (23:17 +0000)]
Remove AudioMediaStreamTrackRenderer::muted
https://bugs.webkit.org/show_bug.cgi?id=211289

Reviewed by Eric Carlson.

Source/WebCore:

* platform/mediastream/AudioMediaStreamTrackRenderer.h:
muted is unnecessary since we are using start/stop instead.

Source/WebKit:

muted is unnecessary since we are using start/stop instead.

* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.cpp:
* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.h:
* GPUProcess/webrtc/RemoteAudioMediaStreamTrackRenderer.messages.in:
* WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.cpp:
* WebProcess/GPU/webrtc/AudioMediaStreamTrackRenderer.h:

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

5 months ago[macOS] Playhead in Touch Bar continues when loading stalls
eric.carlson@apple.com [Thu, 7 May 2020 23:08:44 +0000 (23:08 +0000)]
[macOS] Playhead in Touch Bar continues when loading stalls
https://bugs.webkit.org/show_bug.cgi?id=211585
<rdar://problem/33893306>

Reviewed by Darin Adler.

* platform/cocoa/PlaybackSessionModelMediaElement.h:
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::updateForEventName): Listen for `waitingEvent`
and `canplay` events. Don't claim to be playing when stalled.
(WebCore::PlaybackSessionModelMediaElement::isStalled const): New.

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

5 months agoPoster set after playback begins should be ignored
eric.carlson@apple.com [Thu, 7 May 2020 23:05:40 +0000 (23:05 +0000)]
Poster set after playback begins should be ignored
https://bugs.webkit.org/show_bug.cgi?id=211464

Reviewed by Jer Noble.
Source/WebCore:

Redo the poster frame logic to use the `show poster flag` logic from the spec.

Test: media/video-poster-set-after-playback.html

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_showPoster.
(WebCore::HTMLMediaElement::prepareForLoad): m_displayMode was removed.
(WebCore::HTMLMediaElement::selectMediaResource): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::loadResource): Remove calls to setDisplayMode and updateDisplayState,
they have been deleted.
(WebCore::HTMLMediaElement::waitForSourceChange): Call setShowPosterFlag. Update spec text.
(WebCore::HTMLMediaElement::noneSupported): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaLoadingFailed): Remove call to updateDisplayState.
(WebCore::HTMLMediaElement::setReadyState): Ditto.
(WebCore::HTMLMediaElement::seekWithTolerance): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::seekTask):  Check m_showPoster, not displayMode.
(WebCore::HTMLMediaElement::playInternal): Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged): Don't check displayMode.
(WebCore::HTMLMediaElement::updatePlayState): No more setDisplayMode.
(WebCore::HTMLMediaElement::userCancelledLoad):  Call setShowPosterFlag.
(WebCore::HTMLMediaElement::mediaPlayerFirstVideoFrameAvailable): Deleted.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::showPosterFlag const):
(WebCore::HTMLMediaElement::setShowPosterFlag):
(WebCore::HTMLMediaElement::displayMode const): Deleted.
(WebCore::HTMLMediaElement::setDisplayMode): Deleted.
(WebCore::HTMLMediaElement::updateDisplayState): Deleted.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::didAttachRenderers): No more updateDisplayState.
(WebCore::HTMLVideoElement::parseAttribute): Ditto. Call updateFromElement when poster is removed.
(WebCore::HTMLVideoElement::shouldDisplayPosterImage const): New.
(WebCore::HTMLVideoElement::mediaPlayerFirstVideoFrameAvailable): New, update player and
renderer if the poster isn't supposed to be visible.
(WebCore::HTMLVideoElement::setDisplayMode): Deleted.
(WebCore::HTMLVideoElement::updateDisplayState): Deleted.
* html/HTMLVideoElement.h:

* rendering/RenderVideo.cpp:
(WebCore::RenderVideo::failedToLoadPosterImage const): New.
* rendering/RenderVideo.h:

* testing/Internals.cpp:
(WebCore::Internals::elementShouldDisplayPosterImage const):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

* media/video-poster-set-after-playback-expected.txt: Added.
* media/video-poster-set-after-playback.html: Added.

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

5 months agoWeb Inspector: Sources: Breakpoints status not remembered/restored correctly
drousso@apple.com [Thu, 7 May 2020 23:01:32 +0000 (23:01 +0000)]
Web Inspector: Sources: Breakpoints status not remembered/restored correctly
https://bugs.webkit.org/show_bug.cgi?id=211558

Reviewed by Joseph Pecoraro.

* UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.prototype.initializeTarget):

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

5 months agoWeb Inspector: Storage: double clicking on a cookie field doesn't start editing it
drousso@apple.com [Thu, 7 May 2020 22:59:07 +0000 (22:59 +0000)]
Web Inspector: Storage: double clicking on a cookie field doesn't start editing it
https://bugs.webkit.org/show_bug.cgi?id=211598

Reviewed by Timothy Hatcher.

* UserInterface/Views/CookieStorageContentView.js:
(WI.CookieStorageContentView):
(WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
(WI.CookieStorageContentView.prototype.tablePopulateCell):
(WI.CookieStorageContentView.prototype._showCookiePopover):
(WI.CookieStorageContentView.prototype._handleSetCookieButtonClick):
Add a `"dblclick"` event listener to each cell that shows a `WI.CookiePopover` for that cell
and automatically select the current value of that field in the `WI.Cookie`. Unify the few
different ways to show a `WI.CookiePopover`.

* UserInterface/Views/CookiePopover.js:
(WI.CookiePopover.prototype.show.createRow):
Provide a way to programmatically trigger the focusing of an editor once shown.

* Localizations/en.lproj/localizedStrings.js:

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

5 months agoIn Document::willBeRemovedFromFrame, clear FrameSelection before Editor so the select...
shihchieh_lee@apple.com [Thu, 7 May 2020 22:58:14 +0000 (22:58 +0000)]
In Document::willBeRemovedFromFrame, clear FrameSelection before Editor so the selection is removed.
https://bugs.webkit.org/show_bug.cgi?id=211551

Reviewed by Geoffrey Garen.

Covered by existing tests.

* dom/Document.cpp:
(WebCore::Document::willBeRemovedFromFrame):

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

5 months agoVersioning.
alancoon@apple.com [Thu, 7 May 2020 21:48:13 +0000 (21:48 +0000)]
Versioning.

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

5 months ago[Web Animations] imported/w3c/web-platform-tests/web-animations/timing-model/timeline...
graouts@webkit.org [Thu, 7 May 2020 21:44:13 +0000 (21:44 +0000)]
[Web Animations] imported/w3c/web-platform-tests/web-animations/timing-model/timelines/update-and-send-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=211232
<rdar://problem/62650227>

Reviewed by Dean Jackson.

The flakiness came from this porting of the test:

    animA.finished.then(() => { animB.cancel() });
    animB.finished.then(() => { animA.cancel() });

Sometimes, animA and animB would finish in different frames even though they were designed to finish at the
same time. If this happened, animA.finished would resolve and trigger animB.cancel, which then rejected
animB.finished. This happened because animB was attached to a DocumentTimeline created by script which isn't
the main DocumenTimeline accessed via document.timeline. Some curious code would handle syncing of the
various timelines such that they would use a shared timebase. This was in DocumentTimeline::currentTime():

    auto& mainDocumentTimeline = m_document->timeline();
    if (&mainDocumentTimeline != this) {
        if (auto mainDocumentTimelineCurrentTime = mainDocumentTimeline.currentTime())
            return *mainDocumentTimelineCurrentTime - m_originTime;
        return WTF::nullopt;
    }

We now move the currentTime caching at the DocumentTimelinesController level which ensures all DocumentTimeline
objects attached to a given Document use the exact same currentTime(). This prompted some overdue refactoring
where also all the related animation suspension code is moved from DocumentTimeline up to DocumentTimelinesController.

* animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::detachFromDocument):
(WebCore::DocumentTimeline::suspendAnimations):
(WebCore::DocumentTimeline::resumeAnimations):
(WebCore::DocumentTimeline::animationsAreSuspended const):
(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::scheduleAnimationResolution):
(WebCore::DocumentTimeline::documentWillUpdateAnimationsAndSendEvents):
(WebCore::DocumentTimeline::animationsAreSuspended): Deleted.
(WebCore::DocumentTimeline::liveCurrentTime const): Deleted.
(WebCore::DocumentTimeline::cacheCurrentTime): Deleted.
(WebCore::DocumentTimeline::maybeClearCachedCurrentTime): Deleted.
* animation/DocumentTimeline.h:
* animation/DocumentTimelinesController.cpp:
(WebCore::DocumentTimelinesController::detachFromDocument):
(WebCore::DocumentTimelinesController::updateAnimationsAndSendEvents):
(WebCore::DocumentTimelinesController::suspendAnimations):
(WebCore::DocumentTimelinesController::resumeAnimations):
(WebCore::DocumentTimelinesController::animationsAreSuspended const):
(WebCore::DocumentTimelinesController::liveCurrentTime const):
(WebCore::DocumentTimelinesController::currentTime):
(WebCore::DocumentTimelinesController::cacheCurrentTime):
(WebCore::DocumentTimelinesController::maybeClearCachedCurrentTime):
* animation/DocumentTimelinesController.h:
* dom/Document.cpp:
(WebCore::Document::didBecomeCurrentDocumentInFrame):
(WebCore::Document::resume):
* dom/Document.h:
* page/Frame.cpp:
(WebCore::Frame::clearTimers):
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations):
* page/Page.cpp:
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
* testing/Internals.cpp:
(WebCore::Internals::animationsAreSuspended const):
(WebCore::Internals::suspendAnimations const):
(WebCore::Internals::resumeAnimations const):

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

5 months agoREGRESSION (r252161): Animation of box-shadow with border-radius set is flashy
simon.fraser@apple.com [Thu, 7 May 2020 21:02:37 +0000 (21:02 +0000)]
REGRESSION (r252161): Animation of box-shadow with border-radius set is flashy
https://bugs.webkit.org/show_bug.cgi?id=211530
<rdar://problem/62570229>

Reviewed by Zalan Bujtas.

Source/WebCore:

Drawing inset box shadows with spread was broken, and in some cases generated invalid
rounded rects, causing inset shadows with border-radius to lose the radius.

First, with split inlines, the spread was not getting removed from the excluded edges.
Fix in the includeLogicalLeftEdge/includeLogicalRightEdge clauses, adding shiftXEdgeBy()/shiftYEdgeBy() helpers
to LayoutRect to simplify logic.

Second, when computing the rounded hole rect, we'd use the result of style.getRoundedInnerBorderFor()
but that doesn't take shadow spread into account, so we'd build a rounded rect with a rect that
accounted for spread, but radii computed without. That could result in unrenderable rounded rects.
Fix by calling style.getRoundedInnerBorderFor() a second time if we have spread; this will fix
up the radii for spread.

Tests: fast/box-shadow/inset-box-shadow-fractional-radius.html
       fast/box-shadow/inset-shadow-split-inline.html
       fast/box-shadow/inset-spread-box-shadow-split-inline.html

* platform/graphics/LayoutRect.h:
(WebCore::LayoutRect::shiftXEdgeBy):
(WebCore::LayoutRect::shiftYEdgeBy):
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):

LayoutTests:

Some ref tests for inset shadows with border radius, with spread, and when on
split inlines.

* fast/box-shadow/inset-box-shadow-expected.html:
* fast/box-shadow/inset-box-shadow-fractional-radius-expected.html: Added.
* fast/box-shadow/inset-box-shadow-fractional-radius.html: Added.
* fast/box-shadow/inset-box-shadow.html:
* fast/box-shadow/inset-shadow-split-inline-expected.html: Added.
* fast/box-shadow/inset-shadow-split-inline.html: Added.
* fast/box-shadow/inset-spread-box-shadow-split-inline-expected.html: Added.
* fast/box-shadow/inset-spread-box-shadow-split-inline.html: Added.

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

5 months agoRemove unused USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
don.olmstead@sony.com [Thu, 7 May 2020 20:57:42 +0000 (20:57 +0000)]
Remove unused USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
https://bugs.webkit.org/show_bug.cgi?id=211582

Reviewed by Fujii Hironori.

After r261264 all ports implemented USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR.

Source/WebCore:

* page/ChromeClient.h:
(WebCore::ChromeClient::createDisplayRefreshMonitor const):
* page/Page.cpp:
(WebCore::Page::windowScreenDidChange):
* page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::RenderingUpdateScheduler):
(WebCore::RenderingUpdateScheduler::adjustRenderingUpdateFrequency):
(WebCore::RenderingUpdateScheduler::scheduleTimedRenderingUpdate):
(WebCore::RenderingUpdateScheduler::windowScreenDidChange):
* page/RenderingUpdateScheduler.h:
* platform/graphics/DisplayRefreshMonitor.cpp:
* platform/graphics/DisplayRefreshMonitor.h:
* platform/graphics/DisplayRefreshMonitorClient.cpp:
* platform/graphics/DisplayRefreshMonitorClient.h:
* platform/graphics/DisplayRefreshMonitorManager.cpp:
* platform/graphics/DisplayRefreshMonitorManager.h:
* platform/graphics/GraphicsLayerUpdater.cpp:
(WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
(WebCore::GraphicsLayerUpdater::scheduleUpdate):
(WebCore::GraphicsLayerUpdater::screenDidChange):
(WebCore::GraphicsLayerUpdater::displayRefreshFired):
(WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor const):
* platform/graphics/GraphicsLayerUpdater.h:
* platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp:
* platform/graphics/gtk/DisplayRefreshMonitorGtk.h:
* platform/graphics/ios/DisplayRefreshMonitorIOS.h:
* platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
* platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
* platform/graphics/mac/DisplayRefreshMonitorMac.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::createDisplayRefreshMonitor const):
* rendering/RenderLayerCompositor.h:

Source/WebKit:

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::sceneUpdateFinished):
(WebKit::ThreadedCompositor::displayRefreshMonitor):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createDisplayRefreshMonitor const):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::createDisplayRefreshMonitor):
* WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:
(WebKit::LayerTreeHost::createDisplayRefreshMonitor):
* WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.h:
(WebKit::LayerTreeHost::deviceOrPageScaleFactorChanged):
* WebProcess/WebPage/DrawingArea.cpp:
* WebProcess/WebPage/DrawingArea.h:
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.h:
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
* WebProcess/WebPage/mac/DrawingAreaMac.cpp:

Source/WTF:

* wtf/PlatformUse.h:

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

5 months agowebkitpy: Use apple_additions certificate path if available
jbedard@apple.com [Thu, 7 May 2020 20:15:58 +0000 (20:15 +0000)]
webkitpy: Use apple_additions certificate path if available
https://bugs.webkit.org/show_bug.cgi?id=211584

Rubber-stamped by Aakash Jain

* Scripts/webkitpy/results/upload.py:
(Upload):
(Upload.certificate_chain): Certificate chain to be used, prefer apple_additions
over certifi.
(Upload.upload): Use Upload.certificate_chain().
(Upload.upload_archive): Ditto.

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

5 months agoSimplify preprocessor guards in GCMemoryOperations.h
commit-queue@webkit.org [Thu, 7 May 2020 20:15:10 +0000 (20:15 +0000)]
Simplify preprocessor guards in GCMemoryOperations.h
https://bugs.webkit.org/show_bug.cgi?id=211588

Patch by Michael Catanzaro <mcatanzaro@gnome.org> on 2020-05-07
Reviewed by Darin Adler.

If we adjust the guards a bit, then we don't need to repeat the fallback path.

* heap/GCMemoryOperations.h:
(JSC::gcSafeMemmove):
(JSC::gcSafeZeroMemory):

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

5 months ago[ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media...
ryanhaddad@apple.com [Thu, 7 May 2020 20:07:57 +0000 (20:07 +0000)]
[ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/resource-selection-pointer-insert-text.html  is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=209201

Unreviewed test gardening.

Remove flaky expectation since the test is consistently passing.

* platform/mac-wk1/TestExpectations:

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

5 months ago[ macOS debug ] REGRESSION (r259463): http/tests/media/clearkey/collect-webkit-media...
ryanhaddad@apple.com [Thu, 7 May 2020 20:04:33 +0000 (20:04 +0000)]
[ macOS debug ] REGRESSION (r259463): http/tests/media/clearkey/collect-webkit-media-session.html is failing
https://bugs.webkit.org/show_bug.cgi?id=209989

Unreviewed test gardening.

Remove failure expectations for tests that are now consistently passing.

* platform/mac-wk1/TestExpectations:
* platform/mac-wk2/TestExpectations:

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

5 months agoGive the DFG and FTL WorkList threads more stack space on ASAN builds.
mark.lam@apple.com [Thu, 7 May 2020 19:49:37 +0000 (19:49 +0000)]
Give the DFG and FTL WorkList threads more stack space on ASAN builds.
https://bugs.webkit.org/show_bug.cgi?id=211535
<rdar://problem/62947884>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

* dfg/DFGWorklist.cpp:
(JSC::DFG::Worklist::ThreadBody::ThreadBody):
- Mark the AutomaticThread as ThreadType::Compiler.

Source/WTF:

1. Add the ability to set the ThreadType for AutomaticThreads.
2. Give ThreadType::Compiler (which currently only used for the DFG anf FTL
   WorkList threads) a larger stack for OS(DARWIN) on ASAN builds.

   This is needed because ASAN is a memory hungry beast, and we want the ASAN
   builds to get to exercise the same amount of code a regular build will (instead
   of failing out early with a stack overflow error).

* wtf/AutomaticThread.cpp:
(WTF::AutomaticThread::AutomaticThread):
(WTF::AutomaticThread::start):
* wtf/AutomaticThread.h:
* wtf/Threading.cpp:
(WTF::stackSize):
* wtf/Threading.h:

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

5 months agoAdd watchOS media controls assets
graouts@webkit.org [Thu, 7 May 2020 19:36:01 +0000 (19:36 +0000)]
Add watchOS media controls assets
https://bugs.webkit.org/show_bug.cgi?id=211508

Unreviewed. Cleaning up some stray logging.

* WebCore.xcodeproj/project.pbxproj:

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

5 months agoREGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy...
commit-queue@webkit.org [Thu, 7 May 2020 19:30:28 +0000 (19:30 +0000)]
REGRESSION(r251875): Crash in JSC::StructureIDTable::get on ppc64le: gcSafeMemcpy broken on JSVALUE64 platforms other than x86_64 and aarch64
https://bugs.webkit.org/show_bug.cgi?id=210685

Patch by Daniel Kolesa <daniel@octaforge.org> on 2020-05-07
Reviewed by Michael Catanzaro.

Fix gcSafeMemcpy on non-x86_64/aarch64 64-bit architectures.

We were hitting an incorrect x86_64 assertion on values larger than
mediumCutoff on JSVALUE64 architectures other than x86_64 and aarch64,
as the control flow is wrong.

* heap/GCMemoryOperations.h:
(JSC::gcSafeMemcpy):

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

5 months agoAdd stack checks to the DFG and FTL bytecode parser.
mark.lam@apple.com [Thu, 7 May 2020 19:25:32 +0000 (19:25 +0000)]
Add stack checks to the DFG and FTL bytecode parser.
https://bugs.webkit.org/show_bug.cgi?id=211547
<rdar://problem/62958880>

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Inlining can cause some level of recursion of the DFG bytecode parser.  We should
do a stack check at each inlining check before recursing.  If a stack overflow
appears to be imminent, then just refuse to inline, and therefore, don't recurse
deeper into the parser.

This issue is more noticeable on ASan debug builds where stack frames can be
humongous.

Removed the SUPPRESS_ASAN on cloberrize() and the associated comment from r260692.
It was a mis-diagnosis.  The stack checks are what we need.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleVarargsInlining):
(JSC::DFG::ByteCodeParser::handleInlining):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGGraph.h:

Source/WTF:

Added a StackCheck::Scope RAII object to help verify that the default reserved
zone size is at least adequate for known work loads.  If this the StackCheck::Scope
assertions fail, then we either need more stack checks, or the reserved zone size
needs to be increased.

Note that the assertions are usually only on in Debug builds.  Ideally, we would
want to measure the reserved zone size with a Release build.  To do that, we
can just set VERIFY_STACK_CHECK_RESERVED_ZONE_SIZE to 1 unconditionally in
StackCheck.h and rebuild.

* wtf/StackCheck.h:
(WTF::StackCheck::Scope::Scope):
(WTF::StackCheck::Scope::~Scope):
(WTF::StackCheck::Scope::isSafeToRecurse):
(WTF::StackCheck::StackCheck):

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