WebKit-https.git
19 months agoAssert that calling CGSSetDenyWindowServerConnections(true) succeeds
pvollan@apple.com [Thu, 16 Aug 2018 15:53:31 +0000 (15:53 +0000)]
Assert that calling CGSSetDenyWindowServerConnections(true) succeeds
https://bugs.webkit.org/show_bug.cgi?id=188615

Reviewed by Brent Fulgham.

If the call to CGSSetDenyWindowServerConnections(true) fails, it means there are open WindowServer connections
at this point, and future WindowServer connections will not be denied. We should assert that this call succeeds.

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

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

19 months agoAdd fake layout test results JSON to exercise the functionality in results.html
simon.fraser@apple.com [Thu, 16 Aug 2018 15:50:16 +0000 (15:50 +0000)]
Add fake layout test results JSON to exercise the functionality in results.html
https://bugs.webkit.org/show_bug.cgi?id=188636

Reviewed by Alexey Proskuryakov.

The results for results.html are mostly blank because the page runs without any JSON
data, so there's no testing of the functionality of the page. Add some fake JSON
data which supplies most of the different types of test result, so we're testing
at least some of the results.html script.

* fast/harness/full_results.json: Added.
* fast/harness/results-expected.txt:

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

19 months ago[lFC][Floating] Add estimated margin top computation.
zalan@apple.com [Thu, 16 Aug 2018 15:43:53 +0000 (15:43 +0000)]
[lFC][Floating] Add estimated margin top computation.
https://bugs.webkit.org/show_bug.cgi?id=188619

Reviewed by Antti Koivisto.

In order to figure out whether a box should avoid a float, we need to know the final positions of both (ignore relative positioning for now).
In block formatting context the final position for a normal flow box includes
1. the static position and
2. the corresponding (non)collapsed margins.
Now the vertical margins are computed when all the descendants are finalized, because the margin values might be depending on the height of the box
(and the height might be based on the content).
So when we get to the point where we intersect the box with the float to decide if the box needs to move, we don't yet have the final vertical position.

The idea here is that as long as we don't cross the block formatting context boundary, we should be able to pre-compute the final top margin.
(if this holds true for all the cases, the estimated prefix could be removed and just use marginTop() instead.)

Covered by existing block-only tests.

* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTop const):
(WebCore::Layout::BlockFormattingContext::computeEstimatedMarginTopForAncestors const):
(WebCore::Layout::BlockFormattingContext::computeFloatingPosition const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForFloatClear const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::BlockFormattingContext::MarginCollapse::estimatedMarginTop):
* layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Box):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::setHasValidTop):
(WebCore::Display::Box::setHasValidLeft):
(WebCore::Display::Box::top const):
(WebCore::Display::Box::left const):
(WebCore::Display::Box::topLeft const):
(WebCore::Display::Box::setTopLeft):
(WebCore::Display::Box::setTop):
(WebCore::Display::Box::setLeft):
(WebCore::Display::Box::setVerticalMargin):
(WebCore::Display::Box::setEstimatedMarginTop):
(WebCore::Display::Box::estimatedMarginTop const):

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

19 months ago[l10n] Updated Polish translation of WebKitGTK+ for 2.22
mcatanzaro@igalia.com [Thu, 16 Aug 2018 15:35:30 +0000 (15:35 +0000)]
[l10n] Updated Polish translation of WebKitGTK+ for 2.22
https://bugs.webkit.org/show_bug.cgi?id=188652

Patch by Piotr Drąg <piotrdrag@gmail.com> on 2018-08-16
Rubber-stamped by Michael Catanzaro.

* pl.po:

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

19 months ago[LFC][BFC] Display::Box interface should reflect that padding is optional.
zalan@apple.com [Thu, 16 Aug 2018 14:40:31 +0000 (14:40 +0000)]
[LFC][BFC] Display::Box interface should reflect that padding is optional.
https://bugs.webkit.org/show_bug.cgi?id=188630

Reviewed by Antti Koivisto.

Certain type of boxes can't have paddings (see Layout::Box::isPaddingApplicable).

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeBorderAndPadding const):
(WebCore::Layout::FormattingContext::validateGeometryConstraintsAfterLayout const):
* layout/FormattingContextGeometry.cpp:
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
* layout/blockformatting/BlockFormattingContextGeometry.cpp:
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::width const):
(WebCore::Display::Box::height const):
(WebCore::Display::Box::contentBoxTop const):
(WebCore::Display::Box::contentBoxLeft const):
(WebCore::Display::Box::setPadding):
(WebCore::Display::Box::paddingTop const):
(WebCore::Display::Box::paddingLeft const):
(WebCore::Display::Box::paddingBottom const):
(WebCore::Display::Box::paddingRight const):

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

19 months ago[LFC] Add showLayoutTree() that does not require LayoutContext.
zalan@apple.com [Thu, 16 Aug 2018 14:35:24 +0000 (14:35 +0000)]
[LFC] Add showLayoutTree() that does not require LayoutContext.
https://bugs.webkit.org/show_bug.cgi?id=188631

Reviewed by Antti Koivisto.

* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::formattingContextRoot const):
(WebCore::Layout::Box::initialContainingBlock const):
* layout/layouttree/LayoutBox.h:
* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::outputLayoutTree):
(WebCore::Layout::showLayoutTree):
(WebCore::Layout::TreeBuilder::showLayoutTree): Deleted.
* layout/layouttree/LayoutTreeBuilder.h:

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

19 months ago[LFC] Tree builder should construct block and inline containers based on the display...
zalan@apple.com [Thu, 16 Aug 2018 14:32:46 +0000 (14:32 +0000)]
[LFC] Tree builder should construct block and inline containers based on the display type.
https://bugs.webkit.org/show_bug.cgi?id=188632

Reviewed by Antti Koivisto.

Inline elements can also construct RenderBlock renderers (inline-bloc etc), so use the display type instead when deciding what type of container to construct.

* layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createSubTree):

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

19 months ago[LFC] Bail out of subtree verification when trees are out of sync.
zalan@apple.com [Thu, 16 Aug 2018 14:28:34 +0000 (14:28 +0000)]
[LFC] Bail out of subtree verification when trees are out of sync.
https://bugs.webkit.org/show_bug.cgi?id=188633

Reviewed by Antti Koivisto.

There's no point of trying to match geometry when subtrees are out of sync.
They get out of sync when the render tree has unsupported boxes (see LayoutTreeBuilder).

* layout/Verification.cpp:
(WebCore::Layout::verifyAndOutputSubtree):

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

19 months agoUnreviewed, WPE build fix after r234920.
philn@webkit.org [Thu, 16 Aug 2018 14:23:35 +0000 (14:23 +0000)]
Unreviewed, WPE build fix after r234920.

* UIProcess/API/wpe/PageClientImpl.cpp:
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):
* UIProcess/API/wpe/WPEView.cpp:
(WKWPE::View::setViewState):
* UIProcess/API/wpe/WPEView.h:

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

19 months agoUse OptionSet for ActivityState::Flags
antti@apple.com [Thu, 16 Aug 2018 12:49:01 +0000 (12:49 +0000)]
Use OptionSet for ActivityState::Flags
https://bugs.webkit.org/show_bug.cgi?id=188554

Reviewed by Brent Fulgham.

Source/WebCore:

More typesafe flags.

* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::activityStateDidChange):
* Modules/geolocation/GeolocationController.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::activityStateDidChange):
* html/canvas/WebGLRenderingContextBase.h:
* page/ActivityState.cpp:
(WebCore::operator<<):
(WebCore::activityStateFlagsToString): Deleted.
* page/ActivityState.h:
(WebCore::ActivityState::allFlags):
* page/ActivityStateChangeObserver.h:
* page/FocusController.cpp:
(WebCore::FocusController::FocusController):
(WebCore::FocusController::setFocused):
(WebCore::FocusController::setActivityState):
(WebCore::FocusController::setActive):
* page/FocusController.h:
(WebCore::FocusController::isActive const):
(WebCore::FocusController::isFocused const):
(WebCore::FocusController::contentIsVisible const):
* page/Page.cpp:
(WebCore::pageInitialActivityState):
(WebCore::Page::Page):
(WebCore::Page::setIsInWindow):
(WebCore::Page::updateTimerThrottlingState):
(WebCore::Page::setActivityState):
(WebCore::Page::isVisibleAndActive const):
(WebCore::Page::isWindowActive const):
(WebCore::Page::setIsVisible):
* page/Page.h:
(WebCore::Page::activityState const):
(WebCore::Page::isVisible const):
(WebCore::Page::isInWindow const):
* page/PerformanceMonitor.cpp:
(WebCore::activityStateForCPUSampling):
(WebCore::PerformanceMonitor::activityStateChanged):
* page/PerformanceMonitor.h:
* platform/text/cocoa: Added.

Source/WebKit:

* Shared/WebPageCreationParameters.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::windowDidOrderOffScreen):
(WebKit::WebViewImpl::windowDidOrderOnScreen):
(WebKit::WebViewImpl::viewDidMoveToWindow):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::updateActivityState):
(WebKit::WebPageProxy::activityStateDidChange):
(WebKit::WebPageProxy::dispatchActivityStateChange):
(WebKit::WebPageProxy::setMuted):
(WebKit::WebPageProxy::isPlayingMediaDidChange):
* UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::isInWindow const):
(WebKit::WebPageProxy::isViewVisible const):
(WebKit::WebPageProxy::isViewFocused const):
(WebKit::WebPageProxy::isViewWindowActive const):
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::activityStateDidChange):
* WebProcess/Plugins/PluginView.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::activityStateDidChange):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::activityStateDidChange):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updateThrottleState):
(WebKit::WebPage::updateIsInWindow):
(WebKit::WebPage::visibilityDidChange):
(WebKit::WebPage::setActivityState):
* WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::isVisible const):
(WebKit::WebPage::isVisibleOrOccluded const):
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::activityStateDidChange):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::pageActivityStateDidChange):
* WebProcess/WebProcess.h:

Source/WTF:

* wtf/OptionSet.h:
(WTF::OptionSet::operator^):

Add xor operator, useful for finding changes between sets.

Tools:

* TestWebKitAPI/Tests/WTF/OptionSet.cpp:
(TestWebKitAPI::TEST):

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

19 months ago[YARR] Align allocation size in BumpPointerAllocator with sizeof(void*)
yusukesuzuki@slowstart.org [Thu, 16 Aug 2018 09:41:36 +0000 (09:41 +0000)]
[YARR] Align allocation size in BumpPointerAllocator with sizeof(void*)
https://bugs.webkit.org/show_bug.cgi?id=188571

Reviewed by Saam Barati.

UBSan finds YarrInterpreter performs misaligned accesses. This is because YarrInterpreter
allocates DisjunctionContext and ParenthesesDisjunctionContext from BumpPointerAllocator
without considering alignment of them. This patch adds DisjunctionContext::allocationSize
and ParenthesesDisjunctionContext::allocationSize to calculate allocation sizes for them.
The size is always rounded to `sizeof(void*)` so that these classes are always allocated
with `sizeof(void*)` alignment. We also ensure the alignments of both classes are less
than or equal to `sizeof(void*)` by `static_assert`.

* yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::DisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::ParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::getDisjunctionContext):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::allocParenthesesDisjunctionContext):
(JSC::Yarr::Interpreter::Interpreter):
(JSC::Yarr::Interpreter::DisjunctionContext::DisjunctionContext): Deleted.

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

19 months ago[GTK] MiniBrowser: web view doesn't get the focus when new window is created
carlosgc@webkit.org [Thu, 16 Aug 2018 08:15:54 +0000 (08:15 +0000)]
[GTK] MiniBrowser: web view doesn't get the focus when new window is created
https://bugs.webkit.org/show_bug.cgi?id=188546

Reviewed by Michael Catanzaro.

Tools:

When a new window is created, the first widget of the windo is getting the focus, the toolbar in this case. We
always want the WebView to grab the focus. In case of new empty tab, we want to the URL bar to be focused
instead. This was causing failures in WebDriver tests that create a popup window with an input element that is
filled with send keys command. The input element is marked as focused in the DOM, but the actual focused widget
is the toolbar, so key events are sent to the toolbar instead of the web view.

* MiniBrowser/gtk/BrowserWindow.c:
(webViewCreate):
(newTabCallback):
(openPrivateWindow):
(browser_window_get_or_create_web_view_for_automation):

WebDriverTests:

Remove expectations of the tests that pass now.

* TestExpectations.json:

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

19 months agoUnreviewed. Fix WebDriver tests after r234839.
carlosgc@webkit.org [Thu, 16 Aug 2018 08:14:41 +0000 (08:14 +0000)]
Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall attrs too.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):

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

19 months agobmalloc: Coverity scan issues
tpopela@redhat.com [Thu, 16 Aug 2018 07:41:46 +0000 (07:41 +0000)]
bmalloc: Coverity scan issues
https://bugs.webkit.org/show_bug.cgi?id=186763

Reviewed by Saam Barati.

* bmalloc/DebugHeap.h: Initialize the m_pageSize variable.
* bmalloc/IsoTLS.cpp:
(bmalloc::IsoTLS::ensureEntries): Check the return value of
pthread_key_create return().
* bmalloc/VMAllocate.h:
(bmalloc::vmPageSize): Correctly check the return value of sysconf().

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

19 months agoNSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthe...
commit-queue@webkit.org [Thu, 16 Aug 2018 05:38:39 +0000 (05:38 +0000)]
NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
https://bugs.webkit.org/show_bug.cgi?id=186870
Source/WebCore:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.

Add the ProtectionSpaceAuthenticationSchemeOAuth type.

* platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased const): Return yes because the oauth challenge
expects a token in return.
* platform/network/ProtectionSpaceBase.h:
* platform/network/cocoa/ProtectionSpaceCocoa.mm:
(WebCore::scheme):
(WebCore::ProtectionSpace::nsSpace const):

Source/WebCore/PAL:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.

* pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
internal SDK.

Source/WebKit:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.

Correctly expose the OAuth protection space type in API.

* UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
* UIProcess/API/C/WKProtectionSpaceTypes.h:

Tools:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.

* WebKitTestRunner/TestController.cpp:
(WTR::toString):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Expose type of authentication challenge so we can test OAuth.
(WTR::TestController::didReceiveAuthenticationChallenge):

LayoutTests:

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-15
Reviewed by Alex Christensen.

Ensure the exposed authentication type to clients is OAuth.

* http/tests/loading/oauth-expected.txt: Added.
* http/tests/loading/oauth.html: Added.
* http/tests/loading/resources/oauth-subresource.php: Added.

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

19 months agoWe should cache the compiled sandbox profile in a data vault
commit-queue@webkit.org [Thu, 16 Aug 2018 03:34:01 +0000 (03:34 +0000)]
We should cache the compiled sandbox profile in a data vault
https://bugs.webkit.org/show_bug.cgi?id=184991

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-15
Reviewed by Ryosuke Niwa.

Source/WebCore:

Added functionality to FileHandle so that it can lock a file while open.
Added a function to FileSystem to delete non empty directories.

* platform/FileHandle.cpp:
(WebCore::FileHandle::FileHandle):
(WebCore::FileHandle::open):
(WebCore::FileHandle::close):
* platform/FileHandle.h:
* platform/FileSystem.h:
* platform/cocoa/FileSystemCocoa.mm:
(WebCore::FileSystem::deleteNonEmptyDirectory):

Source/WebKit:

This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds):
(1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox
    in a process specific data vault on macOS platforms. (ChildProcessMac.mm)
(2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists),
    compile a sandbox, and cache it.
(3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements
    file which contains an entitlement with a process specific "storage class" which ensures that each process
    can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info)
(4) The sandbox entitlements file for the Network and WebContent services are loaded dynamically
    through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service.
    The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig.
    The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements
    are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work.

* Configurations/Network-OSX-sandbox.entitlements: Added.
* Configurations/Storage-OSX-sandbox.entitlements: Added.
* Configurations/StorageService.xcconfig:
* Configurations/WebContent-OSX-sandbox.entitlements: Added.
* Configurations/WebKit.xcconfig:
* NetworkProcess/NetworkProcess.h:
* PluginProcess/PluginProcess.h:
* Scripts/process-network-sandbox-entitlements.sh: Added.
* Scripts/process-webcontent-sandbox-entitlements.sh: Added.
* Shared/ChildProcess.h:
* Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
* Shared/SandboxInitializationParameters.h:
(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile const):
(): Deleted.
* Shared/mac/ChildProcessMac.mm:
(WebKit::SandboxProfileDeleter::operator()):
(WebKit::SandboxParametersDeleter::operator()):
(WebKit::SandboxInfo::SandboxInfo):
(WebKit::fileContents):
(WebKit::processStorageClass):
(WebKit::setAndSerializeSandboxParameters):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::sandboxDirectory):
(WebKit::sandboxFilePath):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::writeSandboxDataToCacheFile):
(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):
(WebKit::webKit2Bundle):
(WebKit::getSandboxProfileOrProfilePath):
(WebKit::compileAndApplySandboxSlowCase):
(WebKit::applySandbox):
(WebKit::initializeSandboxParameters):
(WebKit::ChildProcess::initializeSandbox):
* Shared/mac/SandboxInitialiationParametersMac.mm:
(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):
* StorageProcess/StorageProcess.h:
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/WebProcess.h:

Source/WTF:

Added trace points for sandbox initialization and exposed functions needed for sandbox caching

* wtf/SystemTracing.h:
* wtf/spi/darwin/SandboxSPI.h:

Tools:

Added trace points for sandbox initialization

* Tracing/SystemTracePoints.plist:

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

19 months ago[WinCairo] Unreviewed build fix after r234896.
ross.kirsling@sony.com [Thu, 16 Aug 2018 00:04:48 +0000 (00:04 +0000)]
[WinCairo] Unreviewed build fix after r234896.

* NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):

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

19 months agoCan't share an app on AppStore to WeChat due to a release assert
rniwa@webkit.org [Wed, 15 Aug 2018 23:37:31 +0000 (23:37 +0000)]
Can't share an app on AppStore to WeChat due to a release assert
https://bugs.webkit.org/show_bug.cgi?id=188621
<rdar://problem/43343976>

Reviewed by Geoffrey Garen.

Disable the thread safety check when the app is not linked on or after iOS 12 since this release assert
is getting hit by third party applications on iOS in UI process.

Source/WebCore:

* platform/Timer.cpp:
(WebCore::shouldSuppressThreadSafetyCheck): Added a SDK check.

Source/WebKit:

* UIProcess/Cocoa/VersionChecks.h:
(WebKit::SDKVersion::FirstWithMainThreadReleaseAssertionInWebPageProxy): Added. It's iOS 12 or macOS 10.14 Mojave.
* UIProcess/WebProcessProxy.cpp:
(WebKit::isMainThreadOrCheckDisabled): Added. Returns true whether when we're in the main thread or if the app
is not linked on or after iOS 12 or macOS 10.14 Mojave.
(WebKit::globalPageMap):
(WebKit::m_isInPrewarmedPool):
(WebKit::WebProcessProxy::~WebProcessProxy):
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
(WebKit::WebProcessProxy::topPrivatelyControlledDomainsWithWebsiteData):
(WebKit::WebProcessProxy::didFinishLaunching):

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

19 months agoRemove WKNavigationDelegatePrivate's canAuthenticateAgainstProtectionSpace
achristensen@apple.com [Wed, 15 Aug 2018 22:48:05 +0000 (22:48 +0000)]
Remove WKNavigationDelegatePrivate's canAuthenticateAgainstProtectionSpace
https://bugs.webkit.org/show_bug.cgi?id=188622

Reviewed by Timothy Hatcher.

It's been deprecated for a release now, nobody uses it, and it's a concept from NSURLConnection, which we don't use any more in WebKit2.

* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace):

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

19 months ago[Curl] Implement default cookie path handling correctly as outlined in RFC6265.
chris.reid@sony.com [Wed, 15 Aug 2018 22:03:29 +0000 (22:03 +0000)]
[Curl] Implement default cookie path handling correctly as outlined in RFC6265.
https://bugs.webkit.org/show_bug.cgi?id=188609

Reviewed by Alex Christensen.

Curl implementation of default cookie path was wrong so that some cookies cannot be accessible.
It should be generated as outlined in: https://tools.ietf.org/html/rfc6265#section-5.1.4

Source/WebCore:

Tests: http/tests/cookies/http-get-cookie-set-in-js.html

* platform/network/curl/CookieJarDB.cpp:
(WebCore::CookieJarDB::setCookie):
* platform/network/curl/CookieUtil.cpp:
(WebCore::CookieUtil::defaultPathForURL):
* platform/network/curl/CookieUtil.h:

LayoutTests:

* platform/wincairo/TestExpectations:
  - http/tests/cookies/http-get-cookie-set-in-js.html [ Pass ]

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

19 months agoCrashes in Quip under _dictionaryPopupInfoForRange, in setObject:forKey:
timothy_horton@apple.com [Wed, 15 Aug 2018 20:59:57 +0000 (20:59 +0000)]
Crashes in Quip under _dictionaryPopupInfoForRange, in setObject:forKey:
https://bugs.webkit.org/show_bug.cgi?id=188569
<rdar://problem/34201095>

Reviewed by Megan Gardner.

Source/WebKit:

* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::dictionaryPopupInfoForRange):
Speculative fix; the crashes indicate font is null, but we just checked it,
so it must be getting made null by convertFont:toSize:. Check again!

Source/WebKitLegacy/mac:

* WebView/WebImmediateActionController.mm:
(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
Speculative fix; the crashes indicate font is null, but we just checked it,
so it must be getting made null by convertFont:toSize:. Check again!

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

19 months agoDisable IntersectionObserver tests on Windows for now
ajuma@chromium.org [Wed, 15 Aug 2018 20:45:41 +0000 (20:45 +0000)]
Disable IntersectionObserver tests on Windows for now
https://bugs.webkit.org/show_bug.cgi?id=188613

Unreviewed test gardening.

The experimental feature for IntersectionObserver is off by default, and
Windows WebKit API would have to change to enable it, so just skip the
tests for now.

* platform/win/TestExpectations:
* platform/wincairo/TestExpectations:

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

19 months ago[Datalist] Add button to TextFieldInputs with a datalist
akeerthi@apple.com [Wed, 15 Aug 2018 20:42:26 +0000 (20:42 +0000)]
[Datalist] Add button to TextFieldInputs with a datalist
https://bugs.webkit.org/show_bug.cgi?id=187741

Reviewed by Tim Horton.

Source/WebCore:

TextFieldInputs that have an associated datalist element should be drawn as
combo boxes. However, we cannot use NSComboBox for this control, as NSComboBox
is not height-resizable. Furthermore, the input should also be able to contain
additional elements, such as the stepper for type=number and the cancel button
for type=search. For these reasons, we draw a button at the end of the input,
mimicking appearance of a combo box.

The list-button -webkit-appearance value was added to display the new button.

Tests: fast/forms/datalist/datalist-searchinput-appearance.html
       fast/forms/datalist/datalist-textinput-appearance.html

* Resources/ListButtonArrow.png: Added.
* Resources/ListButtonArrow@2x.png: Added.
* WebCore.xcodeproj/project.pbxproj:
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/html.css:
(input::-webkit-list-button):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::dataListButtonElement const):
* html/HTMLInputElement.h:
* html/InputType.h:
(WebCore::InputType::dataListButtonElement const):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::needsContainer const):
(WebCore::TextFieldInputType::createShadowSubtree):
(WebCore::TextFieldInputType::destroyShadowSubtree):
(WebCore::TextFieldInputType::listAttributeTargetChanged):
(WebCore::TextFieldInputType::dataListButtonElement const):
(WebCore::TextFieldInputType::dataListButtonElementWasClicked):
(WebCore::TextFieldInputType::didCloseSuggestions):
* html/TextFieldInputType.h:
* html/shadow/DataListButtonElement.cpp: Added.
(WebCore::DataListButtonElement::create):
(WebCore::DataListButtonElement::DataListButtonElement):
(WebCore::DataListButtonElement::~DataListButtonElement):
(WebCore::DataListButtonElement::defaultEventHandler):
* html/shadow/DataListButtonElement.h: Added.
* platform/ThemeTypes.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::adjustListButtonStyle const):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(-[WebListButtonCell drawWithFrame:inView:]):
(WebCore::RenderThemeMac::paintListButtonForInput):
(WebCore::RenderThemeMac::adjustListButtonStyle const):
(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintSearchField):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::listButton const):

Source/WebCore/PAL:

* pal/spi/cocoa/NSColorSPI.h: Added NSColorGetUserAccentColor().

Source/WebInspectorUI:

Add keyword completion for 'list-button'.

* UserInterface/External/CodeMirror/css.js:
* UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

Added tests to verify appearance of TextFieldInputs with a datalist.

* fast/forms/datalist/datalist-searchinput-appearance.html: Added.
* fast/forms/datalist/datalist-textinput-appearance.html: Added.
* platform/ios/TestExpectations:
* platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.png: Added.
* platform/mac/fast/forms/datalist/datalist-searchinput-appearance-expected.txt: Added.
* platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.png: Added.
* platform/mac/fast/forms/datalist/datalist-textinput-appearance-expected.txt: Added.

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

19 months agoUnreviewed, rolling out r234870.
ryanhaddad@apple.com [Wed, 15 Aug 2018 20:22:12 +0000 (20:22 +0000)]
Unreviewed, rolling out r234870.

The test introduced with this change is a flaky failure.

Reverted changeset:

"NSURLAuthenticationMethodOAuth challenges are surfaced to
clients in -didReceiveAuthenticationChallenge as
NSURLAuthenticationMethodDefault"
https://bugs.webkit.org/show_bug.cgi?id=186870
https://trac.webkit.org/changeset/234870

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

19 months agoNetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSc...
achristensen@apple.com [Wed, 15 Aug 2018 20:15:57 +0000 (20:15 +0000)]
NetworkCORSPreflightChecker should proceed in case of ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested even though the WebKit app is not implementing the didReceiveAuthenticationChallenge/didReceiveAuthenticationChallengeInFrame callback
https://bugs.webkit.org/show_bug.cgi?id=188592
<rdar://problem/43210331>

Reviewed by Youenn Fablet.

Do a canAuthenticateAgainstProtectionSpace check in NetworkCORSPreflightChecker like we do in NetworkLoad.
Use CompletionHandlers to make the now 3 different canAuthenticateAgainstProtectionSpace checks look the same from the NetworkProcess.

* NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
* NetworkProcess/NetworkCORSPreflightChecker.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::NetworkResourceLoader::continueCanAuthenticateAgainstProtectionSpace): Deleted.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveChallenge):
* NetworkProcess/PingLoad.h:
* NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::PreconnectTask::continueCanAuthenticateAgainstProtectionSpace): Deleted.
* NetworkProcess/PreconnectTask.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveChallenge):

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

