WebKit-https.git
13 months agoAdd self.queueMicrotask(f) on DOMWindow
utatane.tea@gmail.com [Thu, 2 Aug 2018 03:55:47 +0000 (03:55 +0000)]
Add self.queueMicrotask(f) on DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=188212

Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* runtime/JSGlobalObject.cpp:
(JSC::enqueueJob):
* runtime/JSMicrotask.cpp: Renamed from Source/JavaScriptCore/runtime/JSJob.cpp.
(JSC::createJSMicrotask):
Export them to WebCore.

(JSC::JSMicrotask::run):
* runtime/JSMicrotask.h: Renamed from Source/JavaScriptCore/runtime/JSJob.h.
Add another version of JSMicrotask which does not have arguments.

Source/WebCore:

This patch adds self.queueMicrotask(f) in DOMWindow, which takes a function and enqueue it into microtask queue.
We do not add this to Worker's global scope since our worker does not support microtasks correctly.

Tests: js/dom/queue-microtask-window.html

* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::queueMicrotask):
Post a microtask to JSC's microtask mechanism. This will eventually go to WebCore's MicrotaskQueue code.

* page/DOMWindow.idl:

LayoutTests:

* js/dom/queue-microtask-window-expected.txt: Added.
* js/dom/queue-microtask-window.html: Added.

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

13 months agoTestWTF.WTF_NeverDestroyed.Construct output differs for MSVC in Debug mode
ross.kirsling@sony.com [Thu, 2 Aug 2018 02:19:04 +0000 (02:19 +0000)]
TestWTF.WTF_NeverDestroyed.Construct output differs for MSVC in Debug mode
https://bugs.webkit.org/show_bug.cgi?id=188244

Reviewed by Daniel Bates.

Follow-up to r234179. MSVC chooses not to inline the lambda in Debug mode.

* TestWebKitAPI/Tests/WTF/NeverDestroyed.cpp:

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

13 months ago[WTF] Rename String::format to String::deprecatedFormat
tpopela@redhat.com [Thu, 2 Aug 2018 02:11:46 +0000 (02:11 +0000)]
[WTF] Rename String::format to String::deprecatedFormat
https://bugs.webkit.org/show_bug.cgi?id=188191

Reviewed by Darin Adler.

It should be replaced with string concatenation.

Source/JavaScriptCore:

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::nameForRegister):
* inspector/InjectedScriptBase.cpp:
(Inspector::InjectedScriptBase::makeCall):
* inspector/InspectorBackendDispatcher.cpp:
(Inspector::BackendDispatcher::getPropertyValue):
* inspector/agents/InspectorConsoleAgent.cpp:
(Inspector::InspectorConsoleAgent::enable):
(Inspector::InspectorConsoleAgent::stopTiming):
* jsc.cpp:
(FunctionJSCStackFunctor::operator() const):
* parser/Lexer.cpp:
(JSC::Lexer<T>::invalidCharacterMessage const):
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
* runtime/IntlObject.cpp:
(JSC::canonicalizeLocaleList):
* runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::parse):
* runtime/LiteralParser.h:
(JSC::LiteralParser::getErrorMessage):

Source/WebCore:

* Modules/indexeddb/IDBKeyData.cpp:
(WebCore::IDBKeyData::loggingString const):
* Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:
(WebCore::IDBServer::SQLiteIDBBackingStore::addRecord):
* Modules/indexeddb/shared/IDBCursorInfo.cpp:
(WebCore::IDBCursorInfo::loggingString const):
* Modules/indexeddb/shared/IDBGetAllRecordsData.cpp:
(WebCore::IDBGetAllRecordsData::loggingString const):
* Modules/indexeddb/shared/IDBGetRecordData.cpp:
(WebCore::IDBGetRecordData::loggingString const):
* Modules/indexeddb/shared/IDBIndexInfo.cpp:
(WebCore::IDBIndexInfo::loggingString const):
(WebCore::IDBIndexInfo::condensedLoggingString const):
* Modules/indexeddb/shared/IDBIterateCursorData.cpp:
(WebCore::IDBIterateCursorData::loggingString const):
* Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
(WebCore::IDBObjectStoreInfo::condensedLoggingString const):
* Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
(WebCore::IDBResourceIdentifier::loggingString const):
* Modules/webdatabase/Database.cpp:
(WebCore::formatErrorMessage):
* Modules/webdatabase/SQLError.h:
(WebCore::SQLError::create):
* Modules/websockets/WebSocket.cpp:
(WebCore::encodeProtocolString):
* accessibility/win/AccessibilityObjectWrapperWin.cpp:
(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):
* css/CSSUnicodeRangeValue.cpp:
(WebCore::CSSUnicodeRangeValue::customCSSText const):
* css/MediaQueryEvaluator.cpp:
(WebCore::aspectRatioValueAsString):
* css/parser/CSSParserToken.cpp:
(WebCore::CSSParserToken::serialize const):
* css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseHexColor):
* dom/Document.cpp:
(WebCore::Document::lastModified):
* html/FTPDirectoryDocument.cpp:
(WebCore::processFilesizeString):
(WebCore::processFileDateString):
* html/HTMLMediaElement.h:
(WTF::ValueToString<WebCore::TextTrackCue::string):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setLength):
* html/ImageDocument.cpp:
(WebCore::ImageDocument::imageUpdated):
* html/canvas/WebGLRenderingContextBase.cpp:
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
* html/track/VTTCue.cpp:
(WebCore::VTTCueBox::applyCSSProperties):
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::setDockingUnavailable):
(WebCore::InspectorFrontendClientLocal::setAttachedWindow):
(WebCore::InspectorFrontendClientLocal::setDebuggingEnabled):
(WebCore::InspectorFrontendClientLocal::setTimelineProfilingEnabled):
(WebCore::InspectorFrontendClientLocal::showMainResourceForFrame):
* inspector/agents/InspectorCSSAgent.cpp:
* inspector/agents/InspectorIndexedDBAgent.cpp:
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::windowRoundedCornerRadiusCSS const):
* page/History.cpp:
(WebCore::History::stateObjectAdded):
* page/MemoryRelease.cpp:
(WebCore::logMemoryStatisticsAtTimeOfDeath):
* page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::formatByteNumber):
(WebCore::gcTimerString):
(WebCore::ResourceUsageOverlay::platformDraw):
* page/cocoa/ResourceUsageThreadCocoa.mm:
(WebCore::logFootprintComparison):
* page/linux/ResourceUsageOverlayLinux.cpp:
(WebCore::cpuUsageString):
(WebCore::formatByteNumber):
(WebCore::gcTimerString):
* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::snapOffsetsToString):
(WebCore::snapOffsetRangesToString):
(WebCore::snapPortOrAreaToString):
* platform/DateComponents.cpp:
(WebCore::DateComponents::toStringForTime const):
(WebCore::DateComponents::toString const):
* platform/LocalizedStrings.cpp:
* platform/animation/TimingFunction.cpp:
(WebCore::TimingFunction::cssText const):
* platform/audio/HRTFElevation.cpp:
(WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
* platform/cocoa/KeyEventCocoa.mm:
(WebCore::keyIdentifierForCharCode):
* platform/gamepad/mac/HIDGamepad.cpp:
(WebCore::HIDGamepad::HIDGamepad):
* platform/glib/UserAgentGLib.cpp:
(WebCore::platformVersionForUAString):
* platform/graphics/Color.cpp:
(WebCore::Color::nameForRenderTreeAsText const):
* platform/graphics/FloatPolygon.h:
(WTF::ValueToString<WebCore::FloatPolygonEdge::string):
* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::AVTrackPrivateAVFObjCImpl::id const):
* platform/graphics/avfoundation/MediaSampleAVFObjC.h:
(WebCore::MediaSampleAVFObjC::MediaSampleAVFObjC):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/gstreamer/GStreamerCommon.cpp:
(WebCore::simpleBusMessageCallback):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::handleStateChangeMessage):
(WebCore::AppendPipeline::resetPipeline):
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::encodeImage):
* platform/gtk/PlatformKeyboardEventGtk.cpp:
(WebCore::PlatformKeyboardEvent::keyIdentifierForGdkKeyCode):
* platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp:
(WebCore::GStreamerAudioCaptureSource::create):
* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebCore::webkitMediaStreamSrcAddPad):
* platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp:
(WebCore::GStreamerVideoCaptureSource::create):
* platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoder::makeElement):
* platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::drawText):
* platform/mock/mediasource/MockSourceBufferPrivate.cpp:
* platform/network/ParsedContentRange.cpp:
(WebCore::ParsedContentRange::headerValue const):
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::switchToNewTestingSession):
* platform/sql/SQLiteDatabase.cpp:
(WebCore::unauthorizedSQLFunction):
* platform/text/PlatformLocale.cpp:
(WebCore::DateTimeStringBuilder::visitField):
* platform/win/GDIObjectCounter.cpp:
(WebCore::GDIObjectCounter::GDIObjectCounter):
* platform/win/KeyEventWin.cpp:
(WebCore::keyIdentifierForWindowsKeyCode):
* rendering/FloatingObjects.h:
(WTF::ValueToString<WebCore::FloatingObject::string):
* rendering/RenderFragmentedFlow.h:
(WTF::ValueToString<WebCore::RenderFragmentContainer::string):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::formatMediaControlsTime const):
* testing/Internals.cpp:
(WebCore::Internals::address):
* workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::RegistrationDatabase::importRecords):

Source/WebCore/PAL:

* pal/FileSizeFormatter.cpp:
(fileSizeDescription):

Source/WebKit:

* NetworkProcess/soup/NetworkProcessSoup.cpp:
(WebKit::buildAcceptLanguages):
* Platform/IPC/win/ConnectionWin.cpp:
(IPC::Connection::createServerAndClientIdentifiers):
* Shared/WebMemorySampler.cpp:
(WebKit::WebMemorySampler::writeHeaders):
* Shared/win/WebEventFactory.cpp:
(WebKit::keyIdentifierFromEvent):
* Shared/wpe/WebEventFactory.cpp:
(WebKit::identifierStringForKeyEvent):
* UIProcess/API/APINavigation.cpp:
(API::Navigation::loggingString const):
* UIProcess/API/glib/IconDatabase.cpp:
(WebKit::IconDatabase::performURLImport):
* UIProcess/Cocoa/ViewGestureController.cpp:
(WebKit::ViewGestureController::SnapshotRemovalTracker::startWatchdog):
* UIProcess/SuspendedPageProxy.cpp:
(WebKit::SuspendedPageProxy::loggingString const):
* UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::loggingString):
* UIProcess/WebInspectorUtilities.cpp:
(WebKit::inspectorPageGroupIdentifierForPage):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::startMemorySampler):
* UIProcess/gtk/InputMethodFilter.cpp:
(WebKit::InputMethodFilter::logHandleKeyboardEventForTesting):
(WebKit::InputMethodFilter::logHandleKeyboardEventWithCompositionResultsForTesting):
(WebKit::InputMethodFilter::logConfirmCompositionForTesting):
(WebKit::InputMethodFilter::logSetPreeditForTesting):

Source/WebKitLegacy/win:

* FullscreenVideoController.cpp:
(timeToString):
* WebView.cpp:
(webKitVersionString):

Source/WTF:

* wtf/Assertions.cpp:
* wtf/JSONValues.cpp:
* wtf/WorkQueue.cpp:
(WTF::WorkQueue::concurrentApply):
* wtf/dtoa.cpp:
(WTF::dtoa):
* wtf/text/WTFString.cpp:
(WTF::String::deprecatedFormat):
(WTF::String::format): Deleted.
* wtf/text/WTFString.h:

Tools:

* DumpRenderTree/win/DumpRenderTree.cpp:
(applicationId):
(main):
* TestWebKitAPI/win/PlatformUtilitiesWin.cpp:
(TestWebKitAPI::Util::createURLForResource):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::cacheTestRunnerCallback):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
(WTR::AccessibilityNotificationHandler::connectAccessibilityCallbacks):
* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::url):
(WTR::stringAtOffset):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::downloadDidFail):
(WTR::originUserVisibleName):
(WTR::userMediaOriginHash):
(WTR::TestController::didNavigateWithNavigationData):
(WTR::TestController::didPerformClientRedirect):
(WTR::TestController::didPerformServerRedirect):
(WTR::TestController::didUpdateHistoryTitle):

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

13 months agoUsing the keyboard arrow keys to scroll a webpage is very slow, not smooth, takes...
timothy_horton@apple.com [Thu, 2 Aug 2018 00:30:10 +0000 (00:30 +0000)]
Using the keyboard arrow keys to scroll a webpage is very slow, not smooth, takes too long
https://bugs.webkit.org/show_bug.cgi?id=188239
<rdar://problem/22997654>

Reviewed by Simon Fraser.

Source/WebCore/PAL:

* pal/spi/cocoa/QuartzCoreSPI.h:
Add a piece of SPI.

Source/WebKit:

Instead of depending on key repeat to drive scrolling with arrow keys held down,
run a display link that animates the scroll. We still do a single discrete scroll
first (so that you can tap the key and shift by line/page), but then on the first
repeat we ramp up to a constant velocity determined by the desired increment,
stopping when the key is lifted or a different key is pressed.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _scrollByContentOffset:animated:]):
(-[WKWebView _scrollByContentOffset:]): Deleted.
* UIProcess/API/Cocoa/WKWebViewInternal.h:
Add animated parameter to scrollByContentOffset, and plumb it through to UIScrollView.

* UIProcess/ios/WKContentViewInteraction.h:
Add a WKKeyboardScrollingAnimator member.
Conform to WKKeyboardScrollable.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setupInteraction]):
Install the WKKeyboardScrollingAnimator.

(-[WKContentView cleanupInteraction]):
Uninstall the WKKeyboardScrollingAnimator.

(-[WKContentView unscaledView]):
Fix a stupid style nit.

(-[WKContentView handleKeyWebEvent:]):
Give WKKeyboardScrollingAnimator the first shot at incoming keyboard events.
It will only consume events here if it's already performing a scrolling animation
(because otherwise they should go straight through to the page).

(-[WKContentView _interpretKeyEvent:isCharEvent:]):
Give WKKeyboardScrollingAnimator a shot at handling keyboard events that
the web content did not handle. We will only start a scrolling animation
if the page did not handle an event that would start a scroll.

(-[WKContentView isKeyboardScrollable]):
Part of WKKeyboardScrollable; only report ourselves as scrollable if
we would previously have allowed scrolling from keyboard events (if
we're not in contenteditable, and don't have a <select> focused).

(-[WKContentView distanceForScrollingIncrement:]):
Part of WKKeyboardScrollable; compute the distance for each scrolling increment.

(-[WKContentView scrollByContentOffset:animated:]):
Part of WKKeyboardScrollable; plumb scrolls up to WKWebView.

(-[WKContentView _scrollOffsetForEvent:]): Moved to WKKeyboardScrollingAnimator.mm.

* UIProcess/ios/WKKeyboardScrollingAnimator.h: Added.
* UIProcess/ios/WKKeyboardScrollingAnimator.mm: Added.
(-[WKKeyboardScrollingAnimator init]):
(-[WKKeyboardScrollingAnimator initWithScrollable:]):
(-[WKKeyboardScrollingAnimator invalidate]):
(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]):
Compute the scroll offset given a particular event. This is moved from WKContentView;
otherwise the primary change is that it now asks the WKKeyboardScrollable
for the distance instead of computing it directly.

(-[WKKeyboardScrollingAnimator beginWithEvent:]):
If we're currently in the initial state (WaitingForFirstEvent), and
a given event should start a scroll, transition into WaitingForRepeat,
and do a single animated scroll of the appropriate distance.

(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
If this key event should terminate a scroll (because it is either a keyup
or a non-scrolling keydown), shut down any running animations.

If this is the first key repeat after the initial scroll, start a scrolling
animation.

Eat the event if it either started or continued a scroll.

(-[WKKeyboardScrollingAnimator startAnimatedScroll]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):
Helpers to start and stop the display link and do some bookkeeping.

(-[WKKeyboardScrollingAnimator displayLinkFired:]):
Ask the WKKeyboardScrollable to scroll the content based on the frame time,
an acceleration curve, and the current animation's scrolling increment.

* WebKit.xcodeproj/project.pbxproj:

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

13 months agoMake sure cookies get flushed to disk before exiting or suspending the network process
cdumez@apple.com [Wed, 1 Aug 2018 23:45:44 +0000 (23:45 +0000)]
Make sure cookies get flushed to disk before exiting or suspending the network process
https://bugs.webkit.org/show_bug.cgi?id=188241
<rdar://problem/42831831>

Reviewed by Alex Christensen and Geoffrey Garen.

Make sure cookies get flushed to disk before exiting or suspending the network process,
to make sure they do not get lost.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose):
(WebKit::NetworkProcess::actualPrepareToSuspend):
(WebKit::NetworkProcess::platformSyncAllCookies):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::syncAllCookies):
(WebKit::NetworkProcess::platformSyncAllCookies):
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::didClose):
(WebKit::callExitNow):
(WebKit::callExitSoon):
(WebKit::ChildProcess::initialize):
(WebKit::didCloseOnConnectionWorkQueue): Deleted.
* Shared/ChildProcess.h:
(WebKit::ChildProcess::shouldCallExitWhenConnectionIsClosed const):

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

