WebKit-https.git
21 months agoWeb Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when...
mattbaker@apple.com [Thu, 10 May 2018 20:59:07 +0000 (20:59 +0000)]
Web Inspector: ASSERT_NOT_REACHED in PageDebuggerAgent::didAddEventListener when page adds attribute event listener
https://bugs.webkit.org/show_bug.cgi?id=181580
<rdar://problem/36461309>

Reviewed by Brian Burg.

Source/WebCore:

EventTarget should pass newly added EventListeners to InspectorInstrumentation,
instead of PageDebuggerAgent assuming the last item in the EventListenerVector
is the most recently added listener. This assumption does not hold when
the new listener replaces an existing listener.

* dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::setAttributeEventListener):

* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didAddEventListenerImpl):

* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didAddEventListener):

* inspector/agents/page/PageDebuggerAgent.cpp:
(WebCore::PageDebuggerAgent::didAddEventListener):
* inspector/agents/page/PageDebuggerAgent.h:

LayoutTests:

Add new test covering the case where adding an attribute event listener
causes an existing attribute event listener to be replaced.

* inspector/debugger/async-stack-trace-expected.txt:
* inspector/debugger/async-stack-trace.html:

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

21 months ago[Win][MiniBrowser] Add a separate WndProc for the layered window
Hironori.Fujii@sony.com [Thu, 10 May 2018 20:54:12 +0000 (20:54 +0000)]
[Win][MiniBrowser] Add a separate WndProc for the layered window
https://bugs.webkit.org/show_bug.cgi?id=185460

Reviewed by Brent Fulgham.

All WK1 related code should be moved into MiniBrowser for the
preparation of Bug 184770.

The layered window was using WndProc of the main window. The
layered window is specific only for WK1. the main window will be
shared among WK1 and WK2.

This change add a new WndProc for the layer window.

* MiniBrowser/win/Common.cpp:
(WndProc): Removed code for the layered windows.
(subclassForLayeredWindow): Moved into MiniBrowser.cpp.
* MiniBrowser/win/MiniBrowser.cpp:
(MiniBrowser::prepareViews): Removed the fourth argument `viewHwnd`.
(viewWndProc): New WndProc for the layered windows.
(MiniBrowser::subclassForLayeredWindow): Moved from Common.cpp.
* MiniBrowser/win/MiniBrowser.h:
(MiniBrowser::hwnd):
* MiniBrowser/win/WinMain.cpp:
(wWinMain): Added m_viewWnd.

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

21 months ago'Cross-Origin-Options header implementation follow-up
cdumez@apple.com [Thu, 10 May 2018 20:42:01 +0000 (20:42 +0000)]
'Cross-Origin-Options header implementation follow-up
https://bugs.webkit.org/show_bug.cgi?id=185520

Reviewed by Ryosuke Niwa.

Source/WebCore:

* dom/Document.cpp:
* dom/Document.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
Using isNull() check is sufficient here as the header parsing
function will do the right thing when passed the empty string.
Also set the options directly on the window instead of the
document. The window is guaranteed to have been constructed
by then because didBeginDocument() is called DocumentWriter::begin()
which calls Document::createDOMWindow() or Document::takeDOMWindowFrom().

* page/AbstractDOMWindow.cpp:
(WebCore::AbstractDOMWindow::AbstractDOMWindow):
* page/AbstractDOMWindow.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):
* page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::RemoteDOMWindow):
* page/RemoteDOMWindow.h:
CrossOriginOptions are now stored only on the Window, not the Document.

* platform/network/HTTPParsers.cpp:
(WebCore::parseCrossOriginOptionsHeader):
Drop strippedHeader local variable as it is not strictly needed.

Source/WebKit:

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

LayoutTests:

Extend layout testing to cover mixed case, multiple values and no value.

* http/wpt/cross-origin-options/cross-origin-options-header-expected.txt:
* http/wpt/cross-origin-options/cross-origin-options-header.html:

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

21 months agoDrop-down Control borders missing.
pvollan@apple.com [Thu, 10 May 2018 19:38:05 +0000 (19:38 +0000)]
Drop-down Control borders missing.
https://bugs.webkit.org/show_bug.cgi?id=185500
<rdar://problem/40093461>

Reviewed by Brent Fulgham.

Open sandbox for reading of some files in temp folder.

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

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

21 months agoSupport --verbose in run-javascriptcore-tests
commit-queue@webkit.org [Thu, 10 May 2018 19:11:47 +0000 (19:11 +0000)]
Support --verbose in run-javascriptcore-tests
https://bugs.webkit.org/show_bug.cgi?id=185492

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2018-05-10
Reviewed by Daniel Bates.

* Scripts/run-javascriptcore-tests:
(runJSCStressTests):

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

21 months agoFix the build after r231393
timothy_horton@apple.com [Thu, 10 May 2018 18:54:15 +0000 (18:54 +0000)]
Fix the build after r231393
https://bugs.webkit.org/show_bug.cgi?id=185519
<rdar://problem/40131741>

Reviewed by Simon Fraser.

Source/WebCore:

* Configurations/WebCore.xcconfig:

Source/WTF:

* wtf/Platform.h:

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

21 months ago[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock captur...
eric.carlson@apple.com [Thu, 10 May 2018 18:36:57 +0000 (18:36 +0000)]
[MediaStream, iOS] Don't check authorizationStatusForMediaType when using mock capture devices
https://bugs.webkit.org/show_bug.cgi?id=185516
<rdar://problem/36328191>

Reviewed by Youenn Fablet.

* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Don't check
+[AVCaptureDevice authorizationStatusForMediaType:] when using mock capture devices.

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

21 months agoREGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility...
bfulgham@apple.com [Thu, 10 May 2018 18:31:59 +0000 (18:31 +0000)]
REGRESSION(r230323): UIProcess needs to notify WebContent process of Accessibility setting changes
https://bugs.webkit.org/show_bug.cgi?id=185515
<rdar://problem/39627764>

Reviewed by Chris Fleizach.

The UIProcess needs to register for relevant Accessibility preference updates so that it can notify the
WebContent processes that screen properties have changed.

This is represented by NSWorkspaceAccessibilityDisplayOptionsDidChangeNotification.

Tested manually with the Accessibility preferences pane.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::registerNotificationObservers): Add notification observer. When the notification
is received, call 'screenPropertiesStateChanged' to message the information to the WebContent processes.
(WebKit::WebProcessPool::unregisterNotificationObservers): Clean up observer.
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::screenPropertiesStateChanged): Added helper function.
* UIProcess/WebProcessPool.h:

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

21 months ago[WinCairo] Unreviewed gardening.
ross.kirsling@sony.com [Thu, 10 May 2018 17:58:20 +0000 (17:58 +0000)]
[WinCairo] Unreviewed gardening.

* platform/wincairo/TestExpectations:
* platform/wincairo/editing/deleting/delete-emoji-expected.txt:

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

21 months agotest262/Runner.pm: --failing-files uses results file not expectations
commit-queue@webkit.org [Thu, 10 May 2018 17:37:43 +0000 (17:37 +0000)]
test262/Runner.pm: --failing-files uses results file not expectations
https://bugs.webkit.org/show_bug.cgi?id=185395

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-10
Reviewed by Michael Saboff.

--failing-files arg now uses results file to find failing tests
to rerun. It will look in the test262-results directory from whereever
the script is run, or a results.yaml file can be supplied via command
line argument.
--expectations arg added for suppling expectation file.

* Scripts/test262/Runner.pm:
(processCLI):
(main):
(loadImportFile):
(findAllFailing):

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

21 months agoLog missing cues correctly
eric.carlson@apple.com [Thu, 10 May 2018 17:02:19 +0000 (17:02 +0000)]
Log missing cues correctly
https://bugs.webkit.org/show_bug.cgi?id=185499
<rdar://problem/40113821>

Reviewed by Daniel Bates.

No new tests, tested manually.

* html/track/InbandGenericTextTrack.cpp:
(WebCore::InbandGenericTextTrack::removeGenericCue): Log the cue we searched for, not
the NULL cue.

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

21 months ago[LFC] Implement height computation for non-replaced inflow elements.
zalan@apple.com [Thu, 10 May 2018 16:46:54 +0000 (16:46 +0000)]
[LFC] Implement height computation for non-replaced inflow elements.
https://bugs.webkit.org/show_bug.cgi?id=185474

Reviewed by Antti Koivisto.

Initial implementation. Does not cover all the cases.

* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeHeight const):
* layout/FormattingContext.h:
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
(WebCore::Layout::BlockFormattingContext::computeInFlowNonReplacedHeight const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/blockformatting/BlockMarginCollapse.cpp:
(WebCore::Layout::collapsedMarginBottomFromLastChild):
(WebCore::Layout::BlockMarginCollapse::isMarginBottomCollapsedWithParent):
(WebCore::Layout::BlockMarginCollapse::isMarginTopCollapsedWithParentMarginBottom):
(WebCore::Layout::isMarginBottomCollapsedWithParent): Deleted.
* layout/blockformatting/BlockMarginCollapse.h:
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const):
* layout/inlineformatting/InlineFormattingContext.h:
* layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::isReplaced const):
* layout/layouttree/LayoutBox.h:

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

21 months ago[GTK] Implement ImageBuffer::toBGRAData
commit-queue@webkit.org [Thu, 10 May 2018 14:50:41 +0000 (14:50 +0000)]
[GTK] Implement ImageBuffer::toBGRAData
https://bugs.webkit.org/show_bug.cgi?id=185511

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-05-10
Reviewed by Michael Catanzaro.

This was never implemented but will be required for the MediaStream API
tests.

* platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::toBGRAData const):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::toBGRAData const):
* platform/graphics/gtk/ImageBufferGtk.cpp:
(WebCore::ImageBuffer::toBGRAData const):

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

21 months ago[GTK] Add support for settings cookies policy and storage type in MiniBrowser
carlosgc@webkit.org [Thu, 10 May 2018 08:37:37 +0000 (08:37 +0000)]
[GTK] Add support for settings cookies policy and storage type in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=185506

Reviewed by Philippe Normand.

Useful for testing and debugging.

* MiniBrowser/gtk/main.c:
(main):

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

21 months ago[EME][GStreamer] Add a handler for GStreamer protection event
commit-queue@webkit.org [Thu, 10 May 2018 07:41:36 +0000 (07:41 +0000)]
[EME][GStreamer] Add a handler for GStreamer protection event
https://bugs.webkit.org/show_bug.cgi?id=185245

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Qtdemux sends the protection event when encountered a new PSSH box (encrypted content).

The Decryptor is moved from AppendPipeline to PlaybackPipeline (see https://bugs.webkit.org/show_bug.cgi?id=181855),
thus the protection event is no longer handled because the Decryptor is not in the same pipeline as qtdemux.

AppendPipeline: httpsrc-->qtdemux-->appsink
PlaybackPipeline: appsrc-->parser--> decryptor-->decoder-->sink

This patch attaches a probe to the sink pad of the appsink in the appendPipeline in order to
catch and manage the protection event.

* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::appendPipelineAppsinkPadEventProbe):
* platform/graphics/gstreamer/mse/AppendPipeline.h:
(WebCore::AppendPipeline::playerPrivate):

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

21 months agoREGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView...
Hironori.Fujii@sony.com [Thu, 10 May 2018 07:15:42 +0000 (07:15 +0000)]
REGRESSION(r231622) [Win] Crashes for null dereference of prefsPrivate in WebView::notifyPreferencesChanged
https://bugs.webkit.org/show_bug.cgi?id=185505

Unreviewed serious crash fix

Windows port crashes soon since Bug 184996.

* WebPreferences.cpp:
(WebPreferences::QueryInterface): Added IID_IWebPreferencesPrivate7.
* WebPreferences.h: Inherit IWebPreferencesPrivate7 instead of IWebPreferencesPrivate6.

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

21 months ago[wpe] update the TestExpectations for encrypted-media after some fixes
calvaris@igalia.com [Thu, 10 May 2018 07:11:43 +0000 (07:11 +0000)]
[wpe] update the TestExpectations for encrypted-media after some fixes
https://bugs.webkit.org/show_bug.cgi?id=185277

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

Once the decryptor moved from AppendPipeline to Playbackpipeline and the patches 185242, 185244
are fixed, the encrypted-media WPT LayoutTests will no longer crash and some one will pass.

* platform/wpe/TestExpectations:
* platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https-expected.txt:

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

21 months ago[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
calvaris@igalia.com [Thu, 10 May 2018 07:11:19 +0000 (07:11 +0000)]
[EME][GStreamer] Move the decryptor from AppendPipeline to PlaybackPipeline.
https://bugs.webkit.org/show_bug.cgi?id=181855

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-10
Reviewed by Xabier Rodriguez-Calvar.

The goal of this move is to handle the limitation of SVP (Secure Video Path) memory size.

When the decryptor is in the AppendPipeline and we use SVP, we buffer in MediaSource queue
the decrypted GstBuffers that are in SVP memory.
This behavior cause an out-of-memory error, because we are limited in SVP memory size.

By moving the decryptor in PlaybackPipeline, we avoid to buffer the decrypted GstBuffers
which use the SVP memory and we buffer the encrypted GstBuffers that are in system memory.

This new architecture also allows to start the buffering before obtaining the DRM license
and it makes easier to manage dynamic change of the license or Key.

The decryptor is auto plugged by GStreamer playbin in PlaybackPipeline.

SVP: Secure Video Path also named trusted or protected video path, it is a memory which is
protected by a hardware access control engine, it is not accessible to other unauthorised
software or hardware components.

Tests:
    media/encrypted-media/clearKey/clearKey-cenc-audio-playback-mse.html
    media/encrypted-media/clearKey/clearKey-cenc-video-playback-mse.html

* platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
(webkitMediaCommonEncryptionDecryptSinkEventHandler):
* platform/graphics/gstreamer/mse/AppendPipeline.cpp:
(WebCore::dumpAppendState):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleNeedContextSyncMessage):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived):
(WebCore::AppendPipeline::setAppendState):
(WebCore::AppendPipeline::parseDemuxerSrcPadCaps):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
(WebCore::AppendPipeline::disconnectDemuxerSrcPadFromAppsinkFromAnyThread):
(WebCore::appendPipelineElementMessageCallback): Deleted.
(WebCore::AppendPipeline::handleElementMessage): Deleted.
(WebCore::AppendPipeline::dispatchPendingDecryptionStructure): Deleted.
(WebCore::AppendPipeline::dispatchDecryptionStructure): Deleted.
* platform/graphics/gstreamer/mse/AppendPipeline.h:
* platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::attemptToDecryptWithInstance):
* platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:

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

21 months agoWebDriver: implement advance user interactions
carlosgc@webkit.org [Thu, 10 May 2018 06:52:31 +0000 (06:52 +0000)]
WebDriver: implement advance user interactions
https://bugs.webkit.org/show_bug.cgi?id=174616

Reviewed by Brian Burg.

Source/WebDriver:

Add initial implementation of action commands.