19 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Wed, 15 Aug 2018 19:44:27 +0000 (19:44 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188610

Unreviewed test gardening.

Unskip http/tests/cookies.

* platform/wincairo/TestExpectations:

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

19 months agoRemove evernote hacks
keith_miller@apple.com [Wed, 15 Aug 2018 19:33:54 +0000 (19:33 +0000)]
Remove evernote hacks
https://bugs.webkit.org/show_bug.cgi?id=188591

Reviewed by Joseph Pecoraro.

The hack was added in 2012 and the evernote app seems to work now.
It's probably not needed anymore.

* API/JSValueRef.cpp:
(JSValueUnprotect):
(evernoteHackNeeded): Deleted.

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

19 months agoconnectedCallback is invoked by the HTML parser after child nodes had been inserted
rniwa@webkit.org [Wed, 15 Aug 2018 18:59:19 +0000 (18:59 +0000)]
connectedCallback is invoked by the HTML parser after child nodes had been inserted
https://bugs.webkit.org/show_bug.cgi?id=183931
<rdar://problem/38843548>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases pass.

* web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children-expected.txt:

Source/WebCore:

Invoke the custom element reactions after constructing and inserting a custom element as specifed in step 3.3 of:
https://html.spec.whatwg.org/multipage/parsing.html#insert-a-foreign-element

The bug here was that HTMLConstructionSite::insertCustomElement uses attachLater so that even though the task
to insert the custom element was created, it didn't get executed until after CustomElementReactionStack in
HTMLDocumentParser::runScriptsForPausedTreeBuilder had been popped off of the stack.

Test: imported/w3c/web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html

* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertCustomElement): Fixed the bug by manually executing the scheduled tasks.
This will enqueue any custom element reactions while CustomElementReactionStack in runScriptsForPausedTreeBuilder
is still in the stack.

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

19 months ago[Curl] Don't send Content-Type header for POST request when body is null.
Basuke.Suzuki@sony.com [Wed, 15 Aug 2018 18:50:54 +0000 (18:50 +0000)]
[Curl] Don't send Content-Type header for POST request when body is null.
https://bugs.webkit.org/show_bug.cgi?id=188588

Reviewed by Youenn Fablet.

Source/WebCore:

The Content-Type header was sent by libcurl automatically. Suppress that behavior
when body is null.

Tests: http/tests/xmlhttprequest/methods.html

* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupPOST):

LayoutTests:

* platform/wincairo/TestExpectations:

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

19 months agoUnreviewed, change my status to be a WebKit reviewer
megan_gardner@apple.com [Wed, 15 Aug 2018 17:59:16 +0000 (17:59 +0000)]
Unreviewed, change my status to be a WebKit reviewer
and added expertise.

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

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

19 months agoRemove failing assertion introduced in r234873
achristensen@apple.com [Wed, 15 Aug 2018 17:48:07 +0000 (17:48 +0000)]
Remove failing assertion introduced in r234873
https://bugs.webkit.org/show_bug.cgi?id=188581

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
The assertion is correct but failing because VectorTraits<String> is incorrect.
I'll re-add it and fix VectorTraits<String> in a separate patch.

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

19 months agoWeb Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
drousso@apple.com [Wed, 15 Aug 2018 17:29:14 +0000 (17:29 +0000)]
Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
https://bugs.webkit.org/show_bug.cgi?id=188594

Reviewed by Brian Burg.

* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
(WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
Add checks to ensure that DOM elements for each probe section exist before trying to
add/remove them from the sidebar. This can happen if probes are inspected before the sidebar
is shown for the first time.

* UserInterface/Views/ProbeSetDataGrid.js:
(WI.ProbeSetDataGrid):
(WI.ProbeSetDataGrid.columnIdentifierForProbe): Added.
(WI.ProbeSetDataGrid.prototype._setupProbe):
(WI.ProbeSetDataGrid.prototype._teardownProbe):
(WI.ProbeSetDataGrid.prototype._probeExpressionChanged):
* UserInterface/Views/ProbeSetDataGridNode.js:
(WI.ProbeSetDataGridNode.prototype.set frame):
Provide better column identifiers for each probe's `WI.DataGrid`. It's possible for the
numeric probe ID value to be stringified when passing it into the constructor of
`WI.DataGrid`, which will not match the original numeric value on later retrieval.

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

19 months agoWebKitTestRunner should support watch devices
jbedard@apple.com [Wed, 15 Aug 2018 15:41:30 +0000 (15:41 +0000)]
WebKitTestRunner should support watch devices
https://bugs.webkit.org/show_bug.cgi?id=188570

Reviewed by Alex Christensen.

* WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

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

19 months ago[WPE][GTK] WaylandCompositor fails to properly remove surface from its page map
mcatanzaro@igalia.com [Wed, 15 Aug 2018 15:17:55 +0000 (15:17 +0000)]
[WPE][GTK] WaylandCompositor fails to properly remove surface from its page map
https://bugs.webkit.org/show_bug.cgi?id=188520

Reviewed by Alex Christensen.

Source/WebKit:

willDestroySurface overwrites the surface pointer in the map's iterator in an attempt to
change the value of the surface pointer in the map, but it doesn't work because changing
the iterator does not change the map itself. There's no need to fix this function: it's
better to use WeakPtr instead.

* UIProcess/gtk/WaylandCompositor.cpp:
(WebKit::WaylandCompositor::getTexture):
(WebKit::WaylandCompositor::bindSurfaceToWebPage):
(WebKit::WaylandCompositor::unregisterWebPage):
(WebKit::WaylandCompositor::willDestroySurface): Deleted.
* UIProcess/gtk/WaylandCompositor.h:

Source/WTF:

Add a comment pointing to CanMakeWeakPtr, since it's useful and I very nearly missed it.

* wtf/WeakPtr.h:

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

19 months agoLayout Test editing/input/press-tab-during-ime-composition.html is failing
pvollan@apple.com [Wed, 15 Aug 2018 14:32:06 +0000 (14:32 +0000)]
Layout Test editing/input/press-tab-during-ime-composition.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188600

Unreviewed test gardening.

* platform/win/TestExpectations:

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

19 months ago[Attachment SPI] Remove attachment display mode options
wenson_hsieh@apple.com [Wed, 15 Aug 2018 14:26:05 +0000 (14:26 +0000)]
[Attachment SPI] Remove attachment display mode options
https://bugs.webkit.org/show_bug.cgi?id=188596

Reviewed by Dan Bernstein.

Source/WebCore:

Remove the ability to specify an "in-place" or "icon" representation for attachment elements, as well as logic
needed to allow an attachment element to render image or video elements in a shadow root. The requirements that
initially drove this effort are obviated by r227068, which allows Mail to intercept and provide a custom scheme
for images inserted into the document via rich editing operations.

Removed some existing API tests in _WKAttachmentTests that exercised this functionality.

* editing/Editor.cpp:
(WebCore::Editor::insertAttachmentFromFile):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
* html/AttachmentTypes.h:
(WebCore::AttachmentDisplayOptions::encode const):
(WebCore::AttachmentDisplayOptions::decode):

Remove logic for encoding the attachment display mode. While this leaves AttachmentDisplayOptions completely
empty, I haven't removed AttachmentDisplayOptions as well in this patch, since it's not clear that we won't be
needing any mechanism for influencing the display of attachment elements inserted via native SPI.

(): Deleted.
* html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::createElementRenderer):
(WebCore::HTMLAttachmentElement::setFile):
(WebCore::HTMLAttachmentElement::parseAttribute):
(WebCore::HTMLAttachmentElement::invalidateShadowRootChildrenIfNecessary): Deleted.
(WebCore::HTMLAttachmentElement::attachmentRenderer const): Deleted.
(WebCore::HTMLAttachmentElement::updateDisplayMode): Deleted.
(WebCore::HTMLAttachmentElement::ensureInnerImage): Deleted.
(WebCore::HTMLAttachmentElement::ensureInnerVideo): Deleted.
(WebCore::HTMLAttachmentElement::innerImage const): Deleted.
(WebCore::HTMLAttachmentElement::innerVideo const): Deleted.
(WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary): Deleted.

Remove logic for building the shadow root to house inline media elements.

* html/HTMLAttachmentElement.h:

The renderer of the attachment element is once again always a `RenderAttachment`, so we can remove
`attachmentRenderer()` altogether and revert to overriding `renderer()` to return a `RenderAttachment*`.

* page/DragController.cpp:
(WebCore::DragController::startDrag):
* rendering/RenderAttachment.h:
(WebCore::HTMLAttachmentElement::renderer const):

Source/WebKit:

Remove attachment display mode from WebKit. Note that _WKAttachmentDisplayOptions needs to remain in the private
header for source compatibility with Mail.

* UIProcess/API/Cocoa/_WKAttachment.mm:
(-[_WKAttachmentDisplayOptions coreDisplayOptions]): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::setAttachmentDisplayOptions):

Tools:

Remove API tests and API test helpers for verifying the behavior of in-place media attachment elements.

* TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:]):
(TestWebKitAPI::TEST):
(testVideoData): Deleted.
(displayOptionsWithMode): Deleted.
(-[TestWKWebView synchronouslyInsertAttachmentWithFilename:contentType:data:options:]): Deleted.

LayoutTests:

Remove a layout test which verified that attachment elements with `-webkit-appearance: none` would render
child elements. This was only used to implement in-place attachment display modes.

* fast/attachment/attachment-without-appearance-expected.html: Removed.
* fast/attachment/attachment-without-appearance.html: Removed.
* platform/gtk/TestExpectations:

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

19 months ago[IntersectionObserver] Do not hold a strong reference to the root element
ajuma@chromium.org [Wed, 15 Aug 2018 14:13:06 +0000 (14:13 +0000)]
[IntersectionObserver] Do not hold a strong reference to the root element
https://bugs.webkit.org/show_bug.cgi?id=188575

Reviewed by Simon Fraser.

Source/WebCore:

Make IntersectionObserver have only a raw pointer to its root element rather than
a reference, so that an otherwise-unreachable root isn't kept alive. Add logic to
to clear this pointer when the root element gets deleted.

Test: intersection-observer/root-element-deleted.html

* dom/Element.cpp:
(WebCore::Element::~Element):
(WebCore::Element::disconnectFromIntersectionObservers):
(WebCore::Element::ensureIntersectionObserverData):
(WebCore::Element::intersectionObserverData):
* dom/Element.h:
* dom/ElementRareData.cpp:
* dom/ElementRareData.h:
(WebCore::ElementRareData::intersectionObserverData):
(WebCore::ElementRareData::setIntersectionObserverData):
* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::~IntersectionObserver):
(WebCore::IntersectionObserver::rootDestroyed):
* page/IntersectionObserver.h:
(WebCore::IntersectionObserver::root const):

LayoutTests:

* intersection-observer/root-element-deleted-expected.txt: Added.
* intersection-observer/root-element-deleted.html: Added.

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

19 months ago[Nicosia] Add Nicosia::BackingStoreTextureMapperImpl
zandobersek@gmail.com [Wed, 15 Aug 2018 06:15:23 +0000 (06:15 +0000)]
[Nicosia] Add Nicosia::BackingStoreTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188548

Reviewed by Carlos Garcia Campos.

Add the Nicosia::BackingStoreTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the BackingStore
class.

Purpose of this class is to manage content of painted layers. In the
LayerState object that will be exposed to the CoordinatedGraphicsLayer
owner we keep the current and previous TiledBackingStore objects that
will be used for painting. A TileUpdate object is used to store all tile
creation, removal and update changes that happen during the painting
that's performed during the CoordinatedGraphicsLayer flush.

At the point of synchronization under the Nicosia::Scene object, these
updates will be moved over to the pending TileUpdate object that will
then be accessed during the composition step. For that purpose we keep
in the CompositionState member object a reference to the
CoordinatedBackingStore object that will get updated with the tile
creation, removal and update changes (if there are any). The composition
step will use the takeUpdate() method to retrieve all these changes and
apply them outside of the point of synchronization (avoiding this sync
step to take too long).

This will be integrated into the CoordinatedGraphicsLayer class at a
later point, when the switch to the new infrastructure can be made in
one go.

* platform/TextureMapper.cmake:
* platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.cpp: Added.
(Nicosia::BackingStoreTextureMapperImpl::createFactory):
(Nicosia::BackingStoreTextureMapperImpl::tiledBackingStoreHasPendingTileCreation):
(Nicosia::BackingStoreTextureMapperImpl::createTile):
(Nicosia::BackingStoreTextureMapperImpl::updateTile):
(Nicosia::BackingStoreTextureMapperImpl::removeTile):
(Nicosia::BackingStoreTextureMapperImpl::flushUpdate):
(Nicosia::BackingStoreTextureMapperImpl::takeUpdate):
* platform/graphics/nicosia/texmap/NicosiaBackingStoreTextureMapperImpl.h: Added.

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

19 months agoWeb Inspector: Table should not center rows when scrolling them into view
mattbaker@apple.com [Wed, 15 Aug 2018 06:10:34 +0000 (06:10 +0000)]
Web Inspector: Table should not center rows when scrolling them into view
https://bugs.webkit.org/show_bug.cgi?id=188593
<rdar://problem/43311660>

Reviewed by Devin Rousso.

* UserInterface/Views/Table.js:
(WI.Table.prototype._handleKeyDown):

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

19 months agoUnreviewed, change my emails.
drousso@apple.com [Wed, 15 Aug 2018 04:47:16 +0000 (04:47 +0000)]
Unreviewed, change my emails.

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

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

19 months agoUnreviewed, rolling out r234874 and r234876.
Hironori.Fujii@sony.com [Wed, 15 Aug 2018 04:46:12 +0000 (04:46 +0000)]
Unreviewed, rolling out r234874 and r234876.

WinCairo port can't compile

Reverted changesets:

"[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234874

"Unreviewed, attempt to fix CLoop build"
https://bugs.webkit.org/show_bug.cgi?id=188589
https://trac.webkit.org/changeset/234876

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

