WebKit-https.git
14 months ago[Datalist][iOS] Display suggestions for input[type=color]
akeerthi@apple.com [Sat, 18 Aug 2018 00:43:23 +0000 (00:43 +0000)]
[Datalist][iOS] Display suggestions for input[type=color]
https://bugs.webkit.org/show_bug.cgi?id=188669

Reviewed by Tim Horton.

Source/WebCore:

Expose suggestedColors() in HTMLInputElement in order to allow the UIProcess to
access the list of suggested colors from a <datalist> element.

* html/ColorInputType.cpp:
(WebCore::ColorInputType::suggestedColors const):
* html/ColorInputType.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::suggestedColors const):
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::InputType::suggestedColors const):
* html/InputType.h:
* platform/ColorChooserClient.h:

Source/WebKit:

An input[type=color] element that has an associated datalist element should
display the color values provided on iOS. Similar to macOS, we now support 1-12
suggested colors, that will be displayed at the top of the color picker.

Also ensured that we get rounded corners on both sides of a color swatch if it is
the only one in its row.

* Shared/AssistedNodeInformation.cpp: Added suggestedColors field.
(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):
* Shared/AssistedNodeInformation.h:
* UIProcess/ios/forms/WKFormColorPicker.mm:
(+[WKColorPicker defaultTopColorMatrix]):
(-[WKColorPicker initWithView:]): Use the list of suggestedColors if it exists.
(-[WKColorPicker drawSelectionIndicatorForColorButton:]):
* WebProcess/WebCoreSupport/WebColorChooser.cpp:
(WebKit::WebColorChooser::WebColorChooser):
(WebKit::WebColorChooser::reattachColorChooser):
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::getAssistedNodeInformation):

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

14 months agoResource Load Statistics: Add layout test for web workers importing cross-site scripts
wilander@apple.com [Sat, 18 Aug 2018 00:25:01 +0000 (00:25 +0000)]
Resource Load Statistics: Add layout test for web workers importing cross-site scripts
https://bugs.webkit.org/show_bug.cgi?id=188706
<rdar://problem/43437050>

Reviewed by Alex Christensen.

* http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import-expected.txt: Added.
* http/tests/resourceLoadStatistics/blocking-in-web-worker-script-import.html: Added.
* http/tests/resourceLoadStatistics/resources/iframe-report-back-loaded.html:
    Fixed typo in URL.
* http/tests/resourceLoadStatistics/resources/script-revealing-cookies.php: Added.
* http/tests/resourceLoadStatistics/resources/worker-importing-localhost-script.js: Added.

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

14 months agoClean up CSSSelectorList after r234825
commit-queue@webkit.org [Sat, 18 Aug 2018 00:20:18 +0000 (00:20 +0000)]
Clean up CSSSelectorList after r234825
https://bugs.webkit.org/show_bug.cgi?id=188566

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-17
Reviewed by Megan Gardner.

This is responding to Darin's feedback in https://bugs.webkit.org/show_bug.cgi?id=188539

* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::operator=): Deleted.
* css/CSSSelectorList.h:
(WebCore::CSSSelectorList::CSSSelectorList):
* css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::parsePageSelector):
* css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumeComplexSelectorList):
(WebCore::CSSSelectorParser::consumeCompoundSelectorList):

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

14 months agoUnreviewed, rolling out r234991.
ryanhaddad@apple.com [Sat, 18 Aug 2018 00:11:49 +0000 (00:11 +0000)]
Unreviewed, rolling out r234991.

Caused an assertion failure on the bots.

Reverted changeset:

"Pass webPageID and webFrameID to NetworkLoad for speculative
loads"
https://bugs.webkit.org/show_bug.cgi?id=188682
https://trac.webkit.org/changeset/234991

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

14 months agoRemove Adobe SSO exception now that StorageAccess API is available
bfulgham@apple.com [Sat, 18 Aug 2018 00:09:32 +0000 (00:09 +0000)]
Remove Adobe SSO exception now that StorageAccess API is available
https://bugs.webkit.org/show_bug.cgi?id=188710
<rdar://problem/35056707>

Reviewed by Alex Christensen.

Remove custom quirk now that proper API exists to allow the same functions.

* loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::logSubresourceLoading): Remove unneeded quirk.
(WebCore::resourceNeedsSSOQuirk): Deleted.

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

14 months agoReplace canBubble and cancelable booleans in Event by enum classes
rniwa@webkit.org [Sat, 18 Aug 2018 00:00:25 +0000 (00:00 +0000)]
Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692
<rdar://problem/43411944>

Rubber-stamped by Alex Christensen.

Make these enum classes uint8_t.

* dom/Event.h:

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

14 months agoAdd some plumbing for safe browsing
achristensen@apple.com [Fri, 17 Aug 2018 23:24:37 +0000 (23:24 +0000)]
Add some plumbing for safe browsing
https://bugs.webkit.org/show_bug.cgi?id=188709

Reviewed by Tim Horton.

Source/WebCore:

No change in behavior.  Just passing around unused booleans.
We will need this for a way to load a page even though safe browsing says it's unsafe.

* WebCore.xcodeproj/project.pbxproj:
* loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::setShouldSkipSafeBrowsingCheck):
(WebCore::FrameLoadRequest::shouldSkipSafeBrowsingCheck):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadArchive):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::shouldReloadToHandleUnreachableURL):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
* loader/FrameLoader.h:
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadWithNavigationAction):
* loader/FrameLoaderClient.h:
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* loader/PolicyChecker.h:
* loader/ShouldSkipSafeBrowsingCheck.h: Added.

Source/WebKit:

Also adding a URL to SafeBrowsingResult because we'll need it.
Also adding a bool to LoadParameters because we will need to do special things
when loading the safe browsing warning, like adding a way to skip the safe browsing check.

* Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Shared/LoadParameters.h:
* UIProcess/Cocoa/SafeBrowsingResultCocoa.mm:
(WebKit::SafeBrowsingResult::SafeBrowsingResult):
* UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::beginSafeBrowsingCheck):
* UIProcess/SafeBrowsingResult.h:
(WebKit::SafeBrowsingResult::url const):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebFrameLoaderClient.h:
* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/win:

* WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
* WebCoreSupport/WebFrameLoaderClient.h:

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

14 months agoAdd back --wtf-only to run-api-tests
jbedard@apple.com [Fri, 17 Aug 2018 21:43:31 +0000 (21:43 +0000)]
Add back --wtf-only to run-api-tests
https://bugs.webkit.org/show_bug.cgi?id=187893
<rdar://problem/42483983>

Reviewed by Aakash Jain.

When doing WTF development, it is not necessary to build or run all of the API
tests. Generally, if a user has specified a specific binary (or binaries) that
they are interested in testing, it is not necessary to check all API test binaries.

* Scripts/webkitpy/api_tests/manager.py:
(Manager._collect_tests): Only use the binaries matching the program arguments
when collecting tests.
(Manager._binaries_for_arguments): Generate a list of binaries which match the
program arguments.
(Manager.run): Pass a list binaries to check.
* Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
* Scripts/webkitpy/port/base.py:
(Port.check_api_test_build): If the caller specifies which API test binaries it
requires, only check the ones specified.
(Port.path_to_api_test_binaries): Allow the caller to only build the WTF API tests.
(Port._build_api_tests): Allow the caller to only build the WTF API tests.
* Scripts/webkitpy/port/win.py:
(WinPort.path_to_api_test_binaries):

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

14 months agoMarked inspector/dom-debugger/event-breakpoint-with-navigation.html as flaky.
drousso@apple.com [Fri, 17 Aug 2018 21:28:31 +0000 (21:28 +0000)]
Marked inspector/dom-debugger/event-breakpoint-with-navigation.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=188708

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

14 months agoReplace canBubble and cancelable booleans in Event by enum classes
rniwa@webkit.org [Fri, 17 Aug 2018 21:24:40 +0000 (21:24 +0000)]
Replace canBubble and cancelable booleans in Event by enum classes
https://bugs.webkit.org/show_bug.cgi?id=188692

Reviewed by Alex Christensen.

Source/WebCore:

Replaced booleans indicating whether an event can bubble and an event is cancelable
by two enum classes: CanBubble and IsCancelable.

No new tests since there should be no behavioral changes.

* Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
(WebCore::WebKitPlaybackTargetAvailabilityEvent::WebKitPlaybackTargetAvailabilityEvent):
* Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp:
(WebCore::ApplePayPaymentAuthorizedEvent::ApplePayPaymentAuthorizedEvent):
* Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp:
(WebCore::ApplePayPaymentMethodSelectedEvent::ApplePayPaymentMethodSelectedEvent):
* Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::didCancelPaymentSession):
* Modules/applepay/ApplePayShippingContactSelectedEvent.cpp:
(WebCore::ApplePayShippingContactSelectedEvent::ApplePayShippingContactSelectedEvent):
* Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:
(WebCore::ApplePayShippingMethodSelectedEvent::ApplePayShippingMethodSelectedEvent):
* Modules/applepay/ApplePayValidateMerchantEvent.cpp:
(WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent):
* Modules/encryptedmedia/MediaKeySession.cpp:
(WebCore::MediaKeySession::updateKeyStatuses):
* Modules/encryptedmedia/legacy/WebKitMediaKeyMessageEvent.cpp:
(WebCore::WebKitMediaKeyMessageEvent::WebKitMediaKeyMessageEvent):
* Modules/encryptedmedia/legacy/WebKitMediaKeyNeededEvent.cpp:
(WebCore::WebKitMediaKeyNeededEvent::WebKitMediaKeyNeededEvent):
* Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
(WebCore::WebKitMediaKeySession::addKeyTimerFired):
(WebCore::WebKitMediaKeySession::sendError):
* Modules/gamepad/GamepadEvent.cpp:
(WebCore::GamepadEvent::GamepadEvent):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::connectionToServerLost):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::onSuccess):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):
* Modules/indexeddb/IDBRequestCompletionEvent.cpp:
(WebCore::IDBRequestCompletionEvent::IDBRequestCompletionEvent):
* Modules/indexeddb/IDBRequestCompletionEvent.h:
(WebCore::IDBRequestCompletionEvent::create):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):
* Modules/indexeddb/IDBVersionChangeEvent.cpp:
(WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
* Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::skipToNextTrack):
(WebCore::MediaSession::skipToPreviousTrack):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::scheduleEvent):
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::scheduleEvent):
* Modules/mediasource/SourceBufferList.cpp:
(WebCore::SourceBufferList::scheduleEvent):
* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::scheduledEventTimerFired):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::internalAddTrack):
(WebCore::MediaStream::internalRemoveTrack):
* Modules/mediastream/MediaStreamEvent.cpp:
(WebCore::MediaStreamEvent::create):
(WebCore::MediaStreamEvent::MediaStreamEvent):
* Modules/mediastream/MediaStreamEvent.h:
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::trackMutedChanged):
* Modules/mediastream/MediaStreamTrackEvent.cpp:
(WebCore::MediaStreamTrackEvent::create):
(WebCore::MediaStreamTrackEvent::MediaStreamTrackEvent):
* Modules/mediastream/MediaStreamTrackEvent.h:
* Modules/mediastream/OverconstrainedErrorEvent.h:
(WebCore::OverconstrainedErrorEvent::create):
(WebCore::OverconstrainedErrorEvent::OverconstrainedErrorEvent):
* Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::fireICECandidateEvent):
(WebCore::PeerConnectionBackend::doneGatheringCandidates):
(WebCore::PeerConnectionBackend::updateSignalingState):
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::RTCDTMFToneChangeEvent):
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::didChangeReadyState):
(WebCore::RTCDataChannel::didDetectError):
(WebCore::RTCDataChannel::bufferedAmountIsDecreasing):
* Modules/mediastream/RTCDataChannelEvent.cpp:
(WebCore::RTCDataChannelEvent::create):
(WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
* Modules/mediastream/RTCDataChannelEvent.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):
(WebCore::RTCPeerConnection::updateConnectionState):
(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):
* Modules/mediastream/RTCPeerConnectionIceEvent.cpp:
(WebCore::RTCPeerConnectionIceEvent::create):
(WebCore::RTCPeerConnectionIceEvent::RTCPeerConnectionIceEvent):
* Modules/mediastream/RTCPeerConnectionIceEvent.h:
* Modules/mediastream/RTCTrackEvent.cpp:
(WebCore::RTCTrackEvent::create):
(WebCore::RTCTrackEvent::RTCTrackEvent):
* Modules/mediastream/RTCTrackEvent.h:
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::addRemoteStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):
* Modules/notifications/Notification.cpp:
(WebCore::Notification::dispatchShowEvent):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::dispatchErrorEvent):
* Modules/paymentrequest/MerchantValidationEvent.cpp:
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
* Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:
(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):
* Modules/plugins/QuickTimePluginReplacement.mm:
(WebCore::QuickTimePluginReplacement::postEvent):
* Modules/speech/SpeechSynthesisEvent.cpp:
(WebCore::SpeechSynthesisEvent::SpeechSynthesisEvent):
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::setState):
* Modules/webaudio/AudioProcessingEvent.cpp:
(WebCore::AudioProcessingEvent::AudioProcessingEvent):
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::finish):
* Modules/webaudio/OfflineAudioCompletionEvent.cpp:
(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):
* Modules/websockets/CloseEvent.h:
(WebCore::CloseEvent::CloseEvent):
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didConnect):
(WebCore::WebSocket::dispatchOrQueueErrorEvent):
* Modules/webvr/VRDisplayEvent.cpp:
(WebCore::VRDisplayEvent::VRDisplayEvent):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const):
* accessibility/AccessibleSetValueEvent.cpp:
(WebCore::AccessibleSetValueEvent::AccessibleSetValueEvent):
* animation/AnimationPlaybackEvent.cpp:
(WebCore::AnimationPlaybackEvent::AnimationPlaybackEvent):
* dom/AbortSignal.cpp:
(WebCore::AbortSignal::abort):
* dom/AnimationEvent.cpp:
(WebCore::AnimationEvent::AnimationEvent):
* dom/BeforeLoadEvent.h:
* dom/BeforeTextInsertedEvent.cpp:
(WebCore::BeforeTextInsertedEvent::BeforeTextInsertedEvent):
* dom/BeforeUnloadEvent.cpp:
(WebCore::BeforeUnloadEvent::BeforeUnloadEvent):
* dom/CharacterData.cpp:
(WebCore::CharacterData::dispatchModifiedEvent):
* dom/CompositionEvent.cpp:
(WebCore::CompositionEvent::CompositionEvent):
* dom/ContainerNode.cpp:
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/DeviceMotionEvent.cpp:
(WebCore::DeviceMotionEvent::DeviceMotionEvent):
* dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):
* dom/Document.cpp:
(WebCore::Document::setReadyState):
(WebCore::Document::visibilityStateChanged):
(WebCore::Document::finishedParsing):
(WebCore::Document::dispatchFullScreenChangeOrErrorEvent):
(WebCore::Document::orientationChanged):
* dom/DocumentEventQueue.cpp:
(WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
(WebCore::DocumentEventQueue::enqueueScrollEvent):
(WebCore::DocumentEventQueue::enqueueResizeEvent):
* dom/DocumentEventQueue.h:
* dom/Element.cpp:
(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
(WebCore::Element::dispatchFocusEvent):
(WebCore::Element::dispatchBlurEvent):
(WebCore::Element::dispatchWebKitImageReadyEventForTesting):
* dom/ErrorEvent.cpp:
(WebCore::ErrorEvent::ErrorEvent):
* dom/Event.cpp:
(WebCore::Event::Event):
(WebCore::Event::create):
* dom/Event.h:
* dom/FocusEvent.cpp:
(WebCore::FocusEvent::FocusEvent):
* dom/FocusEvent.h:
* dom/HashChangeEvent.h:
* dom/InputEvent.cpp:
(WebCore::InputEvent::create):
(WebCore::InputEvent::InputEvent):
* dom/InputEvent.h:
* dom/KeyboardEvent.cpp:
(WebCore::KeyboardEvent::KeyboardEvent):
* dom/MessageEvent.cpp:
(WebCore::MessageEvent::MessageEvent):
* dom/MouseEvent.cpp:
(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
* dom/MouseEvent.h:
* dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::MouseRelatedEvent):
* dom/MouseRelatedEvent.h:
* dom/MutationEvent.cpp:
(WebCore::MutationEvent::MutationEvent):
* dom/MutationEvent.h:
* dom/Node.cpp:
(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):
(WebCore::Node::dispatchInputEvent):
* dom/OverflowEvent.cpp:
(WebCore::OverflowEvent::OverflowEvent):
* dom/PageTransitionEvent.cpp:
(WebCore::PageTransitionEvent::PageTransitionEvent):
* dom/PopStateEvent.cpp:
(WebCore::PopStateEvent::PopStateEvent):
* dom/ProgressEvent.cpp:
(WebCore::ProgressEvent::ProgressEvent):
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::dispatchErrorEvent):
* dom/SecurityPolicyViolationEvent.h:
* dom/SimulatedClick.cpp:
* dom/TextEvent.cpp:
(WebCore::TextEvent::TextEvent):
* dom/TransitionEvent.cpp:
(WebCore::TransitionEvent::TransitionEvent):
* dom/UIEvent.cpp:
(WebCore::UIEvent::UIEvent):
* dom/UIEvent.h:
(WebCore::UIEvent::create):
* dom/UIEventWithKeyState.h:
(WebCore::UIEventWithKeyState::UIEventWithKeyState):
* dom/WebKitAnimationEvent.cpp:
(WebCore::WebKitAnimationEvent::WebKitAnimationEvent):
* dom/WebKitTransitionEvent.cpp:
(WebCore::WebKitTransitionEvent::WebKitTransitionEvent):
* dom/WheelEvent.cpp:
(WebCore::WheelEvent::WheelEvent):
* editing/Editor.cpp:
(WebCore::dispatchBeforeInputEvent):
(WebCore::dispatchBeforeInputEvents):
(WebCore::Editor::willApplyEditing const):
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):
(WebCore::FrameSelection::selectAll):
(WebCore::FrameSelection::dispatchSelectStart):
* html/HTMLDetailsElement.cpp:
(WebCore::HTMLDetailsElement::dispatchPendingEvent):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::dispatchChangeEvent):
(WebCore::HTMLFormControlElement::checkValidity):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareForSubmission):
(WebCore::HTMLFormElement::reset):
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::dispatchLoadEvent):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::onSearch):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::dispatchPendingEvent):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::scheduleEvent):
(WebCore::HTMLMediaElement::notifyAboutPlaying):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::layoutSizeChanged):
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::checkSnapshotStatus):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::dispatchLoadEvent):
* html/HTMLSlotElement.cpp:
(WebCore::HTMLSlotElement::dispatchSlotChangeEvent):
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::errorEventTimerFired):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::dispatchPendingEvent):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::selectionChanged):
* html/HTMLTrackElement.cpp:
(WebCore::HTMLTrackElement::didCompleteLoad):
* html/MediaController.cpp:
(WebCore::MediaController::scheduleEvent):
* html/canvas/WebGLContextEvent.cpp:
(WebCore::WebGLContextEvent::WebGLContextEvent):
* html/canvas/WebGLContextEvent.h:
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::dispatchContextChangedEvent):
* html/parser/HTMLScriptRunner.cpp:
(WebCore::createScriptLoadEvent):
* html/track/TrackEvent.cpp:
(WebCore::TrackEvent::TrackEvent):
* html/track/TrackEvent.h:
* html/track/TrackListBase.cpp:
(WebCore::TrackListBase::scheduleTrackEvent):
(WebCore::TrackListBase::scheduleChangeEvent):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchUnloadEvents):
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingErrorEvent):
* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::createApplicationCacheEvent):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::languagesChanged):
(WebCore::DOMWindow::dispatchLoadEvent):
* page/EventHandler.cpp:
(WebCore::dispatchSelectStart):
(WebCore::EventHandler::dispatchDragEvent):
* page/EventSource.cpp:
(WebCore::EventSource::scheduleReconnect):
(WebCore::EventSource::didReceiveResponse):
(WebCore::EventSource::abortConnectionAttempt):
* page/FocusController.cpp:
(WebCore::dispatchEventsOnWindowAndFocusedElement):
(WebCore::FocusController::setFocusedFrame):
* page/FrameView.cpp:
(WebCore::FrameView::sendResizeEventIfNeeded):
* page/Page.cpp:
(WebCore::networkStateChanged):
* page/Performance.cpp:
(WebCore::Performance::resourceTimingBufferFullTimerFired):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::enqueueEvent):
* page/VisualViewport.cpp:
(WebCore::VisualViewport::enqueueResizeEvent):
(WebCore::VisualViewport::enqueueScrollEvent):
* storage/StorageEvent.cpp:
(WebCore::StorageEvent::StorageEvent):
* svg/SVGElement.cpp:
(WebCore::SVGElement::sendSVGLoadEventIfPossible):
* svg/SVGImageLoader.cpp:
(WebCore::SVGImageLoader::dispatchLoadEvent):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::notifyFinished):
* svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::dispatchPendingEvent):
* workers/Worker.cpp:
(WebCore::Worker::notifyFinished):
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
* workers/service/ExtendableEvent.cpp:
(WebCore::ExtendableEvent::ExtendableEvent):
* workers/service/ExtendableEvent.h:
* workers/service/ExtendableMessageEvent.cpp:
(WebCore::ExtendableMessageEvent::ExtendableMessageEvent):
* workers/service/ServiceWorker.cpp:
(WebCore::ServiceWorker::scheduleTaskToUpdateState):
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::scheduleTaskToFireControllerChangeEvent):
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::scheduleTaskToFireUpdateFoundEvent):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::notifyNetworkStateChange):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener):