* Actions.h: Added.
(WebDriver::Action::Action):
* CommandResult.cpp:
(WebDriver::CommandResult::CommandResult): Handle MoveTargetOutOfBounds error.
(WebDriver::CommandResult::httpStatusCode const): Ditto.
(WebDriver::CommandResult::errorString const): Ditto.
* CommandResult.h:
* Session.cpp:
(WebDriver::Session::webElementIdentifier): Helper to return the web element id.
(WebDriver::Session::createElement): Use webElementIdentifier().
(WebDriver::Session::extractElementID): Ditto.
(WebDriver::Session::virtualKeyForKeySequence): Add more kay codes includes in the spec.
(WebDriver::mouseButtonForAutomation): Helper to get the mouse button string to pass to automation.
(WebDriver::Session::performMouseInteraction): Use mouseButtonForAutomation().
(WebDriver::Session::getOrCreateInputSource): Ensure an input source for given id and add it to the active input
sources.
(WebDriver::Session::inputSourceState): Return the current input source state for the given id.
(WebDriver::Session::computeInViewCenterPointOfElements): Get the in view center point for the list of elements given.
(WebDriver::automationSourceType): Helper to get the input source type to pass to automation.
(WebDriver::Session::performActions): Process the list of action by tick and generate a list of states to pass
to automation.
(WebDriver::Session::releaseActions): Reset input sources and state table and send a message to automation.
* Session.h:
* WebDriverService.cpp:
(WebDriver::processPauseAction):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::actionMouseButton):
(WebDriver::processPointerAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):
(WebDriver::WebDriverService::performActions):
(WebDriver::WebDriverService::releaseActions):
* WebDriverService.h:

Source/WebKit:

Handle origin in case of mouse move transitions.

* UIProcess/Automation/Automation.json: Add MouseMoveOrigin enum and pass it as parameter of InputSourceState
together with optional node handle. Also pass the frame handle to performInteractionSequence command to find the
node in the current browsing context.
* UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputKeyFrame::keyFrameToResetInputSources): Ensure we reset the location.
(WebKit::SimulatedInputDispatcher::resolveLocation): Helper to resolve destination location based on current
location and mouse move origin.
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState): Use resolveLocation() in mouse transitions.
(WebKit::SimulatedInputDispatcher::run): Receive and save the frame ID.
(WebKit::SimulatedInputDispatcher::finishDispatching): Reset the frame ID.
* UIProcess/Automation/SimulatedInputDispatcher.h:
* UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::computeElementLayout): Use even numbers for the callback ID to not conflict with
viewportInViewCenterPointOfElement() callbacks.
(WebKit::WebAutomationSession::didComputeElementLayout): Handle computeElementLayout() or
viewportInViewCenterPointOfElement() requests by calling the right callback depending on whether the ID is odd
or even number.
(WebKit::WebAutomationSession::viewportInViewCenterPointOfElement): Send ComputeElementLayout message to the
WebProcess using odd numbers for the callback ID to not conflict with computeElementLayout() callbacks.
(WebKit::WebAutomationSession::performInteractionSequence): Handle the mouse origin and element handle.
(WebKit::WebAutomationSession::cancelInteractionSequence): Pass the frame ID to the input dispatcher.
* UIProcess/Automation/WebAutomationSession.h:
* UIProcess/Automation/WebAutomationSessionMacros.h:

WebDriverTests:

Update test expectations.

* TestExpectations.json:

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

21 months ago[GTK] gtk-doc installation subdir duplicated
commit-queue@webkit.org [Thu, 10 May 2018 06:44:00 +0000 (06:44 +0000)]
[GTK] gtk-doc installation subdir duplicated
https://bugs.webkit.org/show_bug.cgi?id=185468

Patch by Jan Alexander Steffens <jan.steffens@gmail.com> on 2018-05-09
Reviewed by Carlos Garcia Campos.

The GTK docs are installed into a duplicated subdir,
e.g. /usr/share/doc/gtk-doc/html/webkit2gtk-4.0/webkit2gtk-4.0.

* Source/PlatformGTK.cmake:

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

21 months agoMarkup.dump should dump selection focus & anchor at the root node
rniwa@webkit.org [Thu, 10 May 2018 06:39:01 +0000 (06:39 +0000)]
Markup.dump should dump selection focus & anchor at the root node
https://bugs.webkit.org/show_bug.cgi?id=185497

Reviewed by Wenson Hsieh.

Added the support for logging selection end points (anchor & focus) for when they're
anchored against the root node passed to Markup.dump.

* editing/deleting/delete-across-editable-content-boundaries-1-expected.txt:
* editing/deleting/delete-image-followed-by-two-br-expected.txt:
* editing/deleting/delete-start-block-expected.txt:
* editing/deleting/delete-word-from-unstyled-div-expected.txt:
* editing/deleting/deleting-relative-positioned-special-element-expected.txt:
* editing/deleting/smart-delete-across-editable-boundaries-2-expected.txt:
* editing/deleting/smart-delete-across-editable-boundaries-expected.txt:
* editing/execCommand/break-non-editable-blockquote-expected.txt:
* editing/execCommand/format-block-table-expected.txt:
* editing/execCommand/indent-img-twice-expected.txt:
* editing/execCommand/remove-format-textdecoration-in-iframe-expected.txt:
* editing/inserting/5607069-2-expected.txt:
* editing/inserting/5994480-2-expected.txt:
* editing/inserting/insert-list-in-table-cell-03-expected.txt:
* editing/inserting/insert-list-in-table-cell-04-expected.txt:
* editing/inserting/insert-list-in-table-cell-07-expected.txt:
* editing/inserting/insert-list-in-table-cell-08-expected.txt:
* editing/inserting/insert-table-in-paragraph-crash-expected.txt:
* editing/pasteboard/copy-null-characters-expected.txt:
* editing/pasteboard/copy-paste-content-starting-and-ending-canvas-expected.txt:
* editing/pasteboard/paste-blockquote-and-paragraph-break-expected.txt:
* editing/pasteboard/paste-table-with-unrendered-text-nodes-expected.txt:
* editing/pasteboard/pasting-into-h6-should-not-nest-h6-expected.txt:
* editing/pasteboard/pasting-into-p-should-not-nest-p-expected.txt:
* editing/style/apply-style-atomic-expected.txt:
* fast/events/5056619-expected.txt:
* platform/ios/editing/deleting/delete-emoji-1-expected.txt:
* platform/ios/editing/deleting/delete-emoji-2-expected.txt:
* platform/ios/editing/deleting/delete-emoji-3-expected.txt:
* platform/ios/editing/deleting/delete-emoji-4-expected.txt:
* platform/ios/editing/deleting/delete-emoji-5-expected.txt:
* platform/ios/editing/deleting/delete-emoji-6-expected.txt:
* platform/ios/editing/deleting/delete-emoji-7-expected.txt:
* platform/ios/editing/deleting/delete-emoji-8-expected.txt:
* platform/ios/editing/deleting/delete-emoji-9-expected.txt:
* platform/ios/editing/deleting/delete-emoji-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt:
* platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt:
* platform/mac/editing/deleting/delete-emoji-1-expected.txt:
* platform/mac/editing/deleting/delete-emoji-2-expected.txt:
* platform/mac/editing/deleting/delete-emoji-3-expected.txt:
* platform/mac/editing/deleting/delete-emoji-4-expected.txt:
* platform/mac/editing/deleting/delete-emoji-5-expected.txt:
* platform/mac/editing/deleting/delete-emoji-6-expected.txt:
* platform/mac/editing/deleting/delete-emoji-7-expected.txt:
* platform/mac/editing/deleting/delete-emoji-8-expected.txt:
* platform/mac/editing/deleting/delete-emoji-9-expected.txt:
* platform/mac/editing/deleting/delete-emoji-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-1-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-2-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-3-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-4-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-5-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-6-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-7-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-8-expected.txt:
* platform/wincairo/editing/deleting/delete-emoji-9-expected.txt:
* resources/dump-as-markup.js:
(Markup): Added the logging of selection markers to the root node.ß∑
(Markup._get):
(Markup._getSelectionMarkerWithIdentation): Extracted out of Markup._get.

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

21 months ago[ESNext][BigInt] Implement support for "==" operation
ticaiolima@gmail.com [Thu, 10 May 2018 04:25:49 +0000 (04:25 +0000)]
[ESNext][BigInt] Implement support for "==" operation
https://bugs.webkit.org/show_bug.cgi?id=184474

Reviewed by Yusuke Suzuki.

JSTests:

* stress/big-int-equals-basic.js: Added.
* stress/big-int-equals-to-primitive-precedence.js: Added.
* stress/big-int-equals-wrapped-value.js: Added.

Source/JavaScriptCore:

This patch is implementing support of BigInt for equals operator
following the spec semantics[1].

[1] - https://tc39.github.io/proposal-bigint/#sec-abstract-equality-comparison

* runtime/JSBigInt.cpp:
(JSC::JSBigInt::parseInt):
(JSC::JSBigInt::stringToBigInt):
(JSC::JSBigInt::toString):
(JSC::JSBigInt::setDigit):
(JSC::JSBigInt::equalsToNumber):
(JSC::JSBigInt::compareToDouble):
* runtime/JSBigInt.h:
* runtime/JSCJSValueInlines.h:
(JSC::JSValue::equalSlowCaseInline):

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

21 months agoAX: VoiceOver iframe scrolling focus jumping bug
n_wang@apple.com [Thu, 10 May 2018 02:07:34 +0000 (02:07 +0000)]
AX: VoiceOver iframe scrolling focus jumping bug
https://bugs.webkit.org/show_bug.cgi?id=176615
<rdar://problem/34333067>

Reviewed by Chris Fleizach.

Source/WebCore:

Scrolling to make elements visible is not working correctly for elements inside an
offscreen iframe. Fixed it by using RenderLayer::scrollRectToVisible() to handle
scrolling more properly.

Test: accessibility/scroll-to-make-visible-iframe-offscreen.html

* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::scrollToMakeVisible const):

LayoutTests:

* accessibility/resources/iframe.html: Added.
* accessibility/scroll-to-make-visible-iframe-offscreen-expected.txt: Added.
* accessibility/scroll-to-make-visible-iframe-offscreen.html: Added.
* platform/win/TestExpectations:

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

21 months agoAX: accessibleNameForNode should simplify whitespace when using innerText
jdiggs@igalia.com [Thu, 10 May 2018 01:49:54 +0000 (01:49 +0000)]
AX: accessibleNameForNode should simplify whitespace when using innerText
https://bugs.webkit.org/show_bug.cgi?id=185498

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/text-alternative-calculation-from-unrendered-table.html

Call simplifyWhiteSpace() before returning the innerText value.

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::accessibleNameForNode):

LayoutTests:

* accessibility/text-alternative-calculation-from-unrendered-table-expected.txt: Added.
* accessibility/text-alternative-calculation-from-unrendered-table.html: Added.

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

21 months agoUnreviewed Windows build fix after r231622.
cdumez@apple.com [Thu, 10 May 2018 01:23:55 +0000 (01:23 +0000)]
Unreviewed Windows build fix after r231622.

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

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

21 months agoRemove the unused HAVE_OS_ACTIVITY
timothy_horton@apple.com [Thu, 10 May 2018 01:10:56 +0000 (01:10 +0000)]
Remove the unused HAVE_OS_ACTIVITY
https://bugs.webkit.org/show_bug.cgi?id=185501

Reviewed by Wenson Hsieh.

* config.h:

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

21 months agoAdd initial support for 'Cross-Origin-Options' HTTP response header
cdumez@apple.com [Thu, 10 May 2018 00:33:37 +0000 (00:33 +0000)]
Add initial support for 'Cross-Origin-Options' HTTP response header
https://bugs.webkit.org/show_bug.cgi?id=184996
<rdar://problem/39664620>

Reviewed by Geoff Garen.

Source/WebCore:

Add initial support for 'Cross-Origin-Options' HTTP response header behind an experimental
feature flag, on by default. When the HTTP server services this HTTP response header for a
main resource, we'll set these options on the corresponding Document. This will impact the
behavior of the Document's associated Window API when cross-origin.

The HTTP header has 3 possible values:
- allow: This is the default. Regular cross-origin Window API is available.
- allow-postmessage: Only postMessage() is available on a cross-origin window, trying to
  access anything else will throw a SecurityError.
- deny: Trying to do anything with a cross-origin window will throw a SecurityError.

The header has no effect when accessing same origin windows.

Note that on cross-origin access from Window A to Window B, we check the cross-origin
options for both Window A and Window B and use the lowest common denominator as effective
cross-origin options for the access. So if Window A has 'Cross-Origin-Options: deny' and
tries to call postMessage() on Window B which has 'Cross-Origin-Options: allow-postmessage',
we will throw a SecurityError. This is because Window A's more restrictive options (deny)
apply.

Tests: http/wpt/cross-origin-options/allow-postmessage-from-deny.html
       http/wpt/cross-origin-options/allow-postmessage.html
       http/wpt/cross-origin-options/cross-origin-options-header.html

* bindings/js/JSDOMBindingSecurity.cpp:
(WebCore::BindingSecurity::shouldAllowAccessToDOMWindowGivenMinimumCrossOriginOptions):
* bindings/js/JSDOMBindingSecurity.h:
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::effectiveCrossOriginOptionsForAccess):
(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlot):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):
* bindings/js/JSDOMWindowCustom.h:
* bindings/js/JSRemoteDOMWindowCustom.cpp:
(WebCore::JSRemoteDOMWindow::getOwnPropertySlot):
(WebCore::JSRemoteDOMWindow::getOwnPropertySlotByIndex):
(WebCore::JSRemoteDOMWindow::getOwnPropertyNames):
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateAttributeGetterBodyDefinition):
(GetCrossOriginsOptionsFromExtendedAttributeValue):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):
* bindings/scripts/IDLAttributes.json:
* dom/Document.cpp:
(WebCore::Document::setCrossOriginOptions):
* dom/Document.h:
(WebCore::Document::crossOriginOptions const):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didBeginDocument):
* page/AbstractDOMWindow.cpp:
(WebCore::AbstractDOMWindow::AbstractDOMWindow):
* page/AbstractDOMWindow.h:
(WebCore::AbstractDOMWindow::crossOriginOptions):
(WebCore::AbstractDOMWindow::setCrossOriginOptions):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::DOMWindow):
(WebCore::DOMWindow::didSecureTransitionTo):
* page/DOMWindow.idl:
* page/Frame.h:
* page/RemoteDOMWindow.cpp:
(WebCore::RemoteDOMWindow::RemoteDOMWindow):
* page/RemoteDOMWindow.h:
* page/Settings.yaml:
* platform/network/HTTPHeaderNames.in:
* platform/network/HTTPParsers.cpp:
(WebCore::parseCrossOriginOptionsHeader):
* platform/network/HTTPParsers.h:

Source/WebKit:

* Shared/WebPreferences.yaml:
Add this as an experimental feature, on by default.

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::frameBecameRemote):
Make sure we pass the cross-origin options from the local Window
to the remote one when transitioning.

LayoutTests:

Add layout test coverage.

* http/wpt/cross-origin-options/allow-postmessage-expected.txt: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny-expected.txt: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny.html: Added.
* http/wpt/cross-origin-options/allow-postmessage-from-deny.html.headers: Added.
* http/wpt/cross-origin-options/allow-postmessage.html: Added.
* http/wpt/cross-origin-options/cross-origin-options-header-expected.txt: Added.
* http/wpt/cross-origin-options/cross-origin-options-header.html: Added.
* http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html: Added.
* http/wpt/cross-origin-options/resources/cross-origin-options-allow-postmessage-pong.html.headers: Added.
* http/wpt/cross-origin-options/resources/serve-cross-origin-options-header.py: Added.

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