19 months agoHashMap<Ref<P>, V> asserts when V is not zero for its empty value
sbarati@apple.com [Wed, 15 Aug 2018 04:08:08 +0000 (04:08 +0000)]
HashMap<Ref<P>, V> asserts when V is not zero for its empty value
https://bugs.webkit.org/show_bug.cgi?id=188582

Reviewed by Sam Weinig.

Source/JavaScriptCore:

* runtime/SparseArrayValueMap.h:

Source/WTF:

The issue happened when we'd fill the hash table buffer with empty values. We
would iterate the buffer and invoke placement new with the incoming value being the
empty value. For Ref, this means that, we'd call its move constructor, which calls
leakRef(), which asserts that the Ref's pointer is not null. We'd like to keep
this assert since it catches bugs where you leakRef() more than once or WTFMove
an already moved Ref.

This patch fixes this issue by adding a new trait for constructing an empty
value. We use that in HashTable instead of directly calling placement new.

* wtf/HashTable.h:
(WTF::HashTableBucketInitializer<false>::initialize):
* wtf/HashTraits.h:
(WTF::GenericHashTraits::constructEmptyValue):
(WTF::HashTraits<Ref<P>>::constructEmptyValue):
(WTF::KeyValuePairHashTraits::constructEmptyValue):

Tools:

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

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

19 months ago[LFC][Floating] Add support for negative clearance.
zalan@apple.com [Wed, 15 Aug 2018 02:59:51 +0000 (02:59 +0000)]
[LFC][Floating] Add support for negative clearance.
https://bugs.webkit.org/show_bug.cgi?id=188555

Reviewed by Simon Fraser.

Source/WebCore:

1. Compute clearance to avoid float(s) (border box needs to avoid floats)
2. Reset vertical margins to non-collapsed values.
4. Adjust clearance with the new margins.
5. Take the adjusted clearance and move the box vertically if needed.

Test: fast/block/block-only/margin-collapse-with-clearance.html

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatItem::FloatItem):
* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::mapBoxToAncestor):
(WebCore::Layout::FormattingContext::mapTopLeftToAncestor):
(WebCore::Layout::FormattingContext::mapCoordinateToAncestor):
(WebCore::Layout::FormattingContext::mapToAncestor): Deleted.
* layout/FormattingContext.h:
* layout/LayoutUnits.h:
(WebCore::Layout::Position::Position):
(WebCore::Layout::Position::moveBy):
* layout/displaytree/DisplayBox.h:

Tools:

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:

* fast/block/block-only/margin-collapse-with-clearance-expected.txt: Added.
* fast/block/block-only/margin-collapse-with-clearance.html: Added.

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

19 months agoUnreviewed, rolling out r234859.
Hironori.Fujii@sony.com [Wed, 15 Aug 2018 02:42:59 +0000 (02:42 +0000)]
Unreviewed, rolling out r234859.

Windows ports can't compile

Reverted changeset:

"Use a Variant instead of a union in CSSSelector"
https://bugs.webkit.org/show_bug.cgi?id=188559
https://trac.webkit.org/changeset/234859

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

19 months agoUnreviewed, attempt to fix CLoop build
yusukesuzuki@slowstart.org [Wed, 15 Aug 2018 01:18:17 +0000 (01:18 +0000)]
Unreviewed, attempt to fix CLoop build
https://bugs.webkit.org/show_bug.cgi?id=188589

* assembler/MacroAssembler.h:

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

19 months agoCrash in WebKit::filterPreloadHSTSEntry via NetworkProcess::getHostNamesWithHSTSCache
sihui_liu@apple.com [Wed, 15 Aug 2018 00:55:19 +0000 (00:55 +0000)]
Crash in WebKit::filterPreloadHSTSEntry via NetworkProcess::getHostNamesWithHSTSCache
https://bugs.webkit.org/show_bug.cgi?id=188576
<rdar://problem/43148977>

Reviewed by Alex Christensen.

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):

Tools:

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm: Added.
(TEST):

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

19 months ago[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
yusukesuzuki@slowstart.org [Wed, 15 Aug 2018 00:50:50 +0000 (00:50 +0000)]
[JSC] Add GPRReg::InvalidGPRReg and FPRReg::InvalidFPRReg
https://bugs.webkit.org/show_bug.cgi?id=188589

Reviewed by Mark Lam.

Source/JavaScriptCore:

Since GPRReg(RegisterID) and FPRReg(FPRegisterID) do not include -1 in their enum values,
UBSan dumps bunch of warnings "runtime error: load of value 4294967295, which is not a valid value for type 'RegisterID'".

1. We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
2. We make GPRReg and FPRReg int8_t enums.
3. We replace `#define InvalidGPRReg ((JSC::GPRReg)-1)` to `static constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };`.

* assembler/ARM64Assembler.h:
* assembler/ARMAssembler.h:
* assembler/ARMv7Assembler.h:
* assembler/MIPSAssembler.h:
* assembler/X86Assembler.h:
* jit/FPRInfo.h:
* jit/GPRInfo.h:
(JSC::JSValueRegs::JSValueRegs):
(JSC::JSValueRegs::tagGPR const):
(JSC::JSValueRegs::payloadGPR const):
(JSC::JSValueSource::JSValueSource):
(JSC::JSValueSource::unboxedCell):
(JSC::JSValueSource::operator bool const):
(JSC::JSValueSource::base const):
(JSC::JSValueSource::tagGPR const):
(JSC::JSValueSource::payloadGPR const):
(JSC::JSValueSource::hasKnownTag const):

Source/WebCore:

No behavior change.

* cssjit/FunctionCall.h:
(WebCore::FunctionCall::FunctionCall):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):

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

19 months agoisValidCSSSelector is unsafe to be called from a non-main thread
achristensen@apple.com [Wed, 15 Aug 2018 00:30:50 +0000 (00:30 +0000)]
isValidCSSSelector is unsafe to be called from a non-main thread
https://bugs.webkit.org/show_bug.cgi?id=188581
<rdar://problem/40517358>

Reviewed by Sam Weinig.

Source/WebCore:

Parsing and determining whether the css selectors are valid is fast enough to do before
hopping to the background thread for the slow NFA/DFA operations and writing to disk.
Doing it on the main thread avoids the thread safety issues in the CSSParser's use of strings.

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionCompiler.h:
* contentextensions/ContentExtensionParser.cpp:
(WebCore::ContentExtensions::isValidCSSSelector):
(WebCore::ContentExtensions::loadEncodedRules):
(WebCore::ContentExtensions::parseRuleList):
* contentextensions/ContentExtensionParser.h:
* contentextensions/ContentExtensionRule.cpp:
(WebCore::ContentExtensions::Trigger::isolatedCopy const):
(WebCore::ContentExtensions::Action::isolatedCopy const):
* contentextensions/ContentExtensionRule.h:
(WebCore::ContentExtensions::Trigger::isEmpty const):
(WebCore::ContentExtensions::Trigger::operator== const):
(WebCore::ContentExtensions::Action::Action):
(WebCore::ContentExtensions::ContentExtensionRule::isolatedCopy const):
(WebCore::ContentExtensions::ContentExtensionRule::operator== const):
(WebCore::ContentExtensions::vectorIsolatedCopy):

Source/WebKit:

* UIProcess/API/APIContentRuleListStore.cpp:
(API::compiledToFile):
(API::ContentRuleListStore::lookupContentRuleList):
(API::ContentRuleListStore::getAvailableContentRuleListIdentifiers):
(API::ContentRuleListStore::compileContentRuleList):
(API::ContentRuleListStore::removeContentRuleList):
(API::ContentRuleListStore::getContentRuleListSource):
* UIProcess/API/APIContentRuleListStore.h:
* UIProcess/API/Cocoa/WKContentRuleListStore.mm:

Source/WTF:

* wtf/Vector.h:
(WTF::minCapacity>::isolatedCopy):

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::InMemoryCompiledContentExtension::create):
(TestWebKitAPI::checkCompilerError):

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

19 months agoNSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthe...
commit-queue@webkit.org [Wed, 15 Aug 2018 00:10:12 +0000 (00:10 +0000)]
NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
https://bugs.webkit.org/show_bug.cgi?id=186870
Source/WebCore:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Add the ProtectionSpaceAuthenticationSchemeOAuth type.

* platform/network/ProtectionSpaceBase.cpp:
(WebCore::ProtectionSpaceBase::isPasswordBased const): Return yes because the oauth challenge
expects a token in return.
* platform/network/ProtectionSpaceBase.h:
* platform/network/cocoa/ProtectionSpaceCocoa.mm:
(WebCore::scheme):
(WebCore::ProtectionSpace::nsSpace const):

Source/WebCore/PAL:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

* pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
internal SDK.

Source/WebKit:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Correctly expose the OAuth protection space type in API.

* UIProcess/API/C/WKAPICast.h:
(WebKit::toAPI):
* UIProcess/API/C/WKProtectionSpaceTypes.h:

Tools:

<rdar://problem/41314410>

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

* WebKitTestRunner/TestController.cpp:
(WTR::toString):
(WTR::TestController::canAuthenticateAgainstProtectionSpace): Expose type of authentication challenge so we can test OAuth.
(WTR::TestController::didReceiveAuthenticationChallenge):

LayoutTests:

Patch by Ansh Shukla <ansh_shukla@apple.com> on 2018-08-14
Reviewed by Alex Christensen.

Ensure the exposed authentication type to clients is OAuth.

* http/tests/loading/oauth-expected.txt: Added.
* http/tests/loading/oauth.html: Added.
* http/tests/loading/resources/oauth-subresource.php: Added.

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

19 months agoUnreviewed test gardening for mac-wk1.
ryanhaddad@apple.com [Tue, 14 Aug 2018 23:56:33 +0000 (23:56 +0000)]
Unreviewed test gardening for mac-wk1.

* platform/mac-wk1/TestExpectations:

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

19 months agoMark legacy-animation-engine/animations/combo-transform-translate+scale.html as flaky.
ryanhaddad@apple.com [Tue, 14 Aug 2018 23:56:30 +0000 (23:56 +0000)]
Mark legacy-animation-engine/animations/combo-transform-translate+scale.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=185308

Unreviewed test gardening.

* TestExpectations:

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

19 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Tue, 14 Aug 2018 23:34:49 +0000 (23:34 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188587

Unreviewed test gardening.

Added platform dependent expected result.

* platform/wincairo/http/tests/xmlhttprequest/methods-expected.txt: Added.

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

19 months agoAdd MotionMark 1.1 to browserbench
rniwa@webkit.org [Tue, 14 Aug 2018 23:26:06 +0000 (23:26 +0000)]
Add MotionMark 1.1 to browserbench
https://bugs.webkit.org/show_bug.cgi?id=188585
<rdar://problem/43308076>

Patch by Jon Lee <jonlee@apple.com> on 2018-08-14
Rubber-stamped by Ryosuke Niwa.

* MotionMark1.1/: Added.

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

19 months agoRemove api misuse check so that custom webcontent service identifier can be set at...
commit-queue@webkit.org [Tue, 14 Aug 2018 23:22:09 +0000 (23:22 +0000)]
Remove api misuse check so that custom webcontent service identifier can be set at runtime
https://bugs.webkit.org/show_bug.cgi?id=188579

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-14
Reviewed by Ryosuke Niwa.

Changed API misuse check so that a custom bundle identifier can be set at runtime with a debug flag

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setCustomWebContentServiceBundleIdentifier):
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):

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

19 months ago[Curl] Implement platform default timeout interval.
Basuke.Suzuki@sony.com [Tue, 14 Aug 2018 23:17:13 +0000 (23:17 +0000)]
[Curl] Implement platform default timeout interval.
https://bugs.webkit.org/show_bug.cgi?id=188565

Reviewed by Alex Christensen.

Source/WebCore:

Curl port didn't implement platform default timeout interval. It treated
zero value for timeout interval as no timeout.

Add platform dependent timeout interval into CurlContext and use that if
timeout and default timeout aren't supplied.

Tests: http/tests/xmlhttprequest/on-network-timeout-error-during-preflight.html

* platform/network/curl/CurlContext.cpp:
(WebCore::CurlHandle::setTimeout):
* platform/network/curl/CurlContext.h:
(WebCore::CurlContext::defaultTimeoutInterval const):
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupTransfer):
(WebCore::CurlRequest::timeoutInterval const):
(WebCore::CurlRequest::didCompleteTransfer):
* platform/network/curl/CurlRequest.h:

LayoutTests:

* platform/wincairo/TestExpectations:
  - xmlhttprequest/on-network-timeout-error-during-preflight.html

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