Source/WebKit:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

Source/WebKitLegacy/ios:

* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKitLegacy/mac:

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):
* WebView/WebView.mm:
(-[WebView _dispatchUnloadEvent]):

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

14 months ago[Xcode] Fix up file reference paths in Source/WebKit/NetworkProcess
aestes@apple.com [Fri, 17 Aug 2018 20:27:21 +0000 (20:27 +0000)]
[Xcode] Fix up file reference paths in Source/WebKit/NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=188700

Rubber-stamped by Dan Bernstein.

* WebKit.xcodeproj/project.pbxproj:

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

14 months agoModernize results.html
simon.fraser@apple.com [Fri, 17 Aug 2018 18:56:45 +0000 (18:56 +0000)]
Modernize results.html
https://bugs.webkit.org/show_bug.cgi?id=188690

Reviewed by Alexey Proskuryakov.

results.html, which is used to show layout test results, had some very old-school
HTML string building to create the tables of test results, making it hard to hack on.

Modernize it, using ES6 classes for the major actors, and using DOM API to build most
of the content.

The page is functionally the same (other than the addition of a missing 'History" column header).

* fast/harness/results-expected.txt:
* fast/harness/results.html:

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

14 months agoPass webPageID and webFrameID to NetworkLoad for speculative loads
achristensen@apple.com [Fri, 17 Aug 2018 18:11:23 +0000 (18:11 +0000)]
Pass webPageID and webFrameID to NetworkLoad for speculative loads
https://bugs.webkit.org/show_bug.cgi?id=188682

Reviewed by Youenn Fablet.

This also removes an authentication shortcut I introduced in r234941

* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

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

14 months agoSimplify server trust authentication flow
achristensen@apple.com [Fri, 17 Aug 2018 18:10:41 +0000 (18:10 +0000)]
Simplify server trust authentication flow
https://bugs.webkit.org/show_bug.cgi?id=188684

Reviewed by Youenn Fablet.

We unnecessarily had the allowsSpecificHTTPSCertificateForHost check at two different abstraction levels.

* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveChallenge):
* NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::allowsSpecificHTTPSCertificateForHost): Deleted.
* NetworkProcess/NetworkSession.h:
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

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

14 months agoFix API tests after r234985
achristensen@apple.com [Fri, 17 Aug 2018 18:09:39 +0000 (18:09 +0000)]
Fix API tests after r234985
https://bugs.webkit.org/show_bug.cgi?id=188679

* UIProcess/API/C/WKPage.cpp:
(encodingOf):
(dataFrom):
The encoding of null strings had changed, which is no big deal because there's no data in that encoding,
but switching it back fixes the tests.

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

14 months agoREGRESSION (234743) Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAu...
jer.noble@apple.com [Fri, 17 Aug 2018 17:27:42 +0000 (17:27 +0000)]
REGRESSION (234743) Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAPI.PreferredAudioBufferSize.WebAudio
https://bugs.webkit.org/show_bug.cgi?id=188470
<rdar://problem/43144969>

Reviewed by Alex Christensen.

On a loaded server, the WebContent process may send the "playing" message before the
UIProcess has a chance to register a listener for that message. Restructure the tests
so that the listener is registered before the page is loaded.

* TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:
(PreferredAudioBufferSize::runPlayingTestWithPageNamed):
(TEST_F):

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

14 months agoReplace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML
achristensen@apple.com [Fri, 17 Aug 2018 16:41:03 +0000 (16:41 +0000)]
Replace WebPageProxy::loadAlternateHTMLString with loadAlternateHTML
https://bugs.webkit.org/show_bug.cgi?id=188679

Reviewed by Carlos Garcia Campos.

* Shared/LoadParameters.cpp:
(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):
* Shared/LoadParameters.h:
* UIProcess/API/C/WKPage.cpp:
(encodingOf):
(dataFrom):
(loadString):
(WKPageLoadAlternateHTMLString):
(WKPageLoadAlternateHTMLStringWithUserData):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadAlternateHTMLString:baseURL:forUnreachableURL:]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _loadAlternateHTMLString:baseURL:forUnreachableURL:]):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadAlternateHTML):
(WebKit::WebPageProxy::loadAlternateHTMLString): Deleted.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadAlternateHTMLString):

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

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

Patch by Yusuke Suzuki  <yusukesuzuki@slowstart.org> and Fujii Hironori <Hironori.Fujii@sony.com> on 2018-08-17
Reviewed by Mark Lam.
And reviewed by Yusuke Suzuki for Hironori's change.

Source/JavaScriptCore:

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

- We add InvalidGPRReg and InvalidFPRReg to enum values of GPRReg and FPRReg to suppress the above warnings.
- We make GPRReg and FPRReg int8_t enums.
- We replace `#define InvalidGPRReg ((JSC::GPRReg)-1)` to `static constexpr GPRReg InvalidGPRReg { GPRReg::InvalidGPRReg };`.
- We add operator+/- definition for RegisterIDs as a MSVC workaround. MSVC fails to resolve operator+ and operator-
  if `enum : int8_t` is used instead of `enum`.

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

Source/WebCore:

* cssjit/FunctionCall.h:
(WebCore::FunctionCall::FunctionCall):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
* html/HTMLKeygenElement.cpp:
Remove `using namespace WebCore` not to introduce `operator+/-` which makes the resolution of `operator+/-` for RegisterID ambiguous.

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

14 months ago[GStreamer] reduce position queries frequency
philn@webkit.org [Fri, 17 Aug 2018 14:07:33 +0000 (14:07 +0000)]
[GStreamer] reduce position queries frequency
https://bugs.webkit.org/show_bug.cgi?id=188645

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

There is no need to perform dozens of position queries per second.
One every 300ms is enough.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

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

14 months ago[SOUP] Handle OAuth authentication after r234912
mcatanzaro@igalia.com [Fri, 17 Aug 2018 13:19:19 +0000 (13:19 +0000)]
[SOUP] Handle OAuth authentication after r234912
https://bugs.webkit.org/show_bug.cgi?id=188651

Reviewed by Carlos Garcia Campos.

Update this switch to consider the new OAuth enum value added in r234912. I suppose OAuth is
used for HTTP Auth now. It will be a one-time compatibility break as passwords previously
stored with type "Unknown" will no longer be accessible.

* platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::authTypeFromProtectionSpaceAuthenticationScheme):

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

14 months agoUnreviewed, rolling out r234259.
mcatanzaro@igalia.com [Fri, 17 Aug 2018 13:15:42 +0000 (13:15 +0000)]
Unreviewed, rolling out r234259.

Caused excessive CPU usage

Reverted changeset:

"[GTK][WPE] Improve the way request displayRefresh
notifications"
https://bugs.webkit.org/show_bug.cgi?id=188005
https://trac.webkit.org/changeset/234259

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

14 months agoWTF's internal std::optional implementation should release assert on all bad accesses
ddkilzer@apple.com [Fri, 17 Aug 2018 13:04:17 +0000 (13:04 +0000)]
WTF's internal std::optional implementation should release assert on all bad accesses
<https://webkit.org/b/187669>

Reviewed by Ryosuke Niwa.

* wtf/Assertions.h:
(RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT): Add macro definitions.
* wtf/Optional.h:
(std::optional::operator -> const):
(std::optional::operator ->):
(std::optional::operator * const):
(std::optional::operator *):
(std::optional::value const):
(std::optional::value):
(std::optional<T::operator-> const):
(std::optional<T::operator* const):
(std::optional<T::value const):
- Change ASSERT_UNDER_CONSTEXPR_CONTEXT() macros to
  RELEASE_ASSERT_UNDER_CONSTEXPR_CONTEXT() macros.

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

14 months ago[GTK] Never return an uninitialized ImageGStreamer object.
Ms2ger@igalia.com [Fri, 17 Aug 2018 09:59:40 +0000 (09:59 +0000)]
[GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305

Reviewed by Philippe Normand.

The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.

Test: fast/canvas/canvas-createPattern-video-loading.html

* platform/graphics/gstreamer/ImageGStreamer.h:
(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.

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

14 months ago[GStreamer] Enable fpsdisplaysink only when MEDIA_STATISTICS is enabled
philn@webkit.org [Fri, 17 Aug 2018 08:54:00 +0000 (08:54 +0000)]
[GStreamer] Enable fpsdisplaysink only when MEDIA_STATISTICS is enabled
https://bugs.webkit.org/show_bug.cgi?id=188648

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

The fpsdisplaysink is useful only when MEDIA_STATISTICS is turned on.
The text overlay is now enabled when GST_DEBUG tracing is enabled for the player.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):

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

14 months ago[GStreamer][MSE] Disable last-sample support in AppendPipeline
philn@webkit.org [Fri, 17 Aug 2018 08:52:16 +0000 (08:52 +0000)]
[GStreamer][MSE] Disable last-sample support in AppendPipeline
https://bugs.webkit.org/show_bug.cgi?id=188649

Patch by Philippe Normand <philn@igalia.com> on 2018-08-17
Reviewed by Xabier Rodriguez-Calvar.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline): This property isn't
used by the append pipeline. So as a micro-optimization, it is now
disabled.

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

14 months ago[macOS] [WK2] Add infrastructure to test receiving file promises on drop
wenson_hsieh@apple.com [Fri, 17 Aug 2018 04:58:49 +0000 (04:58 +0000)]
[macOS] [WK2] Add infrastructure to test receiving file promises on drop
https://bugs.webkit.org/show_bug.cgi?id=188583

Reviewed by Andy Estes.