13 months agoREGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
rniwa@webkit.org [Wed, 1 Aug 2018 23:26:02 +0000 (23:26 +0000)]
REGRESSION(r227983): fast/dom/adopt-node-crash-2.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=182589

Rebaseline the test and remove the flaky test expectation.

* fast/dom/adopt-node-crash-2-expected.txt:
* platform/ios-wk2/TestExpectations:
* platform/mac/TestExpectations:

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

13 months agoMove all calls to ResourceLoader::start to WebKitLegacy
achristensen@apple.com [Wed, 1 Aug 2018 22:08:51 +0000 (22:08 +0000)]
Move all calls to ResourceLoader::start to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=184946

Reviewed by Andy Estes.

Source/WebCore:

This is in preparation for moving ResourceLoader::start to WebKitLegacy along with all ResourceHandle code.
I move the code that moves m_deferredRequest into m_request into WebKitLegacy, which won't change behavior for
modern WebKit because modern WebKit never calls ResourceLoader::start, the only place where m_deferredRequest
is ever set.  This won't change behavior for WebKitLegacy because the same operations happen in the same order.

* loader/LoaderStrategy.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::setDefersLoading):
* loader/ResourceLoader.h:
(WebCore::ResourceLoader::setRequest):
(WebCore::ResourceLoader::deferredRequest const):
(WebCore::ResourceLoader::takeDeferredRequest):

Source/WebKit:

* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::setDefersLoading):
* WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::setDefersLoading):
* WebCoreSupport/WebResourceLoadScheduler.h:

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

13 months agoAX: AOM: Add ARIA IDL Attribute Reflection
n_wang@apple.com [Wed, 1 Aug 2018 22:07:42 +0000 (22:07 +0000)]
AX: AOM: Add ARIA IDL Attribute Reflection
https://bugs.webkit.org/show_bug.cgi?id=184676
<rdar://problem/39476882>

Source/WebCore:

Reviewed by Chris Fleizach.

Test: accessibility/ARIA-reflection.html

* CMakeLists.txt:
* DerivedSources.make:
* WebCore.xcodeproj/project.pbxproj:
* accessibility/AccessibilityRole.idl: Added.
* accessibility/AriaAttributes.idl: Added.
* dom/Element.idl:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setAriaReflectionEnabled):
(WebCore::RuntimeEnabledFeatures::ariaReflectionEnabled const):

Source/WebKit:

Added ARIA property string reflection on Element, behind
a new runtime flag.
Spec: https://w3c.github.io/aria/#idl-interface

Reviewed by Chris Fleizach.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetAriaReflectionEnabled):
(WKPreferencesGetAriaReflectionEnabled):
* UIProcess/API/C/WKPreferencesRefPrivate.h:

Source/WebKitLegacy/mac:

Reviewed by Chris Fleizach.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]):
(-[WebPreferences ariaReflectionEnabled]):
(-[WebPreferences setAriaReflectionEnabled:]):
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]):

Tools:

Reviewed by Chris Fleizach.

* DumpRenderTree/mac/DumpRenderTree.mm:
(enableExperimentalFeatures):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

Reviewed by Chris Fleizach.

* accessibility/ARIA-reflection-expected.txt: Added.
* accessibility/ARIA-reflection.html: Added.
* js/dom/dom-static-property-for-in-iteration.html:
* platform/win/TestExpectations:

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

13 months ago[LFC][Floating] Revert back to only one list for the all the floatings.
zalan@apple.com [Wed, 1 Aug 2018 21:46:52 +0000 (21:46 +0000)]
[LFC][Floating] Revert back to only one list for the all the floatings.
https://bugs.webkit.org/show_bug.cgi?id=188232

Reviewed by Antti Koivisto.

If the combined floating list turns out to be a performance bottleneck, we can still split it into left and right. However at this point
having 2 dedicated lists just makes the implementation more complicated.

* layout/FloatingContext.cpp:
(WebCore::Layout::begin):
(WebCore::Layout::end):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::previousFloatingIndex):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::floatingDisplayBox): Deleted.
* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::remove):
(WebCore::Layout::FloatingState::append):
* layout/FloatingState.h:
(WebCore::Layout::FloatingState::isEmpty const):
(WebCore::Layout::FloatingState::floatings const):
(WebCore::Layout::FloatingState::last const):

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

13 months ago[Curl] Change synchronous request logic using MessageQueue to match with Mac port.
Basuke.Suzuki@sony.com [Wed, 1 Aug 2018 21:36:48 +0000 (21:36 +0000)]
[Curl] Change synchronous request logic using MessageQueue to match with Mac port.
https://bugs.webkit.org/show_bug.cgi?id=188206

Reviewed by Alex Christensen.

Port synchronous request logic from ResourceHandleMac to use MessageQueue for
client callback invocation. This makes simplify the logic of CurlRequest because
now every requests are handled in Curl thread and there's no difference between
sync and async requests.

Test: Covered by these tests:
- http\tests\xmlhttprequest\simple-sync.html
- http\tests\xmlhttprequest\xmlhttprequest-unsafe-redirect.html

* platform/network/ResourceHandleInternal.h:
* platform/network/curl/CurlRequest.cpp: Remove synchronous request logics.
(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::invalidateClient):
(WebCore::CurlRequest::start):
(WebCore::CurlRequest::cancel):
(WebCore::CurlRequest::runOnMainThread): Added message queue handling.
(WebCore::CurlRequest::runOnWorkerThreadIfRequired):
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::invokeDidReceiveResponseForFile):
(WebCore::CurlRequest::completeDidReceiveResponse):
(WebCore::CurlRequest::updateHandlePauseState):
(WebCore::CurlRequest::isHandlePaused const):
* platform/network/curl/CurlRequest.h:
(WebCore::CurlRequest::create):
(WebCore::CurlRequest::resourceRequest const):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::createCurlRequest):
(WebCore::ResourceHandle::restartRequestWithCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::platformContinueSynchronousDidReceiveResponse):
(WebCore::ResourceHandle::continueAfterDidReceiveResponse):
(WebCore::ResourceHandle::continueAfterWillSendRequest):
(WebCore::ResourceHandle::handleDataURL):

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

13 months agoLayout Test editing/selection/update-selection-by-style-change.html is flaky.
david_fenton@apple.com [Wed, 1 Aug 2018 21:33:41 +0000 (21:33 +0000)]
Layout Test editing/selection/update-selection-by-style-change.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=187649

Unreviewed test gardening, re-marked test as flaky.

* platform/mac-wk2/TestExpectations:

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

13 months ago[LFC][Floating] Use margin box consistently while placing a floating.
zalan@apple.com [Wed, 1 Aug 2018 21:31:11 +0000 (21:31 +0000)]
[LFC][Floating] Use margin box consistently while placing a floating.
https://bugs.webkit.org/show_bug.cgi?id=188222

Reviewed by Antti Koivisto.

The floating box fits when its margin box fits.

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::computePosition const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::FloatingPair::intersects const):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::rectWithMargin const):

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

13 months ago[INTL] Allow "unknown" formatToParts types
commit-queue@webkit.org [Wed, 1 Aug 2018 21:21:39 +0000 (21:21 +0000)]
[INTL] Allow "unknown" formatToParts types
https://bugs.webkit.org/show_bug.cgi?id=188176

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Darin Adler.

Originally extra unexpected field types were marked as "literal", since
the spec did not account for these. The ECMA 402 spec has since been updated
to specify "unknown" should be used in these cases.

Currently there is no known way to reach these cases, so no tests can
account for them. Theoretically they shoudn't exist, but they are specified,
just to be safe. Marking them as "unknown" instead of "literal" hopefully
will make such cases easy to identify if they ever happen.

* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::partTypeString):
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::partTypeString):

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

13 months ago[LFC] Add FormattingContext::mapToAncestor geometry mapping function
zalan@apple.com [Wed, 1 Aug 2018 21:20:00 +0000 (21:20 +0000)]
[LFC] Add FormattingContext::mapToAncestor geometry mapping function
https://bugs.webkit.org/show_bug.cgi?id=188188

Reviewed by Antti Koivisto.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::mapToAncestor):
* layout/FormattingContext.h:
* layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::clone const):
* layout/displaytree/DisplayBox.h:

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

13 months ago[INTL] Implement hourCycle in DateTimeFormat
commit-queue@webkit.org [Wed, 1 Aug 2018 21:19:27 +0000 (21:19 +0000)]
[INTL] Implement hourCycle in DateTimeFormat
https://bugs.webkit.org/show_bug.cgi?id=188006

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Darin Adler.

JSTests:

Removed fixed hourCycle expectations.

* test262/expectations.yaml:

Source/JavaScriptCore:

Implemented hourCycle, updating both the skeleton and the final pattern.
Changed resolveLocale to assume undefined options are not given and null
strings actually mean null, which removes the tag extension.

* runtime/CommonIdentifiers.h:
* runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDTFInternal::localeData):
(JSC::IntlDateTimeFormat::setFormatsFromPattern):
(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::IntlDateTimeFormat::resolvedOptions):
* runtime/IntlDateTimeFormat.h:
* runtime/IntlObject.cpp:
(JSC::resolveLocale):

LayoutTests:

Added tests for hourCycle.

* js/intl-datetimeformat-expected.txt:
* js/script-tests/intl-datetimeformat.js:

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

13 months ago[Curl] Bugfix on ResourceHandle::cancel()
Basuke.Suzuki@sony.com [Wed, 1 Aug 2018 21:16:45 +0000 (21:16 +0000)]
[Curl] Bugfix on ResourceHandle::cancel()
https://bugs.webkit.org/show_bug.cgi?id=188234

Reviewed by Darin Adler.
Trivial bug. The actual request was not cancelled correctly.

* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::cancel):

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

13 months agonumber-toLocaleString.js test fails on ARM Linux buildbots
commit-queue@webkit.org [Wed, 1 Aug 2018 21:13:10 +0000 (21:13 +0000)]
number-toLocaleString.js test fails on ARM Linux buildbots
https://bugs.webkit.org/show_bug.cgi?id=154533

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-08-01
Reviewed by Yusuke Suzuki.

Removed assumed default locale in Intl tests. The default is tested to
verify that it is a string, and a canonicalized language tag. All other
test cases explicitly use a locale when they expect a localized value.

* js/intl-collator-expected.txt:
* js/intl-datetimeformat-expected.txt:
* js/intl-default-locale-expected.txt:
* js/intl-default-locale.html:
* js/intl-numberformat-expected.txt:
* js/intl-pluralrules-expected.txt:
* js/script-tests/intl-collator.js:
* js/script-tests/intl-datetimeformat.js:
* js/script-tests/intl-numberformat.js:
* js/script-tests/intl-pluralrules.js:

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

13 months ago[LFC][Floating] FloatingState should take the formatting root box.
zalan@apple.com [Wed, 1 Aug 2018 20:53:47 +0000 (20:53 +0000)]
[LFC][Floating] FloatingState should take the formatting root box.
https://bugs.webkit.org/show_bug.cgi?id=188214

Reviewed by Antti Koivisto.

This will be taken into use when FormattingContext takes all boxes in the coordinate system of the formatting root.

* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::FloatingState):
(WebCore::Layout::belongsToThisFloatingContext):
(WebCore::Layout::FloatingState::append):
* layout/FloatingState.h:
(WebCore::Layout::FloatingState::create):
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::establishedFormattingState):

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

13 months ago[LFC][Floating] Align new floating with the bottom of the existing floatings.
zalan@apple.com [Wed, 1 Aug 2018 20:52:04 +0000 (20:52 +0000)]
[LFC][Floating] Align new floating with the bottom of the existing floatings.
https://bugs.webkit.org/show_bug.cgi?id=188213

Reviewed by Antti Koivisto.

When the incoming floating does not fit at all, align its top with the bottom of the existing floatings.

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingPair::bottom const):

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

13 months agoAlways use MediaPlayback audio category when playing to AppleTV
eric.carlson@apple.com [Wed, 1 Aug 2018 20:48:58 +0000 (20:48 +0000)]
Always use MediaPlayback audio category when playing to AppleTV
https://bugs.webkit.org/show_bug.cgi?id=188230
<rdar://problem/42497809>

Reviewed by Jer Noble.

* platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(PlatformMediaSessionManager::updateSessionState): Check session.isPlayingToWirelessPlaybackTarget().

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

13 months agoJSArrayBuffer should have its own JSType
keith_miller@apple.com [Wed, 1 Aug 2018 20:33:48 +0000 (20:33 +0000)]
JSArrayBuffer should have its own JSType
https://bugs.webkit.org/show_bug.cgi?id=188231

Reviewed by Saam Barati.

* runtime/JSArrayBuffer.cpp:
(JSC::JSArrayBuffer::createStructure):
* runtime/JSCast.h:
* runtime/JSType.h:

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

13 months agoUse iPhone SE as the default simulated device
jbedard@apple.com [Wed, 1 Aug 2018 20:29:29 +0000 (20:29 +0000)]
Use iPhone SE as the default simulated device
https://bugs.webkit.org/show_bug.cgi?id=188227

Reviewed by Aakash Jain.

* Scripts/webkitpy/port/ios_simulator.py:
(IOSSimulatorPort):

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

13 months agoHardcode some system colors to avoid fingerprinting exposure.
timothy@apple.com [Wed, 1 Aug 2018 19:07:42 +0000 (19:07 +0000)]
Hardcode some system colors to avoid fingerprinting exposure.
https://bugs.webkit.org/show_bug.cgi?id=188203
rdar://problem/42781630

Reviewed by Tim Horton.

Source/WebCore:

Passes existing tests with the hardcoded blue system appearance.

* rendering/RenderTheme.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::systemColor const):
Adds special handling for some system colors. Fixes -apple-system-selected-text-background
to match the real selection color by using blendWithWhite().

LayoutTests:

* fast/css/apple-system-control-colors-expected.txt: Updated.
* fast/css/test-setting-canvas-color.html: Fixed for colors with alpha.
* platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
* platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Updated.
* platform/mac/TestExpectations: Removed fast/css/test-setting-canvas-color.html.
* platform/mac/fast/css/apple-system-control-colors-expected.txt: Updated.

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

13 months agoWeb Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
nvasilyev@apple.com [Wed, 1 Aug 2018 18:12:17 +0000 (18:12 +0000)]
Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
https://bugs.webkit.org/show_bug.cgi?id=188119
<rdar://problem/42670811>

Reviewed by Matt Baker.

Make the background of the thread indicator widget darker.

Reduce the number of HTML elements and simplify CSS by removing the HTML element that drew an arrow and using clip-path on inline widgets instead.

* UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor .CodeMirror-linewidget):
(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .thread-widget.inline):
* UserInterface/Views/SourceCodeTextEditor.js:
(WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
(WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
* UserInterface/Views/TextEditor.css:
(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):
* UserInterface/Views/Variables.css:
(:root):

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

13 months agoWeb Inspector: Dark Mode: disabled breakpoints banner is too light
nvasilyev@apple.com [Wed, 1 Aug 2018 18:09:38 +0000 (18:09 +0000)]
Web Inspector: Dark Mode: disabled breakpoints banner is too light
https://bugs.webkit.org/show_bug.cgi?id=188120
<rdar://problem/42671348>

Reviewed by Matt Baker.

* UserInterface/Views/DebuggerSidebarPanel.css:
(@media (prefers-dark-interface)):
(.sidebar > .panel.navigation.debugger .warning-banner):

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

13 months ago[iOS] Remove the delay before setting audio session category added in r233535
eric.carlson@apple.com [Wed, 1 Aug 2018 18:07:10 +0000 (18:07 +0000)]
[iOS] Remove the delay before setting audio session category added in r233535
https://bugs.webkit.org/show_bug.cgi?id=188225

Reviewed by Jer Noble.

* platform/audio/PlatformMediaSessionManager.cpp:
(WebCore::PlatformMediaSessionManager::beginInterruption): scheduleUpdateSessionState -> updateSessionState.
(WebCore::PlatformMediaSessionManager::addSession): Ditto.
(WebCore::PlatformMediaSessionManager::removeSession): Ditto.
(WebCore::PlatformMediaSessionManager::sessionStateChanged): Ditto.
(WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.
(WebCore::PlatformMediaSessionManager::updateSessionState): Ditto.
(WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged): Ditto.
(WebCore::PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.
* platform/audio/PlatformMediaSessionManager.h:

* platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
(PlatformMediaSessionManager::updateSessionState):
(PlatformMediaSessionManager::scheduleUpdateSessionState): Deleted.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateClipRects):

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

13 months agoAllow WebFramePolicyListenerProxy to be used multiple times
achristensen@apple.com [Wed, 1 Aug 2018 18:04:51 +0000 (18:04 +0000)]
Allow WebFramePolicyListenerProxy to be used multiple times
https://bugs.webkit.org/show_bug.cgi?id=188229

Reviewed by Chris Dumez.

This fixes a regression from r234210 in clients that misuse the API.

* UIProcess/WebFramePolicyListenerProxy.cpp:
(WebKit::WebFramePolicyListenerProxy::use):
(WebKit::WebFramePolicyListenerProxy::download):
(WebKit::WebFramePolicyListenerProxy::ignore):

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

13 months ago[iOS] Color picker should have a border when presented in a popover
commit-queue@webkit.org [Wed, 1 Aug 2018 17:26:17 +0000 (17:26 +0000)]
[iOS] Color picker should have a border when presented in a popover
https://bugs.webkit.org/show_bug.cgi?id=188207

Patch by Aditya Keerthi <akeerthi@apple.com> on 2018-08-01
Reviewed by Wenson Hsieh.

The color picker should have a border when presented in a popover. This matches
the behavior of color pickers in other parts of iOS.

Since the popover will resize its view to fill its size, we first place the
color picker in a container view. The container view can then fill the popover,
while the smaller color picker is centered in it's container - creating the
appearance of a border.

* UIProcess/ios/forms/WKFormColorControl.mm:
(-[WKColorPopover initWithView:]):
* UIProcess/ios/forms/WKFormColorPicker.mm:

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

13 months agoAdd TransformationMatrix::Identity
utatane.tea@gmail.com [Wed, 1 Aug 2018 16:01:00 +0000 (16:01 +0000)]
Add TransformationMatrix::Identity
https://bugs.webkit.org/show_bug.cgi?id=188204

Reviewed by Simon Fraser.

This patch adds TransformationMatrix::Identity, which is a static const variable holding an identity matrix.

No behavior change.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::childrenTransform const):
(): Deleted.
* platform/graphics/transforms/TransformationMatrix.cpp:
* platform/graphics/transforms/TransformationMatrix.h:

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

13 months agoUnreviewed, rolling out r234443 and r234445.
commit-queue@webkit.org [Wed, 1 Aug 2018 15:47:59 +0000 (15:47 +0000)]
Unreviewed, rolling out r234443 and r234445.
https://bugs.webkit.org/show_bug.cgi?id=188224

Revision caused 3 api failures across all platforms.
(Requested by Truitt on #webkit).

Reverted changesets:

"Add configuration for automatic process pre-warming"
https://bugs.webkit.org/show_bug.cgi?id=187108
https://trac.webkit.org/changeset/234443

"Add configuration for automatic process pre-warming"
https://bugs.webkit.org/show_bug.cgi?id=187108
https://trac.webkit.org/changeset/234445

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

13 months ago[iOS] WKColorPicker's selection indicator doesn't always cover the selected swatch
commit-queue@webkit.org [Wed, 1 Aug 2018 15:40:48 +0000 (15:40 +0000)]
[iOS] WKColorPicker's selection indicator doesn't always cover the selected swatch
https://bugs.webkit.org/show_bug.cgi?id=188124

Patch by Aditya Keerthi <akeerthi@apple.com> on 2018-08-01
Reviewed by Wenson Hsieh.

- On iPhone, the size of an individual color swatch can change on rotation. In
this case, we should resize the selection indicator along with the swatch. Added
a new delegate method to WKColorMatrixViewDelegate to notify the color picker if
the matrix was redrawn. We then resize the selection indicator to match the
selected swatch's size.

- On iPad, the selection indicator should have rounded corners if it's at the
corner of the color picker. Otherwise, part of the indicator will be hidden by
the popover. The selected swatch's position is checked before drawing the
indicator. If it's at one of the four corners of the picker, the appropriate mask
is applied to the color selection indicator's border.

* UIProcess/ios/forms/WKFormColorPicker.h:
* UIProcess/ios/forms/WKFormColorPicker.mm:
(-[WKColorMatrixView layoutSubviews]):
(-[WKColorPicker initWithView:]):
(-[WKColorPicker drawSelectionIndicatorForColorButton:]):
(-[WKColorPicker colorMatrixViewDidLayoutSubviews:]):
(-[WKColorPicker colorMatrixView:didTapColorButton:]):
(-[WKColorPicker didPanColors:]):

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

13 months ago[GStreamer] Make sure that first buffer running time is 0 in GStreamerMediaStreamSource
commit-queue@webkit.org [Wed, 1 Aug 2018 13:35:38 +0000 (13:35 +0000)]
[GStreamer] Make sure that first buffer running time is 0 in GStreamerMediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=188210

This is a live source and the first frame is the beginning of the stream,
but that doesn't mean that the incoming stream from the camera didn't start
before. We need to set a pad offset on each srcpad of the source to compensate
for that. This is the exact same logic as in webrtc GStreamerVideo/Enc/Dec/oder.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-08-01
Reviewed by Alejandro G. Castro.

* platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebCore::webkit_media_stream_src_init):
(WebCore::webkitMediaStreamSrcPushVideoSample):
(WebCore::webkitMediaStreamSrcPushAudioSample):

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

13 months ago[GTK] Unreviewed test gardening
aboya@igalia.com [Wed, 1 Aug 2018 12:10:13 +0000 (12:10 +0000)]
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=188221

* platform/gtk/TestExpectations:

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

13 months ago[CoordGraphics] Move CoordinatedBackingStore to WebCore
zandobersek@gmail.com [Wed, 1 Aug 2018 08:01:39 +0000 (08:01 +0000)]
[CoordGraphics] Move CoordinatedBackingStore to WebCore
https://bugs.webkit.org/show_bug.cgi?id=188158

Reviewed by Carlos Garcia Campos.

Move the CoordinatedBackingStore class from WebKit to WebCore. It has no
dependency on anything in the WebKit layer, and it's more suitable to
future needs to keep it in the WebCore layer.

Source/WebCore:

* platform/TextureMapper.cmake:
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp: Renamed from Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp.
* platform/graphics/texmap/coordinated/CoordinatedBackingStore.h: Renamed from Source/WebKit/Shared/CoordinatedGraphics/CoordinatedBackingStore.h.
(WebCore::CoordinatedBackingStoreTile::CoordinatedBackingStoreTile):
(WebCore::CoordinatedBackingStore::rect const):

Source/WebKit:

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
* SourcesGTK.txt:
* SourcesWPE.txt:

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

13 months ago[WinCairo] Unreviewed test gardening.
ross.kirsling@sony.com [Wed, 1 Aug 2018 05:34:44 +0000 (05:34 +0000)]
[WinCairo] Unreviewed test gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/css2.1/20110323/replaced-intrinsic-ratio-001-expected.png: Added.
* platform/wincairo/css3/masking/clip-path-circle-margin-box-expected.txt: Removed.

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

13 months agoTidy up a layout test introduced in r234436.
wenson_hsieh@apple.com [Wed, 1 Aug 2018 05:21:27 +0000 (05:21 +0000)]
Tidy up a layout test introduced in r234436.
https://bugs.webkit.org/show_bug.cgi?id=188107
<rdar://problem/42354250>

Reviewed by Daniel Bates.

The expected output of a test that uses js-test.js should include a description, plus a line that states that
there will be a series of PASS messages, PASS/FAIL output, a successfully parsed line and finally a TEST
COMPLETE line. This patch adjusts a newly introduced test to follow this convention.

* fast/forms/ios/click-should-not-suppress-misspelling-expected.txt:
* fast/forms/ios/click-should-not-suppress-misspelling.html:

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

13 months ago[WIN] Fix tests for text with initial advances
mmaxfield@apple.com [Wed, 1 Aug 2018 05:11:38 +0000 (05:11 +0000)]
[WIN] Fix tests for text with initial advances
https://bugs.webkit.org/show_bug.cgi?id=188099

Reviewed by Darin Adler.

Fixup after r234318.

Tests: fast/text/complex-first-glyph-with-initial-advance.html
       fast/text/initial-advance-in-intermediate-run-complex.html

* platform/graphics/ComplexTextController.cpp:
* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::drawGlyphBuffer const):

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

13 months agoREGRESSION (r231107): MoviStar+ launches to a blank black screen
achristensen@apple.com [Wed, 1 Aug 2018 03:57:07 +0000 (03:57 +0000)]
REGRESSION (r231107): MoviStar+ launches to a blank black screen
https://bugs.webkit.org/show_bug.cgi?id=188139

Reviewed by Brent Fulgham.

Source/WebCore:

For this app, revert behavior to how it was before r231107 with a linked-on-or-before check.
r231107 increased our fetch spec conformance, which we intend to keep.  This makes a low-risk
targeted fix that will fix the affected app until they update.

I manually verified this fixes the app.

* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
* platform/RuntimeApplicationChecks.h:
* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::applicationSDKVersionOverride):
(WebCore::setApplicationSDKVersion):
(WebCore::applicationSDKVersion):
(WebCore::IOSApplication::isMoviStarPlus):

Source/WebKit:

Add infrastructure to check UIProcess SDK from the WebProcess and NetworkProcess for linked-on-or-after checks.

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
* Shared/WebProcessCreationParameters.cpp:
(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):
* Shared/WebProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):

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

13 months agoAdd configuration for automatic process pre-warming
rniwa@webkit.org [Wed, 1 Aug 2018 02:53:33 +0000 (02:53 +0000)]
Add configuration for automatic process pre-warming
https://bugs.webkit.org/show_bug.cgi?id=187108

Reviewed by Ryosuke Niwa.

Added the missing availability macros.

* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:

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

13 months ago[Cocoa] Addressing post-review comments on r234158
mmaxfield@apple.com [Wed, 1 Aug 2018 02:29:23 +0000 (02:29 +0000)]
[Cocoa] Addressing post-review comments on r234158
https://bugs.webkit.org/show_bug.cgi?id=188202

Reviewed by Darin Adler.

* platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontCache::lastResortFallbackFont):

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

13 months agoAdd configuration for automatic process pre-warming
rniwa@webkit.org [Wed, 1 Aug 2018 02:15:51 +0000 (02:15 +0000)]
Add configuration for automatic process pre-warming
https://bugs.webkit.org/show_bug.cgi?id=187108

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

Source/WebKit:

Added configurations to allow setting the maximum number of processes that should be automatically prewarmed.

* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContext.cpp:
(WKContextSetMaximumNumberOfPrewarmedProcesses):
* UIProcess/API/C/WKContextPrivate.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration setMaximumPrewarmedProcessCount:]):
(-[_WKProcessPoolConfiguration maximumPrewarmedProcessCount]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFinishLoadForFrame): Moved call to notifyProcessPoolToPrewarm from didFirstVisuallyNonEmptyLayoutForFrame to here.
This is to try to ensure that frame loading and prewarming don't happen at the same time as this would be heavy for some devices.
(WebKit::WebPageProxy::didFirstVisuallyNonEmptyLayoutForFrame):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::setMaximumNumberOfProcesses): Condition changed so that calling setMaximumNumberOfProcesses after warmInitialProcess
doesn't result in a crash.
(WebKit::WebProcessPool::setMaximumNumberOfPrewarmedProcesses):
(WebKit::WebProcessPool::warmInitialProcess):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
* UIProcess/WebProcessPool.h:

Tools:

Added new test case for setting maximum prewarmed process count and updated test case for process swap on navigation to set the maximum prewarmed process count to be 1 where relevant.

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

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

13 months ago[WinCairo] <select> elements do not popup options
stephan.szabo@sony.com [Wed, 1 Aug 2018 01:40:40 +0000 (01:40 +0000)]
[WinCairo] <select> elements do not popup options
https://bugs.webkit.org/show_bug.cgi?id=188172

Reviewed by Fujii Hironori.

* PlatformWin.cmake: Add WebPopupMenuProxyWin
* Shared/PlatformPopupMenuData.cpp:
(WebKit::PlatformPopupMenuData::encode const): Encode
windows parameters
(WebKit::PlatformPopupMenuData::decode): Decode windows
parameters
* Shared/PlatformPopupMenuData.h: Add the windows specific
parameters (based on removed Windows implementation)
* UIProcess/win/PageClientImpl.cpp:
(WebKit::PageClientImpl::createPopupMenuProxy):
* UIProcess/win/WebPopupMenuProxyWin.cpp: Added. (based on
removed Windows implementation plus some fixes/api changes
since the removal)
(WebKit::isASCIIPrintable):
(WebKit::translatePoint):
(WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWndProc):
(WebKit::WebPopupMenuProxyWin::wndProc):
(WebKit::WebPopupMenuProxyWin::registerWindowClass):
(WebKit::WebPopupMenuProxyWin::WebPopupMenuProxyWin):
(WebKit::WebPopupMenuProxyWin::~WebPopupMenuProxyWin):
(WebKit::WebPopupMenuProxyWin::showPopupMenu):
(WebKit::WebPopupMenuProxyWin::hidePopupMenu):
(WebKit::WebPopupMenuProxyWin::calculatePositionAndSize):
(WebKit::WebPopupMenuProxyWin::clientRect const):
(WebKit::WebPopupMenuProxyWin::invalidateItem):
(WebKit::WebPopupMenuProxyWin::scrollSize const):
(WebKit::WebPopupMenuProxyWin::setScrollOffset):
(WebKit::WebPopupMenuProxyWin::visibleSize const):
(WebKit::WebPopupMenuProxyWin::contentsSize const):
(WebKit::WebPopupMenuProxyWin::scrollableAreaBoundingBox const):
(WebKit::WebPopupMenuProxyWin::scrollTo):
(WebKit::WebPopupMenuProxyWin::invalidateScrollbarRect):
(WebKit::WebPopupMenuProxyWin::onMouseActivate):
(WebKit::WebPopupMenuProxyWin::onSize):
(WebKit::WebPopupMenuProxyWin::onKeyDown):
(WebKit::WebPopupMenuProxyWin::onChar):
(WebKit::WebPopupMenuProxyWin::onMouseMove):
(WebKit::WebPopupMenuProxyWin::onLButtonDown):
(WebKit::WebPopupMenuProxyWin::onLButtonUp):
(WebKit::WebPopupMenuProxyWin::onMouseWheel):
(WebKit::WebPopupMenuProxyWin::onPaint):
(WebKit::WebPopupMenuProxyWin::onPrintClient):
(WebKit::WebPopupMenuProxyWin::down):
(WebKit::WebPopupMenuProxyWin::up):
(WebKit::WebPopupMenuProxyWin::paint):
(WebKit::WebPopupMenuProxyWin::setFocusedIndex):
(WebKit::WebPopupMenuProxyWin::visibleItems const):
(WebKit::WebPopupMenuProxyWin::listIndexAtPoint const):
(WebKit::WebPopupMenuProxyWin::focusedIndex const):
(WebKit::WebPopupMenuProxyWin::focusFirst):
(WebKit::WebPopupMenuProxyWin::focusLast):
(WebKit::WebPopupMenuProxyWin::incrementWheelDelta):
(WebKit::WebPopupMenuProxyWin::reduceWheelDelta):
(WebKit::WebPopupMenuProxyWin::scrollToRevealSelection):
* UIProcess/win/WebPopupMenuProxyWin.h: Added. (based on
removed Windows implementation plus some fixes/api changes
since then)
(WebKit::WebPopupMenuProxyWin::create):
(WebKit::WebPopupMenuProxyWin::hide):
(WebKit::WebPopupMenuProxyWin::scrollbar const):
(WebKit::WebPopupMenuProxyWin::itemHeight const):
(WebKit::WebPopupMenuProxyWin::windowRect const):
(WebKit::WebPopupMenuProxyWin::wheelDelta const):
(WebKit::WebPopupMenuProxyWin::setWasClicked):
(WebKit::WebPopupMenuProxyWin::wasClicked const):
(WebKit::WebPopupMenuProxyWin::scrollbarCapturingMouse const):
(WebKit::WebPopupMenuProxyWin::setScrollbarCapturingMouse):
* WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
(WebKit::WebPopupMenu::setUpPlatformData): Make the data to
pass between processes.

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

