WebKit-https.git
3 years agoUnreviewed, try to fix the Sierra build again after r226277.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:11:20 +0000 (23:11 +0000)]
Unreviewed, try to fix the Sierra build again after r226277.

The macOS 10.12 SDK does not know about NSControlStateValue. Apply the same tweak in r226279, but to MiniBrowser
this time.

* MiniBrowser/AppKitCompatibilityDeclarations.h:

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

3 years agoUnreviewed, try to fix the build on recent SDKs after r226274.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 23:05:37 +0000 (23:05 +0000)]
Unreviewed, try to fix the build on recent SDKs after r226274.

Unused variables captured in a lambda now cause warnings the latest SDKs. It seems that after r226274, the block
in `SWContextManager::terminateWorker` no longer accesses `this->m_workerMap`, so `this` is now unused.

* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):

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

3 years agoUnreviewed, try to fix the Sierra build after r226277.
wenson_hsieh@apple.com [Fri, 22 Dec 2017 22:53:07 +0000 (22:53 +0000)]
Unreviewed, try to fix the Sierra build after r226277.

The macOS 10.12 SDK does not know about NSControlStateValue and some types of NSLevelIndicatorStyles, so these
need to be declared in a separate section in AppKitCompatibilityDeclarations.h (rather than in the < macOS 10.12
SDK #ifdef).

* wtf/mac/AppKitCompatibilityDeclarations.h:

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

3 years agoUnreviewed, rolling out r225899
mcatanzaro@igalia.com [Fri, 22 Dec 2017 22:34:18 +0000 (22:34 +0000)]
Unreviewed, rolling out r225899
https://bugs.webkit.org/show_bug.cgi?id=180430

* media/content/encrypted/VideoClearKeyCenc.mp4: Removed.
* media/content/encrypted/segments/VideoClearKeyCenc-seg-0.mp4: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-expected.txt: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse-expected.txt: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event-mse.html: Removed.
* media/encrypted-media/clearKey/clearKey-encrypted-cenc-event.html: Removed.
* media/encrypted-media/medias-enc.js: Removed.
* media/media-source/media-source-loader-simple.js: Removed.
* platform/gtk/TestExpectations:
* platform/mac-elcapitan/TestExpectations:
* platform/mac/TestExpectations:
* platform/wpe/TestExpectations:

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

3 years agoFix build failures due to using deprecated AppKit symbols
wenson_hsieh@apple.com [Fri, 22 Dec 2017 22:23:27 +0000 (22:23 +0000)]
Fix build failures due to using deprecated AppKit symbols
https://bugs.webkit.org/show_bug.cgi?id=181110
<rdar://problem/36162865>

Reviewed by Dan Bernstein and Tim Horton.

Source/WebCore:

Fixes the build for recent SDKs (post-AppKit-deprecation) via a combination of adopting modern AppKit versions
of deprecated interfaces, or folding deprecated symbols behind helper functions (for deprecated pasteboard
types). Introduces LegacyNSPasteboardTypes.h, which contains functions to wrap around deprecated NSPasteboard
types. This allows us to replace all deprecated NS*PboardTypes with calls to the helper functions, and limit
-Wdeprecated-declarations of legacy pasteboard types to this new header.

* WebCore.xcodeproj/project.pbxproj:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(CreateCGColorIfDifferent):
* editing/mac/EditorMac.mm:
(WebCore::Editor::takeFindStringFromSelection):
(WebCore::Editor::dataSelectionForPasteboard):
* platform/cocoa/PasteboardCocoa.mm:
(WebCore::bitmapPNGFileType):
(WebCore::cocoaTypeToImageType):
(WebCore::convertTIFFToPNG):
* platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
(PlatformCALayer::drawLayerContents):
* platform/graphics/cocoa/GraphicsContextCocoa.mm:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
* platform/ios/wak/WAKAppKitStubs.h:
* platform/mac/DragDataMac.mm:
(WebCore::rtfPasteboardType):
(WebCore::rtfdPasteboardType):
(WebCore::stringPasteboardType):
(WebCore::urlPasteboardType):
(WebCore::htmlPasteboardType):
(WebCore::colorPasteboardType):
(WebCore::pdfPasteboardType):
(WebCore::tiffPasteboardType):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::asURL const):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageForLink):
* platform/mac/LegacyNSPasteboardTypes.h: Added.
(WebCore::legacyStringPasteboardType):
(WebCore::legacyFilenamesPasteboardType):
(WebCore::legacyTIFFPasteboardType):
(WebCore::legacyRTFPasteboardType):
(WebCore::legacyFontPasteboardType):
(WebCore::legacyColorPasteboardType):
(WebCore::legacyRTFDPasteboardType):
(WebCore::legacyHTMLPasteboardType):
(WebCore::legacyURLPasteboardType):
(WebCore::legacyPDFPasteboardType):
(WebCore::legacyFilesPromisePasteboardType):
* platform/mac/LocalCurrentGraphicsContext.mm:
(WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
* platform/mac/PasteboardMac.mm:
(WebCore::writableTypesForURL):
(WebCore::writableTypesForImage):
(WebCore::Pasteboard::supportedFileUploadPasteboardTypes):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::writeURLForTypes):
(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::read):
(WebCore::absoluteURLsFromPasteboardFilenames):
(WebCore::Pasteboard::readPlatformValueAsString):
(WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType):
(WebCore::Pasteboard::writeString):
* platform/mac/PasteboardWriter.mm:
(WebCore::createPasteboardWriter):
* platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::numberOfFiles const):
(WebCore::pasteboardMayContainFilePaths):
(WebCore::PlatformPasteboard::stringForType const):
(WebCore::safeTypeForDOMToReadAndWriteForPlatformType):
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::setStringForType):
* platform/mac/ThemeMac.mm:
(WebCore::updateStates):
(WebCore::createToggleButtonCell):
(WebCore::drawCellFocusRingWithFrameAtTime):
(WebCore::leakButtonCell):
(WebCore::setUpButtonCell):
(WebCore::paintButton):
(WebCore::ThemeMac::inflateControlPaintRect const):
* platform/mac/WebWindowAnimation.mm:
(setScaledFrameForWindow):
* platform/mac/WidgetMac.mm:
(WebCore::Widget::paint):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const):
(WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const):
(WebCore::convertNSColorToColor):
(WebCore::menuBackgroundColor):
(WebCore::RenderThemeMac::updateCheckedState):
(WebCore::RenderThemeMac::levelIndicatorStyleFor const):
(WebCore::RenderThemeMac::levelIndicatorFor const):
(WebCore::RenderThemeMac::servicesRolloverButtonCell const):

Source/WebKit:

See WebCore ChangeLog for more details.

* Shared/mac/PasteboardTypes.mm:
(WebKit::PasteboardTypes::forEditing):
(WebKit::PasteboardTypes::forURL):
(WebKit::PasteboardTypes::forImages):
(WebKit::PasteboardTypes::forImagesWithArchive):
(WebKit::PasteboardTypes::forSelection):
* UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::WebViewImpl):
(WebKit::WebViewImpl::setIntrinsicContentSize):
(WebKit::WebViewImpl::writeSelectionToPasteboard):
(WebKit::WebViewImpl::validRequestorForSendAndReturnTypes):
(WebKit::WebViewImpl::validateUserInterfaceItem):
(WebKit::WebViewImpl::performDragOperation):
(WebKit::WebViewImpl::setFileAndURLTypes):
(WebKit::WebViewImpl::setPromisedDataForImage):
(WebKit::WebViewImpl::setPromisedDataForAttachment):
(WebKit::WebViewImpl::provideDataForPasteboard):
* UIProcess/mac/WKPrintingView.mm:
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):
* UIProcess/mac/WKSharingServicePickerDelegate.mm:
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
* UIProcess/mac/WebContextMenuProxyMac.mm:
(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):
* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::searchTheWeb):
* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::writeItemsToPasteboard):
* WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
(WebKit::convertImageToBitmap):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::drawPDFPage):

Source/WebKitLegacy/mac:

See WebCore ChangeLog for more details. Additionally makes a few minor adjustments to pass our style checker.

* Misc/WebKitNSStringExtras.mm:
(-[NSString _web_drawAtPoint:font:textColor:]):
* Misc/WebNSPasteboardExtras.h:
* Misc/WebNSPasteboardExtras.mm:
(+[NSPasteboard _web_writableTypesForURL]):
(_createWritableTypesForImageWithoutArchive):
(_createWritableTypesForImageWithArchive):
(+[NSPasteboard _web_dragTypesForURL]):
(-[NSPasteboard _web_bestURL]):
(-[NSPasteboard _web_writeURL:andTitle:types:]):
(+[NSPasteboard _web_setFindPasteboardString:withOwner:]):
(-[NSPasteboard _web_writeFileWrapperAsRTFDAttachment:]):
(-[NSPasteboard _web_writeImage:element:URL:title:archive:types:source:]):
(-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
* Panels/WebAuthenticationPanel.m:
(-[WebAuthenticationPanel runAsModalDialogWithChallenge:]):
(-[WebAuthenticationPanel sheetDidEnd:returnCode:contextInfo:]):
* Plugins/Hosted/WebHostedNetscapePluginView.mm:
(-[WebHostedNetscapePluginView drawRect:]):
* WebInspector/WebNodeHighlightView.mm:
(-[WebNodeHighlightView drawRect:]):
* WebView/WebFrame.mm:
(-[WebFrame _updateBackgroundAndUpdatesWhileOffscreen]):
(-[WebFrame _drawRect:contentsOnly:]):
* WebView/WebHTMLView.mm:
(kit):
(-[WebHTMLView _documentFragmentFromPasteboard:inContext:allowPlainText:]):
(-[WebHTMLView _plainTextFromPasteboard:]):
(-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
(+[WebHTMLView _insertablePasteboardTypes]):
(+[WebHTMLView _selectionPasteboardTypes]):
(-[WebHTMLView pasteboard:provideDataForType:]):
(-[WebHTMLView _writeSelectionToPasteboard:]):
(-[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:]):
(-[WebHTMLView validRequestorForSendType:returnType:]):
(-[WebHTMLView validateUserInterfaceItemWithoutDelegate:]):
(createMenuItem):
(-[WebHTMLView _fontAttributesFromFontPasteboard]):
(-[WebHTMLView _colorAsString:]):
(-[WebHTMLView copyFont:]):
* WebView/WebPDFView.mm:
(-[WebPDFView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
(-[WebPDFView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
(-[WebPDFView _recursive:displayRectIgnoringOpacity:inContext:topView:]):
(-[WebPDFView pasteboardTypesForSelection]):
(-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
* WebView/WebView.h:
* WebView/WebView.mm:
(-[WebView performDragOperation:]):
(-[WebView validateUserInterfaceItemWithoutDelegate:]):
(-[WebView _searchWithGoogleFromMenu:]):

Source/WTF:

When building with older macOS SDKs where some AppKit constants don't exist, define the modern constants to be
equal to their deprecated counterparts. This allows us to just have the modern types in WebKit sources while
avoiding breakage on old SDKs.

This, along with many other symbols in the compability header, can be removed once WebKit stops supporting macOS
10.11.

* wtf/mac/AppKitCompatibilityDeclarations.h:

Tools:

Transition to non-deprecated AppKit constants in MiniBrowser.

* MiniBrowser/AppKitCompatibilityDeclarations.h: Added.
* MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController validateMenuItem:]):
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController validateMenuItem:]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):

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

3 years agoCrash beneath ScriptedAnimationController::serviceScriptedAnimations after a requestA...
mitz@apple.com [Fri, 22 Dec 2017 21:41:02 +0000 (21:41 +0000)]
Crash beneath ScriptedAnimationController::serviceScriptedAnimations after a requestAnimationFrame callback removes the requesting iframe
https://bugs.webkit.org/show_bug.cgi?id=181132
<rdar://problem/35143540>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/animation/request-animation-frame-remove-iframe-in-callback.html

* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::serviceScriptedAnimations): Hold a reference to the
  document and pass that along to InspectorInstrumentation::willFireAnimationFrame rather
  than dereferencing the m_document member, which may have gotten cleared by an earlier
  callback.

LayoutTests:

* fast/animation/request-animation-frame-remove-iframe-in-callback-expected.txt: Added.
* fast/animation/request-animation-frame-remove-iframe-in-callback.html: Added.

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

3 years agoimportScripts() inside a service worker should ensure that the response has a JavaScr...
cdumez@apple.com [Fri, 22 Dec 2017 21:23:39 +0000 (21:23 +0000)]
importScripts() inside a service worker should ensure that the response has a JavaScript MIME type
https://bugs.webkit.org/show_bug.cgi?id=181103

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it fails later. The test expects that the registration promise be
rejected with a SecurityError. However, we reject it with a TypeError instead, which is the
result of the Network error from importScripts().

The spec does say that importScripts() should report a network error when the MIME type is
invalid:
- https://w3c.github.io/ServiceWorker/#importscripts (step 6)

Later on, the spec says that if "an uncaught runtime script error occurs" when running the script,
we should resolve the registration with a TypeError:
- https://w3c.github.io/ServiceWorker/#update (step 9.6)

Therefore, our behavior seems correct and I cannot find in the spec a reason why the test would
expect a SecurityError here.

* web-platform-tests/service-workers/service-worker/registration-mime-types.https-expected.txt:

Source/WebCore:

importScripts() inside a service worker should ensure that the response has a JavaScript
MIME type, as per:
- https://w3c.github.io/ServiceWorker/#importscripts (step 6)

No new tests, rebaselined existing test.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):
* workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::didReceiveResponse):
* workers/WorkerScriptLoader.h:
(WebCore::WorkerScriptLoader::responseMIMEType const):

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

3 years ago[Service Workers] Implement "Soft Update" algorithm
cdumez@apple.com [Fri, 22 Dec 2017 21:17:46 +0000 (21:17 +0000)]
[Service Workers] Implement "Soft Update" algorithm
https://bugs.webkit.org/show_bug.cgi?id=180702
<rdar://problem/36163461>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline Soft Update WPT test now that it is passing.

* web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https-expected.txt:

Source/WebCore:

Implement "Soft Update" algorithm:
- https://w3c.github.io/ServiceWorker/#soft-update-algorithm

Call softUpdate at the end of "Handle Fetch", as per:
- https://w3c.github.io/ServiceWorker/#on-fetch-request-algorithm

No new tests, rebaselined existing test.

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::postTaskTo):
* dom/ScriptExecutionContext.h:
* workers/service/SWClientConnection.cpp:
(WebCore::SWClientConnection::failedFetchingScript):
(WebCore::SWClientConnection::registrationJobResolvedInServer):
(WebCore::SWClientConnection::startScriptFetchForServer):
* workers/service/SWClientConnection.h:
* workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
* workers/service/ServiceWorkerContainer.h:
* workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::ServiceWorkerJob):
* workers/service/ServiceWorkerJob.h:
(WebCore::ServiceWorkerJob::create):
(WebCore::ServiceWorkerJob::data const):
(WebCore::ServiceWorkerJob::promise):
* workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::softUpdate):
* workers/service/ServiceWorkerRegistration.h:
* workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):
(WebCore::SWContextManager::postTaskToServiceWorker):
* workers/service/context/SWContextManager.h:
* workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):
* workers/service/context/ServiceWorkerFetch.h:
* workers/service/server/SWServer.cpp:
(WebCore::SWServer::startScriptFetch):
* workers/service/server/SWServer.h:

Source/WebKit:

* StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startScriptFetchInClient):
* StorageProcess/ServiceWorker/WebSWServerConnection.h:
* WebProcess/Storage/WebSWClientConnection.messages.in:

LayoutTests:

Unskip soft update WPT test that no longer times out.

* TestExpectations:

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

3 years ago[RenderTreeBuilder] Move RenderMenuList::addChild() tree mutation to RenderTreeBuilder
zalan@apple.com [Fri, 22 Dec 2017 20:43:35 +0000 (20:43 +0000)]
[RenderTreeBuilder] Move RenderMenuList::addChild() tree mutation to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181130
<rdar://problem/36196266>

Reviewed by Antti Koivisto.