Enable testing file promise drop handling on the WebKit2 port of macOS by introducing a subclass of
NSFilePromiseReceiver and implementing `-enumerateDraggingItemsWithOptions:forView:…` on TestDraggingInfo (the
concrete NSDraggingInfo implementation used by DragAndDropSimulator) using the mock file receiver. Also
introduces 3 new macOS tests. See below for more details.

A large portion of this logic is ported over from DumpRenderTree testing infrastructure added in r229297. In a
future patch, we should introduce a way to write code common to both API tests, WebKitTestRunner and
DumpRenderTree, and make this code shared among all three testing harnesses.

Tests:  DragAndDropTests.DragImageElementIntoFileUpload
        DragAndDropTests.DragPromisedImageFileIntoFileUpload
        DragAndDropTests.DragImageFileIntoFileUpload

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

Drive-by fix: Replace NSMakePoint with CGPointMake.

* TestWebKitAPI/Tests/WebKitCocoa/image-and-file-upload.html:

Add a new test page consisting of an image and a "file upload" area that updates exercises DataTransfer API to
load the dropped image.

* TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(waitForConditionWithLogging):

Add a helper function to wait for a condition to evaluate to true. To make failures more informative,
additionally add a mechanism to log a warning message after a given timeout, if the condition has yet to be met.

(TEST):

Add new tests to exercise a few cases of file upload in WebKit, including: (1) dragging from an image element,
(2) dragging files written to the pasteboard as promises, and (3) files written to the pasteboard as file URLs.

* TestWebKitAPI/cocoa/DragAndDropSimulator.h:

Surface the new functionality provided by the file promise receiver mock via two new methods on
DragAndDropSimulator to (1) write files as file promises to the pasteboard, and (2) write files as file paths
directly to the pasteboard.

* TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:
(-[DragAndDropSimulator performDragInWebView:atLocation:withImage:pasteboard:source:]):
(-[DragAndDropSimulator externalPromisedFiles]):
(getFilePathsAndTypeIdentifiers):
(-[DragAndDropSimulator writePromisedFiles:]):
(-[DragAndDropSimulator writeFiles:]):
* TestWebKitAPI/mac/TestDraggingInfo.h:
* TestWebKitAPI/mac/TestDraggingInfo.mm:
(-[TestDraggingInfo initWithDragAndDropSimulator:]):
(-[TestDraggingInfo filePromiseReceivers]):
(-[TestDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

Implement this by invoking the given block with a TestFilePromiseReceiver. While all other classes are
unhandled by this testing code, WebKit only calls into this with [NSFilePromiseReceiver class], this is
currently sufficient for testing purposes.

* TestWebKitAPI/mac/TestFilePromiseReceiver.h: Copied from Tools/TestWebKitAPI/mac/TestDraggingInfo.h.
* TestWebKitAPI/mac/TestFilePromiseReceiver.mm: Added.
(-[TestFilePromiseReceiver initWithPromisedTypeIdentifiers:dragAndDropSimulator:]):
(-[TestFilePromiseReceiver fileTypes]):
(-[TestFilePromiseReceiver fileNames]):
(-[TestFilePromiseReceiver dealloc]):
(-[TestFilePromiseReceiver draggingSource]):
(-[TestFilePromiseReceiver setDraggingSource:]):
(fileNameWithNumericSuffix):
(copyFile):

Add a helper to copy a file into a destination directory. Used to implement the main functionality of our
NSFilePromiseReceiver subclass, which copies the files specified by test code into the directory determined by
WebKit.

(-[TestFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):

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

14 months ago[JSC] alignas for RegisterState should respect alignof(RegisterState) too
yusukesuzuki@slowstart.org [Fri, 17 Aug 2018 03:06:40 +0000 (03:06 +0000)]
[JSC] alignas for RegisterState should respect alignof(RegisterState) too
https://bugs.webkit.org/show_bug.cgi?id=188686

Reviewed by Saam Barati.

RegisterState would have larger alignment than `alignof(void*)`. We use the larger alignment value
for `alignof` for RegisterState.

* heap/RegisterState.h:

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

14 months agoWeb Inspector: support breakpoints for arbitrary event names
drousso@apple.com [Fri, 17 Aug 2018 02:37:46 +0000 (02:37 +0000)]
Web Inspector: support breakpoints for arbitrary event names
https://bugs.webkit.org/show_bug.cgi?id=183118

Reviewed by Joseph Pecoraro.

Source/WebCore:

Tests: inspector/dom-debugger/event-breakpoints.html
       inspector/dom-debugger/event-breakpoints-with-navigation.html

* inspector/agents/InspectorDOMDebuggerAgent.cpp:
(WebCore::InspectorDOMDebuggerAgent::pauseOnNativeEventIfNeeded):

Source/WebInspectorUI:

Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if
any DOM event is fired that matches any previously registered breakpoints.

Event breakpoints are distinguished by name, and they currently apply globally, meaning
that only one breakpoint per event name can be registered.

Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
now all it contains is a basic text input for the event name. Similarly, a new TreeElement
subclass, EventBreakpointTreeElement, is used when showing the list of event listener
breakpoints, but all it shows now is the event name.

The majority of the logic in this patch was derived from XHR breakpoints.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Images/EventBreakpoint.svg: Added.

* UserInterface/Models/EventBreakpoint.js: Added.
(WI.EventBreakpoint):
(WI.EventBreakpoint.prototype.get eventName):
(WI.EventBreakpoint.prototype.get disabled):
(WI.EventBreakpoint.prototype.set disabled):
(WI.EventBreakpoint.prototype.get serializableInfo):
(WI.EventBreakpoint.prototype.saveIdentityToCookie):

* UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager):
(WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
(WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
(WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
(WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
(WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.

* UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager.prototype._pauseReasonFromPayload):

* UserInterface/Controllers/EventBreakpointTreeController.js: Added.
(WI.EventBreakpointTreeController):
(WI.EventBreakpointTreeController.prototype.revealAndSelect):
(WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
(WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
(WI.EventBreakpointTreeController.prototype._addTreeElement):

* UserInterface/Views/DebuggerSidebarPanel.js:
(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):

* UserInterface/Views/EventBreakpointTreeElement.js: Added.
(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.onattach):
(WI.EventBreakpointTreeElement.prototype.ondetach):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.onenter):
(WI.EventBreakpointTreeElement.prototype.onspace):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):
(WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
(WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
(WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
(WI.EventBreakpointTreeElement.prototype._updateStatus):
* UserInterface/Views/EventBreakpointTreeElement.css: Added.
(.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):

* UserInterface/Views/EventBreakpointPopover.js: Added.
(WI.EventBreakpointPopover):
(WI.EventBreakpointPopover.prototype.get result):
(WI.EventBreakpointPopover.prototype.get value):
(WI.EventBreakpointPopover.prototype.show):
(WI.EventBreakpointPopover.prototype._presentOverTargetElement):
* UserInterface/Views/EventBreakpointPopover.css: Added.
(.popover .event-listener-breakpoint-content):
(.popover .event-listener-breakpoint-content > input):

* UserInterface/Views/NavigationSidebarPanel.js:
(WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):

LayoutTests:

* inspector/dom-debugger/event-breakpoints-expected.txt: Added.
* inspector/dom-debugger/event-breakpoints.html: Added.

* inspector/dom-debugger/event-breakpoints-with-navigation-expected.txt: Added.
* inspector/dom-debugger/event-breakpoints-with-navigation.html: Added.

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

14 months ago[Curl] Bug fix on deleting cookies when Max-Age is set to zero.
Basuke.Suzuki@sony.com [Fri, 17 Aug 2018 00:50:15 +0000 (00:50 +0000)]
[Curl] Bug fix on deleting cookies when Max-Age is set to zero.
https://bugs.webkit.org/show_bug.cgi?id=188617

Reviewed by Alex Christensen.

Source/WebCore:

Delete cookie if Max-Age is set to zero in Set-Cookie. Original implementation was
compared using "less than", but it must be "less than or equal" to zero.

Tests: http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html

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

LayoutTests:

* platform/wincairo/TestExpectations:
  - http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html [ Pass ]

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

14 months agoUnreviewed, rolling out r234958.
commit-queue@webkit.org [Thu, 16 Aug 2018 23:55:25 +0000 (23:55 +0000)]
Unreviewed, rolling out r234958.
https://bugs.webkit.org/show_bug.cgi?id=188683

Breaking builds due to copy failure (Requested by brichards on
#webkit).

Reverted changeset:

"Add script to generate WebContent service resource files"
https://bugs.webkit.org/show_bug.cgi?id=188601
https://trac.webkit.org/changeset/234958

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

14 months ago[Curl] Implement deleteAllCookies()
Basuke.Suzuki@sony.com [Thu, 16 Aug 2018 23:50:37 +0000 (23:50 +0000)]
[Curl] Implement deleteAllCookies()
https://bugs.webkit.org/show_bug.cgi?id=188612

Reviewed by Alex Christensen.

Source/WebCore:

deleteAllCookies() was not implemented. Connect the interface to the implementation.

Tests: http/tests/cookies/simple-cookies-expired.html
       http/tests/cookies/simple-cookies-max-age.html

* platform/network/curl/CookieJarCurlDatabase.cpp:
(WebCore::CookieJarCurlDatabase::deleteAllCookies const):

LayoutTests:

* platform/wincairo/TestExpectations:
  - http/tests/cookies/simple-cookies-expired.html [ Pass ]
  - http/tests/cookies/simple-cookies-max-age.html [ Pass ]

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

14 months agoRemove unused parentProcessName from NetworkProcessCreationParameters
sihui_liu@apple.com [Thu, 16 Aug 2018 23:31:09 +0000 (23:31 +0000)]
Remove unused parentProcessName from NetworkProcessCreationParameters
https://bugs.webkit.org/show_bug.cgi?id=188618

Reviewed by Alex Christensen.

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

14 months agoREGRESSION(r234930): Don't embed a #if in an ASSERT
ross.kirsling@sony.com [Thu, 16 Aug 2018 23:30:43 +0000 (23:30 +0000)]
REGRESSION(r234930): Don't embed a #if in an ASSERT
https://bugs.webkit.org/show_bug.cgi?id=188680

Reviewed by Tim Horton.

* page/EventHandler.cpp:
(WebCore::EventHandler::handleDrag):
Simplify the ASSERT -- it seems we just want to know that DragSourceActionSelection and exactly one other DragSourceAction is set.

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

14 months ago[watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions)
aestes@apple.com [Thu, 16 Aug 2018 23:20:56 +0000 (23:20 +0000)]
[watchOS] Upstream Proximity Networking (nee Wi-Fi Assertions)
https://bugs.webkit.org/show_bug.cgi?id=188664

Reviewed by Tim Horton.

Source/WebKit:

Proximity Networking provides two features for speeding up page loads on watchOS:

1. Binding requests to the Apple Watch's Wi-Fi interface even when the iPhone is in proximity.
2. When Wi-Fi isn't available, preemptively upgrading the Bluetooth link to its fastest data
rate prior to starting page loads.

* Configurations/WebKit.xcconfig:

Added LDFLAGS for Proximity Networking.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::proximityManager):
* NetworkProcess/NetworkProcess.h:

Added NetworkProximityManager as a supplement.

* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:

Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).

* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:

Renamed m_wiFiAssertionHolder to m_proximityAssertionToken and changed its type from an
optional WiFiAssertionHolder to an optional NetworkProximityAssertion::Token.

* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
(WebKit::NetworkProcess::platformPrepareToSuspend):
(WebKit::NetworkProcess::platformProcessDidResume):
(WebKit::NetworkProcess::platformProcessDidTransitionToBackground):
(WebKit::NetworkProcess::platformProcessDidTransitionToForeground):

Changed to use NetworkProximityManager.

* NetworkProcess/cocoa/WiFiAssertionHolder.h: Removed.
* NetworkProcess/cocoa/WiFiAssertionHolder.mm: Removed.
* NetworkProcess/watchos/NetworkProximityAssertion.h: Added.
(WebKit::NetworkProximityAssertion::Token::Token):
(WebKit::NetworkProximityAssertion::Token::~Token):

Added. NetworkDataTasks hold these tokens to keep Bluetooth or Wi-Fi assertions active
during loading. When the last token is destroyed, its associated assertion will be
deactivated.

* NetworkProcess/watchos/NetworkProximityAssertion.mm: Added.
(WebKit::NetworkProximityAssertion::NetworkProximityAssertion):
(WebKit::NetworkProximityAssertion::hold):
(WebKit::NetworkProximityAssertion::release):
(WebKit::NetworkProximityAssertion::resume):
(WebKit::NetworkProximityAssertion::suspend):
(WebKit::NetworkProximityAssertion::suspendNow):
(WebKit::NetworkProximityAssertion::releaseTimerFired):
(WebKit::NetworkProximityAssertion::suspendAfterBackgroundingTimerFired):

Added. NetworkProximityAssertion is the base class for Bluetooth and Wi-Fi assertions. It
manages the logic for holding and releasing assertions as well as responding to network
process backgrounding and suspension.

(WebKit::BluetoothProximityAssertion::BluetoothProximityAssertion):
(WebKit::BluetoothProximityAssertion::suspend):
(WebKit::BluetoothProximityAssertion::holdNow):
(WebKit::BluetoothProximityAssertion::releaseNow):

Added. Holds a Bluetooth assertion by calling -[IDSService setLinkPreferences:].

(WebKit::WiFiProximityAssertion::WiFiProximityAssertion):
(WebKit::WiFiProximityAssertion::holdNow):
(WebKit::WiFiProximityAssertion::releaseNow):

Added. Holds a Wi-Fi assertion by using WiFiManagerClient.

* NetworkProcess/watchos/NetworkProximityManager.h: Added.
* NetworkProcess/watchos/NetworkProximityManager.mm: Added.
(-[WKProximityServiceDelegate setClient:]):
(-[WKProximityServiceDelegate service:devicesChanged:]):
(-[WKProximityServiceDelegate service:nearbyDevicesChanged:]):
(WebKit::NetworkProximityManager::NetworkProximityManager):
(WebKit::NetworkProximityManager::~NetworkProximityManager):
(WebKit::NetworkProximityManager::supplementName):
(WebKit::bindRequestToWiFi):
(WebKit::NetworkProximityManager::applyProperties):
(WebKit::NetworkProximityManager::resume):
(WebKit::NetworkProximityManager::suspend):
(WebKit::NetworkProximityManager::recommendation const):
(WebKit::NetworkProximityManager::processRecommendations):
(WebKit::toProcessID):
(WebKit::NetworkProximityManager::resumeRecommendations):
(WebKit::NetworkProximityManager::suspendRecommendations):
(WebKit::NetworkProximityManager::updateCompanionProximity):
(WebKit::NetworkProximityManager::updateRecommendation):
(WebKit::NetworkProximityManager::initialize):
(WebKit::NetworkProximityManager::devicesChanged):

Added. NetworkProximityManager is a network process supplement that can bind
NetworkDataTasks to Wi-Fi, associate assertions with NetworkDataTasks, check for companion
proximity, ask for proximity network recommendations, and respond to network process
backgrounding and suspending.

* Platform/Logging.h:

Renamed the WiFiAssertions log channel to ProximityNetworking.

* Platform/spi/ios/MobileWiFiSPI.h:
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Renamed ENABLE(WIFI_ASSERTIONS) to ENABLE(PROXIMITY_NETWORKING).

* WebKit.xcodeproj/project.pbxproj:
* config.h:

Removed unused definition of HAVE_MOBILE_WIFI.

Source/WTF:

* wtf/FeatureDefines.h: Defined ENABLE_PROXIMITY_NETWORKING to 1 on watchOS.

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

14 months agoRemove unused allowScriptsToCloseWindows setting
achristensen@apple.com [Thu, 16 Aug 2018 23:05:54 +0000 (23:05 +0000)]
Remove unused allowScriptsToCloseWindows setting
https://bugs.webkit.org/show_bug.cgi?id=188602

Reviewed by Simon Fraser.

No change in behaviour. It was always false.

* page/DOMWindow.cpp:
(WebCore::DOMWindow::close):
* page/Settings.yaml:

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

14 months agoAdd entitlement to MiniBrowser to allow it to communicate with com.apple.Safari.SafeB...
achristensen@apple.com [Thu, 16 Aug 2018 23:03:09 +0000 (23:03 +0000)]
Add entitlement to MiniBrowser to allow it to communicate with com.apple.Safari.SafeBrowsing.Service
https://bugs.webkit.org/show_bug.cgi?id=188677

Reviewed by Tim Horton.

* MiniBrowser/MiniBrowser.entitlements:
SSBLookupContext lookUpURL:completionHandler: fails to communicate with its service without this entitlement
on released operating systems.  See <rdar://problem/42749777>

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

14 months agoRemove unused and deprecated _WKProcessPoolConfiguration.allowsCellularAccess
achristensen@apple.com [Thu, 16 Aug 2018 23:01:36 +0000 (23:01 +0000)]
Remove unused and deprecated _WKProcessPoolConfiguration.allowsCellularAccess
https://bugs.webkit.org/show_bug.cgi?id=188681

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration allowsCellularAccess]): Deleted.
(-[_WKProcessPoolConfiguration setAllowsCellularAccess:]): Deleted.

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

14 months agoDeprecate SPI that is or ought to be unused
achristensen@apple.com [Thu, 16 Aug 2018 23:00:42 +0000 (23:00 +0000)]
Deprecate SPI that is or ought to be unused
https://bugs.webkit.org/show_bug.cgi?id=188616

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction):
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::ContextMenuClient::menuFromProposedMenu):

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

14 months agoWeb Inspector: Show Initiator information in Network Table
commit-queue@webkit.org [Thu, 16 Aug 2018 22:49:04 +0000 (22:49 +0000)]
Web Inspector: Show Initiator information in Network Table
https://bugs.webkit.org/show_bug.cgi?id=188590
<rdar://problem/43305488>

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

* UserInterface/Views/NetworkResourceDetailView.js:
(WI.NetworkResourceDetailView):
(WI.NetworkResourceDetailView.prototype.shown):
(WI.NetworkResourceDetailView.prototype.willShowWithCookie):
(WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
When a ResourceDetailView gets shown, it may also want to show its initial content view
with a cookie as the cookie may contain position highlight information.

* UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype._showResourceDetailView):
(WI.NetworkTableContentView.prototype.showRepresentedObject):
When showing a represented object, pass the cookie information on to the detail
view's so that it may include the cookie when showing the final content view.

(WI.NetworkTableContentView.prototype.tablePopulateCell):
(WI.NetworkTableContentView.prototype._populateInitiatorCell):
(WI.NetworkTableContentView.prototype.initialLayout):
New initiator column contains a source code link to the call site.

(WI.NetworkTableContentView.prototype._generateSortComparator):
(WI.NetworkTableContentView.prototype._entryForResource):
Entry data for the initiator is a display string that can be sorted easily.

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

14 months agoAdd option to run-api-tests to force running of DISABLED tests.
jer.noble@apple.com [Thu, 16 Aug 2018 22:37:22 +0000 (22:37 +0000)]
Add option to run-api-tests to force running of DISABLED tests.
https://bugs.webkit.org/show_bug.cgi?id=188674

Reviewed by Joseph Pecoraro.

* Scripts/webkitpy/api_tests/run_api_tests.py:
(parse_args):
* Scripts/webkitpy/api_tests/runner.py:
(Runner.command_for_port):
(_Worker._run_single_test):

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

14 months ago[ews-build] Separate queues for Builders and Testers - macOS High Sierra
aakash_jain@apple.com [Thu, 16 Aug 2018 22:11:48 +0000 (22:11 +0000)]
[ews-build] Separate queues for Builders and Testers - macOS High Sierra
https://bugs.webkit.org/show_bug.cgi?id=188540

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/config.json: Splitted few macOS queues into builders and testers.

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

14 months agoAdd temporary SPI WKContextHandlesSafeBrowsing
achristensen@apple.com [Thu, 16 Aug 2018 22:10:20 +0000 (22:10 +0000)]
Add temporary SPI WKContextHandlesSafeBrowsing
https://bugs.webkit.org/show_bug.cgi?id=188676

Reviewed by Joseph Pecoraro.

WebKit showing the safe browsing warning doesn't play well with Safari showing the safe browsing warning.
I plan to adopt this SPI in Safari to disable Safari's safe browsing check if it's true.
Then when I implement safe browsing in WebKit, I can switch this value to true in the same change and
not have a broken Safari.

* UIProcess/API/C/mac/WKContextPrivateMac.h:
* UIProcess/API/C/mac/WKContextPrivateMac.mm:
(WKContextHandlesSafeBrowsing):

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

14 months agoAdd script to generate WebContent service resource files
commit-queue@webkit.org [Thu, 16 Aug 2018 21:59:05 +0000 (21:59 +0000)]
Add script to generate WebContent service resource files
https://bugs.webkit.org/show_bug.cgi?id=188601

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-16
Reviewed by Dan Bernstein.

Added new build phase to WebContent service to copy resource files to WebKit.framework/PrivateHeaders/CustomWebContentResource.
These resources are intended to be used by a client to create a custom WebContent service.

* Scripts/copy-webcontent-resources-to-private-headers.sh: Added.
* WebKit.xcodeproj/project.pbxproj:

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

14 months agoCustom element constructor doesn't use HTMLElement in new.target's realm
rniwa@webkit.org [Thu, 16 Aug 2018 21:18:02 +0000 (21:18 +0000)]
Custom element constructor doesn't use HTMLElement in new.target's realm
https://bugs.webkit.org/show_bug.cgi?id=188634

Reviewed by Keith Miller.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. All remaining test failures are
for customized builtin, which we do not and shall not implement.

* web-platform-tests/custom-elements/htmlconstructor/newtarget-expected.txt:

Source/WebCore:

Fixed the bug that HTMLElement's constructor was constructing an element of its own realm
instead of the realm of new.target. This results in the JS wrapper created for the element
belonging to the global object of the HTMLElement constructor which was invoked instead of
the global object of new.target as specified in:
https://html.spec.whatwg.org/multipage/dom.html#html-element-constructors

In particular, step 9.2. specifies that we "perform element.[[SetPrototypeOf]](prototype)."
where prototype is the result of Get(NewTarget, "prototype") in step 7.

WebKit's new behavior matches that of Chrome and Firefox.

Test: imported/w3c/web-platform-tests/custom-elements/htmlconstructor/newtarget.html

* bindings/js/JSHTMLElementCustom.cpp:
(WebCore::constructJSHTMLElement):

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

14 months agoUnreviewed, fix the watchOS build after r188464.
akeerthi@apple.com [Thu, 16 Aug 2018 21:10:57 +0000 (21:10 +0000)]
Unreviewed, fix the watchOS build after r188464.

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::setColor):

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

14 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Thu, 16 Aug 2018 21:09:26 +0000 (21:09 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188675

Unreviewed test gardening.

Fix expectations to match after r234892 landed.

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

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

14 months agoConsolidate data/string API loading paths
achristensen@apple.com [Thu, 16 Aug 2018 20:52:30 +0000 (20:52 +0000)]
Consolidate data/string API loading paths
https://bugs.webkit.org/show_bug.cgi?id=188417

Reviewed by Michael Catanzaro.

loadHTMLString and loadData are basically duplicate code.
loadPlainTextString was also basically the same except it didn't set up a navigation, which
was almost certainly a bug, but nobody uses it in all of Apple and Debian.  We should probably deprecate
and remove it, but for now I make it use the same data loading path.

* UIProcess/API/C/WKPage.cpp:
(WKPageLoadData):
(WKPageLoadDataWithUserData):
(loadString):
(WKPageLoadHTMLString):
(WKPageLoadHTMLStringWithUserData):
(WKPageLoadPlainTextString):
(WKPageLoadPlainTextStringWithUserData):
* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadHTMLString:baseURL:userData:]):
(-[WKBrowsingContextController loadData:MIMEType:textEncodingName:baseURL:userData:]):
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
* UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_load_html):
(webkit_web_view_load_plain_text):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString): Deleted.
(WebKit::WebPageProxy::loadPlainTextString): Deleted.
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString): Deleted.
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

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