13 months agoLayout Test svg/animations/smil-leak-element-instances-noBaseValRef.svg is flaky
ryanhaddad@apple.com [Wed, 1 Aug 2018 00:38:25 +0000 (00:38 +0000)]
Layout Test svg/animations/smil-leak-element-instances-noBaseValRef.svg is flaky
https://bugs.webkit.org/show_bug.cgi?id=180997

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations: Remove flaky expectation.

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

13 months agoResource Load Statistics: Remove partitioned cookies for reduced complexity, lower...
wilander@apple.com [Tue, 31 Jul 2018 23:23:43 +0000 (23:23 +0000)]
Resource Load Statistics: Remove partitioned cookies for reduced complexity, lower memory footprint, and ability to support more platforms
https://bugs.webkit.org/show_bug.cgi?id=188109
<rdar://problem/42664391>

Reviewed by Brent Fulgham, Chris Dumez, and Alex Christensen.

Source/WebCore:

Tests: http/tests/resourceLoadStatistics/cookie-deletion.html
       http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html
       http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe.html
       http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html

This patch removes cookie partitioning which reduces the model to just
blocked cookies (in third-party contexts) and first-party cookie access.

Several of the changes are renaming to reflect that there are no more
cookie partitions. However, the compile-time check remains for now since
this change is not ready to ship.

The test cases mentioned about are not new. They are just renamed to
reflect the code changes and to shorten their names (as requested by
non-Cocoa platforms).

* loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::toString const):
(WebCore::ResourceLoadStatistics::merge):
    Removed the use of isMarkedForCookiePartitioning.
* loader/ResourceLoadStatistics.h:
    Removed isMarkedForCookiePartitioning.
* platform/network/NetworkStorageSession.h:
* platform/network/ResourceHandle.h:
    Renamed applySniffingPoliciesAndStoragePartitionIfNeeded() to
    applySniffingPoliciesIfNeeded().
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::getPartitioningDomain):
(WebCore::NetworkStorageSession::shouldBlockCookies const):
    Now takes a frame ID and a page ID to be able to support
    the Storage Access API. This was previously handled by
    shouldPartitionCookies() which is now deleted.
(WebCore::NetworkStorageSession::setPrevalentDomainsToBlockCookiesFor):
    Renamed from setPrevalentDomainsToPartitionOrBlockCookies().
(WebCore::NetworkStorageSession::removePrevalentDomains):
    No longer needs to clear the member variable for partitioned cookie domains.
(WebCore::NetworkStorageSession::setCookieStoragePartitioningEnabled): Deleted.
(WebCore::NetworkStorageSession::cookieStoragePartition const): Deleted.
(WebCore::NetworkStorageSession::shouldPartitionCookies const): Deleted.
(WebCore::NetworkStorageSession::setPrevalentDomainsToPartitionOrBlockCookies): Deleted.
    Renamed to setPrevalentDomainsToBlockCookiesFor().
* platform/network/mac/CookieJarMac.mm:
(WebCore::cookiesForURL):
    Now calls session.shouldBlockCookies() instead of the
    wrapper cookiesAreBlockedForURL().
(WebCore::setCookiesFromDOM):
    No longer checks for partition.
(WebCore::applyPartitionToCookies): Deleted.
(WebCore::cookiesAreBlockedForURL): Deleted.
    This was just a wrapper for session.shouldBlockCookies().
(WebCore::cookiesInPartitionForURL): Deleted.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::applySniffingPoliciesIfNeeded):
    Renamed from applySniffingPoliciesAndStoragePartitionIfNeeded().
(WebCore::ResourceHandle::createNSURLConnection):
    Consequence of function name change.
(WebCore::ResourceHandle::applySniffingPoliciesAndStoragePartitionIfNeeded): Deleted.
    Renamed to applySniffingPoliciesIfNeeded().

Source/WebKit:

This patch removes cookie partitioning which reduces the model to just
blocked cookies (in third-party contexts) and first-party cookie access.

Several of the changes are renaming to reflect that there are no more
cookie partitions. However, the compile-time check remains for now since
this change is not ready to ship.

The API changes are mostly in C APIs used for layout tests. The slight
change in Cocoa API is that there no longer is a functionality to
"enable" cookie partitioning. The boolean member is still there but it
no longer does anything.

The functional changes are in WebKit::ResourceLoadStatisticsMemoryStore
and WebKit::NetworkDataTaskCocoa where cookie partitioning used to be
managed and applied respectively. The IPC communication has changed to
reflect this.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::updatePrevalentDomainsToBlockCookiesFor):
    Name change from updatePrevalentDomainsToPartitionOrBlockCookies().
    No longer supports the partitioned category.
(WebKit::NetworkProcess::removeAllStorageAccess):
    Now supports a completion handler. This change was made to address
    flakiness that came after layout test changes that were needed because
    of the removal of partitioned cookies.
(WebKit::NetworkProcess::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
    Partitioning removed from message name.
    RemoveAllStorageAccess message now supports a completion handler
    as explained above
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
    Removed parameter cookieStoragePartitioningEnabled.
(WebKit::NetworkProcessCreationParameters::decode):
    Removed parameter cookieStoragePartitioningEnabled.
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::logCookieInformation):
    No longer takes partitioning into account.
* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
    Now only applies cookie blocking.
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
    Now only applies cookie blocking.
(WebKit::NetworkDataTaskCocoa::applyCookiePartitioningPolicy): Deleted.
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
    Removed the call to setCookieStoragePartitioningEnabled().
(WebKit::NetworkProcess::setCookieStoragePartitioningEnabled): Deleted.
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):
    WebCore::NetworkStorageSession::shouldBlockCookies() now takes a
    frame ID and page ID to resolve cookie access with the Storage
    Access API. This was previously handled by
    WebCore::NetworkStorageSession::cookieStoragePartition().
* UIProcess/API/C/WKCookieManager.cpp:
(WKCookieManagerSetCookieStoragePartitioningEnabled): Deleted.
* UIProcess/API/C/WKCookieManager.h:
* UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
(WKWebsiteDataStoreStatisticsUpdateCookieBlocking):
(WKWebsiteDataStoreSetStatisticsHasHadNonRecentUserInteraction): Deleted.
    There is no longer a difference between recent and non-recent
    user interaction so this test function was removed.
(WKWebsiteDataStoreSetStatisticsTimeToLiveCookiePartitionFree): Deleted.
(WKWebsiteDataStoreStatisticsUpdateCookiePartitioning): Deleted.
(WKWebsiteDataStoreSetStatisticsShouldPartitionCookiesForHost): Deleted.
    Deleted because partitioning is no longer a thing.
* UIProcess/API/C/WKWebsiteDataStoreRef.h:
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
    Deprecated _isCookieStoragePartitioningEnabled() and
    _setCookieStoragePartitioningEnabled() via WK_API_DEPRECATED.
* UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm:
(WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded):
    Removed support for ResourceLoadStatisticsTimeToLiveCookiePartitionFree.
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
    No longer sets a parameter based on cookieStoragePartitioningEnabled().
(WebKit::WebProcessPool::setCookieStoragePartitioningEnabled):
    Added a FIXME comment that this setter no longer does anything meaningful.
    Removed the IPC call to the network process to propagate the setting.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::clearCallbackStates):
    Name change from m_updatePartitionOrBlockCookiesCallbackMap to
    m_updateBlockCookiesCallbackMap.
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
    Name change plus it now just takes one vector of strings named domainsToBlock.
(WebKit::NetworkProcessProxy::didUpdateBlockCookies):
    Name change from didUpdatePartitionOrBlockCookies().
(WebKit::NetworkProcessProxy::storageAccessRequestResult):
    Just moved to its right place.
(WebKit::NetworkProcessProxy::removeAllStorageAccess):
    Now take a completion handler.
(WebKit::NetworkProcessProxy::didRemoveAllStorageAccess):
    To call the completion handler.
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted.
    Name change.
(WebKit::NetworkProcessProxy::didUpdatePartitionOrBlockCookies): Deleted.
    Name change.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
    Name change and added completion handler message for removeAllStorageAccess().
* UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
(WebKit::ResourceLoadStatisticsMemoryStore::hasStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):
(WebKit::ResourceLoadStatisticsMemoryStore::scheduleStatisticsProcessingRequestIfNecessary):
(WebKit::ResourceLoadStatisticsMemoryStore::logUserInteraction):
(WebKit::ResourceLoadStatisticsMemoryStore::mergeWithDataFromDecoder):
(WebKit::ResourceLoadStatisticsMemoryStore::clear):
(WebKit::ResourceLoadStatisticsMemoryStore::wasAccessedAsFirstPartyDueToUserInteraction const):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockAndKeepCookies):
(WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockAndPurgeCookies):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlocking):
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookieBlockingForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::clearBlockingStateForDomains):
(WebKit::ResourceLoadStatisticsMemoryStore::resetCookieBlockingState):
(WebKit::ResourceLoadStatisticsMemoryStore::removeAllStorageAccess):
(WebKit::ResourceLoadStatisticsMemoryStore::logNonRecentUserInteraction): Deleted.
    There is no longer a difference between recent and non-recent
    user interaction so this test function was removed.
(WebKit::ResourceLoadStatisticsMemoryStore::setTimeToLiveCookiePartitionFree): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::shouldPartitionCookies): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::shouldBlockCookies): Deleted.
    Now split into shouldBlockAndKeepCookies() and shouldBlockAndPurgeCookies().
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioning): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::updateCookiePartitioningForDomains): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::clearPartitioningStateForDomains): Deleted.
(WebKit::ResourceLoadStatisticsMemoryStore::resetCookiePartitioningState): Deleted.
* UIProcess/ResourceLoadStatisticsMemoryStore.h:
* UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:
(WebKit::ResourceLoadStatisticsPersistentStorage::startMonitoringDisk):
    Added an empty completion handler to the m_memoryStore.clear() call.
* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::setCookieStoragePartitioningEnabled): Deleted.
* UIProcess/WebCookieManagerProxy.h:
* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess):
    Now has a completion handler.
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdate):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearBlockingStateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookieBlockingStateReset):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory):
    Now supports a completion handler for removeAllStorageAccess().
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::logNonRecentUserInteraction): Deleted.
    There is no longer a difference between recent and non-recent
    user interaction so this test function was removed.
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate): Deleted.
    Renamed to scheduleCookieBlockingUpdate().
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains): Deleted.
    Renamed to scheduleCookieBlockingUpdateForDomains().
(WebKit::WebResourceLoadStatisticsStore::scheduleClearPartitioningStateForDomains): Deleted.
    Renamed to scheduleClearBlockingStateForDomains().
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningStateReset): Deleted.
    Renamed to scheduleCookieBlockingStateReset().
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree): Deleted.
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToPartitionOrBlockCookiesHandler): Deleted.
    Renamed callUpdatePrevalentDomainsToBlockCookiesForHandler().
* UIProcess/WebResourceLoadStatisticsStore.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::removeAllStorageAccessHandler):
    Now supports a completion handler for removeAllStorageAccess().
(WebKit::WebsiteDataStore::networkProcessDidCrash):
    Name change in function called to get rid of "partitioning."
(WebKit::WebsiteDataStore::updatePrevalentDomainsToPartitionOrBlockCookies): Deleted.
    Renamed updatePrevalentDomainsToBlockCookiesFor().
* UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This patch removes cookie partitioning which reduces the model to just
blocked cookies (in third-party contexts) and first-party cookie access.

Several of the changes are renaming to reflect that there are no more
cookie partitions.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
   Removed or renamed functions to reflect that there are no more
   partitioned cookies.
* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::didReceiveMessageToPage):
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsUpdateCookieBlocking):
(WTR::TestRunner::statisticsCallDidSetBlockCookiesForHostCallback):
(WTR::TestRunner::setCookieStoragePartitioningEnabled): Deleted.
(WTR::TestRunner::setStatisticsHasHadNonRecentUserInteraction): Deleted.
(WTR::TestRunner::setStatisticsTimeToLiveCookiePartitionFree): Deleted.
(WTR::TestRunner::statisticsUpdateCookiePartitioning): Deleted.
(WTR::TestRunner::statisticsSetShouldPartitionCookiesForHost): Deleted.
(WTR::TestRunner::statisticsCallDidSetPartitionOrBlockCookiesForHostCallback): Deleted.
* WebKitTestRunner/InjectedBundle/TestRunner.h:
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::statisticsUpdateCookieBlocking):
(WTR::TestController::setStatisticsHasHadNonRecentUserInteraction): Deleted.
(WTR::TestController::setStatisticsTimeToLiveCookiePartitionFree): Deleted.
(WTR::TestController::statisticsUpdateCookiePartitioning): Deleted.
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost): Deleted.
* WebKitTestRunner/TestController.h:
* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
(WTR::TestInvocation::didSetBlockCookiesForHost):
(WTR::TestInvocation::didSetHasHadUserInteraction):
(WTR::TestInvocation::didSetPartitionOrBlockCookiesForHost): Deleted.
(WTR::TestInvocation::didSetHasHadNonRecentUserInteraction): Deleted.
* WebKitTestRunner/TestInvocation.h:
* WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):

LayoutTests:

This patch removes cookie partitioning which reduces the model to just
blocked cookies (in third-party contexts) and first-party cookie access.

Several of the changes are renaming to reflect that there are no more
cookie partitions.

The changes to the Storage Access API tests also involve fixes for potential
flakiness by adopting several completion handlers in test functions.

* http/tests/resourceLoadStatistics/add-blocking-to-redirect.html:
* http/tests/resourceLoadStatistics/add-partitioning-to-redirect-expected.txt: Removed.
* http/tests/resourceLoadStatistics/add-partitioning-to-redirect.html: Removed.
* http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-collusion.html:
* http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html:
* http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html:
* http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent.html:
* http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-unique-redirects-to.html:
* http/tests/resourceLoadStatistics/classify-as-very-prevalent-based-on-mixed-statistics.html:
* http/tests/resourceLoadStatistics/cookie-deletion-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt.
* http/tests/resourceLoadStatistics/cookie-deletion.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html.
* http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction-expected.txt: Added.
* http/tests/resourceLoadStatistics/cookies-with-and-without-user-interaction.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html.
* http/tests/resourceLoadStatistics/do-not-block-top-level-navigation-redirect.html:
* http/tests/resourceLoadStatistics/enable-debug-mode.html:
* http/tests/resourceLoadStatistics/grandfathering.html:
* http/tests/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
* http/tests/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
* http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context-expected.txt:
* http/tests/resourceLoadStatistics/non-prevalent-resources-can-access-cookies-in-a-third-party-context.html:
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/non-sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt: Removed.
* http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html: Removed.
* http/tests/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction-expected.txt: Removed.
* http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt:
* http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html:
* http/tests/resourceLoadStatistics/remove-partitioning-in-redirect-expected.txt: Removed.
* http/tests/resourceLoadStatistics/remove-partitioning-in-redirect.html: Removed.
* http/tests/resourceLoadStatistics/resources/get-cookies.php:
* http/tests/resourceLoadStatistics/resources/set-cookie-on-redirect.php: Added.
* http/tests/resourceLoadStatistics/resources/util.js: Added.
(setEnableFeature):
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-non-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-ip-to-localhost-to-ip.html:
* http/tests/resourceLoadStatistics/sandboxed-nesting-iframe-with-sandboxed-iframe-redirect-localhost-to-ip-to-localhost.html:
* http/tests/resourceLoadStatistics/set-custom-prevalent-resource-in-debug-mode.html:
* http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-redirects.html:
* http/tests/resourceLoadStatistics/strip-referrer-to-origin-for-prevalent-subresource-requests.html:
* http/tests/resourceLoadStatistics/telemetry-generation.html:
* http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction-expected.txt: Removed.
* http/tests/resourceLoadStatistics/third-party-cookie-with-and-without-user-interaction.html: Removed.
* http/tests/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html:
* http/tests/resourceLoadStatistics/user-interaction-only-reported-once-within-short-period-of-time.html:
* http/tests/resourceLoadStatistics/user-interaction-reported-after-website-data-removal.html:
* http/tests/storageAccess/deny-storage-access-under-opener.html:
* http/tests/storageAccess/grant-storage-access-under-opener-expected.txt:
* http/tests/storageAccess/grant-storage-access-under-opener.html:
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt: Removed.
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction.html: Removed.
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction.html: Removed.
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt.
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-user-interaction.html: Added.
* http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe-pop-window.html: Added.
* http/tests/storageAccess/request-and-grant-access-cross-origin-non-sandboxed-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe.html.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt.
* http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-nested-iframe.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe.html.
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt:
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html:
* http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-pop-window.html: Removed.
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token.html:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-user-gesture.html:
* http/tests/storageAccess/request-storage-access-same-origin-iframe.html:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token.html:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe.html:
* http/tests/storageAccess/request-storage-access-top-frame.html:
* http/tests/storageAccess/resources/nesting-iframe.html:
* platform/ios/TestExpectations:
    Test case renaming.
    webkit.org/b/183216 removed since it's resolved.
