WebKit-https.git
2 years agoUnreviewed, silence a -Wreturn-type warning
mcatanzaro@igalia.com [Thu, 25 Oct 2018 19:55:12 +0000 (19:55 +0000)]
Unreviewed, silence a -Wreturn-type warning

When every return is supposed to be covered by a switch statement, a release assert or CRASH
is required by GCC.

* Modules/mediastream/libwebrtc/LibWebRTCCertificateGenerator.cpp:
(WebCore::LibWebRTCCertificateGenerator::keyParamsFromCertificateType):

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

2 years agoUnreviewed, another try at fixing the GTK build with sandbox enabled
mcatanzaro@igalia.com [Thu, 25 Oct 2018 19:53:15 +0000 (19:53 +0000)]
Unreviewed, another try at fixing the GTK build with sandbox enabled

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:
(WebKit::memfd_create): Deleted.

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

2 years agoWeb Inspector: Add a watchlist message rule to warn about feature checking new inspec...
commit-queue@webkit.org [Thu, 25 Oct 2018 19:51:42 +0000 (19:51 +0000)]
Web Inspector: Add a watchlist message rule to warn about feature checking new inspector protocol changes
https://bugs.webkit.org/show_bug.cgi?id=190896

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-10-25
Reviewed by Matt Baker.

* Scripts/webkitpy/common/config/watchlist:

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

2 years ago[Web Animations] Turn Web Animations CSS Integration off by default
graouts@webkit.org [Thu, 25 Oct 2018 19:17:04 +0000 (19:17 +0000)]
[Web Animations] Turn Web Animations CSS Integration off by default
https://bugs.webkit.org/show_bug.cgi?id=190901

Reviewed by Dean Jackson.

Source/WebCore:

* page/RuntimeEnabledFeatures.h:

Source/WebKit:

* Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):

Source/WebKitLegacy/win:

* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings):

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

2 years ago[High Sierra/Sierra Release] Layout Test media/track/track-cue-css.html is a flaky...
pvollan@apple.com [Thu, 25 Oct 2018 17:44:38 +0000 (17:44 +0000)]
[High Sierra/Sierra Release] Layout Test media/track/track-cue-css.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=190876

Reviewed by Alexey Proskuryakov.

This is a speculative fix; avoid an unnecessary video seek step in test.

* media/track/track-cue-css-expected.html:
* media/track/track-cue-css.html:

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

2 years agoHashMap should support selecting a random entry
ggaren@apple.com [Thu, 25 Oct 2018 17:41:35 +0000 (17:41 +0000)]
HashMap should support selecting a random entry
https://bugs.webkit.org/show_bug.cgi?id=190814

Reviewed by Antti Koivisto.

Source/WTF:

In some cases, remove(begin()) is not quite good enough as a random
eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
So, let's support real random eviction.

(And by "real" I mean "pseudo".)

* wtf/HashCountedSet.h:
* wtf/HashMap.h:
* wtf/HashSet.h:
* wtf/ListHashSet.h:
(WTF::ListHashSet::random):
(WTF::ListHashSet::random const):
* wtf/LoggingHashMap.h:
* wtf/LoggingHashSet.h: Plumb through the random() iterator.

* wtf/HashTable.h:
(WTF::HashTable::random):
(WTF::HashTable::random const): Implement the random() iterator.
makeIterator() already supports starting from any bucket, so this is
pretty easy.

In the subtle case where we select end(), we choose to wrap around and
return begin(). We expect that clients don't really think of the end()
bucket as being in the domain of the random search. Also, we don't want
to annoy clients who know their tables are non-empty with needless
checks for end().

* wtf/RandomNumber.cpp:
(WTF::weakRandomUint32):
* wtf/RandomNumber.h: Added a free function for weak random numbers so
that clients that want cheap random numbers aren't required to allocate
storage for a WeakRandom generator.

Tools:

Unit testing is fun and easy!

* TestWebKitAPI/Tests/WTF/HashMap.cpp:
(TestWebKitAPI::ZeroHash::hash):
(TestWebKitAPI::TEST):

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

2 years agoSource/WebCore:
jond@apple.com [Thu, 25 Oct 2018 17:09:23 +0000 (17:09 +0000)]
Source/WebCore:
Changed "Under Development" status to use "In Development" instead
https://bugs.webkit.org/show_bug.cgi?id=187615

Reviewed by Joseph Pecoraro.

* features.json: Updated CSS Painting API Level 1 and CSS Properties and Values API Level 1.

Websites/webkit.org:
Added support for "deprecated" feature status
https://bugs.webkit.org/show_bug.cgi?id=187615

Reviewed by Joseph Pecoraro.

* wp-content/themes/webkit/status.php:

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

2 years agoUnreviewed, try to fix GTK build with sandbox enabled
mcatanzaro@igalia.com [Thu, 25 Oct 2018 17:06:53 +0000 (17:06 +0000)]
Unreviewed, try to fix GTK build with sandbox enabled

* UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

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

2 years ago[CMake][Ninja][Win] midl.exe fails to create, open and write a temporary file in...
Hironori.Fujii@sony.com [Thu, 25 Oct 2018 16:33:33 +0000 (16:33 +0000)]
[CMake][Ninja][Win] midl.exe fails to create, open and write a temporary file in parallel build in Docker container
https://bugs.webkit.org/show_bug.cgi?id=187725

Reviewed by Michael Catanzaro.

* PlatformWin.cmake: Added USES_TERMINAL to serialize midl.exe
executions.

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

2 years ago[WPE][GTK] Follow-up fixes to the certificate coders
csaavedra@igalia.com [Thu, 25 Oct 2018 15:55:35 +0000 (15:55 +0000)]
[WPE][GTK] Follow-up fixes to the certificate coders
https://bugs.webkit.org/show_bug.cgi?id=190900

Reviewed by Michael Catanzaro.

Cleanup the GRefPtr mess I created earlier. Also we now bail out
if any certificate in the chain has no data instead of returning a
cropped chain.

* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<CertificateInfo>::encode):
(IPC::ArgumentCoder<CertificateInfo>::decode):

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

2 years ago[GTK] Reenable the sandbox
mcatanzaro@igalia.com [Thu, 25 Oct 2018 14:53:09 +0000 (14:53 +0000)]
[GTK] Reenable the sandbox

Previously reviewed by, er, myself. This just reverts the sabotague as our bots should have
the required deps now. Hopefully.

* Source/cmake/OptionsGTK.cmake:

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

2 years agoREGRESSION (236779) scandinaviandesigns.com product pages auto redirect to product...
cdumez@apple.com [Thu, 25 Oct 2018 14:15:21 +0000 (14:15 +0000)]
REGRESSION (236779) scandinaviandesigns.com product pages auto redirect to product image
https://bugs.webkit.org/show_bug.cgi?id=190891
<rdar://problem/45296796>

Reviewed by Antti Koivisto.

Source/WebCore:

When a radio element gets clicked, we should only fire the 'input' and 'change' if the checked state
of the radio element has changed.

Test: fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes.html

* html/RadioInputType.cpp:
(WebCore::RadioInputType::didDispatchClick):

LayoutTests:

Add layout test coverage.

* fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes-expected.txt: Added.
* fast/dom/HTMLInputElement/radio-element-fires-change-event-only-when-checked-state-changes.html: Added.

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

2 years agoUnreviewed test gardening.
fred.wang@free.fr [Thu, 25 Oct 2018 14:03:30 +0000 (14:03 +0000)]
Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-25

* platform/ios-wk1/TestExpectations: Add failures for tests requiring findString.
* platform/ios-wk1/fast/scrolling/adjust-scroll-offset-on-zoom-expected.txt: Added. Adjust
expectation to handle whitespace difference.
* platform/ios-wk1/fast/scrolling/scrolling-tree-includes-frame-expected.txt: Added. The
scrolling tree is not displayed on WK1.

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

2 years agoAdd more tests for the Find UI
fred.wang@free.fr [Thu, 25 Oct 2018 12:46:28 +0000 (12:46 +0000)]
Add more tests for the Find UI
https://bugs.webkit.org/show_bug.cgi?id=190823

Patch by Frederic Wang <fwang@igalia.com> on 2018-10-25
Reviewed by Antonio Gomes.

We add more tests for iOS's find UI to cover cases fixed by r224284. Equivalent tests for
subframes currently fails when frame flattening is disabled, they will be handled in bug
184297.

* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-expected.png: Added.
* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-expected.txt: Added.
* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit-expected.png: Added.
* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit-expected.txt: Added.
* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position-limit.html: Added.
Test with a match at the limit of the scrolling element.
* platform/ios/fast/scrolling/find-text-in-overflow-node-indicator-position.html: Added. Test
with a match at the middle of the scrolling element.
* platform/ios/fast/scrolling/find-text-in-overflow-node.html: Use names for parameters to
make it more explicit.
* platform/ios/fast/scrolling/find-text-in-subframe-expected.txt: Added.
* platform/ios/fast/scrolling/find-text-in-subframe.html: Added. Test with a subframe instead
of an overflow node.

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

2 years ago[GTK][AC] Resizing the window doesn't always update the visible rect
zandobersek@gmail.com [Thu, 25 Oct 2018 11:09:40 +0000 (11:09 +0000)]
[GTK][AC] Resizing the window doesn't always update the visible rect
https://bugs.webkit.org/show_bug.cgi?id=189743

Reviewed by Michael Catanzaro.

Disassociate resizing that can be done on an AcceleratedSurface object
between "host resizes" and "client resizes".

The former is done from ThreadedCoordinatedLayerTreeHost directly, and
is currently used only for GTK on X11, where a new pixmap object is
created on each resize, which affects the context ID that is based on
that pixmap object's address.

The latter is done from the composition thread. It's used for GTK on
Wayland and WPE. In both cases, the underlying window object does not
change on each resize, but it's necessary to perform the actual resize
on the composition thread.

So far it hasn't been performed there, which ended up pushing sizes of
the WebKit view and the underlying window object out of sync during
resizing, leaving parts of window unrendered.

* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::renderLayerTree):
* Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
* WebProcess/WebPage/AcceleratedSurface.cpp:
(WebKit::AcceleratedSurface::hostResize):
(WebKit::AcceleratedSurface::resize): Deleted.
* WebProcess/WebPage/AcceleratedSurface.h:
(WebKit::AcceleratedSurface::clientResize):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
* WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.cpp:
(WebKit::AcceleratedSurfaceWayland::clientResize):
(WebKit::AcceleratedSurfaceWayland::resize): Deleted.
* WebProcess/WebPage/gtk/AcceleratedSurfaceWayland.h:
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.cpp:
(WebKit::AcceleratedSurfaceX11::hostResize):
(WebKit::AcceleratedSurfaceX11::resize): Deleted.
* WebProcess/WebPage/gtk/AcceleratedSurfaceX11.h:
* WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:
(WebKit::AcceleratedSurfaceWPE::clientResize):
(WebKit::AcceleratedSurfaceWPE::resize): Deleted.
* WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.h:

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

2 years agoInspectorCanvas is not getting cleared properly for OffscreenCanvas
commit-queue@webkit.org [Thu, 25 Oct 2018 08:34:54 +0000 (08:34 +0000)]
InspectorCanvas is not getting cleared properly for OffscreenCanvas
https://bugs.webkit.org/show_bug.cgi?id=190894
<rdar://problem/45498435>

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-10-25
Reviewed by Simon Fraser.

Covered by existing tests not crashing with guard malloc.

InspectorCanvasAgents tracks all CanvasRenderingContexts and needs to
remove its reference when the containing CanvasBase goes away. It does
this by registering as a notification observer, but if it can't map
from the CanvasBase back to the rendering context we were failing to
remove our reference. Enforce CanvasBase classes to notify observers
of destruction while they still have their CanvasRenderingContext.

* html/CanvasBase.cpp:
(WebCore::CanvasBase::~CanvasBase):
(WebCore::CanvasBase::notifyObserversCanvasDestroyed):
* html/CanvasBase.h:
Assert that subclasses notify observers of the canvas being destroyed,
since they will need to do this before m_context is cleared.

* html/CustomPaintCanvas.cpp:
(WebCore::CustomPaintCanvas::~CustomPaintCanvas):
* html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::~OffscreenCanvas):
Follow the new expected pattern of notifying observers before clearing
the context. HTMLCanvasElement already followed this pattern.

* inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::canvasDestroyed):
Add an assertion that would catch this earlier.

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