14 months agoCustom element doesn't invalidate its style when :defined rule starts to apply
rniwa@webkit.org [Thu, 16 Aug 2018 20:50:01 +0000 (20:50 +0000)]
Custom element doesn't invalidate its style when :defined rule starts to apply
https://bugs.webkit.org/show_bug.cgi?id=188637

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Rebaselined the test now that all relevant test cases pass. The only remaining test failures
are for customized builtins which we do not and shall not implement.

* web-platform-tests/custom-elements/pseudo-class-defined-expected.txt:

Source/WebCore:

Fixed the bug by invalidating the subtree when a custom element gets defined.

Test: fast/custom-elements/defined-update-style.html

* dom/Element.cpp:
(WebCore::Element::setIsDefinedCustomElement):

LayoutTests:

Added a regression test.

* fast/custom-elements/defined-update-style-expected.html: Added.
* fast/custom-elements/defined-update-style.html: Added.

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

14 months ago[ews-build] Add build steps ArchiveTestResults, UploadTestResults and ExtractTestResults
aakash_jain@apple.com [Thu, 16 Aug 2018 20:41:39 +0000 (20:41 +0000)]
[ews-build] Add build steps ArchiveTestResults, UploadTestResults and ExtractTestResults
https://bugs.webkit.org/show_bug.cgi?id=188666

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/steps.py:
(ArchiveTestResults): Build step to Archive the test results.
(UploadTestResults): Build step to upload the archive.
(ExtractTestResults): Build step to unzip the archive on server and generate a link.
* BuildSlaveSupport/ews-build/steps_unittest.py: Added unit-tests.
(ExpectMasterShellCommand): Copied from other similar internal code.

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

14 months ago[ews-build] Separate queues for Builders and Testers - macOS Sierra
aakash_jain@apple.com [Thu, 16 Aug 2018 20:40:15 +0000 (20:40 +0000)]
[ews-build] Separate queues for Builders and Testers - macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=188516

Reviewed by Lucas Forschler.

* BuildSlaveSupport/ews-build/config.json: Splitted macOS Sierra Release queues into builders and testers.
* BuildSlaveSupport/ews-build/factories.py: Used appropriate base classes for builders and testers.

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

14 months ago[Curl] Test gardening
Basuke.Suzuki@sony.com [Thu, 16 Aug 2018 20:15:32 +0000 (20:15 +0000)]
[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188668

Unreviewed test gardening.

After r234863 landed, the information in the `LayoutTests/tests-options.json` is effective on WinCairo tests.
Remove [ Slow ] keywords. Also maintain xmlhttprequest results.

* platform/wincairo/TestExpectations:

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

14 months agoChange the input camera in the sources & outputs example on Safari (11) with M.Way...
youenn@apple.com [Thu, 16 Aug 2018 19:50:34 +0000 (19:50 +0000)]
Change the input camera in the sources & outputs example on Safari (11) with M.Way camera
https://bugs.webkit.org/show_bug.cgi?id=187756
<rdar://problem/42332178>

Reviewed by Eric Carlson.

Covered by manual testing.

640x480x30fps is added as ideal constraints to getUserMedia if none other is added to provide consistent behavior.
Some cameras do not support 30fps as they have discrete frame rate ranges.
Before the patch, we were rejecting getUserMedia promise if the 'ideal' frameRate was not supported.
After the patch, we do not check whether frame rate is supported if it is not mandatory.
At capture time, we will still try to apply frame rate change and if not supported, the frame rate will not be set to 30 fps.

While we could surface discrete width/height/frame rate ranges, it seems best to fix the issue this way.
In the future, we might implement video interpolation for width/height/framerate at WebCore level.

* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::supportsSizeAndFrameRate):
(WebCore::RealtimeMediaSource::supportsConstraint const):
(WebCore::RealtimeMediaSource::supportsConstraints):

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

14 months ago[Win][DumpRenderTree] Remove error message for duplicated tests.
Basuke.Suzuki@sony.com [Thu, 16 Aug 2018 19:38:32 +0000 (19:38 +0000)]
[Win][DumpRenderTree] Remove error message for duplicated tests.
https://bugs.webkit.org/show_bug.cgi?id=188662

Reviewed by Per Arne Vollan.

This was added to track down an issue where the same tests appeared
to be run multiple times. This turned out to not be the case.
See https://bugs.webkit.org/show_bug.cgi?id=166760 .

* DumpRenderTree/win/DumpRenderTree.cpp:
(runTest):

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

14 months ago[Win] The layout test editing/pasteboard/drag-and-drop-color-input-events.html is...
pvollan@apple.com [Thu, 16 Aug 2018 19:02:45 +0000 (19:02 +0000)]
[Win] The layout test editing/pasteboard/drag-and-drop-color-input-events.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=188667

Unreviewed test gardening.

* platform/win/TestExpectations:

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

14 months agoTransition more WKWebViewConfiguration ivars to API::PageConfiguration values
achristensen@apple.com [Thu, 16 Aug 2018 18:49:48 +0000 (18:49 +0000)]
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188665

Reviewed by Joseph Pecoraro.

APPLICATION_MANIFEST is enabled on all Cocoa platforms, so I removed some guards, too!

* UIProcess/API/APIPageConfiguration.cpp:
(API::PageConfiguration::applicationManifest const):
* UIProcess/API/APIPageConfiguration.h:
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applicationManifest]):
(-[WKWebViewConfiguration _setApplicationManifest:]):
(-[WKWebViewConfiguration _setCPULimit:]):
(-[WKWebViewConfiguration _cpuLimit]):

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

14 months agoLayoutTest inspector/worker/debugger-pause.html sometimes times out
commit-queue@webkit.org [Thu, 16 Aug 2018 18:41:30 +0000 (18:41 +0000)]
LayoutTest inspector/worker/debugger-pause.html sometimes times out
https://bugs.webkit.org/show_bug.cgi?id=188580

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

Source/WebInspectorUI:

* UserInterface/Protocol/Target.js:
(WI.Target.prototype.get mainResource):
(WI.Target.prototype.set mainResource):
Dispatch an event when the Main Resource is set.

LayoutTests:

* inspector/worker/debugger-pause.html:
* inspector/worker/resources/worker-utilities.js: Added.
(TestPage.registerInitializer.window.awaitTargetMainResource):
(TestPage.registerInitializer):
Use a more deterministic wait for the main resource.

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

14 months agoPerform a microtask checkpoint before creating a custom element
rniwa@webkit.org [Thu, 16 Aug 2018 18:25:02 +0000 (18:25 +0000)]
Perform a microtask checkpoint before creating a custom element
https://bugs.webkit.org/show_bug.cgi?id=188189
<rdar://problem/42843022>

Reviewed by Geoffrey Garen.

Source/WebCore:

Fixed the bug that the HTML parser was not performing a microtask checkpoint prior to synchronously constructing
a custom element in the concept to create an element for a token:
https://html.spec.whatwg.org/multipage/parsing.html#creating-and-inserting-nodes:perform-a-microtask-checkpoint

Also added a microtask checkpoint before dispatching DOMContentLoaded to work around webkit.org/b/82931 since
scheduling a task to fire a DOMContentLoaded event in Document::finishedParsing as the HTML5 spec mandates
is a long standing bug with a lot of implications, which is completely outside the scope of this bug fix:
https://html.spec.whatwg.org/multipage/parsing.html#stop-parsing