This patch also creates a dedicated class for form control related tree mutations.

Covered by existing tests.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setInnerRenderer): Update the style here instead.
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::setInnerRenderer):
(RenderMenuList::addChild):
(RenderMenuList::showPopup): We should't really call showPopup on a detached renderer.
(WebCore::RenderMenuList::createInnerBlock): Deleted.
* rendering/RenderMenuList.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::createInnerRendererForButtonIfNeeded): Deleted.
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::formControlsBuilder):
* rendering/updating/RenderTreeBuilderFormControls.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.
(WebCore::RenderTreeBuilder::FormControls::FormControls):
(WebCore::RenderTreeBuilder::FormControls::createInnerRendererIfNeeded):
* rendering/updating/RenderTreeBuilderFormControls.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.

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

3 years agoREGRESSION(r223678): Cannot copy & paste a web page content into Yahoo! Mail
rniwa@webkit.org [Fri, 22 Dec 2017 20:41:48 +0000 (20:41 +0000)]
REGRESSION(r223678): Cannot copy & paste a web page content into Yahoo! Mail
https://bugs.webkit.org/show_bug.cgi?id=181114

Reviewed by Geoffrey Garen.

Source/WebCore:

Turns out converting all URLs to blob isn't Web compatible. Don't do this conversion on HTTP, HTTP, and data URLs
since websites tend to have access to contents accessible via those protocols, and blob URL conversion would break
Yahoo! Mail, Gmail, and other major online email services.

We've also considered using data URLs instead of blob URLs for conversion but pasting a large image converted into
a data URL seems to break WordPress (it stores an empty post instead of the one with the image) so it's not likely
to be Web compatible either.

This patch therefore disables the blob conversion in sanitizeMarkupWithArchive for HTTP, HTTPS, data URLs for
cross-origin content, restoring the behavior prior to r223678. For contents converted from attributed strings,
we continue to convert to blob URL since there is no other way for websites to read local files or images references
by an in-memory web archive.

Tests: http/tests/security/clipboard/copy-paste-html-cross-in-origin-iframe-across-origin.html

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::shouldConvertToBlob): Added.
(WebCore::sanitizeMarkupWithArchive):

LayoutTests:

Updated http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html to test the new behavior
whereby which HTTP/HTTPs and data URLs are not converted to blob URLs.

* http/tests/security/clipboard/copy-paste-html-across-origin-sanitizes-html.html:
* http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin-expected.txt: Renamed.
* http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html: Added more test cases for data URLs.
* http/tests/security/clipboard/resources/content-to-copy.html: Notify the parent that the page had finished loading.
* http/tests/security/clipboard/resources/data-url-content-to-copy.html: Added.
* http/tests/security/clipboard/resources/subdirectory/paste-html.html: Since we can no longer access contents
in the pasted frames but scripts DO run in the pasted cross-origin iframes, rely on those frames to postMessage
this frame when the image had finished loading.

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

3 years agoCredentials warning spam when running CodeGenerator.pm
mcatanzaro@igalia.com [Fri, 22 Dec 2017 20:40:23 +0000 (20:40 +0000)]
Credentials warning spam when running CodeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=181127

Unreviewed, update WebCore_IDL_INCLUDES.

* CMakeLists.txt:

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

3 years agogenerate_offset_extractor.rb should not print to stderr by default
mcatanzaro@igalia.com [Fri, 22 Dec 2017 20:30:24 +0000 (20:30 +0000)]
generate_offset_extractor.rb should not print to stderr by default
https://bugs.webkit.org/show_bug.cgi?id=181133

Reviewed by Mark Lam.

Remove unneeded print output.

* offlineasm/generate_offset_extractor.rb:

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

3 years ago[DFG] Cleaning up and unifying 32bit code more
utatane.tea@gmail.com [Fri, 22 Dec 2017 19:51:03 +0000 (19:51 +0000)]
[DFG] Cleaning up and unifying 32bit code more
https://bugs.webkit.org/show_bug.cgi?id=181124

Reviewed by Mark Lam.

This patch unifies DFG 32bit code into 64bit code more. In this patch, we move RegExp DFG nodes
from 32bit / 64bit code to the common code. We change some RegExp operations to returning JSCell*
instead of EncodedJSValue. This simplifies DFG implementation.

And we also move HasGenericProperty since we now have JSValueRegsFlushedCallResult. ToPrimive,
LogShadowChickenPrologue, and LogShadowChickenTail are almost the same in 32bit and 64bit.
Thus, it is unified easily.

And we also move some GPRFlushedCallResult from the original places to the places just after
`flushRegisters()` not to spill unnecessary registers.

* dfg/DFGOperations.cpp:
* dfg/DFGOperations.h:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpExec):
(JSC::DFG::SpeculativeJIT::compileRegExpTest):
(JSC::DFG::SpeculativeJIT::compileStringReplace):
(JSC::DFG::SpeculativeJIT::compileHasGenericProperty):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenPrologue):
(JSC::DFG::SpeculativeJIT::compileLogShadowChickenTail):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepAnyInt):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileStringReplace):
* jit/JITOperations.cpp:
* jit/JITOperations.h:
* runtime/StringPrototype.cpp:
(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::removeUsingRegExpSearch):
(JSC::replaceUsingRegExpSearch):
(JSC::operationStringProtoFuncReplaceRegExpEmptyStr):
(JSC::operationStringProtoFuncReplaceRegExpString):
(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingRegExp):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::operationStringProtoFuncReplaceGeneric):
* runtime/StringPrototype.h:

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

3 years ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 18:12:53 +0000 (18:12 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914
<rdar://problem/36196039>

Unreviewed.

Source/JavaScriptCore:

* PlatformGTK.cmake:

Source/WebKit:

I messed up a last-minute change, and inverted the conditional that determines whether to
use the version script. I did test this change to ensure that it worked properly by checking
that the library size was correct, but only in non-developer mode. My test was thwarted by
-fvisibility=hidden. It looks like so few internal symbols are exported that missing the
version script had little impact on the size of the resulting libraries. That's good, I
suppose.

* PlatformGTK.cmake:
* PlatformWPE.cmake:

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

3 years ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 18:06:34 +0000 (18:06 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Carlos Garcia Campos.

Let's build JSC as a static library, and link that static lib to *both* our shared
libjavascriptcoregtk and libwebkit2gtk. Then we can fix this and also filter out all the
private symbols that we're currently exposing in libjavascriptcoregtk, which wouldn't be
possible otherwise. The cost of this is disk space. I think this trade-off is reasonable,
because it's the best way I could think of that accomplishes all our goals: (a) install two
shared libs, (b) export only public API symbols, (c) does not require any linker hacks.

Additionally, build with -fvisibility=hidden so that the compiler knows that many symbols
will be stripped out. This should improve code generation. It's actually how WPE was
previously compiled, but I removed this when I added the version script for WPE, because I
thought it was redundant with the version script. It is not, and we should use both,
according to Ulrich Drepper's "How to Write Shared Libraries." We will use
-fvisibility=hidden on all ports; this should be fine, as long as export macros are used
where needed. This is actually a totally separate change, but it makes sense to do it now if
we consider this bug a catch-all "fix how we link WebKit" issue.

* CMakeLists.txt: Rejigger the default library types, and remove the SHARED_CORE option,
  which is not likely to work properly in ports that are not expecting it. These changes are
  only mildly-related and certainly not required, but it makes sense to clean them up now.
* Source/cmake/OptionsGTK.cmake: Don't set the version script here.
* Source/cmake/OptionsJSCOnly.cmake: Adjust to changes in default library types.
* Source/cmake/OptionsMac.cmake: Adjust to changes in default library types. Override the
  library type variables only when required.
* Source/cmake/OptionsWPE.cmake: Overriding the library type variables is no longer
  required. Also, don't set the version script here.
* Source/cmake/OptionsWin.cmake: Adjust to changes in default library types. Override the
  library type variables only when required.
* Source/cmake/WebKitCompilerFlags.cmake: Build with -fvisibility=hidden,
  -fvisibility-inlines-hidden, and -Wno-attributes.
* Source/cmake/wpesymbols.filter: Removed.

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

3 years ago[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes...
mcatanzaro@igalia.com [Fri, 22 Dec 2017 17:18:43 +0000 (17:18 +0000)]
[GTK] Duplicated symbols in libjavascriptcoregtk and libwebkit2gtk can cause crashes in production builds
https://bugs.webkit.org/show_bug.cgi?id=179914

Reviewed by Carlos Garcia Campos.

.:

* CMakeLists.txt:
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/OptionsMac.cmake:
* Source/cmake/OptionsWPE.cmake:
* Source/cmake/OptionsWin.cmake:
* Source/cmake/WebKitCompilerFlags.cmake:
* Source/cmake/wpesymbols.filter: Removed.

Source/JavaScriptCore:

Add a new JavaScriptCoreGTK build target, to build JSC as a shared library. Link the
original JavaScriptCore build target, which is now a static library, to it. Use
--whole-archive to prevent all the JavaScriptCore symbols from being dropped, since none are
used directly by JavaScriptCoreGTK.

The installed libjavascriptcoregtk-4.0 now corresponds to the JavaScriptCoreGTK target,
instead of the JavaScriptCore target. There is almost no difference on the installed system,
except that we now use a version script when linking, to hide private symbols, since they're
no longer needed by libwebkit2gtk-4.0.so.

Also, move the symbols map here.

* PlatformGTK.cmake:
* javascriptcoregtk-symbols.map: Added.

Source/WebCore:

* CMakeLists.txt: Test for WebCore_LIBRARY_TYPE rather than SHARED_CORE.

Source/WebKit:

Mark a few InjectedBundle symbols with default visibility, so they don't get hidden by
-fvisibility=hidden. Also, remove Windows conditionals, since Windows is not supported by
any GLib ports.

Also, move the symbols map to here, and share it between WPE and GTK.

* CMakeLists.txt:
* PlatformGTK.cmake:
* PlatformWPE.cmake:
* WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.h:
* WebProcess/InjectedBundle/API/glib/WebKitInjectedBundleMain.cpp:
* webkitglib-symbols.map: Renamed from Source/cmake/gtksymbols.filter.

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

3 years ago[RenderTreeBuilder] Move RenderButton::addChild() tree mutation to RenderTreeBuilder
zalan@apple.com [Fri, 22 Dec 2017 16:28:50 +0000 (16:28 +0000)]
[RenderTreeBuilder] Move RenderButton::addChild() tree mutation to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181109
<rdar://problem/36188262>

Reviewed by Antti Koivisto.

Covered by existing tests.

* rendering/RenderButton.cpp:
(WebCore::RenderButton::setInnerRenderer):
(WebCore::RenderButton::updateAnonymousChildStyle const):
(WebCore::RenderButton::addChild): Deleted.
* rendering/RenderButton.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::propagateStyleToAnonymousChildren):
* rendering/RenderElement.h:
(WebCore::RenderElement::updateAnonymousChildStyle const):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):

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

3 years ago[WPE][GTK] Deprecate and replace webkit_form_submission_request_get_text_fields
mcatanzaro@igalia.com [Fri, 22 Dec 2017 16:11:15 +0000 (16:11 +0000)]
[WPE][GTK] Deprecate and replace webkit_form_submission_request_get_text_fields
https://bugs.webkit.org/show_bug.cgi?id=176725

Reviewed by Carlos Garcia Campos.

Source/WebKit:

The problem is this function returns results in a GHashTable, but many fields can have the
same name, or no name at all, and those fields are currently just dropped. It's impossible
to fix, since the GHashTable is part of the API, so deprecate it and add a new function that
returns two GPtrArrays instead.

* UIProcess/API/glib/WebKitFormSubmissionRequest.cpp:
(webkitFormSubmissionRequestCreate):
(webkit_form_submission_request_get_text_fields):
(webkit_form_submission_request_list_text_fields):
* UIProcess/API/gtk/WebKitFormSubmissionRequest.h:
* UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
* UIProcess/API/wpe/WebKitFormSubmissionRequest.h:

Tools:

Test the new function.

* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewSubmitForm):

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

