Timeline



Apr 24, 2018:

10:52 PM Changeset in webkit [230987] by n_wang@apple.com
  • 3 edits in trunk/Source/WebKit

AX: soft link libAccessibility.dylb
https://bugs.webkit.org/show_bug.cgi?id=184919

Reviewed by Dan Bernstein.

Weakly linked libAccessibility.dylib on macOS.

  • Configurations/WebKit.xcconfig:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _updateAccessibilityEventsEnabled]):

10:33 PM Changeset in webkit [230986] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK][WPE] Fix triggered bot name on the WPE Debug Build bot
https://bugs.webkit.org/show_bug.cgi?id=184954

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-04-24
Reviewed by Michael Catanzaro.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
9:38 PM Changeset in webkit [230985] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 11.3.1

Added a tag for iOS 11.3.1.

9:38 PM Changeset in webkit [230984] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 11.1 (v. 11605.1.33.1.4 & v. 12605.1.33.1.4)

Added a tag for Safari 11.1 (v. 11605.1.33.1.4 & v. 12605.1.33.1.4).

8:42 PM Changeset in webkit [230983] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Release assert in ScriptController::canExecuteScripts via CachedSVGFont::ensureCustomFontData during
Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=184950

Reviewed by Zalan Bujtas.

Convert an existing ScriptDisallowedScope::EventAllowedScope which only disables the debug assertions
by ScriptDisallowedScope::DisableAssertionsInScope which also disables the release assertion.

Because SVG font is loaded in a document isolated from the rest of the page (m_externalSVGDocument),
there is no security implication to execute scripts in this isolated document.

Unfortunately, no new tests. I could never make CachedSVGFont::ensureCustomFontData to get called inside
style resolution with m_externalSVGDocument set to nullptr after many attempts. Even EventAllowedScope
I added 13 months ago in r211965, which this patch replaces by DisableAssertionsInScope, is not utilized
by the existing layout tests since removing the assertion doesn't cause any layout test to hit an assertion.

  • dom/ScriptDisallowedScope.h: Updated the comment.
  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData): Replaced the asssertion.

8:36 PM Changeset in webkit [230982] by Fujii Hironori
  • 5 edits
    22 adds in trunk/Source/WebKit

[WinCairo] Add WKView and WKAPI
https://bugs.webkit.org/show_bug.cgi?id=182869

Reviewed by Alex Christensen.

Resurrected source files for WebKit for Windows port which was
removed in r139003.

  • PlatformWin.cmake: Renamed the output name of WebKit to WebKit2

not to conflict WebKitLegacy. Added source files and include paths.

  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/win/WKAPICastWin.h: Added.
  • UIProcess/API/C/win/WKView.cpp: Added.

(WKViewCreate):
(WKViewGetWindow):
(WKViewGetPage):
(WKViewSetParentWindow):
(WKViewWindowAncestryDidChange):
(WKViewSetIsInWindow):
(WKViewSetScrollOffsetOnNextResize):

  • UIProcess/API/C/win/WKView.h: Added.
  • UIProcess/API/win/APIWebsiteDataStoreWin.cpp: Added.

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultCacheStorageDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultResourceLoadStatisticsDirectory):
(API::WebsiteDataStore::cacheDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::websiteDataDirectoryFileSystemRepresentation):
(API::WebsiteDataStore::defaultDataStoreConfiguration):

  • UIProcess/Launcher/ProcessLauncher.h:
  • UIProcess/Launcher/win/ProcessLauncherWin.cpp: Added.

(WebKit::processName):
(WebKit::ProcessLauncher::launchProcess):
(WebKit::ProcessLauncher::terminateProcess):
(WebKit::ProcessLauncher::platformInvalidate):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):

  • UIProcess/WebsiteData/win/WebsiteDataStoreWin.cpp: Added.

(WebKit::WebsiteDataStore::platformInitialize):
(WebKit::WebsiteDataStore::platformDestroy):
(WebKit::WebsiteDataStore::platformRemoveRecentSearches):

  • UIProcess/win/PageClientImpl.cpp: Added.

(WebKit::PageClientImpl::PageClientImpl):
(WebKit::PageClientImpl::createDrawingAreaProxy):
(WebKit::PageClientImpl::setViewNeedsDisplay):
(WebKit::PageClientImpl::requestScroll):
(WebKit::PageClientImpl::viewScrollPosition):
(WebKit::PageClientImpl::viewSize):
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewInWindow):
(WebKit::PageClientImpl::PageClientImpl::processDidExit):
(WebKit::PageClientImpl::didRelaunchProcess):
(WebKit::PageClientImpl::toolTipChanged):
(WebKit::PageClientImpl::setCursor):
(WebKit::PageClientImpl::setCursorHiddenUntilMouseMoves):
(WebKit::PageClientImpl::didChangeViewportProperties):
(WebKit::PageClientImpl::registerEditCommand):
(WebKit::PageClientImpl::clearAllEditCommands):
(WebKit::PageClientImpl::canUndoRedo):
(WebKit::PageClientImpl::executeUndoRedo):
(WebKit::PageClientImpl::convertToDeviceSpace):
(WebKit::PageClientImpl::convertToUserSpace):
(WebKit::PageClientImpl::screenToRootView):
(WebKit::PageClientImpl::rootViewToScreen):
(WebKit::PageClientImpl::doneWithKeyEvent):
(WebKit::PageClientImpl::createPopupMenuProxy):
(WebKit::PageClientImpl::createContextMenuProxy):
(WebKit::createColorPicker):
(WebKit::PageClientImpl::enterAcceleratedCompositingMode):
(WebKit::PageClientImpl::exitAcceleratedCompositingMode):
(WebKit::PageClientImpl::updateAcceleratedCompositingMode):
(WebKit::PageClientImpl::pageClosed):
(WebKit::PageClientImpl::preferencesDidChange):
(WebKit::PageClientImpl::didChangeContentSize):
(WebKit::PageClientImpl::handleDownloadRequest):
(WebKit::PageClientImpl::didCommitLoadForMainFrame):
(WebKit::PageClientImpl::fullScreenManagerProxyClient):
(WebKit::PageClientImpl::closeFullScreenManager):
(WebKit::PageClientImpl::isFullScreen):
(WebKit::PageClientImpl::enterFullScreen):
(WebKit::PageClientImpl::exitFullScreen):
(WebKit::PageClientImpl::beganEnterFullScreen):
(WebKit::PageClientImpl::beganExitFullScreen):
(WebKit::PageClientImpl::doneWithTouchEvent):
(WebKit::PageClientImpl::wheelEventWasNotHandledByWebCore):
(WebKit::PageClientImpl::didFinishLoadingDataForCustomContentProvider):
(WebKit::PageClientImpl::navigationGestureDidBegin):
(WebKit::PageClientImpl::navigationGestureWillEnd):
(WebKit::PageClientImpl::navigationGestureDidEnd):
(WebKit::PageClientImpl::willRecordNavigationSnapshot):
(WebKit::PageClientImpl::didRemoveNavigationGestureSnapshot):
(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):
(WebKit::PageClientImpl::didFinishLoadForMainFrame):
(WebKit::PageClientImpl::didSameDocumentNavigationForMainFrame):
(WebKit::PageClientImpl::didChangeBackgroundColor):
(WebKit::PageClientImpl::isPlayingAudioWillChange):
(WebKit::PageClientImpl::isPlayingAudioDidChange):
(WebKit::PageClientImpl::refView):
(WebKit::PageClientImpl::derefView):

  • UIProcess/win/PageClientImpl.h: Added.
  • UIProcess/win/TextCheckerWin.cpp: Added.

(WebKit::checkerState):
(WebKit::TextChecker::state):
(WebKit::TextChecker::setTestingMode):
(WebKit::TextChecker::isTestingMode):
(WebKit::TextChecker::isContinuousSpellCheckingAllowed):
(WebKit::TextChecker::setContinuousSpellCheckingEnabled):
(WebKit::TextChecker::setGrammarCheckingEnabled):
(WebKit::TextChecker::continuousSpellCheckingEnabledStateChanged):
(WebKit::TextChecker::grammarCheckingEnabledStateChanged):
(WebKit::TextChecker::uniqueSpellDocumentTag):
(WebKit::TextChecker::closeSpellDocumentWithTag):
(WebKit::TextChecker::checkSpellingOfString):
(WebKit::TextChecker::checkGrammarOfString):
(WebKit::TextChecker::spellingUIIsShowing):
(WebKit::TextChecker::toggleSpellingUIIsShowing):
(WebKit::TextChecker::updateSpellingUIWithMisspelledWord):
(WebKit::TextChecker::updateSpellingUIWithGrammarString):
(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::learnWord):
(WebKit::TextChecker::ignoreWord):
(WebKit::TextChecker::requestCheckingOfString):
(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/win/WebContextMenuProxyWin.cpp: Added.

(WebKit::WebContextMenuProxyWin::show):
(WebKit::WebContextMenuProxyWin::showContextMenuWithItems):
(WebKit::WebContextMenuProxyWin::WebContextMenuProxyWin):
(WebKit::WebContextMenuProxyWin::~WebContextMenuProxyWin):

  • UIProcess/win/WebContextMenuProxyWin.h: Added.

(WebKit::WebContextMenuProxyWin::create):

  • UIProcess/win/WebInspectorProxyWin.cpp: Added.

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
(WebKit::WebInspectorProxy::platformCreateFrontendWindow):
(WebKit::WebInspectorProxy::platformCloseFrontendPageAndWindow):
(WebKit::WebInspectorProxy::platformDidCloseForCrash):
(WebKit::WebInspectorProxy::platformInvalidate):
(WebKit::WebInspectorProxy::platformHide):
(WebKit::WebInspectorProxy::platformBringToFront):
(WebKit::WebInspectorProxy::platformBringInspectedPageToFront):
(WebKit::WebInspectorProxy::platformIsFront):
(WebKit::WebInspectorProxy::platformInspectedURLChanged):
(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):
(WebKit::WebInspectorProxy::platformInspectedWindowHeight):
(WebKit::WebInspectorProxy::platformInspectedWindowWidth):
(WebKit::WebInspectorProxy::platformAttach):
(WebKit::WebInspectorProxy::platformDetach):
(WebKit::WebInspectorProxy::platformSetAttachedWindowHeight):
(WebKit::WebInspectorProxy::platformSetAttachedWindowWidth):
(WebKit::WebInspectorProxy::platformStartWindowDrag):
(WebKit::WebInspectorProxy::platformSave):
(WebKit::WebInspectorProxy::platformAppend):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):

  • UIProcess/win/WebPageProxyWin.cpp: Added.

(WebKit::WebPageProxy::platformInitialize):
(WebKit::WebPageProxy::standardUserAgent):
(WebKit::WebPageProxy::saveRecentSearches):
(WebKit::WebPageProxy::loadRecentSearches):
(WebKit::WebPageProxy::editorStateChanged):

  • UIProcess/win/WebPreferencesWin.cpp: Added.

(WebKit::WebPreferences::platformInitializeStore):
(WebKit::WebPreferences::platformUpdateStringValueForKey):
(WebKit::WebPreferences::platformUpdateBoolValueForKey):
(WebKit::WebPreferences::platformUpdateUInt32ValueForKey):
(WebKit::WebPreferences::platformUpdateDoubleValueForKey):
(WebKit::WebPreferences::platformUpdateFloatValueForKey):
(WebKit::WebPreferences::platformGetStringUserValueForKey):
(WebKit::WebPreferences::platformGetBoolUserValueForKey):
(WebKit::WebPreferences::platformGetUInt32UserValueForKey):
(WebKit::WebPreferences::platformGetDoubleUserValueForKey):

  • UIProcess/win/WebProcessPoolWin.cpp: Added.

(WebKit::WebProcessPool::platformInitialize):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInvalidateContext):
(WebKit::WebProcessPool::legacyPlatformDefaultApplicationCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultWebSQLDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultIndexedDBDatabaseDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultLocalStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultMediaKeysStorageDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::legacyPlatformDefaultJavaScriptConfigurationDirectory):
(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):

  • UIProcess/win/WebView.cpp: Added.

(WebKit::WebView::WebViewWndProc):
(WebKit::WebView::wndProc):
(WebKit::WebView::registerWebViewWindowClass):
(WebKit::WebView::WebView):
(WebKit::WebView::~WebView):
(WebKit::WebView::initialize):
(WebKit::WebView::setParentWindow):
(WebKit::findTopLevelParentWindow):
(WebKit::WebView::windowAncestryDidChange):
(WebKit::WebView::onMouseEvent):
(WebKit::WebView::onWheelEvent):
(WebKit::WebView::onHorizontalScroll):
(WebKit::WebView::onVerticalScroll):
(WebKit::WebView::onKeyEvent):
(WebKit::drawPageBackground):
(WebKit::WebView::paint):
(WebKit::WebView::onPaintEvent):
(WebKit::WebView::onPrintClientEvent):
(WebKit::WebView::onSizeEvent):
(WebKit::WebView::onWindowPositionChangedEvent):
(WebKit::WebView::onSetFocusEvent):
(WebKit::WebView::onKillFocusEvent):
(WebKit::WebView::onTimerEvent):
(WebKit::WebView::onShowWindowEvent):
(WebKit::WebView::onSetCursor):
(WebKit::WebView::updateActiveState):
(WebKit::WebView::updateActiveStateSoon):
(WebKit::initCommonControls):
(WebKit::WebView::initializeToolTipWindow):
(WebKit::WebView::startTrackingMouseLeave):
(WebKit::WebView::stopTrackingMouseLeave):
(WebKit::WebView::shouldInitializeTrackPointHack):
(WebKit::WebView::close):
(WebKit::WebView::cursorToShow const):
(WebKit::WebView::updateNativeCursor):
(WebKit::WebView::setOverrideCursor):
(WebKit::WebView::setIsInWindow):
(WebKit::WebView::setIsVisible):
(WebKit::WebView::isWindowActive):
(WebKit::WebView::isFocused):
(WebKit::WebView::isVisible):
(WebKit::WebView::isInWindow):
(WebKit::WebView::setScrollOffsetOnNextResize):
(WebKit::WebView::setViewNeedsDisplay):
(WebKit::WebView::createColorChooserProxy):
(WebKit::WebView::didCommitLoadForMainFrame):
(WebKit::WebView::customRepresentationZoomFactor):
(WebKit::WebView::setCustomRepresentationZoomFactor):
(WebKit::WebView::findStringInCustomRepresentation):
(WebKit::WebView::countStringMatchesInCustomRepresentation):
(WebKit::WebView::nativeWindow):
(WebKit::WebView::windowReceivedMessage):

  • UIProcess/win/WebView.h: Added.

(WebKit::WebView::create):
(WebKit::WebView::window const):
(WebKit::WebView::page const):
(WebKit::WebView::drawingArea):
(WebKit::WebView::setWasActivatedByMouseEvent):

8:28 PM Changeset in webkit [230981] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Unreviewed build fix.

WinCairo WebKit2 can't compile since r230921.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::appendCookieHeader):
CookieJarCurlDatabase::cookieRequestHeaderFieldValue needs
SameSiteInfo.

8:14 PM Changeset in webkit [230980] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

fromCharCode is missing some exception checks
https://bugs.webkit.org/show_bug.cgi?id=184952

Reviewed by Saam Barati.

JSTests:

  • stress/fromCharCode-exception-check.js: Added.

(get catch):

Source/JavaScriptCore:

I also removed the pointless slow path function and moved it into the
main function.

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCode):
(JSC::stringFromCharCodeSlowCase): Deleted.

6:51 PM Changeset in webkit [230979] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

visitedDependentColor() should take a CSSPropertyID
https://bugs.webkit.org/show_bug.cgi?id=184949

Reviewed by Sam Weinig.

Change RenderStyle::colorIncludingFallback(), RenderStyle::visitedDependentColor()
and RenderElement::selectionColor() to take CSSPropertyID rather than int.

No behavior change.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::selectionColor const):

  • rendering/RenderElement.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder const):
(WebCore::RenderTableCell::computeCollapsedEndBorder const):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder const):
(WebCore::RenderTableCell::computeCollapsedAfterBorder const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::colorIncludingFallback const):
(WebCore::RenderStyle::visitedDependentColor const):

  • rendering/style/RenderStyle.h:
6:50 PM Changeset in webkit [230978] by Simon Fraser
  • 16 edits
    3 adds in trunk

Add a new "color-filter" CSS property as an experimental feature
https://bugs.webkit.org/show_bug.cgi?id=184940
Source/WebCore:

rdar://problem/39664904

Reviewed by Jon Lee.

Add a new CSS property called "color-filter" as an experimental feature (off by default).

This property specifies a list of filter functions (as specified in https://drafts.fxtf.org/filter-effects/#supported-filter-functions)
to CSS colors, allowing authors to modify the provided page colors, for example to improve accessibility.
Filters that move pixels (i.e. blur() and drop-shadow()) are invalid in this property.

Colors will be mapped through the filter functions just before paint time, and gradient stop colors will also be mapped.

This patch adds support for parsing color-filter.

Test: css3/color-filters/color-filter-parsing.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyinStyle):

  • css/CSSProperties.json:
  • css/parser/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserMode.h:
  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::parseSingleValue):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::isColorFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeFilterFunction):
(WebCore::CSSPropertyParserHelpers::consumeFilter):

  • css/parser/CSSPropertyParserHelpers.h:
  • page/Settings.yaml:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint const):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::mutableColorFilter):
(WebCore::RenderStyle::colorFilter const):
(WebCore::RenderStyle::hasColorFilter const):
(WebCore::RenderStyle::setColorFilter):
(WebCore::RenderStyle::initialColorFilter):

  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
(WebCore::StyleRareInheritedData::hasColorFilters const):

  • rendering/style/StyleRareInheritedData.h:

Source/WebKit:

Reviewed by Jon Lee.

Add the color-filter property as an experimental feature.

  • Shared/WebPreferences.yaml:

LayoutTests:

Reviewed by Jon Lee.

  • css3/color-filters/color-filter-parsing-expected.txt: Added.
  • css3/color-filters/color-filter-parsing.html: Added.
4:19 PM Changeset in webkit [230977] by sbarati@apple.com
  • 12 edits in trunk

Keep around a pre-warmed process when doing process swap on navigation
https://bugs.webkit.org/show_bug.cgi?id=184765
<rdar://problem/39685099>

Reviewed by Ryosuke Niwa and Brady Eidson.

Source/WebKit:

This patch makes it so that WebProcessPool prewarms a process when process
swap on navigation is turned on. When we do a process swap on navigation,
we first try to grab a prewarmed process before creating a new one.

We try to be smart about when to create these processes. The initial heuristic
that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout
layout milestone. We're going to try to improve on this heuristic in:
https://bugs.webkit.org/show_bug.cgi?id=184899

This is a 40% progression on PLT with process swap on navigation turned on.

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _prewarmedWebProcessCount]):
(-[WKProcessPool _webProcessCountIgnoringPrewarmed]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::processForNavigation):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):
(WebKit::m_userMediaCaptureManagerProxy): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isInPrewarmedPool const):
(WebKit::WebProcessProxy::setIsInPrewarmedPool):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
4:06 PM Changeset in webkit [230976] by Simon Fraser
  • 14 edits in trunk

shape-outside and filter styles occur twice in the result of getComputedStyle
https://bugs.webkit.org/show_bug.cgi?id=184931

Reviewed by Antti Koivisto.

CSSPropertyShapeOutside and CSSPropertyFilter were duplicated in the list of computedProperties[]
used by getComputedStyle. Remove the duplication.
Source/WebCore:

Tested by existing tests.

  • css/CSSComputedStyleDeclaration.cpp:

LayoutTests:

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt:
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic-expected.txt:
3:29 PM Changeset in webkit [230975] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

MultiByOffset should emit one fewer branches in the case that the set of structures is proved already
https://bugs.webkit.org/show_bug.cgi?id=184923

Reviewed by Saam Barati.

If we have a MultiGetByOffset or MultiPutByOffset over a structure set that we've already proved
(i.e. we know that the object has one of those structures), then previously we would still emit a
switch with a case per structure along with a default case. That would mean one extra redundant
branch to check that whatever structure we wound up with belongs to the set. In that case, we
were already making the default case be an Oops.

One possible solution would be to say that the default case being Oops means that B3 doesn't need
to emit the extra branch. But that would require having B3 exploit the fact that Oops is known to
be unreachable. Although B3 IR semantics (webkit.org/docs/b3/intermediate-representation.html)
seem to allow this, I don't particularly like that style of optimization. I like Oops to mean
trap.

So, this patch makes FTL lowering turn one of the cases into the default, explicitly removing the
extra branch.

This is not a speed-up. But it makes the B3 IR for MultiByOffset a lot simpler, which should make
it easier to implement B3-level optimizations for MultiByOffset. It also makes the IR easier to
read.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiPutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::emitSwitchForMultiByOffset):

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

Unreviewed, rolling out r230971.
https://bugs.webkit.org/show_bug.cgi?id=184939

This fix was not appropriate (Requested by n_wang on #webkit).

Reverted changeset:

"AX: soft link libAccessibility.dylb"
https://bugs.webkit.org/show_bug.cgi?id=184919
https://trac.webkit.org/changeset/230971

2:54 PM Changeset in webkit [230973] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk/Source/WebCore

[Curl] Extract proxy settings into a separate class to hold advanced information.
https://bugs.webkit.org/show_bug.cgi?id=184714

It was simplely structure to hold proxy setting. To support advanced feature of proxy
such as authentication, more inteligent object is required to store intermediate state
or errors. That's why we've introduced new class for that purpose.

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-04-24
Reviewed by Youenn Fablet.

No new tests because there's no new behavior.

  • platform/Curl.cmake:
  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::enableProxyIfExists):
(WebCore::CurlContext::ProxyInfo::url const): Deleted.
(WebCore::CurlContext::setProxyInfo): Deleted.

  • platform/network/curl/CurlContext.h:

(WebCore::CurlContext::proxySettings const):
(WebCore::CurlContext::setProxySettings):
(WebCore::CurlContext::setProxyUserPass):
(WebCore::CurlContext::proxyInfo const): Deleted.
(WebCore::CurlContext::setProxyInfo): Deleted.

  • platform/network/curl/CurlProxySettings.cpp: Added.