2 years ago[WPT] Update resource-timing WPT tests to use the right cross origin
jiewen_tan@apple.com [Thu, 25 Oct 2018 07:24:59 +0000 (07:24 +0000)]
[WPT] Update resource-timing WPT tests to use the right cross origin
https://bugs.webkit.org/show_bug.cgi?id=190554

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain-expected.txt:
* web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain.html:
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain-expected.txt:
* web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain.html:

LayoutTests:

* TestExpectations:

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

2 years agoREGRESSION (r237331): DismissingActionSheetShouldNotDismissPresentingViewController...
timothy_horton@apple.com [Thu, 25 Oct 2018 06:12:50 +0000 (06:12 +0000)]
REGRESSION (r237331): DismissingActionSheetShouldNotDismissPresentingViewController times out
https://bugs.webkit.org/show_bug.cgi?id=190897

* TestWebKitAPI/Tests/ios/ActionSheetTests.mm:
(TestWebKitAPI::TEST):
Disable the test for now.

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

2 years agoClean up some obsolete macOS version guards
ap@apple.com [Thu, 25 Oct 2018 00:19:22 +0000 (00:19 +0000)]
Clean up some obsolete macOS version guards
https://bugs.webkit.org/show_bug.cgi?id=190887

Reviewed by Dan Bernstein.

Source/WebCore:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const):

Source/WebCore/PAL:

* pal/spi/mac/TUCallSPI.h:

Source/WebKit:

* PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):

Source/WebKitLegacy/mac:

* Misc/WebNSPasteboardExtras.mm:
(+[NSPasteboard _web_dragTypesForURL]):
* WebCoreSupport/PopupMenuMac.mm:
(PopupMenuMac::show):
* WebCoreSupport/WebEditorClient.h:
* WebCoreSupport/WebEditorClient.mm:
(WebEditorClient::respondToChangedSelection):
* WebView/WebPDFView.mm:
(-[WebPDFView _clipViewForPDFDocumentView]):

Tools:

* TestWebKitAPI/cocoa/TestWKWebView.mm:
(__simulated_forceClickAssociatedEventsMask):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:]):
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
* WebKitTestRunner/mac/EventSenderProxy.mm:
(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):

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

2 years agoAttachment filenames with RTL characters should format similar to Finder
timothy_horton@apple.com [Wed, 24 Oct 2018 22:51:03 +0000 (22:51 +0000)]
Attachment filenames with RTL characters should format similar to Finder
https://bugs.webkit.org/show_bug.cgi?id=190736
<rdar://problem/44735946>

Reviewed by Dan Bernstein.

Source/WebCore:

Test: fast/attachment/attachment-title-with-rtl.html

* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::attachmentTitleForDisplay const):
* html/HTMLAttachmentElement.h:
Add attachmentTitleForDisplay(), which wraps the non-extension part of
attachmentTitle in BiDi isolates, matching Finder's behavior.

* rendering/RenderThemeIOS.mm:
(WebCore::RenderAttachmentInfo::buildWrappedLines):
(WebCore::RenderAttachmentInfo::RenderAttachmentInfo):
* rendering/RenderThemeMac.mm:
(WebCore::AttachmentLayout::layOutTitle):
Adopt attachmentTitleForDisplay, and ask CoreText to use a subrange of
the original string for the last line, instead of splitting the string
ourselves. This ensures that BiDi control characters are respected
even in the last line of the string.

LayoutTests:

* fast/attachment/attachment-title-with-rtl-expected.html: Added.
* fast/attachment/attachment-title-with-rtl.html: Added.
Add a test that directionality marks in the attachment's title are
isolated from the file extension.

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

2 years agoTurn on Conic Gradients
megan_gardner@apple.com [Wed, 24 Oct 2018 22:28:42 +0000 (22:28 +0000)]
Turn on Conic Gradients
https://bugs.webkit.org/show_bug.cgi?id=190810

Reviewed by Tim Horton.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Added tests previously, only switching feature from experimental to always avaiable.

* Configurations/FeatureDefines.xcconfig:
* css/parser/CSSParserContext.cpp:
(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
* css/parser/CSSParserContext.h:
(WebCore::CSSParserContextHash::hash):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
* page/Settings.yaml:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Remove conic gradients from experimental features and turn it on always.

* Configurations/FeatureDefines.xcconfig:
* Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

* wtf/FeatureDefines.h:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

No longer necessary to manually turn on conic gradients for testing.

* http/wpt/css/css-images-4/conic-gradient-parsing.html:

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

2 years agoWeb Inspector: popovers for function source code are malformed
drousso@apple.com [Wed, 24 Oct 2018 22:12:54 +0000 (22:12 +0000)]
Web Inspector: popovers for function source code are malformed
https://bugs.webkit.org/show_bug.cgi?id=190859

Reviewed by Joseph Pecoraro.

Previously, the `WI.Popover` would be drawn twice: once when the
`WI.CodeMirrorTokenTrackingController` determines that the user has hovered on a function
token, and once again when the source for that function is formatted (after being retrieved).
In the case that the formatter is able to return the prettified source within a frame (or
two), the `WI.Popover` is still in the middle of animating to its new size, meaning that the
changes made by the formatted `update` will be overridden on the next rAF (creates a flash).

* UserInterface/Views/Popover.js:
(WI.Popover.prototype):
(WI.Popover.prototype._animateFrame.drawBackground):
(WI.Popover.prototype._drawBackground):
Add a member variable to make sure that there is only ever one rAF firing at a time.
Drive-by: rework the background code to only use one canvas.
* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Don't show the `WI.Popover` until the formatter has finished prettifying the function's
source code, as otherwise there is brief moment that the popover appears and is empty.

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

2 years ago2018-10-24 Michael Saboff <msaboff@apple.com>
msaboff@apple.com [Wed, 24 Oct 2018 21:35:35 +0000 (21:35 +0000)]
2018-10-24  Michael Saboff  <msaboff@apple.com>

Increase executable memory pool from 64MB to 128MB for ARM64
https://bugs.webkit.org/show_bug.cgi?id=190453

Unreviewed, rolling back in r237024.

The original change did impact ARES-6 performance by 4-8%.  That will
be investigated separately.

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

2 years agoAdd BPLATFORM(IOS_FAMILY)
ap@apple.com [Wed, 24 Oct 2018 21:01:27 +0000 (21:01 +0000)]
Add BPLATFORM(IOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=190878

Reviewed by Saam Barati.

* bmalloc/AvailableMemory.cpp:
(bmalloc::memorySizeAccordingToKernel):
(bmalloc::computeAvailableMemory):
* bmalloc/AvailableMemory.h:
(bmalloc::isUnderMemoryPressure):
* bmalloc/BPlatform.h:
* bmalloc/Gigacage.h:
* bmalloc/Logging.cpp:
(bmalloc::logVMFailure):
* bmalloc/VMAllocate.h:
(bmalloc::vmPageSizePhysical):
* bmalloc/bmalloc.h:
* bmalloc/darwin/MemoryStatusSPI.h:

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

2 years agoWeb Inspector: REGRESSION (r237232): changing resources via up/down blurs the TreeOut...
drousso@apple.com [Wed, 24 Oct 2018 20:19:39 +0000 (20:19 +0000)]
Web Inspector: REGRESSION (r237232): changing resources via up/down blurs the TreeOutline in Resources
https://bugs.webkit.org/show_bug.cgi?id=190862

Reviewed by Matt Baker.

* UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.set selectedTextRange):
Don't `focus` unless the `activeElement` is not a WebInspector element (e.g. <body>),
meaning that the previously focused element has been removed from the DOM and no longer
needs to keep the focus.

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

2 years agoWeb Inspector: CSP request payload on medium.com is unreadable, should be pretty...
drousso@apple.com [Wed, 24 Oct 2018 19:27:27 +0000 (19:27 +0000)]
Web Inspector: CSP request payload on medium.com is unreadable, should be pretty-printed
https://bugs.webkit.org/show_bug.cgi?id=190354
<rdar://problem/45090894>

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TextEditor.js:
(WI.TextEditor.prototype.set string.update):
(WI.TextEditor.prototype._attemptToDetermineMIMEType): Added.
If the content doesn't already have a MIME type, attempt to determine one by trying to
format it as "javascript" (e.g. request JSON that is simply missing a MIME type).

* UserInterface/Views/TextContentView.js:
(WI.TextContentView):
(WI.TextContentView.prototype._handleTextEditorMIMETypeChanged): Added.
* UserInterface/Views/TextResourceContentView.js:
(WI.TextResourceContentView):
(WI.TextResourceContentView.prototype._handleTextEditorMIMETypeChanged): Added.
* UserInterface/Views/ScriptContentView.js:
(WI.ScriptContentView):
(WI.ScriptContentView.prototype._handleTextEditorMIMETypeChanged): Added.
Enable the "Pretty Print" navigation button if the MIME type changes to something that is
able to be formatted.
Drive-by: reorder the creation of the "Pretty Print" button so that it exists if
`_attemptToDetermineMIMEType` finishes synchronously.

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

2 years agoOnly report resource timing to parent frame for the first iframe load
jiewen_tan@apple.com [Wed, 24 Oct 2018 18:49:03 +0000 (18:49 +0000)]
Only report resource timing to parent frame for the first iframe load
https://bugs.webkit.org/show_bug.cgi?id=190498
<rdar://problem/44347398>

Reviewed by Youenn Fablet.

Source/WebCore:

Only the first iframe navigation or the first iframe navigation after about:blank should be reported.
https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface

Test: http/tests/misc/resource-timing-navigation-in-restored-iframe.html

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithDocumentLoader):
* loader/FrameLoader.h:
(WebCore::FrameLoader::shouldReportResourceTimingToParentFrame):
(WebCore::FrameLoader::setShouldReportResourceTimingToParentFrame): Deleted.
* loader/ResourceTimingInformation.cpp:
(WebCore::ResourceTimingInformation::addResourceTiming):

LayoutTests:

The layout test is from Chromium change:
https://chromium-review.googlesource.com/c/chromium/src/+/1186215.

* http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt: Added.
* http/tests/misc/resource-timing-navigation-in-restored-iframe.html: Added.
* http/tests/misc/resources/alert-then-back.html: Added.
* http/tests/misc/resources/navigate-on-message.html: Added.
* http/tests/misc/resources/post-message-to-parent.html: Added.

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

2 years agoCure Windows Direct2D Backend of a nasty case of bitrot
bfulgham@apple.com [Wed, 24 Oct 2018 18:46:39 +0000 (18:46 +0000)]
Cure Windows Direct2D Backend of a nasty case of bitrot
https://bugs.webkit.org/show_bug.cgi?id=190875
<rdar://problem/45523268>

Reviewed by Zalan Bujtas.

The Direct2D backend has drifted out of date with the rest of WebKit.
This patch updates things so we can get a runnable build.

* platform/graphics/FontPlatformData.h:
* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::create):
* platform/graphics/ImageBuffer.h:
* platform/graphics/ImageDecoder.h:
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setTargetContext):
* platform/graphics/opentype/OpenTypeMathData.cpp:
(WebCore::OpenTypeMathData::OpenTypeMathData): Need non-default constructor to make Visual
Studio happy.
* platform/graphics/win/GradientDirect2D.cpp:
(WebCore::Gradient::generateGradient):
* platform/graphics/win/GraphicsContextDirect2D.cpp: Update for new display list implementation.
(WebCore::GraphicsContextPlatformPrivate::setAlpha):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds const):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::getCTM const):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext const):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext const):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::platformFillEllipse):
(WebCore::GraphicsContext::platformStrokeEllipse):
* platform/graphics/win/GraphicsLayerDirect2D.cpp:
(WebCore::GraphicsLayer::create):
(): Deleted.
* platform/graphics/win/ImageBufferDataDirect2D.cpp:
(WebCore::ImageBufferData::putData):
* platform/graphics/win/ImageBufferDataDirect2D.h:
* platform/graphics/win/ImageBufferDirect2D.cpp:
(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::ImageBuffer):
* platform/graphics/win/ImageDecoderDirect2D.cpp:
(WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties const):
(WebCore::ImageDecoderDirect2D::encodedDataStatus const):
(WebCore::ImageDecoderDirect2D::repetitionCount const):
(WebCore::ImageDecoderDirect2D::frameOrientationAtIndex const):
(WebCore::ImageDecoderDirect2D::frameDurationAtIndex const):
(WebCore::ImageDecoderDirect2D::frameAllowSubsamplingAtIndex const):
(WebCore::ImageDecoderDirect2D::frameHasAlphaAtIndex const):
(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex):
(WebCore::ImageDecoderDirect2D::setData):
(WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties): Deleted.
(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex const): Deleted.
* platform/graphics/win/ImageDecoderDirect2D.h:
* platform/graphics/win/ImageDirect2D.cpp:
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/win/PatternDirect2D.cpp:
(WebCore::Pattern::createPlatformPattern const):

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