Test: fast/custom-elements/perform-microtask-checkpoint-before-construction.html

* dom/Document.cpp:
(WebCore::Document::finishedParsing): Perform a microtask checkpoint before dispatching DOMContentLoaded here as
a workaround for webkit.org/b/82931.
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder): Perform a microtask checkpoint here to fix the bug.

LayoutTests:

Added a W3C style testharness.js test for perfoming microtask checkpoint before constructing
a custom element synchronously.

* fast/custom-elements/perform-microtask-checkpoint-before-construction-expected.txt: Added.
* fast/custom-elements/perform-microtask-checkpoint-before-construction.html: Added.
* fast/dom/MutationObserver/parser-mutations.html: Fixed the test per new behavior in Document::finishParsing.
Because iframe loads synchronously and fires DOMContentLoaded, mutation records are now delivered twice after
iframe element is encountered in this test and before script element executes. Concatenate the mutation records
arrays to account for this behavioral change. New WebKit behavior matches that of Chrome; namely this test
fails both on Chrome Canary 70 and trunk WebKit with this patch without this fix.

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

14 months agoRe-introduce assertion removed in r234890
commit-queue@webkit.org [Thu, 16 Aug 2018 18:21:52 +0000 (18:21 +0000)]
Re-introduce assertion removed in r234890
https://bugs.webkit.org/show_bug.cgi?id=188611

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-16
Reviewed by Geoffrey Garen.

Source/WebCore:

The assertion was failing because Vector<String>::operator== was using memcmp,
which failed to consider different instances of equal Strings equal.  Added an
API test and this assertion, which now succeeds.

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):

Source/WTF:

* wtf/text/WTFString.h:

Tools:

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

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

14 months agoTransition more WKWebViewConfiguration ivars to API::PageConfiguration values
achristensen@apple.com [Thu, 16 Aug 2018 18:19:19 +0000 (18:19 +0000)]
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188663

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _drawsBackground]):
(-[WKWebViewConfiguration _setDrawsBackground:]):
(-[WKWebViewConfiguration _waitsForPaintAfterViewDidMoveToWindow]):
(-[WKWebViewConfiguration _setWaitsForPaintAfterViewDidMoveToWindow:]):
(-[WKWebViewConfiguration _isControlledByAutomation]):
(-[WKWebViewConfiguration _setControlledByAutomation:]):

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

14 months agoStop using canAuthenticateAgainstProtectionSpace in modern WebKit
achristensen@apple.com [Thu, 16 Aug 2018 17:59:30 +0000 (17:59 +0000)]
Stop using canAuthenticateAgainstProtectionSpace in modern WebKit
https://bugs.webkit.org/show_bug.cgi?id=188639

Reviewed by Youenn Fablet.

canAuthenticateAgainstProtectionSpace is an unnecessary step in the authentication process.
It is leftover from when it was necessary when we used NSURLConnection, which is only used in WebKitLegacy now.
Now it's just an extra IPC roundtrip asking if we should use NSURLSessionAuthChallengeRejectProtectionSpace
or if we are going to ask the API client.  We can move this step into the C API for compatibility
with the 1 client that still uses it (not for long, see rdar://problem/43358403) and simplify and optimize
authentication.

* NetworkProcess/Downloads/PendingDownload.cpp:
(WebKit::PendingDownload::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* NetworkProcess/Downloads/PendingDownload.h:
* NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::completeAuthenticationChallenge): Deleted.
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace): Deleted.
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkLoadClient.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace): Deleted.
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace): Deleted.
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* NetworkProcess/PreconnectTask.h:
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::canAuthenticateAgainstProtectionSpaceAsync): Deleted.
* NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
* Shared/Authentication/AuthenticationManager.h:
* UIProcess/API/C/WKPage.cpp:
(WKPageSetPageNavigationClient):
* UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
* UIProcess/Cocoa/NavigationState.h:
* UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):
(WebKit::NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace): Deleted.
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace): Deleted.
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace): Deleted.
* UIProcess/WebPageProxy.h:

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

14 months agoAdd Experimental Feature support for SourceBuffer.changeType()
jer.noble@apple.com [Thu, 16 Aug 2018 17:57:01 +0000 (17:57 +0000)]
Add Experimental Feature support for SourceBuffer.changeType()
https://bugs.webkit.org/show_bug.cgi?id=188626
LayoutTests/imported/w3c:

Reviewed by Eric Carlson.

* resources/import-expectations.json:
* web-platform-tests/media-source/mediasource-changetype-expected.txt: Added.
* web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.
* web-platform-tests/media-source/mediasource-changetype-play.html: Added.
* web-platform-tests/media-source/mediasource-changetype-util.js: Added.
(findSupportedChangeTypeTestTypes):
(appendBuffer):
(trimBuffered):
(trimDuration):
(runChangeTypeTest):
(mediaSourceChangeTypeTest):
* web-platform-tests/media-source/mediasource-changetype.html: Added.
* web-platform-tests/media-source/mp3/sound_5.mp3: Added.
* web-platform-tests/media-source/mp3/w3c-import.log: Added.
* web-platform-tests/media-source/w3c-import.log:
* web-platform-tests/media-source/webm/test-vp9.webm: Added.
* web-platform-tests/media-source/webm/w3c-import.log:

Source/WebCore:

Reviewed by Eric Carlson.

Tests: imported/w3c/web-platform-tests/media-source/mediasource-changetype-play.html
       imported/w3c/web-platform-tests/media-source/mediasource-changetype.html

The WICG is incubating a new proposal to allow clients to switch between streams
with different codecs within the same SourceBuffer. The proposal is being tracked
by <https://github.com/w3c/media-source/issues/155> and the proposed spec change
is available at <https://rawgit.com/wicg/media-source/codec-switching/index.html>.

Drive-by fix: One of the wpt tests uses a .mp3 file to test SourceBuffer switching.
The AVStreamDataParser does not necessarily emit every frame appended, and after a
new init segment is appended, it's possible that frames from the previous media
segment will be emitted. This causes an error condition to occur, due to an added
check in the spec for a new flag. When the SourceBuffer asks its private implementation
to reset the parser state, since there's no API on AVStreamDataParser to actually
reset the parser state, just set a flag to drop all emitted buffers until the next
initialization segment is parsed.

* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::contentTypeShouldGenerateTimestamps):
(WebCore::MediaSource::setDurationInternal):
(WebCore::MediaSource::addSourceBuffer):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::changeType):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
(WebCore::SourceBuffer::validateInitializationSegment):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/SourceBuffer.idl:
* page/Settings.yaml:
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::canSwitchToType):
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
* platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
(WebCore::SourceBufferPrivateAVFObjC::resetParserState):
(WebCore::SourceBufferPrivateAVFObjC::canSwitchToType):

Source/WebKit:

Reviewed by Eric Carlson.

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

Source/WebKitLegacy/mac:

<rdar://problem/43356021>

Reviewed by Eric Carlson.

Add a new WebPreference property mapping to the WebCore SourceBufferChangeTypeEnabled setting.

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

Tools:

<rdar://problem/43356021>

Reviewed by Eric Carlson.

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

LayoutTests:

Reviewed by Eric Carlson.

* platform/mac/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Added.

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