(WebCore::CurlProxySettings::CurlProxySettings):
(WebCore::CurlProxySettings::rebuildUrl):
(WebCore::CurlProxySettings::setUserPass):
(WebCore::protocolIsInSocksFamily):
(WebCore::getProxyPort):
(WebCore::createProxyUrl):

  • platform/network/curl/CurlProxySettings.h: Added.

(WebCore::CurlProxySettings::CurlProxySettings):
(WebCore::CurlProxySettings::isEmpty const):
(WebCore::CurlProxySettings::mode const):
(WebCore::CurlProxySettings::url const):
(WebCore::CurlProxySettings::ignoreHosts const):
(WebCore::CurlProxySettings::user const):
(WebCore::CurlProxySettings::password const):

  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::didReceiveHeader):

  • platform/network/curl/CurlResponse.h:

(WebCore::CurlResponse::isolatedCopy const):

  • platform/network/curl/ResourceResponseCurl.cpp:

(WebCore::ResourceResponse::ResourceResponse):

2:52 PM Changeset in webkit [230972] by mark.lam@apple.com
  • 3 edits in trunk/JSTests

Gardening: test fix after r230863.
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>

Not reviewed.

  • stress/json-stringified-overflow-2.js:

(catch):

  • stress/json-stringified-overflow.js:

(catch):

2:27 PM Changeset in webkit [230971] by n_wang@apple.com
  • 5 edits in trunk/Source

AX: soft link libAccessibility.dylb
https://bugs.webkit.org/show_bug.cgi?id=184919

Reviewed by Chris Fleizach.

Source/WebKit:

Make sure we soft link the library so that it won't crash
if it's missing in the system.

  • Configurations/WebKit.xcconfig:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _updateAccessibilityEventsEnabled]):

Source/WTF:

  • wtf/cocoa/SoftLinking.h:
1:22 PM Changeset in webkit [230970] by youenn@apple.com
  • 4 edits
    2 adds in trunk

Throw in case of PeerConnection created for detached documents
https://bugs.webkit.org/show_bug.cgi?id=184921
<rdar://problem/39629216>

Reviewed by Eric Carlson.

Source/WebCore:

Add a check to ensure that page is not null when creating a peer connection backend.
In that case, the peer connection constructor will later on throw.
The same for setConfiguration is done.
Behavior is consistent with Chrome.

Test: webrtc/pc-detached-document.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::LibWebRTCPeerConnectionBackend):
(WebCore::LibWebRTCPeerConnectionBackend::setConfiguration):
(WebCore::libWebRTCProvider): Deleted.

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:

LayoutTests:

  • webrtc/pc-detached-document-expected.txt: Added.
  • webrtc/pc-detached-document.html: Added.
1:15 PM Changeset in webkit [230969] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[build.webkit.org] unit-tests fail when passwords.json is missing
https://bugs.webkit.org/show_bug.cgi?id=180390

Reviewed by Carlos Alberto Lopez Perez.

  • BuildSlaveSupport/build.webkit.org-config/loadConfig.py:

(loadBuilderConfig): Add support for test_mode. Load mock passwords in test_mode.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

(BuildBotConfigLoader._add_dependant_modules_to_sys_modules): Call _add_webkitpy_to_sys_path as well.
(BuildBotConfigLoader._mock_open): Deleted.
(BuildBotConfigLoader.load_config): Deleted.

12:51 PM Changeset in webkit [230968] by wilander@apple.com
  • 24 edits
    83 adds in trunk

From-Origin: Support for 'same' and 'same-site' response header, nested frame origin check
https://bugs.webkit.org/show_bug.cgi?id=184560
<rdar://problem/38901344>

Reviewed by Youenn Fablet and Daniel Bates.

LayoutTests/imported/w3c:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:

Removed console message since they are now suppressed.

Source/WebCore:

Tests: http/tests/from-origin/document-from-origin-same-accepted.html

http/tests/from-origin/document-from-origin-same-blocked.html
http/tests/from-origin/document-from-origin-same-site-accepted.html
http/tests/from-origin/document-from-origin-same-site-blocked.html
http/tests/from-origin/document-nested-from-origin-same-accepted.html
http/tests/from-origin/document-nested-from-origin-same-blocked.html
http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked.html
http/tests/from-origin/fetch-from-origin-same-accepted.html
http/tests/from-origin/fetch-from-origin-same-blocked.html
http/tests/from-origin/fetch-from-origin-same-site-accepted.html
http/tests/from-origin/fetch-from-origin-same-site-blocked.html
http/tests/from-origin/fetch-iframe-from-origin-same-accepted.html
http/tests/from-origin/fetch-iframe-from-origin-same-blocked.html
http/tests/from-origin/image-about-blank-from-origin-same-blocked.html
http/tests/from-origin/image-from-origin-same-accepted.html
http/tests/from-origin/image-from-origin-same-blocked.html
http/tests/from-origin/image-from-origin-same-site-accepted.html
http/tests/from-origin/image-from-origin-same-site-blocked.html
http/tests/from-origin/redirect-document-from-origin-same-blocked.html
http/tests/from-origin/redirect-fetch-from-origin-same-blocked.html
http/tests/from-origin/redirect-image-from-origin-same-blocked.html
http/tests/from-origin/redirect-script-from-origin-same-blocked.html
http/tests/from-origin/redirect-xhr-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked.html
http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked.html
http/tests/from-origin/script-from-origin-same-accepted.html
http/tests/from-origin/script-from-origin-same-blocked.html
http/tests/from-origin/script-from-origin-same-site-accepted.html
http/tests/from-origin/script-from-origin-same-site-blocked.html
http/tests/from-origin/top-frame-document-from-origin-same-accepted.php
http/tests/from-origin/xhr-from-origin-same-accepted.html
http/tests/from-origin/xhr-from-origin-same-blocked.html
http/tests/from-origin/xhr-from-origin-same-site-accepted.html
http/tests/from-origin/xhr-from-origin-same-site-blocked.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):

Outputs the error's localized description in a console message except when the destination
is FetchOptions::Destination::Serviceworker or FetchOptions::Destination::EmptyString.

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setFromOriginResponseHeaderEnabled):
(WebCore::RuntimeEnabledFeatures::fromOriginResponseHeaderEnabled const):

Added From-Origin support as an experimental feature.

  • platform/network/HTTPHeaderNames.in:

Added From-Origin.

  • platform/network/HTTPParsers.cpp:

(WebCore::parseFromOriginHeader):

Parses the From-Origin header, currently supporting 'Same' and 'Same-Site.'

  • platform/network/HTTPParsers.h:

Source/WebKit:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

Support for the two new load parameters:

  • shouldEnableFromOriginResponseHeader
  • frameAncestorOrigins
  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::areFrameAncestorsSameSite):
(WebKit::areFrameAncestorsSameOrigin):
(WebKit::shouldCancelCrossOriginLoad):

The three functions above implement the new blocking logic.

(WebKit::fromOriginResourceError):

Convenience function that returns an error with the From-Origin error message.

(WebKit::NetworkResourceLoader::didReceiveResponse):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::didFailLoading):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

Now checks for a From-Origin response header.

(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

Now checks for a From-Origin response header.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::encode):
(IPC::ArgumentCoder<Vector<RefPtr<SecurityOrigin>>>::decode):

Now encodes and decodes vectors of RefPtr<WebCore::SecurityOrigin>.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPreferences.yaml:

Added From-Origin support as an experimental feature.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetFromOriginResponseHeaderEnabled):
(WKPreferencesGetFromOriginResponseHeaderEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Sets the two new load parameters:

  • shouldEnableFromOriginResponseHeader
  • frameAncestorOrigins

Tools:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/HTTPParsers.cpp: Added.

(TestWebKitAPI::TEST):

Tests for From-Origin header parsing.

LayoutTests:

This patch implements significant parts of https://github.com/whatwg/fetch/issues/687.
We consume the From-Origin response header and only load the resource if:

  • The header is non-existent, empty, or invalid.
  • The header specifies 'same' and the resource's origin matches the originating document's origin and the origins up the frame tree.
  • The header specifies 'same-site' and the resource's eTLD+1 matches the originating document's eTLD+1 and the eTLD+1 of the documents up the frame tree.

This feature is experimental and off by default.

The http/tests/from-origin/ directory marked as [ Skip ].
Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.

  • http/tests/from-origin: Added.
  • http/tests/from-origin/document-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/document-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/document-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/document-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/document-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/document-nested-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/document-nested-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/document-nested-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/document-nested-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-data-iframe-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/fetch-iframe-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-about-blank-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/image-about-blank-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/image-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/image-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/image-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/image-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/redirect-document-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-document-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-fetch-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-fetch-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-image-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-image-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-script-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-script-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/redirect-xhr-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/redirect-xhr-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/resources: Added.
  • http/tests/from-origin/resources/fetch.php: Added.
  • http/tests/from-origin/resources/iframe.php: Added.
  • http/tests/from-origin/resources/iframeIPAddressFetch.html: Added.
  • http/tests/from-origin/resources/iframeLocalhostFetch.html: Added.
  • http/tests/from-origin/resources/image.php: Added.
  • http/tests/from-origin/resources/nestedIPAddressIframe.html: Added.
  • http/tests/from-origin/resources/nestedLocalhostIframe.html: Added.
  • http/tests/from-origin/resources/redirect.php: Added.
  • http/tests/from-origin/resources/script.php: Added.
  • http/tests/from-origin/resources/xhr.php: Added.
  • http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-cross-origin-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/sandboxed-sub-frame-nested-same-origin-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/script-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/script-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/script-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/script-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/script-from-origin-same-site-blocked.html: Added.
  • http/tests/from-origin/top-frame-document-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/top-frame-document-from-origin-same-accepted.php: Added.
  • http/tests/from-origin/xhr-from-origin-same-accepted-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-accepted.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-blocked-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-blocked.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-accepted-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-accepted.html: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-blocked-expected.txt: Added.
  • http/tests/from-origin/xhr-from-origin-same-site-blocked.html: Added.
  • platform/mac-wk2/TestExpectations:

Suppressed console output for imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html.

  • platform/wk2/TestExpectations:

The http/tests/from-origin/ directory marked as [ Pass ].

12:48 PM Changeset in webkit [230967] by commit-queue@webkit.org
  • 2 edits in trunk

Land test262 test results associated with Test262 runner
https://bugs.webkit.org/show_bug.cgi?id=184667

Patch by Leo Balter <Leo Balter> on 2018-04-24
Reviewed by Michael Saboff.

  • .gitignore: Ignore test262 results file.
12:48 PM Changeset in webkit [230966] by Antti Koivisto
  • 7 edits
    4 moves in trunk/Source/WebCore

Rename LayoutCtx.h/cpp to LayoutContext.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=184922

Reviewed by Zalan Bujtas.

To achieve this the existing LayoutContext class is renamed to FrameViewLayoutContext.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/LayoutContext.cpp: Copied from Source/WebCore/layout/LayoutCtx.cpp.
  • layout/LayoutContext.h: Copied from Source/WebCore/layout/LayoutCtx.h.
  • layout/LayoutCtx.cpp: Removed.
  • layout/LayoutCtx.h: Removed.
  • page/FrameView.cpp:

(WebCore::FrameView::shouldDeferScrollUpdateAfterContentSizeChange):
(WebCore::FrameView::updateLayoutViewport):
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
(WebCore::FrameView::updateCompositingLayersAfterScrolling):
(WebCore::FrameView::availableContentSizeChanged):

  • page/FrameView.h:
  • page/FrameViewLayoutContext.cpp: Copied from Source/WebCore/page/LayoutContext.cpp.

(WebCore::LayoutScope::LayoutScope):
(WebCore::FrameViewLayoutContext::FrameViewLayoutContext):
(WebCore::FrameViewLayoutContext::~FrameViewLayoutContext):
(WebCore::FrameViewLayoutContext::layout):
(WebCore::FrameViewLayoutContext::runOrScheduleAsynchronousTasks):
(WebCore::FrameViewLayoutContext::runAsynchronousTasks):
(WebCore::FrameViewLayoutContext::flushAsynchronousTasks):
(WebCore::FrameViewLayoutContext::reset):
(WebCore::FrameViewLayoutContext::needsLayout const):
(WebCore::FrameViewLayoutContext::setNeedsLayout):
(WebCore::FrameViewLayoutContext::enableSetNeedsLayout):
(WebCore::FrameViewLayoutContext::disableSetNeedsLayout):
(WebCore::FrameViewLayoutContext::scheduleLayout):
(WebCore::FrameViewLayoutContext::unscheduleLayout):
(WebCore::FrameViewLayoutContext::scheduleSubtreeLayout):
(WebCore::FrameViewLayoutContext::layoutTimerFired):
(WebCore::FrameViewLayoutContext::convertSubtreeLayoutToFullLayout):
(WebCore::FrameViewLayoutContext::setSubtreeLayoutRoot):
(WebCore::FrameViewLayoutContext::canPerformLayout const):
(WebCore::FrameViewLayoutContext::applyTextSizingIfNeeded):
(WebCore::FrameViewLayoutContext::updateStyleForLayout):
(WebCore::FrameViewLayoutContext::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::FrameViewLayoutContext::startLayoutAtMainFrameViewIfNeeded):
(WebCore::FrameViewLayoutContext::layoutDelta const):
(WebCore::FrameViewLayoutContext::addLayoutDelta):
(WebCore::FrameViewLayoutContext::layoutDeltaMatches):
(WebCore::FrameViewLayoutContext::layoutState const):
(WebCore::FrameViewLayoutContext::pushLayoutState):
(WebCore::FrameViewLayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::FrameViewLayoutContext::popLayoutState):
(WebCore::FrameViewLayoutContext::checkLayoutState):
(WebCore::FrameViewLayoutContext::frame const):
(WebCore::FrameViewLayoutContext::view const):
(WebCore::FrameViewLayoutContext::renderView const):
(WebCore::FrameViewLayoutContext::document const):
(WebCore::LayoutContext::LayoutContext): Deleted.
(WebCore::LayoutContext::~LayoutContext): Deleted.
(WebCore::LayoutContext::layout): Deleted.
(WebCore::LayoutContext::runOrScheduleAsynchronousTasks): Deleted.
(WebCore::LayoutContext::runAsynchronousTasks): Deleted.
(WebCore::LayoutContext::flushAsynchronousTasks): Deleted.
(WebCore::LayoutContext::reset): Deleted.
(WebCore::LayoutContext::needsLayout const): Deleted.
(WebCore::LayoutContext::setNeedsLayout): Deleted.
(WebCore::LayoutContext::enableSetNeedsLayout): Deleted.
(WebCore::LayoutContext::disableSetNeedsLayout): Deleted.
(WebCore::LayoutContext::scheduleLayout): Deleted.
(WebCore::LayoutContext::unscheduleLayout): Deleted.
(WebCore::LayoutContext::scheduleSubtreeLayout): Deleted.
(WebCore::LayoutContext::layoutTimerFired): Deleted.
(WebCore::LayoutContext::convertSubtreeLayoutToFullLayout): Deleted.
(WebCore::LayoutContext::setSubtreeLayoutRoot): Deleted.
(WebCore::LayoutContext::canPerformLayout const): Deleted.
(WebCore::LayoutContext::applyTextSizingIfNeeded): Deleted.
(WebCore::LayoutContext::updateStyleForLayout): Deleted.
(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded): Deleted.
(WebCore::LayoutContext::startLayoutAtMainFrameViewIfNeeded): Deleted.
(WebCore::LayoutContext::layoutDelta const): Deleted.
(WebCore::LayoutContext::addLayoutDelta): Deleted.
(WebCore::LayoutContext::layoutDeltaMatches): Deleted.
(WebCore::LayoutContext::layoutState const): Deleted.
(WebCore::LayoutContext::pushLayoutState): Deleted.
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded): Deleted.
(WebCore::LayoutContext::popLayoutState): Deleted.
(WebCore::LayoutContext::checkLayoutState): Deleted.
(WebCore::LayoutContext::frame const): Deleted.
(WebCore::LayoutContext::view const): Deleted.
(WebCore::LayoutContext::renderView const): Deleted.
(WebCore::LayoutContext::document const): Deleted.

  • page/FrameViewLayoutContext.h: Copied from Source/WebCore/page/LayoutContext.h.

(WebCore::LayoutContext::startDisallowingLayout): Deleted.
(WebCore::LayoutContext::endDisallowingLayout): Deleted.
(WebCore::LayoutContext::layoutPhase const): Deleted.
(WebCore::LayoutContext::isLayoutNested const): Deleted.
(WebCore::LayoutContext::isLayoutPending const): Deleted.
(WebCore::LayoutContext::isInLayout const): Deleted.
(WebCore::LayoutContext::isInRenderTreeLayout const): Deleted.
(WebCore::LayoutContext::inPaintableState const): Deleted.
(WebCore::LayoutContext::layoutCount const): Deleted.
(WebCore::LayoutContext::subtreeLayoutRoot const): Deleted.
(WebCore::LayoutContext::clearSubtreeLayoutRoot): Deleted.
(WebCore::LayoutContext::resetFirstLayoutFlag): Deleted.
(WebCore::LayoutContext::didFirstLayout const): Deleted.
(WebCore::LayoutContext::setNeedsFullRepaint): Deleted.
(WebCore::LayoutContext::needsFullRepaint const): Deleted.
(WebCore::LayoutContext::isPaintOffsetCacheEnabled const): Deleted.
(WebCore::LayoutContext::layoutDisallowed const): Deleted.
(WebCore::LayoutContext::isLayoutSchedulingEnabled const): Deleted.
(WebCore::LayoutContext::inAsynchronousTasks const): Deleted.
(WebCore::LayoutContext::disablePaintOffsetCache): Deleted.
(WebCore::LayoutContext::enablePaintOffsetCache): Deleted.

  • page/LayoutContext.cpp: Removed.
  • page/LayoutContext.h: Removed.
  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computePaginationInformation):
(WebCore::LayoutState::establishLineGrid):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):

  • rendering/LayoutState.h:
12:19 PM Changeset in webkit [230965] by mark.lam@apple.com
  • 2 edits in trunk/Source/WebCore

Need to acquire the VM lock before calling toNumber on a JSValue.
https://bugs.webkit.org/show_bug.cgi?id=184924
<rdar://problem/39690679>

Reviewed by Saam Barati.

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertValueToObjcValue):

11:54 AM Changeset in webkit [230964] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG CSE should know how to decay a MultiGetByOffset
https://bugs.webkit.org/show_bug.cgi?id=159859

Reviewed by Keith Miller.

This teaches Node::remove() how to decay a MultiGetByOffset to a CheckStructure, so that
clobberize() can report a def() for MultiGetByOffset.

This is a slight improvement to codegen in splay because splay is a heavy user of
MultiGetByOffset. It uses it redundantly in one of its hot functions (the function called
"splay_"). I don't see a net speed-up in the benchmark. However, this is just a first step to
removing MultiXByOffset-related redundancies, which by my estimates account for 16% of
splay's time.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::remove):
(JSC::DFG::Node::removeWithoutChecks):
(JSC::DFG::Node::replaceWith):
(JSC::DFG::Node::replaceWithWithoutChecks):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::replaceWith): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
11:15 AM Changeset in webkit [230963] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r221839): Fix requests with FormData containing empty files
https://bugs.webkit.org/show_bug.cgi?id=184490
<rdar://problem/39385169>

Patch by Tadeu Zagallo <Tadeu Zagallo> on 2018-04-24
Reviewed by Geoffrey Garen.

Source/WebCore:

We should not append the blob to the FormData when it is a file but has no path. It broke
the submission since the request was failing to read the file in FormDataStreamCFNet.h:156

Test: http/tests/local/formdata/send-form-data-with-empty-file.html

  • platform/network/FormData.cpp:

(WebCore::FormData::appendMultiPartFileValue):

LayoutTests:

Verify that the final boundary is present in the request body when submitting FormData containing an empty file.

  • http/tests/local/formdata/send-form-data-with-empty-file-expected.txt: Added.
  • http/tests/local/formdata/send-form-data-with-empty-file.html: Added.
10:50 AM Changeset in webkit [230962] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Fix project file after r230931.

  • WebCore.xcodeproj/project.pbxproj:
10:32 AM Changeset in webkit [230961] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Update API docs with information on which run loop the VM will use
https://bugs.webkit.org/show_bug.cgi?id=184900
<rdar://problem/39166054>

Reviewed by Mark Lam.

  • API/JSContextRef.h:
  • API/JSVirtualMachine.h:
10:17 AM Changeset in webkit [230960] by Dewei Zhu
  • 9 edits
    1 add in trunk/Websites/perf.webkit.org

Tool scripts should not use PrivilegedAPI from 'public/v3/privileged-api.js'.
https://bugs.webkit.org/show_bug.cgi?id=184766

Reviewed by Ryosuke Niwa.

For tools, we should not use PrivilegedAPI for tools as current PrivilegedAPI
is used by UI and it is unnecessary to generate CSRF token for tools.
Will post a followup patch that creates a PrivilegedAPI used by tools.
Make a change on TestServer.inject and MockRemoteAPI.inject to allow specifying
BrowserPrivilegedAPI or NodePrivilegedAPI in the test. Currently defaults to
BrowserPrivilegedAPI as this is the test behavior before this change.

  • server-tests/resources/common-operations.js: Allow passing type of privileged api

information to TestServer.inject.

  • server-tests/resources/test-server.js: Conditionally inject PrivilegedAPI based on

type of privileged api.
(TestServer.prototype.inject):
(TestServer):

  • server-tests/tools-buildbot-triggerable-tests.js: Updated 'prepareServerTest' invocation.
  • server-tests/tools-os-build-fetcher-tests.js: Updated 'prepareServerTest' invocation.
  • server-tests/tools-sync-buildbot-integration-tests.js: Temporarily injecting

BrowserPrivilegedAPI for mocking UploadedFile. The actual script does not rely on
BrowserPrivilegedAPI at all.
(async.createTestGroupWihPatch):
(beforeEach):

  • tools/js/privileged-api.js: Added NodePrivilegedAPI