2 years agoCleanup: MIMETypeRegistry functions
commit-queue@webkit.org [Wed, 24 Oct 2018 18:42:22 +0000 (18:42 +0000)]
Cleanup: MIMETypeRegistry functions
https://bugs.webkit.org/show_bug.cgi?id=190838

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-10-24
Reviewed by Simon Fraser.

Source/WebCore:

Modernize the initialization of the lists in MIMETypeRegistry. Make the
functions that return these list be self-contained. Use NeverDestroy<> to
allocate the local static variable. Use std::initializer_list() and
makeNeverDestroyed() to initialize NeverDestroy<> variables only once.

supportedImageResourceMIMETypes will be deleted and all the calls to it
will be replaced by supportedImageMIMETypes because they are identical.

* loader/archive/ArchiveFactory.cpp:
(WebCore::ArchiveFactory::registerKnownArchiveMIMETypes): This function
is called while initializing the supportedNonImageMIMETypes(). So it
should not have a direct call to it. Instead, supportedNonImageMIMETypes
is passed to it.
* loader/archive/ArchiveFactory.h:
* platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::supportedImageMIMETypes):
(WebCore::supportedImageMIMETypesForEncoding):
(WebCore::supportedJavaScriptMIMETypes):
(WebCore::MIMETypeRegistry::supportedNonImageMIMETypes):
(WebCore::MIMETypeRegistry::supportedMediaMIMETypes):
(WebCore::pdfMIMETypes):
(WebCore::MIMETypeRegistry::unsupportedTextMIMETypes):
(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
(WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
(WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
(WebCore::MIMETypeRegistry::isUnsupportedTextMIMEType):
(WebCore::MIMETypeRegistry::isPDFMIMEType):
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType):
(WebCore::initializeSupportedImageMIMETypes): Deleted.
(WebCore::initializeSupportedImageMIMETypesForEncoding): Deleted.
(WebCore::initializeSupportedJavaScriptMIMETypes): Deleted.
(WebCore::initializePDFMIMETypes): Deleted.
(WebCore::initializeSupportedNonImageMimeTypes): Deleted.
(WebCore::initializeSupportedMediaMIMETypes): Deleted.
(WebCore::initializeUnsupportedTextMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getPDFMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getUnsupportedTextMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes): Deleted.
* platform/MIMETypeRegistry.h:
* platform/graphics/Image.cpp:
(WebCore::Image::supportsType):
* platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::encodedDataStatus const):
* platform/graphics/cg/UTIRegistry.cpp:
(WebCore::supportedDefaultImageSourceTypes):
(WebCore::isSupportImageSourceType):
(WebCore::allowedImageUTIs): Deleted.
(WebCore::isAllowedImageUTI): Deleted.
* platform/graphics/cg/UTIRegistry.h:
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::write):

Source/WebKit:

* UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

Source/WebKitLegacy/mac:

* Misc/WebNSPasteboardExtras.mm:
(-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
Replace isSupportedImageResourceMIMEType() by isSupportedImageMIMEType()
because they were identical.

* WebView/WebHTMLRepresentation.mm:
(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):
* WebView/WebView.mm:
(+[WebView _unregisterViewClassAndRepresentationClassForMIMEType:]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(+[WebView registerViewClass:representationClass:forMIMEType:]):

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

2 years ago[macOS] Layout Test legacy-animation-engine/animations/suspend-resume-animation.html...
ryanhaddad@apple.com [Wed, 24 Oct 2018 18:26:57 +0000 (18:26 +0000)]
[macOS] Layout Test legacy-animation-engine/animations/suspend-resume-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190883

Unreviewed test gardening.

* platform/mac/TestExpectations: Mark test as flaky.

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

2 years agoMarked webgl/1.0.2/conformance/glsl/misc/shader-with-reserved-words.html as a flaky...
jlewis3@apple.com [Wed, 24 Oct 2018 18:24:02 +0000 (18:24 +0000)]
Marked webgl/1.0.2/conformance/glsl/misc/shader-with-reserved-words.html as a flaky timout.
https://bugs.webkit.org/show_bug.cgi?id=170877

Unreviewed test gardening.

* platform/mac/TestExpectations:

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

2 years ago[WPE] Fix CMake rules in for TestWebKitAPIBase library building in developer mode
commit-queue@webkit.org [Wed, 24 Oct 2018 17:44:21 +0000 (17:44 +0000)]
[WPE] Fix CMake rules in for TestWebKitAPIBase library building in developer mode
https://bugs.webkit.org/show_bug.cgi?id=190328

Patch by Pablo Saavedra <psaavedra@igalia.com> on 2018-10-24
Reviewed by Michael Catanzaro.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformWPE.cmake:

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

2 years ago[PSON] When navigating back and forth, 'about:blank' shows up in the back/forward...
cdumez@apple.com [Wed, 24 Oct 2018 16:39:19 +0000 (16:39 +0000)]
[PSON] When navigating back and forth, 'about:blank' shows up in the back/forward list
https://bugs.webkit.org/show_bug.cgi?id=190846
<rdar://problem/45058938>

Reviewed by Antti Koivisto.

Source/WebCore:

When a page gets suspended after a process-swap, we navigate it to about:blank from inside the navigation
policy handler, by overriding the request URL. This normally works fine because we usually process-swap
on standard navigation. However, when we would process-swap on a back/forward navigation, we would end
up using the back/forward navigation load type to do the about:blank load. This would have repercussions
because history navigations update the current history item with the new URL (in this case 'about:blank').
To avoid the issue, switch to a standard load type whenever the client asks us to suspend and we load
'about:blank' as a result.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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

2 years agoMarking Multiple tests as flakey at once
tsavell@apple.com [Wed, 24 Oct 2018 16:33:19 +0000 (16:33 +0000)]
Marking Multiple tests as flakey at once
https://bugs.webkit.org/show_bug.cgi?id=190847

Unreviewed Test Gardening

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

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

2 years agoREGRESSION (r237257): [iOS] Crashes in com.apple.WebKit: WebKit::RemoteScrollingCoord...
cdumez@apple.com [Wed, 24 Oct 2018 15:38:26 +0000 (15:38 +0000)]
REGRESSION (r237257): [iOS] Crashes in com.apple.WebKit: WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit
https://bugs.webkit.org/show_bug.cgi?id=190804

Reviewed by Alex Christensen.

Fix null-dereference of the drawing area in RemoteScrollingCoordinator::scheduleTreeStateCommit.
With process-swap-on-navigation enabled, suspended pages' drawing area gets torn down.

* WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):

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

2 years ago[GTK] TestSSL failing because of missing libsoup patch
csaavedra@igalia.com [Wed, 24 Oct 2018 14:32:43 +0000 (14:32 +0000)]
[GTK] TestSSL failing because of missing libsoup patch
https://bugs.webkit.org/show_bug.cgi?id=190869

Reviewed by Michael Catanzaro.

* gtk/jhbuild.modules: Add the patch below to fix the API test TestSSL
* gtk/patches/libsoup-soup-socket-fix-critical-warning-when-the-peer-certi.patch: Added.

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

2 years ago[Win] Add function call name information to stack traces
chris.reid@sony.com [Wed, 24 Oct 2018 14:27:13 +0000 (14:27 +0000)]
[Win] Add function call name information to stack traces
https://bugs.webkit.org/show_bug.cgi?id=190761

Reviewed by Fujii Hironori.

Add symbol information to stack traces using dbghelp.dll
This library will use symbols files from these sources:
    - The current working directory
    - The directory containing the application's executable
    - _NT_SYMBOL_PATH environment variable
    - _NT_ALTERNATE_SYMBOL_PATH environment variable

This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
can still attempt to call the library at the same time as WebKit.

* wtf/CMakeLists.txt:
* wtf/PlatformWin.cmake:
* wtf/StackTrace.cpp:
* wtf/win/DbgHelperWin.cpp: Added.
* wtf/win/DbgHelperWin.h: Added.

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

2 years ago[macOS Debug WK2] Layout Test http/tests/ssl/applepay/ApplePayShippingAddressChangeEv...
aestes@apple.com [Wed, 24 Oct 2018 14:15:15 +0000 (14:15 +0000)]
[macOS Debug WK2] Layout Test http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190650
<rdar://problem/45341914>

Reviewed by Alex Christensen.

Source/WebCore:

In computeErrors, we intend to ignore errors when computing paymentMethodErrors. But we
weren't clearing exceptions generated from calling convert(), so they would end up being
logged as unhandled promise rejections.

Changed ApplePayPaymentHandler::computeErrors() to use a CatchScope to clear exceptions when
decoding paymentMethodErrors.

Also changed ApplePayShippingAddressChangeEventErrorsV3.https.html to catch promise
rejections from calling PaymentRequest.abort().

Covered by existing test.

* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::computeErrors const):

LayoutTests:

* http/tests/resources/payment-request.js:
(updateDetailsOnShippingAddressChange):

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

2 years ago[WPE][GTK] Cleanups to the certificate decoder
csaavedra@igalia.com [Wed, 24 Oct 2018 13:45:26 +0000 (13:45 +0000)]
[WPE][GTK] Cleanups to the certificate decoder
https://bugs.webkit.org/show_bug.cgi?id=190867

Reviewed by Žan Doberšek.

* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<CertificateInfo>::decode):

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

2 years agotopPrivatelyControlledDomain is slow
antti@apple.com [Wed, 24 Oct 2018 10:20:34 +0000 (10:20 +0000)]
topPrivatelyControlledDomain is slow
https://bugs.webkit.org/show_bug.cgi?id=190792

Reviewed by Alex Christensen and Chris Dumez.

It calls into some slowish CFNetwork code and ends up showing up in profiles.

* platform/mac/PublicSuffixMac.mm:
(WebCore::topPrivatelyControlledDomain):

Add a cache that avoids calls into frameworks.

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

2 years agoUse WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoun...
jer.noble@apple.com [Wed, 24 Oct 2018 10:03:31 +0000 (10:03 +0000)]
Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=190790

Reviewed by Alex Christensen.

Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by
MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created
the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make
GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making
incrementing the pending task count atomic.

* platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedLock):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
* platform/GenericTaskQueue.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(-[WebCoreAVFMovieObserver initWithPlayer:]):
(-[WebCoreAVFMovieObserver disconnect]):
(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate initWithPlayer:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
(-[WebCoreAVFPullDelegate initWithPlayer:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFMovieObserver initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate setCallback:]): Deleted.
(-[WebCoreAVFPullDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFPullDelegate setCallback:]): Deleted.

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

2 years ago[WPE][GTK] Cleanups to the certificate encoder
csaavedra@igalia.com [Wed, 24 Oct 2018 09:10:24 +0000 (09:10 +0000)]
[WPE][GTK] Cleanups to the certificate encoder
https://bugs.webkit.org/show_bug.cgi?id=190865

Reviewed by Žan Doberšek.

* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<CertificateInfo>::encode):

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

2 years agoTextTrack cues should be updated more often than every 250ms.
jer.noble@apple.com [Wed, 24 Oct 2018 09:05:05 +0000 (09:05 +0000)]
TextTrack cues should be updated more often than every 250ms.
https://bugs.webkit.org/show_bug.cgi?id=190827

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/track/track-cue-timing.html

TextTracks cues are recalculated on the playback timer, which fires at least every 250ms.
In addition to this timer, add a method to MediaPlayer to provide a task which will be
performed at a particular media time, and use this new method to request cues be updated
at the next interesting media time. The next interesting time would be either when the
soonest current cue will end, or when the next non-current cue will start, whichever is
earlier.

(Determining the "next non-current cue" requires new API on PODIntervalTree, as that class
does not have iterators per-se.)

* html/HTMLMediaElement.cpp:
(WebCore::compareCueIntervalEndTime):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
* platform/PODIntervalTree.h:
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::performTaskAtMediaTime):
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::performTaskAtMediaTime):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):

LayoutTests:

Add a LayoutTest which plays back 6s of captions, each 50 ms in duration, and uses
when the "enter" and "exit" were fired (in media time) to check whether they were missed
or not. The test succeeds if fewer than 50 of the 120 cues were missed.

* media/track/track-cue-missing-expected.txt: Added.
* media/track/track-cue-missing.html: Added.

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

2 years ago[Win] Assertion fails while destructing local static AtomicString of FontCache::lastR...
Hironori.Fujii@sony.com [Wed, 24 Oct 2018 04:58:27 +0000 (04:58 +0000)]
[Win] Assertion fails while destructing local static AtomicString of FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=190748

Reviewed by Myles C. Maxfield.

FontCache::lastResortFallbackFont had local static AtomicString
variables which are not capsuled by NeverDestroyed. Hence, those
variables are destructed on IPC thread when WebProcess exits.

Changed those AtomicString to NeverDestroyed<AtomicString> not to
be destructed on exit.

This change can't be tested automatically because WebKitTestRunner
doesn't support Windows port yet.

* platform/graphics/win/FontCacheWin.cpp:
(WebCore::FontCache::lastResortFallbackFont): Changed
fallbackFonts's type from AtomicString array to
NeverDestroyed<AtomicString> array.

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

2 years ago[WebGPU] Rename old GPU* implementation files to GPULegacy* for WebMetal
justin_fan@apple.com [Tue, 23 Oct 2018 22:05:27 +0000 (22:05 +0000)]
[WebGPU] Rename old GPU* implementation files to GPULegacy* for WebMetal
https://bugs.webkit.org/show_bug.cgi?id=190817

Reviewed by Dean Jackson.

Source/WebCore:

No new tests. No change in behavior.

* [Large list of refactored classes and renamed files]: GPU* is now GPULegacy*

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyBuffer.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUBuffer.mm.
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyCommandQueue.mm: Copied from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm.
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyDevice.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUDevice.mm.
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyFunction.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm.
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyLibrary.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPULibrary.mm.
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/mac/GPULegacyTest.h: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUTest.h.

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

2 years agoUnreviewed, rolling out r237261.
ryanhaddad@apple.com [Tue, 23 Oct 2018 21:07:14 +0000 (21:07 +0000)]
Unreviewed, rolling out r237261.

The layout test for this change crashes under GuardMalloc.

Reverted changeset:

"Handle MDNS resolution of candidates through libwebrtc
directly"
https://bugs.webkit.org/show_bug.cgi?id=190681
https://trac.webkit.org/changeset/237261

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

2 years agoUnreviewed, rolling out r237357.
tsavell@apple.com [Tue, 23 Oct 2018 20:53:20 +0000 (20:53 +0000)]
Unreviewed, rolling out r237357.

API test is now failing on all platforms.

Reverted changeset:

"topPrivatelyControlledDomain is slow"
https://bugs.webkit.org/show_bug.cgi?id=190792
https://trac.webkit.org/changeset/237357

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

2 years agoFix false positive leaks when using custom -init methods that don't start with -init
ddkilzer@apple.com [Tue, 23 Oct 2018 20:36:37 +0000 (20:36 +0000)]
Fix false positive leaks when using custom -init methods that don't start with -init
<https://webkit.org/b/190818>
<rdar://problem/45476042>

Reviewed by Dan Bernstein.

Source/WebKit:

* UIProcess/Cocoa/WKWebViewContentProvider.h:
(-[WKWebViewContentProvider web_initWithFrame:webView:mimeType:]):
Add attribute to make this behave like an -init method.

Source/WebKitLegacy/mac:

* Misc/WebKitErrors.m: Move `descriptions` static global so that
it is accessible by both categories.
(-[NSError _webkit_initWithDomain:code:URL:]): Declare new
NSError (WebKitInternal) category.  Add attribute to make this
behave like an -init method.
(-[NSError _webkit_initWithDomain:code:URL:]): Move into new
NSError (WebKitInternal) category.  Modernize method.  Replace
constant NSString with `NSURLErrorFailingURLStringErrorKey`.

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

2 years agoUnreviewed, rolling out r237350.
tsavell@apple.com [Tue, 23 Oct 2018 20:02:52 +0000 (20:02 +0000)]
Unreviewed, rolling out r237350.

Caused several Crashes cross multiple tests and platforms.

Reverted changeset:

"Use WeakPtr and GenericTaskQueue within ObjC classes used by
MediaPlayerPrivateAVFoundationObjC"
https://bugs.webkit.org/show_bug.cgi?id=190790
https://trac.webkit.org/changeset/237350

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

2 years agoWeb Inspector: Remove unused css-rules pretty printing test expectation
commit-queue@webkit.org [Tue, 23 Oct 2018 19:44:46 +0000 (19:44 +0000)]
Web Inspector: Remove unused css-rules pretty printing test expectation
https://bugs.webkit.org/show_bug.cgi?id=190834

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-10-23
Reviewed by Matt Baker.

* inspector/codemirror/prettyprinting-css-rules-expected.txt: Removed.

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

2 years agoReally prevent PLATFORM(IOS) from being used
ap@apple.com [Tue, 23 Oct 2018 18:30:40 +0000 (18:30 +0000)]
Really prevent PLATFORM(IOS) from being used
https://bugs.webkit.org/show_bug.cgi?id=190813

Reviewed by Tim Horton.

* wtf/Platform.h: This relies on -Wundef, which we have enabled.

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

2 years agoUnreviewed, rolling out r237280.
ryanhaddad@apple.com [Tue, 23 Oct 2018 18:17:11 +0000 (18:17 +0000)]
Unreviewed, rolling out r237280.

Causes fast/box-shadow/box-shadow-with-zero-radius.html to
fail on iOS Simulator.

Reverted changeset:

"[CG] Adopt CG SPI for non-even cornered rounded rects"
https://bugs.webkit.org/show_bug.cgi?id=190155
https://trac.webkit.org/changeset/237280

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

2 years agotopPrivatelyControlledDomain is slow
antti@apple.com [Tue, 23 Oct 2018 18:02:32 +0000 (18:02 +0000)]
topPrivatelyControlledDomain is slow
https://bugs.webkit.org/show_bug.cgi?id=190792

Reviewed by Alex Christensen.

It calls into some slowish CFNetwork code and ends up showing up in profiles.

* platform/mac/PublicSuffixMac.mm:
(WebCore::topPrivatelyControlledDomain):

Add a cache that avoids calls into frameworks.

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

2 years ago[macOS Debug WK1] Layout Test inspector/codemirror/prettyprinting-css.html is a flaky...
ryanhaddad@apple.com [Tue, 23 Oct 2018 17:54:57 +0000 (17:54 +0000)]
[macOS Debug WK1] Layout Test inspector/codemirror/prettyprinting-css.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=190833

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Mark test as slow.

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

2 years ago[PSON] Add support for cross-site client-side redirects
cdumez@apple.com [Tue, 23 Oct 2018 17:54:34 +0000 (17:54 +0000)]
[PSON] Add support for cross-site client-side redirects
https://bugs.webkit.org/show_bug.cgi?id=190806
<rdar://problem/45047344>

Reviewed by Geoffrey Garen.

Source/WebCore:

Add support for cross-site client-side redirects so that it swaps process and so that the back
forward list looks as expected. To support this, the following changes had to be done:
- The NavigationAction now provides additional information so that the WebProcess can communicate
  things about the client-side redirect to the UIProcess: lockHistory / lockBackForwardList and
  clientRedirectSourceForHistory.
- If the UIProcess decides to process-swap on a client-side redirect, we pass the client-side
  redirect information to the new WebContent process via LoadRequest struct. WebCore then takes
  care of setting things up using this information so that it recognizes that it is continuing
  a load that is a client side redirect.
- We also need to pass the current BackForwardListItem / HistoryItem to the new WebContent
  process so that the new process can truly lock history and keep updating the *current*
  HistoryItem, instead of creating a new HistoryItem.
- After a process swap, when we re-construct the WebFrameProxy for the main frame in the new
  process, we now set the frame's URL in the UIProcess to the URL it had before we swapped.
  Clients such as Safari, rely on the main frame's URL being the expected value (the last
  committed load URL) until the next load is committed when receiving didPerformRedirect
  calls. Because we are destroying the main frame on process-swapping, we were losing the
  last committed URL and Safari would hit assertions.

With this model, the willPerformClientRedirect IPC is still sent from the previous WebProcess
and the didPerformClientRedirect IPC is now sent by the new WebProcess. No change should be
observable from the client's point of view.

* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setLockHistory):
(WebCore::FrameLoadRequest::setlockBackForwardList):
(WebCore::FrameLoadRequest::clientRedirectSourceForHistory const):
(WebCore::FrameLoadRequest::setClientRedirectSourceForHistory):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
* loader/HistoryController.cpp:
(WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
* loader/HistoryController.h:
* loader/NavigationAction.h:
(WebCore::NavigationAction::lockHistory const):
(WebCore::NavigationAction::setLockHistory):
(WebCore::NavigationAction::lockBackForwardList const):
(WebCore::NavigationAction::setLockBackForwardList):

Source/WebKit:

* Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Shared/LoadParameters.h:
* Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):
* Shared/NavigationActionData.h:
* Shared/WebBackForwardListItem.cpp:
(WebKit::WebBackForwardListItem::setSuspendedPage):
* UIProcess/API/APINavigation.h:
(API::Navigation::setLockHistory):
(API::Navigation::lockHistory const):
(API::Navigation::setLockBackForwardList):
(API::Navigation::lockBackForwardList const):
(API::Navigation::setClientRedirectSourceForHistory):
(API::Navigation::clientRedirectSourceForHistory const):
* UIProcess/API/APINavigationClient.h:
(API::NavigationClient::willPerformClientRedirect):
(API::NavigationClient::didPerformClientRedirect):
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect):
* UIProcess/FrameLoadState.h:
(WebKit::FrameLoadState::setURL):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadRequestWithNavigation):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::didPerformClientRedirect):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::setCurrentHistoryItemForReattach):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

* TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
(-[PSONNavigationDelegate _webView:willPerformClientRedirectToURL:delay:]):
(-[PSONNavigationDelegate _webView:didPerformClientRedirectFromURL:toURL:]):

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

2 years ago[ MacOS Debug WK1 ] Layout Test fast/forms/state-restore-to-non-edited-controls.html...
tsavell@apple.com [Tue, 23 Oct 2018 17:26:55 +0000 (17:26 +0000)]
[ MacOS Debug WK1 ] Layout Test fast/forms/state-restore-to-non-edited-controls.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190832

Unreviewed Test Gardening.

* platform/mac-wk1/TestExpectations:

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

2 years agoLayout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media...
ryanhaddad@apple.com [Tue, 23 Oct 2018 17:22:43 +0000 (17:22 +0000)]
Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=176929

Unreviewed test gardening.

* platform/mac/TestExpectations: Mark test as flaky.

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

2 years agoREGRESSION (r236501?): Layout Test compositing/geometry/limit-layer-bounds-opacity...
ryanhaddad@apple.com [Tue, 23 Oct 2018 16:58:40 +0000 (16:58 +0000)]
REGRESSION (r236501?): Layout Test compositing/geometry/limit-layer-bounds-opacity-transition.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190210

Unreviewed test gardening.

* platform/mac/TestExpectations: Mark test as flaky.

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

2 years ago[WPE][GTK] Pass full certificate chain in CertificateInfo coder
csaavedra@igalia.com [Tue, 23 Oct 2018 15:52:11 +0000 (15:52 +0000)]
[WPE][GTK] Pass full certificate chain in CertificateInfo coder
https://bugs.webkit.org/show_bug.cgi?id=190789

Reviewed by Michael Catanzaro.

When the network process serializes certificate data to other
processes through the argument coders, the certificate chain, if
present, is lost. In practice this means that applications using
the public API to process certificate info have no details on the
certificate chain, other than the very basics included in the
certificate. Serialize the entire chain if available in the
certificate.

Source/WebKit:

* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<CertificateInfo>::encode): Encode the
certificate chain if present.
(IPC::ArgumentCoder<CertificateInfo>::decode): Decode the
entire certificate chain and rebuild it.

Tools:

* TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:
(testSSL): Test that the self-signed certificate has no bogus
issuer certificate.

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

2 years agoUse WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoun...
jer.noble@apple.com [Tue, 23 Oct 2018 14:40:58 +0000 (14:40 +0000)]
Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=190790