14 months agoTransition more WKWebViewConfiguration ivars to API::PageConfiguration values
achristensen@apple.com [Thu, 16 Aug 2018 17:53:34 +0000 (17:53 +0000)]
Transition more WKWebViewConfiguration ivars to API::PageConfiguration values
https://bugs.webkit.org/show_bug.cgi?id=188661

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
* UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _alwaysRunsAtForegroundPriority]):
(-[WKWebViewConfiguration _setAlwaysRunsAtForegroundPriority:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):
(-[WKWebViewConfiguration _overrideContentSecurityPolicy]):
(-[WKWebViewConfiguration _setOverrideContentSecurityPolicy:]):

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

14 months ago[Curl] Not all Cookie database files are deleted on corruption
chris.reid@sony.com [Thu, 16 Aug 2018 17:40:34 +0000 (17:40 +0000)]
[Curl] Not all Cookie database files are deleted on corruption
https://bugs.webkit.org/show_bug.cgi?id=185873

Reviewed by Fujii Hironori.

No new tests.

Delete the cookie database file and the corruption flag file when corruption is detected.
Adding a quick integrity check in case it can catch anything when opening the database.
Removing PRAGMA temp_store = MEMORY and PRAGMA journal_mode = WAL as they are set in SQLiteDatabase::open.

* platform/network/curl/CookieJarDB.cpp:

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

14 months ago[win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKit...
pvollan@apple.com [Thu, 16 Aug 2018 17:24:46 +0000 (17:24 +0000)]
[win-ews] No such file or directory: u'/cygdrive/C/cygwin/home/buildbot/WebKit/WebKitBuild/Release/bin32/layout-test-results/pywebsocket.ws.log-out.txt'
https://bugs.webkit.org/show_bug.cgi?id=188640

Unreviewed test gardening.

For now, skip websocket tests on Windows. Currently, run-webkit-tests is failing to start the websocket server because
port 8880 is already in use. Port 8880 is being used because the python websocket server process from the previous run
did not shutdown properly. We still need to understand why this is happening, but disable websocket tests now in order
for tests to run again.

* platform/win/TestExpectations:

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

14 months ago[Nicosia] Add Nicosia::ImageBackingTextureMapperImpl
zandobersek@gmail.com [Thu, 16 Aug 2018 16:57:35 +0000 (16:57 +0000)]
[Nicosia] Add Nicosia::ImageBackingTextureMapperImpl
https://bugs.webkit.org/show_bug.cgi?id=188550

Reviewed by Carlos Garcia Campos.

Add the Nicosia::ImageBackingTextureMapperImpl class, the
TextureMapper-specific implementation that will extend the ImageBacking
class.

This class will be used to contain and manage updates for layers that
are backed by image objects. The CoordinatedGraphicsLayer instance will
use the LayerState object to track the currently-presented image objects
and to store the latest update of these objects. The Update struct
contains information about the current visibility of the image in the
layer tree as well as the Nicosia::Buffer object containing the painted
image data that's to be presented on the screen.

During the layer flush the flushUpdate() method will move the current
update data into the pending position, from which this data will be
gathered by the composition component through the takeUpdate() method
and used to update the CoordinatedBackingStore object that's kept in
the CompositionState object on this impl class.

This will be deployed for use in the CoordinatedGraphicsLayer at a later
stage as it requires a larger rework in both CoordinatedGraphicsLayer as
well as the CoordinatedGraphicsScene classes.

The implementation itself differs from the current image backing support
in CoordinatedGraphicsLayer and CompositingCoordinator by abandoning the
idea of sharing single image backings between layers that might be
backed by identical Image objects. We thus end up trading any memory
consumption benefit in these scenarios for a much simplified
implementation. Overall this area needs more research both in figuring
out whether there's worthy improvements in grouping image backings, as
well as investigating whether it's possible to avoid additional image
rasterization by just leveraging direct pixel data via the
NativeImagePtr object.

* platform/TextureMapper.cmake:
* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.cpp: Added.
(Nicosia::ImageBackingTextureMapperImpl::createFactory):
(Nicosia::ImageBackingTextureMapperImpl::flushUpdate):
(Nicosia::ImageBackingTextureMapperImpl::takeUpdate):
* platform/graphics/nicosia/texmap/NicosiaImageBackingTextureMapperImpl.h: Added.

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

14 months agoUnreviewed WPE gardening. Enable a few subdirectories under fast/ and
zandobersek@gmail.com [Thu, 16 Aug 2018 16:49:02 +0000 (16:49 +0000)]
Unreviewed WPE gardening. Enable a few subdirectories under fast/ and
provide platform-specific baselines as well as failure expectations
where required.

* platform/wpe/TestExpectations:
* platform/wpe/fast/box-shadow: Added 10 baselines.
* platform/wpe/fast/box-sizing: Added 4 baselines.
* platform/wpe/fast/clip: Added 23 baselines.
* platform/wpe/fast/compact: Added 3 baselines.
* platform/wpe/fast/css-generated-content: Added 43 baselines.
* platform/wpe/fast/doctypes: Added 4 baselines.
* platform/wpe/fast/flexbox: Added 26 baselines.
* platform/wpe/fast/inline: Added 32 baselines.
* platform/wpe/fast/inline-block: Added 9 baselines.
* platform/wpe/fast/invalid: Added 29 baselines.
* platform/wpe/fast/line-grid: Added 8 baselines.
* platform/wpe/fast/lists: Added 27 baselines.
* platform/wpe/fast/loader: Added 1 baseline.
* platform/wpe/fast/preloader: Added 2 baselines.
* platform/wpe/fast/replaced: Added 57 baselines.
* platform/wpe/fast/ruby: Added 26 baselines.
* platform/wpe/fast/writing-mode: Added 37 baselines.

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

14 months agoSupport drag-and-drop for input[type=color]
akeerthi@apple.com [Thu, 16 Aug 2018 16:44:17 +0000 (16:44 +0000)]
Support drag-and-drop for input[type=color]
https://bugs.webkit.org/show_bug.cgi?id=188464

Reviewed by Wenson Hsieh.

Source/WebCore:

input[type=color] should support native drag and drop on both macOS and iOS.

Added methods to Pasteboard and PlatformPasteboard to enable colors to be read
from and written to the pasteboard. On macOS, colors are managed through the
NSColorPboardType, whereas on iOS, colors are managed through the
'com.apple.uikit.color' identifier.

DragSourceActionColor was added to the list of DragSourceActions to identify
when a color input is being dragged.

Tests: editing/pasteboard/drag-and-drop-color-input-events.html
       editing/pasteboard/drag-and-drop-color-input.html

* page/DragActions.h:
* page/DragController.cpp:
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::isEnabledColorInput):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::canProcessDrag):
(WebCore::DragController::draggableElement const):
(WebCore::DragController::startDrag):
* page/EventHandler.cpp:
(WebCore::EventHandler::dragHysteresisExceeded const):
(WebCore::EventHandler::handleDrag):
* page/EventHandler.h:
* page/mac/DragControllerMac.mm:
(WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):
* platform/DragData.h:
* platform/DragImage.cpp:
(WebCore::DragImage::operator=):
* platform/DragImage.h: Added the visiblePath property to DragImage, in order for
us to be able to clip images in the UITargetedDragPreview on iOS.
* platform/DragItem.h:
(WebCore::DragItem::encode const):
(WebCore::DragItem::decode):
* platform/Pasteboard.h:
* platform/PasteboardStrategy.h:
* platform/PlatformPasteboard.h:
* platform/gtk/DragImageGtk.cpp:
(WebCore::createDragImageForColor):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::write):
* platform/ios/DragImageIOS.mm:
(WebCore::createDragImageForColor):
* platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::write):
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::setColor):
* platform/mac/DragDataMac.mm:
(WebCore::colorPasteboardType):
(WebCore::DragData::containsCompatibleContent const):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageForColor): Draw a rounded rectangle with a fill color
matching the value of the dragged color input. The rendered image is designed to
mimic the preview shown when dragging an NSColorWell.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::write):
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::setColor):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::write):
* platform/wpe/PasteboardWPE.cpp:
(WebCore::Pasteboard::write):

Source/WebKit:

On iOS, the drag preview for the color input is a rounded rectangle. In order to
ensure that the corners appear transparent, the visiblePath property of the
UIDragPreviewParameters was set to match the preview's shape. This also required
the creation of an additional ArgumentCoder for Path.

When beginning the drag session, the preview should appear centered about the
color input. This is managed in createTargetedDragPreview. However, once the
preview is dragged, the preview should be at the center of the touch location.
Consequently, DragSourceActionColor was added to the list of sources that could
update the drag preview after lifting.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<Path>::decode):
* Shared/WebCoreArgumentCoders.h:
* UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::setPasteboardColor):
* UIProcess/WebPasteboardProxy.h:
* UIProcess/WebPasteboardProxy.messages.in:
* UIProcess/ios/DragDropInteractionState.h:
* UIProcess/ios/DragDropInteractionState.mm:
(WebKit::createTargetedDragPreview):
(WebKit::shouldUseDragImageToCreatePreviewForDragSource):
(WebKit::shouldUseVisiblePathToCreatePreviewForDragSource):
(WebKit::canUpdatePreviewForActiveDragSource):
(WebKit::DragDropInteractionState::previewForDragItem const):
(WebKit::DragDropInteractionState::stageDragItem):
(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):
* UIProcess/ios/forms/WKFormColorPicker.mm:
(-[WKColorPicker initWithView:]):
* UIProcess/mac/WebColorPickerMac.h:
* WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::setColor):
* WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

* WebCoreSupport/WebPlatformStrategies.h:
* WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::setColor):

Tools:

Added five cross-platform API tests, to verify that dragging and dropping with
color inputs changes the value of the drop target if and only if both inputs are
enabled. Also tests that the change and input events are fired when changing the
value of a color input through drag and drop.

Additionally, added a macOS-specific test to verify that dropping an item with
NSColorPboardType changes the value of the color input.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WebKitCocoa/color-drop.html: Added.
* TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
(TestWebKitAPI::TEST):

LayoutTests:

Added tests to verify that dragging from one color input to another behaves as
expected in WK1. The tests consider disabled and read-only inputs in addition to
default color inputs. The WK2 implementation is tested through API tests.

* editing/pasteboard/drag-and-drop-color-input-events-expected.txt: Added.
* editing/pasteboard/drag-and-drop-color-input-events.html: Added.
* editing/pasteboard/drag-and-drop-color-input-expected.txt: Added.
* editing/pasteboard/drag-and-drop-color-input.html: Added.
* platform/ios/TestExpectations:
* platform/mac/TestExpectations:
* platform/wk2/TestExpectations:

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

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

Reviewed by Brent Fulgham.

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

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

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

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

Reviewed by Alexey Proskuryakov.

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

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

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

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

Reviewed by Antti Koivisto.

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

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

Covered by existing block-only tests.

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

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

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

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

* pl.po:

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

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

Reviewed by Antti Koivisto.

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

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

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

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

Reviewed by Antti Koivisto.

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

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

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

Reviewed by Antti Koivisto.

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

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

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

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

Reviewed by Antti Koivisto.

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

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

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

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

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

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

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

Reviewed by Brent Fulgham.

Source/WebCore:

More typesafe flags.

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

Source/WebKit:

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

Source/WTF:

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

Add xor operator, useful for finding changes between sets.

Tools:

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

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

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

Reviewed by Saam Barati.

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

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

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

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

Reviewed by Michael Catanzaro.

Tools:

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

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

WebDriverTests:

Remove expectations of the tests that pass now.

* TestExpectations.json:

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

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

New pytest requires to autoinstall attrs too.

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

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

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

Reviewed by Saam Barati.

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

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

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

<rdar://problem/41314410>

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

Add the ProtectionSpaceAuthenticationSchemeOAuth type.

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

Source/WebCore/PAL:

<rdar://problem/41314410>

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

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

Source/WebKit:

<rdar://problem/41314410>

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

Correctly expose the OAuth protection space type in API.

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

Tools:

<rdar://problem/41314410>

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

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

LayoutTests:

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

Ensure the exposed authentication type to clients is OAuth.

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

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

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

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

Source/WebCore:

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

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

Source/WebKit:

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

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

Source/WTF:

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

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

Tools:

Added trace points for sandbox initialization

* Tracing/SystemTracePoints.plist:

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

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

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

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

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

Reviewed by Geoffrey Garen.

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

Source/WebCore:

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

Source/WebKit:

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

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

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

Reviewed by Timothy Hatcher.

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

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

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

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

Reviewed by Alex Christensen.

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

Source/WebCore:

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

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

LayoutTests:

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

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

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

Reviewed by Megan Gardner.

Source/WebKit:

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

Source/WebKitLegacy/mac:

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

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

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

Unreviewed test gardening.

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

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

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

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

Reviewed by Tim Horton.

Source/WebCore:

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

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

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

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

Source/WebCore/PAL:

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

Source/WebInspectorUI:

Add keyword completion for 'list-button'.

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

LayoutTests:

Added tests to verify appearance of TextFieldInputs with a datalist.

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

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

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

The test introduced with this change is a flaky failure.

Reverted changeset:

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

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

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

Reviewed by Youenn Fablet.

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

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

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

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

Unreviewed test gardening.

Unskip http/tests/cookies.

* platform/wincairo/TestExpectations:

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

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

Reviewed by Joseph Pecoraro.

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

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

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

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

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases pass.

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

Source/WebCore:

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

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

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

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

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

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

Reviewed by Youenn Fablet.

Source/WebCore:

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

Tests: http/tests/xmlhttprequest/methods.html

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

LayoutTests:

* platform/wincairo/TestExpectations:

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

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

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

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

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

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

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

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

Reviewed by Brian Burg.

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

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

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

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

Reviewed by Alex Christensen.

* WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

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