21 months agoRelease assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
rniwa@webkit.org [Thu, 10 May 2018 00:08:40 +0000 (00:08 +0000)]
Release assert in TreeScopeOrderedMap::remove via HTMLImageElement::removedFromAncestor
https://bugs.webkit.org/show_bug.cgi?id=185493

Reviewed by Brent Fulgham.

Source/WebCore:

Fixed the bug that HTMLImageElement::removedFromAncestor and HTMLMapElement::removedFromAncestor
were calling removeImageElementByUsemap on the document instead of the shadow tree from which it was removed.

Test: fast/images/imagemap-in-shadow-tree-removed.html

* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::removedFromAncestor):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::removedFromAncestor):

LayoutTests:

Added a regression test.

* fast/images/imagemap-in-shadow-tree-removed-expected.txt: Added.
* fast/images/imagemap-in-shadow-tree-removed.html: Added.

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

21 months agoAX: Hidden nodes which are not directly referenced should not participate name/descri...
jdiggs@igalia.com [Thu, 10 May 2018 00:06:49 +0000 (00:06 +0000)]
AX: Hidden nodes which are not directly referenced should not participate name/description from content
https://bugs.webkit.org/show_bug.cgi?id=185478

Reviewed by Chris Fleizach.

Source/WebCore:

Add a check to AccessibilityNodeObject::textUnderElement() and return early
if the node is hidden, not referenced by aria-labelledby or aria-describedby,
not an HTMLLabelElement, and not fallback content for an HTMLCanvasElement.

Test: accessibility/text-alternative-calculation-hidden-nodes.html

* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::textUnderElement const):

LayoutTests:

* accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.
* accessibility/text-alternative-calculation-hidden-nodes.html: Added.
* platform/gtk/accessibility/text-alternative-calculation-hidden-nodes-expected.txt: Added.

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

21 months agoSpeed up AbstractInterpreter::executeEdges
fpizlo@apple.com [Wed, 9 May 2018 23:31:14 +0000 (23:31 +0000)]
Speed up AbstractInterpreter::executeEdges
https://bugs.webkit.org/show_bug.cgi?id=185457

Reviewed by Saam Barati.

This patch started out with the desire to make executeEdges() faster by making filtering faster.
However, when I studied the disassembly, I found that there are many opportunities for
improvement and I implemented all of them:

- Filtering itself now has an inline fast path for when the filtering didn't change the value or
  for non-cells.

- Edge execution doesn't fast-forward anything if the filtering fast path would have succeeded,
  since fast-forwarding is only interesting for cells and only if we have a clobbered value.

- Similarly, edge verification doesn't need to fast-forward in the common case.

- A bunch of stuff related to Graph::doToChildren is now inlined properly.

- The edge doesn't even have to be considered for execution if it's UntypedUse.

That last bit was the trickiest. We had gotten into a bad habit of using SpecFullNumber in the
abstract interpreter. It's not correct to use SpecFullNumber in the abstract interpreter, because
it means proving that the value could either be formatted as a double (with impure NaN values),
or as any JSValue, or as an Int52. There is no value that could possibly hold all of those
states. This "worked" before because UntypedUse would filter this down to SpecBytecodeNumber. To
make it work again, I needed to fix all of those uses of SpecFullNumber. In the future, we need
to be careful about picking either SpecFullDouble (if returning a DoubleRep) or
SpecBytecodeNumber (if returning a JSValueRep).

But that fix revealed an amazing timeout in
stress/keep-checks-when-converting-to-lazy-js-constant-in-strength-reduction.js. We were getting
stuck in an OSR loop (baseline->DFG->FTL->baseline), all involving the same bytecode, without
ever realizing that we should jettison something. The problem was with how
triggerReoptimizationNow was getting the optimizedCodeBlock. It was trying to guess it by using
baselineCodeBlock->replacement(), but that's wrong for FTL-for-OSR-entry code blocks.

This is a 1% improvement in V8Spider-CompileTime.

* bytecode/ExitKind.cpp:
(JSC::exitKindMayJettison):
* dfg/DFGAbstractInterpreter.h:
(JSC::DFG::AbstractInterpreter::filterEdgeByUse):
(JSC::DFG::AbstractInterpreter::filterByType): Deleted.
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::AbstractInterpreterExecuteEdgesFunc):
(JSC::DFG::AbstractInterpreterExecuteEdgesFunc::operator() const):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEdges):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterByType):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeDoubleUnaryOpEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::filterSlow):
(JSC::DFG::AbstractValue::fastForwardToAndFilterSlow):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::fastForwardToAndFilter):
(JSC::DFG::AbstractValue::fastForwardToAndFilterUnproven):
(JSC::DFG::AbstractValue::makeTop):
* dfg/DFGAtTailAbstractState.h:
(JSC::DFG::AtTailAbstractState::fastForward):
(JSC::DFG::AtTailAbstractState::forNodeWithoutFastForward):
(JSC::DFG::AtTailAbstractState::fastForwardAndFilterUnproven):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::doToChildren):
* dfg/DFGInPlaceAbstractState.h:
(JSC::DFG::InPlaceAbstractState::fastForward):
(JSC::DFG::InPlaceAbstractState::fastForwardAndFilterUnproven):
(JSC::DFG::InPlaceAbstractState::forNodeWithoutFastForward):
* dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
* dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::handleExitCounts):
* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:

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

21 months ago[Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html somet...
wenson_hsieh@apple.com [Wed, 9 May 2018 23:15:49 +0000 (23:15 +0000)]
[Extra zoom mode] fast/viewport/extrazoom/viewport-change-min-device-width.html sometimes fails
https://bugs.webkit.org/show_bug.cgi?id=185490
<rdar://problem/40097629>

Reviewed by Tim Horton.

This test is currently flaky due to incorrect logic when computing the unobscured content rect, in the slice of
time after a frame load has been committed, and before the first visible content rect update from the UI process
after the frame load has been committed.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::viewportConfigurationChanged):

In the case where !m_hasReceivedVisibleContentRectsAfterDidCommitLoad, we try to set the unobscured content size
to be the view size divided by the initial scale. However, in extra zoom mode, `ViewportConfiguration`'s
`minimumLayoutSize()` is the layout size, which is larger than the size of the view by default, so dividing this
by the initial scale yields a bogus value. Instead, use `viewLayoutSize()` instead.

(WebKit::WebPage::updateViewportSizeForCSSViewportUnits):

We also try to divide the view size by the initial scale when computing the effective viewport size for `vw` and
`vh`. Additionally, fix the misleading name of a variable (largestUnobscuredRect) that stores a size.

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

21 months agoLayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
youenn@apple.com [Wed, 9 May 2018 23:13:59 +0000 (23:13 +0000)]
LayoutTests/http/tests/appcache/abort-cache-onchecking-manifest-404.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=185494

Reviewed by Geoffrey Garen.

Return the 404 to the manifest request after a delay so that aborting is done first.

* http/tests/appcache/abort-cache-onchecking-manifest-404-expected.txt:
* http/tests/appcache/abort-cache-onchecking-manifest-404.html:

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

21 months agoUpdate MediaSession to use release logging
eric.carlson@apple.com [Wed, 9 May 2018 23:02:29 +0000 (23:02 +0000)]
Update MediaSession to use release logging
https://bugs.webkit.org/show_bug.cgi?id=185376
<rdar://problem/40022203>

Reviewed by Youenn Fablet.

No new tests, tested manually.

* Modules/mediastream/MediaStream.h: hostingDocument() doesn't need to return a const Document.
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::hostingDocument const): Ditto.
* Modules/webaudio/AudioContext.h:

* html/HTMLMediaElement.h: Ditto.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::addBehaviorRestriction):
(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::dataLoadingPermitted const):
(WebCore::MediaElementSession::fullscreenPermitted const):
(WebCore::MediaElementSession::pageAllowsDataLoading const):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming const):
(WebCore::MediaElementSession::canShowControlsManager const):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets const):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled const):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::willLog const): Deleted.
(WebCore::MediaElementSession::logger const): Deleted.
(WebCore::MediaElementSession::logIdentifier const): Deleted.
(WebCore::MediaElementSession::logChannel const): Deleted.
* html/MediaElementSession.h:

* platform/audio/PlatformMediaSession.cpp:
(WebCore::nextLogIdentifier):
(WebCore::convertEnumerationToString):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::beginInterruption):
(WebCore::PlatformMediaSession::endInterruption):
(WebCore::PlatformMediaSession::clientWillBeginAutoplaying):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::pauseSession):
(WebCore::PlatformMediaSession::stopSession):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::logChannel const):
(WebCore::stateName): Deleted.
(WebCore::interruptionName): Deleted.
* platform/audio/PlatformMediaSession.h:
(WTF::LogArgument<WebCore::PlatformMediaSession::State>::toString):
(WTF::LogArgument<WebCore::PlatformMediaSession::InterruptionType>::toString):

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

21 months agoUpdate WebKit.WebsiteDataStoreCustomPaths after r231536
commit-queue@webkit.org [Wed, 9 May 2018 22:35:38 +0000 (22:35 +0000)]
Update WebKit.WebsiteDataStoreCustomPaths after r231536
https://bugs.webkit.org/show_bug.cgi?id=185486
<rdar://problem/37214391>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-09
Reviewed by Chris Dumez.

Update WebKit.WebsiteDataStoreCustomPaths as _syncNetworkProcessCookies is async now.

* TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:
(TEST):

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

21 months agoTest262-Runner: Improve the verbose output
commit-queue@webkit.org [Wed, 9 May 2018 22:22:12 +0000 (22:22 +0000)]
Test262-Runner: Improve the verbose output
https://bugs.webkit.org/show_bug.cgi?id=185491

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Michael Saboff.

* Scripts/test262/Import.pm:
(transferFiles):
* Scripts/test262/Runner.pm:
(processResult):

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

21 months agoFix Test262 Runner to have DYLD_FRAMEWORK_PATH always set
commit-queue@webkit.org [Wed, 9 May 2018 22:18:36 +0000 (22:18 +0000)]
Fix Test262 Runner to have DYLD_FRAMEWORK_PATH always set
https://bugs.webkit.org/show_bug.cgi?id=185488

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Michael Saboff.

* Scripts/test262/Runner.pm:
(processCLI):
(getBuildPath):
(runTest):

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

21 months ago[GStreamer] Never call updateTracks if running on legacy pipeline
commit-queue@webkit.org [Wed, 9 May 2018 22:04:54 +0000 (22:04 +0000)]
[GStreamer] Never call updateTracks if running on legacy pipeline
https://bugs.webkit.org/show_bug.cgi?id=184581

Source/WebCore:

This makes sure failling code path is never reached in the conditions where it should not have been reached.

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

Re enables all tests that were disabled after fixing.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

LayoutTests:

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

https://bugs.webkit.org/show_bug.cgi?id=185252

* platform/gtk/TestExpectations:

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

21 months agoUnreviewed gardening for WinCairo LayoutTests.
ross.kirsling@sony.com [Wed, 9 May 2018 21:59:44 +0000 (21:59 +0000)]
Unreviewed gardening for WinCairo LayoutTests.

* platform/wincairo/TestExpectations:
* platform/wincairo/css3/filters/effect-brightness-clamping-expected.txt:
* platform/wincairo/css3/filters/effect-brightness-expected.txt:
* platform/wincairo/editing/deleting/5126166-expected.txt:
* platform/wincairo/editing/deleting/5206311-1-expected.txt:
* platform/wincairo/editing/deleting/5433862-2-expected.txt:
* platform/wincairo/editing/deleting/5483370-expected.txt:

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

21 months agoRestrict unarchiving of bundle parameters to a set of known classes
bfulgham@apple.com [Wed, 9 May 2018 21:55:25 +0000 (21:55 +0000)]
Restrict unarchiving of bundle parameters to a set of known classes
https://bugs.webkit.org/show_bug.cgi?id=185489
<rdar://problem/21912401>

Reviewed by Ryosuke Niwa.

Stop accepting anything derived from NSObject, and instead only agree to unarchive objects
from a set of things we actually pass as InjectedBundle parameters.

* WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
(WebKit::InjectedBundle::setBundleParameter):

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

21 months agoREGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is...
dbates@webkit.org [Wed, 9 May 2018 21:48:38 +0000 (21:48 +0000)]
REGRESSION (r231479): http/tests/appcache/x-frame-options-prevents-framing.php is timing out
https://bugs.webkit.org/show_bug.cgi?id=185443
<rdar://problem/40100660>

Reviewed by Andy Estes.

Source/WebCore:

Following r231479 when using WebKit2 and Restricted HTTP Response Access is enabled (enabled in
WebKitTestRunner) we only check the CSP frame-ancestors directive and X-Frame-Options in
NetworkProcess. We need to check these security requirements in WebContent process whenever
we are performing a substitute data load, such as for app cache, as these loads do not go
through NetworkProcess.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::responseReceived):

LayoutTests:

Unskip test now that it no longer times out.

* platform/wk2/TestExpectations:

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

21 months agoRange bisector should check the commits for repositories without change in specified...
dewei_zhu@apple.com [Wed, 9 May 2018 20:58:27 +0000 (20:58 +0000)]
Range bisector should check the commits for repositories without change in specified range.
https://bugs.webkit.org/show_bug.cgi?id=185269

Reviewed by Ryosuke Niwa.

For repositories without a change in the specified range, we still need to use them to filter commit
sets. Before this change, code does not apply filtering by those repositories against commit set. As
a result, commit sets with different commits for those repositories may be chosen as bisecting commit set.

* public/v3/commit-set-range-bisector.js: Updated the logic to verify range for repositories without
change in range.
(CommitSetRangeBisector.async.commitSetClosestToMiddleOfAllCommits):
* unit-tests/commit-set-range-bisector-tests.js: Added a unit test to guard against this change.

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

21 months ago[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
commit-queue@webkit.org [Wed, 9 May 2018 20:31:13 +0000 (20:31 +0000)]
[Cocoa] Some fields are not identified as [WKWebProcessPlugInNodeHandle isTextField]
https://bugs.webkit.org/show_bug.cgi?id=185260
<rdar://problem/39290394>

Source/WebKit:

INPUT element are not considered to be text fields when
calling -[WKWebProcessPlugInNodeHandle isTextField]
when they are of type number.

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

* WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
(WebKit::InjectedBundleNodeHandle::isTextField const):

Tools:

Patch by Richard Houle <rhoule@apple.com> on 2018-05-09
Reviewed by Tim Horton.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/InjectedBundleNodeHandleIsTextField.mm: Added.
(-[InjectedBundleNodeHandleIsTextField isTextFieldForHTMLInputType:document:jsContext:]):
(-[InjectedBundleNodeHandleIsTextField webProcessPlugIn:didCreateBrowserContextController:]):
* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[InjectedBundleNodeHandleIsTextFieldDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

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

21 months agoSource/WebCore:
commit-queue@webkit.org [Wed, 9 May 2018 20:24:23 +0000 (20:24 +0000)]
Source/WebCore:
Hooked up ASTC support in WebGL; requires OpenGL ES 3 context to work.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

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

Also added in Khronos' ASTC test from version 1.0.4 beta of their conformance test suite,
although again, this requires OpenGL ES 3 context for WebKit to detect proper support.

Test: fast/canvas/webgl/webgl-compressed-texture-astc.html

* DerivedSources.make:
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMConvertWebGL.cpp:
(WebCore::convertToJSValue):
* html/canvas/WebGL2RenderingContext.cpp:
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):
* html/canvas/WebGLCompressedTextureASTC.cpp: Added.
(WebCore::WebGLCompressedTextureASTC::WebGLCompressedTextureASTC):
(WebCore::WebGLCompressedTextureASTC::getName const):
(WebCore::WebGLCompressedTextureASTC::supported):
(WebCore::WebGLCompressedTextureASTC::getSupportedProfiles):
* html/canvas/WebGLCompressedTextureASTC.h: Added.
* html/canvas/WebGLCompressedTextureASTC.idl: Added.
* html/canvas/WebGLExtension.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):
* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::validateCompressedTexFuncData):
(WebCore::WebGLRenderingContextBase::validateCompressedTexDimensions):
* html/canvas/WebGLRenderingContextBase.h:
* platform/graphics/Extensions3D.h:

LayoutTests:
Added Khronos conformance test for ASTC compressed texture support.
https://bugs.webkit.org/show_bug.cgi?id=185272
<rdar://problem/15745737>

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

This requires OpenGL ES 3 context for WebKit to detect proper support.

* fast/canvas/webgl/resources/js-test-post.js: Added.
* fast/canvas/webgl/resources/js-test-pre.js: Added.
* fast/canvas/webgl/resources/js-test-style.css: Added.
* fast/canvas/webgl/resources/webgl-test-utils-khr.js: Added.
* fast/canvas/webgl/webgl-compressed-texture-astc-expected.txt: Added.
* fast/canvas/webgl/webgl-compressed-texture-astc.html: Added.

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

21 months agoAdd JSVirtualMachine SPI to shrink the memory footprint of the VM
sbarati@apple.com [Wed, 9 May 2018 20:11:31 +0000 (20:11 +0000)]
Add JSVirtualMachine SPI to shrink the memory footprint of the VM
https://bugs.webkit.org/show_bug.cgi?id=185441
<rdar://problem/39999414>

Reviewed by Keith Miller.

This patch adds JSVirtualMachine SPI to release as much memory as possible.
The SPI does:
- Deletes all code caches.
- Synchronous GC.
- Run the scavenger.

* API/JSVirtualMachine.mm:
(-[JSVirtualMachine shrinkFootprint]):
* API/JSVirtualMachinePrivate.h: Added.
* API/tests/testapi.mm:
(testObjectiveCAPIMain):
* JavaScriptCore.xcodeproj/project.pbxproj:
* runtime/VM.cpp:
(JSC::VM::shrinkFootprint):
* runtime/VM.h:

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

21 months agoAllow WebResourceLoader to cancel a load served from a service worker
youenn@apple.com [Wed, 9 May 2018 19:59:46 +0000 (19:59 +0000)]
Allow WebResourceLoader to cancel a load served from a service worker
https://bugs.webkit.org/show_bug.cgi?id=185274

Reviewed by Chris Dumez.

Source/WebCore:

Add support for cancelling a fetch from WebProcess to service worker process.
Use FetchIdentifier instead of uint64_t.

* Modules/fetch/FetchIdentifier.h: Added.
* WebCore.xcodeproj/project.pbxproj:
* workers/service/context/ServiceWorkerFetch.h:
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::startFetch):
(WebCore::ServiceWorkerThreadProxy::cancelFetch):
* workers/service/context/ServiceWorkerThreadProxy.h:

Source/WebKit:

Use FetchIdentifier instead of uint64_t.
Add IPC support for cancelling a fetch from WebProcess to service worker process.
Ask service worker process to cancel the fetch when its corresponding WebResourceLoader is cancelled.
No change of behavior as once a WebResourceLoader is cancelled, any related IPC is not processed.
A follow-up patch should try to cancel the FetchResponse load, meaning to either cancel the network load
or to abort reading the readable stream.

* Scripts/webkit/messages.py:
* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didFailFetch):
(WebKit::StorageProcess::didNotHandleFetch):
(WebKit::StorageProcess::didReceiveFetchResponse):
(WebKit::StorageProcess::didReceiveFetchData):
(WebKit::StorageProcess::didReceiveFetchFormData):
(WebKit::StorageProcess::didFinishFetch):
* StorageProcess/StorageProcess.h:
* StorageProcess/StorageProcess.messages.in:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::remove):
* WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::create):
(WebKit::ServiceWorkerClientFetch::ServiceWorkerClientFetch):
(WebKit::ServiceWorkerClientFetch::start):
(WebKit::ServiceWorkerClientFetch::cancel):
* WebProcess/Storage/ServiceWorkerClientFetch.h:
* WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::startFetch):
(WebKit::WebSWClientConnection::cancelFetch):
* WebProcess/Storage/WebSWClientConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::cancelFetch):
(WebKit::WebSWContextManagerConnection::startFetch):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.messages.in:
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::WebServiceWorkerFetchTaskClient):
(WebKit::WebServiceWorkerFetchTaskClient::cancel):
* WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
* WebProcess/Storage/WebServiceWorkerProvider.cpp:
(WebKit::WebServiceWorkerProvider::handleFetch):
(WebKit::WebServiceWorkerProvider::cancelFetch):
(WebKit::WebServiceWorkerProvider::fetchFinished):
* WebProcess/Storage/WebServiceWorkerProvider.h:

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

21 months ago[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess
commit-queue@webkit.org [Wed, 9 May 2018 19:14:02 +0000 (19:14 +0000)]
[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess
https://bugs.webkit.org/show_bug.cgi?id=185481

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

[tests][GStreamer]: Pass USE_PLAYBIN3 to the tests subprocess

* Scripts/webkitpy/port/gtk.py:
(GtkPort.setup_environ_for_server):

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

21 months ago[iOS] Consider the annotation bounds when positioning action sheets near long-pressed...
aestes@apple.com [Wed, 9 May 2018 19:08:30 +0000 (19:08 +0000)]
[iOS] Consider the annotation bounds when positioning action sheets near long-pressed PDF links
https://bugs.webkit.org/show_bug.cgi?id=185472
<rdar://problem/39967092>

Reviewed by Daniel Bates.

Adopted new PDFHostViewControllerDelegate methods that include annotation rects
when URLs and page indices are long-pressed. This allows us to avoid obscuring
annotations when positioning action sheet popovers.

We also no longer need to convert the press location into host view coordinate
space, as PDFKit now does that for us.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _showActionSheetForURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:withAnnotationRect:]):
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:withAnnotationRect:]):
(-[WKPDFView _showActionSheetForURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressURL:atLocation:]): Deleted.
(-[WKPDFView pdfHostViewController:didLongPressPageIndex:atLocation:]): Deleted.

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

21 months ago[GStreamer] Fix style issue in MediaPlayerPrivateGStreamer
commit-queue@webkit.org [Wed, 9 May 2018 19:01:44 +0000 (19:01 +0000)]
[GStreamer] Fix style issue in MediaPlayerPrivateGStreamer
https://bugs.webkit.org/show_bug.cgi?id=185479

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

ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:114:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:194:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:398:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:440:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:806:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:869:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:880:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:940:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1102:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1109:  Multi line control clauses should use braces.  [whitespace/braces] [4]

Indentation and style issue fixed only.

* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::textChangedCallback):
(WebCore::MediaPlayerPrivateGStreamer::buffered const):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):

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

21 months agoREGRESSION (r231479): com.apple.WebCore crash in WebCore::DocumentLoader::stopLoading...
dbates@webkit.org [Wed, 9 May 2018 18:42:05 +0000 (18:42 +0000)]
REGRESSION (r231479): com.apple.WebCore crash in WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied()
https://bugs.webkit.org/show_bug.cgi?id=185475
<rdar://problem/40093853>

Reviewed by Andy Estes.

DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() must extends its lifetime
until completion as dispatching a DOM load event at the associated frame can cause JavaScript execution
that can do anything, including destroying the loader that dispatched the event.

Following r231479 DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() is now
invoked by both DocumentLoader::responseReceived() and WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
The latter only can happen when using WebKit2 and the experimental feature Restricted HTTP Response Access
is enabled (RuntimeEnabledFeatures::sharedFeatures().restrictedHTTPResponseAccess()). Unlike DocumentLoader::responseReceived()
WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() does not take out a ref
on the DocumentLoader before invoking DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().
Therefore, DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied() can cause its
own destruction as a result of dispatching a DOM load event at the frame. We should take out a ref on
the DocumentLoader when executing DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied().

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

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

21 months agoFix the build by ignoring some deprecation warnings
timothy_horton@apple.com [Wed, 9 May 2018 18:31:24 +0000 (18:31 +0000)]
Fix the build by ignoring some deprecation warnings

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldDisableSleep):

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

21 months agoUnflake some additional AppCache tests
youenn@apple.com [Wed, 9 May 2018 18:02:32 +0000 (18:02 +0000)]
Unflake some additional AppCache tests
https://bugs.webkit.org/show_bug.cgi?id=185467

Reviewed by Alex Christensen.

Remove JS console logging for two tests that are testing crash scenarios.
Increase the time it takes to load appcache entries so that aborting
is done prior entry loading completion for two other tests.

* TestExpectations:
* http/tests/appcache/deferred-events-delete-while-raising-expected.txt:
* http/tests/appcache/deferred-events-delete-while-raising-timer-expected.txt:
* http/tests/appcache/resources/abort-cache-onprogress.manifest:
* http/tests/appcache/resources/not-exist.vob.php:

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

21 months ago[iOS] Tell PDFHostViewController when animated resizes begin and end
aestes@apple.com [Wed, 9 May 2018 17:30:39 +0000 (17:30 +0000)]
[iOS] Tell PDFHostViewController when animated resizes begin and end
https://bugs.webkit.org/show_bug.cgi?id=185477
<rdar://problem/39875372>

Reviewed by Anders Carlsson.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _endAnimatedResize]):
* UIProcess/Cocoa/WKWebViewContentProvider.h:
* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView web_beginAnimatedResize]):
(-[WKPDFView web_endAnimatedResize]):

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

21 months ago[JSC] Fix ArraySpeciesCreate to return a new Array when the given object is not an...
commit-queue@webkit.org [Wed, 9 May 2018 17:29:39 +0000 (17:29 +0000)]
[JSC] Fix ArraySpeciesCreate to return a new Array when the given object is not an array
Error found in the following Test262 tests:

- test/built-ins/Array/prototype/slice/create-non-array-invalid-len.js
- test/built-ins/Array/prototype/slice/create-proxied-array-invalid-len.js
- test/built-ins/Array/prototype/splice/create-species-undef-invalid-len.js

The ArraySpeciesCreate should throw a RangeError with non-Array custom objects
presenting a length > 2**32-1
https://bugs.webkit.org/show_bug.cgi?id=185476

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

* runtime/ArrayPrototype.cpp:

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

21 months agoSet build.webkit.org to use the new Test262-runner
commit-queue@webkit.org [Wed, 9 May 2018 17:06:23 +0000 (17:06 +0000)]
Set build.webkit.org to use the new Test262-runner
https://bugs.webkit.org/show_bug.cgi?id=184933

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-09
Reviewed by Aakash Jain.

* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunTest262Tests):
(RunTest262Tests.countFailures):
* BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:

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

21 months ago[GTK][JHBuild] LLVM 3.7.0 build is broken with GCC 8.1
commit-queue@webkit.org [Wed, 9 May 2018 17:02:56 +0000 (17:02 +0000)]
[GTK][JHBuild] LLVM 3.7.0 build is broken with GCC 8.1
https://bugs.webkit.org/show_bug.cgi?id=185461

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-05-09
Reviewed by Michael Catanzaro.

JHBuild now compiles LLVM 6 and Mesa 18.0.3.

* gtk/jhbuild.modules:

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

21 months agoUnreviewed. Bump WPE soname for good measure.
mcatanzaro@igalia.com [Wed, 9 May 2018 16:43:08 +0000 (16:43 +0000)]
Unreviewed. Bump WPE soname for good measure.

* Source/cmake/OptionsWPE.cmake:

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

21 months agoUnreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release.
mcatanzaro@igalia.com [Wed, 9 May 2018 16:26:17 +0000 (16:26 +0000)]
Unreviewed. Update OptionsWPE.cmake and NEWS for 2.21.1 release.

.:

* Source/cmake/OptionsWPE.cmake: Bump version numbers.

Source/WebKit:

* wpe/NEWS: Added. Add release notes for 2.21.1.

Tools:

* wpe/manifest.txt.in: Distribute the NEWS.

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

21 months ago[WPE] Build cleanly with GCC 8 and ICU 60
mcatanzaro@igalia.com [Wed, 9 May 2018 16:21:09 +0000 (16:21 +0000)]
[WPE] Build cleanly with GCC 8 and ICU 60
https://bugs.webkit.org/show_bug.cgi?id=185462

Reviewed by Carlos Alberto Lopez Perez.

Source/JavaScriptCore:

* API/glib/JSCClass.cpp: Silence many -Wcast-function-type warnings.
(jsc_class_add_constructor):
(jsc_class_add_method):
* API/glib/JSCValue.cpp: Silence many -Wcast-function-type warnings.
(jsc_value_object_define_property_accessor):
(jsc_value_new_function):
* CMakeLists.txt: Build BuiltinNames.cpp with -fno-var-tracking-assignments. This was a
problem with GCC 7 too, but might as well fix it now.
* assembler/ProbeContext.h:
(JSC::Probe::CPUState::gpr const): Silence a -Wclass-memaccess warning.
(JSC::Probe::CPUState::spr const): Ditto. Assume std::remove_const is safe to clobber.
* b3/air/AirArg.h:
(JSC::B3::Air::Arg::isRepresentableAs): Silence -Wfallthrough warning.
* builtins/BuiltinNames.cpp:
(JSC::BuiltinNames::BuiltinNames): Moved from BuiltinNames.h so we can use a special flag.
* builtins/BuiltinNames.h:
(JSC::BuiltinNames::BuiltinNames): Moved to BuiltinNames.cpp.
* dfg/DFGDoubleFormatState.h:
(JSC::DFG::mergeDoubleFormatStates): Silence -Wfallthrough warnings.
* heap/MarkedBlockInlines.h:
(JSC::MarkedBlock::Handle::finishSweepKnowingHeapCellType): Silence -Wfallthrough warnings.
* runtime/ConfigFile.cpp:
(JSC::ConfigFile::canonicalizePaths): Here GCC found a genuine mistake, strncat is called
with the wrong length parameter and the result is not null-terminated. Also, silence a
-Wstringop-truncation warning as we intentionally truncate filenames that exceed PATH_MAX.
* runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::partTypeString): Avoid an ICU deprecation warning.
* runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::init): We were unconditionally running some BigInt code by accident.
(JSC::JSGlobalObject::visitChildren): Probably a serious bug? Fixed.

Source/ThirdParty:

* xdgmime/CMakeLists.txt: Silence -Wno-cast-function-type. I'm not fighting xdg-mime.

Source/WebCore:

* PlatformGTK.cmake: Include directories are in the wrong place.
* accessibility/AXObjectCache.cpp: Silence -Wclass-memaccess problems and leave warnings.
(WebCore::AXObjectCache::startOrEndTextMarkerDataForRange):
(WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
(WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
(WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
* css/CSSFontFace.cpp: Silence -Wfallthrough
(WebCore::CSSFontFace::fontLoadTiming const):
* css/CSSSelectorList.cpp: Silence -Wclass-memaccess, this one is intentional.
(WebCore::CSSSelectorList::adoptSelectorVector):
* editing/TextIterator.cpp: Silence ICU deprecation warnings.
* platform/Length.h:
(WebCore::Length::operator=): More -Wclass-memaccess, looks benign.
* platform/graphics/Gradient.cpp:
(WebCore::Gradient::hash const): -Wclass-memaccess again. Leave a warning.
* platform/graphics/SurrogatePairAwareTextIterator.cpp: Silence ICU deprecation warnings.
* platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
(WebCore::FontCascade::fontForCombiningCharacterSequence const): Silence ICU deprecation.
* platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp:
(WebCore::FontCustomPlatformData::FontCustomPlatformData): Silence -Wcast-function-type.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore::Font::canRenderCombiningCharacterSequence const): Silence ICU deprecation.
* platform/graphics/gstreamer/GstAllocatorFastMalloc.cpp:
(gstAllocatorFastMallocMemUnmap): Fix -Wcast-function-type.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::updateTracks): Fix bad printf.
(WebCore::MediaPlayerPrivateGStreamer::enableTrack): Another bad printf.
(WebCore::findHLSQueue): Fix -Wcast-function-type.
* platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
(webKitMediaClearKeyDecryptorDecrypt): Fix another bad printf.
* platform/network/soup/SocketStreamHandleImplSoup.cpp: Silence -Wcast-function-type.
(WebCore::SocketStreamHandleImpl::beginWaitingForSocketWritability):
* platform/text/TextEncoding.cpp: Silence ICU deprecration.

Source/WebKit:

* Platform/IPC/glib/GSocketMonitor.cpp:
(IPC::GSocketMonitor::start): Silence -Wcast-function-type warning.
* Shared/API/glib/WebKitContextMenu.cpp:
(webkit_context_menu_new_with_items): Ditto.

Source/WTF:

* wtf/HashTable.h:
(WTF::HashTableBucketInitializer<true>::initialize): Since -Wclass-memaccess warning. This
is probably safe enough, since it's for an empty bucket.
* wtf/StdLibExtras.h:
(WTF::bitwise_cast): Silence -Wclass-memaccess as we use type traits to ensure safety here.
* wtf/Vector.h: Ditto, all uses are safe.
* wtf/glib/WTFGType.h: Silence -Wcast-function-type.

Tools:

* TestWebKitAPI/CMakeLists.txt: Fix weird build failure, we were missing a directory. Not
sure why this was never noticed until now or why the bots are OK.
* gtk/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
* gtk/patches/glib-cast-function-type.patch: Added.
* wpe/jhbuild.modules: Add upstream patch to avoid warnings inside G_DEFINE_TYPE.
* wpe/patches/glib-cast-function-type.patch: Added.

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

21 months agoVersioning.
jmarcell@apple.com [Wed, 9 May 2018 16:19:55 +0000 (16:19 +0000)]
Versioning.

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

21 months ago[ARMv7] Drop ARMv7 disassembler in favor of capstone
utatane.tea@gmail.com [Wed, 9 May 2018 15:43:49 +0000 (15:43 +0000)]
[ARMv7] Drop ARMv7 disassembler in favor of capstone
https://bugs.webkit.org/show_bug.cgi?id=185423

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This patch removes ARMv7Disassembler in our tree.
We already adopted Capstone, and it is already used in ARMv7 JIT environments.

* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* disassembler/ARMv7/ARMv7DOpcode.cpp: Removed.
* disassembler/ARMv7/ARMv7DOpcode.h: Removed.
* disassembler/ARMv7Disassembler.cpp: Removed.

Source/WTF:

Remove USE_ARMV7_DISASSEMBLER. Just use Capstone.

* wtf/Platform.h:

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

21 months agoSVG lighting colors need to be converted into linearSRGB
simon.fraser@apple.com [Wed, 9 May 2018 15:21:59 +0000 (15:21 +0000)]
SVG lighting colors need to be converted into linearSRGB
https://bugs.webkit.org/show_bug.cgi?id=181196

Reviewed by Darin Adler.

Address post-commit comments. Don't make a Color that contains linearRGB components,
but use FloatComponents instead. Since these FloatComponents are in the 0-1 range,
FELighting::setPixelInternal() needs to multiply by 255 since the output pixels are
8-bit 0-255.

Change linearToSRGBColorComponent() and sRGBToLinearColorComponent() to do math in
floats without promoting to doubles.

* platform/graphics/ColorUtilities.cpp:
(WebCore::FloatComponents::FloatComponents):
(WebCore::linearToSRGBColorComponent):
(WebCore::sRGBToLinearColorComponent):
(WebCore::sRGBColorToLinearComponents):
(WebCore::linearToSRGBColor): Deleted.
(WebCore::sRGBToLinearColor): Deleted.
* platform/graphics/ColorUtilities.h:
* platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::setPixelInternal):
(WebCore::FELighting::drawLighting):

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

21 months agoUse StyleColor::Options in more places.
timothy@apple.com [Wed, 9 May 2018 15:17:09 +0000 (15:17 +0000)]
Use StyleColor::Options in more places.

https://bugs.webkit.org/show_bug.cgi?id=185458
rdar://problem/39853798

Add UseDefaultAppearance to StyleColor::Options, to avoid passing yet another
boolean on some of these functions.

Reviewed by Tim Horton.

* css/MediaQueryEvaluator.cpp:
* css/StyleColor.h:
* dom/Document.cpp:
(WebCore::Document::useDefaultAppearance const):
(WebCore::Document::styleColorOptions const):
* dom/Document.h:
* platform/Theme.cpp:
(WebCore::Theme::paint):
* platform/Theme.h:
* platform/mac/LocalDefaultSystemAppearance.h:
* platform/mac/LocalDefaultSystemAppearance.mm:
(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
* platform/mac/ThemeMac.h:
* platform/mac/ThemeMac.mm:
(WebCore::paintToggleButton):
(WebCore::paintButton):
(WebCore::ThemeMac::ensuredView):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):
(WebCore::ThemeMac::paint):
(-[WebCoreThemeView initWithUseSystemAppearance:]): Deleted.
* platform/wpe/ThemeWPE.cpp:
(WebCore::ThemeWPE::paint):
* platform/wpe/ThemeWPE.h:
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemBackground):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::inactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderTheme::platformInactiveListBoxSelectionBackgroundColor const):
* rendering/RenderTheme.h:
* rendering/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor const):
* rendering/RenderThemeGtk.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::documentViewFor const):
(WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
(WebCore::RenderThemeMac::systemColor const):
(WebCore::RenderThemeMac::paintCellAndSetFocusedElementNeedsRepaintIfNecessary):
(WebCore::RenderThemeMac::paintSliderThumb):

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

21 months ago[Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin...
pvollan@apple.com [Wed, 9 May 2018 14:27:46 +0000 (14:27 +0000)]
[Win] The test http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=185471

Unreviewed test gardening.

* platform/win/TestExpectations:

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

21 months ago[MIPS] Optimize generated JIT code using r2
commit-queue@webkit.org [Wed, 9 May 2018 14:17:01 +0000 (14:17 +0000)]
[MIPS] Optimize generated JIT code using r2
https://bugs.webkit.org/show_bug.cgi?id=184584

Patch by Srdjan Lazarevic <srdjan.lazarevic@rt-rk.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

EXT and MFHC1 instructions from MIPSR2 implemented and used where it is possible.
Also, done some code size optimizations that were discovered in meantime.

* assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::ext):
(JSC::MIPSAssembler::mfhc1):
* assembler/MacroAssemblerMIPS.cpp:
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::isPowerOf2):
(JSC::MacroAssemblerMIPS::bitPosition):
(JSC::MacroAssemblerMIPS::loadAddress):
(JSC::MacroAssemblerMIPS::getEffectiveAddress):
(JSC::MacroAssemblerMIPS::load8):
(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load32):
(JSC::MacroAssemblerMIPS::load16Unaligned):
(JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords):
(JSC::MacroAssemblerMIPS::load16):
(JSC::MacroAssemblerMIPS::load16SignedExtendTo32):
(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::store16):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::branchTest32):
(JSC::MacroAssemblerMIPS::loadFloat):
(JSC::MacroAssemblerMIPS::loadDouble):
(JSC::MacroAssemblerMIPS::storeFloat):
(JSC::MacroAssemblerMIPS::storeDouble):

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

21 months ago[JSC][GTK][JSCONLY] Use capstone disassembler
utatane.tea@gmail.com [Wed, 9 May 2018 11:42:09 +0000 (11:42 +0000)]
[JSC][GTK][JSCONLY] Use capstone disassembler
https://bugs.webkit.org/show_bug.cgi?id=185283

Reviewed by Michael Catanzaro.

.:

* Source/CMakeLists.txt:
* Source/cmake/FindLLVM.cmake: Removed.
* Source/cmake/OptionsCommon.cmake:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Instead of adding MIPS disassembler baked by ourselves, we import capstone disassembler.
And use capstone disassembler for MIPS, ARM, and ARMv7 in GTK, WPE, WinCairo and JSCOnly ports.

And we remove ARM LLVM disassembler.

Capstone is licensed under 3-clause BSD, which is acceptable in WebKit tree.

* CMakeLists.txt:
* Sources.txt:
* disassembler/ARMLLVMDisassembler.cpp: Removed.
* disassembler/CapstoneDisassembler.cpp: Added.
(JSC::tryToDisassemble):

Source/ThirdParty:

Add capstone to ThirdParty. We build capstone as a static library,
and link it against JSC. We only build disassembler for target architecture.
So for MIPS target, we only enable MIPS part of capstone.

We also remove unnecessary architectures in capstone, XCore, PowerPC, SystemZ, etc.
This is simply done by deleting these architecture directories.

We pick "next" branch instead of "master" branch since "next" branch is actively
developed.