Reviewed by Alex Christensen.

Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by
MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created
the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make
GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making
incrementing the pending task count atomic.

* platform/GenericTaskQueue.cpp:
(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedLock):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):
* platform/GenericTaskQueue.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(-[WebCoreAVFMovieObserver initWithPlayer:]):
(-[WebCoreAVFMovieObserver disconnect]):
(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate initWithPlayer:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
(-[WebCoreAVFPullDelegate initWithPlayer:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFMovieObserver initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate setCallback:]): Deleted.
(-[WebCoreAVFPullDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFPullDelegate setCallback:]): Deleted.

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

2 years agoUncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEvent...
drousso@apple.com [Tue, 23 Oct 2018 09:52:54 +0000 (09:52 +0000)]
Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener')
https://bugs.webkit.org/show_bug.cgi?id=190766

Reviewed by Brian Burg.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._populateWaterfallGraph):
When creating the `mouseBlock`, if the `startTimestamp` and `endTimestamp` are equal, we
don't create an element. If this is true for the total range of the `WI.Resouce` (meaning
its `startTime` and `responseEnd`), don't even try to create blocks.

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

2 years agoWeb Inspector: "Queued NaNms" in Network tab
drousso@apple.com [Tue, 23 Oct 2018 09:50:14 +0000 (09:50 +0000)]
Web Inspector: "Queued NaNms" in Network tab
https://bugs.webkit.org/show_bug.cgi?id=190767
<rdar://problem/45420859>

Reviewed by Brian Burg.

* UserInterface/Models/ResourceTimingData.js:
(WI.ResourceTimingData.prototype.get fetchStart):
If the `WI.ResourceTimingData` has no `fetchStart` use the associated `WI.Resource`'s
`requestSentTimestamp` (just like `startTime`).

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

2 years agoRegistered custom properties should support syntax parameter for <length> and *
commit-queue@webkit.org [Tue, 23 Oct 2018 06:10:59 +0000 (06:10 +0000)]
Registered custom properties should support syntax parameter for <length> and *
https://bugs.webkit.org/show_bug.cgi?id=190039

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-10-22
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Update WPT test results to fail in a new way.

* web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt:
* web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt:
* web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles-expected.txt:
* web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt:

Source/WebCore:

Refactor code so that:
- All properties applied in StyleResolver::applyMatchedProperties are only applied once.
- Custom properties are only resolved once, in StyleResolver, when they are applied to the RenderStyle. They were previously resolved
  every time they were referenced, and again in RenderStyle.
- The font-size property is applied after its variable references, but before custom properties that depend on it.
- Cycles are detected at the same time as resolution.
- MutableStyleProperties' custom properties cannot be set from Javascript or WebKitLegacy if they do not parse for the property's type.
  If they contain var(--...) references, however, then they can be set because we cannot check if the references are valid from setProperty.
  This behaviour matches chrome, but is not documented in the spec.
- Custom property values have more explicit resolved/unresolved state.
- RenderStyle only ever holds resolved custom properties, and StyleResolver::CascadedProperties only holds unresolved properties.

Tests: css-custom-properties-api/crash.html
       css-custom-properties-api/cycles.html
       css-custom-properties-api/inline.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::customPropertyValue):
* css/CSSCustomPropertyValue.cpp:
(WebCore::CSSCustomPropertyValue::equals const):
(WebCore::CSSCustomPropertyValue::customCSSText const):
(WebCore::CSSCustomPropertyValue::tokens const):
(WebCore::CSSCustomPropertyValue::checkVariablesForCycles const): Deleted.
(WebCore::CSSCustomPropertyValue::resolveVariableReferences const): Deleted.
(WebCore::CSSCustomPropertyValue::setResolvedTypedValue): Deleted.
* css/CSSCustomPropertyValue.h:
* css/CSSRegisteredCustomProperty.cpp:
(WebCore::CSSRegisteredCustomProperty::CSSRegisteredCustomProperty):
* css/CSSRegisteredCustomProperty.h:
* css/CSSStyleSheet.h:
* css/CSSVariableData.cpp:
(WebCore::CSSVariableData::CSSVariableData):
(WebCore::CSSVariableData::consumeAndUpdateTokens): Deleted.
(WebCore::CSSVariableData::checkVariablesForCycles const): Deleted.
(WebCore::CSSVariableData::checkVariablesForCyclesWithRange const): Deleted.
(WebCore::CSSVariableData::resolveVariableFallback const): Deleted.
(WebCore::CSSVariableData::resolveVariableReference const): Deleted.
(WebCore::CSSVariableData::resolveVariableReferences const): Deleted.
(WebCore::CSSVariableData::resolveTokenRange const): Deleted.
* css/CSSVariableData.h:
(WebCore::CSSVariableData::create):
(WebCore::CSSVariableData::createResolved): Deleted.
(WebCore::CSSVariableData::needsVariableResolution const): Deleted.
(WebCore::CSSVariableData::CSSVariableData): Deleted.
* css/CSSVariableReferenceValue.cpp:
(WebCore::resolveVariableFallback):
(WebCore::resolveVariableReference):
(WebCore::resolveTokenRange):
(WebCore::CSSVariableReferenceValue::resolveVariableReferences const):
(WebCore::CSSVariableReferenceValue::checkVariablesForCycles const): Deleted.
* css/CSSVariableReferenceValue.h:
(WebCore::CSSVariableReferenceValue::create):
(WebCore::CSSVariableReferenceValue::equals const):
(WebCore::CSSVariableReferenceValue::variableDataValue const): Deleted.
* css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderCustom::applyInitialCustomProperty):
(WebCore::StyleBuilderCustom::applyValueCustomProperty):
* css/StyleProperties.cpp:
(WebCore::MutableStyleProperties::setCustomProperty):
* css/StyleProperties.h:
* css/StyleResolver.cpp:
(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::styleForKeyframe):
(WebCore::StyleResolver::styleForPage):
(WebCore::StyleResolver::applyMatchedProperties):
(WebCore::StyleResolver::applyPropertyToCurrentStyle):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::resolvedVariableValue const):
(WebCore::StyleResolver::CascadedProperties::applyDeferredProperties):
(WebCore::StyleResolver::CascadedProperties::Property::apply):
(WebCore::StyleResolver::applyCascadedCustomProperty):
(WebCore::StyleResolver::applyCascadedProperties):
* css/StyleResolver.h:
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseValueWithVariableReferences):
* css/parser/CSSParser.h:
* css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::CSSPropertyParser):
(WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue):
(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):
(WebCore::CSSPropertyParser::collectParsedCustomPropertyValueDependencies):
(WebCore::CSSPropertyParser::parseValueStart):
(WebCore::CSSPropertyParser::parseSingleValue):
* css/parser/CSSPropertyParser.h:
* css/parser/CSSVariableParser.cpp:
(WebCore::CSSVariableParser::parseDeclarationValue):
* dom/ConstantPropertyMap.cpp:
(WebCore::ConstantPropertyMap::setValueForProperty):
(WebCore::variableDataForPositivePixelLength):
(WebCore::variableDataForPositiveDuration):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::checkVariablesInCustomProperties): Deleted.
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setInheritedCustomPropertyValue):
(WebCore::RenderStyle::setNonInheritedCustomPropertyValue):
* rendering/style/StyleCustomPropertyData.h:
(WebCore::StyleCustomPropertyData::operator== const):
(WebCore::StyleCustomPropertyData::setCustomPropertyValue):
(WebCore::StyleCustomPropertyData::StyleCustomPropertyData):
(): Deleted.

LayoutTests:

Add tests for inline styles, font-size cycles with custom properties, and a crash that was reported.

* css-custom-properties-api/crash-expected.txt: Added.
* css-custom-properties-api/crash.html: Added.
* css-custom-properties-api/cycles-expected.txt: Added.
* css-custom-properties-api/cycles.html: Added.
* css-custom-properties-api/inline-expected.txt: Added.
* css-custom-properties-api/inline.html: Added.

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

2 years agoREGRESSION (r237331): InteractionDeadlockAfterCrash API test fails
timothy_horton@apple.com [Tue, 23 Oct 2018 01:52:04 +0000 (01:52 +0000)]
REGRESSION (r237331): InteractionDeadlockAfterCrash API test fails
https://bugs.webkit.org/show_bug.cgi?id=190801
<rdar://problem/43674361>

* TestWebKitAPI/Tests/WebKitCocoa/InteractionDeadlockAfterCrash.mm:
(TEST):
Use a parented WKWebView for this test, otherwise none of the assertions
about gesture recognizers work anymore.

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

2 years agoREGRESSION: [iOS] Layout Test media/media-fullscreen-pause-inline.html is a flaky...
ryanhaddad@apple.com [Tue, 23 Oct 2018 00:52:37 +0000 (00:52 +0000)]
REGRESSION: [iOS] Layout Test media/media-fullscreen-pause-inline.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=187618

Unreviewed test gardening.

* platform/ios/TestExpectations: Mark test as flaky.

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

2 years agoCSS Paint API should give a 2d rendering context
commit-queue@webkit.org [Tue, 23 Oct 2018 00:46:14 +0000 (00:46 +0000)]
CSS Paint API should give a 2d rendering context
https://bugs.webkit.org/show_bug.cgi?id=190762

Patch by Justin Michaud <justin_michaud@apple.com> on 2018-10-22
Reviewed by Dean Jackson.

Source/WebCore:

Add a new type of canvas and 2d rendering context to support the CSS Painting API.
Make many of the methods from HTMLCanvasElement virtual functions on CanvasBase, and
remove many of the downcasts in CanvasRenderingContext2DBase as a result.

* CMakeLists.txt:
* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSPaintRenderingContext2DCustom.cpp: Copied from Source/WebCore/css/CSSPaintCallback.h.
(WebCore::root):
(WebCore::JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots):
(WebCore::JSPaintRenderingContext2D::visitAdditionalChildren):
* bindings/js/WebCoreBuiltinNames.h:
* css/CSSPaintCallback.h:
* css/CSSPaintCallback.idl:
* html/CanvasBase.cpp:
(WebCore::CanvasBase::~CanvasBase):
* html/CanvasBase.h:
(WebCore::CanvasBase::isCustomPaintCanvas const):
* html/CustomPaintCanvas.cpp: Added.
(WebCore::CustomPaintCanvas::create):
(WebCore::CustomPaintCanvas::CustomPaintCanvas):
(WebCore::CustomPaintCanvas::~CustomPaintCanvas):
(WebCore::CustomPaintCanvas::width const):
(WebCore::CustomPaintCanvas::setWidth):
(WebCore::CustomPaintCanvas::height const):
(WebCore::CustomPaintCanvas::setHeight):
(WebCore::CustomPaintCanvas::size const):
(WebCore::CustomPaintCanvas::setSize):
(WebCore::CustomPaintCanvas::getContext):
(WebCore::CustomPaintCanvas::copiedImage const):
(WebCore::CustomPaintCanvas::drawingContext const):
(WebCore::CustomPaintCanvas::existingDrawingContext const):
(WebCore::CustomPaintCanvas::makeRenderingResultsAvailable):
* html/CustomPaintCanvas.h: Copied from Source/WebCore/html/OffscreenCanvas.h.
* html/HTMLCanvasElement.h:
* html/OffscreenCanvas.h:
* html/canvas/CanvasRenderingContext.cpp:
(WebCore::CanvasRenderingContext::wouldTaintOrigin):
* html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isPaint const):
* html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):
(WebCore::CanvasRenderingContext2DBase::unwindStateStack):
(WebCore::CanvasRenderingContext2DBase::isAccelerated const):
(WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
(WebCore::CanvasRenderingContext2DBase::setFillStyle):
(WebCore::CanvasRenderingContext2DBase::resetTransform):
(WebCore::CanvasRenderingContext2DBase::clearCanvas):
(WebCore::CanvasRenderingContext2DBase::transformAreaToDevice const):
(WebCore::CanvasRenderingContext2DBase::rectContainsCanvas const):
(WebCore::CanvasRenderingContext2DBase::calculateCompositingBufferRect):
(WebCore::CanvasRenderingContext2DBase::compositeBuffer):
(WebCore::CanvasRenderingContext2DBase::createPattern):
(WebCore::CanvasRenderingContext2DBase::didDrawEntireCanvas):
(WebCore::CanvasRenderingContext2DBase::didDraw):
(WebCore::CanvasRenderingContext2DBase::paintRenderingResultsToCanvas):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):
* html/canvas/CanvasRenderingContext2DBase.h:
* html/canvas/PaintRenderingContext2D.cpp: Copied from Source/WebCore/css/CSSPaintCallback.h.
(WebCore::PaintRenderingContext2D::create):
(WebCore::PaintRenderingContext2D::PaintRenderingContext2D):
* html/canvas/PaintRenderingContext2D.h: Copied from Source/WebCore/css/CSSPaintCallback.h.
* html/canvas/PaintRenderingContext2D.idl: Copied from Source/WebCore/css/CSSPaintCallback.idl.
* html/canvas/WebMetalRenderPassAttachmentDescriptor.h:
* platform/graphics/CustomPaintImage.cpp:
(WebCore::CustomPaintImage::doCustomPaint):