3 years agowebkitpy: Refactor simulator code (Part 1)
jbedard@apple.com [Fri, 22 Dec 2017 14:43:38 +0000 (14:43 +0000)]
webkitpy: Refactor simulator code (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=180555
<rdar://problem/36131381>

Reviewed by Alexey Proskuryakov.

The new SimulatedDeviceManager defined in this patch is designed to
act as a singleton. Consumers may request devices with certain
attributes, the the manager will then return a list of devices fulfilling the
request. The manager will pick between:
        - Existing and booted simulators
        - Existing simulators currently shut down
        - Custom constructed simulators
These simulators will then be globally available.

This patch duplicates code in webkitpy/xcode/simulated_device.py,
webkitpy/xcode/simulator.py and webkitpy/port/ios_simulator.py. This duplicated
code will be removed in parts 2 and 3.

* Scripts/webkitpy/common/version_name_map.py:
(VersionNameMap.__init__): Add tvOS and watchOS.
* Scripts/webkitpy/xcode/device_type.py: Added.
(DeviceType): Holds the software and hardware information for a specific device.
Designed to allow for partial matching.
(DeviceType.from_string): Parses a string (such as iPhone 6s) into a DeviceType
object.
(DeviceType._define_software_variant_from_hardware_family): The software_variant
of a device can usually be implied from its hardware_family.
(DeviceType.check_consistency): Verify that the software_variant matches the
hardware_family and that software_version and hardware_variant have their
respective prerequisites.
(DeviceType.__init__):
(DeviceType.__str__): Converts a DeviceType object into a human readable string.
(DeviceType.__eq__): Compares two DeviceType objects treating None as a wildcard.
(DeviceType.__contains__): Allow partial version mapping.
* Scripts/webkitpy/xcode/device_type_unittest.py: Added.
(DeviceTypeTest):
(DeviceTypeTest.test_iphone_initialization):
(DeviceTypeTest.test_ipad_initialization):
(DeviceTypeTest.test_generic_ios_device):
(DeviceTypeTest.test_watch_initialization):
(DeviceTypeTest.test_tv_initialization):
(DeviceTypeTest.test_from_string):
(DeviceTypeTest.test_comparison):
(DeviceTypeTest.test_contained_in):
* Scripts/webkitpy/xcode/new_simulated_device.py: Added.
(DeviceRequest): Adds additional options to be used when requesting a device.
(DeviceRequest.__init__):
(SimulatedDeviceManager):
(SimulatedDeviceManager.Runtime): Representation of a supported simulated runtime.
Designed as an internal representation, not to be used outside this class.
(SimulatedDeviceManager.Runtime.__init__):
(SimulatedDeviceManager._create_runtimes): Extract a list of available runtimes.
(SimulatedDeviceManager._create_device_with_runtime): Return a new or existing device
with the provided runtime matching the provided dictionary.
(SimulatedDeviceManager.populate_available_devices): Use simctl to update the list of devices
available on this machine.
(SimulatedDeviceManager.available_devices): Populate the list of available device if empty
and return that list.
(SimulatedDeviceManager._find_exisiting_device_for_request): Return an existing device matching
the provided request if one exists.
(SimulatedDeviceManager._find_available_name): Given a name base, return a string which
does not match the name of an initialized device.
(SimulatedDeviceManager. get_runtime_for_device_type): Map device type to runtime object.
(SimulatedDeviceManager._disambiguate_device_type): The user may have requested a DeviceType
with only partial definitions. In this case, use existing runtimes and devices to generate
a DeviceType to build.
(SimulatedDeviceManager._get_device_identifier_for_type): Return a simctl device type string
given a DeviceType object.
(SimulatedDeviceManager._create_or_find_device_for_request): Given a DeviceRequest object,
either find an existing device which matches the request or create one matching
(SimulatedDeviceManager._does_fulfill_request): Given a device and list of requests, return
the request which the provided device matches, if there are any.
(SimulatedDeviceManager._wait_until_device_in_state): Wait until a device enters a specific
state.
(SimulatedDeviceManager.initialize_devices): Given a list of requests, return a list
of devices which fulfill the requests. This function will use both existing devices
and create devices. This function will also start the Simulator.app.
(SimulatedDeviceManager.max_supported_simulators): Uses the number of available cores,
maximum number of processes and the available RAM to calculate the number of
simulated devices this machine can support.
(SimulatorManager.swap): Shuts down the specified device and boots a new one which
matches the specified request.
(SimulatorManager.tear_down): Shut down any simulators managed by this class.
(SimulatedDevice):
(SimulatedDevice.DeviceState): Copied from webkitpy/xcode/simulator.py.
(SimulatedDevice.__init__):
(SimulatedDevice.state): Use the device's plist to determine the current state of
the device. Note that this function will cache the result for a second.
(SimulatedDevice.is_booted_or_booting):
(SimulatedDevice._shut_down): Shut down this device and remove it from the list of
initialized devices.
(SimulatedDevice._delete): Delete this device and remove it from the list of
available devices.
(SimulatedDevice._tear_down): Shut down and delete this device, if it is managed by
the SimulatorManager.
(SimulatedDevice.install_app): Copied from webkitpy/xcode/simulated_device.py.
(SimulatedDevice.launch_app): Ditto.
(SimulatedDevice.__eq__): Ditto.
(SimulatedDevice.__ne__): Ditto.
(SimulatedDevice.__repr__): Map state to string and include device type.
* Scripts/webkitpy/xcode/new_simulated_device_unittest.py: Added.
(SimulatedDeviceTest):
(SimulatedDeviceTest.reset_simulated_device_manager):
(SimulatedDeviceTest.tear_down):
(SimulatedDeviceTest.mock_host_for_simctl):
(device_by_criteria):
(test_available_devices):
(test_existing_simulator):
(change_state_to):
(test_swapping_devices):

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

3 years agoREGRESSION(r226228) Build error with unqualified isfinite() in MediaCapabilities.cpp
Ms2ger@igalia.com [Fri, 22 Dec 2017 10:12:20 +0000 (10:12 +0000)]
REGRESSION(r226228) Build error with unqualified isfinite() in MediaCapabilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=181118

Unreviewed build fix.

* Modules/mediacapabilities/MediaCapabilities.cpp:
(WebCore::isValidVideoConfiguration): qualify the one unqualified isfinite() call.

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

3 years ago[DFG] Unify bunch of DFG 32bit code into 64bit code
utatane.tea@gmail.com [Fri, 22 Dec 2017 09:07:35 +0000 (09:07 +0000)]
[DFG] Unify bunch of DFG 32bit code into 64bit code
https://bugs.webkit.org/show_bug.cgi?id=181083

Reviewed by Mark Lam.

There are bunch of the completely same code in 32bit and 64bit DFG.
This is largely because of the old DFG code. At that time, we do not
have enough abstraction to describe them in one code. But now, we have
JSValueRegs, JSValueRegsTemporary etc. They allow DFG to write 32bit and
64bit handling in one code.

This patch unifies easy ones. This is nice since basically 32bit code is
a bit old and not maintained so much compared to 64bit. If we can drop
32bit specific code as much as possible, it would be nice. Furthermore,
we can find various mistakes in 32bit: For example, NewObject does not have
mutatorFence in 32bit while 64bit has it. This unification is a chance
to fix miscellaneous bugs in 32bit while reducing maintenance burden.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileGetEnumerableLength):
(JSC::DFG::SpeculativeJIT::compileToIndexString):
(JSC::DFG::SpeculativeJIT::compilePutByIdWithThis):
(JSC::DFG::SpeculativeJIT::compileHasStructureProperty):
(JSC::DFG::SpeculativeJIT::compileGetPropertyEnumerator):
(JSC::DFG::SpeculativeJIT::compileGetEnumeratorPname):
(JSC::DFG::SpeculativeJIT::compileGetGetter):
(JSC::DFG::SpeculativeJIT::compileGetSetter):
(JSC::DFG::SpeculativeJIT::compileGetCallee):
(JSC::DFG::SpeculativeJIT::compileGetArgumentCountIncludingThis):
(JSC::DFG::SpeculativeJIT::compileStrCat):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
(JSC::DFG::SpeculativeJIT::compileCreateThis):
(JSC::DFG::SpeculativeJIT::compileNewObject):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

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

3 years ago[DFG] Add JSValueRegsFlushedCallResult
utatane.tea@gmail.com [Fri, 22 Dec 2017 08:19:55 +0000 (08:19 +0000)]
[DFG] Add JSValueRegsFlushedCallResult
https://bugs.webkit.org/show_bug.cgi?id=181075

Reviewed by Mark Lam.

Add JSValueRegsFlushedCallResult, which is appropriate for the JSValueRegs result
of the function call after flushing. We can remove bunch of `#if USE(JSVALUE32_64)`
code and simplify them.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileFromCharCode):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithString):
(JSC::DFG::SpeculativeJIT::compileGetByValForObjectWithSymbol):
(JSC::DFG::SpeculativeJIT::compileParseInt):
(JSC::DFG::SpeculativeJIT::emitUntypedBitOp):
(JSC::DFG::SpeculativeJIT::emitUntypedRightShiftBitOp):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileArithMul):
(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithRounding):
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::JSValueRegsFlushedCallResult::JSValueRegsFlushedCallResult):
(JSC::DFG::JSValueRegsFlushedCallResult::regs):

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

3 years agoAdd UI for A/B testing on owned commits.
dewei_zhu@apple.com [Fri, 22 Dec 2017 06:25:24 +0000 (06:25 +0000)]
Add UI for A/B testing on owned commits.
https://bugs.webkit.org/show_bug.cgi?id=177993

Reviewed by Ryosuke Niwa.

Customizable test group form should support specifying and A/B testing owned commits.
Introduce 'IntermediateCommitSet' to achieve the goal of specifying owned commits for A/B test.
In order to support configure A/B testing that may need to add/remove owned commits, CommitSet may be the
closest thing we can get. However, it is a subclass of DataModelObject, which means CommitSet is a representation
of 'commit_sets' table and can only be updated from server data. Thus, we want something like CustomCommitSet that
is not a representation of database table, but unlike CustomCommitSet, it should store information about commits
rather than a revision. As a result, IntermediateCommitSet is introduced. For a longer term, we may replace
CustomCommitSet with IntermediateCommitSet as it carries more information and could potentially simplify some
CustomCommitSet related APIs by using commit id instead of commit revision.
Extend ButtonBase class so that we can enable/disable a button.

* public/v3/components/button-base.js:
(ButtonBase):
(ButtonBase.prototype.setDisabled): Enable/disable a button.
(ButtonBase.prototype.render):
(ButtonBase.cssTemplate): Added css rule for disabled button.
* public/v3/components/combo-box.js: Added.
(ComboBox):
(ComboBox.prototype.didConstructShadowTree): Setup text field.
(ComboBox.prototype.render):
(ComboBox.prototype._candidateNameForCurrentIndex): Returns candidate name based on current index.
(ComboBox.prototype._candidateElementForCurrentIndex): Returns a list element based on current index.
(ComboBox.prototype._autoCompleteIfOnlyOneMatchingItem): Supports auto completion.
(ComboBox.prototype._moveCandidate): Supports arrow up/down.
(ComboBox.prototype._updateCandidateList): Hide/unhide candidate list and high-light selected candidate.
(ComboBox.prototype._renderCandidateList): Render candidate list base on value on text field.
(ComboBox.htmlTemplate):
(ComboBox.cssTemplate):
* public/v3/components/customizable-test-group-form.js:
(CustomizableTestGroupForm):
(CustomizableTestGroupForm.prototype.didConstructShadowTree): Only fetch the full commits when we about to create a customized A/B tests.
(CustomizableTestGroupForm.prototype._computeCommitSetMap): Compute the CustomCommitSet based on IntermediateCommitSet and
other revision related information in some map.
(CustomizableTestGroupForm.prototype.render):
(CustomizableTestGroupForm.prototype._renderCustomRevisionTable):
(CustomizableTestGroupForm.prototype._constructTableBodyList): This function builds table body for each highest level repository.
It will also include the owned repository rows in the same table body if the commits for highest level repository owns other commits.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithoutOwner): Build a table row for a highest level repository.
(CustomizableTestGroupForm.prototype._constructTableRowForCommitsWithOwner): Build a table row for repository with owner.
(CustomizableTestGroupForm.prototype._constructTableRowForIncompleteOwnedCommits): Build a table row for an unspecified repository.
(CustomizableTestGroupForm.prototype._constructRevisionRadioButtons): Update the logic to support build radio buttons for the owned repository rows.
(CustomizableTestGroupForm.cssTemplate):
* public/v3/components/minus-button.js: Added.
(MinusButton):
(MinusButton.buttonContent):
* public/v3/components/owned-commit-viewer.js:
(OwnedCommitViewer.prototype._renderOwnedCommitTable):
* public/v3/components/plus-button.js: Added.
(PlusButton):
(PlusButton.buttonContent):
* public/v3/index.html: Added new components.
* public/v3/models/commit-log.js: Added owner and owned commit information.
(CommitLog):
(CommitLog.prototype.ownedCommits): Returns a list of commits owned by current commit.
(CommitLog.prototype.ownerCommit): Return owner commit of current commit.
(CommitLog.prototype.setOwnerCommits): Set owner commit of current commit.
(CommitLog.prototype.label): Remove unnecessary 'else'.
(CommitLog.prototype.diff): Remove unused 'fromRevisionForURL' and tiny code cleanup.
(CommitLog.prototype.ownedCommitForOwnedRepository):
(CommitLog.prototype.fetchOwnedCommits): Sets the owner for those owned commits. The owner of a commit with multiple owner
commits will be overwritten by each time this function is called.
(CommitLog.ownedCommitDifferenceForOwnerCommits): A more generic version of diffOwnedCommits. diffOwnedCommits only accepts 2 commits,
but ownedCommitDifferenceForOwnerCommits supports multiple commits.
(CommitLog.diffOwnedCommits): Deleted and should use 'CommitLog.ownedCommitDifferenceForOwnerCommits' instead.
* public/v3/models/commit-set.js:
(CommitSet.prototype.topLevelRepositories):
(CommitSet.prototype.commitForRepository):
(IntermediateCommitSet): Take CommitSet as argument, note the commit from CommitSet doesn't contains full information of the commit.
Always call 'fetchFullCommits' once before any further usages.
(IntermediateCommitSet.prototype.fetchCommitLogs): Fetch all commits information in current commit set.
(IntermediateCommitSet.prototype._fetchCommitLogAndOwnedCommits): Fetch commit log and owned commits if necessary.
(IntermediateCommitSet.prototype.updateRevisionForOwnerRepository): Updates a commit for a repository by given a revision of the repository.
(IntermediateCommitSet.prototype.setCommitForRepository): Sets a commit for a repository in commit set.
(IntermediateCommitSet.prototype.removeCommitForRepository): Removes a commit for a repository in commit set.
(IntermediateCommitSet.prototype.ownsCommitsForRepository): Returns whether the commit for repository owns commits.
(IntermediateCommitSet.prototype.repositories): Returns all repositories in the commit set.
(IntermediateCommitSet.prototype.highestLevelRepositories): Returns all repositories those don't have an owner.
(IntermediateCommitSet.prototype.commitForRepository): Returns a commit for a given repository.
(IntermediateCommitSet.prototype.ownedRepositoriesForOwnerRepository): Returns all repositories owned by a given repository in current commit set.
(IntermediateCommitSet.prototype.ownerCommitForRepository): Returns owner commit for a given owned repository.
* tools/js/v3-models.js: Added import for 'IntermediateCommitSet'.
* unit-tests/commit-log-tests.js: Updated unittest which tests 'ownerCommit' function.
* unit-tests/commit-set-tests.js: Added unit tests for IntermediateCommitSet.

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

3 years agocom.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMe...
commit-queue@webkit.org [Fri, 22 Dec 2017 05:37:47 +0000 (05:37 +0000)]
com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057
<rdar://problem/36167175>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::stop): Fixed comment typo.

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

3 years agoServiceWorkerThreadProxy should set the correct cookie and cache partitioning options
commit-queue@webkit.org [Fri, 22 Dec 2017 05:36:13 +0000 (05:36 +0000)]
ServiceWorkerThreadProxy should set the correct cookie and cache partitioning options
https://bugs.webkit.org/show_bug.cgi?id=181000

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/fetch-response-taint.https-expected.txt:

Source/WebCore:

Covered by rebased test.

Add a way to set the domain for cache partition explicitly on a ScriptExecutionContext.
This is used by ServiceWorkerThreadProxy document to mimick the fact that it may be
a service worker used by iframes that have a cross origin top document.
Updated code to use that new utility routine.

* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::connect):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::domainForCachePartition const):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::setDomainForCachePartition):
* html/DOMURL.cpp:
(WebCore::DOMURL::revokeObjectURL):
* inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::cachedResource):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::create):
* loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setDomainForCachePartition):
* testing/Internals.cpp:
(WebCore::Internals::isLoadingFromMemoryCache):
* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::topOriginURL):
(WebCore::createPageForServiceWorker):
(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):
* workers/service/context/ServiceWorkerThreadProxy.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest):

Source/WebKit:

Update Service Worker WebPreferencesStore based on the first web page added.
This allows having the right storage blocking policy.

Storing that policy in the context manager to set it properly when
creating a new service worker thread proxy.

Set up correctly partitioning parameters in the dummy Document used by the service worker.

* UIProcess/ServiceWorkerProcessProxy.cpp:
(WebKit::ServiceWorkerProcessProxy::updatePreferencesStore):
* UIProcess/ServiceWorkerProcessProxy.h:
* UIProcess/WebPageProxy.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::pageAddedToProcess):
* UIProcess/WebProcessPool.h:
* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::getAuthenticationInfo):
* WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::updatePreferencesStore):
(WebKit::WebSWContextManagerConnection::installServiceWorker):
* WebProcess/Storage/WebSWContextManagerConnection.h:
* WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Source/WebKitLegacy/mac:

* Misc/WebCache.mm:
(+[WebCache addImageToCache:forURL:forFrame:]):

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

3 years ago[WinCairo] fix build after r226245
commit-queue@webkit.org [Fri, 22 Dec 2017 03:34:27 +0000 (03:34 +0000)]
[WinCairo] fix build after r226245
https://bugs.webkit.org/show_bug.cgi?id=181113

Unreviewed build fix.

No new tests, no change in behavior.

Patch by Christopher Reid <chris.reid@sony.com> on 2017-12-21

* html/AttachmentTypes.h: Added an include for std::optional

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

3 years agoWKPreferences doesn’t expose editable link behavior
mitz@apple.com [Fri, 22 Dec 2017 03:23:18 +0000 (03:23 +0000)]
WKPreferences doesn’t expose editable link behavior
https://bugs.webkit.org/show_bug.cgi?id=181111

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKPreferences.mm:
(toAPI): Added. Converts WebCore::EditableLinkBehavior to _WKEditableLinkBehavior.
(toEditableLinkBehavior): Added. Converts the other way.
(-[WKPreferences _editableLinkBehavior]): Added this getter.
(-[WKPreferences _setEditableLinkBehavior:]): Ditto.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new property.

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

3 years agolowering get_by_val to GetById inside bytecode parser should check for BadType exit...
sbarati@apple.com [Fri, 22 Dec 2017 03:05:18 +0000 (03:05 +0000)]
lowering get_by_val to GetById inside bytecode parser should check for BadType exit kind
https://bugs.webkit.org/show_bug.cgi?id=181112

Reviewed by Mark Lam.

The React subtest in Speedometer has a get_by_val it always converts
into a GetById in the DFG. This GetById always exits because of the incoming
identifier is a rope. This patch fixes this infinite exit loop
by only doing this transformation if we haven't exited due to BadType.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):

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

3 years ago"Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watch...
lingcherd_ho@apple.com [Fri, 22 Dec 2017 02:17:58 +0000 (02:17 +0000)]
"Release 32-bit Build EWS" queue should be moved up to macOS High Sierra on Bot Watcher's Dashboard
https://bugs.webkit.org/show_bug.cgi?id=181071

Reviewed by Alexey Proskuryakov.

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