19 months ago[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash...
ross.kirsling@sony.com [Tue, 14 Aug 2018 22:43:39 +0000 (22:43 +0000)]
[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash not backslash
https://bugs.webkit.org/show_bug.cgi?id=187973

Patch by Fujii Hironori <Hironori.Fujii@sony.com> on 2018-08-14
Reviewed by Alex Christensen.

In LayoutTests, test names have been canonicalized in Unix style
since Bug 63597, for example 'fast/css/001.html'. But Bug 179219,
Bug 179572, Bug 180660, and Bug 181814 have changed to use
os.path.seq instead of slash if Windows Python is used.

Revert parts of those changes. Change relative_test_filename to
return a slash-separated test name as chromium_win.py used to do.

This change fixes all 41 test-webkitpy failures in WinCairo port.

* Scripts/webkitpy/layout_tests/models/test_expectations.py:
(TestExpectationParser._parse_line): Do not convert test names with normpath.
* Scripts/webkitpy/port/base.py:
(Port.normalize_test_name): Use TEST_PATH_SEPARATOR instead of os.path.sep.
(Port.relative_test_filename): Replace self.host.filesystem.sep with self.TEST_PATH_SEPARATOR.
(Port.abspath_for_test): Replace self.TEST_PATH_SEPARATOR with self.host.filesystem.sep.
* Scripts/webkitpy/port/driver.py:
(Driver): Use '/' instead of os.sep.
* Scripts/webkitpy/port/win.py:
(WinCairoPort): Do not override TEST_PATH_SEPARATOR.

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

19 months agoMark svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html as flaky.
ryanhaddad@apple.com [Tue, 14 Aug 2018 21:15:16 +0000 (21:15 +0000)]
Mark svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=188578

Unreviewed test gardening.

* platform/ios/TestExpectations:

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

19 months ago[ews-build] Add build step to run WK1 layout-test
aakash_jain@apple.com [Tue, 14 Aug 2018 20:13:39 +0000 (20:13 +0000)]
[ews-build] Add build step to run WK1 layout-test
https://bugs.webkit.org/show_bug.cgi?id=188498

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(RunWebKit1Tests): Class to run WebKit1Tests.
* BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.

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

19 months ago[Flatpak] Fix --cmakeargs
commit-queue@webkit.org [Tue, 14 Aug 2018 19:04:56 +0000 (19:04 +0000)]
[Flatpak] Fix --cmakeargs
https://bugs.webkit.org/show_bug.cgi?id=188567

Patch by Patrick Griffis <pgriffis@igalia.com> on 2018-08-14
Reviewed by Michael Catanzaro.

* flatpak/flatpakutils.py:
(WebkitFlatpak.setup_dev_env):

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

19 months agoUse a Variant instead of a union in CSSSelector
achristensen@apple.com [Tue, 14 Aug 2018 18:24:02 +0000 (18:24 +0000)]
Use a Variant instead of a union in CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188559

Reviewed by Antti Koivisto.

Source/WebCore:

No change in behavior. This just makes some of the existing problems more obvious and easy to fix.

I moved m_caseInsensitiveAttributeValueMatching to RareData because it's only used with RareData.
I only have m_isForPage when assertions are enabled because it's only used for an assertion.
The rest is pretty straightforward translating union syntax to Variant syntax.
I use RefPtr for now where I could use Ref because it's never null to make copying easier, but that's temporary.

* css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::createRareData):
(WebCore::CSSSelector::setAttribute):
(WebCore::CSSSelector::setArgument):
(WebCore::CSSSelector::setLangArgumentList):
(WebCore::CSSSelector::setSelectorList):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::matchNth const):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::RareData::RareData):
* css/CSSSelector.h:
(WebCore::CSSSelector::argument const):
(WebCore::CSSSelector::langArgumentList const):
(WebCore::CSSSelector::selectorList const):
(WebCore::CSSSelector::attribute const):
(WebCore::CSSSelector::attributeCanonicalLocalName const):
(WebCore::CSSSelector::setValue):
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::tagQName const):
(WebCore::CSSSelector::tagLowercaseLocalName const):
(WebCore::CSSSelector::value const):
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::attributeValueMatchingIsCaseInsensitive const):
(WebCore::CSSSelector::RareData::create): Deleted.
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
* css/parser/CSSParserSelector.h:

Source/WTF:

* wtf/Variant.h:
Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.

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

19 months agoAdd missing availability macro.
keith_miller@apple.com [Tue, 14 Aug 2018 17:59:32 +0000 (17:59 +0000)]
Add missing availability macro.
https://bugs.webkit.org/show_bug.cgi?id=188563

Reviewed by Mark Lam.

* API/JSValueRef.h:

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

19 months agoUnhandled Promise Rejection logging in workers should not emit ErrorEvent to host...
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 17:56:27 +0000 (17:56 +0000)]
Unhandled Promise Rejection logging in workers should not emit ErrorEvent to host Worker object
https://bugs.webkit.org/show_bug.cgi?id=188551

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

* web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
* web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:

Source/WebCore:

Previously we dispatched ErrorEvent on the Worker object of the host side when the unhandled promise
rejection happens in the worker. But that was wrong. We should not dispatch such an event and we
should just log the error message.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportUnhandledPromiseRejection):

LayoutTests:

* http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt:
* js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt:

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

19 months agoEnhancement request: Make export-w3c-test-changes add the PR to "See Also" links
commit-queue@webkit.org [Tue, 14 Aug 2018 17:54:56 +0000 (17:54 +0000)]
Enhancement request: Make export-w3c-test-changes add the PR to "See Also" links
https://bugs.webkit.org/show_bug.cgi?id=186140

Patch by Darshan Kadu <dkadu@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.

Added an optional parameter see_also to post_comment_to_bug function and used it for adding see_also variable's content in "See Also"
* Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
(Bugzilla.post_comment_to_bug):
Modified mock for see_also parameter
* Scripts/webkitpy/common/net/bugzilla/bugzilla_mock.py:
(MockBugzilla.post_comment_to_bug):
Made following unit tests to have see_also in bug comment
* Scripts/webkitpy/tool/bot/flakytestreporter_unittest.py:
* Scripts/webkitpy/tool/bot/sheriff_unittest.py:
(SheriffTest.test_post_blame_comment_on_bug):
* Scripts/webkitpy/tool/commands/applywatchlistlocal_unittest.py:
* Scripts/webkitpy/tool/commands/queues_unittest.py:
* Scripts/webkitpy/tool/commands/upload_unittest.py:
* Scripts/webkitpy/tool/steps/applywatchlist_unittest.py:
* Scripts/webkitpy/w3c/test_exporter.py:
(WebPlatformTestExporter.make_pull_request):
* Scripts/webkitpy/w3c/test_exporter_unittest.py:
(TestExporterTest.MockBugzilla.post_comment_to_bug):
(TestExporterTest.test_export):

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

19 months ago[JSC] GetByIdStatus::m_wasSeenInJIT is touched in GetByIdStatus::slowVersion
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 17:46:35 +0000 (17:46 +0000)]
[JSC] GetByIdStatus::m_wasSeenInJIT is touched in GetByIdStatus::slowVersion
https://bugs.webkit.org/show_bug.cgi?id=188560

Reviewed by Keith Miller.

While GetByIdStatus() / GetByIdStatus(status) constructors do not set m_wasSeenInJIT,
it is loaded unconditionally in GetByIdStatus::slowVersion. This access to the
uninitialized member field is caught in UBSan. This patch fixes it by adding an initializer
`m_wasSeenInJIT { false }`.

* bytecode/GetByIdStatus.h:

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

19 months agoUnreviewed, follow-up patch for comments
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 17:45:09 +0000 (17:45 +0000)]
Unreviewed, follow-up patch for comments
https://bugs.webkit.org/show_bug.cgi?id=188265

* bindings/js/JSExecState.cpp:
(WebCore::JSExecState::didLeaveScriptContext):
Do nothing if `context` is nullptr. It is OK since we do not need to drain microtasks / rejected
promise events after ScriptExecutionContext is gone.

* dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::contextQueue):
Drop unnecessary assertion since it is subsumed by downcast<>.

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

19 months ago[DFG] DFGPredictionPropagation should set PrimaryPass when processing invariants
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 17:23:50 +0000 (17:23 +0000)]
[DFG] DFGPredictionPropagation should set PrimaryPass when processing invariants
https://bugs.webkit.org/show_bug.cgi?id=188557

Reviewed by Mark Lam.

DFGPredictionPropagationPhase should set PrimaryPass before processing invariants since
processing for ArithRound etc.'s invariants requires `m_pass` load. This issue is found
in UBSan's result.

* dfg/DFGPredictionPropagationPhase.cpp:

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

19 months ago[JSC] Should not rotate constant with 64
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 17:16:31 +0000 (17:16 +0000)]
[JSC] Should not rotate constant with 64
https://bugs.webkit.org/show_bug.cgi?id=188556

Reviewed by Mark Lam.

To defend against JIT splaying, we rotate a constant with a randomly generated seed.
But if a seed becomes 64, the following code performs `value << 64` where value's type
is uint64_t, and it causes undefined behaviors (UBs). This patch limits the seed in the
range of [0, 64) not to generate code causing UBs. This is found by UBSan.

* assembler/MacroAssembler.h:
(JSC::MacroAssembler::generateRotationSeed):
(JSC::MacroAssembler::rotationBlindConstant):

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

19 months agoFollow-up: [IntersectionObserver] Implement rootMargin parsing
ajuma@chromium.org [Tue, 14 Aug 2018 17:12:14 +0000 (17:12 +0000)]
Follow-up: [IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469

Address review feedback from Darin Adler.

* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::rootMargin const):
Use StringBuilder::appendLiteral instead of ::append to append a literal.

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

19 months ago[ews-build] Add support for max_builds parameter for workers
aakash_jain@apple.com [Tue, 14 Aug 2018 16:53:08 +0000 (16:53 +0000)]
[ews-build] Add support for max_builds parameter for workers
https://bugs.webkit.org/show_bug.cgi?id=188531

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/loadConfig.py:
(loadBuilderConfig): Added support for max_builds.

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

19 months agoRemoteLayerTreeTransaction should use OptionSet for change flags
antti@apple.com [Tue, 14 Aug 2018 16:48:45 +0000 (16:48 +0000)]
RemoteLayerTreeTransaction should use OptionSet for change flags
https://bugs.webkit.org/show_bug.cgi?id=188547

Reviewed by Simon Fraser.

* Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::notePropertiesChanged):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::resetChangedProperties):

Also remove unused everChangedProperties.

* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode const):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::recursiveBuildTransaction):
* WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
(WebKit::RemoteLayerTreeDrawingArea::flushLayers):

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

19 months ago[Web Animations] Crash under AnimationTimeline::cancelOrRemoveDeclarativeAnimation()
graouts@webkit.org [Tue, 14 Aug 2018 15:15:07 +0000 (15:15 +0000)]
[Web Animations] Crash under AnimationTimeline::cancelOrRemoveDeclarativeAnimation()
https://bugs.webkit.org/show_bug.cgi?id=188519
<rdar://problem/43237889>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webanimations/css-animation-effect-target-change-and-animation-removal-crash.html

We would crash because we blindly assumed an animation that was found in the previous style must be in the list of running animations
but in fact it could have been removed already due to the element being removed from the DOM or its effect target changing, etc. So when
we iterate over names of animations that were found in the previous style but not in the new style, we must make a null check to ensure
that there is an animation to remove. Adding an ASSERT() in AnimationTimeline::cancelOrRemoveDeclarativeAnimation() will also clarify the
expectation here.

* animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::updateCSSAnimationsForElement):
(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation):

LayoutTests:

Add a test where we clone the effect to be mutable and set a new target. At this stage the animation is no longer listed in the
m_elementToCSSAnimationByName map on AnimationTimeline. Then we remove the animation and force a style recalc for this element,
"anim" will be in the old style but not in the new style and we used to attempt to get an animation matching that name from
m_elementToCSSAnimationByName but it would be null, which would lead to a crash. Now we check that we indeed have such an animation
before proceeding.

* webanimations/css-animation-effect-target-change-and-animation-removal-crash-expected.html: Added.
* webanimations/css-animation-effect-target-change-and-animation-removal-crash.html: Added.

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

19 months agoSource/WebCore:
zalan@apple.com [Tue, 14 Aug 2018 14:22:45 +0000 (14:22 +0000)]
Source/WebCore:
[LFC][Floating] Adjust vertical position with non-collapsed previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

This patch ensures that the inital vertical position for a float is adjusted with the non-collapsed sibling margin.

<div id=A style="margin-bottom: 20px;"></div>
<div id=B style='float: left'></div>
<div id=C style="margin-top: 10px;"></div>

While computing the static position for element "B", we simply call marginBottom() on A.
In the case above, A's margin bottom is collapsed with C's margin top and the value is 0 (C.marginTop() is 20px).
However CSS spec says that in block formatting context, the non-collapsed margin should be used instead to offset the float box.
(The reason why this should not be part of the BlockMarginCollapse::marginBottom() logic is because it can not differentiate the context of
sibling float/sibling inflow. When we margin collapse, we always do it in the context of inflow boxes.)

Test: fast/block/block-only/float-and-siblings-with-margins.html

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

Tools:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

* LayoutReloaded/misc/LFC-passing-tests.txt:

LayoutTests:
[LFC][Floating] Adjust vertical position with non-collapsing previous sibling margin.
https://bugs.webkit.org/show_bug.cgi?id=188543

Reviewed by Antti Koivisto.

* fast/block/block-only/float-and-siblings-with-margins-expected.txt: Added.
* fast/block/block-only/float-and-siblings-with-margins.html: Added.

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

19 months agoWorker should support unhandled promise rejections
yusukesuzuki@slowstart.org [Tue, 14 Aug 2018 13:04:43 +0000 (13:04 +0000)]
Worker should support unhandled promise rejections
https://bugs.webkit.org/show_bug.cgi?id=188265

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

* web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.https.worker-expected.txt:
* web-platform-tests/WebCryptoAPI/derive_bits_keys/ecdh_keys.https.worker-expected.txt:
* web-platform-tests/streams/readable-streams/tee.dedicatedworker-expected.txt:
* web-platform-tests/streams/readable-streams/tee.serviceworker.https-expected.txt:
* web-platform-tests/workers/interfaces.worker-expected.txt:
* web-platform-tests/workers/semantics/interface-objects/001.worker-expected.txt:

Source/WebCore:

This patch adds PromiseRejectionEvent support in workers.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::promiseRejectionTracker):
Move promiseRejectionTracker handler from JSDOMWindowBase to JSDOMGlobalObject
to share it with WorkerGlobalScope.

* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::promiseRejectionTracker): Deleted.
Moved to JSDOMGlobalObject.

* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSExecState.cpp:
(WebCore::JSExecState::didLeaveScriptContext):
PromiseRejectionTracker is driven in workers too.

* bindings/js/JSPromiseRejectionEventCustom.cpp: Added.
(WebCore::JSPromiseRejectionEvent::visitAdditionalChildren):
Marking PromiseRejectionEvent::m_reason.

* bindings/js/JSWorkerGlobalScopeBase.cpp:
Configure promiseRejectionTracker.

* dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::contextQueue):
* dom/Microtasks.h:
* dom/PromiseRejectionEvent.cpp:
(WebCore::PromiseRejectionEvent::PromiseRejectionEvent):
* dom/PromiseRejectionEvent.h:
* dom/PromiseRejectionEvent.idl:
Expose it to worker scope. The custom mark function is required since we start
using JSValueInWrappedObject. And the constructor no longer requires ExecState.

* dom/RejectedPromiseTracker.cpp:
(WebCore::RejectedPromiseTracker::reportUnhandledRejections):
(WebCore::RejectedPromiseTracker::reportRejectionHandled):
Remove state argument for PromiseRejectionEvent::create.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::removeRejectedPromiseTracker):
* dom/ScriptExecutionContext.h:
In worker thread, we should delete PromiseRejectionTracker before destroying VM
because PromiseRejectionTracker's destruction requires VM. If we destroy VM first,
PromiseRejectionTracker's destruction causes crashing. In main thread, we do not
need to handle this case since we never destroy VM.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::prepareForTermination):
(WebCore::WorkerGlobalScope::removeMicrotaskQueue): Deleted.
* workers/WorkerGlobalScope.h:
* workers/WorkerGlobalScope.idl:
Add onunhandledrejection and onrejectionhandled event handler attributes.

* workers/WorkerThread.cpp:
(WebCore::WorkerThread::stop):
We call WorkerGlobalScope::prepareForTermination, which cleans up Worker's objects touching VM.

LayoutTests:

* fast/dom/reference-cycle-leaks-expected.txt:
* http/wpt/workers/promise-unhandled-rejection.any-expected.txt: Added.
* http/wpt/workers/promise-unhandled-rejection.any.html: Added.
* http/wpt/workers/promise-unhandled-rejection.any.js: Added.
(promise_test):
* http/wpt/workers/promise-unhandled-rejection.any.worker-expected.txt: Added.
* http/wpt/workers/promise-unhandled-rejection.any.worker.html: Added.
* js/dom/unhandled-promise-rejection-basic-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-basic-in-workers.html: Added.
* js/dom/unhandled-promise-rejection-bindings-type-error-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-bindings-type-error-in-workers.html: Added.
* js/dom/unhandled-promise-rejection-handle-during-event-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-handle-during-event-in-workers.html: Added.
* js/dom/unhandled-promise-rejection-handle-in-handler-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-handle-in-handler-in-workers.html: Added.
* js/dom/unhandled-promise-rejection-handle-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-handle-in-workers.html: Added.
* js/dom/unhandled-promise-rejection-order-in-workers-expected.txt: Added.
* js/dom/unhandled-promise-rejection-order-in-workers.html: Added.
* js/resources/unhandled-promise-rejection-basic-in-workers.js: Added.
(global.onunhandledrejection):
* js/resources/unhandled-promise-rejection-bindings-type-error-in-workers.js: Added.
(global.onunhandledrejection):
(catch):
(setTimeout):
* js/resources/unhandled-promise-rejection-handle-during-event-in-workers.js: Added.
(global.onunhandledrejection):
* js/resources/unhandled-promise-rejection-handle-in-handler-in-workers.js: Added.
(global.onunhandledrejection):
(global.onrejectionhandled):
* js/resources/unhandled-promise-rejection-handle-in-workers.js: Added.
(global.onunhandledrejection):
(global.onrejectionhandled):
* js/resources/unhandled-promise-rejection-order-in-workers.js: Added.
(global.onunhandledrejection):

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

19 months agoUnreviewed. Fix WebDriver tests after r234839.
carlosgc@webkit.org [Tue, 14 Aug 2018 12:41:42 +0000 (12:41 +0000)]
Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall more_itertools and six too.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):

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

19 months ago[GTK] Minibrowser: Add labels for buttons
tpopela@redhat.com [Tue, 14 Aug 2018 12:40:21 +0000 (12:40 +0000)]
[GTK] Minibrowser: Add labels for buttons
https://bugs.webkit.org/show_bug.cgi?id=188549

Reviewed by Carlos Garcia Campos.

So they are accessible easier (i.e. while testing WebKitGTK+ through Minibrowser in Dogtail).

* MiniBrowser/gtk/BrowserWindow.c:
(webViewIsLoadingChanged):
(browserWindowSetupEditorToolbar):
(browser_window_init):

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

19 months agoUnreviewed. Fix WebDriver tests after r234839.
carlosgc@webkit.org [Tue, 14 Aug 2018 11:26:39 +0000 (11:26 +0000)]
Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall atomicwrites too.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):

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

19 months agoUnreviewed. Fix WebDriver tests after r234839.
carlosgc@webkit.org [Tue, 14 Aug 2018 09:57:58 +0000 (09:57 +0000)]
Unreviewed. Fix WebDriver tests after r234839.

New pytest requires to autoinstall pluggy and funcsigs too.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):

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

19 months agoUnreviewed gardening. Update several test expectations after r234839.
carlosgc@webkit.org [Tue, 14 Aug 2018 09:04:32 +0000 (09:04 +0000)]
Unreviewed gardening. Update several test expectations after r234839.

* TestExpectations.json:

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

19 months agoFetch: content-length header is being added to the safe-list
commit-queue@webkit.org [Tue, 14 Aug 2018 08:29:15 +0000 (08:29 +0000)]
Fetch: content-length header is being added to the safe-list
https://bugs.webkit.org/show_bug.cgi?id=185473

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-14
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync with wpt change:
https://github.com/web-platform-tests/wpt/commit/407ecdff87af8aeceaa07cbc71aac9ec355d4334

* web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
* web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
* web-platform-tests/fetch/api/cors/cors-filtering.js:

Source/WebCore:

Content-Length is a CORS-safelisted reponse header:
https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name

Tests: web-platform-tests/fetch/api/cors/cors-filtering.html
       web-platform-tests/fetch/api/cors/cors-filtering-worker.html

* platform/network/HTTPParsers.cpp:
(WebCore::isCrossOriginSafeHeader):

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

19 months agoUnreviewed. Update W3C WebDriver imported tests.
carlosgc@webkit.org [Tue, 14 Aug 2018 07:08:15 +0000 (07:08 +0000)]
Unreviewed. Update W3C WebDriver imported tests.

Tools:

Bump pytest version to 3.6.2.

* Scripts/webkitpy/thirdparty/__init__.py:
(AutoinstallImportHook._install_pytest):

WebDriverTests:

* imported/w3c/importer.json:
* imported/w3c/tools/webdriver/README.md:
* imported/w3c/tools/webdriver/webdriver/__init__.py:
* imported/w3c/tools/webdriver/webdriver/client.py:
* imported/w3c/tools/webdriver/webdriver/error.py:
* imported/w3c/tools/webdriver/webdriver/protocol.py:
* imported/w3c/tools/webdriver/webdriver/transport.py:
* imported/w3c/tools/wptrunner/README.rst:
* imported/w3c/tools/wptrunner/docs/conf.py:
* imported/w3c/tools/wptrunner/docs/usage.rst:
* imported/w3c/tools/wptrunner/requirements.txt:
* imported/w3c/tools/wptrunner/requirements_chrome.txt:
* imported/w3c/tools/wptrunner/requirements_chrome_android.txt:
* imported/w3c/tools/wptrunner/requirements_edge.txt:
* imported/w3c/tools/wptrunner/requirements_firefox.txt:
* imported/w3c/tools/wptrunner/requirements_ie.txt:
* imported/w3c/tools/wptrunner/requirements_opera.txt:
* imported/w3c/tools/wptrunner/requirements_safari.txt:
* imported/w3c/tools/wptrunner/requirements_sauce.txt:
* imported/w3c/tools/wptrunner/tox.ini:
* imported/w3c/tools/wptrunner/wptrunner.default.ini:
* imported/w3c/tools/wptrunner/wptrunner/browsers/__init__.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/base.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/fennec.py: Added.
* imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/safari.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/edge-prerun.bat:
* imported/w3c/tools/wptrunner/wptrunner/browsers/sauce_setup/safari-prerun.sh:
* imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
* imported/w3c/tools/wptrunner/wptrunner/browsers/webkit.py:
* imported/w3c/tools/wptrunner/wptrunner/environment.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/__init__.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executorsafari.py: Added.
* imported/w3c/tools/wptrunner/wptrunner/executors/executorselenium.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/executorservodriver.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/__init__.py:
* imported/w3c/tools/wptrunner/wptrunner/executors/reftest-wait_marionette.js:
* imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver.js:
* imported/w3c/tools/wptrunner/wptrunner/font.py:
* imported/w3c/tools/wptrunner/wptrunner/formatters.py:
* imported/w3c/tools/wptrunner/wptrunner/manifestexpected.py:
* imported/w3c/tools/wptrunner/wptrunner/manifestupdate.py:
* imported/w3c/tools/wptrunner/wptrunner/metadata.py:
* imported/w3c/tools/wptrunner/wptrunner/products.py:
* imported/w3c/tools/wptrunner/wptrunner/stability.py:
* imported/w3c/tools/wptrunner/wptrunner/testloader.py:
* imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
* imported/w3c/tools/wptrunner/wptrunner/tests/browsers/test_sauce.py:
* imported/w3c/tools/wptrunner/wptrunner/tests/test_chunker.py:
* imported/w3c/tools/wptrunner/wptrunner/tests/test_formatters.py: Added.
* imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py:
* imported/w3c/tools/wptrunner/wptrunner/tests/test_stability.py: Added.
* imported/w3c/tools/wptrunner/wptrunner/tests/test_update.py:
* imported/w3c/tools/wptrunner/wptrunner/tests/test_wpttest.py: Added.
* imported/w3c/tools/wptrunner/wptrunner/update/__init__.py:
* imported/w3c/tools/wptrunner/wptrunner/update/metadata.py:
* imported/w3c/tools/wptrunner/wptrunner/update/sync.py:
* imported/w3c/tools/wptrunner/wptrunner/update/tree.py:
* imported/w3c/tools/wptrunner/wptrunner/update/update.py:
* imported/w3c/tools/wptrunner/wptrunner/vcs.py:
* imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
* imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
* imported/w3c/tools/wptrunner/wptrunner/wptlogging.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/__init__.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/backends/conditional.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/parser.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/serializer.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_conditional.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_serializer.py:
* imported/w3c/tools/wptrunner/wptrunner/wptmanifest/tests/test_static.py:
* imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
* imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
* imported/w3c/webdriver/META.yml: Added.
* imported/w3c/webdriver/OWNERS: Removed.
* imported/w3c/webdriver/tests/accept_alert/accept.py:
* imported/w3c/webdriver/tests/actions/control_click.py: Added.
* imported/w3c/webdriver/tests/actions/key.py:
* imported/w3c/webdriver/tests/actions/modifier_click.py:
* imported/w3c/webdriver/tests/actions/mouse.py:
* imported/w3c/webdriver/tests/actions/support/keys.py:
* imported/w3c/webdriver/tests/add_cookie/add.py:
* imported/w3c/webdriver/tests/back/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/back/back.py: Added.
* imported/w3c/webdriver/tests/back/conftest.py: Added.
* imported/w3c/webdriver/tests/close_window/close.py:
* imported/w3c/webdriver/tests/close_window/user_prompts.py:
* imported/w3c/webdriver/tests/conftest.py:
* imported/w3c/webdriver/tests/delete_all_cookies/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/delete_all_cookies/delete.py: Added.
* imported/w3c/webdriver/tests/delete_cookie/delete.py:
* imported/w3c/webdriver/tests/delete_cookie/user_prompts.py:
* imported/w3c/webdriver/tests/delete_session/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/delete_session/delete.py: Added.
* imported/w3c/webdriver/tests/dismiss_alert/dismiss.py:
* imported/w3c/webdriver/tests/element_clear/clear.py:
* imported/w3c/webdriver/tests/element_click/click.py: Added.
* imported/w3c/webdriver/tests/element_click/file_upload.py: Added.
* imported/w3c/webdriver/tests/element_click/interactability.py: Added.
* imported/w3c/webdriver/tests/element_click/navigate.py: Added.
* imported/w3c/webdriver/tests/element_click/scroll_into_view.py: Added.
* imported/w3c/webdriver/tests/element_click/support/close_window.html: Added.
* imported/w3c/webdriver/tests/element_click/support/input.html: Added.
* imported/w3c/webdriver/tests/element_send_keys/__init__.py:
* imported/w3c/webdriver/tests/element_send_keys/conftest.py: Added.
* imported/w3c/webdriver/tests/element_send_keys/events.py: Added.
* imported/w3c/webdriver/tests/element_send_keys/file_upload.py: Added.
* imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
* imported/w3c/webdriver/tests/element_send_keys/send_keys.py: Added.
* imported/w3c/webdriver/tests/element_send_keys/user_prompts.py: Added.
* imported/w3c/webdriver/tests/execute_async_script/collections.py:
* imported/w3c/webdriver/tests/execute_async_script/execute_async.py: Added.
* imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
* imported/w3c/webdriver/tests/execute_script/cyclic.py:
* imported/w3c/webdriver/tests/execute_script/execute.py: Added.
* imported/w3c/webdriver/tests/execute_script/user_prompts.py:
* imported/w3c/webdriver/tests/find_element/find.py:
* imported/w3c/webdriver/tests/find_element_from_element/find.py:
* imported/w3c/webdriver/tests/find_elements/find.py:
* imported/w3c/webdriver/tests/find_elements_from_element/find.py:
* imported/w3c/webdriver/tests/forward/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/forward/conftest.py: Added.
* imported/w3c/webdriver/tests/forward/forward.py: Added.
* imported/w3c/webdriver/tests/forward/user_prompts.py: Added.
* imported/w3c/webdriver/tests/fullscreen_window/fullscreen.py:
* imported/w3c/webdriver/tests/fullscreen_window/user_prompts.py:
* imported/w3c/webdriver/tests/get_active_element/get.py:
* imported/w3c/webdriver/tests/get_alert_text/get.py:
* imported/w3c/webdriver/tests/get_current_url/get.py:
* imported/w3c/webdriver/tests/get_current_url/user_prompts.py:
* imported/w3c/webdriver/tests/get_element_attribute/get.py:
* imported/w3c/webdriver/tests/get_element_property/get.py:
* imported/w3c/webdriver/tests/get_element_property/user_prompts.py:
* imported/w3c/webdriver/tests/get_element_tag_name/get.py:
* imported/w3c/webdriver/tests/get_element_tag_name/user_prompts.py:
* imported/w3c/webdriver/tests/get_element_text/get.py:
* imported/w3c/webdriver/tests/get_named_cookie/get.py:
* imported/w3c/webdriver/tests/get_timeouts/get.py:
* imported/w3c/webdriver/tests/get_title/get.py:
* imported/w3c/webdriver/tests/get_title/user_prompts.py:
* imported/w3c/webdriver/tests/get_window_rect/get.py:
* imported/w3c/webdriver/tests/get_window_rect/user_prompts.py:
* imported/w3c/webdriver/tests/interface.html:
* imported/w3c/webdriver/tests/is_element_selected/selected.py:
* imported/w3c/webdriver/tests/is_element_selected/user_prompts.py:
* imported/w3c/webdriver/tests/maximize_window/maximize.py:
* imported/w3c/webdriver/tests/maximize_window/user_prompts.py:
* imported/w3c/webdriver/tests/minimize_window/minimize.py:
* imported/w3c/webdriver/tests/minimize_window/user_prompts.py:
* imported/w3c/webdriver/tests/navigate_to/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/navigate_to/navigate.py: Added.
* imported/w3c/webdriver/tests/new_session/conftest.py:
* imported/w3c/webdriver/tests/new_session/create_alwaysMatch.py:
* imported/w3c/webdriver/tests/new_session/create_firstMatch.py:
* imported/w3c/webdriver/tests/new_session/default_values.py:
* imported/w3c/webdriver/tests/new_session/invalid_capabilities.py:
* imported/w3c/webdriver/tests/new_session/merge.py:
* imported/w3c/webdriver/tests/new_session/page_load_strategy.py: Added.
* imported/w3c/webdriver/tests/new_session/platform_name.py: Added.
* imported/w3c/webdriver/tests/new_session/response.py:
* imported/w3c/webdriver/tests/new_session/timeouts.py: Added.
* imported/w3c/webdriver/tests/page_source/source.py:
* imported/w3c/webdriver/tests/refresh/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/refresh/refresh.py: Added.
* imported/w3c/webdriver/tests/refresh/user_prompts.py: Added.
* imported/w3c/webdriver/tests/send_alert_text/send.py:
* imported/w3c/webdriver/tests/set_timeouts/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/set_timeouts/set.py: Added.
* imported/w3c/webdriver/tests/set_window_rect/resizing_and_positioning.py: Removed.
* imported/w3c/webdriver/tests/set_window_rect/set.py:
* imported/w3c/webdriver/tests/set_window_rect/user_prompts.py:
* imported/w3c/webdriver/tests/status/status.py:
* imported/w3c/webdriver/tests/support/__init__.py:
* imported/w3c/webdriver/tests/support/asserts.py:
* imported/w3c/webdriver/tests/support/fixtures.py:
* imported/w3c/webdriver/tests/switch_to_frame/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/switch_to_frame/switch.py: Added.
* imported/w3c/webdriver/tests/switch_to_parent_frame/switch.py:
* imported/w3c/webdriver/tests/switch_to_window/__init__.py: Copied from WebDriverTests/imported/w3c/webdriver/tests/element_send_keys/__init__.py.
* imported/w3c/webdriver/tests/switch_to_window/switch.py: Added.

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