(NodePrivilegedAPI.prototype.sendRequest):
(NodePrivilegedAPI.configure): Configure the slave name and password.
(NodePrivilegedAPI):

  • tools/js/v3-models.js: Removed the import of PrivilegedAPI.
  • unit-tests/privileged-api-tests.js:. Added unit tests for NodePrivilegedAPI.
  • unit-tests/resources/mock-remote-api.js: Conditionally inject PrivilegedAPI based on

the type of privileged api.
(MockRemoteAPI.inject):

9:39 AM Changeset in webkit [230959] by jmarcell@apple.com
  • 20 edits
    2 deletes in tags/Safari-606.1.15

Revert r230808. rdar://problem/39671220

9:17 AM Changeset in webkit [230958] by jer.noble@apple.com
  • 12 edits in trunk/Source

Don't add system framework paths to FRAMEWORK_SEARCH_PATHS
https://bugs.webkit.org/show_bug.cgi?id=184786

Reviewed by Tim Horton.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • Configurations/PAL.xcconfig:

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:
  • DerivedSources.make:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:
8:58 AM Changeset in webkit [230957] by Ryan Haddad
  • 8 edits in trunk/Source/WebKit

Unreviewed, rolling out r230938.

Introduced two ProcessSwap API test failures.

Reverted changeset:

"Keep around a pre-warmed process when doing process swap on
navigation"
https://bugs.webkit.org/show_bug.cgi?id=184765
https://trac.webkit.org/changeset/230938

8:53 AM Changeset in webkit [230956] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

$vm.totalGCTime() should be a thing
https://bugs.webkit.org/show_bug.cgi?id=184916

Reviewed by Sam Weinig.

When debugging regressions in tests that are GC heavy, it's nice to be able to query the total
time spent in GC to determine if the regression is because the GC got slower.

This adds $vm.totalGCTime(), which tells you the total time spent in GC, in seconds.

  • heap/Heap.cpp:

(JSC::Heap::runEndPhase):

  • heap/Heap.h:

(JSC::Heap::totalGCTime const):

  • tools/JSDollarVM.cpp:

(JSC::functionTotalGCTime):
(JSC::JSDollarVM::finishCreation):

8:27 AM Changeset in webkit [230955] by zandobersek@gmail.com
  • 13 edits in trunk/Source

[CoordGraphics] Remove dead fixed layer code
https://bugs.webkit.org/show_bug.cgi?id=184912

Reviewed by Michael Catanzaro.

Source/WebCore:

Remove CoordinatedGraphicsLayer::setFixedToViewport() and the
corresponding attribute on the CoordinatedGraphicsLayerState struct.
The method is not called anywhere since r230952.

CoordinatedGraphicsState struct also loses the scrollPosition attribute
that also isn't used anymore.

Changes to GraphicsLayerTextureMapper class mirror those made to
CoordinatedGraphicsLayer, removing support for the fixed-to-viewport
attribute. This too was not called from anywhere.

All that enables us removing fixed-to-viewport handling in the
TextureMapperLayer class. Along with related changes in the
CoordinatedGraphicsScene class, we're able to remove a bunch of methods
and member variables that are not used or needed anymore.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::setFixedToViewport): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::setFixedToViewport): Deleted.
(WebCore::TextureMapperLayer::isAncestorFixedToViewport const): Deleted.
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::setFixedToViewport): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

(WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):

Source/WebKit:

Drop the unused fixed layer handling code in CoordinatedGraphicsScene.
The m_fixedLayers container can be removed, along with the
adjustPositionForFixedLayers() method that operated on that container.

This was the only method that operated with the m_scrollPosition member
variable and the contentsPosition argument that's passed to the
CoordinatedGraphicsScene::paintToCurrentGLContext() method. Both of
these are removed, along with the scrollPosition attribute on the
CoordinatedGraphicsState struct.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::deleteLayer):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::renderLayerTree):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):

8:26 AM Changeset in webkit [230954] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r230950): Faulty commit sequencing in CoordinatedGraphicsScene
https://bugs.webkit.org/show_bug.cgi?id=184917

Reviewed by Michael Catanzaro.

After r230950, current animation state for a given layer is also taken
into account when determining whether or not the layer requires a
backing store. For that to work properly, all the animation state has
to be updated before the backing store work. This patch changes the
order of helper method invocations in
CoordinatedGraphicsScene::setLayerState() to address that.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):

4:01 AM Changeset in webkit [230953] by Carlos Garcia Campos
  • 61 edits
    5 copies
    7 adds in trunk

Unreviewed. Update W3C WebDriver imported tests.

Tools:

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py:

(WebDriverW3CExecutor.init):

WebDriverTests:

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/client.py:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/README.rst:
  • imported/w3c/tools/wptrunner/requirements_chrome.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: Added.
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/requirements_webkit.txt: Added.
  • imported/w3c/tools/wptrunner/tox.ini:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/init.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/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: Added.
  • 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: Added.
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/base.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executormarionette.py:
  • 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/executorwebkit.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/protocol.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/pytestrunner/runner.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette.js:
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_marionette_resume.js: Added.
  • imported/w3c/tools/wptrunner/wptrunner/executors/testharness_webdriver_resume.js:
  • imported/w3c/tools/wptrunner/wptrunner/testdriver-extra.js:
  • imported/w3c/tools/wptrunner/wptrunner/testloader.py:
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/base.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_products.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/update/metadata.py:
  • imported/w3c/tools/wptrunner/wptrunner/update/update.py:
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptcommandline.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/wpttest.py:
  • imported/w3c/webdriver/tests/actions/modifier_click.py:
  • imported/w3c/webdriver/tests/actions/mouse_dblclick.py:
  • imported/w3c/webdriver/tests/actions/mouse_pause_dblclick.py: Added.
  • imported/w3c/webdriver/tests/actions/special_keys.py:
  • imported/w3c/webdriver/tests/contexts/maximize_window.py:
  • imported/w3c/webdriver/tests/cookies/add_cookie.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_element.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_element_from_element.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_elements.py:
  • imported/w3c/webdriver/tests/element_retrieval/find_elements_from_element.py:
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/execute_async_script/collections.py: Added.
  • imported/w3c/webdriver/tests/execute_async_script/user_prompts.py:
  • imported/w3c/webdriver/tests/execute_script/collections.py: Added.
  • imported/w3c/webdriver/tests/execute_script/user_prompts.py:
  • imported/w3c/webdriver/tests/fullscreen_window.py:
  • imported/w3c/webdriver/tests/interaction/element_clear.py:
  • imported/w3c/webdriver/tests/minimize_window.py:
  • imported/w3c/webdriver/tests/set_window_rect.py:
  • imported/w3c/webdriver/tests/support/fixtures.py:
2:24 AM Changeset in webkit [230952] by zandobersek@gmail.com
  • 13 edits
    1 delete in trunk/Source

[CoordGraphics] Remove unused fixed layout functionality
https://bugs.webkit.org/show_bug.cgi?id=184908

Reviewed by Carlos Garcia Campos.

Ports using the CoordinatedGraphics subsystem don't expose fixed layout
support. As such, we're able to remove a lot of unused code and
unnecessary USE(COORDINATED_GRAPHICS) special cases in generic sections
in both WebCore and WebKit.

Source/WebCore:

With fixed layout not available for use to users of the GTK+ and WPE
ports, we can remove the ScrollingCoordinatorCoordinatedGraphics
implementation, making room for an implementation that inherits from
AsyncScrollingCoordinator in the future. For that purpose the
ScrollingCoordinator::create() function is moved into the
ScrollingCoordinatorCoordinatedGraphics.cpp file already.

This also enables removing delegatedScrollRequested() method from
HostWindow and the inheriting ChromeClient interface.

  • loader/EmptyClients.h:
  • page/Chrome.cpp:

(WebCore::Chrome::delegatedScrollRequested): Deleted.

  • page/Chrome.h:
  • page/ChromeClient.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::create):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinator::create):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::ScrollingCoordinatorCoordinatedGraphics): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::attachToStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::clearStateTree): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeLayer): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateNodeViewportConstraints): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate): Deleted.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h: Removed.
  • platform/HostWindow.h:

Source/WebKit:

Remove USE(COORDINATED_GRAPHICS) special-casing from the
WebPage::setUseFixedLayout() method. This is not possible to enable for
the GTK+ and WPE ports that use the CoordinatedGraphics subsytem via
API. Removing all this unlocks removing considerable amounts of dead
code and complexities in CoordinatedGraphics.

WebChromeClient::delegatedScrollRequested() method is removed, along
with the WebPage::pageDidRequestScroll() method that was only called
from there.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::delegatedScrollRequested): Deleted.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setUseFixedLayout):
(WebKit::WebPage::pageDidRequestScroll): Deleted.

  • WebProcess/WebPage/WebPage.h:
1:31 AM Changeset in webkit [230951] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Apple Internal build following r230922
(https://bugs.webkit.org/show_bug.cgi?id=184737)

Cast the return value of std::map::size() to a size_t before logging it with format specifier
"%zu". std::map::size() returns a size_type. According to <http://en.cppreference.com/w/cpp/container/map>
size_type is "usually a size_t", but it may not be. An Apple Internal debug builder reports
that size_type = unsigned int != unsigned long = size_t.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

1:15 AM Changeset in webkit [230950] by zandobersek@gmail.com
  • 5 edits in trunk/Source

[CoordGraphics] Avoid painting backing stores for zero-opacity layers
https://bugs.webkit.org/show_bug.cgi?id=184143

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Skip generating backing stores for layers that have zero opacity and do
not animate the opacity value. In the current CoordinatedGraphics system
this can end up saving loads of memory on Web content that deploys a
large number of such elements.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::layerShouldHaveBackingStore):
Mirror CoordinatedGraphicsLayer's backing store requirements.

1:06 AM Changeset in webkit [230949] by zandobersek@gmail.com
  • 4 edits
    1 delete in trunk

[WPE] Remove libgbm dependency
https://bugs.webkit.org/show_bug.cgi?id=184906

Reviewed by Carlos Garcia Campos.

.:

Remove the libgbm CMake search module. It's not necessary anymore
after r230562.

  • Source/cmake/FindLibGBM.cmake: Removed.

Tools:

Stop searching for libgbm, using its compiler flags for the
HeadlessViewBackend compilation and linking against the .so object.
This is not necessary anymore after r230562 switched to a different
backend implementation for testing.

  • wpe/HeadlessViewBackend/CMakeLists.txt:
  • wpe/install-dependencies:
1:02 AM Changeset in webkit [230948] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Apple Internal build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:
12:51 AM Changeset in webkit [230947] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Another attempt to fix the Mac and iOS build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:

(WebCore::policyProperties):

12:47 AM Changeset in webkit [230946] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Mac and iOS build following r230944
(https://bugs.webkit.org/show_bug.cgi?id=159464)

  • platform/network/mac/CookieJarMac.mm:

(WebCore::policyProperties):

12:44 AM Changeset in webkit [230945] by dbates@webkit.org
  • 2 edits in trunk/Source

Fix up order of ChangeLog entries following r230944.

12:36 AM Changeset in webkit [230944] by dbates@webkit.org
  • 56 edits
    2 copies
    56 adds in trunk

Source/WebCore:
Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Patch by Youenn Fablet <youenn@apple.com> on 2018-04-23
Reviewed by Chris Dumez.

No change of behavior yet since we do not use these parameters in NetworkProcess yet.

Add PreflightPolicy and CSP response headers as ResourceLoaderOptions.
This allows passing them from DocumentThreadableLoader to WebLoaderStrategy.

Allow getting the original headers from a SubresourceLoader.
This allows passing them from DocumentThreadableLoader down to WebLoaderStrategy.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::startLoadingBlobURL):
(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):

  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::originalHeaders const):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):
(WebCore::ThreadableLoaderOptions::isolatedCopy const):

  • loader/ThreadableLoader.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebCore/PAL:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Forward declare some SPI.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:
Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Patch by Youenn Fablet <youenn@apple.com> on 2018-04-23
Reviewed by Chris Dumez.

Set all required NetworkResourceLoadParameters for asynchronous loads.
This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier.

Update NetworkLoadChecker to handle preflight policy.
This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy.
But this will be needed for XHR/fetch/EventSource loads.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::checkCORSRequest):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::create):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

Source/WebKitLegacy/mac:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

Source/WebKitLegacy/win:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

  • WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:
Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
Same-Site cookies.

The following tests and utilities were taken in whole or in part from Blink:

http/tests/cookies/resources/echo-json.php
http/tests/cookies/resources/post-cookies-onmessage.php
http/tests/cookies/resources/post-cookies-to-opener.php
http/tests/cookies/resources/testharness-helpers.js
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site.html

The following files were derived from tests taken from Blink:

http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

  • TestExpectations: Skip on all ports for now.
  • http/tests/cookies/resources/cookie-utilities.js: Added.

(createCookie):
(setBaseDocumentWhenFetchingDOMCookies):
(setDOMCookie):

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/cookies/resources/echo-json.php: Added.
  • http/tests/cookies/resources/post-cookies-onmessage.php: Added.
  • http/tests/cookies/resources/post-cookies-to-opener.php: Added.
  • http/tests/cookies/resources/testharness-helpers.js: Added.

(clearKnownCookies):

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
  • http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post.html: Added.
  • http/tests/cookies/same-site/popup-cross-site.html: Added.
  • http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site.html: Added.
  • http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
  • http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
  • platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.

Apr 23, 2018:

11:33 PM Changeset in webkit [230943] by Carlos Garcia Campos
  • 4 edits in trunk/Tools

[GLIB] Make it possible to use a different timeout for slow test cases in GLib tests
https://bugs.webkit.org/show_bug.cgi?id=184816

Reviewed by Michael Catanzaro.

Pass a function from api test runner to glib test runner to check if a test is slow and use the given slow
timeout.

  • TestWebKitAPI/glib/TestExpectations.json:
  • glib/api_test_runner.py:

(TestRunner._run_test_glib.is_slow_test):
(TestRunner._run_test_glib):

  • glib/glib_test_runner.py:

(GLibTestRunner.init):
(GLibTestRunner._stop_timeout):
(GLibTestRunner._subtest_start):
(GLibTestRunner._subtest_end):

8:22 PM Changeset in webkit [230942] by youenn@apple.com
  • 18 edits in trunk/Source

Make WebLoaderStrategy send to NetworkResourceLoader necessary parameters to handle full loads in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184763

Reviewed by Chris Dumez.

Source/WebCore:

No change of behavior yet since we do not use these parameters in NetworkProcess yet.

Add PreflightPolicy and CSP response headers as ResourceLoaderOptions.
This allows passing them from DocumentThreadableLoader to WebLoaderStrategy.

Allow getting the original headers from a SubresourceLoader.
This allows passing them from DocumentThreadableLoader down to WebLoaderStrategy.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::startLoadingBlobURL):
(WebCore::FetchLoader::start):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):

  • loader/ResourceLoaderOptions.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::originalHeaders const):

  • loader/SubresourceLoader.h:
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions):
(WebCore::ThreadableLoaderOptions::isolatedCopy const):

  • loader/ThreadableLoader.h:
  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

Set all required NetworkResourceLoadParameters for asynchronous loads.
This includes preflight policy, CSP response headers, SecurityOrigin and content blockers identifier.

Update NetworkLoadChecker to handle preflight policy.
This is not needed right now since sync XHR and ping loads are using the default ConsiderPreflight policy.
But this will be needed for XHR/fetch/EventSource loads.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
(WebKit::NetworkLoadChecker::checkCORSRequest):

  • NetworkProcess/NetworkLoadChecker.h:

(WebKit::NetworkLoadChecker::create):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

7:45 PM Changeset in webkit [230941] by Wenson Hsieh
  • 14 edits
    2 adds in trunk

[Extra zoom mode] REGRESSION(230860) Unable to change time input values using UI
https://bugs.webkit.org/show_bug.cgi?id=184901
<rdar://problem/39664797>

Reviewed by Tim Horton.

Source/WebKit:

Fixes the bug by falling back to setting the value of the focused input element in the case where the selection
is not editable. Also adds plumbing to make time pickers testable in extra zoom mode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setTimePickerValueToHour:minute:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setTimePickerValueToHour:minute:]):

Add plumbing to make it possible for WebKitTestRunner to simulate picking a time from the given hours and
minutes. This is currently only implemented for extra zoom mode, but may be implemented for UIKit's time picker
as well in the future by adjusting -[WKContentView setTimePickerValueToHour:minute:].

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setTextAsync):

Tools:

Introduce a new UIScriptController method to set the value of a currently focused input of type time, by
interacting with the UI. See WebKit ChangeLogs for more detail.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setTimePickerValue):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setTimePickerValue):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::setTimePickerValue):

LayoutTests:

Adds a basic test to verify that tapping on an input of type time and choosing a time actually changes the
value of the input. Also adds a new UIHelper function to set the value of the currently focused input of type
time to the given hours and minutes.

  • fast/forms/extrazoom/time-picker-value-change-expected.txt: Added.
  • fast/forms/extrazoom/time-picker-value-change.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.setTimePickerValue):
(window.UIHelper):

7:34 PM Changeset in webkit [230940] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Revision information returned by querying measurement set api with analysis task id should contain commit order.
https://bugs.webkit.org/show_bug.cgi?id=184902

Reviewed by Ryosuke Niwa

This is a bug fix for r230719 which does not cover the case while querying measurement-set.php?analysisTask=$task_id

  • public/api/measurement-set.php: AnalysisResultsFetcher.fetch_commits results should contains commit order.
  • server-tests/api-measurement-set-tests.js: Added unit test for this change.
7:30 PM Changeset in webkit [230939] by Chris Dumez
  • 4 edits in trunk/LayoutTests

Unreviewed, fix a few tests that became flaky after r230919.

  • fast/events/beforeunload-alert-handled-keydown.html:
  • fast/events/beforeunload-alert-no-user-interaction.html:
  • fast/events/beforeunload-alert-user-interaction.html:
7:03 PM Changeset in webkit [230938] by sbarati@apple.com
  • 8 edits in trunk/Source/WebKit

Keep around a pre-warmed process when doing process swap on navigation
https://bugs.webkit.org/show_bug.cgi?id=184765

Reviewed by Ryosuke Niwa.

This patch makes it so that WebProcessPool prewarms a process when process
swap on navigation is turned on. When we do a process swap on navigation,
we first try to grab a prewarmed process before creating a new one.

We try to be smart about when to create these processes. The initial heuristic
that this patch chooses is when we reach the DidFirstVisuallyNonEmptyLayout
layout milestone. We're going to try to improve on this heuristic in:
https://bugs.webkit.org/show_bug.cgi?id=184899

This is a 40% progression on PLT with process swap on navigation turned on.

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::notifyProcessPoolToPrewarm):
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::tryTakePrewarmedProcess):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::processForNavigation):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::create):
(WebKit::WebProcessProxy::WebProcessProxy):
(WebKit::m_isInPrewarmedPool):
(WebKit::m_userMediaCaptureManagerProxy): Deleted.

  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::isInPrewarmedPool const):
(WebKit::WebProcessProxy::setIsInPrewarmedPool):

6:07 PM Changeset in webkit [230937] by Michael Catanzaro
  • 2 edits in trunk

[GTK] check target looks broken
https://bugs.webkit.org/show_bug.cgi?id=184407

Reviewed by Carlos Garcia Campos.

It's pretty clear that nobody has been using check for a long time.

We got rid of check-for-webkitdom-api-breaks a long time ago, when we stopped autogenerating
the DOM API, but it's still used in the check target. Fix this.

Also, the check target for some reason runs itself from the Source subdirectory of the
builddir, but the test script expects to be run from the toplevel build directory. Fix this
too.

Add VERBATIM for good measure.

  • Source/PlatformGTK.cmake:
6:07 PM Changeset in webkit [230936] by Michael Catanzaro
  • 5 edits in trunk/Source

[WPE][GTK] Remove WlUniquePtr<wl_display> footgun
https://bugs.webkit.org/show_bug.cgi?id=184405

Reviewed by Carlos Garcia Campos.

Source/WebCore:

WlUniquePtr<wl_display> is a pretty big footgun because there are two different destruction
functions -- wl_display_disconnect() and wl_display_destroy() -- and which one you need to
use depends on how the wl_display() was created, and WebKit uses both in different places.
So WlUniquePtr<wl_display> is pretty unsafe. See bug #176490 for an example of fun caused
by using it incorrectly.

Let's use std::unique_ptr with custom deleter functors instead.

  • platform/graphics/wayland/WlUniquePtr.h:

Source/WebKit:

Switch to std::unique_ptr.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::WaylandCompositor):

  • UIProcess/gtk/WaylandCompositor.h:

(WebKit::WaylandCompositor::DisplayDeleter::operator()):

5:37 PM Changeset in webkit [230935] by Ryan Haddad
  • 56 edits
    8 deletes in trunk

Unreviewed, rolling out r230921, r230923, r230924, r230932,
and r230934.
https://bugs.webkit.org/show_bug.cgi?id=184903

Builds still broken (Requested by ryanhaddad on #webkit).

Reverted changesets:

"Implement Same-Site cookies"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230921

"Attempt to fix the build after r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230923

"Attempt to fix the Mac and iOS build after r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230924

"Another attempt to fix the Windows build following r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230932

"Attempt to fix the Apple Internal build following r230921"
https://bugs.webkit.org/show_bug.cgi?id=159464
https://trac.webkit.org/changeset/230934

Patch by Commit Queue <commit-queue@webkit.org> on 2018-04-23

5:26 PM Changeset in webkit [230934] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit

Attempt to fix the Apple Internal build following r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Forward declare some SPI. Add availability guard.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
5:13 PM Changeset in webkit [230933] by Antti Koivisto
  • 6 edits
    3 deletes in trunk

REGRESSION (r220112): reCAPTCHA images render off screen on Twitch.tv app Log In or Sign Up
https://bugs.webkit.org/show_bug.cgi?id=182859
<rdar://problem/37595065>

Source/WebCore:

Reviewed by Zalan Bujtas.

Roll out this change from the trunk as the issue it fixed no longer occurs.

  • css/MediaQueryEvaluator.cpp:

(WebCore::orientationEvaluate):
(WebCore::aspectRatioEvaluate):
(WebCore::heightEvaluate):
(WebCore::widthEvaluate):

  • page/FrameView.cpp:

(WebCore::FrameView::layoutSizeForMediaQuery const): Deleted.

  • page/FrameView.h:
  • page/LayoutContext.cpp:

(WebCore::LayoutContext::handleLayoutWithFrameFlatteningIfNeeded):

LayoutTests:

Reviewed by Zalan Bujtas

  • fast/frames/flattening/media-query-growing-content-expected.txt: Removed.
  • fast/frames/flattening/media-query-growing-content.html: Removed.
  • fast/frames/flattening/resources/media-query-min-height-with-flattening.html: Removed.
4:56 PM Changeset in webkit [230932] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Another attempt to fix the Windows build following r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass dictionary key name using a string instead of a constant and pass CFURL* to
siteForCookies().

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::ResourceRequest::doUpdatePlatformRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):