3 years agoRefactor MessagePortChannel family classes for an easier multi-process split.
beidson@apple.com [Fri, 22 Dec 2017 01:17:45 +0000 (01:17 +0000)]
Refactor MessagePortChannel family classes for an easier multi-process split.
https://bugs.webkit.org/show_bug.cgi?id=180981

Reviewed by Andy Estes.

No new tests (Refactor, no behavior change)

- Make MessagePortChannel an abstract class instead of a wrapper around a mysterious "platform" class.
- Implement the "in-process" channel for WK1 and WK2-for-now.
- Other random cleanup and modernization of this code.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:

* dom/InProcessMessagePortChannel.cpp: Added.
(WebCore::InProcessMessagePortChannel::createChannelBetweenPorts):
(WebCore::InProcessMessagePortChannel::create):
(WebCore::InProcessMessagePortChannel::InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::~InProcessMessagePortChannel):
(WebCore::InProcessMessagePortChannel::postMessageToRemote):
(WebCore::InProcessMessagePortChannel::takeAllMessagesFromRemote):
(WebCore::InProcessMessagePortChannel::isConnectedTo):
(WebCore::InProcessMessagePortChannel::entangleIfOpen):
(WebCore::InProcessMessagePortChannel::disentangle):
(WebCore::InProcessMessagePortChannel::hasPendingActivity):
(WebCore::InProcessMessagePortChannel::locallyEntangledPort):
(WebCore::InProcessMessagePortChannel::takeEntangledChannel):
(WebCore::InProcessMessagePortChannel::close):
(WebCore::InProcessMessagePortChannel::setRemotePort):
* dom/InProcessMessagePortChannel.h: Added.
(WebCore::InProcessMessagePortChannel::MessagePortQueue::create):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::takeAllMessages):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::isEmpty):
(WebCore::InProcessMessagePortChannel::MessagePortQueue::MessagePortQueue):

* dom/MessageChannel.cpp:
(WebCore::MessageChannel::MessageChannel):
* dom/MessageChannel.h:
(WebCore::MessageChannel::create):
(WebCore::MessageChannel::port1 const):
(WebCore::MessageChannel::port2 const):

* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage):
(WebCore::MessagePort::disentangle):
(WebCore::MessagePort::entangle):
(WebCore::MessagePort::hasPendingActivity const):
* dom/MessagePort.h:

* dom/MessagePortChannel.cpp: Added.
(WebCore::MessagePortChannel::createChannelBetweenPorts):
(WebCore::MessagePortChannel::MessagePortChannel):
* dom/MessagePortChannel.h:
(WebCore::MessagePortChannel::EventData::EventData):
(WebCore::MessagePortChannel::~MessagePortChannel):

* dom/default/PlatformMessagePortChannel.cpp: Removed.
* dom/default/PlatformMessagePortChannel.h: Removed.
* workers/service/context/ServiceWorkerThread.h:

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

3 years agoRename NoEventDispatchAssertion to ScriptDisallowedScope
rniwa@webkit.org [Fri, 22 Dec 2017 01:10:32 +0000 (01:10 +0000)]
Rename NoEventDispatchAssertion to ScriptDisallowedScope
https://bugs.webkit.org/show_bug.cgi?id=181102

Reviewed by Zalan Bujtas.

Renamed the class.

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::canExecuteScripts):
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::executeNodeInsertionWithScriptAssertion):
(WebCore::ContainerNode::removeDetachedChildren):
(WebCore::ContainerNode::insertBeforeCommon):
(WebCore::ContainerNode::appendChildCommon):
(WebCore::ContainerNode::removeBetween):
(WebCore::dispatchChildInsertionEvents):
(WebCore::dispatchChildRemovalEvents):
* dom/ContainerNodeAlgorithms.cpp:
(WebCore::notifyChildNodeInserted):
(WebCore::notifyChildNodeRemoved):
* dom/Document.cpp:
(WebCore::Document::resolveStyle):
(WebCore::isSafeToUpdateStyleOrLayout):
(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::Document::dispatchWindowEvent):
(WebCore::Document::dispatchWindowLoadEvent):
(WebCore::Document::applyPendingXSLTransformsTimerFired):
* dom/Element.cpp:
(WebCore::Element::addShadowRoot):
(WebCore::Element::attachAttributeNodeIfNeeded):
(WebCore::Element::setAttributeNode):
(WebCore::Element::setAttributeNodeNS):
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
* dom/NoEventDispatchAssertion.h: Removed.
* dom/Node.cpp:
(WebCore::Node::dispatchSubtreeModifiedEvent):
(WebCore::Node::dispatchDOMActivateEvent):
* dom/ScriptDisallowedScope.h: Copied from Source/WebCore/dom/NoEventDispatchAssertion.h.
(WebCore::ScriptDisallowedScope::ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::~ScriptDisallowedScope):
(WebCore::ScriptDisallowedScope::InMainThread::isEventDispatchAllowedInSubtree):
(WebCore::ScriptDisallowedScope::InMainThread::isScriptAllowed):
(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Deleted.
(WebCore::NoEventDispatchAssertion::isEventAllowedInMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::~InMainThread): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventDispatchAllowedInSubtree): Deleted.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventAllowed): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::~EventAllowedScope): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNode): Deleted.
(WebCore::NoEventDispatchAssertion::EventAllowedScope::isAllowedNodeInternal): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::DisableAssertionsInScope): Deleted.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope::~DisableAssertionsInScope): Deleted.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::executeClassicScript):
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForDocumentSuspension):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
* history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* history/PageCache.cpp:
(WebCore::PageCache::addIfCacheable):
* html/HTMLElement.cpp:
(WebCore::textToFragment):
(WebCore::HTMLElement::setInnerText):
* html/HTMLMediaElement.cpp:
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setInnerTextValue):
* html/track/VTTCue.cpp:
(WebCore::VTTCue::createCueRenderingTree):
(WebCore::VTTCue::updateDisplayTree):
(WebCore::VTTCue::removeDisplayTree):
* loader/FormSubmission.cpp:
* loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::ensureCustomFontData):
* page/LayoutContext.cpp:
(WebCore::LayoutContext::layout):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::performLayoutWithFlattening):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollRectToVisible):
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::updateReferencedText):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::clearShadowTree):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::draw):

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

3 years agoUpdate Service Workers status to Supported in Preview
mjs@apple.com [Fri, 22 Dec 2017 01:03:57 +0000 (01:03 +0000)]
Update Service Workers status to Supported in Preview
https://bugs.webkit.org/show_bug.cgi?id=181093

Reviewed by Andy Estes.

* features.json:

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

3 years agoSkip http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed...
wilander@apple.com [Fri, 22 Dec 2017 00:58:00 +0000 (00:58 +0000)]
Skip http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html
https://bugs.webkit.org/show_bug.cgi?id=181108

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years agoUnreviewed test fix after r226224.
bfulgham@apple.com [Thu, 21 Dec 2017 23:57:56 +0000 (23:57 +0000)]
Unreviewed test fix after r226224.
<rdar://problem/36185975>

Pasteboard data is more than a dictionary. We have to whitelist NSString
and NSArray as well. Change method name to reflect that we take a whitelist
of classes that are allowed to be unarchived in the call.
Source/WebCore:

* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write): Use revised method.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:

* pal/spi/cocoa/NSKeyedArchiverSPI.h:
(unarchivedObjectOfClassesFromData):
(unarchivedObjectOfClassFromData): Deleted.

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

3 years agoAdd WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired.
mark.lam@apple.com [Thu, 21 Dec 2017 23:05:11 +0000 (23:05 +0000)]
Add WTF::PoisonedUniquePtr to replace std::unique_ptr when poisoning is desired.
https://bugs.webkit.org/show_bug.cgi?id=181062
<rdar://problem/36167040>

Reviewed by Chris Dumez.

Source/JavaScriptCore:

* runtime/JSCPoisonedPtr.cpp:
- Added a needed #include.

Source/WTF:

* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/PointerAsserts.cpp: Copied from Source/WTF/wtf/RefPtr.cpp.
- renamed file because we asserts all kinds of pointers in here, not just RefPtr.

* wtf/Poisoned.h:
- added a missing #include.
- make constexpr poison values more scrambled.
(WTF::makePoison):

* wtf/PoisonedUniquePtr.h: Added.
(WTF::PoisonedUniquePtr::PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::~PoisonedUniquePtr):
(WTF::PoisonedUniquePtr::create):
(WTF::PoisonedUniquePtr::operator=):
(WTF::PoisonedUniquePtr::get const):
(WTF::PoisonedUniquePtr::operator[] const):
(WTF::PoisonedUniquePtr::clear):
(WTF::PoisonedUniquePtr::destroy):
(WTF::PoisonedUniquePtr::clearWithoutDestroy):
(WTF::makePoisonedUnique):
* wtf/RefPtr.cpp: Removed.

Tools:

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

* TestWebKitAPI/Tests/WTF/ConstExprPoisoned.cpp:
- Removed an unneeded #include.

* TestWebKitAPI/Tests/WTF/PoisonedUniquePtr.cpp: Added.
(TestWebKitAPI::TEST):
(TestWebKitAPI::poisonedPtrFoo):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForNonTriviallyDestructibleArrays.cpp: Added.
(TestWebKitAPI::TEST):
* TestWebKitAPI/Tests/WTF/PoisonedUniquePtrForTriviallyDestructibleArrays.cpp: Added.
(TestWebKitAPI::TEST):

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

3 years ago[RenderTreeBuilder] Move RenderRubyAsInline::addChild mutation to a RenderTreeBuilder
zalan@apple.com [Thu, 21 Dec 2017 23:03:28 +0000 (23:03 +0000)]
[RenderTreeBuilder] Move RenderRubyAsInline::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181101
<rdar://problem/36184788>

Reviewed by Antti Koivisto.

* rendering/RenderRuby.cpp:
(WebCore::isRubyBeforeBlock): Deleted.
(WebCore::isRubyAfterBlock): Deleted.
(WebCore::rubyBeforeBlock): Deleted.
(WebCore::rubyAfterBlock): Deleted.
(WebCore::createAnonymousRubyInlineBlock): Deleted.
(WebCore::lastRubyRun): Deleted.
(WebCore::RenderRubyAsInline::addChild): Deleted.
* rendering/RenderRuby.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderRuby.h:

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

3 years agoUpdate Credential Management API for WebAuthentication
jiewen_tan@apple.com [Thu, 21 Dec 2017 22:56:11 +0000 (22:56 +0000)]
Update Credential Management API for WebAuthentication
https://bugs.webkit.org/show_bug.cgi?id=181082
<rdar://problem/36055239>

Reviewed by Daniel Bates.

Source/WebCore:

Part 1/2

In this patch, it restructure a bit for existing Credential Management API codebase:
1. Rename the folder from credentials to credentialmanagement for better understanding.
2. Remove unneeded dummy codes, i.e. PasswordCredential and FederatedCredential.
3. Core API and layout tests are updated correspondingly as well.

Rebaseline test results.

* CMakeLists.txt:
* DerivedSources.make:
* Modules/credentialmanagement/BasicCredential.cpp: Renamed from Source/WebCore/Modules/credentials/BasicCredential.cpp.
(WebCore::BasicCredential::BasicCredential):
(WebCore::BasicCredential::type const):
* Modules/credentialmanagement/BasicCredential.h: Renamed from Source/WebCore/Modules/credentials/BasicCredential.h.
(WebCore::BasicCredential::id const):
* Modules/credentialmanagement/BasicCredential.idl: Renamed from Source/WebCore/Modules/credentials/BasicCredential.idl.
* Modules/credentialmanagement/CredentialCreationOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialData.h.
* Modules/credentialmanagement/CredentialCreationOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialData.idl.
* Modules/credentialmanagement/CredentialRequestOptions.h: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.h.
* Modules/credentialmanagement/CredentialRequestOptions.idl: Renamed from Source/WebCore/Modules/credentials/CredentialRequestOptions.idl.
* Modules/credentialmanagement/CredentialsContainer.cpp: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.cpp.
(WebCore::CredentialsContainer::get):
(WebCore::CredentialsContainer::store):
(WebCore::CredentialsContainer::isCreate):
(WebCore::CredentialsContainer::preventSilentAccess):
* Modules/credentialmanagement/CredentialsContainer.h: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.h.
(WebCore::CredentialsContainer::create):
(WebCore::CredentialsContainer::CredentialsContainer):
* Modules/credentialmanagement/CredentialsContainer.idl: Renamed from Source/WebCore/Modules/credentials/CredentialsContainer.idl.
* Modules/credentialmanagement/NavigatorCredentials.cpp: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.cpp.
(WebCore::NavigatorCredentials::supplementName):
(WebCore::NavigatorCredentials::credentials):
(WebCore::NavigatorCredentials::from):
* Modules/credentialmanagement/NavigatorCredentials.h: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.h.
* Modules/credentialmanagement/NavigatorCredentials.idl: Renamed from Source/WebCore/Modules/credentials/NavigatorCredentials.idl.
* Modules/credentials/CredentialCreationOptions.h: Removed.
* Modules/credentials/CredentialCreationOptions.idl: Removed.
* Modules/credentials/CredentialUserData.h: Removed.
* Modules/credentials/CredentialUserData.idl: Removed.
* Modules/credentials/FederatedCredential.cpp: Removed.
* Modules/credentials/FederatedCredential.h: Removed.
* Modules/credentials/FederatedCredential.idl: Removed.
* Modules/credentials/FederatedCredentialInit.h: Removed.
* Modules/credentials/FederatedCredentialInit.idl: Removed.
* Modules/credentials/FederatedCredentialRequestOptions.h: Removed.
* Modules/credentials/FederatedCredentialRequestOptions.idl: Removed.
* Modules/credentials/PasswordCredential.cpp: Removed.
* Modules/credentials/PasswordCredential.h: Removed.
* Modules/credentials/PasswordCredential.idl: Removed.
* Modules/credentials/PasswordCredentialData.h: Removed.
* Modules/credentials/PasswordCredentialData.idl: Removed.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

* credentials/idlharness-expected.txt:

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

3 years agoStorage Access API: Allow requests from non-sandboxed iframes
wilander@apple.com [Thu, 21 Dec 2017 22:50:37 +0000 (22:50 +0000)]
Storage Access API: Allow requests from non-sandboxed iframes
https://bugs.webkit.org/show_bug.cgi?id=181099
<rdar://problem/36184501>

Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. Changed existing tests.

* dom/Document.cpp:
(WebCore::Document::requestStorageAccess):

LayoutTests:

* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe.html:

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

3 years agoAddress additional review feedback after r226182.
aestes@apple.com [Thu, 21 Dec 2017 22:47:16 +0000 (22:47 +0000)]
Address additional review feedback after r226182.

* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentRequest):

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

3 years agoMinor cleanup in WebContentReaderCocoa after r226213
rniwa@webkit.org [Thu, 21 Dec 2017 22:32:14 +0000 (22:32 +0000)]
Minor cleanup in WebContentReaderCocoa after r226213
https://bugs.webkit.org/show_bug.cgi?id=181104

Reviewed by Wenson Hsieh.

Deployed early exists in the case of attachment replacements to make the code easier to read.

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentAndAddResources):
(WebCore::markupForFragmentInDocument): Extracted out of sanitizeMarkupWithArchive.
(WebCore::sanitizeMarkupWithArchive):
(WebCore::WebContentReader::readImage): Simplified the return logic.

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

3 years agoUpdated Swedish translation
mcatanzaro@igalia.com [Thu, 21 Dec 2017 22:14:26 +0000 (22:14 +0000)]
Updated Swedish translation
https://bugs.webkit.org/show_bug.cgi?id=180823

Patch by Josef Andersson <josef.andersson@fripost.org> on 2017-12-21
Rubber-stamped by Michael Catanzaro.

* sv.po:

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

3 years ago[RenderTreeBuilder] Move RenderRubyAsBlock::addChild mutation to a RenderTreeBuilder
zalan@apple.com [Thu, 21 Dec 2017 22:05:26 +0000 (22:05 +0000)]
[RenderTreeBuilder] Move RenderRubyAsBlock::addChild mutation to a RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181090
<rdar://problem/36180916>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