19 months agoWebDriver: do not try to set the caret when focusing non text element in send keys...
carlosgc@webkit.org [Tue, 14 Aug 2018 06:53:03 +0000 (06:53 +0000)]
WebDriver: do not try to set the caret when focusing non text element in send keys command
https://bugs.webkit.org/show_bug.cgi?id=188515

Reviewed by Brian Burg.

It causes a type error exception.

* Session.cpp:
(WebDriver::Session::elementSendKeys):

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

19 months agoWebDriver: include all capabilities in the new session response
carlosgc@webkit.org [Tue, 14 Aug 2018 06:51:44 +0000 (06:51 +0000)]
WebDriver: include all capabilities in the new session response
https://bugs.webkit.org/show_bug.cgi?id=188511

Reviewed by Brian Burg.

As expected by the tests, using the default values when the capability is not provided by the user.

* WebDriverService.cpp:
(WebDriver::WebDriverService::createSession):

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

19 months agoWebDriver: several element_send_keys tests are failing since added
carlosgc@webkit.org [Tue, 14 Aug 2018 06:49:25 +0000 (06:49 +0000)]
WebDriver: several element_send_keys tests are failing since added
https://bugs.webkit.org/show_bug.cgi?id=181644

Reviewed by Michael Catanzaro.

This is because we are implementing an old version of the spec that received a "value" parameter to send keys
command, instead of the "text" one.

14.3 Element Send Keys
https://w3c.github.io/webdriver/#element-send-keys

* Session.cpp:
(WebDriver::Session::virtualKeyForKey): Receive a single character instead of a sequence.
(WebDriver::Session::elementSendKeys): It now receives a String and passes every character to virtualKeyForKey.
(WebDriver::Session::performActions): Pass first character of sequence to virtualKeyForKey.
* Session.h:
* WebDriverService.cpp:
(WebDriver::WebDriverService::elementSendKeys): Get text as a String, instead of value as an array.

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

19 months agoMeaning of OptionSet::contains is unclear when used with OptionSet argument
don.olmstead@sony.com [Tue, 14 Aug 2018 05:55:10 +0000 (05:55 +0000)]
Meaning of OptionSet::contains is unclear when used with OptionSet argument
https://bugs.webkit.org/show_bug.cgi?id=188501
<rdar://problem/43246242>

Reviewed by Simon Fraser.

MSVC is unable to compile contains using an initializer_list within a lambda.

* wtf/OptionSet.h:
(WTF::OptionSet::contains const):

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

19 months ago[LFC][Floating] Do not confuse clear with clearance.
zalan@apple.com [Tue, 14 Aug 2018 01:47:32 +0000 (01:47 +0000)]
[LFC][Floating] Do not confuse clear with clearance.
https://bugs.webkit.org/show_bug.cgi?id=188541

Reviewed by Simon Fraser.

clear -> CSS property.
clearance -> the offset required to avoid floats when clear is present.

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::verticalPositionWithClearance const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionForClear const):
(WebCore::Layout::BlockFormattingContext::computeVerticalPositionWithClearance const): Deleted.
* layout/blockformatting/BlockFormattingContext.h:
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::hasClear const):
(WebCore::Layout::Box::hasClearance const): Deleted.
* layout/layouttree/LayoutBox.h:

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

19 months agoUpdate MotionMark version number
jonlee@apple.com [Tue, 14 Aug 2018 00:59:40 +0000 (00:59 +0000)]
Update MotionMark version number
https://bugs.webkit.org/show_bug.cgi?id=188535
<rdar://problem/43254078>

Reviewed by Said Abou-Hallawa.

* MotionMark/resources/strings.js: To 1.1.

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

19 months ago[MotionMark] Update Multiply test
jonlee@apple.com [Tue, 14 Aug 2018 00:58:40 +0000 (00:58 +0000)]
[MotionMark] Update Multiply test
https://bugs.webkit.org/show_bug.cgi?id=188532
<rdar://problem/43252151>

Reviewed by Said Abou-Hallawa.

Update Multiply test to have a larger upper limit of number of particles. Cycle through three
different ways of hiding an element. Add new Multiple suite that isolates those components for
debugging purposes.

* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/multiply.html: Added.
* MotionMark/tests/dom/resources/multiply.js: Added.
* MotionMark/tests/master/resources/multiply.js:

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

19 months ago[iOS] Crash at -[UIViewController _presentViewController:withAnimationController...
commit-queue@webkit.org [Tue, 14 Aug 2018 00:39:03 +0000 (00:39 +0000)]
[iOS] Crash at -[UIViewController _presentViewController:withAnimationController:completion:]
https://bugs.webkit.org/show_bug.cgi?id=188537
<rdar://problem/41400259>

Patch by James Savage <james.savage@apple.com> on 2018-08-13
Reviewed by Tim Horton.

* platform/ios/ValidationBubbleIOS.mm:
(WebCore::ValidationBubble::show): Avoid hitting a UIKit exception for
presenting an already presented view controller by turning the scenario
into an early return.

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

19 months ago[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
youenn@apple.com [Mon, 13 Aug 2018 23:45:51 +0000 (23:45 +0000)]
[WPT] Ensure templated tests do set a Content-Type: text/html HTTP header
https://bugs.webkit.org/show_bug.cgi?id=188523

Reviewed by Alexey Proskuryakov.

Importing change made in https://github.com/web-platform-tests/wpt/pull/12450
This helps running WPT tests in more platforms.

* web-platform-tests/tools/serve/serve.py:
(HtmlWrapperHandler):

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

19 months agoMake CSSSelectorList a little more sane
achristensen@apple.com [Mon, 13 Aug 2018 23:36:09 +0000 (23:36 +0000)]
Make CSSSelectorList a little more sane
https://bugs.webkit.org/show_bug.cgi?id=188539

Reviewed by Simon Fraser.

This patch does four things:
1. Use a UniqueArray<CSSSelector> instead of a raw pointer and manually calling destructors.
2. Use move semantics a little bit better.
3. Add a CSSSelectorList&& to the StyleRule and StyleRulePage because every time we create either
one of those objects we call a setter to give it a CSSSelectorList.  That's what constructor arguments are for.
4. Don't use CSSSelectorList.componentCount(), which iterates all components, to determine if it's empty.
Use first() instead.

* css/CSSPageRule.cpp:
(WebCore::CSSPageRule::setSelectorText):
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::componentCount const):
(WebCore::CSSSelectorList::listSize const):
(WebCore::CSSSelectorList::operator=):
(WebCore::CSSSelectorList::deleteSelectors): Deleted.
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::first const):
(WebCore::CSSSelectorList::indexOfNextSelectorAfter const):
(WebCore::CSSSelectorList::~CSSSelectorList): Deleted.
(WebCore::CSSSelectorList::adoptSelectorArray): Deleted.
(WebCore::CSSSelectorList::hasOneSelector const): Deleted.
* css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
* css/StyleRule.cpp:
(WebCore::StyleRule::StyleRule):
(WebCore::StyleRule::createForSplitting):
(WebCore::StyleRulePage::StyleRulePage):
* css/StyleRule.h:
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumePageRule):
(WebCore::CSSParserImpl::consumeStyleRule):
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):

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

19 months agoAllow the substring 'me' in contributor names and email addresses
commit-queue@webkit.org [Mon, 13 Aug 2018 23:15:05 +0000 (23:15 +0000)]
Allow the substring 'me' in contributor names and email addresses
https://bugs.webkit.org/show_bug.cgi?id=188538

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-13
Reviewed by Tim Horton.

A test didn't permit the string "me" in email addresses or names of contributors.

* Scripts/webkitpy/common/config/committers_unittest.py:
(CommittersTest.test_contributors_by_fuzzy_match):

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

19 months ago[MotionMark] Update Leaves test
jonlee@apple.com [Mon, 13 Aug 2018 23:02:07 +0000 (23:02 +0000)]
[MotionMark] Update Leaves test
https://bugs.webkit.org/show_bug.cgi?id=188530
<rdar://problem/43251862>

Reviewed by Said Abou-Hallawa.

Update Leaves test to include opacity and scale. Add new Leaves suite that isolate those components
for debugging purposes.

* MotionMark/resources/debug-runner/tests.js:
* MotionMark/tests/dom/leaves.html:
* MotionMark/tests/dom/resources/leaves.js:
* MotionMark/tests/master/resources/leaves.js:

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

19 months agoWeb Inspector: Table should handle row selection instead of the table delegate
mattbaker@apple.com [Mon, 13 Aug 2018 22:44:18 +0000 (22:44 +0000)]
Web Inspector: Table should handle row selection instead of the table delegate
https://bugs.webkit.org/show_bug.cgi?id=188534
<rdar://problem/43253335>

Reviewed by Joseph Pecoraro.