* platform/mac-wk2/TestExpectations:
    Test case renaming.
* platform/wk2/TestExpectations:
    Test case renaming.

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

13 months agoBuild fix. Remove unused variable.
achristensen@apple.com [Tue, 31 Jul 2018 20:37:56 +0000 (20:37 +0000)]
Build fix.  Remove unused variable.

* TestWebKitAPI/Tests/WebCore/TransformationMatrix.cpp:
(TestWebKitAPI::TEST):
transform was never used. It was introduced in r205871
Apparently I'm the first one to build in a certain configuration that found it.

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

13 months agoUnreviewed 32-bit build fix...
keith_miller@apple.com [Tue, 31 Jul 2018 20:24:21 +0000 (20:24 +0000)]
Unreviewed 32-bit build fix...

* dfg/DFGSpeculativeJIT32_64.cpp:

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

13 months agoLong compiling JSC files should not be unified
keith_miller@apple.com [Tue, 31 Jul 2018 20:21:50 +0000 (20:21 +0000)]
Long compiling JSC files should not be unified
https://bugs.webkit.org/show_bug.cgi?id=188205

Reviewed by Saam Barati.

The DFGSpeculativeJIT and FTLLowerDFGToB3 files take a long time
to compile. Unifying them means touching anything in the same
bundle as those files takes a long time to incrementally build.
This patch separates those files so they build standalone.

* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* dfg/DFGSpeculativeJIT64.cpp:

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

13 months ago[iOS] Spelling suggestions cannot be selected in focused form controls when zoomed in
wenson_hsieh@apple.com [Tue, 31 Jul 2018 20:19:08 +0000 (20:19 +0000)]
[iOS] Spelling suggestions cannot be selected in focused form controls when zoomed in
https://bugs.webkit.org/show_bug.cgi?id=188107
<rdar://problem/42354250>

Reviewed by Tim Horton.

Source/WebCore:

After r232040, the synthetic click gesture recognizer was enabled when tapping inside of the focused element,
which allows the page to handle click events inside editable content. However, this means that codepaths in
EventHandler that are responsible for changing selection due to default click event behaviors on macOS are now
active on iOS; this conflicts with selection changes due to text interaction gestures, which are the existing
mechanism for modifying the selection on iOS.

To address this, we defer selection changes when clicking to text interaction gestures on iOS by tweaking the
default behavior of a click on iOS to /not/ change selection when moving within the same editable root. This is
similar to r233311, but in a different codepath that specifically handles selection changes when clicking on
content that is already selected.

Test: fast/forms/ios/click-should-not-suppress-misspelling.html

* page/EventHandler.cpp:
(WebCore::EventHandler::handleMouseReleaseEvent):

LayoutTests:

Adds a new test to verify that tapping in a misspelled word to bring up the spelling correction callout and
selection view does not immediately cause the selection to dismiss.

* fast/forms/ios/click-should-not-suppress-misspelling-expected.txt: Added.
* fast/forms/ios/click-should-not-suppress-misspelling.html: Added.

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

13 months agoNeed a short description (OOPS!).
achristensen@apple.com [Tue, 31 Jul 2018 19:30:46 +0000 (19:30 +0000)]
Need a short description (OOPS!).
Need the bug URL (OOPS!).

Reviewed by NOBODY (OOPS!).

* platform/mac-yosemite: Removed.

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

13 months ago[JSC] Remove unnecessary cellLock() in JSObject's GC marking if IndexingType is conti...
utatane.tea@gmail.com [Tue, 31 Jul 2018 18:48:44 +0000 (18:48 +0000)]
[JSC] Remove unnecessary cellLock() in JSObject's GC marking if IndexingType is contiguous
https://bugs.webkit.org/show_bug.cgi?id=188201

Reviewed by Keith Miller.

We do not reuse the existing butterfly with Contiguous shape for new ArrayStorage butterfly.
When converting the butterfly with Contiguous shape to ArrayStorage, we always allocate a
new one. So this cellLock() is unnecessary for contiguous shape since contigous shaped butterfly
never becomes broken state. This patch removes unnecessary locking.

* runtime/JSObject.cpp:
(JSC::JSObject::visitButterflyImpl):

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

13 months agoClean up TransformationMatrix implementation
utatane.tea@gmail.com [Tue, 31 Jul 2018 18:37:18 +0000 (18:37 +0000)]
Clean up TransformationMatrix implementation
https://bugs.webkit.org/show_bug.cgi?id=188197

Reviewed by Simon Fraser.

We perform cleaning up of TransformationMatrix.

1. We drop user-defined operator= and copy constructor. Default ones works well for TransformationMatrix.
2. Remove unused setMatrix. We explicitly use memcpy in TransformationMatrix.cpp (only one place).
3. Use memcmp for implementing operator==.

In (2) and (3), we use `memcpy(&matrix[0][0], &tmp[0][0], sizeof(Matrix4))` instead of `memcpy(matrix, tmp, sizeof(Matrix4))`,
since they both are non nullptr and the former is easier to understand.

* platform/graphics/transforms/TransformationMatrix.cpp:
(WebCore::TransformationMatrix::multiply):
* platform/graphics/transforms/TransformationMatrix.h:
(WebCore::TransformationMatrix::setMatrix):
(WebCore::TransformationMatrix::operator== const):
(WebCore::TransformationMatrix::operator =): Deleted.

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

13 months agoDon't call RenderTheme::platformColorsDidChange() during printing.
timothy@apple.com [Tue, 31 Jul 2018 18:23:36 +0000 (18:23 +0000)]
Don't call RenderTheme::platformColorsDidChange() during printing.
https://bugs.webkit.org/show_bug.cgi?id=188181
rdar://problem/42360070

Reviewed by Tim Horton.

* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::setEmulatedMedia): Call m_page.updateStyleAfterChangeInEnvironment()
instead of going to styleStope() and remove call to RenderTheme::platformColorsDidChange().
* page/FrameView.cpp:
(WebCore::FrameView::adjustMediaTypeForPrinting): Remove call RenderTheme::platformColorsDidChange().

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

13 months agoWeb Inspector: Include a full URL tooltip when hovering the name in the Network Tab
commit-queue@webkit.org [Tue, 31 Jul 2018 18:23:01 +0000 (18:23 +0000)]
Web Inspector: Include a full URL tooltip when hovering the name in the Network Tab
https://bugs.webkit.org/show_bug.cgi?id=188199

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

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._populateNameCell):
Give a tooltip to the entire cell since the entire cell has interactivity.

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

13 months agoserver_process.py should print returncode in debug log if the process crashed
Hironori.Fujii@sony.com [Tue, 31 Jul 2018 18:07:31 +0000 (18:07 +0000)]
server_process.py should print returncode in debug log if the process crashed
https://bugs.webkit.org/show_bug.cgi?id=188160

Reviewed by Konstantin Tokarev.

* Scripts/webkitpy/port/server_process.py:
(ServerProcess.has_crashed): Put self._proc.returncode into the debug log message.

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

13 months agoLayout Test media/video-add-autoplay-user-gesture.html is flaky.
ryanhaddad@apple.com [Tue, 31 Jul 2018 16:52:42 +0000 (16:52 +0000)]
Layout Test media/video-add-autoplay-user-gesture.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=174591

Reviewed by Darin Adler.

Remove the 1000ms restriction for this test to complete in order to eliminate flakiness.

* media/video-add-autoplay-user-gesture.html:

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

13 months agoUse static const global variable for TransformationMatrix instead of NeverDestroyed
utatane.tea@gmail.com [Tue, 31 Jul 2018 16:31:47 +0000 (16:31 +0000)]
Use static const global variable for TransformationMatrix instead of NeverDestroyed
https://bugs.webkit.org/show_bug.cgi?id=188195

Reviewed by Darin Adler.

Since TransformationMatrix does not have a non-trivial destructor, we can put it
as static const global variable if its constructor is constexpr. This patch makes
some of constructors constexpr and makes identityTransform static const global variable
instead of NeverDestroyed<> + static function. This removes unnecessary static function
and lazy initialization.

No behavior change.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::childrenTransform const):
(WebCore::identityTransform): Deleted.
* platform/graphics/transforms/TransformationMatrix.h:
(WebCore::TransformationMatrix::TransformationMatrix):

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

13 months ago[JSC] Remove gcc warnings for 32-bit platforms
guijemont@igalia.com [Tue, 31 Jul 2018 15:57:10 +0000 (15:57 +0000)]
[JSC] Remove gcc warnings for 32-bit platforms
https://bugs.webkit.org/show_bug.cgi?id=187803

Reviewed by Yusuke Suzuki.

* assembler/MacroAssemblerPrinter.cpp:
(JSC::Printer::printPCRegister):
(JSC::Printer::printRegisterID):
(JSC::Printer::printAddress):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateMisc):
* jit/CCallHelpers.h:
(JSC::CCallHelpers::calculatePokeOffset):
* runtime/Options.cpp:
(JSC::parse):

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

13 months ago[LFC][Floating] Add basic left/right floating positioning.
zalan@apple.com [Tue, 31 Jul 2018 15:02:18 +0000 (15:02 +0000)]
[LFC][Floating] Add basic left/right floating positioning.
https://bugs.webkit.org/show_bug.cgi?id=188148

Reviewed by Antti Koivisto.

This patch implements simple floating positioning.
(Floatings with different containing blocks do not work yet.)

* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingPair::isEmpty const):
(WebCore::Layout::Iterator::current const):
(WebCore::Layout::Iterator::verticalPosition const):
(WebCore::Layout::FloatingContext::FloatingContext):
(WebCore::Layout::FloatingContext::computePosition const):
(WebCore::Layout::FloatingContext::floatingPosition const):
(WebCore::Layout::FloatingContext::initialVerticalPosition const):
(WebCore::Layout::FloatingContext::alignWithContainingBlock const):
(WebCore::Layout::FloatingContext::alignWithFloatings const):
(WebCore::Layout::floatingDisplayBox):
(WebCore::Layout::FloatingPair::FloatingPair):
(WebCore::Layout::FloatingPair::left const):
(WebCore::Layout::FloatingPair::right const):
(WebCore::Layout::FloatingPair::intersects const):
(WebCore::Layout::Iterator::Iterator):
(WebCore::Layout::Iterator::operator++):
(WebCore::Layout::Iterator::set):
(WebCore::Layout::FloatingContext::computePosition): Deleted.
* layout/FloatingContext.h:
* layout/FloatingState.cpp:
(WebCore::Layout::FloatingState::append):
* layout/FloatingState.h:
(WebCore::Layout::FloatingState::floatings const):
(WebCore::Layout::FloatingState::last const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
* layout/displaytree/DisplayBox.cpp:
(WebCore::Display::Box::Rect::Rect):
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::Rect::intersects const):
(WebCore::Display::Box::rect const):

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

13 months agoRemove ResourceResponse::cacheBodyKey API
commit-queue@webkit.org [Tue, 31 Jul 2018 12:01:48 +0000 (12:01 +0000)]
Remove ResourceResponse::cacheBodyKey API
https://bugs.webkit.org/show_bug.cgi?id=188192

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-31
Reviewed by Frédéric Wang.

Source/WebCore:

Removed unused API.

No new tests needed since this API is not used.

* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::encode const):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::cacheBodyKey const): Deleted.
(WebCore::ResourceResponseBase::setCacheBodyKey): Deleted.

Source/WebKit:

Remove unused API.

* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::decodeStorageRecord):

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

13 months ago[WPE] webanimations/partly-accelerated-transition-by-removing-property.html is failin...
magomez@igalia.com [Tue, 31 Jul 2018 10:39:36 +0000 (10:39 +0000)]
[WPE] webanimations/partly-accelerated-transition-by-removing-property.html is failing since added in r234250 "[Web Animations] REGRESSION: transition added immediately after element creation doesn't work"
https://bugs.webkit.org/show_bug.cgi?id=188058

Unreviewed. Adding custom test expectation for WPE, as it never leaves AC mode.

* platform/wpe/TestExpectations:
* platform/wpe/webanimations/partly-accelerated-transition-by-removing-property-expected.txt: Added.

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

13 months ago[WTF] String::formatWithArguments() is unused
tpopela@redhat.com [Tue, 31 Jul 2018 09:20:57 +0000 (09:20 +0000)]
[WTF] String::formatWithArguments() is unused
https://bugs.webkit.org/show_bug.cgi?id=187955

Reviewed by Darin Adler.

Source/WTF:

This method is unused, remove it.

* wtf/text/WTFString.cpp:
(WTF::String::formatWithArguments): Deleted.
* wtf/text/WTFString.h:

Tools:

Remove tests for WTF::String::formatWithArguments() as it's unused and
we are removing it.

* TestWebKitAPI/Tests/WTF/WTFString.cpp:

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

13 months agowatchOS engineering build is broken after r234227
wenson_hsieh@apple.com [Tue, 31 Jul 2018 00:48:50 +0000 (00:48 +0000)]
watchOS engineering build is broken after r234227
https://bugs.webkit.org/show_bug.cgi?id=188180

Reviewed by Keith Miller.

In the case where we're building with a `PLATFORM_NAME` of neither "macosx" nor "iphone*",
postprocess-headers.sh attempts to delete any usage of the JSC availability macros. However,
`JSC_MAC_VERSION_TBA` and `JSC_IOS_VERSION_TBA` still remain, and JSValue.h's usage of
`JSC_IOS_VERSION_TBA` causes engineering watchOS builds to fail.

To fix this, simply allow the fallback path to remove these macros from JavaScriptCore headers
entirely, since there's no relevant version to replace them with.

* postprocess-headers.sh:

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

13 months ago[ews-build] Fix typo in builder name for Bindings-tests-EWS.
aakash_jain@apple.com [Mon, 30 Jul 2018 23:51:05 +0000 (23:51 +0000)]
[ews-build] Fix typo in builder name for Bindings-tests-EWS.

* BuildSlaveSupport/ews-build/config.json: Changed 'tests' to 'Tests' to make it consistent with
other builders.

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

13 months ago[ews-build] Add support for API tests in OpenSource EWS
aakash_jain@apple.com [Mon, 30 Jul 2018 23:29:13 +0000 (23:29 +0000)]
[ews-build] Add support for API tests in OpenSource EWS
https://bugs.webkit.org/show_bug.cgi?id=188156

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/config.json:
* BuildSlaveSupport/ews-build/factories.py:
(BuildFactory.__init__): Added triggers parameter.
(BuildFactory): If trigger is defined, create and upload archive and trigger appropriate queues.
(BuildFactory.propertiesToPassToTriggers): Pass all the required properties to triggered queue.
(APITestsFactory): Factory for running API tests.
* BuildSlaveSupport/ews-build/steps.py:
(ConfigureBuild.start): Set the property only if property is defined in config.json. Also set the
source of the property.

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

13 months agoAdd support for fetching and remove type _WKWebsiteDataTypeHSTSCache
sihui_liu@apple.com [Mon, 30 Jul 2018 23:23:40 +0000 (23:23 +0000)]
Add support for fetching and remove type  _WKWebsiteDataTypeHSTSCache
https://bugs.webkit.org/show_bug.cgi?id=187379
<rdar://problem/41879559>

Source/WebCore/PAL:

Reviewed by Geoffrey Garen.

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

WKWebsiteDataStore should support _WKWebsiteDataTypeHSTSCache so Safari could list HSTS cache entries
and be able to remove them on a per-domain basis.