Covered by existing tests.

* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsBlock::addChild): Deleted.
* rendering/RenderRuby.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
* rendering/updating/RenderTreeBuilderRuby.cpp:
(WebCore::isAnonymousRubyInlineBlock):
(WebCore::isRubyBeforeBlock):
(WebCore::isRubyAfterBlock):
(WebCore::isRubyChildForNormalRemoval):
(WebCore::rubyBeforeBlock):
(WebCore::rubyAfterBlock):
(WebCore::createAnonymousRubyInlineBlock):
(WebCore::lastRubyRun):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderRuby.h:

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

3 years agoUpdate FULLSCREEN_API feature defines.
commit-queue@webkit.org [Thu, 21 Dec 2017 21:10:12 +0000 (21:10 +0000)]
Update FULLSCREEN_API feature defines.
https://bugs.webkit.org/show_bug.cgi?id=181015

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

Change enabled iphone sdk for FULLSCREEN_API.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

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

3 years agoononline, onoffline and navigator.onLine don't work if Parallels or VMWare is installed
cdumez@apple.com [Thu, 21 Dec 2017 21:00:50 +0000 (21:00 +0000)]
ononline, onoffline and navigator.onLine don't work if Parallels or VMWare is installed
https://bugs.webkit.org/show_bug.cgi?id=32327

Reviewed by Alexey Proskuryakov.

When determining if we are online, ignore virtual interfaces added on the host machine
by Parallels and VMWare. This is needed because those interfaces are always up, whether
or not the virtual machine is running. This was causing navigator.onLine to always return
true on the host machine when Parallels or VMWare was installed.

Note that it is safe to ignore these interfaces and that it does not cause issues when
running Safari inside the virtual machine because those virtual interfaces are only
exposed on the host machine. Inside, the virtual machine, we see the usual en0 interface.

* platform/network/mac/NetworkStateNotifierMac.cpp:
(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):

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

3 years ago[RenderTreeBuilder] Move repeating code to RenderTreeBuilder::insertInternal
zalan@apple.com [Thu, 21 Dec 2017 20:59:12 +0000 (20:59 +0000)]
[RenderTreeBuilder] Move repeating code to RenderTreeBuilder::insertInternal
https://bugs.webkit.org/show_bug.cgi?id=181094

Reviewed by Antti Koivisto.

* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):

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

3 years agoBuild fix after r226223
commit-queue@webkit.org [Thu, 21 Dec 2017 20:35:21 +0000 (20:35 +0000)]
Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181088

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::exitFullscreen):

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

3 years agoStorage Access API: Make DocumentLoader::willSendRequest() and WebFrameLoaderClient...
wilander@apple.com [Thu, 21 Dec 2017 19:56:45 +0000 (19:56 +0000)]
Storage Access API: Make DocumentLoader::willSendRequest() and WebFrameLoaderClient::detachedFromParent2() tell the network process to get rid of any sub frame access entries
https://bugs.webkit.org/show_bug.cgi?id=180728
<rdar://problem/36009288>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html
       http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* dom/Document.cpp:
(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
(WebCore::Document::hasFrameSpecificStorageAccess):
(WebCore::Document::setHasFrameSpecificStorageAccess):
* dom/Document.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
* loader/EmptyFrameLoaderClient.h:
* loader/FrameLoaderClient.h:
* platform/network/NetworkStorageSession.h:
* platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::removeStorageAccess):

Source/WebKit:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::removeStorageAccess):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::removeStorageAccess):
* UIProcess/Network/NetworkProcessProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::removeStorageAccess):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::hasStorageAccess):
(WebKit::WebsiteDataStore::requestStorageAccess):
(WebKit::WebsiteDataStore::removeStorageAccess):
* UIProcess/WebsiteData/WebsiteDataStore.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* WebProcess/WebPage/WebPage.cpp:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:

LayoutTests:

This change calls the network process to clear any storage access
entries when a subframe navigates or is detached.

* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-non-recent-user-interaction-expected.txt:
* http/tests/storageAccess/has-storage-access-from-prevalent-domain-with-recent-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-iframe-expected.txt:
* http/tests/storageAccess/request-and-deny-storage-access-cross-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-access-then-detach-should-not-have-access.html: Added.
* http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt: Added.
* http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html: Added.
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-non-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-recent-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-without-user-interaction-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-nested-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin-expected.txt:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-with-unique-origin.html:
* http/tests/storageAccess/request-storage-access-cross-origin-sandboxed-iframe-without-allow-token-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-expected.txt:
* http/tests/storageAccess/request-storage-access-same-origin-sandboxed-iframe-without-allow-token-expected.txt:
* http/tests/storageAccess/resources/echo-incoming-cookies-as-json.php: Added.
* http/tests/storageAccess/resources/has-storage-access-iframe.html:
* http/tests/storageAccess/resources/request-storage-access-iframe.html:
* http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html: Added.
* platform/wk2/TestExpectations:
    Removed http/tests/storageAccess/request-storage-access-top-frame.html
    because it now only passes on High Sierra+.
* platform/mac-wk2/TestExpectations:
    Added the new tests as [ Pass ] on High Sierra+.

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

3 years ago[Web Animations] Complete support for keyframe animations
graouts@webkit.org [Thu, 21 Dec 2017 19:51:35 +0000 (19:51 +0000)]
[Web Animations] Complete support for keyframe animations
https://bugs.webkit.org/show_bug.cgi?id=179708

Reviewed by Dean Jackson.

Source/WebCore:

We implement section 5.10.3 "Processing a keyframes argument" of the Web Animations spec to handle
multiple keyframes, rather than only two, provided either in iterable (ie. array) or property-index
(ie. dictionary) form. Although we don't currently support timing function or composite operations,
we parse them as well.

While there are minimal test changes, there will be a host of changes in the next patch in which
we turn Element.animate() on.

* animation/KeyframeEffect.cpp:
(WebCore::IDLAttributeNameToAnimationPropertyName): New utility to convert an IDL-parsed JS property
into a WebCore CSSPropertyID.
(WebCore::computeMissingKeyframeOffsets): Converts "null" offsets into computed offset values as specified
in section 4.4.2. "Calculating computed keyframes".
(WebCore::processIterableKeyframes): Process the iterable form of the keyframes argument.
(WebCore::processKeyframeLikeObject): Process a keyframe-like object found in the property-indexed form.
(WebCore::processPropertyIndexedKeyframes): Process the property-indexed form of the keyframes argument.
(WebCore::KeyframeEffect::setKeyframes): Since this method and processKeyframes() share the same signature,
we can just return the value from processKeyframes() directly.
(WebCore::KeyframeEffect::processKeyframes): Process the keyframes argument as specified.
(WebCore::KeyframeEffect::applyAtLocalTime): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::getAnimatedStyle): Delegate blending to the new setAnimatedPropertiesInStyle()
since this task is now more complex due to handling of multiple keyframes.
(WebCore::KeyframeEffect::setAnimatedPropertiesInStyle): Handle multiple and implicit start and end keyframes.
* animation/KeyframeEffect.h: Add some new structures used for parsing purposes.
* animation/KeyframeEffect.idl: Expose the CompositeOperation enum and the BasePropertyIndexedKeyframe dictionary
used in processKeyframeLikeObject().
* css/CSSStyleDeclaration.cpp:
(WebCore::CSSStyleDeclaration::getCSSPropertyIDFromJavaScriptPropertyName):
* css/CSSStyleDeclaration.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::isPropertyAnimatable):
* page/animation/CSSPropertyAnimation.h:

LayoutTests:

Rebase some WPT expectations with progressions due to supporting all keyframes arguments.

* http/wpt/web-animations/interfaces/KeyframeEffect/constructor-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-002-expected.txt:
* http/wpt/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:

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

3 years agoSkip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour...
ryanhaddad@apple.com [Thu, 21 Dec 2017 19:38:18 +0000 (19:38 +0000)]
Skip http/tests/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html because it frequently times out.
https://bugs.webkit.org/show_bug.cgi?id=178536

Unreviewed test gardening.

* platform/mac-wk2/TestExpectations:

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

3 years ago[AppleWin] Auxiliary libraries should be updated within build-webkit
don.olmstead@sony.com [Thu, 21 Dec 2017 19:13:40 +0000 (19:13 +0000)]
[AppleWin] Auxiliary libraries should be updated within build-webkit
https://bugs.webkit.org/show_bug.cgi?id=181065

Reviewed by Alex Christensen.

* EWSTools/Start-Queue.ps1:
* Scripts/build-webkit:
(cMakeArgsFromFeatures): Deleted.
(writeCongrats): Deleted.
* Scripts/update-webkit:

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

3 years agoSecond Build fix after r226223
commit-queue@webkit.org [Thu, 21 Dec 2017 18:52:33 +0000 (18:52 +0000)]
Second Build fix after r226223
https://bugs.webkit.org/show_bug.cgi?id=181089

Unreviewed.

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):

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

3 years agoSkip stress/splay-flash-access tests on memory limited platforms
guijemont@igalia.com [Thu, 21 Dec 2017 18:40:14 +0000 (18:40 +0000)]
Skip stress/splay-flash-access tests on memory limited platforms
https://bugs.webkit.org/show_bug.cgi?id=181086

Reviewed by Carlos Alberto Lopez Perez.

These tests use about 185M of memory, and occasionally get OOM-killed
on memory limited platforms.

* stress/splay-flash-access-1ms.js:
* stress/splay-flash-access.js:

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

3 years agoLayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch...
commit-queue@webkit.org [Thu, 21 Dec 2017 18:38:24 +0000 (18:38 +0000)]
LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html is failing one test
https://bugs.webkit.org/show_bug.cgi?id=181072

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-21
Reviewed by Alex Christensen.

Test loads twice the same resource but the memory cache intercepts the second load and provides the first response.
Fixing the test by mandating the response to not be cacheable.

* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
* web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-worker.js:
(event.respondWith.new.Promise):

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

3 years agoAdd initial DOM support for Media Capabilities
jer.noble@apple.com [Thu, 21 Dec 2017 18:28:21 +0000 (18:28 +0000)]
Add initial DOM support for Media Capabilities
https://bugs.webkit.org/show_bug.cgi?id=181064

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/mediacapabilities/mediacapabilities-types.html

Add basic, cross-platform, DOM facing type and API support for Media Capabilities API.

* bindings/scripts/CodeGenerator.pm:
(WK_ucfirst):
* CMakeLists.txt:
* DerivedSources.make:
* Modules/mediacapabilities/AudioConfiguration.h: Added.
* Modules/mediacapabilities/AudioConfiguration.idl: Added.
* Modules/mediacapabilities/MediaCapabilities.cpp: Added.
(WebCore::bucketMIMETypes):
(WebCore::isValidMIMEType):
(WebCore::isValidVideoConfiguration):
(WebCore::isValidAudioConfiguration):
(WebCore::isValidMediaConfiguration):
(WebCore::MediaCapabilities::decodingInfo):
(WebCore::MediaCapabilities::encodingInfo):
* Modules/mediacapabilities/MediaCapabilities.h: Added.
* Modules/mediacapabilities/MediaCapabilities.idl: Added.
* Modules/mediacapabilities/MediaCapabilitiesInfo.h: Added.
(WebCore::MediaCapabilitiesInfo::supported const):
(WebCore::MediaCapabilitiesInfo::setSupported):
(WebCore::MediaCapabilitiesInfo::smooth const):
(WebCore::MediaCapabilitiesInfo::setSmooth):
(WebCore::MediaCapabilitiesInfo::powerEfficient const):
(WebCore::MediaCapabilitiesInfo::setPowerEfficient):
* Modules/mediacapabilities/MediaCapabilitiesInfo.idl: Added.
* Modules/mediacapabilities/MediaConfiguration.h: Added.
* Modules/mediacapabilities/MediaConfiguration.idl: Added.
* Modules/mediacapabilities/MediaDecodingConfiguration.h: Added.
* Modules/mediacapabilities/MediaDecodingConfiguration.idl: Added.
* Modules/mediacapabilities/MediaDecodingType.h: Added.
* Modules/mediacapabilities/MediaDecodingType.idl: Added.
* Modules/mediacapabilities/MediaEncodingConfiguration.h: Added.
* Modules/mediacapabilities/MediaEncodingConfiguration.idl: Added.
* Modules/mediacapabilities/MediaEncodingType.h: Added.
* Modules/mediacapabilities/MediaEncodingType.idl: Added.
* Modules/mediacapabilities/NavigatorMediaCapabilities.cpp: Added.
(WebCore::NavigatorMediaCapabilities::NavigatorMediaCapabilities):
(WebCore::NavigatorMediaCapabilities::supplementName):
(WebCore::NavigatorMediaCapabilities::from):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities):
(WebCore::NavigatorMediaCapabilities::mediaCapabilities const):
* Modules/mediacapabilities/NavigatorMediaCapabilities.h: Added.
* Modules/mediacapabilities/NavigatorMediaCapabilities.idl: Added.
* Modules/mediacapabilities/ScreenColorGamut.h: Added.
* Modules/mediacapabilities/ScreenColorGamut.idl: Added.
* Modules/mediacapabilities/ScreenLuminance.h: Added.
(WebCore::ScreenLuminance::min const):
(WebCore::ScreenLuminance::setMin):
(WebCore::ScreenLuminance::max const):
(WebCore::ScreenLuminance::setMax):
(WebCore::ScreenLuminance::maxAverage const):
(WebCore::ScreenLuminance::setMaxAverage):
* Modules/mediacapabilities/ScreenLuminance.idl: Added.
* Modules/mediacapabilities/VideoConfiguration.h: Added.
* Modules/mediacapabilities/VideoConfiguration.idl: Added.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/WebCoreBuiltinNames.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setMediaCapabilitiesEnabled):
(WebCore::RuntimeEnabledFeatures::mediaCapabilitiesEnabled const):
* page/Settings.yaml:

Source/WebKit:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

* Shared/WebPreferences.yaml:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetMediaCapabilitiesEnabled):
(WKPreferencesGetMediaCapabilitiesEnabled):
* UIProcess/API/C/WKPreferencesRef.h:

Source/WebKitLegacy/mac:

Add a new preference to enable the (disabled-by-default) Media Capabilities API.

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

Tools:

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

LayoutTests:

* fast/dom/navigator-detached-no-crash-expected.txt:
* media/mediacapabilities/mediacapabilities-types-expected.txt: Added.
* media/mediacapabilities/mediacapabilities-types.html: Added.
* platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-elcapitan-wk2/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/mac-wk1/fast/dom/navigator-detached-no-crash-expected.txt:
* platform/win/fast/dom/navigator-detached-no-crash-expected.txt:

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

3 years agoCorrect a TestExpectations entry after r226074.
ryanhaddad@apple.com [Thu, 21 Dec 2017 18:01:43 +0000 (18:01 +0000)]
Correct a TestExpectations entry after r226074.
https://bugs.webkit.org/show_bug.cgi?id=180703

Unreviewed test gardening.

* platform/wk2/TestExpectations:

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

3 years agoAdd optional logging of per-resource cookie information
krollin@apple.com [Thu, 21 Dec 2017 17:53:49 +0000 (17:53 +0000)]
Add optional logging of per-resource cookie information
https://bugs.webkit.org/show_bug.cgi?id=180883
<rdar://problem/35802295>

Reviewed by Brent Fulgham.

In order to support the tracking of the efficacy of Intelligent
Tracking Protection, add some logging of the cookie information
associated with each loaded resource. This logging is off by default
and is enabled with `defaults write -g WebKitLogCookieInformation
-bool true`.

Source/WebCore:

No new tests -- no new user functionality added. Only new logging has
been added.

* platform/Cookie.h:
(WebCore::Cookie::Cookie):
(WebCore::Cookie::isNull const):
(WebCore::Cookie::encode const):
(WebCore::Cookie::decode):
* platform/network/cf/CookieJarCFNet.cpp:
(WebCore::canonicalCookieTime):
(WebCore::cookieCreatedTime):
(WebCore::cookieExpirationTime):
(WebCore::getRawCookies):
* platform/network/cocoa/CookieCocoa.mm:
(WebCore::cookieCreated):
(WebCore::Cookie::Cookie):
* platform/network/soup/CookieJarSoup.cpp:
(WebCore::getRawCookies):