4:08 PM Changeset in webkit [230931] by Alan Bujtas
  • 16 edits
    37 adds in trunk

[LayoutFormattingContext] Initial commit.
https://bugs.webkit.org/show_bug.cgi?id=184896

Reviewed by Antti Koivisto.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

This is the initial commit of the new layout component -class definitions only (and mostly public functions).
See the header files (and Tools/LayoutReloaded project) for more information.

Top level layout.
rootContainer = TreeBuilder::createLayoutTree(document);
rootDisplayBox = new Display::Box();
rootDisplayBox->setSize(viewportSize);
layoutContext = new LayoutContext(rootContainer, rootDisplayBox);
layoutContext->layout(rootContainer);

Driven by build time flag (currently off). Not testable yet.

  • Configurations/FeatureDefines.xcconfig:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • layout/BlockFormatting/BlockFormattingContext.cpp: Added.
  • layout/BlockFormatting/BlockFormattingContext.h: Added.
  • layout/BlockFormatting/BlockFormattingState.cpp: Added.
  • layout/BlockFormatting/BlockFormattingState.h: Added.
  • layout/BlockFormatting/BlockMarginCollapse.cpp: Added.
  • layout/BlockFormatting/BlockMarginCollapse.h: Added.
  • layout/DisplayTree/DisplayBox.cpp: Added.
  • layout/DisplayTree/DisplayBox.h: Added.
  • layout/FloatingContext.cpp: Added.
  • layout/FloatingContext.h: Added.
  • layout/FloatingState.cpp: Added.
  • layout/FloatingState.h: Added.
  • layout/FormattingContext.cpp: Added.
  • layout/FormattingContext.h: Added.
  • layout/FormattingState.cpp: Added.
  • layout/FormattingState.h: Added.
  • layout/InlineFormatting/InlineFormattingContext.cpp: Added.
  • layout/InlineFormatting/InlineFormattingContext.h: Added.
  • layout/InlineFormatting/InlineFormattingState.cpp: Added.
  • layout/InlineFormatting/InlineFormattingState.h: Added.
  • layout/LayoutCtx.cpp: Added.
  • layout/LayoutCtx.h: Added.
  • layout/LayoutTree/LayoutBlockContainer.cpp: Added.
  • layout/LayoutTree/LayoutBlockContainer.h: Added.
  • layout/LayoutTree/LayoutBox.cpp: Added.
  • layout/LayoutTree/LayoutBox.h: Added.
  • layout/LayoutTree/LayoutContainer.cpp: Added.
  • layout/LayoutTree/LayoutContainer.h: Added.
  • layout/LayoutTree/LayoutCtx.h: Added.
  • layout/LayoutTree/LayoutInlineBox.cpp: Added.
  • layout/LayoutTree/LayoutInlineBox.h: Added.
  • layout/LayoutTree/LayoutInlineContainer.cpp: Added.
  • layout/LayoutTree/LayoutInlineContainer.h: Added.

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
3:41 PM Changeset in webkit [230930] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Deactivate the WindowServer connection for the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=184451
<rdar://problem/38313938>

Reviewed by Brent Fulgham.

Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
process startup. After calling this function, every attempt to establish a connection to the
WindowServer from the WebContent process will fail, except for CA render server connections.

  • wtf/FeatureDefines.h:
3:26 PM Changeset in webkit [230929] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, revert accidental change to verbose flag.

  • dfg/DFGByteCodeParser.cpp:
3:25 PM Changeset in webkit [230928] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Roll out r226655 because it broke OSR entry when the pre-header is inadequately profiled.

Rubber stamped by Saam Barati.

This is a >2x speed-up in SunSpider/bitops-bitwise-and. We don't really care about SunSpider
anymore, but r226655 didn't result in any benchmark wins and just regressed this test by a lot.
Seems sensible to just roll it out.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::parse):

2:59 PM Changeset in webkit [230927] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

2:43 PM Changeset in webkit [230926] by Chris Dumez
  • 2 edits in trunk/Tools

[WKTR] Move navigation policy decision from the injected bundle to the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=184801

Reviewed by Geoffrey Garen.

Move navigation policy decision from the injected bundle to the UIProcess in WebKitTestRunner.
This is a more common configuration and therefore should be the default testing configuration.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForNavigationAction):
Always respond with 'PassThrough' in the InjectedBundle so the UIProcess
is now asked for the policy decision.

2:41 PM Changeset in webkit [230925] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[GTK][WPE] Add Debug bots (build and tests) for WPE
https://bugs.webkit.org/show_bug.cgi?id=184887

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-04-23
Reviewed by Carlos Alberto Lopez Perez.

Deployed 2 new bots for WPE Debug: wpe-linux-bot-3 and
wpe-linux-bot-4

Both bots have already the credentials ready to authenticated against
build.webkit.org. They provides the bots for the "debug" configuration over
the "WPE" platform and building for the "x86_64" architecture:
WPE Linux 64-bit Debug (Build) and WPE Linux 64-bit Debug (Tests) 

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
2:17 PM Changeset in webkit [230924] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the Mac and iOS build after r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass strings for the dictionary key names instead of using an extern constant as the
latter may not be available on all systems.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::setHTTPCookiesForURL):

2:10 PM Changeset in webkit [230923] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Attempt to fix the build after r230921
(https://bugs.webkit.org/show_bug.cgi?id=159464)

Pass Same-Site info through.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::cookieRequestHeaderFieldValue):

2:07 PM Changeset in webkit [230922] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative macOS build fix attempt.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

1:58 PM Changeset in webkit [230921] by dbates@webkit.org
  • 56 edits
    2 copies
    56 adds in trunk

Implement Same-Site cookies
https://bugs.webkit.org/show_bug.cgi?id=159464
<rdar://problem/27196358>

Reviewed by Brent Fulgham.

Source/WebCore:

Implements support for Same-Site cookies as per <https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00>.
The implementation is materially consistent with the spec. though implements the computation
for a document's "site for cookies" indirectly as part of loading its frame. This is done to
avoid traversing the frame tree on each subresource request initiated by the document or one
of its workers. We take advantage of the fact that Web Workers and Service Workers use their
host document's loader to load resources on their behalf to use the correct "site for cookies"
for requests (e.g. fetch()) initiating by them without the need to duplicate and store the
host document's "site for cookies" in the worker's script execution context.

The implementation differs from the spec. in the handling of about: URLs and the empty URL
and makes the implementation in WebKit match the behavior of Chrome and Firefox as well as
consistent with origin inheritance as described in <https://html.spec.whatwg.org/multipage/browsers.html#origin>
(16 April 2018). Specifically, requests to about:blank, about:srcdoc and the empty URL ("")
are treated as same-site because these URLs inherit their origin from their owner.

Tests: http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html

http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html
http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html
http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html
http/tests/cookies/same-site/fetch-in-about-blank-page.html
http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html
http/tests/cookies/same-site/fetch-in-cross-origin-page.html
http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html
http/tests/cookies/same-site/fetch-in-cross-origin-worker.html
http/tests/cookies/same-site/fetch-in-same-origin-page.html
http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html
http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html
http/tests/cookies/same-site/fetch-in-same-origin-worker.html
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html
http/tests/cookies/same-site/popup-same-site.html

  • Sources.txt: Add source file SameSiteInfo.cpp.
  • WebCore.xcodeproj/project.pbxproj: Add source files SameSiteInfo.{cpp, h}.
  • dom/Document.cpp:

(WebCore::Document::initSecurityContext): Modified to call SecurityPolicy::shouldInheritSecurityOriginFromOwner().
(WebCore::Document::shouldInheritContentSecurityPolicyFromOwner const): Ditto.
(WebCore::shouldInheritSecurityOriginFromOwner): Deleted; moved to SecurityPolicy.

  • dom/Document.h:

(WebCore::Document::firstPartyForSameSiteCookies const): Added.
(WebCore::Document::setFirstPartyForSameSiteCookies): Added.

  • loader/CookieJar.cpp:

(WebCore::sameSiteInfo): Returns the same-site info for the request used to load the specified document.
(WebCore::cookies): Pass the same-site info down to the platform.
(WebCore::cookieRequestHeaderFieldProxy): Ditto.
(WebCore::setCookies): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Add same-site info to the request.
(WebCore::DocumentLoader::startLoadingMainResource): Update a FIXME comment to explain that
we can simplify ResourceRequestBase if we can remove the call to addExtraFieldsToMainResourceRequest()
here. Specifically, we would not need to differentiate between a request with an unspecified
same-site state (default state of a new request) from a request whose same-site state has
been explicitly set if we can assume that the same-site state of a request is set exactly
once. In absence of this guarantee we need an "unspecified" state to avoid overriding existing
same-site information computed with a null initiating document (the case of a new address bar
initiated load) from a load initiated by the document associated with this loader.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::setFirstPartyForCookies): Modified to also update the first party for
same-site cookies ("site for cookies").
(WebCore::FrameLoader::load): Add same-site info to the request.
(WebCore::FrameLoader::reload): Ditto.
(WebCore::FrameLoader::setOriginalURLForDownloadRequest): Ditto.
(WebCore::FrameLoader::addExtraFieldsToRequest): If the request does not already have
same-site info then compute it and add it to the request. Mark main frame main resource
requests as a "top-site".
(WebCore::FrameLoader::addSameSiteInfoToRequestIfNeeded): Implements the "'Same-site' and 'cross-site'
Requests" algorithm from <https://tools.ietf.org/html/draft-ietf-httpbis-cookie-same-site-00#section-2.1>.
(WebCore::createWindow): Add same-site info to the request.

  • loader/FrameLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init): Ditto.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Ditto.

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::shouldInheritSecurityOriginFromOwner): Moved from Document.cpp.

  • page/SecurityPolicy.h:
  • platform/CookiesStrategy.h:
  • platform/network/CacheValidation.cpp:

(WebCore::headerValueForVary): Pass the same-site info down to the platform.

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::encode const): Encode same-site bits.
(WebCore::CookieRequestHeaderFieldProxy::decode): Decode same-site bits.

  • platform/network/PlatformCookieJar.h:
  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy): Added.
(WebCore::ResourceRequestBase::isSameSite const): Added.
(WebCore::ResourceRequestBase::setIsSameSite): Added.
(WebCore::ResourceRequestBase::isTopSite const): Added.
(WebCore::ResourceRequestBase::setIsTopSite): Added.
(WebCore::equalIgnoringHeaderFields):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::isSameSiteUnspecified const): Added. See comment for DocumentLoader::startLoadingMainResource()
for more details.
(WebCore::registrableDomainsAreEqual): Added.
(WebCore::ResourceRequestBase::encodeBase const): Encode same-site bits.
(WebCore::ResourceRequestBase::decodeBase): Decode same-site bits.

  • platform/network/SameSiteInfo.cpp: Added.

(WebCore::SameSiteInfo::create):

  • platform/network/SameSiteInfo.h: Added.

(WebCore::SameSiteInfo::encode const):
(WebCore::SameSiteInfo::decode):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::setCookiesFromDOM): Pass Same-Site info down.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::siteForCookies): Added.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Update platform request with same-site info.
(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.

  • platform/network/cocoa/ResourceRequestCocoa.mm:

(WebCore::ResourceRequest::doUpdateResourceRequest): Ditto.
(WebCore::siteForCookies): Added.
(WebCore::ResourceRequest::doUpdatePlatformRequest): Update platform request with same-site info.

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookiesForDOM): Pass Same-Site info down.
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::setCookiesFromDOM const): Ditto.
(WebCore::CookieJarCurlDatabase::cookiesForDOM const): Ditto.
(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const): Ditto.
(WebCore::CookieJarCurlDatabase::getRawCookies const): Ditto.

  • platform/network/curl/CookieJarCurlDatabase.h:
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::createCurlRequest): Ditto.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookiesForURL): Added; shared function to return the cookies based on the specified criterion.
(WebCore::setHTTPCookiesForURL): Moved from the bottom of the file to top to be closer to the other
CFNetwork helper functions. Modified to support fetching same-site cookies.
(WebCore::httpCookiesForURL): Moved to be under setHTTPCookiesForURL(). Modified to call cookiesForURL().
Note the SPI used in cookiesForURL() apply the same criterion for whether to fetch secure cookies as we
were computing here. That is, the CFNetwork SPI only returns secure cookies if the specified URL's scheme
case-insensitively matches "https".
(WebCore::cookiesInPartitionForURL): Wrote in terms of cookiesForURL().
(WebCore::cookiesForSession): Pass the Same-Site info.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::setCookiesFromDOM): Ditto.
(WebCore::getRawCookies): Ditto.
(WebCore::deleteCookie): Pass std::nullopt for the Same-Site info so that we do not consider the SameSite
attribute when fetching cookies to delete.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::setCookiesFromDOM): Pass the Same-Site info.
(WebCore::cookiesForDOM): Ditto.
(WebCore::cookieRequestHeaderFieldValue): Ditto.
(WebCore::getRawCookies): Ditto.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::createPageForServiceWorker): Set the first party for same site cookies ("site for cookies") to
the script URL.

  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource): Copy the first party for same-site cookies to the
new document.

Source/WebCore/PAL:

Forward declare some SPI.

  • pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

Pass the Same-Site info through the WebKit abstractions.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::logCookieInformation const):
(WebKit::logBlockedCookieInformation):
(logCookieInformationInternal):
(NetworkResourceLoader::logCookieInformation):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourceInfo::encode const):
(WebKit::NetworkCache::SubresourceInfo::decode):
(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourceInfo::isSameSite const):
(WebKit::NetworkCache::SubresourceInfo::isTopSite const): Returns false; subresources do not represent
a top-level navigation.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::isThirdPartyRequest):
(WebKit::updateTaskWithFirstPartyForSameSiteCookies):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::download):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

Source/WebKitLegacy/win:

Pass the Same-Site info through the strategy.

  • WebCoreSupport/WebPlatformStrategies.cpp:

(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):

  • WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:

Add tests. These tests are skipped on all ports for now, including Mac and iOS. We will
look to subsequently enable the tests for Mac and iOS once we have CFNetwork support for
Same-Site cookies.

The following tests and utilities were taken in whole or in part from Blink:

http/tests/cookies/resources/echo-json.php
http/tests/cookies/resources/post-cookies-onmessage.php
http/tests/cookies/resources/post-cookies-to-opener.php
http/tests/cookies/resources/testharness-helpers.js
http/tests/cookies/same-site/popup-cross-site-post.html
http/tests/cookies/same-site/popup-cross-site.html
http/tests/cookies/same-site/popup-same-site-post.html
http/tests/cookies/same-site/popup-same-site.html

The following files were derived from tests taken from Blink:

http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html
http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html

  • TestExpectations: Skip on all ports for now.
  • http/tests/cookies/resources/cookie-utilities.js: Added.

(createCookie):
(setBaseDocumentWhenFetchingDOMCookies):
(setDOMCookie):

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/cookies/resources/echo-json.php: Added.
  • http/tests/cookies/resources/post-cookies-onmessage.php: Added.
  • http/tests/cookies/resources/post-cookies-to-opener.php: Added.
  • http/tests/cookies/resources/testharness-helpers.js: Added.

(clearKnownCookies):

  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-navigating-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-from-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-cookies-set-in-about-blank-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-about-blank-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-cross-origin-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-page.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-srcdoc-iframe.html: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker-expected.txt: Added.
  • http/tests/cookies/same-site/fetch-in-same-origin-worker.html: Added.
  • http/tests/cookies/same-site/popup-cross-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-cross-site-post.html: Added.
  • http/tests/cookies/same-site/popup-cross-site.html: Added.
  • http/tests/cookies/same-site/popup-same-site-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-post.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-cross-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect-expected.txt: Added.
  • http/tests/cookies/same-site/popup-same-site-via-same-site-redirect.html: Added.
  • http/tests/cookies/same-site/popup-same-site.html: Added.
  • http/tests/cookies/same-site/resources/click-hyperlink.php: Added.
  • http/tests/cookies/same-site/resources/echo-iframe-src.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-navigating-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-from-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-after-top-level-navigation-initiated-from-iframe-in-cross-origin-page.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-iframe.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-service-worker.html: Added.
  • http/tests/cookies/same-site/resources/fetch-in-cross-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/fetch-in-same-origin-service-worker.php: Added.
  • http/tests/cookies/same-site/resources/fetch-in-same-origin-worker.js: Added.

(async.checkResult):

  • http/tests/cookies/same-site/resources/passthrough-service-worker.js: Added.
  • platform/mac-wk1/TestExpectations: Skip the Service Worker tests as they are not supported in LegacyWebKit.
1:56 PM Changeset in webkit [230920] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.15/Source

Versioning.

1:49 PM Changeset in webkit [230919] by Chris Dumez
  • 8 edits
    1 add in trunk

HTML String load cannot be prevented by responding 'Cancel' asynchronously in decidePolicyForNavigationAction
https://bugs.webkit.org/show_bug.cgi?id=184848
<rdar://problem/39145306>

Reviewed by Brady Eidson.

Source/WebCore:

When calling loadHTMLString on a WebView, we end up doing a load for 'about:blank'
with substitute data. In such case, we want to do a regular asynchronous policy
delegate check, there is no reason we need it to be synchronous. Update our check
to make sure we only do a synchronous policy check for initial 'about:blank' loads
that do not have substitute data.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/DecidePolicyForNavigationAction.mm:

(-[DecidePolicyForNavigationActionController webView:decidePolicyForNavigationAction:decisionHandler:]):
(TEST):

LayoutTests:

Update layout tests that wrongly expected 'about:blank' to load synchronously even
when it is not the initial empty document of an iframe. I have checked that our
behavior is now consistent with Chrome.

  • fast/events/beforeunload-alert-user-interaction2.html:
  • http/tests/security/cross-origin-reified-window-location-setting-expected.txt:
  • http/tests/security/cross-origin-reified-window-location-setting.html:
  • webarchive/loading/javascript-url-iframe-crash-expected.txt:
1:29 PM Changeset in webkit [230918] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebProcessProxy frequently re-takes a process assertion for the network process even though is already has one
https://bugs.webkit.org/show_bug.cgi?id=184889
<rdar://problem/38151530>

Reviewed by Brady Eidson.

In ProcessThrottler::updateAssertionNow(), if the new process assertion state is the same
as the existing one, then return early. Otherwise, we would end up calling WebProcessProxy::didSetAssertionState()
for the same assertion state, which would cause duplicate logging but also some unnecessary work.

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertionNow):

1:27 PM Changeset in webkit [230917] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.15

Tag Safari-606.1.15.

12:40 PM Changeset in webkit [230916] by Wenson Hsieh
  • 5 edits
    3 adds in trunk

[Extra zoom mode] 100vw is roughly half of the viewport width in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=184871
<rdar://problem/39477595>

Reviewed by Andy Estes.

Source/WebCore:

Currently, when computing CSS viewport units, we use ViewportConfiguration::initialScaleIgnoringContentSize().
This method computes an initial scale from the layout width and height without relying on any information
derived from the current content size. This is done to ensure that the content size and viewport dimensions for
CSS viewport units should not be simultaneously dependent on each other.

Since shrink-to-fit heuristics depend on content size, we currently assume that shrink-to-fit is disabled when
computing initialScaleIgnoringContentSize, by always passing in false for shouldIgnoreScalingConstraints.
However, in extra zoom mode, the opposite is true: since we force both m_canIgnoreScalingConstraints and
m_forceHorizontalShrinkToFit to be true in this mode, we will always try to shrink-to-fit regardless of
content size.

Because of this shrink-to-fit disparity between initialScale and initialScaleIgnoringContentSize, viewport
units in extra zoom mode are currently computed assuming an initial scale set by the page, whereas the real
viewport is scaled to fit, which causes any lengths computed in terms of vw and vh to be incorrect. To fix this,
we introduce a version of shouldIgnoreScalingConstraints() that returns true iff scaling constraints are
always ignored, regardless of content size. We then use this in initialScaleIgnoringContentSize, instead of
always passing in false for shouldIgnoreScalingConstraints.

Test: fast/css/extrazoom/viewport-units-shrink-to-fit.html

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::shouldIgnoreScalingConstraintsRegardlessOfContentSize const):
(WebCore::ViewportConfiguration::initialScaleIgnoringContentSize const):

  • page/ViewportConfiguration.h:

LayoutTests:

Add a new layout test to verify that shrink-to-fit works as intended in extra zoom mode:

  1. The large element should cause the entire viewport to shrink down to fit.
  2. Removing the large element should adjust the viewport, such that the smaller element now fits the entire

viewport.

  1. The smaller element (at 100vw and 100vh) should be the same size as the window.
  • TestExpectations:
  • fast/css/extrazoom/viewport-units-shrink-to-fit-expected.txt: Added.
  • fast/css/extrazoom/viewport-units-shrink-to-fit.html: Added.
8:23 AM Changeset in webkit [230915] by commit-queue@webkit.org
  • 3 edits in trunk/Source/bmalloc

Include stdio.h before using stderr
https://bugs.webkit.org/show_bug.cgi?id=184872

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2018-04-23
Reviewed by Yusuke Suzuki.

  • bmalloc/PerProcess.cpp:
  • bmalloc/Scavenger.cpp:
7:47 AM Changeset in webkit [230914] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

[Simple line layout] Generate inline boxtree using simple line layout runs.
https://bugs.webkit.org/show_bug.cgi?id=184833

Reviewed by Antti Koivisto.