Reviewed by Geoffrey Garen.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::filterPreloadHSTSEntry):
(WebKit::NetworkProcess::getHostNamesWithHSTSCache):
(WebKit::NetworkProcess::deleteHSTSCacheForHostNames):
* Shared/WebsiteData/WebsiteData.cpp:
(WebKit::WebsiteData::encode const):
(WebKit::WebsiteData::decode):
* Shared/WebsiteData/WebsiteData.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
(WebKit::WebsiteDataRecord::displayNameForHostName):
(WebKit::WebsiteDataRecord::addHSTSCacheHostname):
(WebKit::WebsiteDataRecord::displayNameForPluginDataHostName): Deleted.
* UIProcess/WebsiteData/WebsiteDataRecord.h:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::WebsiteDataStore::removeData):

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

13 months ago[ews-build] loadConfig should ensure that the triggers are valid
aakash_jain@apple.com [Mon, 30 Jul 2018 23:22:22 +0000 (23:22 +0000)]
[ews-build] loadConfig should ensure that the triggers are valid
https://bugs.webkit.org/show_bug.cgi?id=188134

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/loadConfig.py:
(checkValidBuilder): Added a check to ensure that the builder doesn't refernce non-existing scheduler.
(checkValidSchedulers): Ensures that the scheduler is not un-used.
* BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-tests.

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

13 months agoWeb Inspector: Dark Mode: Search sidebar panel text field has a white background
nvasilyev@apple.com [Mon, 30 Jul 2018 23:10:56 +0000 (23:10 +0000)]
Web Inspector: Dark Mode: Search sidebar panel text field has a white background
https://bugs.webkit.org/show_bug.cgi?id=188128
<rdar://problem/42678270>

Reviewed by Matt Baker.

Make the search bar in Search tab match the style of the filter bar.

* UserInterface/Views/DarkMode.css:
(@media (prefers-dark-interface)):
(:matches(.search-bar, .filter-bar) > input[type="search"],):
(:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
(:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
(.filter-bar > input[type="search"]): Deleted.
(.filter-bar > input[type="search"]::placeholder): Deleted.
(.filter-bar > input[type="search"]:focus): Deleted.

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

13 months agoShrink GraphicsLayerCA
simon.fraser@apple.com [Mon, 30 Jul 2018 23:07:17 +0000 (23:07 +0000)]
Shrink GraphicsLayerCA
https://bugs.webkit.org/show_bug.cgi?id=188141

Reviewed by Zalan Bujtas.
Source/WebCore:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* page/cocoa/ResourceUsageOverlayCocoa.mm:
(WebCore::ResourceUsageOverlay::platformInitialize):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer):
(WebCore::operator<<):
* platform/graphics/GraphicsLayer.h:
* platform/graphics/GraphicsLayerClient.h:
* platform/graphics/WindRule.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::addProcessingActionForAnimation):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::contentsLayerForMedia const):
(WebCore::GraphicsLayerCA::layerDidDisplay):
(WebCore::layerTypeForCustomBackdropAppearance):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateMasksToBounds):
(WebCore::GraphicsLayerCA::updateContentsVisibility):
(WebCore::GraphicsLayerCA::updateContentsOpaque):
(WebCore::GraphicsLayerCA::updateBackfaceVisibility):
(WebCore::GraphicsLayerCA::updateFilters):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateDrawsContent):
(WebCore::GraphicsLayerCA::updateCoverage):
(WebCore::GraphicsLayerCA::updateDebugIndicators):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::updateMasksToBoundsRect):
(WebCore::GraphicsLayerCA::updateMaskLayer):
(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):
(WebCore::GraphicsLayerCA::ensureLayerAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::animationIsRunning const):
(WebCore::GraphicsLayerCA::primaryLayerClones const): Deleted.
* platform/graphics/ca/PlatformCALayerClient.h:
(WebCore::PlatformCALayerClient::platformCALayerContentsOrientation const):
* platform/graphics/ca/TileCoverageMap.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayerCocoa::PlatformCALayerCocoa):
(PlatformCALayerCocoa::requiresCustomAppearanceUpdateOnBoundsChange const):
(PlatformCALayerCocoa::updateCustomAppearance):
(PlatformCALayer::drawLayerContents):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateCustomAppearance):
(WebCore::RenderLayerBacking::updateConfiguration):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):
(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

Source/WebKit:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::updateCustomAppearance):
(WebKit::RemoteLayerTreePropertyApplier::applyProperties):
* Shared/RemoteLayerTree/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
* WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::requiresCustomAppearanceUpdateOnBoundsChange const):

Source/WebKitLegacy/mac:

Shrink GraphicsLayerCA from 1040 to 880 bytes by:
* moving all the clone-related stuff into the lazily-allocated m_layerClones
* moving all the animation-related stuff into the lazily-allocated m_animations
* making enums be 8-bit
* re-ordering data members

* WebView/WebView.mm:
(-[WebView _setMediaLayer:forPluginView:]):

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

13 months agoREGRESSION (r230817): Terrible performance when selecting text on Stash code review
wenson_hsieh@apple.com [Mon, 30 Jul 2018 21:47:31 +0000 (21:47 +0000)]
REGRESSION (r230817): Terrible performance when selecting text on Stash code review
https://bugs.webkit.org/show_bug.cgi?id=188144
<rdar://problem/42642489>

Reviewed by Darin Adler.

After r230817, mouse events were serially dispatched to the web process and handled before the subsequent mouse
event. However, this resulted in rapid-fire mouse move events filling up the mouse event queue in the case where
mouse move events were being handled by the web process at a slower rate than the UI process was enqueueing
them. To mitigate this, r231511 introduced a mechanism for replacing the most recently enqueued mouse move event
with an incoming mouse move event.

However, when a user with a force-click-enabled trackpad performs a mouse drag, a rapid stream of
"mouseforcechanged" events is interleaved alongside the stream of "mousemove" events. This renders r231511
ineffective, since the most recently queued event is often a "mouseforcechanged" event instead of a "mousemove".
On the stash code review page, this can result in hundreds of mouse events being backed up in the mouse event
queue, causing perceived slowness when selecting text.

To fix this, we extend the mechanism introduced in r231511, such that it is capable of replacing both
"mouseforcechanged" and "mousemove" events in the queue. Rather than consider only the most recently queued
item, we instead find the most recently queued event that matches the type of the incoming event, remove it from
the queue, and then append the incoming event to the end of the queue. To avoid the risk of removing the only
"mousemove" or "mouseforcechanged" event in the middle of a mouse down and mouse up, we also bail when searching
backwards for an event to replace if we come across any event that is neither of these types.

This effectively throttles the rate at which mouseforcechanged or mousemove events are dispatched when a user
with force-click-enabled hardware clicks and drags the mouse across the page.

* UIProcess/WebPageProxy.cpp:
(WebKit::removeOldRedundantEvent):
(WebKit::WebPageProxy::handleMouseEvent):

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

13 months agoClarify conversion rules for JSValue property access API
keith_miller@apple.com [Mon, 30 Jul 2018 21:27:43 +0000 (21:27 +0000)]
Clarify conversion rules for JSValue property access API
https://bugs.webkit.org/show_bug.cgi?id=188179

Reviewed by Geoffrey Garen.

* API/JSValue.h:

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

13 months agoAdd missing CoreGraphics SPI
webkit@devinrousso.com [Mon, 30 Jul 2018 20:38:20 +0000 (20:38 +0000)]
Add missing CoreGraphics SPI
https://bugs.webkit.org/show_bug.cgi?id=188177

Reviewed by Joseph Pecoraro.

Source/WebCore/PAL:

* pal/spi/cg/CoreGraphicsSPI.h:

Source/WebKit:

* WebProcess/cocoa/WebProcessCocoa.mm:

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

13 months agoRename some JSC API functions/types.
keith_miller@apple.com [Mon, 30 Jul 2018 20:13:37 +0000 (20:13 +0000)]
Rename some JSC API functions/types.
https://bugs.webkit.org/show_bug.cgi?id=188173

Reviewed by Saam Barati.

* API/JSObjectRef.cpp:
(JSObjectHasPropertyForKey):
(JSObjectGetPropertyForKey):
(JSObjectSetPropertyForKey):
(JSObjectDeletePropertyForKey):
(JSObjectHasPropertyKey): Deleted.
(JSObjectGetPropertyKey): Deleted.
(JSObjectSetPropertyKey): Deleted.
(JSObjectDeletePropertyKey): Deleted.
* API/JSObjectRef.h:
* API/JSValue.h:
* API/JSValue.mm:
(-[JSValue valueForProperty:]):
(-[JSValue setValue:forProperty:]):
(-[JSValue deleteProperty:]):
(-[JSValue hasProperty:]):
(-[JSValue defineProperty:descriptor:]):
* API/tests/testapi.cpp:
(TestAPI::run):

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

13 months ago[WebGL2] Support compilation of GLSL ES version 300 shaders
commit-queue@webkit.org [Mon, 30 Jul 2018 20:00:54 +0000 (20:00 +0000)]
[WebGL2] Support compilation of GLSL ES version 300 shaders
https://bugs.webkit.org/show_bug.cgi?id=187982
<rdar://problem/42564229>

Patch by Justin Fan <justin_fan@apple.com> on 2018-07-30
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/webgl2-glsl3-compile.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create): Rename 'useGLES3' to 'isWebGL2' (everywhere) to make more sense.
* platform/graphics/GraphicsContext3DAttributes.h: Rename 'useGLES3' to 'isWebGL2'.
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::setPixelFormat): Back WebGL2 contexts with OpenGL 4 for full OpenGL ES 3 support.
(WebCore::GraphicsContext3D::GraphicsContext3D): Request correct GLSL output version and WebGL 2 for ANGLE shader compilation.
* platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::checkVaryingsPacking const): MAX_VARYING_FLOATS is deprecated in OpenGL 3+.
* platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp: Rename 'useGLES3' to 'isWebGL2'.
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):

LayoutTests:

New simple test added to ensure that GLSL ES version 300 shaders compile.
Updated other test results in glsl3 to match new functionality.

* fast/canvas/webgl/webgl2-glsl3-compile-expected.txt: Added.
* fast/canvas/webgl/webgl2-glsl3-compile.html: Added.
* platform/ios/TestExpectations: Skipping ios for now.
* webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt:
* webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt:
* webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt:
* webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt:
* webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt:
* webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt:
* webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt:
* webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt:
* webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt:
* webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt:
* webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt:

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

13 months agoRebaseline fast/forms/file/input-file-re-render.html for Mojave.
ryanhaddad@apple.com [Mon, 30 Jul 2018 19:56:16 +0000 (19:56 +0000)]
Rebaseline fast/forms/file/input-file-re-render.html for Mojave.

Unreviewed test gardening.

* platform/mac-highsierra/fast/forms/file/input-file-re-render-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/input-file-re-render-expected.txt.
* platform/mac/fast/forms/file/input-file-re-render-expected.txt:

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

13 months agoUpdate TestExpectations for mac-wk1.
ryanhaddad@apple.com [Mon, 30 Jul 2018 19:56:00 +0000 (19:56 +0000)]
Update TestExpectations for mac-wk1.

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

13 months agoMatch GraphicsContext3D with correct virtual screen using registryID
commit-queue@webkit.org [Mon, 30 Jul 2018 19:52:51 +0000 (19:52 +0000)]
Match GraphicsContext3D with correct virtual screen using registryID
https://bugs.webkit.org/show_bug.cgi?id=188072
<rdar://problem/42634940>

Patch by Justin Fan <justin_fan@apple.com> on 2018-07-30
Reviewed by Dean Jackson.

Follow up to https://bugs.webkit.org/show_bug.cgi?id=187750. Rather than matching rendererIDs,
which can vary between processes, match GPU to display using registryID that is unique to a GPU,
which was added to CGL in MacOS 10.13.

No new tests. Manually tested on MacBookPro13,3 and iMacPro1,1 with Apple DisplayPort Cinema Display
and RX 580 external GPU.

* platform/PlatformScreen.h:
* platform/ScreenProperties.h:
(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):
* platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::setGPUByRegistryID):
(WebCore::setGPUByDisplayMask):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::screenDidChange):
(WebCore::identifyAndSetCurrentGPU): Deleted.
* platform/mac/PlatformScreenMac.mm:
(WebCore::collectScreenProperties):
(WebCore::primaryRegistryID):
(WebCore::registryIDForDisplay):
(WebCore::registryIDForDisplayMask):
(WebCore::rendererIDForDisplayMask): Deleted.
(WebCore::rendererIDForDisplay): Deleted.
(WebCore::primaryRendererID): Deleted.

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

13 months agoSource/WebCore:
commit-queue@webkit.org [Mon, 30 Jul 2018 19:37:42 +0000 (19:37 +0000)]
Source/WebCore:
Merge PlatformCookieJar functions into NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=188137

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

No new tests -- no change in WebKit functionality.

* PlatformMac.cmake: Remove CookieJarMac.mm reference
* SourcesCocoa.txt: Remove CookieJarMac.mm reference
* WebCore.xcodeproj/project.pbxproj:
* loader/CookieJar.cpp: Remove PlatformCookieJar.h reference.
* platform/Curl.cmake: Remove CookieJarCurl.cpp reference.
* platform/SourcesSoup.txt: Remove CookieJarSoup.cpp reference.
* platform/network/CacheValidation.cpp: Adapt callsites to use
NetworkStorageSession instead of CookieJar functions.

(WebCore::headerValueForVary):
* platform/network/NetworkStorageSession.h: Add PlatformCookieJar
functions.

* platform/network/PlatformCookieJar.h: Removed.
* platform/network/SocketStreamHandleImpl.cpp: Adapt callsites to
use NetworkStorageSession instead of CookieJar functions.
(WebCore::cookieDataForHandshake):
* platform/network/cf/CookieJarCFNet.cpp: Removed.
* platform/network/cf/NetworkStorageSessionCFNet.cpp: Move functions
from CookieJarCFNet.cpp.
(WebCore::cookieDomain):
(WebCore::canonicalCookieTime):
(WebCore::cookieCreatedTime):
(WebCore::cookieExpirationTime):
(WebCore::cookieName):
(WebCore::cookiePath):
(WebCore::cookieValue):
(WebCore::filterCookies):
(WebCore::copyCookiesForURLWithFirstPartyURL):
(WebCore::createCookies):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::containsSecureCookies):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
* platform/network/cocoa/NetworkStorageSessionCocoa.mm: Move functions
from CookieJarMac.mm.
(WebCore::httpCookies):
(WebCore::deleteHTTPCookie):
(WebCore::policyProperties):
(WebCore::cookiesForURL):
(WebCore::setHTTPCookiesForURL):
(WebCore::httpCookiesForURL):
(WebCore::filterCookies):
(WebCore::applyPartitionToCookies):
(WebCore::cookiesAreBlockedForURL):
(WebCore::cookiesInPartitionForURL):
(WebCore::cookiesForSession):
(WebCore::deleteAllHTTPCookies):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::httpCookieAcceptPolicy):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
* platform/network/curl/CookieJarCurl.cpp: Removed.
* platform/network/curl/CookieJarCurl.h:
* platform/network/curl/NetworkStorageSessionCurl.cpp: Merge functions
from CookieJarCurl.cpp.
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):
* platform/network/mac/CookieJarMac.mm: Removed.
* platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
* platform/network/soup/CookieJarSoup.cpp: Removed.
* platform/network/soup/NetworkStorageSessionSoup.cpp: Merge functions
from CookieJarSoup.cpp.
(WebCore::NetworkStorageSession::cookiesEnabled const):
(WebCore::httpOnlyCookieExists):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):
(WebCore::NetworkStorageSession::deleteCookie const):
(WebCore::NetworkStorageSession::deleteAllCookies):
(WebCore::NetworkStorageSession::deleteAllCookiesModifiedSince):
(WebCore::NetworkStorageSession::deleteCookiesForHostnames):
(WebCore::NetworkStorageSession::getHostnamesWithCookies):
(WebCore::NetworkStorageSession::getRawCookies const):
(WebCore::cookiesForSession):
(WebCore::NetworkStorageSession::cookiesForDOM const):
(WebCore::NetworkStorageSession::cookieRequestHeaderFieldValue const):

Source/WebKit:
https://bugs.webkit.org/show_bug.cgi?id=188137
Merge PlatformCookieJar functions into NetworkStorageSession

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* NetworkProcess/Cookies/WebCookieManager.cpp:
(WebKit::WebCookieManager::getHostnamesWithCookies):
(WebKit::WebCookieManager::deleteCookiesForHostname):
(WebKit::WebCookieManager::deleteAllCookies):
(WebKit::WebCookieManager::deleteAllCookiesModifiedSince):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::cookiesEnabled):
(WebKit::NetworkConnectionToWebProcess::cookieRequestHeaderFieldValue):
(WebKit::NetworkConnectionToWebProcess::getRawCookies):
(WebKit::NetworkConnectionToWebProcess::deleteCookie):
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::logCookieInformationInternal):
* NetworkProcess/cache/NetworkCache.cpp:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