Source/WebKit:

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::shouldLogCookieInformation const):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):
(WebKit::NetworkResourceLoader::shouldLogCookieInformation const):
(WebKit::NetworkResourceLoader::logCookieInformation const):
* NetworkProcess/NetworkResourceLoader.h:
* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

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

3 years agobuild-jsc: allow to build out of tree
guijemont@igalia.com [Thu, 21 Dec 2017 17:50:30 +0000 (17:50 +0000)]
build-jsc: allow to build out of tree
https://bugs.webkit.org/show_bug.cgi?id=180810

Reviewed by Carlos Alberto Lopez Perez.

* Scripts/build-jsc:

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

3 years agoAdopt new secure coding APIs in WebCore
bfulgham@apple.com [Thu, 21 Dec 2017 17:18:31 +0000 (17:18 +0000)]
Adopt new secure coding APIs in WebCore
https://bugs.webkit.org/show_bug.cgi?id=178484
<rdar://problem/34837193>

Reviewed by Eric Carlson.

Source/WebCore:

Switch to new NSKeyed[Un]Archiver methods that use NSSecureCoding by default.

Most of the new API is wrapped in a set of convenience methods so we can
build without the new API on older systems.

No change in behavior.

* editing/cocoa/EditorCocoa.mm:
(WebCore::archivedDataForAttributedString): Use new convenience method
to archive the string object.
* platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::write): Use new secure API.
(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const): Ditto.

Source/WebCore/PAL:

Due to <rdar://problem/31376830 we cannot used SecureCoding on NSAttributedString
in some cases. Add a macro for OS revisions that do not support secure coding,
and use the standard unarchive operation for NSAttributedString in those cases.

Rename 'insecurelyUnarchiveObjectOfClassFromData' to 'insecurelyUnarchiveObjectFromData',
and move it earlier in the file so that it can be reused in 'unarchivedObjectOfClassFromData'.

* pal/spi/cocoa/NSKeyedArchiverSPI.h:
(insecurelyUnarchiveObjectFromData): Renamed from insecurelyUnarchiveObjectOfClassFromData.
(unarchivedObjectOfClassFromData): Renamed from 'securelyUnarchiveObjectOfClassFromData' and
modified to use 'insecurelyUnarchiveObjectFromData'.
(securelyUnarchiveObjectOfClassFromData): Deleted.
(insecurelyUnarchiveObjectOfClassFromData): Deleted.

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

3 years agoUnreviewed Debug build fix after r226217
bfulgham@apple.com [Thu, 21 Dec 2017 17:16:59 +0000 (17:16 +0000)]
Unreviewed Debug build fix after r226217

* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

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

3 years agoSkip slow jsc tests on embedded platforms
guijemont@igalia.com [Thu, 21 Dec 2017 15:43:56 +0000 (15:43 +0000)]
Skip slow jsc tests on embedded platforms
https://bugs.webkit.org/show_bug.cgi?id=180937

Reviewed by Carlos Alberto Lopez Perez.

The tests typeProfiler/deltablue-for-of.js and
typeProfiler/getter-richards.js take a very long time in the
ftl-no-cjit-type-profiler-force-poly-proto on embedded platform, and
thus always timeout. They should be skipped on these platforms.

* typeProfiler/deltablue-for-of.js: Skip on arm*/mips.
* typeProfiler/getter-richards.js: Skip on arm*/mips.

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

3 years ago[RenderTreeBuilder] Move ruby mutation code to a dedicated class.
zalan@apple.com [Thu, 21 Dec 2017 15:13:26 +0000 (15:13 +0000)]
[RenderTreeBuilder] Move ruby mutation code to a dedicated class.
https://bugs.webkit.org/show_bug.cgi?id=181066
<rdar://problem/36167692>

Reviewed by Antti Koivisto.

This is in preparation for moving all ruby mutation code here.

No change in functionality.

* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::rubyRunInsertChild): Deleted.
* rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::rubyBuilder):
* rendering/updating/RenderTreeBuilderRuby.cpp: Added.
(WebCore::RenderTreeBuilder::Ruby::Ruby):
(WebCore::RenderTreeBuilder::Ruby::insertChild):
* rendering/updating/RenderTreeBuilderRuby.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.

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

3 years agoReplace a FIXME comment in CanvasGradient::addColorStop().
Ms2ger@igalia.com [Thu, 21 Dec 2017 14:51:49 +0000 (14:51 +0000)]
Replace a FIXME comment in CanvasGradient::addColorStop().
https://bugs.webkit.org/show_bug.cgi?id=181034

Reviewed by Daniel Bates.

Tests: LayoutTests/imported/w3c/canvas/2d.gradient.object.current.html

* html/canvas/CanvasGradient.cpp:
(WebCore::CanvasGradient::addColorStop):

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

3 years agoREGRESSION(r207238): [GTK] Layout test storage/domstorage/events/basic-body-attribute...
Ms2ger@igalia.com [Thu, 21 Dec 2017 14:44:47 +0000 (14:44 +0000)]
REGRESSION(r207238): [GTK] Layout test storage/domstorage/events/basic-body-attribute.html is failing
https://bugs.webkit.org/show_bug.cgi?id=163826

Reviewed by Daniel Bates.

Update basic-body-attribute.html to the current standard.

* platform/gtk/TestExpectations:
* platform/win/TestExpectations:
* platform/wpe/TestExpectations:
* storage/domstorage/events/basic-body-attribute-expected.txt:
* storage/domstorage/events/basic-body-attribute.html:

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

3 years agoElement fullscreen interface should display the location
commit-queue@webkit.org [Thu, 21 Dec 2017 10:56:58 +0000 (10:56 +0000)]
Element fullscreen interface should display the location
https://bugs.webkit.org/show_bug.cgi?id=181006
rdar://problem/36143176

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Simon Fraser.

Source/WebCore/PAL:

Add iOS availability check.

* pal/spi/cocoa/LinkPresentationSPI.h:

Source/WebKit:

Show a short user visible location string with a lock if secure and green when trusted.

Includes other interface cleanup and tweaks.

* UIProcess/ios/WKFullScreenWindowControllerIOS.mm:
(-[_WKFullScreenViewController viewWillTransitionToSize:withTransitionCoordinator:]):
(-[_WKFullScreenViewController visualEffectViewWithFrame:]):
(mirrorEdgeInsets):
(-[_WKFullScreenViewController _updateLayoutMargins]):
(-[_WKFullScreenViewController viewDidLayoutSubviews]):
(-[_WKFullScreenViewController setLocation:secure:trustedName:trustedSite:]):
(-[_WKFullScreenViewController createSubviews]):
(-[_WKFullScreenViewController loadView]):
(-[_WKFullScreenViewController viewDidAppear:]):
(-[_WKFullScreenViewController hideCancelButton]):
(-[_WKFullScreenViewController showCancelButton:]):
(-[_WKFullscreenRootViewController setShowsStatusBar:]):
(-[_WKFullscreenRootViewController prefersStatusBarHidden]):
(-[WKFullScreenWindowController _invalidateEVOrganizationName]):
(-[WKFullScreenWindowController isSecure]):
(-[WKFullScreenWindowController _serverTrust]):
(-[WKFullScreenWindowController _EVOrganizationName]):
(-[WKFullScreenWindowController updateLocationInfo]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController beganExitFullScreenWithInitialFrame:finalFrame:]):
(-[_WKFullScreenViewController prefersStatusBarHidden]): Deleted.
* WebKit.xcassets/Done.imageset/Contents.json: Removed.
* WebKit.xcassets/LockMini.imageset/Contents.json: Added.
* WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@2x.pdf: Copied from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.
* WebKit.xcassets/LockMini.imageset/NavigationBarLockMini@3x.pdf: Renamed from Source/WebKit/WebKit.xcassets/Done.imageset/Done.pdf.

Source/WTF:

Add SecTrustCopyInfo SPI.

* wtf/spi/cocoa/SecuritySPI.h:

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

3 years agoEnable picture-in-picture from inline element on suspend.
commit-queue@webkit.org [Thu, 21 Dec 2017 10:08:14 +0000 (10:08 +0000)]
Enable picture-in-picture from inline element on suspend.
https://bugs.webkit.org/show_bug.cgi?id=180942
rdar://problem/34745234

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-21
Reviewed by Jer Noble.

Source/WebCore:

When a element goes into element fullscreen mode, a descendant video element gains the ability to automatically enter picture-in-picture on application suspend.

This adds support for video fullscreen standby mode, which creates a VideoFullscreenInterfaceAVKit so that it can
trigger auto-pip on application suspend while the element is not actually presenting in video fullscreen mode.

VideoFullscreenInterfaceAVKit has a new state transition system that will replace the existing one to enable the increased
number and complexity of state transitions. Until we are ready to completely commit to this new code path, this implementation is
conditionalized to keep the existing code path working.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::exitFullscreen):
(WebCore::HTMLMediaElement::setVideoFullscreenStandby):
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):
* html/HTMLMediaElement.h:
* page/ChromeClient.h:
* platform/cocoa/VideoFullscreenChangeObserver.h:
* platform/ios/VideoFullscreenInterfaceAVKit.h:
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(-[WebAVPlayerViewControllerDelegate playerViewControllerShouldStartPictureInPictureFromInlineWhenEnteringBackground:]):
(-[WebAVPlayerLayer layoutSublayers]):
(allocWebAVPictureInPicturePlayerLayerViewInstance):
(allocWebAVPlayerLayerViewInstance):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::enterFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreen):
(VideoFullscreenInterfaceAVKit::cleanupFullscreen):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToReturnToInline):
(VideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture const):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setHasVideoContentLayer):
(VideoFullscreenInterfaceAVKit::setInlineRect):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::finalizeSetup):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::doExitFullscreen):
(VideoFullscreenInterfaceAVKit::exitFullscreenHandler):
(VideoFullscreenInterfaceAVKit::enterFullscreenHandler):
(VideoFullscreenInterfaceAVKit::returnToStandby):
* platform/ios/WebVideoFullscreenControllerAVKit.mm:
(VideoFullscreenControllerContext::requestUpdateInlineRect):
(VideoFullscreenControllerContext::requestVideoContentLayer):
(VideoFullscreenControllerContext::returnVideoContentLayer):
(VideoFullscreenControllerContext::didSetupFullscreen):
(VideoFullscreenControllerContext::didExitFullscreen):
(VideoFullscreenControllerContext::setUpFullscreen):

Source/WebKit:

Add support for video fullscreen standby and imporved fullscreen state transition process.

Video fullscreen standby allows a video element to have its fullscreen interface state created and
continuously updated so that it can quickly change presentation state on application state.

In order to accomplish this, this change allows the fullscreen presentation to decide when it needs
an updated inline rect, or the presence of the video layer.

This is conditionalized until mac supports this model.

* UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
* UIProcess/Cocoa/VideoFullscreenManagerProxy.messages.in:
* UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
(WebKit::VideoFullscreenModelContext::requestUpdateInlineRect):
(WebKit::VideoFullscreenModelContext::requestVideoContentLayer):
(WebKit::VideoFullscreenModelContext::returnVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::setupFullscreenWithID):
(WebKit::VideoFullscreenManagerProxy::setInlineRect):
(WebKit::VideoFullscreenManagerProxy::setHasVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::requestUpdateInlineRect):
(WebKit::VideoFullscreenManagerProxy::requestVideoContentLayer):
(WebKit::VideoFullscreenManagerProxy::returnVideoContentLayer):
* WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
* WebProcess/FullScreen/WebFullScreenManager.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::supportsVideoFullscreenStandby):
(WebKit::WebChromeClient::enterVideoFullscreenForVideoElement):
* WebProcess/WebCoreSupport/WebChromeClient.h:
* WebProcess/cocoa/VideoFullscreenManager.h:
(WebKit::VideoFullscreenInterfaceContext::fullscreenStandby const):
(WebKit::VideoFullscreenInterfaceContext::setFullscreenStandby):
* WebProcess/cocoa/VideoFullscreenManager.messages.in:
* WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::supportsVideoFullscreenStandby const):
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::requestUpdateInlineRect):
(WebKit::VideoFullscreenManager::requestVideoContentLayer):
(WebKit::VideoFullscreenManager::returnVideoContentLayer):
(WebKit::VideoFullscreenManager::didSetupFullscreen):
(WebKit::VideoFullscreenManager::didExitFullscreen):
(WebKit::VideoFullscreenManager::didCleanupFullscreen):

Source/WebKitLegacy/mac:

Update signature of enterVideoFullscreenForVideoElement().

* WebCoreSupport/WebChromeClient.h:
* WebCoreSupport/WebChromeClient.mm:
(WebChromeClient::enterVideoFullscreenForVideoElement):

Source/WebKitLegacy/win:

Update signature of enterVideoFullscreenForVideoElement.

* WebCoreSupport/WebChromeClient.cpp:
(WebChromeClient::enterVideoFullscreenForVideoElement):
* WebCoreSupport/WebChromeClient.h:

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

3 years agoDeferredLoadingScope incorrectly disabled images or enables deferred loading
rniwa@webkit.org [Thu, 21 Dec 2017 06:48:48 +0000 (06:48 +0000)]
DeferredLoadingScope incorrectly disabled images or enables deferred loading
https://bugs.webkit.org/show_bug.cgi?id=181077

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug that DeferredLoadingScope::~DeferredLoadingScope was checking the wrong flag
for restoring the disabledness of images and deferred loading.

Test: editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading.html

* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::DeferredLoadingScope::~DeferredLoadingScope): Fixed the bug.
* testing/Internals.cpp:
(WebCore::Internals::pageDefersLoading): Added for testing.
* testing/Internals.h:
* testing/Internals.idl: Added pageDefersLoading.

LayoutTests:

Added a regression test.

* editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading-expected.txt: Added.
* editing/pasteboard/pasting-with-images-disabled-should-not-enable-deferred-loading.html: Added.

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

3 years agoisSafari check should take Safari Technology Preview into account
rniwa@webkit.org [Thu, 21 Dec 2017 05:39:31 +0000 (05:39 +0000)]
isSafari check should take Safari Technology Preview into account
https://bugs.webkit.org/show_bug.cgi?id=181076

Reviewed by Alex Christensen.

Fixed isSafari() so that it returns true for Safari Technology Preview. This bug resulted in the custom pasteboard
types not being enabled in Safari Technology Preview. In long term, we should eliminate these isSafari() checks.

* platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::MacApplication::isSafari):

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

3 years agowebkitpy: simctl cannot handle partial runtime version matches
jbedard@apple.com [Thu, 21 Dec 2017 04:37:55 +0000 (04:37 +0000)]
webkitpy: simctl cannot handle partial runtime version matches
https://bugs.webkit.org/show_bug.cgi?id=181055
<rdar://problem/36163798>

Reviewed by Alexey Proskuryakov.

A request for a simulator runtime of iOS 11 should be fulfilled by
iOS 11.0.1.

* Scripts/webkitpy/xcode/simulator.py:
(Simulator.runtime): Allow for partial matching of iOS runtime versions.
* Scripts/webkitpy/xcode/simulator_unittest.py:
(test_failed_partial_version_match): Test that partial version mapping does
not give false positives.

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

3 years ago[Attachment Support] Attachment replacement logic should not depend on subresource...
wenson_hsieh@apple.com [Thu, 21 Dec 2017 03:50:16 +0000 (03:50 +0000)]
[Attachment Support] Attachment replacement logic should not depend on subresource URL attribute replacement
https://bugs.webkit.org/show_bug.cgi?id=181068
<rdar://problem/36168313>

Reviewed by Ryosuke Niwa.

Refactors attachment replacement logic, so that it doesn't require us to first replace element attributes that
contain subresource URLs with blob URLs before performing attachment element replacement. See below comments for
more detail.

Covered by existing API tests in WKAttachmentTests.