RenderBlockFlow::ensureLineBoxes triggers line layout on the block content to replace
the simple line layout runs with an inline boxtree. The runs generated by the fast path
should always match the inline tree boxes.
In this patch instead of triggering layout, we just convert the simple line runs to
inline boxes.
Currently, it works with only one, non-paginated text renderer, but we should be
able to extend it to all the simple line layout content.

Covered by existing tests.

  • rendering/InlineBox.h:

(WebCore::InlineBox::setHasHyphen):
(WebCore::InlineBox::setCanHaveLeadingExpansion):
(WebCore::InlineBox::setCanHaveTrailingExpansion):
(WebCore::InlineBox::setForceTrailingExpansion):
(WebCore::InlineBox::setForceLeadingExpansion):
(WebCore::InlineBox::hasHyphen const):
(WebCore::InlineBox::canHaveLeadingExpansion const):
(WebCore::InlineBox::canHaveTrailingExpansion const):
(WebCore::InlineBox::forceTrailingExpansion const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::ensureLineBoxes):

  • rendering/RenderBlockFlow.h:
  • rendering/SimpleLineLayoutFlowContents.h:

(WebCore::SimpleLineLayout::FlowContents::segmentForRun const):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::canUseForLineBoxTree):
(WebCore::SimpleLineLayout::initializeInlineBox):
(WebCore::SimpleLineLayout::generateLineBoxTree):

  • rendering/SimpleLineLayoutFunctions.h:
  • rendering/SimpleLineLayoutResolver.cpp:

(WebCore::SimpleLineLayout::RunResolver::rangeForLine const):

  • rendering/SimpleLineLayoutResolver.h:
7:16 AM Changeset in webkit [230913] by zandobersek@gmail.com
  • 9 edits in trunk/Source

[CoordGraphics] Remove unused trajectory cruft in CoordinatedLayerTreeHost, CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=184881

Reviewed by Michael Catanzaro.

Source/WebCore:

Remove the redundant findFirstDescendantWithContentsRecursively() and
setVisibleContentRectTrajectoryVector() methods on the
CoordinatedGraphicsLayer class.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively): Deleted.
(WebCore::CoordinatedGraphicsLayer::setVisibleContentRectTrajectoryVector): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit:

The CompositingCoordinator::setVisibleContentsRect() method is always
called with a (0,0) FloatPoint value as the trajectory vector parameter,
which is already the default value in TiledBackingStore where this ends
up. Removing this call chain also enables removing some unnecessary and
odd code in the CoordinatedGraphicsLayer class.

This doesn't yet touch the trajectory logic in the TiledBackingStore
class since it's not yet a given this won't be used in the future. But
if that will be necessary, hope is to not use it this way.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::setVisibleContentsRect):
(WebKit::CompositingCoordinator::mainContentsLayer): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewport):

7:12 AM Changeset in webkit [230912] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[CoordGraphics] TiledBackingStore unnecessarily tracks alpha support value
https://bugs.webkit.org/show_bug.cgi?id=184880

Reviewed by Michael Catanzaro.

Drop the m_supportsAlpha member from the TiledBackingStore class. The
member value was unused. TiledBackingStore::setSupportsAlpha() method
is removed.

TiledBackingStore::setSupportsAlpha() invalidated the backing store,
so CoordinatedGraphicsLayer::setContentsOpaque() now enforces the same
behavior by manually updating the m_needsDisplay struct. This means
that during the following layer flush the backing store is repainted
in its entirety.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
(WebCore::CoordinatedGraphicsLayer::createBackingStore):

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setSupportsAlpha): Deleted.

  • platform/graphics/texmap/coordinated/TiledBackingStore.h:
6:45 AM Changeset in webkit [230911] by Michael Catanzaro
  • 2 edits
    2 adds in trunk/Tools

[GTK][WPE] TestSSL fails due to additional TLS errors returned
https://bugs.webkit.org/show_bug.cgi?id=184860

Reviewed by Carlos Garcia Campos.

Add script and config file for regenerating the test certificate.
Regenerate it. TestSSL no longer fails on my machine.

I do see a ton of network process crashes and JavaScript errors, none of
which prevent the test from passing, but this commit only claims to fix
the certificate validation portion of the test.

  • TestWebKitAPI/Tests/WebKitGLib/resources/generate-test-cert.sh: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.conf: Added.
  • TestWebKitAPI/Tests/WebKitGLib/resources/test-cert.pem:
6:39 AM Changeset in webkit [230910] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GStreamer] Start implementing Audio/VideoTrackPrivateGSTreamer::kind method
https://bugs.webkit.org/show_bug.cgi?id=184650

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-04-23
Reviewed by Philippe Normand.

In the playbin3 case we can assume that if the GstStream is selected by default,
it is the Main track of that kind.

No new tests are added as:

  • It relies on playbin3 case which support might be compiled out
  • we already have a few test that are currently disabled in the mediastream testsuite. This patch is part of the work to enable them.
  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::kind const):

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::kind const):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
4:19 AM Changeset in webkit [230909] by aboya@igalia.com
  • 11 edits in trunk/Source/WebCore

[MSE] Add allSamplesInTrackEnqueued event
https://bugs.webkit.org/show_bug.cgi?id=184737

MediaSource has a .endOfStream() method to signal when there are no more frames
after the ones currently buffered.

This bit of data is important for some multimedia frameworks. For instance, in
GStreamer a stream of frames being decoded should be terminated by a
'end-of-stream' (EOS) event that has a similar meaning. Some GStreamer elements
will expect this event in order to work properly under some circumstances.

Unfortunately currently WebKit provides no mechanism for this: an event of
sorts should be emitted after no more frames are going to be enqueued to signal
the end of the stream. The closest mechanism WebKit has for this is
markEndOfStream(), but it's not exactly the same: markEndOfStream() informs
that -- as far as network buffering is concerned -- we are done; but at that
point there may still be (and often are) many frames waiting in the
decodeQueue, so it would be wrong to signal the decoder that there are no more
frames.

This patch introduces a new optional method in SourceBufferPrivate,
allSamplesInTrackEnqueued(const AtomicString& trackID) that is called
whenever the MediaSource is in "ended" state (the user has called
MediaSource.endOfStream()) and the decodeQueue is empty. Media framework
implementations can use this method to send a EOS event to a decoder that needs
it.

Reviewed by Xabier Rodriguez-Calvar.

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::streamEndedWithError):

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::trySignalAllSamplesInTrackEnqueued):
(WebCore::SourceBuffer::trySignalAllSamplesEnqueued):

  • Modules/mediasource/SourceBuffer.h:
  • platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.cpp:

(WebCore::MediaSourceClientGStreamerMSE::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

(WebCore::PlaybackPipeline::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/PlaybackPipeline.h:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::allSamplesInTrackEnqueued):

  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.h:
3:13 AM Changeset in webkit [230908] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[Win][WK2] REGRESSION(r230834) 'getpid': identifier not found
https://bugs.webkit.org/show_bug.cgi?id=184877

Reviewed by Yusuke Suzuki.

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::addItem): Use WTF::getCurrentProcessID() instead of getpid().

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goToBackForwardItem): Ditto.

12:44 AM Changeset in webkit [230907] by zandobersek@gmail.com
  • 3 edits
    2 adds in trunk

Avoid uninitialized memory read.
https://bugs.webkit.org/show_bug.cgi?id=184505
<rdar://problem/39348325>

Patch by Ms2ger <Ms2ger@igalia.com> on 2018-04-23
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds.html: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-bounds.html

  • html/ImageBitmap.cpp:

(WebCore::croppedSourceRectangleWithFormatting):

12:32 AM Changeset in webkit [230906] by zandobersek@gmail.com
  • 10 edits in trunk/Source

[TexMap] Drop RefCounted inheritance off of TextureMapperBackingStore
https://bugs.webkit.org/show_bug.cgi?id=184810

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Turn TextureMapperBackingStore into a simple interface that doesn't
inherit from RefCounted<>. Instead, push that inheritance off to the
classes that implement the TextureMapperBackingStore interface. This
narrows down the purpose of TextureMapperBackingStore towards a simple
interface that TextureMapper algorithms can work with.

TextureMapperLayer has its m_backingStore member variable turn into
a simple pointer instead of a RefPtr<>. Setter method and call sites of
that method are updated to reflect that.

TextureMapperTiledBackingStore now inherits from RefCounted<> directly,
instead of through TextureMapperBackingStore.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperBackingStore.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::setBackingStore):

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:

Source/WebKit:

CoordinatedBackingStore should inherit directly from RefCounted<> now
that TextureMapperBackingStore doesn't anymore.

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.h:
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::createBackingStoreIfNeeded):

Apr 22, 2018:

11:48 PM Changeset in webkit [230905] by zandobersek@gmail.com
  • 5 edits
    2 adds in trunk/Source/WebCore

[AsyncScrolling] Add generic ScrollingThread implementation
https://bugs.webkit.org/show_bug.cgi?id=184809

Reviewed by Yusuke Suzuki.

Add a generic ScrollingThread implementation that internally uses
RunLoop facilities to run the scrolling thread and dispatch
callbacks on that thread.

ScrollingThread::initializeRunLoop() retrieves address of the
thread-specific RunLoop and signals the Condition object.
ScrollingThread::wakeUpRunLoop() uses RunLoop::dispatch() to schedule
callback dispatches on the scrolling thread.

ScrollingThread::createThreadIfNeeded() mimics Cocoa implementation and
waits for the RunLoop address to be retrieved before continuing.

  • SourcesGTK.txt: Add to build.
  • SourcesWPE.txt: Ditto.
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::createThreadIfNeeded):

  • page/scrolling/ScrollingThread.h:
  • page/scrolling/generic/ScrollingThreadGeneric.cpp: Added.

(WebCore::ScrollingThread::initializeRunLoop):
(WebCore::ScrollingThread::wakeUpRunLoop):

11:47 PM Changeset in webkit [230904] by zandobersek@gmail.com
  • 5 edits in trunk/Source

[CoordinatedGraphics] Unused contentsSize, coveredRect attributes in CoordinatedGraphicsState
https://bugs.webkit.org/show_bug.cgi?id=184811

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Remove the unused contentsSize and coveredRect attributes on the
CoordinatedGraphicsState struct. CoordinatedGraphicsLayer::coverRect()
method is now unused and can also be removed.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges): Stop setting
the removed contentsSize and coveredRect attributes. These were only
ever set to the appropriate values, but were then never used anywhere.

4:03 PM Changeset in webkit [230903] by Matt Baker
  • 2 edits in trunk/Source/WebKit

Web Inspector: WebInspectorProxy releases WKWebInspectorProxyObjCAdapter without removing corresponding observer
https://bugs.webkit.org/show_bug.cgi?id=184865
<rdar://problem/37764960>

Reviewed by Brian Burg.

Replace the early return removed in https://bugs.webkit.org/show_bug.cgi?id=177661,
so that WKWebInspectorProxyObjCAdapter and the view controller can be reused
when reopening the Inspector while the WebView is still alive.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):

2:39 PM Changeset in webkit [230902] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add -[WKInputDelegate _webView:decidePolicyForFocusedElement:] so clients can request default focusing behavior
https://bugs.webkit.org/show_bug.cgi?id=184844

Patch by Paul Knight <pknight@apple.com> on 2018-04-22
Reviewed by Dan Bernstein.

If a client doesn't implement -[_WKInputDelegate _webView:focusShouldStartInputSession:] the default
focus behavior only brings up the keyboard if it's already onscreen, the interaction is user driven,
and other factors that even depend on what feature flags are enabled.

If a client implements _webView:focusShouldStartInputSession:, they don't have a good way to specifiy
they'd like to fall back to the default behavior. This makes it difficult for a client to use the
default in most cases, but sometimes allow programmatic focus from the page, for example.

Add a new delegate method -_webView:decidePolicyForFocusedElement: that returns a new enum type
_WKFocusStartsInputSessionPolicy. Clients can return _WKFocusStartsInputSessionPolicyAuto to request
the default behavior, or _WKFocusStartsInputSessionPolicyAllow / Disallow to directly control whether
the keyboard appears to assist the focused node.

  • UIProcess/API/Cocoa/_WKInputDelegate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):

2:23 PM Changeset in webkit [230901] by Wenson Hsieh
  • 2 edits
    3 adds in trunk/LayoutTests

Add a layout test for r230785
https://bugs.webkit.org/show_bug.cgi?id=184757

Reviewed by Beth Dakin.

Adds a new layout test to verify that true screen dimensions in extra zoom mode
are observable from the page, via window.screen.

  • TestExpectations:
  • fast/dom/Window/extrazoom/window-get-real-screen-dimensions.html: Added.
6:44 AM Changeset in webkit [230900] by Yusuke Suzuki
  • 9 edits
    1 move
    2 deletes in trunk/Source/JavaScriptCore

[JSC] Remove ModuleLoaderPrototype
https://bugs.webkit.org/show_bug.cgi?id=184784

Reviewed by Mark Lam.

When we introduce ModuleLoaderPrototype, ModuleLoader may be created by users and exposed to users.
However, the loader spec is abandoned. So we do not need to have ModuleLoaderPrototype and JSModuleLoader.
This patch merges ModuleLoaderPrototype's functionality into JSModuleLoader.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • builtins/ModuleLoader.js: Renamed from Source/JavaScriptCore/builtins/ModuleLoaderPrototype.js.
  • runtime/JSGlobalObject.cpp:

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::proxyRevokeStructure const):
(JSC::JSGlobalObject::moduleLoaderStructure const): Deleted.

  • runtime/JSModuleLoader.cpp:

(JSC::moduleLoaderParseModule):
(JSC::moduleLoaderRequestedModules):
(JSC::moduleLoaderModuleDeclarationInstantiation):
(JSC::moduleLoaderResolve):
(JSC::moduleLoaderResolveSync):
(JSC::moduleLoaderFetch):
(JSC::moduleLoaderGetModuleNamespaceObject):
(JSC::moduleLoaderEvaluate):

  • runtime/JSModuleLoader.h:
  • runtime/ModuleLoaderPrototype.cpp: Removed.
  • runtime/ModuleLoaderPrototype.h: Removed.

Apr 21, 2018:

6:21 PM Changeset in webkit [230899] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup CookieRequestHeaderFieldProxy
https://bugs.webkit.org/show_bug.cgi?id=184868

Remove extraneous whitespace that I inadvertently added.

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::decode):

6:16 PM Changeset in webkit [230898] by dbates@webkit.org
  • 9 edits in trunk/Source/WebCore

Cleanup CookieRequestHeaderFieldProxy
https://bugs.webkit.org/show_bug.cgi?id=184868

Reviewed by Youenn Fablet.

Simplify the struct CookieRequestHeaderFieldProxy and make it consistent with other structs.
Among other changes, remove constructors for CookieRequestHeaderFieldProxy as they are
unnecessary as all supported compilers support non-static data member initializers (NSDMI)
for aggregates, remove prefix "m_" from the name of fields as this is struct exists for
convenience and offers no encapsulation and simplify decoding logic of this struct.

No functionality changed. So, no new tests.

  • loader/CookieJar.cpp:

(WebCore::cookieRequestHeaderFieldProxy):

  • platform/network/CookieRequestHeaderFieldProxy.h:

(WebCore::CookieRequestHeaderFieldProxy::encode const):
(WebCore::CookieRequestHeaderFieldProxy::decode):
(WebCore::CookieRequestHeaderFieldProxy::CookieRequestHeaderFieldProxy): Deleted.

  • platform/network/SocketStreamHandleImpl.cpp:

(WebCore::cookieDataForHandshake):

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurlDatabase.cpp:

(WebCore::CookieJarCurlDatabase::cookieRequestHeaderFieldValue const):

  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::cookieRequestHeaderFieldValue):

2:58 PM Changeset in webkit [230897] by Yusuke Suzuki
  • 2 edits in trunk/Source/bmalloc

Unreviewed, follow-up patch after r230474
https://bugs.webkit.org/show_bug.cgi?id=166684

Add "JavaScriptCore" to Darwin name. And use short name "BMScavenger"
for Linux since adding "JavaScriptCore" makes the name too long for Linux.

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::threadRunLoop):

2:52 PM Changeset in webkit [230896] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Disable backward and forward navigation swipes while in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=184656
rdar://problem/36057535

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-21
Reviewed by Tim Horton.

Disable navigation swipes while in fullscreen.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::canSwipeInDirection const):

2:49 PM Changeset in webkit [230895] by graouts@webkit.org
  • 11 edits
    3 copies
    1 add in trunk

[Modern Media Controls] Show a loading indicator after pressing the play button in compact mode
https://bugs.webkit.org/show_bug.cgi?id=184863
<rdar://problem/38939468>

Reviewed by Dean Jackson.

Source/WebCore:

We now display a loading indicator after pressing the play button when in compact mode. We also update the
behavior to use assets provided through WebKitAdditions (see webkit.org/b/184862) for the play button and
the invalid icon. Additionally, we always show a 20% opaque black overlay in the background while any piece
of user interface is up.

  • Modules/modern-media-controls/controls/compact-activity-indicator.css: Added.

(button.compact-activity-indicator > picture): The loading indicator asset is a sprite made of 23 frames, so
we specify the mask size (since all buttons are rendered via a mask) to be 23 * 100% the rendered size. The
display of the loading indicator is performed with a first intro animation which runs once through the first
8 frames and then a continuously looping animation going through the remaining frames. We use a frames()
timing function to achieve the frame-by-frame effect while using only from/to keyframe animations. When we
fade out, we use a simply opacity fade, which is combined with the spinning animation. We use CSS variables
to encode both animations so they can be used combined or one at a time without redefining the whole animation
property.
(button.compact-activity-indicator.spins > picture): Use the "spins" animation variable when spinning.
(button.compact-activity-indicator.spins.fades-out > picture): Combine the "spins" and "fades-out" animation
variables when fading out.
(@keyframes compact-activity-indicator-intro): Animation going through the first 8 frames of the loading indicator.
(@keyframes compact-activity-indicator-loop): Animation going through the remaining frames of the loading indicator.
(@keyframes compact-activity-indicator-fades-out): Animation fading opacity from 1 to 0.

  • Modules/modern-media-controls/controls/compact-activity-indicator.js: Added.

(CompactActivityIndicator):
(CompactActivityIndicator.prototype.show): Add the "spins" CSS class to show the control spinning with the intro animation.
(CompactActivityIndicator.prototype.hide): Add the "fades-out" CSS class to hide the control, removing both this class and
the "spins" class when the fade-out animation completes.

  • Modules/modern-media-controls/controls/compact-media-controls.css: Added.

(.media-controls.compact:before): Add a 20% black overlay over the video frame to provide contrast for controls.
(.media-controls.compact button): Ensure buttons are sized to use the entire video frame so that their hit region
comprises the whole video frame.
(.media-controls.compact button > picture): Override default blending styles for a simple solid white mask.
(.media-controls.compact button:active > picture): Turn off the scale down effect when pressing a button.

  • Modules/modern-media-controls/controls/compact-media-controls.js: Expose a "state" property for the compact media controls,

which can be exlusively one of three: "paused", "pending" and "invalid".
(CompactMediaControls.):
(CompactMediaControls.prototype.get state):
(CompactMediaControls.prototype.set state):
(CompactMediaControls.prototype.layout): In the "paused" state, show the play button. In the "pending" state show
the loading indicator. In the "invalid" state show the invalid button.
(CompactMediaControls.prototype.get placard): Deleted.
(CompactMediaControls.prototype.set placard): Deleted.

  • Modules/modern-media-controls/js-files:
  • Modules/modern-media-controls/media/compact-media-controls-support.js: Added.

(CompactMediaControlsSupport.prototype.get mediaEvents):
(CompactMediaControlsSupport.prototype.handleEvent): Make the controls enter the "paused" state when receiving a "pause"
event. Make the controls enter the "invalid" state when receiving an "error" event.
(CompactMediaControlsSupport.prototype.enable):
(CompactMediaControlsSupport.prototype.disable):
(CompactMediaControlsSupport.prototype.buttonWasPressed): Play the media when pressing the play button and make the controls
enter the "pending" state. When pressing the loading indicator, pause the media and make the controls enter the "paused" state.
(CompactMediaControlsSupport.prototype._buttons):
(CompactMediaControlsSupport):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._supportingObjectClasses): Only use CompactMediaControlsSupport as a media controller supporting object
in the compact mode.

  • Modules/modern-media-controls/media/placard-support.js:

(PlacardSupport.prototype.get mediaEvents): This media controller support object no longer needs to deal with compact mode.

  • Modules/modern-media-controls/media/playback-support.js:

(PlaybackSupport.prototype.syncControl): This media controller support object no longer needs to deal with compact mode.
(PlaybackSupport):

LayoutTests:

  • media/modern-media-controls/compact-media-controls/compact-media-controls-constructor-expected.txt:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-constructor.html:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-layout-expected.txt:
  • media/modern-media-controls/compact-media-controls/compact-media-controls-layout.html:
2:47 PM Changeset in webkit [230894] by graouts@webkit.org
  • 4 edits in trunk/Source/WebCore

[Modern Media Controls] Obtain compact mode icons through WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=184862
<rdar://problem/39621645>

Reviewed by Jon Lee.

  • Modules/modern-media-controls/controls/button.js:

(Button.prototype._updateImageMetrics): Handle PDF assets where the image source's intrinsic size needs
to be adjusted for the device pixel density.
(Button):

  • Modules/modern-media-controls/controls/icon-service.js: Expect three additional icons provided through

WebKitAdditions, including two in the PDF format, so we add support for this format.

  • WebCore.xcodeproj/project.pbxproj: Copy additional assets from the WebKitAdditions build directory should

any be present.

1:46 PM Changeset in webkit [230893] by youenn@apple.com
  • 7 edits in trunk

Activate NetworkLoadChecker for media loads
https://bugs.webkit.org/show_bug.cgi?id=184841

Reviewed by Eric Carlson.

Source/WebKit:

Instantiate a NetworkLoadChecker for NetworkResourceLoader for audio/video loads.

Move CORS checks for response after handling of 304 checks.
For 304 checks, we need to do the CORS checks on the validated cached response, not the 304 received response.