Source/WebKitLegacy/mac:
Merge PlatformCookieJar functions into NetworkStorageSession
https://bugs.webkit.org/show_bug.cgi?id=188137

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookiesEnabled):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):
(WebPlatformStrategies::deleteCookie):
* WebView/WebPreferences.mm:
(+[WebPreferences _clearNetworkLoaderSession]):

Source/WebKitLegacy/win:
https://bugs.webkit.org/show_bug.cgi?id=188137
Merge PlatformCookieJar functions into NetworkStorageSession

Adapt callsites to use NetworkStorageSession instead of CookieJar functions.

Patch by Rob Buis <rbuis@igalia.com> on 2018-07-30
Reviewed by Alex Christensen.

* WebCoreSupport/WebPlatformStrategies.cpp:
(WebPlatformStrategies::cookiesForDOM):
(WebPlatformStrategies::setCookiesFromDOM):
(WebPlatformStrategies::cookiesEnabled):
(WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebPlatformStrategies::getRawCookies):
(WebPlatformStrategies::deleteCookie):
* WebPreferences.cpp:
(WebPreferences::clearNetworkLoaderSession):

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

13 months agoAdd RefCounted CompletionHandler wrapping abstraction for sending policy decisions...
achristensen@apple.com [Mon, 30 Jul 2018 19:12:03 +0000 (19:12 +0000)]
Add RefCounted CompletionHandler wrapping abstraction for sending policy decisions back to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=188089

Reviewed by Geoffrey Garen and Said Abou-Hallawa.

This will be necessary for when I add an asynchronous parallel step to decidePolicyForNavigationAction.
We will want to wait for that asynchronous step for decidePolicyForNavigationActionSync but not for a client.

No change in behavior.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::PolicyDecisionSender::create):
(WebKit::WebPageProxy::PolicyDecisionSender::operator()):
(WebKit::WebPageProxy::PolicyDecisionSender::PolicyDecisionSender):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

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

13 months agoNullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
cdumez@apple.com [Mon, 30 Jul 2018 18:17:12 +0000 (18:17 +0000)]
Nullptr crash accessing Document in GenericEventQueue::dispatchOneEvent()
https://bugs.webkit.org/show_bug.cgi?id=187284

Unreviewed, roll r233496 and r233571 now that all known issues have been fixed via
dependency bugs.

Source/WebCore:

Test: media/track/video-track-addition-and-frame-removal.html

* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
(WebCore::WebKitMediaKeySession::suspend):
(WebCore::WebKitMediaKeySession::resume):
(WebCore::WebKitMediaKeySession::stop):
* Modules/encryptedmedia/legacy/WebKitMediaKeySession.h:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::removeSourceBuffer):
(WebCore::MediaSource::suspend):
(WebCore::MediaSource::resume):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::suspend):
(WebCore::SourceBuffer::resume):
(WebCore::SourceBuffer::stop):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::SourceBufferList):
(WebCore::SourceBufferList::canSuspendForDocumentSuspension const):
(WebCore::SourceBufferList::suspend):
(WebCore::SourceBufferList::resume):
(WebCore::SourceBufferList::stop):
(WebCore::SourceBufferList::activeDOMObjectName const):
* Modules/mediasource/SourceBufferList.h:
* Modules/mediasource/SourceBufferList.idl:
* dom/Document.h:
(WebCore::Document::hasBrowsingContext const):
* dom/GenericEventQueue.cpp:
(WebCore::GenericEventQueue::dispatchOneEvent):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::prepareToPlay):
(WebCore::HTMLMediaElement::playInternal):
(WebCore::HTMLMediaElement::pauseInternal):
(WebCore::HTMLMediaElement::sourceWasAdded):
* html/track/AudioTrackList.cpp:
(AudioTrackList::activeDOMObjectName const):
* html/track/AudioTrackList.h:
* html/track/AudioTrackList.idl:
* html/track/TextTrackList.cpp:
(TextTrackList::activeDOMObjectName const):
* html/track/TextTrackList.h:
* html/track/TextTrackList.idl:
* html/track/TrackListBase.cpp:
(WebCore::TrackListBase::TrackListBase):
(WebCore::TrackListBase::canSuspendForDocumentSuspension const):
(WebCore::TrackListBase::suspend):
(WebCore::TrackListBase::resume):
(WebCore::TrackListBase::stop):
* html/track/TrackListBase.h:
* html/track/VideoTrackList.cpp:
(VideoTrackList::activeDOMObjectName const):
* html/track/VideoTrackList.h:
* html/track/VideoTrackList.idl:

LayoutTests:

* media/track/video-track-addition-and-frame-removal-expected.txt: Added.
* media/track/video-track-addition-and-frame-removal.html: Added.

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

13 months agoUnreviewed, rolling out r234327.
david_fenton@apple.com [Mon, 30 Jul 2018 17:14:11 +0000 (17:14 +0000)]
Unreviewed, rolling out r234327.

Caused 2 crashes on macOS and iOS debug API tests

Reverted changeset:

"Add RefCounted CompletionHandler wrapping abstraction for
sending policy decisions back to WebProcess"
https://bugs.webkit.org/show_bug.cgi?id=188089
https://trac.webkit.org/changeset/234327

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

13 months agoUnreviewed internal build fix after r234347.
cdumez@apple.com [Mon, 30 Jul 2018 16:53:37 +0000 (16:53 +0000)]
Unreviewed internal build fix after r234347.

* html/StepRange.cpp:
(WebCore::StepRange::StepRange):

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

13 months agoPotential null dereference under WebPage::applicationDidBecomeActive()
cdumez@apple.com [Mon, 30 Jul 2018 16:50:40 +0000 (16:50 +0000)]
Potential null dereference under WebPage::applicationDidBecomeActive()
https://bugs.webkit.org/show_bug.cgi?id=188170
<rdar://problem/37493418>

Reviewed by Wenson Hsieh.

WebPage::m_page gets nulled out when the page is closed but the WebPage object may receive IPC
until it gets destroyed. Therefore, we need to null-check m_page before using it in IPC message
handlers.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
(WebKit::WebPage::applicationDidBecomeActive):

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

13 months agoShrink GraphicsLayer by making m_transform and m_childrenTransform be unique_ptrs
simon.fraser@apple.com [Mon, 30 Jul 2018 16:36:42 +0000 (16:36 +0000)]
Shrink GraphicsLayer by making m_transform and m_childrenTransform be unique_ptrs
https://bugs.webkit.org/show_bug.cgi?id=188143

Reviewed by Zalan Bujtas.

m_transform and m_childrenTransform are usually identity; save space by making
these unique_ptrs. The getters still return references by returning a reference
to a NeverDestroyed<TransformationMatrix> if necessary.

Shrinks GraphicsLayerCA from 840 to 640 bytes.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::identityTransform):
(WebCore::GraphicsLayer::transform const):
(WebCore::GraphicsLayer::setTransform):
(WebCore::GraphicsLayer::childrenTransform const):
(WebCore::GraphicsLayer::setChildrenTransform):
(WebCore::GraphicsLayer::dumpProperties const):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::hasNonIdentityTransform const):
(WebCore::GraphicsLayer::hasNonIdentityChildrenTransform const):
(WebCore::GraphicsLayer::transform const): Deleted.
(WebCore::GraphicsLayer::setTransform): Deleted.
(WebCore::GraphicsLayer::childrenTransform const): Deleted.
(WebCore::GraphicsLayer::setChildrenTransform): Deleted.
(WebCore::GraphicsLayer::hasFlattenedPerspectiveTransform): Deleted. It was unused.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setTransform):
(WebCore::GraphicsLayerCA::setChildrenTransform):
(WebCore::GraphicsLayerCA::layerTransform const):
(WebCore::GraphicsLayerCA::updateTransform):
(WebCore::GraphicsLayerCA::updateChildrenTransform):
(WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):

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

13 months ago[Win] Layout test http/tests/security/canvas-remote-read-remote-video-hls.html is...
pvollan@apple.com [Mon, 30 Jul 2018 15:56:29 +0000 (15:56 +0000)]
[Win] Layout test http/tests/security/canvas-remote-read-remote-video-hls.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188169

Unreviewed test gardening.

* platform/win/TestExpectations:

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

13 months ago[Win] Layout test fast/text/complex-first-glyph-with-initial-advance.html is failing.
pvollan@apple.com [Mon, 30 Jul 2018 15:50:03 +0000 (15:50 +0000)]
[Win] Layout test fast/text/complex-first-glyph-with-initial-advance.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188168

Unreviewed test gardening.

* platform/win/TestExpectations:

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

13 months ago[Win] Layout test fast/repaint/canvas-object-fit.html is failing.
pvollan@apple.com [Mon, 30 Jul 2018 15:36:12 +0000 (15:36 +0000)]
[Win] Layout test fast/repaint/canvas-object-fit.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188167

Unreviewed test gardening.

* platform/win/TestExpectations:

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

13 months ago[Win] Layout test webanimations/accessing-current-time-after-clearing-css-animation...
pvollan@apple.com [Mon, 30 Jul 2018 15:25:29 +0000 (15:25 +0000)]
[Win] Layout test webanimations/accessing-current-time-after-clearing-css-animation-effect.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=188166

Unreviewed test gardening.

* platform/win/TestExpectations:

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

13 months agoAdd a debugging utility to dump the memory layout of a JSCell.
mark.lam@apple.com [Mon, 30 Jul 2018 14:46:25 +0000 (14:46 +0000)]
Add a debugging utility to dump the memory layout of a JSCell.
https://bugs.webkit.org/show_bug.cgi?id=188157

Reviewed by Yusuke Suzuki.

This patch adds $vm.dumpCell() and VMInspector::dumpCellMemory() to allow us to
dump the memory contents of a cell and if present, its butterfly for debugging
purposes.

Example usage for JS code when JSC_useDollarVM=true:

    $vm.dumpCell(obj);

Example usage from C++ code or from lldb:

    (lldb) p JSC::VMInspector::dumpCellMemory(obj)

Some examples of dumps:

    <0x104bc8260, Object>
      [0] 0x104bc8260 : 0x010016000000016c header
        structureID 364 0x16c structure 0x104b721b0
        indexingTypeAndMisc 0 0x0 NonArray
        type 22 0x16
        flags 0 0x0
        cellState 1
      [1] 0x104bc8268 : 0x0000000000000000 butterfly
      [2] 0x104bc8270 : 0xffff000000000007
      [3] 0x104bc8278 : 0xffff000000000008

    <0x104bb4360, Array>
      [0] 0x104bb4360 : 0x0108210b00000171 header
        structureID 369 0x171 structure 0x104b723e0
        indexingTypeAndMisc 11 0xb ArrayWithArrayStorage
        type 33 0x21
        flags 8 0x8
        cellState 1
      [1] 0x104bb4368 : 0x00000008000f4718 butterfly
        base 0x8000f46e0
        hasIndexingHeader YES hasAnyArrayStorage YES
        publicLength 4 vectorLength 7 indexBias 2
        preCapacity 2 propertyCapacity 4
          <--- preCapacity
          [0] 0x8000f46e0 : 0x0000000000000000
          [1] 0x8000f46e8 : 0x0000000000000000
          <--- propertyCapacity
          [2] 0x8000f46f0 : 0x0000000000000000
          [3] 0x8000f46f8 : 0x0000000000000000
          [4] 0x8000f4700 : 0xffff00000000000d
          [5] 0x8000f4708 : 0xffff00000000000c
          <--- indexingHeader
          [6] 0x8000f4710 : 0x0000000700000004
          <--- butterfly
          <--- arrayStorage
          [7] 0x8000f4718 : 0x0000000000000000
          [8] 0x8000f4720 : 0x0000000400000002
          <--- indexedProperties
          [9] 0x8000f4728 : 0xffff000000000008
          [10] 0x8000f4730 : 0xffff000000000009
          [11] 0x8000f4738 : 0xffff000000000005
          [12] 0x8000f4740 : 0xffff000000000006
          [13] 0x8000f4748 : 0x0000000000000000
          [14] 0x8000f4750 : 0x0000000000000000
          [15] 0x8000f4758 : 0x0000000000000000
          <--- unallocated capacity
          [16] 0x8000f4760 : 0x0000000000000000
          [17] 0x8000f4768 : 0x0000000000000000
          [18] 0x8000f4770 : 0x0000000000000000
          [19] 0x8000f4778 : 0x0000000000000000

* runtime/JSObject.h:
* tools/JSDollarVM.cpp:
(JSC::functionDumpCell):
(JSC::JSDollarVM::finishCreation):
* tools/VMInspector.cpp:
(JSC::VMInspector::dumpCellMemory):
(JSC::IndentationScope::IndentationScope):
(JSC::IndentationScope::~IndentationScope):
(JSC::VMInspector::dumpCellMemoryToStream):
* tools/VMInspector.h:

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

13 months ago[GStreamer] Make codecparsers optionnal
commit-queue@webkit.org [Mon, 30 Jul 2018 13:06:24 +0000 (13:06 +0000)]
[GStreamer] Make codecparsers optionnal
https://bugs.webkit.org/show_bug.cgi?id=188010

And avoid building libWebRTC if it won't be used. While there is no other
WebRTC backend, it makes no sense to expose an option.

Error out when WEBRTC or MEDIA_STREAM is enabled but GStreamer < 1.10

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-07-30
Reviewed by Alejandro G. Castro.

.:

* Source/cmake/GStreamerChecks.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/WebCore:

* platform/GStreamer.cmake:

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

13 months agoUnreviewed WPE gardening. Adding and adjusting a bunch of expectations
zandobersek@gmail.com [Mon, 30 Jul 2018 11:31:45 +0000 (11:31 +0000)]
Unreviewed WPE gardening. Adding and adjusting a bunch of expectations
to cover various ASSERT crashers.

* platform/wpe/TestExpectations:

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

13 months agoUnreviewed WPE gardening.
zandobersek@gmail.com [Mon, 30 Jul 2018 08:16:02 +0000 (08:16 +0000)]
Unreviewed WPE gardening.

Adding two WPE-specific test baselines. Adjusting or adding a few
additional test expectations.

* platform/wpe/TestExpectations:
* platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Added.
* platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt: Added.

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

13 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Mon, 30 Jul 2018 06:40:42 +0000 (06:40 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188155

Unreviewed test gardening.

* platform/wincairo/TestExpectations:

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

13 months agoFix incorrect guards around a method declaration in PageClient.h
wenson_hsieh@apple.com [Mon, 30 Jul 2018 05:39:49 +0000 (05:39 +0000)]
Fix incorrect guards around a method declaration in PageClient.h
https://bugs.webkit.org/show_bug.cgi?id=188153

Reviewed by Tim Horton.

`WebCore::DragItem` is forward declared under `ENABLE(DRAG_SUPPORT)`, but `startDrag` is declared under
`PLATFORM(COCOA)`. If `ENABLE(DRAG_SUPPORT)` is off but `PLATFORM(COCOA)` is on, the build breaks.

We fix this by moving `startDrag` under `ENABLE(DRAG_SUPPORT)`.

* UIProcess/PageClient.h:
(WebKit::PageClient::startDrag):

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

13 months ago[Wi-Fi Assertions] Pass a ResumptionReason to resumeWiFiAssertions
aestes@apple.com [Sun, 29 Jul 2018 22:13:19 +0000 (22:13 +0000)]
[Wi-Fi Assertions] Pass a ResumptionReason to resumeWiFiAssertions
https://bugs.webkit.org/show_bug.cgi?id=188142
<rdar://problem/42628842>

Reviewed by Darin Adler.

* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

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

13 months ago[Cocoa] Update more WebCore Objective-C code to be ARC compatible
darin@apple.com [Sun, 29 Jul 2018 21:45:43 +0000 (21:45 +0000)]
[Cocoa] Update more WebCore Objective-C code to be ARC compatible
https://bugs.webkit.org/show_bug.cgi?id=188140

Reviewed by Sam Weinig.

Source/WebCore:

This make sure we don't put any Objective-C objects into HashMap/Set
data structures, which doesn't work under ARC at this time. We could
fix that some day, but it's pretty simple to change code not to rely
on it, for now, and not as simple to support it in HashMap/Set.

* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):
Use CFRetain/CFAutorelease instead of retain/autorelease.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(createAccessibilityRoleMap): Use CFStringRef in a HashMap rather than
NSString * for string constants.
(roleValueToNSString): Updated for above change.