LayoutTests:

* fast/css-custom-paint/basic.html:

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

2 years agoUnreviewed, update TestExpectations for imported/w3c/web-platform-tests/fetch/nosniff...
ryanhaddad@apple.com [Tue, 23 Oct 2018 00:21:30 +0000 (00:21 +0000)]
Unreviewed, update TestExpectations for imported/w3c/web-platform-tests/fetch/nosniff/importscripts.html.
https://bugs.webkit.org/show_bug.cgi?id=157068

* TestExpectations: Mark test as a flaky failure for release builds.
* platform/mac-wk1/TestExpectations: Remove duplicate expectation.

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

2 years agoUpdate web-platform-tests/resource-timing
jiewen_tan@apple.com [Tue, 23 Oct 2018 00:15:40 +0000 (00:15 +0000)]
Update web-platform-tests/resource-timing
https://bugs.webkit.org/show_bug.cgi?id=190550

Reviewed by Youenn Fablet.

* resources/import-expectations.json:
* web-platform-tests/resource-timing/resource_initiator_types-expected.txt:
* web-platform-tests/resource-timing/resource_subframe_self_navigation-expected.txt:
* web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html:
* web-platform-tests/resource-timing/resources/TAOResponse.py:
(main):

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

2 years agoUse Location = "Relative to Build Products" rather than "Relative to Group"
krollin@apple.com [Mon, 22 Oct 2018 23:58:49 +0000 (23:58 +0000)]
Use Location = "Relative to Build Products" rather than "Relative to Group"
https://bugs.webkit.org/show_bug.cgi?id=190781

Reviewed by Alexey Proskuryakov.

Almost all Derived Files are included in Xcode projects with the
Location attribute set to "Relative to Group". While this currently
works, the Derived Files can no longer be found when enabling XCBuild
(which has stricter requirements). Fix this by setting the Location
attribute to "Relative to Build Products".

Source/JavaScriptCore:

* JavaScriptCore.xcodeproj/project.pbxproj:

Source/WebCore:

No new tests -- no changed functionality.

* WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

* WebKit.xcodeproj/project.pbxproj:

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

2 years agoREGRESSION (r234330): [mac-wk1] Layout Test fast/repaint/animation-after-layer-scroll...
realdawei@apple.com [Mon, 22 Oct 2018 23:56:06 +0000 (23:56 +0000)]
REGRESSION (r234330): [mac-wk1] Layout Test fast/repaint/animation-after-layer-scroll.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=188421

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-22

* platform/mac-wk1/TestExpectations: Mark test as flaky.

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

2 years ago[ Mojave WK1 ] Layout Test storage/indexeddb/database-odd-names.html is failing
ryanhaddad@apple.com [Mon, 22 Oct 2018 23:17:22 +0000 (23:17 +0000)]
[ Mojave WK1 ] Layout Test storage/indexeddb/database-odd-names.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190350

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Mark test as failing.

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

2 years ago[macOS WK1] Layout Test http/tests/security/cross-origin-xsl-redirect-BLOCKED.html...
ryanhaddad@apple.com [Mon, 22 Oct 2018 23:05:55 +0000 (23:05 +0000)]
[macOS WK1] Layout Test http/tests/security/cross-origin-xsl-redirect-BLOCKED.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189723

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Mark test as flaky.

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

2 years agoREGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioEle...
ryanhaddad@apple.com [Mon, 22 Oct 2018 23:05:52 +0000 (23:05 +0000)]
REGRESSION (r234081): TestWebKitAPI.VideoControlsManager.VideoControlsManagerAudioElementFollowingUserInteraction is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=187972

Unreviewed test gardening.

* TestWebKitAPI/Tests/WebKitCocoa/VideoControlsManager.mm:
(TestWebKitAPI::TEST): Disable the flaky test.

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

2 years agoLayout Test imported/w3c/web-platform-tests/intersection-observer/containing-block...
ajuma@chromium.org [Mon, 22 Oct 2018 22:02:46 +0000 (22:02 +0000)]
Layout Test imported/w3c/web-platform-tests/intersection-observer/containing-block.html is a flaky failure on Debug builds
https://bugs.webkit.org/show_bug.cgi?id=190808

Unreviewed test gardening.

* TestExpectations:

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

2 years agoSome WK1 repaint tests are flaky on Mojave
realdawei@apple.com [Mon, 22 Oct 2018 22:02:09 +0000 (22:02 +0000)]
Some WK1 repaint tests are flaky on Mojave
https://bugs.webkit.org/show_bug.cgi?id=190627

Unreviewed, marked tests as flaky.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-10-22

* platform/mac-wk1/TestExpectations:

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

2 years agoDon't waste time under -setupInteraction under -initWithFrame for unparented WKWebViews
timothy_horton@apple.com [Mon, 22 Oct 2018 21:22:36 +0000 (21:22 +0000)]
Don't waste time under -setupInteraction under -initWithFrame for unparented WKWebViews
https://bugs.webkit.org/show_bug.cgi?id=190801
<rdar://problem/43674361>

Reviewed by Megan Gardner.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
(-[WKContentView didMoveToWindow]):
Defer the first call to WKContentViewInteraction's -setupInteraction
until the view is parented. This avoids a few milliseconds of unnecessary
work for views that are never parented.

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
Keep track of the current state of WKContentViewInteraction's gestures.
Use this to make it OK to call -setupInteraction multiple times.

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

2 years agoRegression (r232410): StorageTracker.db file gets unlinked while in use
sihui_liu@apple.com [Mon, 22 Oct 2018 21:05:20 +0000 (21:05 +0000)]
Regression (r232410): StorageTracker.db file gets unlinked while in use
https://bugs.webkit.org/show_bug.cgi?id=190795

Reviewed by Chris Dumez.

WK2 stopped using StorageTracker.db file in r232410 and would delete
the file for safety.
It turned out WK1 could use the same file path, so WK2 may delete the
file while WK1 is using it.

* Storage/StorageTracker.cpp:
(WebKit::StorageTracker::trackerDatabasePath):

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

2 years agoDeque's contains() and findIf() should be const
cdumez@apple.com [Mon, 22 Oct 2018 21:05:02 +0000 (21:05 +0000)]
Deque's contains() and findIf() should be const
https://bugs.webkit.org/show_bug.cgi?id=190796

Reviewed by Antti Koivisto.

Source/WebKit:

Mark method as const now that Deque's implementation allows it to be.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::hasSuspendedPageProxyFor const):
(WebKit::WebProcessPool::hasSuspendedPageProxyFor): Deleted.
* UIProcess/WebProcessPool.h:

Source/WTF:

Deque's contains() and findIf() should be const as they do not modify the container.

* wtf/Deque.h:
(WTF::inlineCapacity>::findIf):
(WTF::inlineCapacity>::findIf const):
(WTF::inlineCapacity>::contains const):
(WTF::inlineCapacity>::contains): Deleted.

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

2 years ago[iOS] [Datalist] fast/forms/datalist/datalist-show-hide.html fails
wenson_hsieh@apple.com [Mon, 22 Oct 2018 20:12:07 +0000 (20:12 +0000)]
[iOS] [Datalist] fast/forms/datalist/datalist-show-hide.html fails
https://bugs.webkit.org/show_bug.cgi?id=190777

Reviewed by Tim Horton.

Tools:

Implement isShowingDataListSuggestions on iOS. See below for more details.

* DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::isShowingDataListSuggestions const):

Add a stub implementation for DumpRenderTree.

* TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::isShowingDataListSuggestions const):

Move this stub implementation to !PLATFORM(COCOA).

* WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::forEachViewInHierarchy):

Add a helper function to apply a given function to a UIView and each of its subviews, recursively.

(WTR::UIScriptController::isShowingDataListSuggestions const):

For iOS, return whether the UIRemoteKeyboardWindow contains a subview of type WKDataListSuggestionsPickerView.

LayoutTests:

Refactor this test such that it passes on both iOS and macOS. This test verifies that datalist suggestions menu
UI can be shown and hidden. On macOS, we focus and then blur the input field; on iOS, we tap in the datalist
button to show the suggestions UI, and then tap in the text field to bring back the regular keyboard.

* fast/forms/datalist/datalist-show-hide-expected.txt:
* fast/forms/datalist/datalist-show-hide.html:
* platform/ios/TestExpectations:

Unskip the layout test on iOS.

* resources/ui-helper.js:
(window.UIHelper.isShowingDataListSuggestions):

Tweak this helper function to resolve with either true or false (Boolean types), instead of the strings "true"
and "false".

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

2 years agoWeb Inspector: Open Quickly dialog doesn't show named scripts that appear in the...
commit-queue@webkit.org [Mon, 22 Oct 2018 19:24:04 +0000 (19:24 +0000)]
Web Inspector: Open Quickly dialog doesn't show named scripts that appear in the debugger sidebar
https://bugs.webkit.org/show_bug.cgi?id=190649

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2018-10-22
Reviewed by Devin Rousso.

* UserInterface/Views/OpenResourceDialog.js:
(WI.OpenResourceDialog.prototype.didPresentDialog):
(WI.OpenResourceDialog.prototype._addResourcesForTarget):
(WI.OpenResourceDialog.prototype._addScriptsForTarget):
Include non-resource named scripts from the main target in
the open quickly dialog.

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

2 years agoDFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
mark.lam@apple.com [Mon, 22 Oct 2018 19:07:37 +0000 (19:07 +0000)]
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>

Rubber-stamped by Saam Barati.

Adding another test.

* stress/regress-190515-2.js: Added.

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

2 years agoDFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
mark.lam@apple.com [Mon, 22 Oct 2018 17:18:13 +0000 (17:18 +0000)]
DFGAbstractValue::m_arrayModes expects IndexingMode values, not IndexingType.
https://bugs.webkit.org/show_bug.cgi?id=190515
<rdar://problem/45222379>

Reviewed by Saam Barati.

JSTests:

* stress/regress-190515.js: Added.

Source/JavaScriptCore:

1. Fixes calls to asArrayModes() to take a structure's IndexingMode instead of
   IndexingType.

2. DFG's compileNewArrayBuffer()'s HaveABadTime case was previously using the
   node's indexingType (instead of indexingMode) to choose the array structure
   to use for creating an array buffer with.  This turns out to not be an issue
   because when the VM is in having a bad time, all the
   arrayStructureForIndexingTypeDuringAllocation structure pointers will point to
   the SlowPutArrayStorage structure anyway.  However, to be strictly correct,
   we'll fix it to use the structure for the node's indexingMode.

* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::set):
(JSC::DFG::AbstractValue::mergeOSREntryValue):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::validate const):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
* dfg/DFGRegisteredStructureSet.cpp:
(JSC::DFG::RegisteredStructureSet::arrayModesFromStructures const):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewArrayBuffer):

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

2 years ago[LFC][IFC] Add justify text-align support.
zalan@apple.com [Mon, 22 Oct 2018 16:27:32 +0000 (16:27 +0000)]
[LFC][IFC] Add justify text-align support.
https://bugs.webkit.org/show_bug.cgi?id=190779

Reviewed by Antti Koivisto.

Collect expansion opportunities and adjust runs accordingly.

* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInlineContent const):
* layout/inlineformatting/InlineFormattingContext.h:
* layout/inlineformatting/InlineRun.h:
(WebCore::Layout::InlineRun::expansionOpportunity):
(WebCore::Layout::InlineRun::TextContext::setStart):
(WebCore::Layout::InlineRun::TextContext::setLength):
(WebCore::Layout::InlineRun::setTextContext):
(WebCore::Layout::InlineRun::createRun): Deleted.
(WebCore::Layout::InlineRun::createTextRun): Deleted.
* layout/inlineformatting/Line.cpp:
(WebCore::Layout::InlineFormattingContext::Line::Line):
(WebCore::Layout::InlineFormattingContext::Line::init):
(WebCore::Layout::InlineFormattingContext::Line::computeExpansionOpportunities):
(WebCore::Layout::InlineFormattingContext::Line::appendContent):
(WebCore::Layout::InlineFormattingContext::Line::justifyRuns):
(WebCore::Layout::InlineFormattingContext::Line::close):
(WebCore::Layout::isNonCollapsedText): Deleted.

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

2 years ago[LFC][IFC] Add (right, center)text-align support.
zalan@apple.com [Mon, 22 Oct 2018 16:02:48 +0000 (16:02 +0000)]
[LFC][IFC] Add (right, center)text-align support.
https://bugs.webkit.org/show_bug.cgi?id=190745

Reviewed by Antti Koivisto.

Adjust the logical left of each run while closing the line.

* layout/Verification.cpp:
(WebCore::Layout::outputMismatchingSimpleLineInformationIfNeeded):
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::trimLeadingRun):
(WebCore::Layout::InlineFormattingContext::layoutInlineContent const):
* layout/inlineformatting/InlineFormattingContext.h:
(WebCore::Layout::InlineFormattingContext::Line::hasContent const):
(WebCore::Layout::InlineFormattingContext::Line::contentLogicalLeft const): Deleted.
* layout/inlineformatting/InlineLineBreaker.cpp:
(WebCore::Layout::InlineLineBreaker::nextRun):
(WebCore::Layout::InlineLineBreaker::splitRun):
* layout/inlineformatting/InlineLineBreaker.h:
* layout/inlineformatting/InlineRun.h:
(WebCore::Layout::InlineRun::setLogicalLeft):
(WebCore::Layout::InlineRun::TextContext::start const):
(WebCore::Layout::InlineRun::createRun):
(WebCore::Layout::InlineRun::createTextRun):
(WebCore::Layout::InlineRun::InlineRun):
(WebCore::Layout::InlineRun::TextContext::TextContext):
(WebCore::Layout::InlineRun::TextContext::position const): Deleted.
* layout/inlineformatting/Line.cpp:
(WebCore::Layout::InlineFormattingContext::Line::Line):
(WebCore::Layout::InlineFormattingContext::Line::init):
(WebCore::Layout::adjustedLineLogicalLeft):
(WebCore::Layout::InlineFormattingContext::Line::contentLogicalRight):
(WebCore::Layout::InlineFormattingContext::Line::appendContent):
(WebCore::Layout::InlineFormattingContext::Line::close):
(WebCore::Layout::InlineFormattingContext::Line::setConstraints): Deleted.
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputInlineRuns):

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

2 years ago[ MacOS WK1 ] Layout Test platform/mac/media/audio-session-category-video-paused...
tsavell@apple.com [Mon, 22 Oct 2018 15:48:29 +0000 (15:48 +0000)]
[ MacOS WK1 ] Layout Test platform/mac/media/audio-session-category-video-paused.html is flaky Timeout
https://bugs.webkit.org/show_bug.cgi?id=189680

Unreviewed Test Gardening

* platform/mac-wk1/TestExpectations:

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

2 years ago[LFC][IFC] Implement Replaced helper class.
zalan@apple.com [Mon, 22 Oct 2018 15:42:44 +0000 (15:42 +0000)]
[LFC][IFC] Implement Replaced helper class.
https://bugs.webkit.org/show_bug.cgi?id=190719

Reviewed by Antti Koivisto.

* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box):
* layout/layouttree/LayoutBox.h:
(WebCore::Layout::Box::replaced const):
* layout/layouttree/LayoutReplaced.cpp:
(WebCore::Layout::Replaced::Replaced):
(WebCore::Layout::Replaced::hasIntrinsicWidth const):
(WebCore::Layout::Replaced::hasIntrinsicHeight const):
(WebCore::Layout::Replaced::hasIntrinsicRatio const):
(WebCore::Layout::Replaced::intrinsicWidth const):
(WebCore::Layout::Replaced::intrinsicHeight const):
(WebCore::Layout::Replaced::intrinsicRatio const):
* layout/layouttree/LayoutReplaced.h:
(WebCore::Layout::Replaced::hasIntrinsicWidth const): Deleted.
(WebCore::Layout::Replaced::hasIntrinsicHeight const): Deleted.
(WebCore::Layout::Replaced::hasIntrinsicRatio const): Deleted.
(WebCore::Layout::Replaced::intrinsicWidth const): Deleted.
(WebCore::Layout::Replaced::intrinsicHeight const): Deleted.
(WebCore::Layout::Replaced::intrinsicRatio const): Deleted.
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):

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

2 years ago[LFC][IFC] Block formatting context roots avoid floats.
zalan@apple.com [Mon, 22 Oct 2018 15:21:59 +0000 (15:21 +0000)]
[LFC][IFC] Block formatting context roots avoid floats.
https://bugs.webkit.org/show_bug.cgi?id=190723

Reviewed by Antti Koivisto.

Inline formatting context roots don't avoid floats (unless they also establish block formatting context).

* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):

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

2 years ago[Win][Clang] WebView.h: warning: 'QueryInterface' overrides a member function but...
Hironori.Fujii@sony.com [Mon, 22 Oct 2018 02:06:22 +0000 (02:06 +0000)]
[Win][Clang] WebView.h: warning: 'QueryInterface' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
https://bugs.webkit.org/show_bug.cgi?id=190744

Reviewed by Alex Christensen.

clang-cl reports compilation warnings for inconsistent 'override'
keyword usage.

WebView::flushPendingGraphicsLayerChanges is used only if USE(CA).
This can't be marked 'override' if !USE(CA).

* WebView.cpp:
(WebView::flushPendingGraphicsLayerChanges): Define flushPendingGraphicsLayerChanges only if USE(CA).
* WebView.h: Marked all overriding member function declarations of WebView 'override'.
Declare flushPendingGraphicsLayerChanges only if USE(CA).

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

2 years agoUnskip test fast/writing-mode/english-rl-text-with-spelling-marker.html in iOS WebKit2
dbates@webkit.org [Sat, 20 Oct 2018 21:07:48 +0000 (21:07 +0000)]
Unskip test fast/writing-mode/english-rl-text-with-spelling-marker.html in iOS WebKit2

Following r235149 we mark spelling errors in iOS WebKit2.

* platform/ios-wk1/TestExpectations: Skip in legacy WebKit until we fix <https://webkit.org/b/188762>.
* platform/ios/TestExpectations: Unskip test.

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

2 years agoMediaRecorder should fire a stop event when all tracks are ended
commit-queue@webkit.org [Sat, 20 Oct 2018 13:15:27 +0000 (13:15 +0000)]
MediaRecorder should fire a stop event when all tracks are ended
https://bugs.webkit.org/show_bug.cgi?id=190642

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-10-20
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/mediacapture-record/MediaRecorder-stop-expected.txt: Added.
* web-platform-tests/mediacapture-record/MediaRecorder-stop.html: Added.

Source/WebCore:

This patch only implements to fire the stop event when all tracks are ended.
We will need to fire a dataavailable event when all tracks are ended.

Test: imported/w3c/web-platform-tests/mediacapture-record/MediaRecorder-stop.html

* Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::MediaRecorder):
(WebCore::MediaRecorder::~MediaRecorder):
(WebCore::MediaRecorder::trackEnded):
* Modules/mediarecorder/MediaRecorder.h:
* Modules/mediarecorder/MediaRecorder.idl:
* WebCore.xcodeproj/project.pbxproj:
* dom/EventNames.h:

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

2 years ago[macOS] MiniBrowser has an unused injected bundle
mitz@apple.com [Sat, 20 Oct 2018 07:00:09 +0000 (07:00 +0000)]
[macOS] MiniBrowser has an unused injected bundle
https://bugs.webkit.org/show_bug.cgi?id=190770

Reviewed by Tim Horton.

* MiniBrowser/Configurations/MiniBrowserBundle.xcconfig: Removed.
* MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj: Removed the MiniBrowserBundle target,
  the Copy Bundle build phase in the MiniBrowser target, and references to removed files.
* MiniBrowser/MiniBrowserWebProcessPlugIn.h: Removed.
* MiniBrowser/MiniBrowserWebProcessPlugIn.m: Removed.
* MiniBrowser/mac/Bundle: Removed.

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

2 years agoAllow WebContent process to check some file system features
bfulgham@apple.com [Sat, 20 Oct 2018 02:57:41 +0000 (02:57 +0000)]
Allow WebContent process to check some file system features
https://bugs.webkit.org/show_bug.cgi?id=190768
<rdar://problem/45377609>

Reviewed by Alexey Proskuryakov.

This patch unblocks some IOKit properties that are needed by lower level frameworks to make decisions
about how to efficiently use the file system.

* WebProcess/com.apple.WebProcess.sb.in:

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

2 years ago[WinCairo] Search terms are not saved for <input type="search">
stephan.szabo@sony.com [Sat, 20 Oct 2018 00:03:21 +0000 (00:03 +0000)]
[WinCairo] Search terms are not saved for <input type="search">
https://bugs.webkit.org/show_bug.cgi?id=188174

Reviewed by Fujii Hironori.

Source/WebCore:

No new tests, should be covered by existing tests of search
inputs.

Add support for saving the search terms for <input
type="search"> to a SQLite database, replacing the
CF-based implementation for Windows and adding support
for non-legacy WebKit.

* PlatformWin.cmake:
* platform/win/SearchPopupMenuDB.cpp: Added.
(WebCore::SearchPopupMenuDB::singleton):
(WebCore::SearchPopupMenuDB::SearchPopupMenuDB):
(WebCore::SearchPopupMenuDB::~SearchPopupMenuDB):
(WebCore::SearchPopupMenuDB::saveRecentSearches):
(WebCore::SearchPopupMenuDB::loadRecentSearches):
(WebCore::SearchPopupMenuDB::checkDatabaseValidity): Use
quick_check pragma to test database status.
(WebCore::SearchPopupMenuDB::deleteAllDatabaseFiles):
(WebCore::SearchPopupMenuDB::openDatabase):
(WebCore::SearchPopupMenuDB::closeDatabase):
(WebCore::SearchPopupMenuDB::verifySchemaVersion): Check
schema version and update for schema changes.
(WebCore::SearchPopupMenuDB::checkSQLiteReturnCode): Check
for error codes that indicate database errors and remove and
recreate the database.
(WebCore::SearchPopupMenuDB::executeSimpleSql):
(WebCore::SearchPopupMenuDB::createPreparedStatement):
* platform/win/SearchPopupMenuDB.h: Added.
* platform/win/SearchPopupMenuWin.cpp:
(WebCore::SearchPopupMenuWin::enabled): Always enable support
for search term popup
(WebCore::SearchPopupMenuWin::saveRecentSearches): Switch from
CF implementation to SQLite database implementation
(WebCore::SearchPopupMenuWin::loadRecentSearches): Switch from
CF implementation to SQLite database implementation
(WebCore::autosaveKey): Deleted.

Source/WebKit:

Add support for saving the search terms for <input
type="search"> to a SQLite database, replacing the
CF-based implementation for Windows and adding support
for non-legacy WebKit.

* UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::saveRecentSearches): Use SQLite database
implementation in WebCore::SearchPopupMenuDB to save search
terms
(WebKit::WebPageProxy::loadRecentSearches): Use SQLite database
implementation in WebCore::SearchPopupMenuDB to load search
terms

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

2 years agoWebDataListSuggestionsDropdown should use a WeakPtr
achristensen@apple.com [Fri, 19 Oct 2018 23:15:27 +0000 (23:15 +0000)]
WebDataListSuggestionsDropdown should use a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=190763
<rdar://problem/45417449>

Reviewed by Tim Horton.

Nothing suspicious here. It's just good practice to not keep raw pointers that aren't reset when the object they point to are destroyed.