Row selection should be implemented by Table, rather than its delegate.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype.tableShouldSelectRow):
(WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
Prevent selection unless the clicked cell belongs to the name column.

* UserInterface/Views/ResourceCookiesContentView.js:
(WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
Always prevent selection.

* UserInterface/Views/Table.js:
(WI.Table):
(WI.Table.prototype._handleMouseDown):

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

19 months ago[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
joepeck@webkit.org [Mon, 13 Aug 2018 22:29:37 +0000 (22:29 +0000)]
[macOS debug] LayoutTest inspector/worker/resources-in-worker.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=168091

Reviewed by Devin Rousso.

* inspector/worker/resources-in-worker-expected.txt:
* inspector/worker/resources-in-worker.html:
* inspector/worker/resources/resource-utilities.js:
* inspector/worker/resources/worker-resources.js:
Be a little more careful about proceeding with tests after starting the Worker.
Fix the resource load from the main target to actually load a real resource.

* inspector/dom-debugger/resources/dataXHR.json: Added.
* inspector/dom-debugger/xhr-breakpoints.html:
Load an actual resource.

* platform/gtk/TestExpectations:
* platform/mac/TestExpectations:
This test always passes for me in Release and Debug. Reset expectations.

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

19 months agoUnreviewed, rolling out r234812.
commit-queue@webkit.org [Mon, 13 Aug 2018 22:17:51 +0000 (22:17 +0000)]
Unreviewed, rolling out r234812.
https://bugs.webkit.org/show_bug.cgi?id=188536

broke the build (Requested by ThomasDenney on #webkit).

Reverted changeset:

"Added Thomas Denney to contributors.json."
https://bugs.webkit.org/show_bug.cgi?id=188525
https://trac.webkit.org/changeset/234812

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

19 months agoAvoid timeout resulted from calling waitUntilDone when test is not running
sihui_liu@apple.com [Mon, 13 Aug 2018 22:16:39 +0000 (22:16 +0000)]
Avoid timeout resulted from calling waitUntilDone when test is not running
https://bugs.webkit.org/show_bug.cgi?id=188389

Reviewed by Chris Dumez.

If test is not running, we should not set the waitUntilDone flag, or it may cause subsequent tests timeout.

* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::waitUntilDone):

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

19 months ago[IntersectionObserver] Validate threshold values
ajuma@chromium.org [Mon, 13 Aug 2018 22:02:45 +0000 (22:02 +0000)]
[IntersectionObserver] Validate threshold values
https://bugs.webkit.org/show_bug.cgi?id=188475

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Update expectation for newly passing test case.

* web-platform-tests/intersection-observer/observer-exceptions-expected.txt:
* web-platform-tests/intersection-observer/observer-exceptions.html: Fix typo already fixed upstream.

Source/WebCore:

Throw an exception if any of an IntersectionObserver's thresholds are outside
the range [0, 1].

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
           intersection-observer/intersection-observer-interface.html

* page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
* page/IntersectionObserver.h:

LayoutTests:

Add test coverage for interesting floating point threshold values.

* intersection-observer/intersection-observer-interface-expected.txt:
* intersection-observer/intersection-observer-interface.html:

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

19 months agoRemove unused CSSSelector::parseNth
commit-queue@webkit.org [Mon, 13 Aug 2018 21:17:10 +0000 (21:17 +0000)]
Remove unused CSSSelector::parseNth
https://bugs.webkit.org/show_bug.cgi?id=188529

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-13
Reviewed by Simon Fraser.

This was conceptually replaced by the call to setNth in CSSSelectorParser::consumePseudo.

* css/CSSSelector.cpp:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::setNth):
(WebCore::CSSSelector::nthA const):
(WebCore::CSSSelector::nthB const):
(WebCore::CSSSelector::parseNth const): Deleted.
(WebCore::CSSSelector::RareData::parseNth): Deleted.
* css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addNthChildType):

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

19 months ago[WK2] [macOS] Implement a mechanism to test drag and drop
wenson_hsieh@apple.com [Mon, 13 Aug 2018 21:07:55 +0000 (21:07 +0000)]
[WK2] [macOS] Implement a mechanism to test drag and drop
https://bugs.webkit.org/show_bug.cgi?id=181898
<rdar://problem/39181698>

Reviewed by Simon Fraser.

Source/WebKit:

Adds a new SPI method, `-_doAfterProcessingAllPendingMouseEvents:`, to WKWebView. This invokes the given
callback after all queued mouse events have been handled by the web process. See Tools/ChangeLog for more
detail.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _doAfterProcessingAllPendingMouseEvents:]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
* UIProcess/API/gtk/PageClientImpl.h:
* UIProcess/API/wpe/PageClientImpl.h:
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::processDidExit):

Invoke any outstanding callbacks for processing pending mouse events when the web process is terminated.

(WebKit::WebViewImpl::doAfterProcessingAllPendingMouseEvents):

Either invoke the callback immediately if there are no mouse events to be processed, or insert the callback in
a queue that will be flushed once all mouse events have been handled.

(WebKit::WebViewImpl::didFinishProcessingAllPendingMouseEvents):
(WebKit::WebViewImpl::flushPendingMouseEventCallbacks):
* UIProcess/PageClient.h:
(WebKit::PageClient::pinnedStateWillChange):
(WebKit::PageClient::pinnedStateDidChange):
(WebKit::PageClient::videoControlsManagerDidChange):

Drive-by tweaks: remove unnecessary semicolons after empty implementation stubs.

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

Notify the page client when there are no remaining mouse events left in the queue.

* UIProcess/ios/PageClientImplIOS.h:
* UIProcess/mac/PageClientImplMac.h:
* UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::didFinishProcessingAllPendingMouseEvents):

Add some plumbing through PageClient, so that WebPageProxy can tell WebViewImpl when it is finished processing
all mouse events.

* UIProcess/win/PageClientImpl.h:

Tools:

Implements the currently stubbed DragAndDropSimulator on macOS, and introduces a new API test for r227266. See
comments below for more detail.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.

Introduce a file for cross-platform drag and drop tests, currently for iOS and macOS. Additionally add a test
for r227266, which was fixed earlier this year but could not be tested due to a lack of testing mechanism on
macOS in WebKit2.

(TEST):
* TestWebKitAPI/Tests/WebKitCocoa/full-page-dropzone.html: Added.

Minor tweaks to this test page to add "dragover" and "drop" event handlers.

* TestWebKitAPI/Tests/WebKitCocoa/image-in-link-and-input.html:
* TestWebKitAPI/Tests/WebKitCocoa/link-in-iframe-and-input.html: Added.

Add a new test page that includes a link embedded within an iframe below a plain text input.

* TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm: Added.
(TEST):
* TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm: Renamed from Tools/TestWebKitAPI/Tests/mac/DragAndDropPasteboardTests.mm.

Move only existing WebKit2 macOS drag and drop test (DragAndDropPasteboardTests.NumberOfValidItemsForDrop) out
of DragAndDropPasteboardTests.mm and into a new file, DragAndDropTestsMac.mm. Additionally, rename
DragAndDropPasteboardTests to LegacyDragAndDropTests, since it now only contains two legacy WebView tests for
drag and drop.

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(-[FrameLoadCompletionListener initWithCompletionBlock:]):
(-[FrameLoadCompletionListener webView:didFinishLoadForFrame:]):
(-[DragSource draggingSourceOperationMaskForLocal:]):
(-[DragInfo initWithImage:offset:pasteboard:source:destinationWindow:]):
(-[DragInfo lastMousePosition]):
(-[DragInfo setLastMousePosition:]):
(-[DragInfo draggingDestinationWindow]):
(-[DragInfo draggingSourceOperationMask]):
(-[DragInfo draggingLocation]):
(-[DragInfo draggedImageLocation]):
(-[DragInfo draggedImage]):
(-[DragInfo draggingPasteboard]):
(-[DragInfo draggingSource]):
(-[DragInfo draggingSequenceNumber]):
(-[DragInfo slideDraggedImageTo:]):
(-[DragInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[DragInfo draggingFormation]):
(-[DragInfo setDraggingFormation:]):
(-[DragInfo animatesToDestination]):
(-[DragInfo setAnimatesToDestination:]):
(-[DragInfo numberOfValidItemsForDrop]):
(-[DragInfo setNumberOfValidItemsForDrop:]):
(-[DragInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[DragInfo springLoadingHighlight]):
(-[DragInfo resetSpringLoading]):
(TestWebKitAPI::getTestImage):
(TestWebKitAPI::webViewAfterPerformingDragOperation):
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/mac/full-page-dropzone.html: Removed.
* TestWebKitAPI/cocoa/DragAndDropSimulator.h:

Flesh out some of the DragAndDropSimulator API for macOS, exposing (among other things) the drag pasteboard,
the current NSDraggingInfo, the initial location of the drag image, and the drag image itself.

* TestWebKitAPI/cocoa/TestWKWebView.h:
* TestWebKitAPI/cocoa/TestWKWebView.mm:
(-[TestWKWebView mouseDownAtPoint:simulatePressure:]):
(-[TestWKWebView mouseUpAtPoint:]):
(-[TestWKWebView mouseMoveToPoint:withFlags:]):
(-[TestWKWebView sendClicksAtPoint:numberOfClicks:]):
(-[TestWKWebView mouseEnterAtPoint:]):
(-[TestWKWebView mouseExitAtPoint:]):
(-[TestWKWebView mouseDragToPoint:]):
(-[TestWKWebView _mouseEventWithType:atLocation:]):
(-[TestWKWebView _mouseEventWithType:atLocation:flags:timestamp:clickCount:]):

Add TestWKWebView helpers to send MouseMove, MouseEnter and MouseDrag NSEvents to the web view. Additionally,
rename parameter names to these helpers to make it more obvious that these locations are all in NSWindow
coordinates.

(-[TestWKWebView typeCharacter:]):

Drive-by style fix: put this opening brace on the beginning of the next line.

* TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:
(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator webView]):

Small iOS DragAndDropSimulator adjustments for new DragAndDropSimulator interfaces.

* TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropTestWKWebView initWithFrame:configuration:simulator:]):

Introduce a WKWebView subclass for testing drag and drop that overrides `-dragImage:at:offset:…`, and instead
allows DragAndDropSimulator to take over the drag.

(-[DragAndDropTestWKWebView dragImage:at:offset:event:pasteboard:source:slideBack:]):

Override this entry point into drag and drop code, and instead call out to the DragAndDropSimulator to
coordinate the drag.

(-[DragAndDropTestWKWebView waitForPendingMouseEvents]):

Helper method to wait for the web process to finish handling all in-flight mouse events.

(defaultExternalDragImage):

Set this image as the default drag image when simulating an incoming drag session from outside of the web view.

(-[DragAndDropSimulator initWithWebViewFrame:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator flipAboutXAxisInHostWindow:]):

Helper method to flip a given point about the X axis of the window.

(-[DragAndDropSimulator locationInViewForCurrentProgress]):

Map a progress value (between 0 and 1) to a drag location.

(-[DragAndDropSimulator initialProgressForMouseDrag]):

Determines the initial progress value when initiation a drag in web content. This is the initial progress
required to ensure that the first mouse drag event exceeds the drag distance hysteresis and causes any drag
(if applicable) to begin.

(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):

Helper to coordinate drag updates in both the cases where we're simulating a drag session entering from outside
of the web view, and in the case where we've initiated a drag from the web view itself.

(-[DragAndDropSimulator webView]):
(-[DragAndDropSimulator setExternalDragPasteboard:]):
(-[DragAndDropSimulator externalDragPasteboard]):

Just like its iOS counterpart (setExternalItemProviders:), setting an external drag pasteboard on macOS puts the
DragAndDropSimulator in a mode that simulates a drag coming in from outside the web view, using the given
pasteboard.

(-[DragAndDropSimulator setExternalDragImage:]):
(-[DragAndDropSimulator externalDragImage]):

May be optionally set when specifying an external drag pasteboard to specify the drag image used. If no external
drag image is specified, falls back to the default image returned by `defaultExternalDragImage()`.

(-[DragAndDropSimulator draggingInfo]):
(-[DragAndDropSimulator willEndDraggingHandler]):
(-[DragAndDropSimulator setWillEndDraggingHandler:]):

Hook to allow tests to run logic right before performing the drop (if the current drag operation is not none) or
ending the drag session without performing a drag operation.

(-[DragAndDropSimulator initWithWebView:]): Deleted.
(-[DragAndDropSimulator dealloc]): Deleted.
(-[DragAndDropSimulator phase]): Deleted.
* TestWebKitAPI/mac/TestDraggingInfo.h: Copied from Tools/TestWebKitAPI/mac/DragAndDropSimulatorMac.mm.
* TestWebKitAPI/mac/TestDraggingInfo.mm: Added.

Mock object conforming to NSDraggingInfo that is passed to WKWebView when invoking -draggingUpdated:,
-draggingEntered: and -draggingExited:.

(-[TestDraggingInfo draggingPasteboard]):
(-[TestDraggingInfo setDraggingPasteboard:]):
(-[TestDraggingInfo draggingSource]):
(-[TestDraggingInfo setDraggingSource:]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):
(-[TestDraggingInfo draggingDestinationWindow]):
(-[TestDraggingInfo draggedImage]):
(-[TestDraggingInfo setDraggedImage:]):
(-[TestDraggingInfo slideDraggedImageTo:]):
(-[TestDraggingInfo namesOfPromisedFilesDroppedAtDestination:]):
(-[TestDraggingInfo resetSpringLoading]):

Empty method stubs, to be implemented in the future as needed.

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

19 months agoRemove unused code in CSSParserSelector/CSSSelector
achristensen@apple.com [Mon, 13 Aug 2018 20:18:05 +0000 (20:18 +0000)]
Remove unused code in CSSParserSelector/CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=188528

Reviewed by Simon Fraser.

* css/CSSSelector.cpp:
* css/CSSSelector.h:
(WebCore::CSSSelector::serializingValue const):
(WebCore::CSSSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.
* css/parser/CSSParserSelector.h:
(WebCore::CSSParserSelector::setAttributeValueMatchingIsCaseInsensitive): Deleted.

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