* capstone/CMakeLists.txt: Added.
* capstone/Source/.appveyor.yml: Added.
* capstone/Source/.gitattributes: Added.
* capstone/Source/.gitignore: Added.
* capstone/Source/.travis.yml: Added.
* capstone/Source/CMakeLists.txt: Added.
* capstone/Source/COMPILE.TXT: Added.
* capstone/Source/COMPILE_CMAKE.TXT: Added.
* capstone/Source/COMPILE_MSVC.TXT: Added.
* capstone/Source/CREDITS.TXT: Added.
* capstone/Source/ChangeLog-capstone: Added.
* capstone/Source/HACK.TXT: Added.
* capstone/Source/LEB128.h: Added.
(decodeULEB128):
* capstone/Source/LICENSE.TXT: Added.
* capstone/Source/LICENSE_LLVM.TXT: Added.
* capstone/Source/MCDisassembler.h: Added.
* capstone/Source/MCFixedLenDisassembler.h: Added.
* capstone/Source/MCInst.c: Added.
(MCInst_Init):
(MCInst_clear):
(MCInst_insert0):
(MCInst_setOpcode):
(MCInst_setOpcodePub):
(MCInst_getOpcode):
(MCInst_getOpcodePub):
(MCInst_getOperand):
(MCInst_getNumOperands):
(MCInst_addOperand2):
(MCOperand_Init):
(MCOperand_isValid):
(MCOperand_isReg):
(MCOperand_isImm):
(MCOperand_isFPImm):
(MCOperand_getReg):
(MCOperand_setReg):
(MCOperand_getImm):
(MCOperand_setImm):
(MCOperand_getFPImm):
(MCOperand_setFPImm):
(MCOperand_CreateReg1):
(MCOperand_CreateReg0):
(MCOperand_CreateImm1):
(MCOperand_CreateImm0):
* capstone/Source/MCInst.h: Added.
* capstone/Source/MCInstrDesc.c: Added.
(MCOperandInfo_isPredicate):
(MCOperandInfo_isOptionalDef):
* capstone/Source/MCInstrDesc.h: Added.
* capstone/Source/MCRegisterInfo.c: Added.
(MCRegisterInfo_InitMCRegisterInfo):
(DiffListIterator_init):
(DiffListIterator_getVal):
(DiffListIterator_next):
(DiffListIterator_isValid):
(MCRegisterInfo_getMatchingSuperReg):
(MCRegisterInfo_getSubReg):
(MCRegisterInfo_getRegClass):
(MCRegisterClass_contains):
* capstone/Source/MCRegisterInfo.h: Added.
* capstone/Source/Makefile: Added.
* capstone/Source/MathExtras.h: Added.
(Hi_32):
(Lo_32):
(isUIntN):
(isMask_32):
(isMask_64):
(isShiftedMask_32):
(isShiftedMask_64):
(isPowerOf2_32):
(CountLeadingZeros_32):
(CountLeadingOnes_32):
(CountLeadingZeros_64):
(CountLeadingOnes_64):
(CountTrailingZeros_32):
(CountTrailingOnes_32):
(CountTrailingZeros_64):
(CountTrailingOnes_64):
(CountPopulation_32):
(CountPopulation_64):
(Log2_32):
(Log2_64):
(Log2_32_Ceil):
(Log2_64_Ceil):
(GreatestCommonDivisor64):
(BitsToDouble):
(BitsToFloat):
(DoubleToBits):
(FloatToBits):
(MinAlign):
(NextPowerOf2):
(RoundUpToAlignment):
(OffsetToAlignment):
(abs64):
(SignExtend32):
(SignExtend64):
(countLeadingZeros):
* capstone/Source/README.md: Added.
* capstone/Source/RELEASE_NOTES: Added.
* capstone/Source/SStream.c: Added.
(SStream_Init):
(SStream_concat0):
(SStream_concat):
(printInt64Bang):
(printUInt64Bang):
(printInt64):
(printInt32BangDec):
(printInt32Bang):
(printInt32):
(printUInt32Bang):
(printUInt32):
* capstone/Source/SStream.h: Added.
* capstone/Source/TODO: Added.
* capstone/Source/arch/ARM/ARMAddressingModes.h: Added.
(ARM_AM_getAddrOpcStr):
(ARM_AM_getShiftOpcStr):
(ARM_AM_getShiftOpcEncoding):
(ARM_AM_getAMSubModeStr):
(rotr32):
(rotl32):
(getSORegOpc):
(getSORegOffset):
(ARM_AM_getSORegShOp):
(getSOImmValImm):
(getSOImmValRot):
(getSOImmValRotate):
(getSOImmVal):
(isSOImmTwoPartVal):
(getSOImmTwoPartFirst):
(getSOImmTwoPartSecond):
(getThumbImmValShift):
(isThumbImmShiftedVal):
(getThumbImm16ValShift):
(isThumbImm16ShiftedVal):
(getThumbImmNonShiftedVal):
(getT2SOImmValSplatVal):
(getT2SOImmValRotateVal):
(getT2SOImmVal):
(getT2SOImmValRotate):
(isT2SOImmTwoPartVal):
(getT2SOImmTwoPartFirst):
(getT2SOImmTwoPartSecond):
(ARM_AM_getAM2Opc):
(getAM2Offset):
(getAM2Op):
(getAM2ShiftOpc):
(getAM2IdxMode):
(getAM3Opc):
(getAM3Offset):
(getAM3Op):
(getAM3IdxMode):
(getAM4SubMode):
(getAM4ModeImm):
(ARM_AM_getAM5Opc):
(ARM_AM_getAM5Offset):
(ARM_AM_getAM5Op):
(createNEONModImm):
(getNEONModImmOpCmode):
(getNEONModImmVal):
(ARM_AM_decodeNEONModImm):
(getFPImmFloat):
* capstone/Source/arch/ARM/ARMBaseInfo.h: Added.
(ARMCC_getOppositeCondition):
(ARMCC_ARMCondCodeToString):
(ARM_PROC_IFlagsToString):
(ARM_PROC_IModToString):
(ARM_MB_MemBOptToString):
(ARM_ISB_InstSyncBOptToString):
(isARMLowRegister):
(ARMII_AddrModeToString):
* capstone/Source/arch/ARM/ARMDisassembler.c: Added.
(ITStatus_push_back):
(ITStatus_instrInITBlock):
(ITStatus_instrLastInITBlock):
(ITStatus_getITCC):
(ITStatus_advanceITState):
(ITStatus_setITState):
(Check):
(ARM_getFeatureBits):
(DecodePredicateOperand):
(ARM_init):
(checkDecodedInstruction):
(_ARM_getInstruction):
(AddThumb1SBit):
(AddThumbPredicate):
(UpdateThumbVFPPredicate):
(_Thumb_getInstruction):
(Thumb_getInstruction):
(ARM_getInstruction):
(DecodeGPRnopcRegisterClass):
(DecodeGPRwithAPSRRegisterClass):
(DecodetGPRRegisterClass):
(DecodetcGPRRegisterClass):
(DecoderGPRRegisterClass):
(DecodeDPRRegisterClass):
(DecodeDPR_8RegisterClass):
(DecodeDPR_VFP2RegisterClass):
(DecodeDPairRegisterClass):
(DecodeCCOutOperand):
(DecodeSORegImmOperand):
(DecodeSORegRegOperand):
(DecodeRegListOperand):
(DecodeSPRRegListOperand):
(DecodeDPRRegListOperand):
(DecodeBitfieldMaskOperand):
(DecodeCopMemInstruction):
(DecodeAddrMode2IdxInstruction):
(DecodeSORegMemOperand):
(DecodeAddrMode3Instruction):
(DecodeRFEInstruction):
(DecodeQADDInstruction):
(DecodeMemMultipleWritebackInstruction):
(DecodeCPSInstruction):
(DecodeT2CPSInstruction):
(DecodeT2MOVTWInstruction):
(DecodeArmMOVTWInstruction):
(DecodeSMLAInstruction):
(DecodeAddrModeImm12Operand):
(DecodeAddrMode5Operand):
(DecodeAddrMode7Operand):
(DecodeT2BInstruction):
(DecodeBranchImmInstruction):
(DecodeAddrMode6Operand):
(DecodeVLDInstruction):
(DecodeVLDST1Instruction):
(DecodeVLDST2Instruction):
(DecodeVLDST3Instruction):
(DecodeVLDST4Instruction):
(DecodeVSTInstruction):
(DecodeVLD1DupInstruction):
(DecodeVLD2DupInstruction):
(DecodeVLD3DupInstruction):
(DecodeVLD4DupInstruction):
(DecodeNEONModImmInstruction):
(DecodeVSHLMaxInstruction):
(DecodeShiftRight8Imm):
(DecodeShiftRight16Imm):
(DecodeShiftRight32Imm):
(DecodeShiftRight64Imm):
(DecodeTBLInstruction):
(DecodeThumbAddSpecialReg):
(DecodeThumbBROperand):
(DecodeT2BROperand):
(DecodeThumbCmpBROperand):
(DecodeThumbAddrModeRR):
(DecodeThumbAddrModeIS):
(DecodeThumbAddrModePC):
(DecodeThumbAddrModeSP):
(DecodeT2AddrModeSOReg):
(DecodeT2LoadShift):
(DecodeT2LoadImm8):
(DecodeT2LoadImm12):
(DecodeT2LoadT):
(DecodeT2LoadLabel):
(DecodeT2Imm8S4):
(DecodeT2AddrModeImm8s4):
(DecodeT2AddrModeImm0_1020s4):
(DecodeT2Imm8):
(DecodeT2AddrModeImm8):
(DecodeT2LdStPre):
(DecodeT2AddrModeImm12):
(DecodeThumbAddSPImm):
(DecodeThumbAddSPReg):
(DecodeThumbCPS):
(DecodePostIdxReg):
(DecodeThumbBLXOffset):
(DecodeCoprocessor):
(DecodeThumbTableBranch):
(DecodeThumb2BCCInstruction):
(DecodeT2SOImm):
(DecodeThumbBCCTargetOperand):
(DecodeThumbBLTargetOperand):
(DecodeMemBarrierOption):
(DecodeInstSyncBarrierOption):
(DecodeMSRMask):
(DecodeBankedReg):
(DecodeDoubleRegLoad):
(DecodeDoubleRegStore):
(DecodeLDRPreImm):
(DecodeLDRPreReg):
(DecodeSTRPreImm):
(DecodeSTRPreReg):
(DecodeVLD1LN):
(DecodeVST1LN):
(DecodeVLD2LN):
(DecodeVST2LN):
(DecodeVLD3LN):
(DecodeVST3LN):
(DecodeVLD4LN):
(DecodeVST4LN):
(DecodeVMOVSRR):
(DecodeVMOVRRS):
(DecodeIT):
(DecodeT2LDRDPreInstruction):
(DecodeT2STRDPreInstruction):
(DecodeT2Adr):
(DecodeT2ShifterImmOperand):
(DecodeSwap):
(DecodeVCVTD):
(DecodeVCVTQ):
(DecodeLDR):
(DecodeMRRC2):
* capstone/Source/arch/ARM/ARMDisassembler.h: Added.
* capstone/Source/arch/ARM/ARMGenAsmWriter.inc: Added.
* capstone/Source/arch/ARM/ARMGenDisassemblerTables.inc: Added.
* capstone/Source/arch/ARM/ARMGenInstrInfo.inc: Added.
* capstone/Source/arch/ARM/ARMGenRegisterInfo.inc: Added.
* capstone/Source/arch/ARM/ARMGenSubtargetInfo.inc: Added.
* capstone/Source/arch/ARM/ARMInstPrinter.c: Added.
(get_op_access):
(set_mem_access):
(op_addImm):
(ARM_getRegName):
(translateShiftImm):
(printRegImmShift):
(printRegName):
(ARM_printInst):
(printOperand):
(printThumbLdrLabelOperand):
(printSORegRegOperand):
(printSORegImmOperand):
(printAM2PreOrOffsetIndexOp):
(printAddrModeTBB):
(printAddrModeTBH):
(printAddrMode2Operand):
(printAddrMode2OffsetOperand):
(printAM3PreOrOffsetIndexOp):
(printAddrMode3Operand):
(printAddrMode3OffsetOperand):
(printPostIdxImm8Operand):
(printPostIdxRegOperand):
(printPostIdxImm8s4Operand):
(printAddrMode5Operand):
(printAddrMode6Operand):
(printAddrMode7Operand):
(printAddrMode6OffsetOperand):
(printBitfieldInvMaskImmOperand):
(printMemBOption):
(printInstSyncBOption):
(printShiftImmOperand):
(printPKHLSLShiftImm):
(printPKHASRShiftImm):
(printRegisterList):
(printGPRPairOperand):
(printSetendOperand):
(printCPSIMod):
(printCPSIFlag):
(printMSRMaskOperand):
(printBankedRegOperand):
(printPredicateOperand):
(printMandatoryPredicateOperand):
(printSBitModifierOperand):
(printNoHashImmediate):
(printPImmediate):
(printCImmediate):
(printCoprocOptionImm):
(printAdrLabelOperand):
(printThumbS4ImmOperand):
(printThumbSRImm):
(printThumbITMask):
(printThumbAddrModeRROperand):
(printThumbAddrModeImm5SOperand):
(printThumbAddrModeImm5S1Operand):
(printThumbAddrModeImm5S2Operand):
(printThumbAddrModeImm5S4Operand):
(printThumbAddrModeSPOperand):
(printT2SOOperand):
(printAddrModeImm12Operand):
(printT2AddrModeImm8Operand):
(printT2AddrModeImm8s4Operand):
(printT2AddrModeImm0_1020s4Operand):
(printT2AddrModeImm8OffsetOperand):
(printT2AddrModeImm8s4OffsetOperand):
(printT2AddrModeSoRegOperand):
(printFPImmOperand):
(printNEONModImmOperand):
(printImmPlusOneOperand):
(printRotImmOperand):
(printModImmOperand):
(printFBits16):
(printFBits32):
(printVectorIndex):
(printVectorListOne):
(printVectorListTwo):
(printVectorListTwoSpaced):
(printVectorListThree):
(printVectorListFour):
(printVectorListOneAllLanes):
(printVectorListTwoAllLanes):
(printVectorListThreeAllLanes):
(printVectorListFourAllLanes):
(printVectorListTwoSpacedAllLanes):
(printVectorListThreeSpacedAllLanes):
(printVectorListFourSpacedAllLanes):
(printVectorListThreeSpaced):
(printVectorListFourSpaced):
(ARM_addVectorDataType):
(ARM_addVectorDataSize):
(ARM_addReg):
(ARM_addUserMode):
(ARM_addSysReg):
* capstone/Source/arch/ARM/ARMInstPrinter.h: Added.
* capstone/Source/arch/ARM/ARMMapping.c: Added.
(ARM_reg_name2):
(ARM_insn_name):
(ARM_rel_branch):
(ARM_blx_to_arm_mode):
(ARM_reg_access):
* capstone/Source/arch/ARM/ARMMapping.h: Added.
* capstone/Source/arch/ARM/ARMMappingInsn.inc: Added.
* capstone/Source/arch/ARM/ARMMappingInsnOp.inc: Added.
* capstone/Source/arch/ARM/ARMModule.c: Added.
(init):
(option):
(ARM_enable):
* capstone/Source/arch/Mips/MipsDisassembler.c: Added.
(getFeatureBits):
(Mips_init):
(readInstruction16):
(readInstruction32):
(MipsDisassembler_getInstruction):
(Mips_getInstruction):
(getReg):
(DecodeINSVE_DF_4):
(DecodeAddiGroupBranch_4):
(DecodeDaddiGroupBranch_4):
(DecodeBlezlGroupBranch_4):
(DecodeBgtzlGroupBranch_4):
(DecodeBgtzGroupBranch_4):
(DecodeBlezGroupBranch_4):
(DecodeCPU16RegsRegisterClass):
(DecodeGPR64RegisterClass):
(DecodeGPRMM16RegisterClass):
(DecodeGPRMM16ZeroRegisterClass):
(DecodeGPRMM16MovePRegisterClass):
(DecodeGPR32RegisterClass):
(DecodePtrRegisterClass):
(DecodeDSPRRegisterClass):
(DecodeFGR64RegisterClass):
(DecodeFGR32RegisterClass):
(DecodeCCRRegisterClass):
(DecodeFCCRegisterClass):
(DecodeCCRegisterClass):
(DecodeFGRCCRegisterClass):
(DecodeMem):
(DecodeCacheOp):
(DecodeCacheOpMM):
(DecodeCacheOpR6):
(DecodeSyncI):
(DecodeMSA128Mem):
(DecodeMemMMImm4):
(DecodeMemMMSPImm5Lsl2):
(DecodeMemMMGPImm7Lsl2):
(DecodeMemMMReglistImm4Lsl2):
(DecodeMemMMImm12):
(DecodeMemMMImm16):
(DecodeFMem):
(DecodeFMem2):
(DecodeFMem3):
(DecodeFMemCop2R6):
(DecodeSpecial3LlSc):
(DecodeHWRegsRegisterClass):
(DecodeAFGR64RegisterClass):
(DecodeACC64DSPRegisterClass):
(DecodeHI32DSPRegisterClass):
(DecodeLO32DSPRegisterClass):
(DecodeMSA128BRegisterClass):
(DecodeMSA128HRegisterClass):
(DecodeMSA128WRegisterClass):
(DecodeMSA128DRegisterClass):
(DecodeMSACtrlRegisterClass):
(DecodeCOP2RegisterClass):
(DecodeBranchTarget):
(DecodeJumpTarget):
(DecodeBranchTarget21):
(DecodeBranchTarget26):
(DecodeBranchTarget7MM):
(DecodeBranchTarget10MM):
(DecodeBranchTargetMM):
(DecodeJumpTargetMM):
(DecodeAddiur2Simm7):
(DecodeUImm6Lsl2):
(DecodeLiSimm7):
(DecodeSimm4):
(DecodeSimm16):
(DecodeLSAImm):
(DecodeInsSize):
(DecodeExtSize):
(DecodeSimm19Lsl2):
(DecodeSimm18Lsl3):
(DecodeSimm9SP):
(DecodeANDI16Imm):
(DecodeUImm5lsl2):
(DecodeRegListOperand):
(DecodeRegListOperand16):
(DecodeMovePRegPair):
(DecodeSimm23Lsl2):
* capstone/Source/arch/Mips/MipsDisassembler.h: Added.
* capstone/Source/arch/Mips/MipsGenAsmWriter.inc: Added.
* capstone/Source/arch/Mips/MipsGenDisassemblerTables.inc: Added.
* capstone/Source/arch/Mips/MipsGenInstrInfo.inc: Added.
* capstone/Source/arch/Mips/MipsGenRegisterInfo.inc: Added.
* capstone/Source/arch/Mips/MipsGenSubtargetInfo.inc: Added.
* capstone/Source/arch/Mips/MipsInstPrinter.c: Added.
(set_mem_access):
(isReg):
(MipsFCCToString):
(printRegName):
(Mips_printInst):
(printOperand):
(printUnsignedImm):
(printUnsignedImm8):
(printMemOperand):
(printMemOperandEA):
(printFCCOperand):
(printRegisterPair):
(printAlias1):
(printAlias2):
(printAlias):
(printRegisterList):
* capstone/Source/arch/Mips/MipsInstPrinter.h: Added.
* capstone/Source/arch/Mips/MipsMapping.c: Added.
(Mips_get_insn_id):
(Mips_group_name):
(Mips_map_insn):
(Mips_map_register):
* capstone/Source/arch/Mips/MipsMapping.h: Added.
* capstone/Source/arch/Mips/MipsMappingInsn.inc: Added.
* capstone/Source/arch/Mips/MipsModule.c: Added.
(init):
(option):
(Mips_enable):
* capstone/Source/capstone.pc.in: Added.
* capstone/Source/config.mk: Added.
* capstone/Source/cs.c: Added.
(cs_kern_os_calloc):
(cs_version):
(cs_support):
(cs_errno):
(cs_strerror):
(cs_open):
(cs_close):
(fill_insn):
(skipdata_size):
(cs_option):
(skipdata_opstr):
(cs_disasm):
(cs_disasm_ex):
(cs_free):
(cs_malloc):
(cs_disasm_iter):
(cs_reg_name):
(cs_insn_name):
(cs_group_name):
(cs_insn_group):
(cs_reg_read):
(cs_reg_write):
(cs_op_count):
(cs_op_index):
(cs_regs_access):
* capstone/Source/cs_priv.h: Added.
* capstone/Source/functions.mk: Added.
* capstone/Source/include/capstone/arm.h: Added.
* capstone/Source/include/capstone/arm64.h: Added.
* capstone/Source/include/capstone/capstone.h: Added.
* capstone/Source/include/capstone/evm.h: Added.
* capstone/Source/include/capstone/m680x.h: Added.
* capstone/Source/include/capstone/m68k.h: Added.
* capstone/Source/include/capstone/mips.h: Added.
* capstone/Source/include/capstone/platform.h: Added.
* capstone/Source/include/capstone/ppc.h: Added.
* capstone/Source/include/capstone/sparc.h: Added.
* capstone/Source/include/capstone/systemz.h: Added.
* capstone/Source/include/capstone/tms320c64x.h: Added.
* capstone/Source/include/capstone/x86.h: Added.
* capstone/Source/include/capstone/xcore.h: Added.
* capstone/Source/include/windowsce/intrin.h: Added.
* capstone/Source/include/windowsce/stdint.h: Added.
* capstone/Source/make.sh: Added.
* capstone/Source/nmake-x86.bat: Added.
* capstone/Source/nmake.bat: Added.
* capstone/Source/pkgconfig.mk: Added.
* capstone/Source/utils.c: Added.
(make_id2insn):
(insn_find):
(name2id):
(id2name):
(count_positive):
(count_positive8):
(cs_strdup):
(cs_snprintf):
(arr_exist8):
(arr_exist):
* capstone/Source/utils.h: Added.
* capstone/capstone-Revision.txt: Added.