Updated ResourceError argument coder to explicitly pass the error type
as some errors created by NetworkLoadChecker would otherwise be received as General errors by WebProcess.
Updated platform data encoding of ResourceError accordingly.

All changes are covered by regular media loading layout tests.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::shouldUseNetworkLoadChecker):
(WebKit::NetworkResourceLoader::didReceiveResponse):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceError>::encode):
(IPC::ArgumentCoder<ResourceError>::decode):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):
We need to set the type after decoding the NSError as ResourceError tries to guess the type from NSError data.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

LayoutTests:

  • TestExpectations: Added DumpJSConsoleLogInStdErr to remove console message differences between WK1/WK2.
1:28 PM Changeset in webkit [230892] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Expose whether you've build with the Apple Internal SDK
https://bugs.webkit.org/show_bug.cgi?id=184864

Reviewed by Wenson Hsieh.

Internals API to let a test know if it is running with the
Apple internal SDK.

  • testing/Internals.cpp:

(WebCore::usingAppleInternalSDK const):

  • testing/Internals.h:
  • testing/Internals.idl:
10:45 AM Changeset in webkit [230891] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible
https://bugs.webkit.org/show_bug.cgi?id=184858

Reviewed by Brian Burg.

r214076 changed the color of all markers to light gray.

  • UserInterface/Views/TimelineRuler.css:

(.timeline-ruler > .markers > .marker):
(body[dir=ltr] .timeline-ruler > .markers > .marker):
(body[dir=rtl] .timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker.load-event):
(.timeline-ruler > .markers > .marker.dom-content-event):
(.timeline-ruler > .markers > .marker.timestamp):
(body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted.
(body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted.

Apr 20, 2018:

11:56 PM Changeset in webkit [230890] by n_wang@apple.com
  • 12 edits in trunk

AX: AOM does not work with DOM Level 1 events
https://bugs.webkit.org/show_bug.cgi?id=184847

Reviewed by Chris Fleizach.

Source/WebCore:

Added the accessibility events to the HTML attribute names.

Test cases are added to the existing layout tests.

  • html/HTMLAttributeNames.in:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap):

LayoutTests:

  • accessibility/ios-simulator/AOM-dismiss-event-expected.txt:
  • accessibility/ios-simulator/AOM-dismiss-event.html:
  • accessibility/mac/AOM-event-accessiblesetvalue-expected.txt:
  • accessibility/mac/AOM-event-accessiblesetvalue.html:
  • accessibility/mac/AOM-events-all-expected.txt:
  • accessibility/mac/AOM-events-all.html:
  • accessibility/mac/AOM-events-expected.txt:
  • accessibility/mac/AOM-events.html:
11:42 PM Changeset in webkit [230889] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GLIB] ERROR: Thread was unable to be detached when running /jsc/vm test in debug
https://bugs.webkit.org/show_bug.cgi?id=184815

Reviewed by Michael Catanzaro.

This is because in the test we are calling both join and detach. We should only call join.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(testsJSCVirtualMachine):

11:40 PM Changeset in webkit [230888] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GLIB] Test /jsc/prototypes crashes in debug
https://bugs.webkit.org/show_bug.cgi?id=184814

Reviewed by Michael Catanzaro.

We should also call the constructor/destructor of Bar struct to ensure Foo is constructed.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(barCreate):
(barFree):

11:38 PM Changeset in webkit [230887] by Carlos Garcia Campos
  • 2 edits in trunk/Source/JavaScriptCore

[GLIB] All API tests fail in debug builds
https://bugs.webkit.org/show_bug.cgi?id=184813

Reviewed by Mark Lam.

This is because of a conflict of ExceptionHandler class used in tests and ExceptionHandler struct defined in
JSCContext.cpp. This patch renames the ExceptionHandler struct as JSCContextExceptionHandler.

  • API/glib/JSCContext.cpp:

(JSCContextExceptionHandler::JSCContextExceptionHandler):
(JSCContextExceptionHandler::~JSCContextExceptionHandler):
(jscContextConstructed):
(ExceptionHandler::ExceptionHandler): Deleted.
(ExceptionHandler::~ExceptionHandler): Deleted.

11:36 PM Changeset in webkit [230886] by Carlos Garcia Campos
  • 5 edits in trunk

REGRESSION(r228088): [SOUP] Check TLS errors for WebSockets on GTlsConnection::accept-certificate
https://bugs.webkit.org/show_bug.cgi?id=184804

Source/WebCore:

Reviewed by Michael Catanzaro.

  • platform/network/soup/SocketStreamHandleImpl.h: Add a public url getter.
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::acceptCertificateCallback): Call SoupNetworkSession::checkTLSErrors() to decide whether to accept the
certificate or not.
(WebCore::connectProgressCallback): Receive the SocketStreamHandle and pass it to acceptCertificateCallback callback.
(WebCore::socketClientEventCallback): Ditto.
(WebCore::SocketStreamHandleImpl::create): Always connect to network events.
(WebCore::wssConnectionAcceptCertificateCallback): Deleted.
(WebCore::wssSocketClientEventCallback): Deleted.

Tools:

Patch by Michael Catanzaro <Michael Catanzaro> on 2018-04-20
Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(WebSocketTest::WebSocketTest):
(WebSocketTest::~WebSocketTest):
(WebSocketTest::serverWebSocketCallback):
(WebSocketTest::webSocketTestResultCallback):
(WebSocketTest::connectToServerAndWaitForEvents):
(testWebSocketTLSErrors):
(beforeAll):

11:22 PM Changeset in webkit [230885] by Carlos Garcia Campos
  • 8 edits in trunk/Source

[SOUP] Do TLS error checking on GTlsConnection::accept-certificate
https://bugs.webkit.org/show_bug.cgi?id=184480

Reviewed by Michael Catanzaro.

Source/WebCore:

  • platform/network/soup/ResourceError.h: Change tlsError to recieve a failing URL instead of a SoupRequest,

since the request was only used to get the failing URL.

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::tlsError): Use the given failing URL.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession): Use ssl-strict when creating the SoupSession to handle the
certificates ourselves by connecting to GTlsConnection::accept-certificate.
(WebCore::SoupNetworkSession::checkTLSErrors): Updated to receive a URL, certificate and errors instead of
receiving a SoupRequest and SoupMessage and extract the url, certirficate and errors from them. Also return the
optional error directly instead of using a completion handler since the function is always synchronous.

  • platform/network/soup/SoupNetworkSession.h:

Source/WebKit:

Connect to GTlsConnection::accept-certificate signal instead of SoupMessage::notify::tls-errors to perform the
TLS errors check.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::createRequest): Do not connect to SoupMessage::notify::tls-errors.
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificateCallback): Call tlsConnectionAcceptCertificate() is
the task is still ongoing.
(WebKit::NetworkDataTaskSoup::tlsConnectionAcceptCertificate): Check TLS errors here.
(WebKit::NetworkDataTaskSoup::networkEventCallback): Pass the stream to networkEvent.
(WebKit::NetworkDataTaskSoup::networkEvent): Connect to GTlsConnection::accept-certificate.

  • NetworkProcess/soup/NetworkDataTaskSoup.h:
11:16 PM Changeset in webkit [230884] by timothy@apple.com
  • 4 edits in trunk/Source

NULL dereference crash sometimes under [super initWithCoder:] in WebView

https://bugs.webkit.org/show_bug.cgi?id=184851
rdar://problem/39611236

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView effectiveAppearanceDidChange]):
Added a null check and call the code later in initialization.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView effectiveAppearanceDidChange]):
Added a null check and call the code later in initialization.

11:16 PM Changeset in webkit [230883] by Chris Dumez
  • 3 edits in trunk/Tools

Unreviewed, update 2 more API tests after r230876.

  • TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:

(TEST):

  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(TestWebKitAPI::TEST):

10:19 PM Changeset in webkit [230882] by timothy_horton@apple.com
  • 12 edits in trunk

Adjust geolocation feature flag
https://bugs.webkit.org/show_bug.cgi?id=184856

Reviewed by Wenson Hsieh.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
9:25 PM Changeset in webkit [230881] by Chris Dumez
  • 3 edits in trunk/LayoutTests/imported/w3c

Unreviewed, rebaseline more tests after r230864.

  • web-platform-tests/domparsing/innerhtml-05-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:
9:22 PM Changeset in webkit [230880] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed attempt to fix Windows build after r230875.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurlDatabase.cpp:
7:35 PM Changeset in webkit [230879] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed attempt to fix GTK build after r230867.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:

(webkit_dom_dom_window_get_self):
(webkit_dom_dom_window_get_window):
(webkit_dom_dom_window_get_frames):
(webkit_dom_dom_window_get_opener):
(webkit_dom_dom_window_get_parent):
(webkit_dom_dom_window_get_top):

7:26 PM Changeset in webkit [230878] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r230873.
https://bugs.webkit.org/show_bug.cgi?id=184857

Broke the iOS build (Requested by cdumez on #webkit).

Reverted changeset:

"Disable backward and forward navigation swipes while in
fullscreen."
https://bugs.webkit.org/show_bug.cgi?id=184656
https://trac.webkit.org/changeset/230873

7:08 PM Changeset in webkit [230877] by Chris Dumez
  • 7 edits in trunk/LayoutTests

Unreviewed, rebaseline more tests after r230864.

LayoutTests/imported/w3c:

  • web-platform-tests/domparsing/innerhtml-05-expected.txt:
  • web-platform-tests/html/browsers/origin/cross-origin-objects/cross-origin-objects-expected.txt:
  • web-platform-tests/html/semantics/forms/form-submission-0/getactionurl-expected.txt:

LayoutTests:

  • fast/frames/sandboxed-iframe-history-denied-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
6:55 PM Changeset in webkit [230876] by Chris Dumez
  • 12 edits in trunk

REGRESSION (r229828): web view doesn’t update or respond to resizing until client calls policy decision handler
https://bugs.webkit.org/show_bug.cgi?id=184210
<rdar://problem/39072354>

Reviewed by Wenson Hsieh.

Source/WebCore:

r229828 tried to have some API tests happy on iOS by freezing the layer tree
during the navigation policy decision. However, this is observable by the client
application and a regression from when the policy delegate was synchronous.

To address the issue, this patch reverts r229828 and instead updates the iOS
API tests to wait for the next presentation update after navigating
before interacting with the view.

  • loader/FrameLoaderClient.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

Source/WebKit:

r229828 tried to have some API tests happy on iOS by freezing the layer tree
during the navigation policy decision. However, this is observable by the client
application and a regression from when the policy delegate was synchronous.

To address the issue, this patch reverts r229828 and instead updates the iOS
API tests to wait for the next presentation update after navigating
before interacting with the view.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::cancelPolicyCheck):
(WebKit::WebFrameLoaderClient::provisionalLoadStarted):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/large-red-square-image.html:
  • TestWebKitAPI/Tests/WebKitCocoa/dragstart-change-selection-offscreen.html:

Add viewport meta tags.

  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[WKWebView _test_waitForDidFinishNavigation]):
Update _test_waitForDidFinishNavigation to wait for the next presentation update
to make iOS API tests happy without having to modify each of them.

6:51 PM Changeset in webkit [230875] by Brent Fulgham
  • 30 edits
    1 add in trunk/Source

Limit cookie header access to Network process
https://bugs.webkit.org/show_bug.cgi?id=184764
<rdar://problem/36785285>

Reviewed by Youenn Fablet.

Revise the handling of cookie request headers so that we don't interact with them in the
WebContent process. They are only needed for interaction with the server and the network
process, so we should limit their scope to just the Network process.

Instead, we should handle a token that represents the cookie headers in the WebContent
process, which can be converted to the relevant cookie data in the network process when
needed.

Source/WebCore:

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::didOpenSocketStream):

  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::clientHandshakeMessage const):
(WebCore::WebSocketHandshake::clientHandshakeRequest const):
(WebCore::WebSocketHandshake::clientHandshakeCookieRequestHeaderFieldProxy const):
(WebCore::WebSocketHandshake::clientHandshakeMessage): Deleted.
(WebCore::WebSocketHandshake::clientHandshakeRequest): Deleted.

  • Modules/websockets/WebSocketHandshake.h:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/CookieJar.cpp:

(WebCore::cookieRequestHeaderFieldProxy):

  • loader/CookieJar.h:
  • platform/network/CookieRequestHeaderFieldProxy.h: Added.

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

  • platform/network/PlatformCookieJar.h:
  • platform/network/SocketStreamHandle.cpp:

(WebCore::SocketStreamHandle::sendHandshake):

  • platform/network/SocketStreamHandle.h:
  • platform/network/SocketStreamHandleImpl.cpp:

(WebCore::SocketStreamHandleImpl::platformSendHandshake):

  • platform/network/cf/SocketStreamHandleImpl.h:
  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/curl/CookieJarCurl.h:
  • platform/network/curl/SocketStreamHandleImpl.h:
  • platform/network/mac/CookieJarMac.mm:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::cookieRequestHeaderFieldValue):

  • platform/network/soup/SocketStreamHandleImpl.h:

Source/WebKit:

  • NetworkProcess/NetworkSocketStream.cpp:

(WebKit::NetworkSocketStream::sendHandshake):

  • NetworkProcess/NetworkSocketStream.h:
  • NetworkProcess/NetworkSocketStream.messages.in:
  • WebProcess/Network/WebSocketStream.cpp:

(WebKit::WebSocketStream::networkProcessCrashed):
(WebKit::WebSocketStream::platformSendHandshake):
(WebKit::WebSocketStream::didSendHandshake):

  • WebProcess/Network/WebSocketStream.h:
  • WebProcess/Network/WebSocketStream.messages.in:
6:36 PM Changeset in webkit [230874] by dbates@webkit.org
  • 12 edits in trunk

Hide Strong Password label when text field is too narrow
https://bugs.webkit.org/show_bug.cgi?id=184785
<rdar://problem/38183939>

Reviewed by Zalan Bujtas.

Source/WebCore:

We accomplish this illusion by allowing the text field's decorations to wrap, specifying flex
shrink factors, a flex basis and hiding overflow. Hiding overflow is accomplished by a
combination of setting "overflow: hidden", "text-overflow: clip", and patching RenderTextControlSingleLine::layout()
to ensure that the height of the container element is equal to the intrinsic height of the
inner elements. Because the container is a flex box and we want to vertically center its
contents we also need to fix up the y-position of the container element as it may have flexed
as a result of forcing its height to match the intrinsic height of the inner elements.

  • css/html.css:

(input::-webkit-strong-password-auto-fill-button): Specify a flex-shrink factor and prevent
wrapping of the "Strong Password" text when flexed.

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlInnerContainer::TextControlInnerContainer): Register for a custom style
resolution callback so that we can style the container if it is a Strong Password or Strong
Confirmation Password text field. Ideally we could accomplish this effect with a user agent-
specific pseudo class together with a selector definition in the user agent style sheet,
html.css. Unfortunately the style resolver does not seem to apply pseudo classes to
shadow DOM pseudo elements (why?). Therefore we use a custom style resolution callback to
achieve the same effect.
(WebCore::isStrongPasswordTextField): Returns whether the specified DOM element is a Strong
Password text field.
(WebCore::TextControlInnerContainer::resolveCustomStyle): Conditionally apply CSS properties
"flex-wrap: wrap" and overflow: hidden" if the shadow host of this container is a Strong
Password text field.
(WebCore::TextControlInnerElement::resolveCustomStyle): Conditionally style the inner text
if the shadow host of this container is a Strong Password text field. We need to apply these
styles here as opposed to in html.css for the same reason we need to apply the styles to
the container in a custom style resolution callback. See the comments for TextControlInnerContainer()
above for more details

  • html/shadow/TextControlInnerElements.h:
  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::resetOverriddenHeight): Added. Incorporates the logic from setNeedsLayoutOnAncestors().
(WebCore::RenderTextControlSingleLine::layout): Override the height of the container element to
match the height of the inner elements when this text field is a Strong Password field. We cache
the container's logical top before adjusting its height so that we can restore it after performing
a second layout of this renderer. This is needed because we vertically center the elements in this
renderer and adjusting the height of the container may cause it to flex and re-position along its
cross axis when the container's height is taller than the inner element's height (e.g. the "Strong
Password" label wraps to the next line). This re-positioning causes a noticeable jitter when
transitioning from a field that has a visible "Strong Password" label to one that does not. Caching
and restoring the logical top of the container element avoids this jitter.
(WebCore::setNeedsLayoutOnAncestors): Deleted. Moved its implementation into resetOverriddenHeight().

LayoutTests:

Update existing tests to include narrow text fields.

  • fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button.html:
  • fast/forms/auto-fill-button/input-strong-password-auto-fill-button.html:
  • platform/mac/fast/forms/auto-fill-button/input-strong-confirmation-password-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
6:32 PM Changeset in webkit [230873] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Disable backward and forward navigation swipes while in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=184656
rdar://problem/36057535

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-20
Reviewed by Tim Horton.

Disable navigation swipes while in fullscreen.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::canSwipeInDirection const):

6:30 PM Changeset in webkit [230872] by dino@apple.com
  • 5 edits
    2 adds in trunk

Render a badge on system preview images
https://bugs.webkit.org/show_bug.cgi?id=184854
<rdar://problem/39615154>

Reviewed by Tim Horton.

Source/WebCore:

At paint time, if a RenderImage is an image element
which is identified as a system preview, then draw
a little badge in the top right corner.

It is expected that platforms will override the
default rendering with something that identifies
how a system preview will operate. e.g. QuickLook
on Apple systems.

Test: system-preview/badge.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect): If we are
a system preview, call RenderTheme to draw a badge.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSystemPreviewBadge): A default
implementation that draws a red circle.

  • rendering/RenderTheme.h:

LayoutTests:

  • system-preview/badge-expected.html: Added.
  • system-preview/badge.html: Added.
6:24 PM Changeset in webkit [230871] by commit-queue@webkit.org
  • 2 edits
    1 delete in trunk/Source/ThirdParty/libwebrtc

Unreviewed, rolling out r230862.
https://bugs.webkit.org/show_bug.cgi?id=184855

it is making some tests to time out on bots (Requested by
youenn on #webkit).

Reverted changeset:

"Mandate H264 hardware encoder for Mac in libwebrtc"
https://bugs.webkit.org/show_bug.cgi?id=184835
https://trac.webkit.org/changeset/230862

6:12 PM Changeset in webkit [230870] by BJ Burg
  • 5 edits in trunk/Source

Web Inspector: remove some dead code in IdentifiersFactory
https://bugs.webkit.org/show_bug.cgi?id=184839

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

This was never used on non-Chrome ports, so the identifier always has a
prefix of '0.'. We may change this in the future, but for now remove this.
Using a PID for this purpose is problematic anyway.

  • inspector/IdentifiersFactory.cpp:

(Inspector::addPrefixToIdentifier):
(Inspector::IdentifiersFactory::createIdentifier):
(Inspector::IdentifiersFactory::requestId):
(Inspector::IdentifiersFactory::addProcessIdPrefixTo): Deleted.

  • inspector/IdentifiersFactory.h:

Source/WebCore:

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::setProcessId): Deleted.

  • inspector/InspectorController.h:
5:19 PM Changeset in webkit [230869] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add the ability to use a hash for setting PtrTag enum values.
https://bugs.webkit.org/show_bug.cgi?id=184852
<rdar://problem/39613891>

Reviewed by Saam Barati.

  • runtime/PtrTag.h:
5:09 PM Changeset in webkit [230868] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebKit

Element fullscreen, expose WKWebView _fullScreenPlaceholderView as iOS SPI
https://bugs.webkit.org/show_bug.cgi?id=184826
rdar://problem/39600825

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-20
Reviewed by Tim Horton.

Add _fullScreenPlaceholderView for iOS similar to the one for Mac.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _fullScreenPlaceholderView]):
(-[WKWebView closeFullScreenWindowController]):
(-[WKWebView fullScreenPlaceholderView]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.h:
  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController webViewPlaceholder]):

4:48 PM Changeset in webkit [230867] by Chris Dumez
  • 14 edits in trunk/Source/WebCore

Use WindowProxy in DOMWindow.idl
https://bugs.webkit.org/show_bug.cgi?id=184820

Reviewed by Sam Weinig.

Use WindowProxy in DOMWindow.idl to match the specification more closely.

  • bindings/js/JSWindowProxy.h:
  • bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::window const):

  • bindings/js/WindowProxy.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(NativeToJSValueDOMConvertNeedsState):

  • dom/Document.cpp:
  • dom/Document.h:
  • dom/Document.idl:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):
(WebCore::DOMWindow::self const):
(WebCore::DOMWindow::opener const):
(WebCore::DOMWindow::parent const):
(WebCore::DOMWindow::top const):
(WebCore::DOMWindow::open):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • testing/Internals.cpp:

(WebCore::Internals::openDummyInspectorFrontend):

  • testing/Internals.h:
  • testing/Internals.idl:
4:45 PM Changeset in webkit [230866] by timothy@apple.com
  • 2 edits in trunk/Tools

REGRESSION: API test WebKit.BackgroundColorSystemColor is failing

https://bugs.webkit.org/show_bug.cgi?id=184849
rdar://problem/39386405

Reviewed by Brian Burg.

  • TestWebKitAPI/Tests/mac/BackgroundColor.mm:

(TestWebKitAPI::TEST): Use CGColorEqualToColor since we might get a different
CGColor pointer from NSColor each time.

4:30 PM Changeset in webkit [230865] by mark.lam@apple.com
  • 20 edits in trunk/Source/JavaScriptCore

Some JSEntryPtrTags should actually be JSInternalPtrTags.
https://bugs.webkit.org/show_bug.cgi?id=184712
<rdar://problem/39507381>

Reviewed by Michael Saboff.

  1. Convert some uses of JSEntryPtrTag into JSInternalPtrTags.
  2. Tag all LLInt bytecodes consistently with BytecodePtrTag now and retag them only when needed.
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::callReturnLocation):
(JSC::CallLinkInfo::patchableJump):
(JSC::CallLinkInfo::hotPathBegin):
(JSC::CallLinkInfo::slowPathStart):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::setCallLocations):
(JSC::CallLinkInfo::hotPathOther):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::doneLocation):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::initialize):

  • ftl/FTLLazySlowPath.h:

(JSC::FTL::LazySlowPath::done const):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileDirectCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::lazySlowPath):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:

(JSC::LLInt::getCodePtr):
(JSC::LLInt::getExecutableAddress): Deleted.

  • llint/LLIntExceptions.cpp:

(JSC::LLInt::callToThrow):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

4:24 PM Changeset in webkit [230864] by Chris Dumez
  • 100 edits in trunk

Update cross-origin SecurityError messages to not include the target origin
https://bugs.webkit.org/show_bug.cgi?id=184803
<rdar://problem/39547724>

Reviewed by Sam Weinig.

Source/WebCore:

No new tests, rebaselined existing tests.

  • bindings/js/JSDOMBindingSecurity.cpp:

(WebCore::canAccessDocument):
(WebCore::BindingSecurity::shouldAllowAccessToFrame):
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindow):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::crossDomainAccessErrorMessage):
(WebCore::DOMWindow::isInsecureScriptAccess):

  • page/DOMWindow.h:
  • page/Location.cpp:

(WebCore::Location::reload):

LayoutTests:

  • http/tests/history/cross-origin-replace-history-object-child-expected.txt:
  • http/tests/history/cross-origin-replace-history-object-expected.txt:
  • http/tests/plugins/cross-frame-object-access-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
  • http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-document-write-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-navigate-opener-javascript-url-expected.txt:
  • http/tests/security/aboutBlank/xss-DENIED-set-opener-expected.txt:
  • http/tests/security/contentSecurityPolicy/sandbox-allow-scripts-in-http-header-expected.txt:
  • http/tests/security/cross-frame-access-call-expected.txt:
  • http/tests/security/cross-frame-access-callback-explicit-domain-DENY-expected.txt:
  • http/tests/security/cross-frame-access-child-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-custom-expected.txt:
  • http/tests/security/cross-frame-access-delete-expected.txt:
  • http/tests/security/cross-frame-access-first-time-expected.txt:
  • http/tests/security/cross-frame-access-get-custom-property-cached-expected.txt:
  • http/tests/security/cross-frame-access-get-expected.txt:
  • http/tests/security/cross-frame-access-getOwnPropertyDescriptor-expected.txt:
  • http/tests/security/cross-frame-access-history-get-expected.txt:
  • http/tests/security/cross-frame-access-history-get-override-expected.txt:
  • http/tests/security/cross-frame-access-history-prototype-expected.txt:
  • http/tests/security/cross-frame-access-location-get-expected.txt:
  • http/tests/security/cross-frame-access-location-get-override-expected.txt:
  • http/tests/security/cross-frame-access-location-put-expected.txt:
  • http/tests/security/cross-frame-access-name-getter-expected.txt:
  • http/tests/security/cross-frame-access-object-getPrototypeOf-expected.txt:
  • http/tests/security/cross-frame-access-object-prototype-expected.txt:
  • http/tests/security/cross-frame-access-parent-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-port-expected.txt:
  • http/tests/security/cross-frame-access-protocol-expected.txt:
  • http/tests/security/cross-frame-access-protocol-explicit-domain-expected.txt:
  • http/tests/security/cross-frame-access-put-expected.txt:
  • http/tests/security/cross-frame-access-selection-expected.txt:
  • http/tests/security/cross-origin-reified-window-property-access-expected.txt:
  • http/tests/security/cross-origin-window-property-access-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-sub-frame-to-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-data-url-to-data-url-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-from-javascript-url-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-from-data-url-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-subframe-location-change-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-2-level-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-sub-frame-uppercase-expected.txt:
  • http/tests/security/dataURL/xss-DENIED-to-data-url-window-open-expected.txt:
  • http/tests/security/document-all-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-from-javascript-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-subframe-expected.txt:
  • http/tests/security/javascriptURL/xss-DENIED-to-javascript-url-in-foreign-domain-window-open-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-JSTargetNode-onclick-shortcut-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-addEventListener-expected.txt:
  • http/tests/security/listener/xss-XMLHttpRequest-shortcut-expected.txt:
  • http/tests/security/listener/xss-window-onclick-addEventListener-expected.txt:
  • http/tests/security/listener/xss-window-onclick-shortcut-expected.txt:
  • http/tests/security/location-cross-origin-expected.txt:
  • http/tests/security/sandboxed-iframe-blocks-access-from-parent-expected.txt:
  • http/tests/security/sandboxed-iframe-modify-self-expected.txt:
  • http/tests/security/sandboxed-iframe-origin-add-expected.txt:
  • http/tests/security/sandboxed-iframe-origin-remove-expected.txt:
  • http/tests/security/srcdoc-in-sandbox-cannot-access-parent-expected.txt:
  • http/tests/security/symbols-cross-origin-expected.txt:
  • http/tests/security/window-defineProperty-crossOrigin-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-hash-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-host-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-hostname-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-nonstandardProperty-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-pathname-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-protocol-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-reload-expected.txt:
  • http/tests/security/xss-DENIED-assign-location-search-expected.txt:
  • http/tests/security/xss-DENIED-defineProperty-expected.txt:
  • http/tests/security/xss-DENIED-frame-name-expected.txt:
  • http/tests/security/xss-DENIED-htmlelelment-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-method-with-iframe-proto-expected.txt:
  • http/tests/security/xss-DENIED-named-window-property-from-cross-origin-inactive-document-expected.txt:
  • http/tests/security/xss-DENIED-sandboxed-iframe-expected.txt:
  • http/tests/security/xss-DENIED-synchronous-form-expected.txt:
  • http/tests/security/xss-DENIED-window-name-navigator-expected.txt:
  • http/tests/security/xss-DENIED-xsl-document-securityOrigin-expected.txt:
  • http/tests/security/xssAuditor/block-does-not-leak-location-expected.txt:
  • http/tests/security/xssAuditor/full-block-script-tag-cross-domain-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt:
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt:
4:18 PM Changeset in webkit [230863] by jfbastien@apple.com
  • 4 edits
    1 add in trunk

Handle more JSON stringify OOM
https://bugs.webkit.org/show_bug.cgi?id=184846
<rdar://problem/39390672>

Reviewed by Mark Lam.

JSTests:

  • stress/json-stringified-overflow-2.js: Added. Same as the one

below, but with a bigger input which will trigger a different code
path.
(catch):

  • stress/json-stringified-overflow.js: Modify the test to only

catch OOM on stringification. not on string creation.

Source/WTF:

JSON stringification can OOM easily. Here's another case.

  • wtf/text/StringBuilderJSON.cpp:

(WTF::StringBuilder::appendQuotedJSONString):

3:57 PM Changeset in webkit [230862] by youenn@apple.com
  • 2 edits
    1 add in trunk/Source/ThirdParty/libwebrtc

Mandate H264 hardware encoder for Mac in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=184835

Reviewed by Eric Carlson.

Tested manually through console traces that hardware VCP encoder code path is actually used instead of software VCP encoder code path.

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • WebKit/0001-Update-RTCVideoEncoderH264.mm-for-WebKit.patch: Added to cover this change and changes made in bug 184668 and 183961.
3:28 PM Changeset in webkit [230861] by commit-queue@webkit.org
  • 8 edits
    157 adds in trunk

Update HSL/HSLA parsing to match CSS Color 4
https://bugs.webkit.org/show_bug.cgi?id=180528
<rdar://problem/35926675>

LayoutTests/imported/w3c:

Patch by Chris Nardi <cnardi@chromium.org> on 2018-04-20
Reviewed by Simon Fraser.

CSS Color 4 had many changes to the HSL/HSLA functions, including allowing angles to be
specified as the hue, adding a comma optional syntax, making the two functions synonyms
so each function can take an alpha value, and allowing percent alpha values. This change
updates our behavior to match that, and updates the HSL to RGB algorithm.

This change also updates the import of WPT css-color to test the changes.

  • canvas/2d.fillStyle.parse.invalid.hsl-5-expected.txt:
  • web-platform-tests/css/css-color/OWNERS: Added.
  • web-platform-tests/css/css-color/border-bottom-color-expected.xht: Added.
  • web-platform-tests/css/css-color/border-bottom-color.xht: Added.
  • web-platform-tests/css/css-color/border-left-color-expected.xht: Added.
  • web-platform-tests/css/css-color/border-left-color.xht: Added.
  • web-platform-tests/css/css-color/border-right-color-expected.xht: Added.
  • web-platform-tests/css/css-color/border-right-color.xht: Added.
  • web-platform-tests/css/css-color/border-top-color-expected.xht: Added.
  • web-platform-tests/css/css-color/border-top-color.xht: Added.
  • web-platform-tests/css/css-color/color-001-expected.html: Added.
  • web-platform-tests/css/css-color/color-001.html: Added.
  • web-platform-tests/css/css-color/color-002-expected.html: Added.
  • web-platform-tests/css/css-color/color-002.html: Added.
  • web-platform-tests/css/css-color/color-003-expected.html: Added.
  • web-platform-tests/css/css-color/color-003.html: Added.
  • web-platform-tests/css/css-color/currentcolor-001-expected.html: Added.
  • web-platform-tests/css/css-color/currentcolor-001.html: Added.
  • web-platform-tests/css/css-color/currentcolor-002-expected.html: Added.
  • web-platform-tests/css/css-color/currentcolor-002.html: Added.
  • web-platform-tests/css/css-color/hex-001-expected.html: Added.
  • web-platform-tests/css/css-color/hex-001.html: Added.
  • web-platform-tests/css/css-color/hex-002-expected.html: Added.
  • web-platform-tests/css/css-color/hex-002.html: Added.
  • web-platform-tests/css/css-color/hex-003-expected.html: Added.
  • web-platform-tests/css/css-color/hex-003.html: Added.
  • web-platform-tests/css/css-color/hex-004-expected.html: Added.
  • web-platform-tests/css/css-color/hex-004.html: Added.
  • web-platform-tests/css/css-color/hsl-001-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-001.html: Added.
  • web-platform-tests/css/css-color/hsl-002-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-002.html: Added.
  • web-platform-tests/css/css-color/hsl-003-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-003.html: Added.
  • web-platform-tests/css/css-color/hsl-004-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-004.html: Added.
  • web-platform-tests/css/css-color/hsl-005-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-005.html: Added.
  • web-platform-tests/css/css-color/hsl-006-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-006.html: Added.
  • web-platform-tests/css/css-color/hsl-007-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-007.html: Added.
  • web-platform-tests/css/css-color/hsl-008-expected.html: Added.
  • web-platform-tests/css/css-color/hsl-008.html: Added.
  • web-platform-tests/css/css-color/hsla-001-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-001.html: Added.
  • web-platform-tests/css/css-color/hsla-002-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-002.html: Added.
  • web-platform-tests/css/css-color/hsla-003-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-003.html: Added.
  • web-platform-tests/css/css-color/hsla-004-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-004.html: Added.
  • web-platform-tests/css/css-color/hsla-005-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-005.html: Added.
  • web-platform-tests/css/css-color/hsla-006-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-006.html: Added.
  • web-platform-tests/css/css-color/hsla-007-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-007.html: Added.
  • web-platform-tests/css/css-color/hsla-008-expected.html: Added.
  • web-platform-tests/css/css-color/hsla-008.html: Added.
  • web-platform-tests/css/css-color/htaccess: Added.
  • web-platform-tests/css/css-color/lab-001-expected.html: Added.
  • web-platform-tests/css/css-color/lab-001.html: Added.
  • web-platform-tests/css/css-color/lab-002-expected.html: Added.
  • web-platform-tests/css/css-color/lab-002.html: Added.
  • web-platform-tests/css/css-color/lab-003-expected.html: Added.
  • web-platform-tests/css/css-color/lab-003.html: Added.
  • web-platform-tests/css/css-color/lab-004-expected.html: Added.
  • web-platform-tests/css/css-color/lab-004.html: Added.
  • web-platform-tests/css/css-color/lab-005-expected.html: Added.
  • web-platform-tests/css/css-color/lab-005.html: Added.
  • web-platform-tests/css/css-color/lab-006-expected.html: Added.
  • web-platform-tests/css/css-color/lab-006.html: Added.
  • web-platform-tests/css/css-color/lab-007-expected.html: Added.
  • web-platform-tests/css/css-color/lab-007.html: Added.
  • web-platform-tests/css/css-color/lch-001-expected.html: Added.
  • web-platform-tests/css/css-color/lch-001.html: Added.
  • web-platform-tests/css/css-color/lch-002-expected.html: Added.
  • web-platform-tests/css/css-color/lch-002.html: Added.
  • web-platform-tests/css/css-color/lch-003-expected.html: Added.
  • web-platform-tests/css/css-color/lch-003.html: Added.
  • web-platform-tests/css/css-color/lch-004-expected.html: Added.
  • web-platform-tests/css/css-color/lch-004.html: Added.
  • web-platform-tests/css/css-color/lch-005-expected.html: Added.
  • web-platform-tests/css/css-color/lch-005.html: Added.
  • web-platform-tests/css/css-color/lch-006-expected.html: Added.
  • web-platform-tests/css/css-color/lch-006.html: Added.
  • web-platform-tests/css/css-color/lch-007-expected.html: Added.
  • web-platform-tests/css/css-color/lch-007.html: Added.
  • web-platform-tests/css/css-color/named-001-expected.html: Added.
  • web-platform-tests/css/css-color/named-001.html: Added.
  • web-platform-tests/css/css-color/rgb-001-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-001.html: Added.
  • web-platform-tests/css/css-color/rgb-002-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-002.html: Added.
  • web-platform-tests/css/css-color/rgb-003-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-003.html: Added.
  • web-platform-tests/css/css-color/rgb-004-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-004.html: Added.
  • web-platform-tests/css/css-color/rgb-005-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-005.html: Added.
  • web-platform-tests/css/css-color/rgb-006-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-006.html: Added.
  • web-platform-tests/css/css-color/rgb-007-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-007.html: Added.
  • web-platform-tests/css/css-color/rgb-008-expected.html: Added.
  • web-platform-tests/css/css-color/rgb-008.html: Added.
  • web-platform-tests/css/css-color/rgba-001-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-001.html: Added.
  • web-platform-tests/css/css-color/rgba-002-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-002.html: Added.
  • web-platform-tests/css/css-color/rgba-003-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-003.html: Added.
  • web-platform-tests/css/css-color/rgba-004-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-004.html: Added.
  • web-platform-tests/css/css-color/rgba-005-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-005.html: Added.
  • web-platform-tests/css/css-color/rgba-006-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-006.html: Added.
  • web-platform-tests/css/css-color/rgba-007-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-007.html: Added.
  • web-platform-tests/css/css-color/rgba-008-expected.html: Added.
  • web-platform-tests/css/css-color/rgba-008.html: Added.
  • web-platform-tests/css/css-color/t31-color-currentColor-b.xht:
  • web-platform-tests/css/css-color/t31-color-text-a-expected.xht: Added.
  • web-platform-tests/css/css-color/t31-color-text-a.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-0.0-a-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-0.0-a.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-1.0-a-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-basic-1.0-a.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-clamping-0.0-b-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-clamping-0.0-b.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-clamping-1.0-b-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-clamping-1.0-b.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-offscreen-b-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-offscreen-b.xht: Added.
  • web-platform-tests/css/css-color/t32-opacity-offscreen-multiple-boxes-1-c.xht:
  • web-platform-tests/css/css-color/t32-opacity-offscreen-multiple-boxes-2-c.xht:
  • web-platform-tests/css/css-color/t32-opacity-offscreen-with-alpha-c-expected.html: Added.
  • web-platform-tests/css/css-color/t32-opacity-offscreen-with-alpha-c.xht: Added.
  • web-platform-tests/css/css-color/t41-html4-keywords-a-expected.html: Added.
  • web-platform-tests/css/css-color/t41-html4-keywords-a.xht: Added.
  • web-platform-tests/css/css-color/t421-rgb-clip-outside-gamut-b-expected.html: Added.
  • web-platform-tests/css/css-color/t421-rgb-clip-outside-gamut-b.xht: Added.
  • web-platform-tests/css/css-color/t421-rgb-func-int-a.xht:
  • web-platform-tests/css/css-color/t421-rgb-func-no-mixed-f.xht:
  • web-platform-tests/css/css-color/t421-rgb-func-pct-a.xht:
  • web-platform-tests/css/css-color/t421-rgb-func-whitespace-b.xht:
  • web-platform-tests/css/css-color/t421-rgb-hex-parsing-f.xht:
  • web-platform-tests/css/css-color/t421-rgb-hex3-a.xht:
  • web-platform-tests/css/css-color/t421-rgb-hex6-a.xht:
  • web-platform-tests/css/css-color/t421-rgb-values-meaning-b-expected.html: Added.
  • web-platform-tests/css/css-color/t421-rgb-values-meaning-b.xht: Added.
  • web-platform-tests/css/css-color/t422-rgba-a0.0-a-expected.html: Added.
  • web-platform-tests/css/css-color/t422-rgba-a0.0-a.xht: Added.
  • web-platform-tests/css/css-color/t422-rgba-a1.0-a.xht:
  • web-platform-tests/css/css-color/t422-rgba-clamping-a0.0-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-clamping-a1.0-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-clip-outside-device-gamut-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-func-int-a.xht:
  • web-platform-tests/css/css-color/t422-rgba-func-no-mixed-f.xht:
  • web-platform-tests/css/css-color/t422-rgba-func-pct-a.xht:
  • web-platform-tests/css/css-color/t422-rgba-func-whitespace-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-onscreen-b.xht:
  • web-platform-tests/css/css-color/t422-rgba-onscreen-multiple-boxes-c.xht:
  • web-platform-tests/css/css-color/t422-rgba-values-meaning-b-expected.html: Added.
  • web-platform-tests/css/css-color/t422-rgba-values-meaning-b.xht: Added.
  • web-platform-tests/css/css-color/t423-transparent-1-a.xht:
  • web-platform-tests/css/css-color/t423-transparent-2-a.xht:
  • web-platform-tests/css/css-color/t424-hsl-basic-a.xht:
  • web-platform-tests/css/css-color/t424-hsl-clip-outside-gamut-b.xht:
  • web-platform-tests/css/css-color/t424-hsl-h-rotating-b-expected.html: Added.
  • web-platform-tests/css/css-color/t424-hsl-h-rotating-b.xht: Added.
  • web-platform-tests/css/css-color/t424-hsl-parsing-f.xht:
  • web-platform-tests/css/css-color/t424-hsl-values-b-1.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-10.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-11.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-12.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-13.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-14.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-15.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-2.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-3.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-4.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-5.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-6.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-7.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-8.html:
  • web-platform-tests/css/css-color/t424-hsl-values-b-9.html:
  • web-platform-tests/css/css-color/t425-hsla-clip-outside-device-gamut-b.xht:
  • web-platform-tests/css/css-color/t425-hsla-h-rotating-b-expected.html: Added.
  • web-platform-tests/css/css-color/t425-hsla-h-rotating-b.xht: Added.
  • web-platform-tests/css/css-color/t425-hsla-onscreen-b-expected.html: Added.
  • web-platform-tests/css/css-color/t425-hsla-onscreen-b.xht: Added.
  • web-platform-tests/css/css-color/t425-hsla-onscreen-multiple-boxes-c.xht:
  • web-platform-tests/css/css-color/t425-hsla-parsing-f.xht:
  • web-platform-tests/css/css-color/t425-hsla-values-b.xht:
  • web-platform-tests/css/css-color/t43-svg-keywords-a-expected.html: Added.
  • web-platform-tests/css/css-color/t43-svg-keywords-a.xht: Added.
  • web-platform-tests/css/css-color/t44-currentcolor-background-b.xht:
  • web-platform-tests/css/css-color/t44-currentcolor-border-b-expected.html:
  • web-platform-tests/css/css-color/t44-currentcolor-border-b.xht:
  • web-platform-tests/css/css-color/t44-currentcolor-inherited-c-expected.xht: Added.
  • web-platform-tests/css/css-color/t44-currentcolor-inherited-c.xht: Added.
  • web-platform-tests/css/css-color/w3c-import.log: Added.

Source/WebCore:

CSS Color 4 specifies a comma optional syntax for HSL/HSLA, as well as allowing angle values for the
hue and percent alpha values. Update our parsing to match this.

Patch by Chris Nardi <cnardi@chromium.org> on 2018-04-20
Reviewed by Simon Fraser.

This change also updates the import of WPT css-color to test the changes.

Tests: LayoutTests/imported/w3c/web-platform-tests/css/css-color/hsl{a}-{001-008}.html

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):
(WebCore::CSSPropertyParserHelpers::consumeColor):

  • platform/graphics/Color.cpp:

(WebCore::calcHue):
(WebCore::makeRGBAFromHSLA):

LayoutTests:

Patch by Chris Nardi <cnardi@chromium.org> on 2018-04-20
Reviewed by Simon Fraser.

This change updates our import of web-platform-tests/css/css-color
to test the new behavior.

  • TestExpectations:
  • canvas/philip/tests/2d.fillStyle.parse.invalid.hsl-5-expected.txt:
3:21 PM Changeset in webkit [230860] by Wenson Hsieh
  • 22 edits
    3 adds in trunk

[Extra zoom mode] Injected bundle form client should be notified when editing text fields
https://bugs.webkit.org/show_bug.cgi?id=184822
<rdar://problem/38807319>

Reviewed by Tim Horton.

Source/WebCore:

Export the constructor and destructor of UserTypingGestureIndicator for use in WebKit (see WebPage.cpp).

Test: fast/forms/extrazoom/edit-text-field-calls-injected-bundle.html

  • dom/UserTypingGestureIndicator.h:

Source/WebKit:

Fixes the bug by making a couple of tweaks: (1) don't use a separate codepath for inserting text in text inputs,
and (2) force a user typing gesture when inserting text using this codepath (i.e. WKTextInputListViewController).
Also adds plumbing to enable testing text entry with WKTextInputListViewController in extra zoom mode.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _simulateTextEntered:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Introduce testing SPI to simulate text entry. Additionally, add a missing availability annotation around testing
SPI added in 2017 to help test drag and drop for iOS 11.

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