* UIProcess/WebDataListSuggestionsDropdown.cpp:
(WebKit::WebDataListSuggestionsDropdown::WebDataListSuggestionsDropdown):
(WebKit::WebDataListSuggestionsDropdown::close):
* UIProcess/WebDataListSuggestionsDropdown.h:
(WebKit::WebDataListSuggestionsDropdown::Client::~Client): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/ios/WebDataListSuggestionsDropdownIOS.h:
* UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(WebKit::WebDataListSuggestionsDropdownIOS::create):
(WebKit::WebDataListSuggestionsDropdownIOS::WebDataListSuggestionsDropdownIOS):
(WebKit::WebDataListSuggestionsDropdownIOS::close):
(WebKit::WebDataListSuggestionsDropdownIOS::didSelectOption):
* UIProcess/mac/WebDataListSuggestionsDropdownMac.h:
* UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(WebKit::WebDataListSuggestionsDropdownMac::create):
(WebKit::WebDataListSuggestionsDropdownMac::WebDataListSuggestionsDropdownMac):
(WebKit::WebDataListSuggestionsDropdownMac::didSelectOption):
(WebKit::WebDataListSuggestionsDropdownMac::selectOption):

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

2 years ago[WebGPU] Add stubs for WebGPUSwapChain and WebGPURenderingContext
justin_fan@apple.com [Fri, 19 Oct 2018 22:19:12 +0000 (22:19 +0000)]
[WebGPU] Add stubs for WebGPUSwapChain and WebGPURenderingContext
https://bugs.webkit.org/show_bug.cgi?id=190742

Reviewed by Dean Jackson.

Source/WebCore:

Test: updated webgpu-enabled.html to check for WebGPURenderingContext.

Implement support for creating a "webgpu" context from an HTML canvas.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/webgpu/WebGPURenderingContext.cpp: Added.
(WebCore::WebGPURenderingContext::create):
(WebCore::WebGPURenderingContext::WebGPURenderingContext):
* Modules/webgpu/WebGPURenderingContext.h: Added.
* Modules/webgpu/WebGPURenderingContext.idl: Added.
* Modules/webgpu/WebGPUSwapChain.cpp: Added.
(WebCore::WebGPUSwapChain::configure):
(WebCore::WebGPUSwapChain::present):
(WebCore::WebGPUSwapChain::reshape):
(WebCore::WebGPUSwapChain::markLayerComposited):
* Modules/webgpu/WebGPUSwapChain.h: Added.
(WebCore::WebGPUSwapChain::WebGPUSwapChain):
* Modules/webgpu/WebGPUSwapChain.idl: Added.
* Modules/webgpu/WebGPUSwapChainDescriptor.h: Added.
* Modules/webgpu/WebGPUSwapChainDescriptor.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* dom/Document.cpp:
(WebCore::Document::getCSSCanvasContext):
* dom/Document.h:
* dom/Document.idl:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
(WebCore::HTMLCanvasElement::isWebGPUType):
(WebCore::HTMLCanvasElement::createContextWebGPU):
(WebCore::HTMLCanvasElement::getContextWebGPU):
* html/HTMLCanvasElement.h:
* html/HTMLCanvasElement.idl:
* html/canvas/CanvasRenderingContext.h:
(WebCore::CanvasRenderingContext::isWebGPU const):

LayoutTests:

Updated basic webgpu feature detection test to check for WebGPURenderingContext.

* webgpu/webgpu-enabled-expected.txt:
* webgpu/webgpu-enabled.html:

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

2 years ago[iOS] [Datalist] Can't pick datalist suggestions in a stock WKWebView
wenson_hsieh@apple.com [Fri, 19 Oct 2018 22:00:32 +0000 (22:00 +0000)]
[iOS] [Datalist] Can't pick datalist suggestions in a stock WKWebView
https://bugs.webkit.org/show_bug.cgi?id=190621
<rdar://problem/45310649>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by refactoring datalist suggestion information on iOS; currently, we override text suggestions on
_WKFormInputSession. This only works for a few internal clients (including Safari) that set a _WKInputDelegate
and also implement either -_webView:willStartInputSession: or -_webView:didStartInputSession:, which is
necessary in order to ensure that WebKit creates and maintains a form input session.

The two pieces of information that datalist code needs to vend to WKContentView are a list of UITextSuggestions
and a custom input view, which are both currently properties of _WKFormInputSession. This patch lifts these out
of the input session and makes them properties of WKContentView, which are used in
WebDataListSuggestionsDropdownIOS.

Test: fast/forms/datalist/datalist-textinput-suggestions-order.html

* UIProcess/ios/WKContentViewInteraction.h:
* UIProcess/ios/WKContentViewInteraction.mm:

Add new properties to WKContentView: an input view for datalist suggestions, and a list of text suggestions.

(-[WKFormInputSession setSuggestions:]):
(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _endEditing]):

Pull out common logic when resigning first responder or tabbing to the next or previous text field into a new
helper. This helper notifies `_inputPeripheral`, `_formInputSession`, and `_dataListTextSuggestionsInputView`
when editing has ended; the input peripheral and suggestions input view use this chance to send the value of the
form control to the web process.

(-[WKContentView resignFirstResponderForWebView]):
(-[WKContentView inputView]):

If a custom input view is not set but we have an input view for a datalist's text suggestions, use the datalist
input view.

(-[WKContentView accessoryTab:]):
(-[WKContentView _stopAssistingNode]):

Clear datalist state on WKContentView.

(-[WKContentView dataListTextSuggestionsInputView]):
(-[WKContentView dataListTextSuggestions]):
(-[WKContentView setDataListTextSuggestionsInputView:]):
(-[WKContentView setDataListTextSuggestions:]):
(-[WKContentView updateTextSuggestionsForInputDelegate]):

Pull out logic for setting suggestions on UIKit's `inputDelegate` (i.e. UIKeyboardImpl). We now first consult
internally-vended text suggestions from _WKFormInputSession; if an internal client has not overridden our text
suggestions, then we simply use suggestions from the current datalist (if present).

* UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:
(-[WKDataListSuggestionsPicker updateWithInformation:]):
(-[WKDataListSuggestionsPicker showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPicker invalidate]):
(-[WKDataListSuggestionsPopover updateWithInformation:]):
(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsPopover didSelectOptionAtIndex:]):

Change all the places that currently manipulate WKContentView's form input session to directly set text
suggestions and the text suggestion input view on the content view instead.

Tools:

Add a UIScriptController hook to resign first responder on WKWebView. See LayoutTests/ChangeLog for more detail.

* DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::resignFirstResponder):
* DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptController::resignFirstResponder):
* TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
* TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::resignFirstResponder):
* TestRunnerShared/UIScriptContext/UIScriptController.h:
* WebKitTestRunner/UIScriptControllerCocoa.mm:
(WTR::UIScriptController::resignFirstResponder):
* WebKitTestRunner/ios/PlatformWebViewIOS.mm:
(WTR::PlatformWebView::makeWebViewFirstResponder):

Implement this method stub on iOS, to ensure that TestController::resetStateToConsistentValues restores first
responder on the WKWebView when running iOS layout tests.

* WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):

After resigning first responder to dismiss any on-screen keyboard, ensure that we restore first responder.

LayoutTests:

Refactor an existing layout test to run on both iOS and macOS. On both platforms, it checks that the top
suggestion respects option element order in the document, as well as the current contents of the text field.
On macOS, we use arrow keys and hit return to select a suggestion; on iOS, we tap the suggestions button and
simulate hitting the done button on the input view to dismiss the keyboard.

* fast/forms/datalist/datalist-textinput-suggestions-order-expected.txt:
* fast/forms/datalist/datalist-textinput-suggestions-order.html:
* platform/ios/TestExpectations:

Enable this test on iOS.

* resources/ui-helper.js:
(window.UIHelper.resignFirstResponder):
(window.UIHelper):

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

2 years agoOnly cap lifetime of persistent cookies created client-side through document.cookie...
wilander@apple.com [Fri, 19 Oct 2018 21:37:54 +0000 (21:37 +0000)]
Only cap lifetime of persistent cookies created client-side through document.cookie when resource load statistics is enabled
https://bugs.webkit.org/show_bug.cgi?id=190687
<rdar://problem/45349024>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html

NetworkStorageSession::setCookiesFromDOM() now consults the new
m_shouldCapLifetimeForClientSideCookies member variable before
capping the lifetime of cookies.

* loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):
    Removal of the isMarkedForCookieBlocking member.
* loader/ResourceLoadStatistics.h:
    Removal of the isMarkedForCookieBlocking member.
* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::setShouldCapLifetimeForClientSideCookies):
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor):
    No longer takes the boolean clearFirst parameter and now always clears first.
* platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::filterCookies):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):

Source/WebKit:

This patch adds the following:
- The WebProcessPool now tells the WebsiteDataStore when a network process has
    been created.
- The WebsiteDataStore in turn tells the WebResourceLoadStatisticsStore when
    a network process has been created.
- The WebResourceLoadStatisticsStore makes sure to update the network processes
    with its cookie policy when it's notified that a network process has been
    created.

In addition, this patch changes the following:
- The ResourceLoadStatisticsMemoryStore no longer keeps track of which domains
    it has told the network process to block cookies for. The reason is that
    we cannot assume that there is only one network process so we should
    always send complete blocking data.
- The ResourceLoadStatisticsMemoryStore's functions for communicating cookie
    blocking state to the network process no longer take and forward the
    "clear first" parameter. This is because complete data is sent every time
    and thus the network process' set is always cleared on an update.
- Removes WebsiteDataStore::networkProcessDidCrash() and
    WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset() since
    the call site---WebProcessPool::ensureNetworkProcess()---now calls
    WebsiteDataStore::didCreateNetworkProcess() after a network process
    crash and the state sync for cookie blocking is triggered.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcess::setShouldCapLifetimeForClientSideCookies):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcessProxy::setShouldCapLifetimeForClientSideCookies):
(WebKit::NetworkProcessProxy::didSetShouldCapLifetimeForClientSideCookies):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::clearBlockingStateForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::resetCookieBlockingState): Deleted.
* UIProcess/ResourceLoadStatisticsMemoryStore.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::didCreateNetworkProcess):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset): Deleted.
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::setShouldCapLifetimeForClientSideCookies):
(WebKit::WebsiteDataStore::didCreateNetworkProcess):
(WebKit::WebsiteDataStore::networkProcessDidCrash): Deleted.
* UIProcess/WebsiteData/WebsiteDataStore.h:

LayoutTests:

The test case now makes use of internals.setResourceLoadStatisticsEnabled()
and was thus moved to http/tests/resourceLoadStatistics/.

* TestExpectations:
    Removed skip of previous test location.
* http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js-expected.txt: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt.
* http/tests/resourceLoadStatistics/capped-lifetime-for-cookie-set-in-js.html: Renamed from LayoutTests/http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html.
* http/tests/webAPIStatistics/canvas-read-and-write-data-collection-expected.txt:
    Removed line containing "isMarkedForCookieBlocking: No."
* http/tests/webAPIStatistics/font-load-data-collection-expected.txt:
    Removed line containing "isMarkedForCookieBlocking: No."
* http/tests/webAPIStatistics/navigator-functions-accessed-data-collection-expected.txt:
    Removed line containing "isMarkedForCookieBlocking: No."
* http/tests/webAPIStatistics/screen-functions-accessed-data-collection-expected.txt:
    Removed line containing "isMarkedForCookieBlocking: No."
* platform/ios/TestExpectations:
    Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.
* platform/mac-wk2/TestExpectations:
    Removed pass of previous test location. The whole http/tests/resourceLoadStatistics/ is marked pass for relevant platforms.

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

2 years agoRebase python tests.
achristensen@apple.com [Fri, 19 Oct 2018 21:29:13 +0000 (21:29 +0000)]
Rebase python tests.

* Scripts/webkit/messages_unittest.py:

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

2 years agoRebase python tests.
achristensen@apple.com [Fri, 19 Oct 2018 21:17:57 +0000 (21:17 +0000)]
Rebase python tests.

* Scripts/Makefile:
* Scripts/webkit/MessageReceiver-expected.cpp:
* Scripts/webkit/Messages-expected.h:

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

2 years agoASSERTION FAILED: !frame().animation().hasAnimations() in WebCore::FrameView::didDest...
dino@apple.com [Fri, 19 Oct 2018 21:17:19 +0000 (21:17 +0000)]
ASSERTION FAILED: !frame().animation().hasAnimations() in WebCore::FrameView::didDestroyRenderTree()
https://bugs.webkit.org/show_bug.cgi?id=186946
<rdar://problem/41724248>

Reviewed by Antoine Quint.

If the incoming test has different enableWebAnimationsCSSIntegration options,
then we need to create a new WebView.

* DumpRenderTree/TestOptions.cpp:
(TestOptions::webViewIsCompatibleWithOptions const):

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