* bridge/objc/WebScriptObject.mm:
(-[WebScriptObject stringRepresentation]): Updated since objectValue
is now CFTypeRef rather than NSObject *.

* bridge/objc/objc_instance.mm:
(ObjcInstance::create): Use CFTypeRef instead of id for the key types
in a HashMap.
(ObjcInstance::~ObjcInstance): Updated for the above change.
(ObjcInstance::invokeObjcMethod): Updated since objectValue is now
CFTypeRef.
(ObjcInstance::invokeDefaultMethod): Ditto.
(ObjcInstance::setValueOfUndefinedField): Ditto.
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcArray::setValueAt const): Ditto.

* bridge/objc/objc_utility.h: Use #pragma once. Use CFTypeRef instead
of NSObject * for objectValue, since it's in a union and ARC does not
support strong Objective-C object pointers in a union.

* bridge/objc/objc_utility.mm:
(JSC::Bindings::convertValueToObjcValue): Updated since objectValue is
now CFTypeRef.

* editing/cocoa/HTMLConverter.mm:
(HTMLConverter::_processElement): Use CFTypeRef rather than NSTextTable
for a HashMap.
(HTMLConverter::_exitElement): Ditto.

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attributesForAttributedStringConversion): Use CFRetain rather
than -[NSObject retain] in a workaround for an overrelease.

* editing/mac/DictionaryLookup.h: Removed code to make this usable from
non-Objective-C source files. Use tuples rather than out arguments
for the results of the various functions.

* editing/mac/DictionaryLookup.mm:
(WebCore::DictionaryLookup::rangeForSelection): Return a tuple rather
than using an out argument for options.
(WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
(WebCore::DictionaryLookup::stringForPDFSelection): Ditto.
(WebCore::showPopupOrCreateAnimationController): Removed use of typedef
PlatformAnimationController.
(WebCore::DictionaryLookup::animationControllerForPopup): Ditto.

* html/HTMLMediaElement.h: Put the videoFullscreenLayer function inside
an __OBJC__ ifdef since we can't do the type conversion without the
full Objective-C type.

* page/mac/EventHandlerMac.mm:
(WebCore::selfRetainingNSScrollViewScrollWheel): Use CFRetain/CFRelease
instead of retain/release.
(WebCore::EventHandler::selectClosestWordFromHitTestResultBasedOnLookup):
Updated to use tuple return value from DictionaryLookup.

* page/scrolling/ScrollingStateNode.h: Replaced direct use of PlatformLayer*
in a union with use of a "typless" void* pointer and added helper functions
to convert in both directions.
* page/scrolling/cocoa/ScrollingStateNode.mm:
(WebCore::LayerRepresentation::retainPlatformLayer): Use CFRetain instead
of retain.
(WebCore::LayerRepresentation::releasePlatformLayer): Use CFRelease instead
of release.
(WebCore::LayerRepresentation::makePlatformLayerTyped): Added.
(WebCore::LayerRepresentation::makePlatformLayerTypeless): Ditto.
* page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
(WebCore::LayerRepresentation::retainPlatformLayer): Updated argument type.
(WebCore::LayerRepresentation::releasePlatformLayer): Ditto.
(WebCore::LayerRepresentation::makePlatformLayerTyped): Added.
(WebCore::LayerRepresentation::makePlatformLayerTypeless): Ditto.

* platform/gamepad/cocoa/GameControllerGamepadProvider.h: Use CFTypeRef
instad of GCController * for key type of HashMap.
* platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
(WebCore::GameControllerGamepadProvider::controllerDidConnect): Updated
for the above change.
(WebCore::GameControllerGamepadProvider::controllerDidDisconnect): Ditto.

* platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
Use SOFT_LINK_CONSTANT_MAY_FAIL instead of SOFT_LINK_POINTER_OPTIONAL for
strings, since SOFT_LINK_POINTER_OPTIONAL does not work for Objective-C
types under ARC.
(WebCore::AVTrackPrivateAVFObjCImpl::audioKind const): Added checks
for the constants.
(WebCore::AVTrackPrivateAVFObjCImpl::videoKind const): Ditto.
(WebCore::AVTrackPrivateAVFObjCImpl::label const): Ditto.

* platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:
Use #pragma once and use CFTypeRef instead of AVMediaSelectionOption *
in the key to a HashMap.
* platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
(WebCore::MediaSelectionGroupAVFObjC::updateOptions): Updated for
the above change.

* platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
Use SOFT_LINK_CONSTANT_MAY_FAIL instead of SOFT_LINK_POINTER_OPTIONAL for
strings, since SOFT_LINK_POINTER_OPTIONAL does not work for Objective-C
types under ARC.
(WebCore::customSchemeURL): Removed unnecessary use of
NeverDestroyed<RetainPtr>. Can just use a straight pointer without calling
release, and that works with or without ARC.
(WebCore::imageDecoderAssetOptions): Ditto. Here, had to add a retain,
which we'll remove when we turn on ARC. Added canLoad checks, needed
because of SOFT_LINK_CONSTANT_MAY_FAIL.
(WebCore::ImageDecoderAVFObjC::firstEnabledTrack): Added canLoad check,
needed because of SOFT_LINK_CONSTANT_MAY_FAIL.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
Use CFTypeRef instead of AVAssetResourceLoadingRequest in HashMap.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
Updated for above.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::didStopLoadingRequest): Ditto.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
Use CFTypeRef instead of AVSampleBufferAudioRenderer in HashMap.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVolume): Updated for above.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setMuted): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setPreservesPitch): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setHasAvailableAudioSample): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeAudioRenderer): Ditto.

* platform/graphics/metal/GPUDrawableMetal.mm: Updated include; under ARC, it's
not safe to call a method on a class without seeing its interface.

* platform/mac/VideoFullscreenInterfaceMac.mm: Added an explicit
__unsafe_unretained for a delegate. Could consider moving to weak, but for now
this preserves the current behavior and compiles under ARC.

* platform/mac/WebCoreFullScreenPlaceholderView.h: Use strong for the contents,
weak for the target, and changed the action to be hard-coded instead of an
arbitrary selector. If we find we need the flexibility again later, we can do
it with a block, which is more ARC-friendly than calling an arbitrary selector.
* platform/mac/WebCoreFullScreenPlaceholderView.mm:
(-[WebCoreFullScreenPlaceholderView initWithFrame:]): Call function directly
instead of taking advantage of "using".
(-[WebCoreFullScreenPlaceholderView mouseDown:]): Call cancelOperation: on the
target rather than performing an arbitrary selector.

* platform/mac/WebCoreObjCExtras.mm:
(WebCoreObjCScheduleDeallocateOnMainThread): Use sel_registerName instead of
@selector, since @selector is not supported under ARC.

* platform/network/ResourceHandle.h: Use a return value rather than using an
inout argument in applySniffingPoliciesAndStoragePartitionIfNeeded.

* platform/network/cocoa/CookieStorageObserver.mm:
(WebCore::CookieStorageObserver::startObserving): Removed unnecessary
assertion of repondsToSelector since we are about to dispatch it immediately
after. Call the selector in the conventional way instead of using performSelector.

* platform/network/cocoa/WebCoreNSURLSession.h: Use #pragma once and use
CFTypeRef instead of an Objective-C type. Also use an explicit __unsafe_unretained
for the session in the data task.
* platform/network/cocoa/WebCoreNSURLSession.mm:
(-[WebCoreNSURLSession dealloc]): Updated for the above.
(-[WebCoreNSURLSession taskCompleted:]): Ditto.
(-[WebCoreNSURLSession invalidateAndCancel]): Ditto.
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]): Ditto.
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]): Ditto.
(-[WebCoreNSURLSession dataTaskWithRequest:]): Ditto.
(-[WebCoreNSURLSession dataTaskWithURL:]): Ditto.

* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::applySniffingPoliciesAndStoragePartitionIfNeeded):
Use a return value instead of an inout argument. Also use bridging casts.
(WebCore::ResourceHandle::createNSURLConnection): Updated for the change above.
Also use a bridging cast.
(WebCore::ResourceHandle::schedule): Use a bridging cast.
(WebCore::ResourceHandle::unschedule): Ditto.

* platform/network/mac/WebCoreURLResponse.mm:
(WebCore::adjustMIMETypeIfNecessary): Use a bridging cast.

* testing/Internals.cpp:
(WebCore::Internals::rangeForDictionaryLookupAtLocation): Moved the macOS
version of this function out of this file ...
* testing/Internals.mm:
(WebCore::Internals::rangeForDictionaryLookupAtLocation): ... to here.

Source/WebKit:

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController enterFullScreen:]): Removed the call to
setAction: since the full screen placeholder view now always uses the
cancelOperation: method.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::lookupTextAtLocation): Updated to use the new
DictionaryLookup function that returns a tuple instead of using an out argument.
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupAtLocation): Ditto.
(WebKit::WebPage::performDictionaryLookupForSelection): Ditto.

Source/WebKitLegacy/mac:

* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController _animationControllerForText]): Updated to use the
new DictionaryLookup function that returns a tuple instead of using an out argument.

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

13 months agoUse static global variables instead of static NeverDestroyed inside function if possible
utatane.tea@gmail.com [Sun, 29 Jul 2018 18:13:28 +0000 (18:13 +0000)]
Use static global variables instead of static NeverDestroyed inside function if possible
https://bugs.webkit.org/show_bug.cgi?id=188146

Reviewed by Darin Adler.

This patch leverages constexpr constructors / trivial destructors more to remove unnecessary `static NeverDestroyed`
inside a function. It simplifies the code, removes the unnecessary function, and ensures the initialization at
a program loader phase.

We make StepRange::StepDescription constructor constexpr to remove bunch of `static NeverDestroyed<const StepRange::StepDescription>`.
And we use `static Lock` since WTF::Lock has constexpr constructor.

No behavior change.

* dom/MessagePort.cpp:
(WebCore::MessagePort::deref const):
(WebCore::MessagePort::isExistingMessagePortLocallyReachable):
(WebCore::MessagePort::notifyMessageAvailable):
(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::~MessagePort):
(WebCore::allMessagePortsLock): Deleted.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::contextIdentifier const):
(WebCore::ScriptExecutionContext::removeFromContextsMap):
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::postTaskTo):
(WebCore::allScriptExecutionContextsMapLock): Deleted.
* html/DateInputType.cpp:
(WebCore::DateInputType::createStepRange const):
* html/DateTimeInputType.cpp:
(WebCore::DateTimeInputType::createStepRange const):
* html/DateTimeLocalInputType.cpp:
(WebCore::DateTimeLocalInputType::createStepRange const):
* html/MonthInputType.cpp:
(WebCore::MonthInputType::createStepRange const):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::createStepRange const):
* html/StepRange.h:
(WebCore::StepRange::StepDescription::StepDescription):
* html/TimeInputType.cpp:
(WebCore::TimeInputType::createStepRange const):
* html/WeekInputType.cpp:
(WebCore::WeekInputType::createStepRange const):
* page/SecurityPolicy.cpp:
(WebCore::originAccessMap):
(WebCore::SecurityPolicy::isAccessWhiteListed):
(WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
(WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
(WebCore::SecurityPolicy::resetOriginAccessWhitelists):
(WebCore::originAccessMapLock): Deleted.
* platform/SchemeRegistry.cpp:
(WebCore::allBuiltinSchemes):
(WebCore::builtinLocalURLSchemes):
(WebCore::localURLSchemes):
(WebCore::displayIsolatedURLSchemes):
(WebCore::builtinSecureSchemes):
(WebCore::secureSchemes):
(WebCore::builtinSchemesWithUniqueOrigins):
(WebCore::schemesWithUniqueOrigins):
(WebCore::builtinCanDisplayOnlyIfCanRequestSchemes):
(WebCore::canDisplayOnlyIfCanRequestSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::ContentSecurityPolicyBypassingSchemes):
(WebCore::cachePartitioningSchemes):
(WebCore::serviceWorkerSchemes):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::registerURLSchemeAsDisplayIsolated):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):
(WebCore::SchemeRegistry::canDisplayOnlyIfCanRequest):
(WebCore::SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest):
(WebCore::SchemeRegistry::registerURLSchemeAsBypassingContentSecurityPolicy):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsBypassingContentSecurityPolicy):
(WebCore::SchemeRegistry::schemeShouldBypassContentSecurityPolicy):
(WebCore::SchemeRegistry::registerURLSchemeAsCachePartitioned):
(WebCore::SchemeRegistry::shouldPartitionCacheForURLScheme):
(WebCore::SchemeRegistry::registerURLSchemeServiceWorkersCanHandle):
(WebCore::SchemeRegistry::canServiceWorkersHandleURLScheme):
(WebCore::SchemeRegistry::isServiceWorkerContainerCustomScheme):
(WebCore::schemeRegistryLock): Deleted.

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

13 months ago[Curl] Fix the bug when client reject the redirect on WebKitLegacy.
Basuke.Suzuki@sony.com [Sun, 29 Jul 2018 16:18:32 +0000 (16:18 +0000)]
[Curl] Fix the bug when client reject the redirect on WebKitLegacy.
https://bugs.webkit.org/show_bug.cgi?id=188130

Reviewed by Darin Adler.

Source/WebCore:

ResourceHandle for Curl port has a bug when a client returns en empty request which
indicates the redirecti is rejected by the client. It should be quit the task immediately,
but it kept doing the job. Fixed.
NetworkDataTask implementation did the right thing and there's no bug for them.

Test: http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt

* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::continueAfterWillSendRequest):

LayoutTests:

* platform/wincairo/TestExpectations:
- xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt: Pass

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

13 months agoReset CompositingPolicyOverride between tests
simon.fraser@apple.com [Sat, 28 Jul 2018 18:39:58 +0000 (18:39 +0000)]
Reset CompositingPolicyOverride between tests
https://bugs.webkit.org/show_bug.cgi?id=188138

Reviewed by Zalan Bujtas.

WK1 tests were failing after r234330 because the compositing policy override optional
was left set on the Page (WK1 has injected bundle SPI to clear it). Fix by having
Internals::resetToConsistentState clear this state.

* testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):

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

13 months agoGardening: build fix for internal builds.
mark.lam@apple.com [Sat, 28 Jul 2018 16:35:24 +0000 (16:35 +0000)]
Gardening: build fix for internal builds.
https://bugs.webkit.org/show_bug.cgi?id=188123
<rdar://problem/42672268>

Not reviewed.

Some code is relying on RELEASE_ASSERT (without extra crash info arguments)
being purely inlined and not require linkage to an external symbol.  This patch
restores this property of the original RELEASE_ASSERT.

This means moving the variant of WTFCrashWithInfo that does not take extra args
to Assertions.h and making it an "inline" function.  When compiling with clang,
we also specify __attribute__((optnone)) to force the function out of being an
inline function (each linkage unit will get a copy of the function).  This causes
the 1st 4 arguments of WTFCrashWithInfo (e.g. line number) to still be captured
in the argument registers for crash diagnostics.

* wtf/Assertions.cpp:
(WTFCrashWithInfo):
* wtf/Assertions.h:

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

13 months agoAnimation stops with object-fit:contain on an animated 2d canvas
simon.fraser@apple.com [Sat, 28 Jul 2018 05:22:05 +0000 (05:22 +0000)]
Animation stops with object-fit:contain on an animated 2d canvas
https://bugs.webkit.org/show_bug.cgi?id=187840

Reviewed by Zalan Bujtas.
Source/WebCore:

If a canvas has object-fit: cover or contain, repaints need to mapped through
the rect that is used to position the canvas in the element bounds, which is replacedContentRect().

Add a version of replacedContentRect() that doesn't require passing the intrinsicSize() since
all but RenderVideo just pass the RenderReplaced's intrinsicSize.

Test: fast/repaint/canvas-object-fit.html

* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::didDraw):
* rendering/RenderHTMLCanvas.cpp:
(WebCore::RenderHTMLCanvas::paintReplaced):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintReplaced):
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::contentsBox const):
* rendering/RenderReplaced.h:
(WebCore::RenderReplaced::replacedContentRect const):
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::createShapeForImage const):

LayoutTests:

* fast/repaint/canvas-object-fit-expected.txt: Added.
* fast/repaint/canvas-object-fit.html: Added.

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