Source/WTF:

Add USE_CAPSTONE used for MIPS and ARM.

* wtf/Platform.h:

Tools:

* gtk/manifest.txt.in:
* wpe/manifest.txt.in:

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

21 months ago[MIPS] Use mfhc1 and mthc1 to fix assembler error
commit-queue@webkit.org [Wed, 9 May 2018 08:53:16 +0000 (08:53 +0000)]
[MIPS] Use mfhc1 and mthc1 to fix assembler error
https://bugs.webkit.org/show_bug.cgi?id=185464

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

The binutils-assembler started to report failures for copying words between
GP and FP registers for odd FP register indices. Use mfhc1 and mthc1 instead
of mfc1 and mtc1 for conversion.

* offlineasm/mips.rb:

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

21 months ago[EME][GStreamer] Crash when the mediaKeys are created before loading the media in...
commit-queue@webkit.org [Wed, 9 May 2018 07:38:45 +0000 (07:38 +0000)]
[EME][GStreamer] Crash when the mediaKeys are created before loading the media in debug conf
https://bugs.webkit.org/show_bug.cgi?id=185244

Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-09
Reviewed by Xabier Rodriguez-Calvar.

The function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" is expected to be called once,
so there is an ASSERT(!m_cdmInstance).
But when the MediaKeys are created before loading the media, the cdminstance is created and attached
to the MediaPlayerPrivate via "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached" before loading
the media, then when the media is loading, the function "MediaPlayerPrivateGStreamerBase::cdmInstanceAttached"
will be called several times via the function "mediaEngineWasUpdated" wich is called for each change
in the MediaElement state, thus the WebProcess crashes in the ASSERT(!m_cdmInstance).

This commit avoid the crash by replacing the assert with a simple check.

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

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

21 months ago[ARM] Disable test on Linux due to lack of executable memory
commit-queue@webkit.org [Wed, 9 May 2018 07:38:23 +0000 (07:38 +0000)]
[ARM] Disable test on Linux due to lack of executable memory
https://bugs.webkit.org/show_bug.cgi?id=185466

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-09
Reviewed by Yusuke Suzuki.

Do not run tests with LLInt disabled, otherwise test runs out of executable memory.

* js/script-tests/dfg-uint32array-overflow-values.js:
* js/script-tests/dfg-uint8clampedarray.js:

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

21 months agoUpdate fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
Ms2ger@igalia.com [Wed, 9 May 2018 07:35:20 +0000 (07:35 +0000)]
Update fast/events/constructors/(mouse|wheel)-event-constructor.html and expectations.
https://bugs.webkit.org/show_bug.cgi?id=115025

Reviewed by Michael Catanzaro.

clientX/Y values are clamped to a signed 26 bit-integer by using LayoutPoint.
I updated the test to expect that. (Alternatively, we could keep the
current expectations in the test and leave FAIL lines in the test
expectation file.)

Expectation files are updated or removed to match the test change, as
well as a number of code changes since the last time they were accurate.

* fast/events/constructors/mouse-event-constructor-expected.txt:
* fast/events/constructors/mouse-event-constructor.html:
* fast/events/constructors/wheel-event-constructor-expected.txt:
* fast/events/constructors/wheel-event-constructor.html:
* platform/gtk/TestExpectations:
* platform/gtk/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
* platform/gtk/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
* platform/mac/fast/events/constructors/mouse-event-constructor-expected.txt: Removed.
* platform/mac/fast/events/constructors/wheel-event-constructor-expected.txt: Removed.
* platform/wpe/TestExpectations:

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

21 months agoAdd OptionSet::operator& and operator bool
antti@apple.com [Wed, 9 May 2018 07:05:46 +0000 (07:05 +0000)]
Add OptionSet::operator& and operator bool
https://bugs.webkit.org/show_bug.cgi?id=185306

Reviewed by Anders Carlsson.

Source/WebCore:

Use it in a few places.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::reload):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

Source/WTF:

This is primarily to allow writing

    if (options & Option:A)

instead of

    if (options.contains(Option:A))

This is consistent with other OptionSet operators.

* wtf/OptionSet.h:
(WTF::OptionSet::operator bool):
(WTF::OptionSet::operator&):

Also remove T versions of operator| and operator-, they are not needed due to
implicit conversion from T to OptionSet<T>.

Tools:

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

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

21 months ago[MIPS] Collect callee-saved register using inline assembly
commit-queue@webkit.org [Wed, 9 May 2018 06:29:05 +0000 (06:29 +0000)]
[MIPS] Collect callee-saved register using inline assembly
https://bugs.webkit.org/show_bug.cgi?id=185428

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-08
Reviewed by Yusuke Suzuki.

MIPS used setjmp instead of collecting registers with inline assembly like
other architectures.

* heap/RegisterState.h:

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

21 months ago[BigInt] Simplifying JSBigInt by using bool addition
utatane.tea@gmail.com [Wed, 9 May 2018 06:01:19 +0000 (06:01 +0000)]
[BigInt] Simplifying JSBigInt by using bool addition
https://bugs.webkit.org/show_bug.cgi?id=185374

Reviewed by Alex Christensen.

Since using TWO_DIGIT does not produce good code, we remove this part from digitAdd and digitSub.
Just adding overflow flag to carry/borrow produces setb + add in x86.

Also we annotate small helper functions and accessors with `inline` not to call these functions
inside internalMultiplyAdd loop.

* runtime/JSBigInt.cpp:
(JSC::JSBigInt::isZero):
(JSC::JSBigInt::inplaceMultiplyAdd):
(JSC::JSBigInt::digitAdd):
(JSC::JSBigInt::digitSub):
(JSC::JSBigInt::digitMul):
(JSC::JSBigInt::digitPow):
(JSC::JSBigInt::digitDiv):
(JSC::JSBigInt::offsetOfData):
(JSC::JSBigInt::dataStorage):
(JSC::JSBigInt::digit):
(JSC::JSBigInt::setDigit):

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

21 months agoDisable system preview link fetching
dino@apple.com [Wed, 9 May 2018 04:32:00 +0000 (04:32 +0000)]
Disable system preview link fetching
https://bugs.webkit.org/show_bug.cgi?id=185463

Reviewed by Jon Lee.

Temporarily disable system preview detection when a link
is clicked.

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):

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

21 months agoUnreviewed, fix the internal iOS build
wenson_hsieh@apple.com [Wed, 9 May 2018 04:14:48 +0000 (04:14 +0000)]
Unreviewed, fix the internal iOS build

Add a missing import statement in an implementation file.

* editing/cocoa/WebContentReaderCocoa.mm:

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

21 months agoAdopt new async _savecookies SPI for keeping networking process active during flushin...
commit-queue@webkit.org [Wed, 9 May 2018 01:48:44 +0000 (01:48 +0000)]
Adopt new async _savecookies SPI for keeping networking process active during flushing cookies
https://bugs.webkit.org/show_bug.cgi?id=185261
<rdar://problem/37214391>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-08
Reviewed by Chris Dumez.

Source/WebCore/PAL:

* pal/spi/cf/CFNetworkSPI.h:

Source/WebKit:

By adopting new async SPI _savecookies, we can keep networking process active(not suspended)
until cookies are fully synced to disk with process assertion.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didSyncAllCookies):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/cocoa/NetworkProcessCocoa.mm:
(WebKit::NetworkProcess::syncAllCookies):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::syncAllCookies):
(WebKit::NetworkProcessProxy::didSyncAllCookies):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/Network/NetworkProcessProxy.messages.in:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::syncNetworkProcessCookies):

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

21 months agoSet colorspace in the PDF plugin.
pvollan@apple.com [Wed, 9 May 2018 01:34:56 +0000 (01:34 +0000)]
Set colorspace in the PDF plugin.
https://bugs.webkit.org/show_bug.cgi?id=185445
<rdar://problem/40030981>

Reviewed by Simon Fraser.

* WebProcess/Plugins/PDF/PDFLayerControllerSPI.h:
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):

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

21 months agoReplace multiple Watchpoint Set fireAll() methods with templates
msaboff@apple.com [Wed, 9 May 2018 01:11:40 +0000 (01:11 +0000)]
Replace multiple Watchpoint Set fireAll() methods with templates
https://bugs.webkit.org/show_bug.cgi?id=185456

Reviewed by Saam Barati.

Refactored to minimize duplicate code.

* bytecode/Watchpoint.h:
(JSC::WatchpointSet::fireAll):
(JSC::InlineWatchpointSet::fireAll):

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

21 months agoDon't clear selection until we are actually interacting with a Node.
megan_gardner@apple.com [Wed, 9 May 2018 00:41:51 +0000 (00:41 +0000)]
Don't clear selection until we are actually interacting with a Node.
https://bugs.webkit.org/show_bug.cgi?id=185455

Reviewed by Wenson Hsieh.

The presence of TextInteractionAssistant should not be used as a proxy for it we are actually editing content.
We need to check to see if we have an active node, and then we should clear the selection.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView setSelectedTextRange:]):

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

21 months agoUnreviewed, rolling out r231486.
ryanhaddad@apple.com [Wed, 9 May 2018 00:40:29 +0000 (00:40 +0000)]
Unreviewed, rolling out r231486.

Caused service worker LayoutTest failures on macOS Debug WK2.

Reverted changeset:

"Allow WebResourceLoader to cancel a load served from a
service worker"
https://bugs.webkit.org/show_bug.cgi?id=185274
https://trac.webkit.org/changeset/231486

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

21 months agoConsolidate WebContentReaderIOS and WebContentReaderMac into WebContentReaderCocoa
wenson_hsieh@apple.com [Wed, 9 May 2018 00:37:55 +0000 (00:37 +0000)]
Consolidate WebContentReaderIOS and WebContentReaderMac into WebContentReaderCocoa
https://bugs.webkit.org/show_bug.cgi?id=185340

Reviewed by Tim Horton.

Source/WebCore:

WebContentReader::readURL is currently the only method implemented separately in iOS and macOS platform
WebContentReader files. The implementation across macOS and iOS is nearly identical (with some exceptions with
the way iOS handles file URLs and plain text editing), so we can merge these into a single method
WebContentReaderCocoa and delete WebContentReaderIOS and WebContentReaderMac.

This also has the added bonus of fixing a latent bug in WebContentReaderMac, wherein URLs written to the
pasteboard using -[NSPasteboard writeObjects:] are currently pasted as empty anchor elements. In this case, the
link title isn't made explicit, so the `title` passed in to WebContentReader::readURL is empty. On iOS, we have
code to fall back to pasting the absolute string of the URL if the title is empty, but on macOS, we'll just use
this empty string as the title of the anchor.

Test: PasteMixedContent.PasteURLWrittenToPasteboardUsingWriteObjects

* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::WebContentReader::readURL):
* editing/ios/WebContentReaderIOS.mm: Removed.
* editing/mac/WebContentReaderMac.mm: Removed.

Tools:

Adds a new API test to verify that URLs written using -[NSPasteboard writeObjects:] are pasted as anchors with
non-empty text in a contenteditable.

* TestWebKitAPI/Tests/WebKitCocoa/PasteMixedContent.mm:
(TestWebKitAPI::TEST):

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

21 months ago[iOS] _WKWebViewPrintFormatter should return a page count of 0 for PDF documents...
aestes@apple.com [Wed, 9 May 2018 00:31:04 +0000 (00:31 +0000)]
[iOS] _WKWebViewPrintFormatter should return a page count of 0 for PDF documents that do not allow printing
https://bugs.webkit.org/show_bug.cgi?id=185133

Reviewed by Andreas Kling.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _ensureDocumentForPrinting]):
(-[WKPDFView _wk_pageCountForPrintFormatter:]):
(-[WKPDFView _wk_printedDocument]):

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

21 months ago[Simple line layout] Cache run resolver.
zalan@apple.com [Wed, 9 May 2018 00:20:18 +0000 (00:20 +0000)]
[Simple line layout] Cache run resolver.
https://bugs.webkit.org/show_bug.cgi?id=185411

Reviewed by Antti Koivisto.

This patch caches the run resolver on the [SimpleLine]Layout object.
In certain cases, when the block container has thousands of elements (foobar1<br>foobar2<br>.....foobar9999<br>),
constructing the resolver (and its dependencies) in a repeating fashion could hang the WebProcess.

Covered by existing tests.

* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Layout::runResolver const):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeBoundingBox):
(WebCore::SimpleLineLayout::computeFirstRunLocation):
(WebCore::SimpleLineLayout::collectAbsoluteRects):
(WebCore::SimpleLineLayout::collectAbsoluteQuads):
(WebCore::SimpleLineLayout::textOffsetForPoint):
(WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange):
(WebCore::SimpleLineLayout::generateLineBoxTree):
* rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::LineResolver::LineResolver):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::lineResolver):

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

21 months ago[iOS] WKPDFView remains in the view hierarchy after navigating away
aestes@apple.com [Wed, 9 May 2018 00:13:40 +0000 (00:13 +0000)]
[iOS] WKPDFView remains in the view hierarchy after navigating away
https://bugs.webkit.org/show_bug.cgi?id=185449
<rdar://problem/39693469>

Reviewed by Tim Horton.

WKPDFView removes the PDF host view from the view hierarchy in its -dealloc
method, and relies on WKWebView releasing its last reference in
-_setHasCustomContentView:loadedMIMEType: when the user navigates.

However, WKWPDFView was capturing a strong reference to self in the block passed
to +[PDFHostViewController createHostView:forExtensionIdentifier:], and PDFKit
(actually UIKit) is retaining this block beyond its being called. This results in
the PDF host view remaining as a child of the WKScrollView even after the user
navigates to another page.

Changed the aforementioned block to a lambda that captures a weak reference to
self to prevent WKPDFView from outliving the current navigation.

* UIProcess/ios/WKPDFView.mm:
(-[WKPDFView retain]):
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):

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