* editing/WebContentReader.h:
(WebCore::BlobReplacementInfo::isEmpty const): Deleted.

Remove BlobReplacementInfo. Instead, augment `replaceRichContentWithAttachments` so that it takes in the list of
subresources directly and generates blobs for each subresource.

* editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::replaceSelectionWithAttributedString):
* editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::shouldReplaceRichContentWithAttachments):
(WebCore::createFragmentForImageAttachment):
(WebCore::replaceRichContentWithAttachments):
(WebCore::createFragmentAndAddResources):
(WebCore::sanitizeMarkupWithArchive):

In these helper functions that currently convert subresource URLs to blob URLs, if attachment elements are not
defined out, and the runtime feature for attachment elements is enabled, then use an alternate codepath to
adjust the markup (via replaceRichContentWithAttachments).

Otherwise, fall back to default subresource URL conversion logic, which (at the moment) still converts
subresources to blobs, but will soon be changed to emit data URLs instead.

(WebCore::WebContentReader::readWebArchive):
(WebCore::WebContentMarkupReader::readWebArchive):
(WebCore::WebContentReader::readRTFD):
(WebCore::WebContentMarkupReader::readRTFD):
(WebCore::WebContentReader::readRTF):
(WebCore::WebContentMarkupReader::readRTF):
(WebCore::WebContentReader::readImage):

Remove the createFragmentFromAttributedString helper and revert to just calling createFragmentAndAddResources.

(WebCore::createFragmentFromAttributedString): Deleted.

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

3 years ago[CMake][Win] Add a way to set CMAKE_IGNORE_PATH
don.olmstead@sony.com [Thu, 21 Dec 2017 03:39:49 +0000 (03:39 +0000)]
[CMake][Win] Add a way to set CMAKE_IGNORE_PATH
https://bugs.webkit.org/show_bug.cgi?id=181056

Reviewed by Konstantin Tokarev.

* Source/cmake/OptionsWin.cmake:

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

3 years ago[MediaStream] Add screen capture IDL and stub functions
eric.carlson@apple.com [Thu, 21 Dec 2017 02:45:36 +0000 (02:45 +0000)]
[MediaStream] Add screen capture IDL and stub functions
https://bugs.webkit.org/show_bug.cgi?id=181070
<rdar://problem/35555184>

Reviewed by Youenn Fablet.

Source/WebCore:

Tests: fast/mediastream/screencapture-disabled.html
       fast/mediastream/screencapture-enabled.html

* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getDisplayMedia const):
(WebCore::MediaDevices::getSupportedConstraints):
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/MediaDevices.idl:
* Modules/mediastream/MediaTrackConstraints.cpp:
(WebCore::convertToInternalForm):
* Modules/mediastream/MediaTrackConstraints.h:
* Modules/mediastream/MediaTrackConstraints.idl:
* Modules/mediastream/MediaTrackSupportedConstraints.h:
* Modules/mediastream/MediaTrackSupportedConstraints.idl:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::deny):
* Modules/mediastream/UserMediaRequest.h:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::screenCaptureEnabled const):
(WebCore::RuntimeEnabledFeatures::setScreenCaptureEnabled):
* platform/mediastream/CaptureDevice.h:
* platform/mediastream/MediaConstraints.cpp:
(WebCore::MediaTrackConstraintSetMap::set):
* platform/mediastream/MediaConstraints.h:
(WebCore::MediaTrackConstraintSetMap::displaySurface const):
(WebCore::MediaTrackConstraintSetMap::logicalSurface const):
(WebCore::MediaTrackConstraintSetMap::encode const):
(WebCore::MediaTrackConstraintSetMap::decode):
* platform/mediastream/MediaStreamRequest.h:
* platform/mediastream/RealtimeMediaSource.cpp:
(WebCore::RealtimeMediaSource::fitnessDistance):
(WebCore::RealtimeMediaSource::applyConstraint):
(WebCore::RealtimeMediaSource::supportsConstraint const):
* platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::RealtimeMediaSourceCenter::captureDeviceWithPersistentID):
* platform/mediastream/RealtimeMediaSourceSettings.h:
(WebCore::RealtimeMediaSourceSettings::supportsDisplaySurface const):
(WebCore::RealtimeMediaSourceSettings::displaySurface const):
(WebCore::RealtimeMediaSourceSettings::setDisplaySurface):
(WebCore::RealtimeMediaSourceSettings::supportsLogicalSurface const):
(WebCore::RealtimeMediaSourceSettings::logicalSurface const):
(WebCore::RealtimeMediaSourceSettings::setLogicalSurface):
* platform/mediastream/RealtimeMediaSourceSupportedConstraints.cpp:
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsConstraint const):
* platform/mediastream/RealtimeMediaSourceSupportedConstraints.h:
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsDisplaySurface const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsDisplaySurface):
(WebCore::RealtimeMediaSourceSupportedConstraints::supportsLogicalSurface const):
(WebCore::RealtimeMediaSourceSupportedConstraints::setSupportsLogicalSurface):
(WebCore::RealtimeMediaSourceSupportedConstraints::encode const):
(WebCore::RealtimeMediaSourceSupportedConstraints::decode):
* platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
* platform/mock/MockRealtimeVideoSource.cpp:
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setScreenCaptureEnabled):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

Source/WebKit:

* Shared/WebPreferences.yaml:
* UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _screenCaptureEnabled]):
(-[WKPreferences _setScreenCaptureEnabled:]):
* UIProcess/API/Cocoa/WKPreferencesPrivate.h:
* WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

LayoutTests:

* fast/mediastream/screencapture-disabled-expected.txt: Added.
* fast/mediastream/screencapture-disabled.html: Added.
* fast/mediastream/screencapture-enabled-expected.txt: Added.
* fast/mediastream/screencapture-enabled.html: Added.

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

3 years agoUnreviewed, rolling out r225656.
jlewis3@apple.com [Thu, 21 Dec 2017 02:38:00 +0000 (02:38 +0000)]
Unreviewed, rolling out r225656.

The test has been a flaky timout since being added.

Reverted changeset:

"WebAssembly: sending module to iframe fails"
https://bugs.webkit.org/show_bug.cgi?id=179263
https://trac.webkit.org/changeset/225656

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

3 years ago[JSC] Do not check isValid() in op_new_regexp
utatane.tea@gmail.com [Thu, 21 Dec 2017 01:58:28 +0000 (01:58 +0000)]
[JSC] Do not check isValid() in op_new_regexp
https://bugs.webkit.org/show_bug.cgi?id=180970

Reviewed by Saam Barati.

JSTests:

* stress/regexp-syntax-error-invalid-flags.js: Added.
(shouldThrow):

Source/JavaScriptCore:

We should not check `isValid()` inside op_new_regexp.
This simplifies the semantics of NewRegexp node in DFG.

* bytecompiler/NodesCodegen.cpp:
(JSC::RegExpNode::emitBytecode):
* dfg/DFGMayExit.cpp:
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
* jit/JITOperations.cpp:
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

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

3 years agoGetPropertyEnumerator in DFG/FTL should not unconditionally speculate cell
sbarati@apple.com [Thu, 21 Dec 2017 01:54:46 +0000 (01:54 +0000)]
GetPropertyEnumerator in DFG/FTL should not unconditionally speculate cell
https://bugs.webkit.org/show_bug.cgi?id=181054

Reviewed by Mark Lam.

Speedometer's react subtest has a function that is in an OSR exit loop because
we used to unconditionally speculate cell for the operand to GetPropertyEnumerator.
This fix doesn't seem to speed up Speedometer at all, but it's good hygiene
for our compiler to not have this pathology. This patch adds a generic
GetPropertyEnumerator to prevent the exit loop.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
* jit/JITOperations.cpp:
* jit/JITOperations.h:

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

3 years agoUnreviewed, rolling out r226155.
jlewis3@apple.com [Thu, 21 Dec 2017 01:49:00 +0000 (01:49 +0000)]
Unreviewed, rolling out r226155.

This caused test failures.

Reverted changeset:

"Web Inspector: add TestPage.debug() to inspect evaluations
being sent to Inspector page"
https://bugs.webkit.org/show_bug.cgi?id=181005
https://trac.webkit.org/changeset/226155

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

3 years agoCrash when clearing std::optional<WebKit::WebServiceWorkerFetchTaskClient::BlobLoader>
commit-queue@webkit.org [Thu, 21 Dec 2017 01:39:08 +0000 (01:39 +0000)]
Crash when clearing std::optional<WebKit::WebServiceWorkerFetchTaskClient::BlobLoader>
https://bugs.webkit.org/show_bug.cgi?id=181061

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Alex Christensen.

* WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didFinishBlobLoading): moving the object to not destroy 'this' too soon.

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

3 years ago[Win] Use WCharStringExtras functions in WebCore
don.olmstead@sony.com [Thu, 21 Dec 2017 01:10:52 +0000 (01:10 +0000)]
[Win] Use WCharStringExtras functions in WebCore
https://bugs.webkit.org/show_bug.cgi?id=180963

Reviewed by Alex Christensen.

No new tests. No change in behavior.

* platform/graphics/win/FontCacheWin.cpp:
(WebCore::appendLinkedFonts):
(WebCore::getLinkedFonts):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::FontCache::fontFromDescriptionAndLogFont):
* platform/graphics/win/FontCustomPlatformDataCairo.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
* platform/graphics/win/IconWin.cpp:
(WebCore::Icon::createIconForFiles):
* platform/network/win/DownloadBundleWin.cpp:
(WebCore::DownloadBundle::appendResumeData):
(WebCore::DownloadBundle::extractResumeData):
* platform/text/win/LocaleWin.cpp:
(WebCore::LCIDFromLocaleInternal):
(WebCore::LCIDFromLocale):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::getWebLocData):
(WebCore::createGlobalData):
(WebCore::getFileDescriptorData):
(WebCore::getURL):
(WebCore::getCFData):
(WebCore::setCFData):
* platform/win/DragDataWin.cpp:
(WebCore::DragData::asFilenames const):
* platform/win/DragImageWin.cpp:
(WebCore::createDragImageIconForCachedImageFilename):
(WebCore::dragLabelFont):
* platform/win/FileSystemWin.cpp:
(WebCore::FileSystem::getFindData):
(WebCore::FileSystem::createSymbolicLink):
(WebCore::FileSystem::deleteFile):
(WebCore::FileSystem::deleteEmptyDirectory):
(WebCore::FileSystem::moveFile):
(WebCore::FileSystem::pathByAppendingComponent):
(WebCore::FileSystem::makeAllDirectories):
(WebCore::FileSystem::pathGetFileName):
(WebCore::FileSystem::openTemporaryFile):
(WebCore::FileSystem::openFile):
(WebCore::FileSystem::hardLinkOrCopyFile):
* platform/win/MIMETypeRegistryWin.cpp:
(WebCore::mimeTypeForExtension):
(WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
* platform/win/PasteboardWin.cpp:
(WebCore::Pasteboard::read):
(WebCore::createGlobalHDropContent):
* platform/win/PathWalker.cpp:
(WebCore::PathWalker::PathWalker):
* platform/win/SSLKeyGeneratorWin.cpp:
(WebCore::WebCore::signedPublicKeyAndChallengeString):
* platform/win/SharedBufferWin.cpp:
(WebCore::SharedBuffer::createFromReadingFile):
* rendering/RenderThemeWin.cpp:
(WebCore::fillFontDescription):

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

3 years agoInclude stdio.h before using stderr and _IONBF
commit-queue@webkit.org [Thu, 21 Dec 2017 01:07:49 +0000 (01:07 +0000)]
Include stdio.h before using stderr and _IONBF
https://bugs.webkit.org/show_bug.cgi?id=181046

Patch by Ting-Wei Lan <lantw44@gmail.com> on 2017-12-20
Reviewed by Alex Christensen.

* bmalloc/IsoTLS.cpp:

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

3 years agocom.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMe...
commit-queue@webkit.org [Thu, 21 Dec 2017 00:13:09 +0000 (00:13 +0000)]
com.apple.WebKit.WebContent.Development crashed in com.apple.WebCore: WebCore::UserMediaRequest::stop + 126
https://bugs.webkit.org/show_bug.cgi?id=181057

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Eric Carlson.

Covered by fast/mediastream tests to not crash anymore.

* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::stop):

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

3 years agoAssertion failure in MessagePort::contextDestroyed in http/tests/security/MessagePort...
beidson@apple.com [Wed, 20 Dec 2017 22:47:20 +0000 (22:47 +0000)]
Assertion failure in MessagePort::contextDestroyed in http/tests/security/MessagePort/event-listener-context.html, usually attributed to later tests.
https://bugs.webkit.org/show_bug.cgi?id=94458

Reviewed by Chris Dumez.

Source/WebCore:

No new tests (Changed existing test to reliably crash before this change, and work after it)

There was already a glaring FIXME that said "MessagePorts should be ActiveDOMObjects"

It was right, and it fixes up this subtle lifetime issue.

* dom/MessagePort.cpp:
(WebCore::MessagePort::MessagePort):
(WebCore::MessagePort::hasPendingActivity const):
(WebCore::MessagePort::locallyEntangledPort const):
(WebCore::MessagePort::activeDOMObjectName const):
(WebCore::MessagePort::hasPendingActivity): Deleted.
(WebCore::MessagePort::locallyEntangledPort): Deleted.
* dom/MessagePort.h:

* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::~ScriptExecutionContext):
(WebCore::ScriptExecutionContext::stopActiveDOMObjects):
(WebCore::ScriptExecutionContext::hasPendingActivity const):

LayoutTests:

* fast/events/message-port-constructor-for-deleted-document-expected.txt:
* fast/events/message-port-constructor-for-deleted-document.html:
* fast/events/resources/copy-of-message-port-context-destroyed.html: Added.
* platform/mac/TestExpectations: Reenable the now-reliable and now-passing test.

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

3 years agoDo not search for service worker registration in case of non HTTP navigation loads
commit-queue@webkit.org [Wed, 20 Dec 2017 21:51:38 +0000 (21:51 +0000)]
Do not search for service worker registration in case of non HTTP navigation loads
https://bugs.webkit.org/show_bug.cgi?id=180976
<rdar://problem/36157322>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource): Removing unneeded spaces.

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

3 years agoLayoutTests/http/tests/workers/service/service-worker-cache-api.https.html is failing...
commit-queue@webkit.org [Wed, 20 Dec 2017 21:38:50 +0000 (21:38 +0000)]
LayoutTests/http/tests/workers/service/service-worker-cache-api.https.html is failing on most platforms
https://bugs.webkit.org/show_bug.cgi?id=181052

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Chris Dumez.

Fixing buggy test: load was probably not intercepted.

* TestExpectations:
* http/tests/workers/service/resources/service-worker-cache-api.js: Removed.
* http/tests/workers/service/service-worker-cache-api.https-expected.txt:
* http/tests/workers/service/service-worker-cache-api.https.html:

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

3 years ago[GTK] imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.html is...
commit-queue@webkit.org [Wed, 20 Dec 2017 21:08:57 +0000 (21:08 +0000)]
[GTK] imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.html is failing
https://bugs.webkit.org/show_bug.cgi?id=181029

Patch by Alicia Boya García <aboya@igalia.com> on 2017-12-20
Reviewed by Carlos Alberto Lopez Perez.

* platform/gtk/TestExpectations:
* platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt:

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

3 years agoRemove some SVN files accidentally committed with r226160
achristensen@apple.com [Wed, 20 Dec 2017 20:10:24 +0000 (20:10 +0000)]
Remove some SVN files accidentally committed with r226160
https://bugs.webkit.org/show_bug.cgi?id=180934

* WebCore.xcodeproj/project.pbxproj.orig: Removed.
* WebCore.xcodeproj/project.pbxproj.rej: Removed.

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

3 years ago[RenderTreeBuilder] Replace remaining addChild calls with RenderTreeBuilder::insert
zalan@apple.com [Wed, 20 Dec 2017 20:07:52 +0000 (20:07 +0000)]
[RenderTreeBuilder] Replace remaining addChild calls with RenderTreeBuilder::insert
https://bugs.webkit.org/show_bug.cgi?id=181044
<rdar://problem/36157613>