(-[WKContentView _simulateTextEntered:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setTextAsync):

Tools:

Add WebKitTestRunner support for listening to form editing SPI hooks in the injected bundle. The new layout test
installs callbacks that listen for "begin editing", "end editing", and "text changed" calls to injected bundle
SPI. See other ChangeLogs for more detail.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::enterText):

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:

Add UIScriptController support for simulating text entry in the currently focused element.

  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::enterText):

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:

Add TestRunner bindings for registering injected bundle form client callbacks.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::handleTextDidChangeInTextField):
(WTR::handleTextFieldDidBeginEditing):
(WTR::handleTextFieldDidEndEditing):
(WTR::InjectedBundle::didCreatePage):

Set the injected bundle form editor client.

(WTR::InjectedBundle::setUpInjectedBundleClients):
(WTR::InjectedBundle::textDidChangeInTextField):
(WTR::InjectedBundle::textFieldDidBeginEditing):
(WTR::InjectedBundle::textFieldDidEndEditing):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::installTextDidChangeInTextFieldCallback):
(WTR::TestRunner::textDidChangeInTextFieldCallback):
(WTR::TestRunner::installTextFieldDidBeginEditingCallback):
(WTR::TestRunner::textFieldDidBeginEditingCallback):
(WTR::TestRunner::installTextFieldDidEndEditingCallback):
(WTR::TestRunner::textFieldDidEndEditingCallback):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::enterText):

LayoutTests:

Add a new layout test that focuses an input field, simulates text entry, and verifies that the injected bundle
form client's textDidChangeInTextField, textFieldDidBeginEditing and textFieldDidEndEditing functions are called.

Skip tests in fast/forms/extrazoom by default.

  • fast/forms/extrazoom/edit-text-field-calls-injected-bundle-expected.txt: Added.
  • fast/forms/extrazoom/edit-text-field-calls-injected-bundle.html: Added.
  • resources/ui-helper.js:

(window.UIHelper.enterText):

Introduce a new UIHelper method to simulate text entry in the currently focused element.

(window.UIHelper):

3:16 PM Changeset in webkit [230859] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

EnterFullscreen must update the minimum and maximum layout sizes.
https://bugs.webkit.org/show_bug.cgi?id=184828
rdar://problem/38435829

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-20
Reviewed by Jon Lee.

Without this, the WKWebView won't layout to the full size in fullscreen mode.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]):

3:14 PM Changeset in webkit [230858] by jer.noble@apple.com
  • 18 edits in trunk/Source

Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds
https://bugs.webkit.org/show_bug.cgi?id=184762

Reviewed by Dan Bernstein.

Source/bmalloc:

  • Configurations/Base.xcconfig:

Source/JavaScriptCore:

  • Configurations/Base.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:

Source/ThirdParty/ANGLE:

  • Configurations/Base.xcconfig:

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • Configurations/CopyPALHeaders.xcconfig:
  • Configurations/PAL.xcconfig:

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:

Source/WTF:

  • Configurations/Base.xcconfig:
3:03 PM Changeset in webkit [230857] by youenn@apple.com
  • 7 edits
    2 copies in trunk

Refactor NetworkResourceLoader to check for m_networkLoadChecker presence before using it
https://bugs.webkit.org/show_bug.cgi?id=184755

Reviewed by Chris Dumez.

Source/WebKit:

Make NetworkResourceLoader always use m_networkLoadChecker if there is one.
This is only used now for synchronous loads but will be used in the future for asynchronous loads as well.

Since we call didFail asynchronously to make sync/async handling more consistent,
We need to keep track of whether we will do clean-up twice.
A boolean is added for that purpose in NetworkResourceLoader.

There is a small change of behavior in the way we return an error.
Instead of returning a platformBadResponseError, we are now returning the error as computed by NetworkLoadChecker.
This allows getting some more error logging in the JS console.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:

LayoutTests:

Made specific WK1 expectations as WK2 now has console messages for sync XHR that WK1 does not have.
Dump JS console log in stderr for redirect-cross-origin-sync-double.html as the test does not rely on it
and this allows keeping a single expected.txt file for WK1 and WK2.

  • TestExpectations:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt:
  • platform/mac-wk1/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt: Added.
  • platform/win/http/tests/xmlhttprequest/redirect-cross-origin-tripmine-expected.txt: Added.
2:10 PM Changeset in webkit [230856] by dbates@webkit.org
  • 20 edits in trunk/Source

Remove code for compilers that did not support NSDMI for aggregates
https://bugs.webkit.org/show_bug.cgi?id=184599

Reviewed by Per Arne Vollan.

Remove workaround for earlier Visual Studio versions that did not support non-static data
member initializers (NSDMI) for aggregates. We have since updated all the build.webkit.org
and EWS bots to a newer version that supports this feature.

Source/bmalloc:

  • bmalloc/BPlatform.h:
  • bmalloc/List.h:

(bmalloc::ListNode::ListNode): Deleted.
(bmalloc::List::iterator::iterator): Deleted.

Source/JavaScriptCore:

  • domjit/DOMJITEffect.h:

(JSC::DOMJIT::Effect::Effect): Deleted.

  • runtime/HasOwnPropertyCache.h:

(JSC::HasOwnPropertyCache::Entry::Entry): Deleted.

  • wasm/WasmFormat.h:

(JSC::Wasm::WasmToWasmImportableFunction::WasmToWasmImportableFunction): Deleted.

Source/WebCore:

  • Modules/cache/CacheQueryOptions.h:

(WebCore::CacheQueryOptions::CacheQueryOptions): Deleted.

  • dom/Node.h:

(WebCore::Node::InsertionType::InsertionType): Deleted.
(WebCore::Node::RemovalType::RemovalType): Deleted.

  • html/canvas/CanvasStyle.h:

(WebCore::CanvasStyle::CMYKAColor::CMYKAColor): Deleted.

  • page/EventHandler.h:

(WebCore::EventHandler::DragTargetResponse::DragTargetResponse): Deleted.

  • page/animation/CSSAnimationController.h:

(WebCore::AnimationUpdate::AnimationUpdate): Deleted.

  • platform/graphics/FontSelectionAlgorithm.h:

(WebCore::FontSelectionRequest::tied const):
(WebCore::FontSelectionRequest::FontSelectionRequest): Deleted.
(WebCore::FontSelectionCapabilities::FontSelectionCapabilities): Deleted.

  • platform/mediastream/IceCandidate.h:

(WebCore::IceCandidate::IceCandidate): Deleted.

  • platform/text/StringWithDirection.h:

(WebCore::StringWithDirection::StringWithDirection): Deleted.

  • rendering/MarkedText.h:

(WebCore::MarkedText::MarkedText): Deleted.

  • style/StyleUpdate.h:

(WebCore::Style::ElementUpdate::ElementUpdate): Deleted.
(WebCore::Style::ElementUpdates::ElementUpdates): Deleted.
(WebCore::Style::TextUpdate::TextUpdate): Deleted.

Source/WTF:

  • wtf/Compiler.h:
2:02 PM Changeset in webkit [230855] by n_wang@apple.com
  • 3 edits in trunk/LayoutTests

Layout Test accessibility/mac/async-increment-decrement-action.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=184834
<rdar://problem/39604753>

Reviewed by Chris Fleizach.

Changed the test to just make sure the increment/decrement actions are async, that
they won't block the test by changing the object's value.

  • accessibility/mac/async-increment-decrement-action-expected.txt:
  • accessibility/mac/async-increment-decrement-action.html:
2:01 PM Changeset in webkit [230854] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit

Include missing files in WKContentViewInteraction.{mm,h}

https://bugs.webkit.org/show_bug.cgi?id=184832
rdar://problem/35377120

Reviewed by Wenson Hsieh.

Some WebDriver files were missing and should be included.

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

(-[WKContentView setupInteraction]):
(-[WKContentView cleanupInteraction]):
(-[WKContentView _removeDefaultGestureRecognizers]):
(-[WKContentView _addDefaultGestureRecognizers]):

2:01 PM Changeset in webkit [230853] by youenn@apple.com
  • 9 edits in trunk

WebPage sometimes incorrectly rules out PDF as a mime type that can be showed
https://bugs.webkit.org/show_bug.cgi?id=184369

Reviewed by Chris Dumez.

Source/WebCore:

WebPage does need to check for plugins at reception of the response.
In that case, the page URL is the URL from which we are navigating out.
Add plugin API to check for plugin availability with an extra URL parameter to cover that case.

Covered by API test.

  • plugins/PluginData.cpp:

(WebCore::PluginData::supportsWebVisibleMimeTypeForURL const):
(WebCore::PluginData::supportsWebVisibleMimeType const):

  • plugins/PluginData.h:

Source/WebKit:

Use API to check for plugin availability for response at navigation time.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canShowResponse const):
(WebKit::WebPage::canShowMIMEType const):

  • WebProcess/WebPage/WebPage.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm:

(TEST):

1:57 PM Changeset in webkit [230852] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Build fix for internal builds after r230826.
https://bugs.webkit.org/show_bug.cgi?id=184790
<rdar://problem/39301369>

Not reviewed.

  • runtime/Options.cpp:

(JSC::overrideDefaults):

  • tools/SigillCrashAnalyzer.cpp:

(JSC::SignalContext::dump):

1:45 PM Changeset in webkit [230851] by dbates@webkit.org
  • 25 edits
    5 adds in trunk

Remove Strong Password decoration when text field type changes
https://bugs.webkit.org/show_bug.cgi?id=184795
<rdar://problem/38325108>

Reviewed by Antti Koivisto.

Source/WebCore:

Remove the Strong Password decoration when the text field's type changes to avoid interfering
with web sites that allow a person to show/hide their password.

Test: fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):

Source/WebKit:

Add injected bundle API and WebKit UI delegate SPI to notify the embedding client when the
Strong Password appearance of an HTML input element is resigned.

We add C SPI for Safari on Mac.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didResignInputElementStrongPasswordAppearance):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/C/WKPageUIClient.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didResignInputElementStrongPasswordAppearance):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didResignInputElementStrongPasswordAppearance):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:

(API::InjectedBundle::PageUIClient::didResignInputElementStrongPasswordAppearance):

  • WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:

(WebKit::InjectedBundlePageUIClient::didResignInputElementStrongPasswordAppearance):

  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::inputElementDidResignStrongPasswordAppearance):

  • WebProcess/WebCoreSupport/WebChromeClient.h:

Tools:

Add a unit test to ensure the injected bundle API and WebKit UI delegate SPI is invoked
when the field has the Strong Password button and its type changes.

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

(didResignInputElementStrongPasswordAppearance):
(-[DidResignInputElementStrongPasswordAppearance webProcessPlugIn:didCreateBrowserContextController:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(-[DidResignInputElementStrongPasswordAppearanceDelegate _webView:didResignInputElementStrongPasswordAppearanceWithUserInfo:]):
(-[DidResignInputElementStrongPasswordAppearanceDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST):

LayoutTests:

Add tests to ensure that we remove the Strong Password decoration when the text field's type changes.

Extract code to toggle showing the AutoFill button from fast/forms/auto-fill-button/input-{disabled, readonly}-strong-password-and-strong-confirmation-password-auto-fill-buttons.html
into a new file fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js
that can be shared.

  • fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes-expected.html: Added.
  • fast/forms/auto-fill-button/hide-strong-password-when-field-type-changes.html: Added.
  • fast/forms/auto-fill-button/input-disabled-strong-password-and-strong-confirmation-password-auto-fill-buttons.html:
  • fast/forms/auto-fill-button/input-readonly-strong-password-and-strong-confirmation-password-auto-fill-buttons.html:
  • fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js: Added.

(window.onload):

1:40 PM Changeset in webkit [230850] by Megan Gardner
  • 3 edits
    2 adds in trunk

Fixes for failing tests associated with switching Text Selection Assistants
https://bugs.webkit.org/show_bug.cgi?id=184806
<rdar://problem/39367905>

Reviewed by Beth Dakin and Wenson Hsieh.

The major fix is the disabling the double tap noneditable text selection gesture.
The other fixes are small tweaks that shouldn't even be run into with the fix to
the double tap gesture, but they are incorrect, so I am taking the opportunity to
fix them now, in case we run into them again.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
We should not be allowing a double tap text gestures in non-editable web content.
We didn't have one with the old assistant. Fortunately, this is easily disabled.
(-[WKContentView canPerformActionForWebView:withSender:]):
We should not allow the lookup action if we do not actually have a selection.
It is meaningless without one.
(-[WKContentView selectedTextRange]):
We should not return a selection to UIKit if all we have is caret selection
in non-editable content. We have this for selections on Mac, but UIKit does
not know how to properly handle this, and will have incorrect behavior if we
return a valid selection.

1:12 PM Changeset in webkit [230849] by timothy@apple.com
  • 5 edits
    1 copy in trunk/Source/WebKit

WebEvent fails to convert synthetic WebMouseEvent for automation

https://bugs.webkit.org/show_bug.cgi?id=184824
rdar://problem/35377120

Reviewed by Brian Burg.

Add WebEvent conversions that existed in PlatformEventFactoryIOS for legacy WebKit,
but never got added in WebIOSEventFactory and NativeWebMouseEvent for modern WebKit.
This affected WebDriver, and some events not being deliverd to the page.

  • Shared/NativeWebMouseEvent.h:

(WebKit::NativeWebMouseEvent::nativeEvent const):

  • Shared/ios/NativeWebMouseEventIOS.mm: Added.

(WebKit::NativeWebMouseEvent::NativeWebMouseEvent):

  • Shared/ios/WebIOSEventFactory.h:
  • Shared/ios/WebIOSEventFactory.mm:

(WebIOSEventFactory::createWebMouseEvent):

  • WebKit.xcodeproj/project.pbxproj:
1:06 PM Changeset in webkit [230848] by jfernandez@igalia.com
  • 28 edits
    10 adds in trunk

Update Alignment shorthands to the spec now that they are not ambiguous
https://bugs.webkit.org/show_bug.cgi?id=184812

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Imported new Web Platform Tests from the css-align test suite.
Additionally, updated the ones we already have to verify the new shorthand syntax is correct.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-align/OWNERS: Added.
  • web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html:
  • web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html:
  • web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt:
  • web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html:
  • web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html:
  • web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html:
  • web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html:
  • web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html:
  • web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt:
  • web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html:
  • web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001-expected.txt: Added.
  • web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html: Added.
  • web-platform-tests/css/css-align/default-alignment/w3c-import.log:
  • web-platform-tests/css/css-align/gaps/column-gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/column-gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/gap-normal-computed-001-expected.txt: Added.
  • web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht: Added.
  • web-platform-tests/css/css-align/gaps/gap-normal-used-001.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht: Added.
  • web-platform-tests/css/css-align/gaps/gap-normal-used-002.html: Added.
  • web-platform-tests/css/css-align/gaps/gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/grid-gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/grid-gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/row-gap-parsing-001-expected.txt:
  • web-platform-tests/css/css-align/gaps/row-gap-parsing-001.html:
  • web-platform-tests/css/css-align/gaps/w3c-import.log:
  • web-platform-tests/css/css-align/resources/alignment-parsing-utils.js:
  • web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html:
  • web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html:
  • web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt:
  • web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html:
  • web-platform-tests/css/css-align/w3c-import.log: Added.

Source/WebCore:

Now that the issue [1] about the syntax ambiguity has been resolved we
don't need to use the custom syntax anymore. The Alignment shorthands
use now the simple syntax, defined based on the longhands' syntax.

Since we allow all the values valid for each longhand, we'll update
in this CL the corresponding web platform tests. Additionally, this CL
updates also the shorthand serialization tests [2], which didn't
consider the new value 'legacy' for justify-items (and place-items) due
to the bug [3] Firefox still has pending to be fixed.

[1] https://github.com/w3c/csswg-drafts/issues/1001
[2] css/css-align/default-alignment/shorthand-serialization-001.html
[3] https://bugzilla.mozilla.org/show_bug.cgi?id=1363875

Tests: imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html

imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html
imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html
imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumePlaceContentShorthand): Using the justify-content and align-content parsing logic to parse the shorthand.
(WebCore::CSSPropertyParser::consumePlaceItemsShorthand): Using the justify-items and align-items parsing logic to parse the shorthand.
(WebCore::CSSPropertyParser::consumePlaceSelfShorthand): Using the justify-self and align-self parsing logic to parse the shorthand.

12:39 PM Changeset in webkit [230847] by dbates@webkit.org
  • 5 edits
    2 deletes in trunk

Unreviewed, rolling out r230117.

Broke find-in-page for PDFs

Reverted changeset:

"ASSERTION FAILED: ASSERT(!containsImage

MIMETypeRegistry::isSupportedImageResourceMIMEType([resource
MIMEType])) in -[NSPasteboard(WebExtras)
_web_writePromisedRTFDFromArchive:containsImage:]"
https://bugs.webkit.org/show_bug.cgi?id=184161
https://trac.webkit.org/changeset/230117

12:01 PM Changeset in webkit [230846] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Pausing should clear m_waitingToEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=184831
<rdar://problem/39602852>

Reviewed by Jer Noble.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause): Clear m_waitingToEnterFullscreen

11:36 AM Changeset in webkit [230845] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Extra zoom mode] Disable CA transactions while setting up for fullscreen
https://bugs.webkit.org/show_bug.cgi?id=184817
<rdar://problem/39596075>

Reviewed by Jer Noble.

This was tested manually as it is not possible to write an automated test for this.

  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(VideoFullscreenInterfaceAVKit::doSetup): Move the call to disable CA transactions outside
of the EXTRA_ZOOM_MODE check, the [CATransaction commit] was already unguarded.

11:00 AM Changeset in webkit [230844] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix -Wformat warning

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFinishLoadForFrame):

10:45 AM Changeset in webkit [230843] by youenn@apple.com
  • 14 edits in trunk/Source

Make PluginData cache its web visible plugins
https://bugs.webkit.org/show_bug.cgi?id=184421

Reviewed by Chris Dumez.

Source/WebCore:

Buffer visible plugins until the page URL changes.
For that purpose, we now cache the visible plugins and the URL it was computed from in PluginData.

Update plugin info provider API to pass the URL used to check for plugin visibility.

No observable change of behavior.

  • loader/EmptyClients.cpp:
  • plugins/PluginData.cpp:

(WebCore::PluginData::webVisiblePlugins const):
(WebCore::PluginData::publiclyVisiblePlugins const):
(WebCore::PluginData::supportsMimeType const):

  • plugins/PluginData.h:
  • plugins/PluginInfoProvider.h:

Source/WebKit:

Rename methods.
Pass an URL instead of relying on Page URL as the page URL
might not always be the URL we want to check against plugins.
In particular when navigation is on-going, we want to check the
plugins against the being navigated URL.

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::pluginInfo):
(WebKit::WebPluginInfoProvider::webVisiblePluginInfo):

  • WebProcess/Plugins/WebPluginInfoProvider.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPluginInfoProvider.h:
  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):
(WebPluginInfoProvider::webVisiblePluginInfo):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebPluginInfoProvider.cpp:

(WebPluginInfoProvider::pluginInfo):
(WebPluginInfoProvider::webVisiblePluginInfo):

  • WebCoreSupport/WebPluginInfoProvider.h:
10:03 AM Changeset in webkit [230842] by beidson@apple.com
  • 2 edits in trunk/Tools

Add a test to verify load/unload/pageshow/pagehide all work with process swapping.
https://bugs.webkit.org/show_bug.cgi?id=184807

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONMessageHandler userContentController:didReceiveScriptMessage:]):

9:19 AM Changeset in webkit [230841] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r230840.

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::attachDebugger):

9:12 AM Changeset in webkit [230840] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed attempt to fix the Windows build after r230831.

  • bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::create):
(WebCore::JSWindowProxy::attachDebugger):

6:24 AM Changeset in webkit [230839] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Mark TestJSC as slow in debug.

Only /jsc/vm is slow, but GLib API test runner only checks the test binary for GLib tests.

  • TestWebKitAPI/glib/TestExpectations.json:
5:08 AM Changeset in webkit [230838] by commit-queue@webkit.org
  • 8 edits in trunk

Omit default value when serializing font-feature-settings
https://bugs.webkit.org/show_bug.cgi?id=182382

Patch by Chris Nardi <cnardi@chromium.org> on 2018-04-20
Reviewed by Myles C. Maxfield.

Source/WebCore:

According to the shortest-serialization principle [1], values should be omitted if their omission
wouldn't change the value of reparsing. As "1"/"on" is the default value for font-feature-settings,
omit this when serializing, matching the behavior of Firefox and Chrome.

[1]: https://github.com/w3c/csswg-drafts/issues/1564

Updated css3/font-feature-settings-parsing.html, fast/css/inherited-properties-rare-text.html,
and fast/text/font-face-javascript.html.

  • css/CSSFontFeatureValue.cpp:

(WebCore::CSSFontFeatureValue::customCSSText const):

LayoutTests:

Update tests to omit default value when serializing.

  • css3/font-feature-settings-parsing-expected.txt:
  • css3/font-feature-settings-parsing.html:
  • fast/css/inherited-properties-rare-text-expected.txt:
  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
3:33 AM Changeset in webkit [230837] by Carlos Garcia Campos
  • 5 edits in trunk

[GTK] Local cross references are broken in API documentation
https://bugs.webkit.org/show_bug.cgi?id=184771

Reviewed by Michael Catanzaro.

.:

Update the documentation html paths and install the JSC GLib API too.

  • Source/PlatformGTK.cmake:

Tools:

The problem is that gtkdoc-fixxref expects the links to be in the form html/modulename (like the installed
ones), but we generate the documentation as modulename/html. So, links to WebKitDOM or JSC are generated as
../html/Foo. The rebase command considers html to be the module name in this case, creating broken links in all
the cases.

  • gtk/gtkdoc.py:

(GTKDoc._copy_doc_files_to_output_dir): We don't have any html dir in the source tree so, we are not copying
anything here.
(GTKDoc._run_gtkdoc_mkhtml): Create the html dir here using html/modulename instead now.
(GTKDoc._run_gtkdoc_fixxref): Pass the new directory as module dir to gtkdoc-fixxref and fix several links for
which gtkdoc-fixxref always uses absolute paths.

  • gtk/manifest.txt.in: Update the documentation html paths and include the JSC GLib API in the tarball too.
Note: See TracTimeline for information about the timeline view.