21 months agoWeb Inspector: Console drawer resizing is broken when console prompt has >1 line...
mattbaker@apple.com [Wed, 9 May 2018 00:09:41 +0000 (00:09 +0000)]
Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code
https://bugs.webkit.org/show_bug.cgi?id=185369
<rdar://problem/40013202>

Reviewed by Devin Rousso.

Mouse offset calculation should account for the height of the quick console.
The only reason resizing worked with the single-line quick console is that
the offset calculation included the resizer height, which is very close
to that of the single-line quick console (27px and 30px respectively).

* UserInterface/Views/ConsoleDrawer.js:

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

21 months agotest262/Runner.pm: create results dir for results of test262 run
commit-queue@webkit.org [Wed, 9 May 2018 00:04:10 +0000 (00:04 +0000)]
test262/Runner.pm: create results dir for results of test262 run
https://bugs.webkit.org/show_bug.cgi?id=185392

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-08
Reviewed by Michael Saboff.

.:

Remove reference to no longer existing files.

* .gitignore:

Tools:

New directory test262-results created from where ever script is
called.

* Scripts/test262/Runner.pm:
(processCLI):

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

21 months agotest262/Runner.pm: lower number of processes per core
commit-queue@webkit.org [Wed, 9 May 2018 00:00:13 +0000 (00:00 +0000)]
test262/Runner.pm: lower number of processes per core
https://bugs.webkit.org/show_bug.cgi?id=185426

Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-08
Reviewed by Michael Saboff.

* Scripts/test262/Runner.pm:
(getProcesses):

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

21 months agoStorage Access API: Make user opt-in sticky
wilander@apple.com [Tue, 8 May 2018 23:59:29 +0000 (23:59 +0000)]
Storage Access API: Make user opt-in sticky
https://bugs.webkit.org/show_bug.cgi?id=185454
<rdar://problem/40003946>

Reviewed by Alex Christensen.

This patch persists the user's choice to opt-in to access under specific domains.
Such storage access should age out with the accessing domain's cookies and website
data. The opt-in prompt is still an experimental feature.

* UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::hasStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::grantStorageAccessInternal):
(WebKit::WebResourceLoadStatisticsStore::hasUserGrantedStorageAccessThroughPrompt const):
(WebKit::WebResourceLoadStatisticsStore::hasHadUnexpiredRecentUserInteraction const):
* UIProcess/WebResourceLoadStatisticsStore.h:

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

21 months agoTest262-Runner: Add base Perl UnicodeData
commit-queue@webkit.org [Tue, 8 May 2018 23:33:13 +0000 (23:33 +0000)]
Test262-Runner: Add base Perl UnicodeData
https://bugs.webkit.org/show_bug.cgi?id=185444

Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-08
Reviewed by Michael Saboff.

* Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/SpacePer.pl: Added.
* Scripts/test262/local/lib/perl5/unicore/lib/gc_sc/Word.pl: Added.

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

21 months agoDFG::FlowMap::resize() shouldn't resize the shadow map unless we're in SSA
fpizlo@apple.com [Tue, 8 May 2018 23:30:31 +0000 (23:30 +0000)]
DFG::FlowMap::resize() shouldn't resize the shadow map unless we're in SSA
https://bugs.webkit.org/show_bug.cgi?id=185453

Reviewed by Michael Saboff.

Tiny improvement for compile times.

* dfg/DFGFlowMap.h:
(JSC::DFG::FlowMap::resize): Remove one Vector::resize() when we're not in SSA.
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::beginBasicBlock): Record some data about how long we spend in different parts of this and add a FIXME linking bug 185452.

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

21 months agoDo not apply X-Frame-Options and CSP frame-ancestors to Quick Look-applicable respons...
dbates@webkit.org [Tue, 8 May 2018 23:28:05 +0000 (23:28 +0000)]
Do not apply X-Frame-Options and CSP frame-ancestors to Quick Look-applicable responses in NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=185442
<rdar://problem/40067209>

Reviewed by Andy Estes.

Source/WebKit:

Just as we exempt responses in WebContent process that will be handled by Quick Look from the Content
Security Policy frame-ancestors directive and X-Frame-Options checking we need to do the same when
such checks are performed in NetworkProcess following r231479.

HTTP responses that will be previewed using Quick Look are not considered web pages and are subject
to the security model for Quick Look documents. That is, they are exempt from Content Security Policy
and X-Frame-Options processing.

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::shouldInterruptLoadForCSPFrameAncestorsOrXFrameOptions):

LayoutTests:

Remove test http/tests/quicklook/csp-header-ignored.html from TestExpectations now that it passes.

* platform/ios/TestExpectations:

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

21 months agoSwitch some RELEASE_ASSERTS to plain debug ASSERTS in PlatformScreenMac.mm
bfulgham@apple.com [Tue, 8 May 2018 23:26:39 +0000 (23:26 +0000)]
Switch some RELEASE_ASSERTS to plain debug ASSERTS in PlatformScreenMac.mm
https://bugs.webkit.org/show_bug.cgi?id=185451
<rdar://problem/39620348>

Reviewed by Zalan Bujtas.

Change a set of RELEASE_ASSERTS used to prevent accessing NSScreen related functions in the
PlatformScreenMac implementation to less expensive Debug ASSERTS.

No change in behavior.

* platform/mac/PlatformScreenMac.mm:
(WebCore::screenHasInvertedColors):
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
(WebCore::screenRectForDisplay):
(WebCore::screenRect):
(WebCore::screenAvailableRect):
(WebCore::screenColorSpace):
(WebCore::screenSupportsExtendedColor):

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

21 months agoAdd tests to ensure that the Strong Password appearance is removed on form reset
dbates@webkit.org [Tue, 8 May 2018 23:22:06 +0000 (23:22 +0000)]
Add tests to ensure that the Strong Password appearance is removed on form reset
https://bugs.webkit.org/show_bug.cgi?id=185440

Reviewed by Ryosuke Niwa.

Tools:

* TestWebKitAPI/Tests/WebKitCocoa/DidResignInputElementStrongPasswordAppearance.mm:
(-[DidResignInputElementStrongPasswordAppearance webProcessPlugIn:didCreateBrowserContextController:]):
* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(TEST):

LayoutTests:

* fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset-expected.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-form-is-reset.html: Added.

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

21 months agoDeferred firing of structure transition watchpoints is racy
msaboff@apple.com [Tue, 8 May 2018 23:20:33 +0000 (23:20 +0000)]
Deferred firing of structure transition watchpoints is racy
https://bugs.webkit.org/show_bug.cgi?id=185438

Reviewed by Saam Barati.

Changed DeferredStructureTransitionWatchpointFire to take the watchpoints to fire
and fire them in the destructor.  When the watchpoints are taken from the
original WatchpointSet, that WatchpointSet if marked invalid.

* bytecode/Watchpoint.cpp:
(JSC::WatchpointSet::fireAllSlow):
(JSC::WatchpointSet::take):
(JSC::DeferredWatchpointFire::DeferredWatchpointFire):
(JSC::DeferredWatchpointFire::~DeferredWatchpointFire):
(JSC::DeferredWatchpointFire::fireAll):
(JSC::DeferredWatchpointFire::takeWatchpointsToFire):
* bytecode/Watchpoint.h:
(JSC::WatchpointSet::fireAll):
(JSC::InlineWatchpointSet::fireAll):
* runtime/JSObject.cpp:
(JSC::JSObject::setPrototypeDirect):
(JSC::JSObject::convertToDictionary):
* runtime/JSObjectInlines.h:
(JSC::JSObject::putDirectInternal):
* runtime/Structure.cpp:
(JSC::Structure::Structure):
(JSC::DeferredStructureTransitionWatchpointFire::DeferredStructureTransitionWatchpointFire):
(JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire):
(JSC::DeferredStructureTransitionWatchpointFire::dump const):
(JSC::Structure::didTransitionFromThisStructure const):
(JSC::DeferredStructureTransitionWatchpointFire::add): Deleted.
* runtime/Structure.h:
(JSC::DeferredStructureTransitionWatchpointFire::structure const):

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

21 months agoResign Strong Password appearance when text field value changes
dbates@webkit.org [Tue, 8 May 2018 23:16:33 +0000 (23:16 +0000)]
Resign Strong Password appearance when text field value changes
https://bugs.webkit.org/show_bug.cgi?id=185433
<rdar://problem/39958508>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Remove the Strong Password decoration when the text field's value changes to avoid interfering
with web sites that allow a person to clear the password field.

Tests: fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html
       fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html
       fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::resignStrongPasswordAppearance): Extracted from HTMLInputElement::updateType().
(WebCore::HTMLInputElement::updateType): Extract out logic to resign the Strong Password appearance
into a function that can be shared by this function and HTMLInputElement::setValue().
(WebCore::HTMLInputElement::setValue): Resign the Strong Password appearance if this field was
changed programmatically (i.e. no DOM change event was dispatched).
* html/HTMLInputElement.h:

Tools:

Add a unit test to ensure the injected bundle API and WebKit UI delegate SPI is invoked
when the field has the Strong Password button and its value changes.

* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(testDidResignInputElementStrongPasswordAppearanceAfterEvaluatingJavaScript):
(TEST):

LayoutTests:

Add a test to ensure we remove the Strong Password appearance when the value of the text field value changes.

* fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes-expected.html: Added.
* fast/forms/auto-fill-button/auto-fill-strong-password-button-when-maxlength-changes.html: Added.
* fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes-expected.html: Added.
* fast/forms/auto-fill-button/auto-fill-strong-password-button-when-minlength-changes.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes-expected.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-strong-password-button-when-value-changes.html: Added.
* fast/forms/auto-fill-button/resources/process-auto-fill-button-type-and-invoke-runTest.js: Add support for
setting the autofilled state of a field.
(window.onload):

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

21 months agoUnreviewed build fix; add missing function definition.
jer.noble@apple.com [Tue, 8 May 2018 23:12:09 +0000 (23:12 +0000)]
Unreviewed build fix; add missing function definition.

* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::didPassCORSAccessCheck const):

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

21 months agoConsecutive messages logged as JSON are coalesced
eric.carlson@apple.com [Tue, 8 May 2018 21:53:01 +0000 (21:53 +0000)]
Consecutive messages logged as JSON are coalesced
https://bugs.webkit.org/show_bug.cgi?id=185432

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

* inspector/ConsoleMessage.cpp:
(Inspector::ConsoleMessage::isEqual const): Messages with JSON arguments are not equal.

LayoutTests:

* inspector/console/webcore-logging-expected.txt:
* inspector/console/webcore-logging.html:

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

21 months agoInPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
fpizlo@apple.com [Tue, 8 May 2018 21:49:09 +0000 (21:49 +0000)]
InPlaceAbstractState::beginBasicBlock shouldn't have to clear any abstract values
https://bugs.webkit.org/show_bug.cgi?id=185365

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch does three things to improve compile times:

- Fixes some inlining goofs.

- Adds the ability to measure compile times with run-jsc-benchmarks.

- Dramatically improves the performance of InPlaceAbstractState::beginBasicBlock by removing the
  code that clears abstract values. It turns out that on constant folding "needed" this, in the
  sense that this was the only thing protecting it from loading the abstract value of a no-result
  node and then concluding that because it had a non-empty m_value, it could be constant-folded.
  Any node that produces a result will explicitly set its abstract value, so this problem can
  also be guarded by just having constant folding check if the node it wants to fold returns any
  result.

Solid 0.96% compile time speed-up across SunSpider-CompileTime and V8Spider-CompileTime.

Rolling back in after fixing cloop build.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::set):
* dfg/DFGAbstractValue.h:
(JSC::DFG::AbstractValue::merge):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGGraph.h:
(JSC::DFG::Graph::doToChildrenWithNode):
(JSC::DFG::Graph::doToChildren):
* dfg/DFGInPlaceAbstractState.cpp:
(JSC::DFG::InPlaceAbstractState::beginBasicBlock):
* jit/JIT.cpp:
(JSC::JIT::totalCompileTime):
* jit/JIT.h:
* jsc.cpp:
(GlobalObject::finishCreation):
(functionTotalCompileTime):

Source/WTF:

Fix some inlining goof-ups.

Rolling back in after fixing cloop build.

* wtf/TinyPtrSet.h:
(WTF::TinyPtrSet::add):
(WTF::TinyPtrSet::merge):
(WTF::TinyPtrSet::addOutOfLine):
(WTF::TinyPtrSet::mergeOtherOutOfLine):

Tools:

Make it possible to measure compile times.

Rolling back in after fixing cloop builds.

* Scripts/run-jsc-benchmarks:

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

21 months agoMute MediaElementSourceNode when tainted.
jer.noble@apple.com [Tue, 8 May 2018 21:32:03 +0000 (21:32 +0000)]
Mute MediaElementSourceNode when tainted.
https://bugs.webkit.org/show_bug.cgi?id=184866

Reviewed by Eric Carlson.

Source/WebCore:

Test: http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::wouldTaintOrigin const):
* Modules/webaudio/AudioContext.h:
* Modules/webaudio/MediaElementAudioSourceNode.cpp:
(WebCore::MediaElementAudioSourceNode::setFormat):
(WebCore::MediaElementAudioSourceNode::wouldTaintOrigin):
(WebCore::MediaElementAudioSourceNode::process):
* Modules/webaudio/MediaElementAudioSourceNode.h:

LayoutTests:

* http/tests/media/resources/1000Hz-sin.wav: Added.
* http/tests/security/webaudio-render-remote-audio-allowed-crossorigin-expected.txt: Added.
* http/tests/security/webaudio-render-remote-audio-allowed-crossorigin.html: Added.
* http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin-expected.txt: Added.
* http/tests/security/webaudio-render-remote-audio-blocked-no-crossorigin.html: Added.

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

21 months agoLog rtcstats as JSON
eric.carlson@apple.com [Tue, 8 May 2018 21:22:30 +0000 (21:22 +0000)]
Log rtcstats as JSON
https://bugs.webkit.org/show_bug.cgi?id=185437
<rdar://problem/40065332>

Reviewed by Youenn Fablet.

* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::RTCStatsLogger::RTCStatsLogger): Create a wrapper class so we don't have to add a
toJSONString method to libwebrtc.
(WebCore::RTCStatsLogger::toJSONString const): Log stats as JSON.
(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered): Don't use the LOGIDENTIFIER macro because
it doesn't work well inside of a lambda.
(WTF::LogArgument<WebCore::RTCStatsLogger>::toString): Move into .cpp file because it is only
used here.
* Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
(WTF::LogArgument<webrtc::RTCStats>::toString): Deleted. Move to .cpp file.

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

21 months agoREGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag...
bburg@apple.com [Tue, 8 May 2018 21:19:36 +0000 (21:19 +0000)]
REGRESSION(r230743): Mousemove events are not coalesced properly, mousemove/drag is very laggy
https://bugs.webkit.org/show_bug.cgi?id=185425
<rdar://problem/39323336>

Reviewed by Simon Fraser.

When mousemove events come in faster than they can be processed, we should coalesce
pending mousemoves that have not yet been sent to WebProcess. This has the effect of
processing the most recent mousemove location, which is the old behavior that regressed.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleMouseEvent):
If there is >1 event in the mouse queue, then the first one is being processed by WebProcess
and the second one is eligible for coalescing. Replace it if the last event and new event
are both mousemoves.

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