Reviewed by Antti Koivisto.

Covered by existing test cases.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringContinuation):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::addChildIgnoringContinuation):
* rendering/RenderElement.h:
(WebCore::RenderElement::addChildIgnoringContinuation): Deleted.

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

3 years agoCleanup: Dereference value of optional directly instead of using checked value in...
dbates@webkit.org [Wed, 20 Dec 2017 20:04:54 +0000 (20:04 +0000)]
Cleanup: Dereference value of optional directly instead of using checked value in WebCore::subdivide()
https://bugs.webkit.org/show_bug.cgi?id=181050

Reviewed by Simon Fraser.

It is sufficient and more efficient to dereference a std::optional directly when we know that it has
a value as opposed to using the checked dereference member function std::optional<>::value().

No functionality changed. So, no new tests.

* rendering/MarkerSubrange.cpp:
(WebCore::subdivide):

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

3 years agoMarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEff...
dbates@webkit.org [Wed, 20 Dec 2017 19:59:35 +0000 (19:59 +0000)]
MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} are failing
https://bugs.webkit.org/show_bug.cgi?id=181014

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue in the subdivision algorithm where the returned subranges may not be paint order
or reverse paint order when using the default overlap strategy (OverlapStrategy::None) and
either OverlapStrategy::Frontmost or OverlapStrategy::FrontmostWithLongestEffectiveRange, respectively.

Currently we compute the overlapping subranges up to some point p_i on the line by sweeping from the
start of the line through all the unclosed subranges. The unclosed subranges are sorted along the line.
That is, they are not sorted by paint order or reverse paint order. Therefore we must take care to
ensure that we return the computed overlapping subranges with respect to paint order/reverse paint order.

* rendering/MarkerSubrange.cpp:
(WebCore::subdivide):

Tools:

Adds a new test to ensure we compute overlapping subranges in paint order for the default
overlap strategy. Enable tests MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange}
now that they pass.

* TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp:
(TestWebKitAPI::TEST):

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

3 years agoLayoutTest imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworke...
commit-queue@webkit.org [Wed, 20 Dec 2017 19:29:08 +0000 (19:29 +0000)]
LayoutTest imported/w3c/web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179137
<rdar://problem/35337335>

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Chris Dumez.

Source/WebCore:

Covered by unflaked test.

* workers/service/context/ServiceWorkerThreadProxy.cpp:
(WebCore::ServiceWorkerThreadProxy::postTaskToLoader): ThreadableBlobRegistry is using callOnMainThread.
Use it also for postTaskToLoader so that there is no race condition between registering a blob and reading it.

LayoutTests:

* TestExpectations:

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

3 years ago[GTK] Test gardening
commit-queue@webkit.org [Wed, 20 Dec 2017 19:19:13 +0000 (19:19 +0000)]
[GTK] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=181045

Patch by Alicia Boya García <aboya@igalia.com> on 2017-12-20
Reviewed by Michael Catanzaro.

* platform/gtk/TestExpectations:

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

3 years agoSupport service worker interception of request with blob body
commit-queue@webkit.org [Wed, 20 Dec 2017 19:16:10 +0000 (19:16 +0000)]
Support service worker interception of request with blob body
https://bugs.webkit.org/show_bug.cgi?id=181035

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

* web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
* web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:

Source/WebCore:

Covered by updated test.

Add support for getting blob request bodies within service worker.
Disable interception of requests with form datas.

* Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::fromFormData):
* Modules/fetch/FetchBody.h:
* workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):
* workers/service/context/ServiceWorkerFetch.h:
* workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::postFetchTask):

Source/WebKit:

In case of service worker, remove the connection check to get access to the blob registry.
Apply this for cloning blobs registered by another process.

* NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
(WebKit::NetworkBlobRegistry::registerBlobURL):
* NetworkProcess/FileAPI/NetworkBlobRegistry.h:
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::registerBlobURLFromURL):
* NetworkProcess/NetworkConnectionToWebProcess.h:
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* WebProcess/FileAPI/BlobRegistryProxy.cpp:
(WebKit::BlobRegistryProxy::registerBlobURL):

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

3 years agoSend fullscreenChange earlier, in webkitWillEnterFullscreen
commit-queue@webkit.org [Wed, 20 Dec 2017 18:55:53 +0000 (18:55 +0000)]
Send fullscreenChange earlier, in webkitWillEnterFullscreen
https://bugs.webkit.org/show_bug.cgi?id=181016

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-12-20
Reviewed by Jer Noble.

Sending the event earlier, allows pages to update their interface state before the fullscreen animation.

* dom/Document.cpp:
(WebCore::Document::webkitWillEnterFullScreenForElement):
(WebCore::Document::webkitDidEnterFullScreenForElement):

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

3 years agoRemove Alternative Presentation Button
dbates@webkit.org [Wed, 20 Dec 2017 18:43:22 +0000 (18:43 +0000)]
Remove Alternative Presentation Button
https://bugs.webkit.org/show_bug.cgi?id=180500
<rdar://problem/35891047>

Reviewed by Simon Fraser.

We no longer need the alternative presentation button.

.:

* Source/cmake/OptionsMac.cmake:
* Source/cmake/WebKitFeatures.cmake:
* Source/cmake/tools/vsprops/FeatureDefines.props:
* Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig:

Source/WebCore:

* Configurations/FeatureDefines.xcconfig:
* DerivedSources.make:
* English.lproj/Localizable.strings:
* SourcesCocoa.txt:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.h:
* editing/Editor.cpp:
(WebCore::Editor::clear):
(WebCore::Editor::substituteWithAlternativePresentationButton): Deleted.
(WebCore::Editor::removeAlternativePresentationButton): Deleted.
(WebCore::Editor::elementsReplacedByAlternativePresentationButton): Deleted.
(WebCore::Editor::didInsertAlternativePresentationButtonElement): Deleted.
(WebCore::Editor::didRemoveAlternativePresentationButtonElement): Deleted.
* editing/Editor.h:
* editing/cocoa/AlternativePresentationButtonSubstitution.cpp: Removed.
* editing/cocoa/AlternativePresentationButtonSubstitution.h: Removed.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::willAttachRenderers):
(WebCore::HTMLInputElement::alternativePresentationButtonElement const): Deleted.
(WebCore::HTMLInputElement::setTypeWithoutUpdatingAttribute): Deleted.
(WebCore::HTMLInputElement::createInputType): Deleted.
* html/HTMLInputElement.h:
* html/InputType.h:
(WebCore::InputType::alternativePresentationButtonElement const): Deleted.
* html/InputTypeNames.cpp:
(WebCore::InputTypeNames::alternativePresentationButton): Deleted.
* html/InputTypeNames.h:
* html/shadow/cocoa/AlternativePresentationButtonElement.cpp: Removed.
* html/shadow/cocoa/AlternativePresentationButtonElement.h: Removed.
* html/shadow/cocoa/AlternativePresentationButtonInputType.cpp: Removed.
* html/shadow/cocoa/AlternativePresentationButtonInputType.h: Removed.
* page/ChromeClient.h:
* platform/LocalizedStrings.cpp:
(WebCore::AXAlternativePresentationButtonLabel): Deleted.
(WebCore::alternativePresentationButtonTitle): Deleted.
(WebCore::alternativePresentationButtonSubtitle): Deleted.
* platform/LocalizedStrings.h:
* testing/Internals.cpp:
(WebCore::Internals::substituteWithAlternativePresentationButton): Deleted.
(WebCore::Internals::removeAlternativePresentationButton): Deleted.
(WebCore::Internals::elementsReplacedByAlternativePresentationButton): Deleted.
* testing/Internals.h:
* testing/Internals.idl:

Source/WebCore/PAL:

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

* Configurations/FeatureDefines.xcconfig:
* UIProcess/API/APIUIClient.h:
(API::UIClient::didClickAlternativePresentationButton): Deleted.
* UIProcess/API/C/WKPageUIClient.h:
* UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
* UIProcess/Cocoa/UIDelegate.h:
* UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didClickAlternativePresentationButton): Deleted.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleAutoFillButtonClick):
(WebKit::WebPageProxy::handleAlternativePresentationButtonClick): Deleted.
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebProcess/InjectedBundle/API/APIInjectedBundlePageUIClient.h:
(API::InjectedBundle::PageUIClient::didClickAutoFillButton):
(API::InjectedBundle::PageUIClient::didClickAlternativePresentationButton): Deleted.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame substituteElements:withAlternativePresentationButtonWithIdentifier:]): Deleted.
(-[WKWebProcessPlugInFrame removeAlternativePresentationButton:]): Deleted.
(-[WKWebProcessPlugInFrame elementsReplacedByAlternativePresentationButtonWithIdentifier:]): Deleted.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h:
* WebProcess/InjectedBundle/API/c/WKBundleFrame.cpp:
(WKBundleFrameFocus):
(WKBundleSubstituteWithAlternativePresentationButton): Deleted.
(WKBundleRemoveAlternativePresentationButton): Deleted.
(WKBundleElementsReplacedByAlternativePresentationButton): Deleted.
* WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h:
* WebProcess/InjectedBundle/API/c/WKBundlePageUIClient.h:
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
(WebKit::InjectedBundlePageUIClient::didClickAlternativePresentationButton): Deleted.
* WebProcess/InjectedBundle/InjectedBundlePageUIClient.h:
* WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleAlternativePresentationButtonClick): Deleted.
* WebProcess/WebCoreSupport/WebChromeClient.h:

Source/WebKitLegacy/mac:

* Configurations/FeatureDefines.xcconfig:

Tools:

* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/ClickAlternativePresentationButton.mm: Removed.
* TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(TEST):
(-[AlternativePresentationButtonDelegate _webView:didClickAlternativePresentationButtonWithUserInfo:]): Deleted.
(-[AlternativePresentationButtonDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]): Deleted.

LayoutTests:

* TestExpectations:
* accessibility/alternative-presentation-button-expected.txt: Removed.
* accessibility/alternative-presentation-button-input-type-expected.txt: Removed.
* accessibility/alternative-presentation-button-input-type.html: Removed.
* accessibility/alternative-presentation-button.html: Removed.
* fast/forms/alternative-presentation-button/replace-and-remove-expected.html: Removed.
* fast/forms/alternative-presentation-button/replace-and-remove.html: Removed.
* fast/forms/alternative-presentation-button/replaced-elements-expected.txt: Removed.
* fast/forms/alternative-presentation-button/replaced-elements.html: Removed.
* fast/forms/alternative-presentation-button/replacement-expected.txt: Removed.
* fast/forms/alternative-presentation-button/replacement.html: Removed.
* platform/gtk/TestExpectations:
* platform/ios/TestExpectations:
* platform/ios/fast/forms/alternative-presentation-button/replacement-expected.txt: Removed.
* platform/mac/TestExpectations:

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

3 years agoDo not reuse resource for memory cache if selected service worker differs
cdumez@apple.com [Wed, 20 Dec 2017 18:30:06 +0000 (18:30 +0000)]
Do not reuse resource for memory cache if selected service worker differs
https://bugs.webkit.org/show_bug.cgi?id=181042

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is consistently passing.

* web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:

Source/WebCore:

No new tests, rebaselined existing test.

* loader/cache/CachedResource.h:
(WebCore::CachedResource::options const):
* loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):

LayoutTests:

Drop test from flaky list now that it is consistently passing.

* TestExpectations:

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

3 years agoMarked svg/animations/smil-leak-element-instances-noBaseValRef.svg as flaky on macOS...
jlewis3@apple.com [Wed, 20 Dec 2017 18:08:51 +0000 (18:08 +0000)]
Marked svg/animations/smil-leak-element-instances-noBaseValRef.svg as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=180997

Unreviewed test gardening.

* platform/mac-wk1/TestExpectations:

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

3 years agoRemove some obsolete test expectations for GTK.
Ms2ger@igalia.com [Wed, 20 Dec 2017 17:32:01 +0000 (17:32 +0000)]
Remove some obsolete test expectations for GTK.
https://bugs.webkit.org/show_bug.cgi?id=181038

Unreviewed test gardening.

* platform/gtk/TestExpectations:
  - Remove tests that now use a matching expectation.
  - Move a test out of the "Unexplained failures" section.
  - Remove a test that is now skipped in all wk2 ports.
* platform/gtk/fast/forms/mailto/formenctype-attribute-button-html-expected.txt:
  Removed: the generic file is correct for GTK as well.
* platform/gtk/fast/forms/mailto/formenctype-attribute-input-html-expected.txt:
  Removed: the generic file is correct for GTK as well.
* platform/mac-wk2/TestExpectations:
  Remove a test that is now skipped in all wk2 ports.
* platform/wk2/TestExpectations:
  Add another test to the list of skipped tests that use beginDragWithFiles,
  which is only implemented in DumpRenderTree.

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

3 years agoDo not search for service worker registration in case of non HTTP navigation loads
commit-queue@webkit.org [Wed, 20 Dec 2017 17:22:36 +0000 (17:22 +0000)]
Do not search for service worker registration in case of non HTTP navigation loads
https://bugs.webkit.org/show_bug.cgi?id=180976

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-20
Reviewed by Chris Dumez.

Covered by manual testing using perf test app uploaded in https://bugs.webkit.org/show_bug.cgi?id=180929.
In case we are sure there is no possiblity for getting a service worker, skip the search step.
Simialrly, do not report any Document as a Service Worker client if it can never be controlled.
A follow-up patch should handle the case of local URLs service worker selection.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::commitData):

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

3 years ago[GTK] Rebaseline fast/canvas/canvas-imageSmoothingQuality.html
Ms2ger@igalia.com [Wed, 20 Dec 2017 17:19:39 +0000 (17:19 +0000)]
[GTK] Rebaseline fast/canvas/canvas-imageSmoothingQuality.html
https://bugs.webkit.org/show_bug.cgi?id=163973

Unreviewed test gardening.

* platform/gtk/TestExpectations: Remove failure annotation.
* platform/gtk/fast/canvas/canvas-imageSmoothingQuality-expected.txt:
  Rebaseline: r202609 added additional output when one of the assertions
  fails, which happens in this test.

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

3 years agoMarked two imported/w3c/web-platform-tests/service-workers/service-worker/ test as...
jlewis3@apple.com [Wed, 20 Dec 2017 17:16:11 +0000 (17:16 +0000)]
Marked two imported/w3c/web-platform-tests/service-workers/service-worker/ test as slow.
https://bugs.webkit.org/show_bug.cgi?id=180982
https://bugs.webkit.org/show_bug.cgi?id=179194

Unreviewed test expectations.

* platform/mac-wk2/TestExpectations:

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

3 years ago[Apple Pay] Tell PassKit whether Apple Pay JS or Payment Request was used to start...
aestes@apple.com [Wed, 20 Dec 2017 17:11:29 +0000 (17:11 +0000)]
[Apple Pay] Tell PassKit whether Apple Pay JS or Payment Request was used to start an Apple Pay session
https://bugs.webkit.org/show_bug.cgi?id=181001
<rdar://problem/35479106>

Reviewed by Tim Horton.

Source/WebCore:

* Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
* Modules/applepay/ApplePaySessionPaymentRequest.h:
(WebCore::ApplePaySessionPaymentRequest::requester const):
(WebCore::ApplePaySessionPaymentRequest::setRequester):
* Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::show):

Source/WebCore/PAL:

* pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

* Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::encode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
* UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toAPIType):
(WebKit::toPKPaymentRequest):

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

3 years ago[RenderTreeBuilder] Move finding-the-parent/creating-wrapper logic from RenderTable...
zalan@apple.com [Wed, 20 Dec 2017 16:52:59 +0000 (16:52 +0000)]
[RenderTreeBuilder] Move finding-the-parent/creating-wrapper logic from RenderTable::addChild to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181018
<rdar://problem/36148601>

Reviewed by Antti Koivisto.

This is in preparation for removing all tree mutation from renderering code.

Covered by existing tests.

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::addChildIgnoringContinuation):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::addChild):
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
* rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
* rendering/updating/RenderTreeBuilderTable.h:

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