Timeline
Dec 23, 2017:
- 7:59 PM Changeset in webkit [226288] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK layout test gardening
- platform/gtk/TestExpectations:
- 8:05 AM Changeset in webkit [226287] by
-
- 12 edits in trunk
Add comments and improve code styles for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren() and related functions
https://bugs.webkit.org/show_bug.cgi?id=180923
Patch by Minsheng Liu <lambda@liu.ms> on 2017-12-23
Reviewed by Frédéric Wang.
Source/WebCore:
The patch improves the code for RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren()
and related function, incorporating the following suggestions from bug 179682:
- Remove several lines of trailing spaces.
- Change several pointers to references.
- Rewrite horizontalStretchyOperator() (formerly toHorizontalStretchyOperator()) to make it more conforming to WebKit's coding style.
- Make unembellishedOperator() a const method.
- Add comments for stretchHorizontalOperatorsAndLayoutChildren().
- Eliminate an unnecessary call to fixLayoutAfterStretch() in stretchHorizontalOperatorsAndLayoutChildren().
Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.
Since there is no behavior change, no new test is required.
- rendering/mathml/RenderMathMLBlock.h:
(WebCore::RenderMathMLBlock::unembellishedOperator const):
(WebCore::RenderMathMLBlock::unembellishedOperator): Deleted.
- rendering/mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::unembellishedOperator const):
(WebCore::RenderMathMLFraction::unembellishedOperator): Deleted.
- rendering/mathml/RenderMathMLFraction.h:
- rendering/mathml/RenderMathMLOperator.cpp:
(WebCore::RenderMathMLOperator::resetStretchSize):
- rendering/mathml/RenderMathMLOperator.h:
- rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::unembellishedOperator const):
(WebCore::RenderMathMLScripts::unembellishedOperator): Deleted.
- rendering/mathml/RenderMathMLScripts.h:
- rendering/mathml/RenderMathMLUnderOver.cpp:
(WebCore::horizontalStretchyOperator):
(WebCore::fixLayoutAfterStretch):
(WebCore::RenderMathMLUnderOver::stretchHorizontalOperatorsAndLayoutChildren):
(WebCore::RenderMathMLUnderOver::layoutBlock):
(WebCore::toHorizontalStretchyOperator): Deleted.
LayoutTests:
Add one more case for the test "mathml/opentype/munderover-stretch-width.html"
to handle the corner case where all components of <munderover>/<munder>/<mover> are stretchy.
Since there is no behavior change, no new test is required.
- mathml/opentype/munderover-stretch-width-expected.txt:
- mathml/opentype/munderover-stretch-width.html:
Dec 22, 2017:
- 4:00 PM Changeset in webkit [226286] by
-
- 2 edits in trunk/Source/WebKit
Allow WebsitePolicies API object to be bridged to _WKWebsitePolicies
https://bugs.webkit.org/show_bug.cgi?id=181135
Reviewed by Dan Bernstein.
_WKWebsitePolicies already wraps WebsitePolicies, we just never hooked this up in newObject().
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
- 3:50 PM Changeset in webkit [226285] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Unreviewed, continue to fix build failures due to AppKit API deprecation
Wraps more code in -Wdeprecated-declarations.
- Carbon/HIWebView.mm:
(overrideCGContext):
- 3:34 PM Changeset in webkit [226284] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
Unreviewed, fix build failures due to using deprecated AppKit symbols when building 32-bit
Wrap some more code in -Wdeprecated-declarations to try and fix the 32-bit build using the newest SDK.
- Carbon/CarbonWindowAdapter.mm:
(-[CarbonWindowAdapter setViewsNeedDisplay:]):
- Plugins/WebNetscapePluginView.mm:
(-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):
(-[WebNetscapePluginView sendDrawRectEvent:]):
(-[WebNetscapePluginView drawRect:]):
- 3:33 PM Changeset in webkit [226283] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] IntlCollator and IntlNumberFormat has static fields with same name
https://bugs.webkit.org/show_bug.cgi?id=181128
Reviewed by Yusuke Suzuki.
Minor fixes into IntlNumberFormat::initializeNumberFormat and
IntlCollator::initializeCollator that makes JSC unified sources
compile. These files were generating compilation error when placed at
the same UnifiedSource.cpp, because they had static variables with same name.
- runtime/IntlCollator.cpp:
(JSC::IntlCollator::initializeCollator):
- runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::initializeNumberFormat):
- 3:32 PM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 3:29 PM Changeset in webkit [226282] by
-
- 3 edits in trunk/LayoutTests
Unreviewed GTK layout test gardening
- TestExpectations:
- platform/gtk/TestExpectations:
- 3:11 PM Changeset in webkit [226281] by
-
- 2 edits in trunk/Tools
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:
- 3:05 PM Changeset in webkit [226280] by
-
- 2 edits in trunk/Source/WebCore
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
inSWContextManager::terminateWorker
no longer accessesthis->m_workerMap
, sothis
is now unused.
- workers/service/context/SWContextManager.cpp:
(WebCore::SWContextManager::terminateWorker):
- 2:53 PM Changeset in webkit [226279] by
-
- 2 edits in trunk/Source/WTF
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:
- 2:34 PM Changeset in webkit [226278] by
-
- 5 edits4 deletes in trunk/LayoutTests
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:
- 2:23 PM Changeset in webkit [226277] by
-
- 45 edits2 adds in trunk
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:]):
- 1:41 PM Changeset in webkit [226276] by
-
- 3 edits2 adds in trunk
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.
- 1:23 PM Changeset in webkit [226275] by
-
- 6 edits in trunk
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:
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:
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):
- 1:17 PM Changeset in webkit [226274] by
-
- 26 edits in trunk
[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:
Call softUpdate at the end of "Handle Fetch", as per:
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.
- 12:43 PM Changeset in webkit [226273] by
-
- 8 edits2 copies in trunk/Source/WebCore
[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.
- 12:41 PM Changeset in webkit [226272] by
-
- 8 edits1 add in trunk
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.
- 12:40 PM Changeset in webkit [226271] by
-
- 2 edits in trunk/Source/WebCore
Credentials warning spam when running CodeGenerator.pm
https://bugs.webkit.org/show_bug.cgi?id=181127
Unreviewed, update WebCore_IDL_INCLUDES.
- CMakeLists.txt:
- 12:30 PM Changeset in webkit [226270] by
-
- 2 edits in trunk/Source/JavaScriptCore
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:
- 11:51 AM Changeset in webkit [226269] by
-
- 12 edits in trunk/Source/JavaScriptCore
[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:
- 10:12 AM Changeset in webkit [226268] by
-
- 5 edits in trunk/Source
[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:
- 10:06 AM Changeset in webkit [226267] by
-
- 1 edit in trunk/ChangeLog
[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.
- 9:18 AM Changeset in webkit [226266] by
-
- 18 edits1 move1 add1 delete in trunk
[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.
- 8:28 AM Changeset in webkit [226265] by
-
- 6 edits in trunk/Source/WebCore
[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):
- 8:11 AM Changeset in webkit [226264] by
-
- 7 edits in trunk
[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):
- 6:43 AM Changeset in webkit [226263] by
-
- 2 edits4 adds in trunk/Tools
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):
- 2:12 AM Changeset in webkit [226262] by
-
- 2 edits in trunk/Source/WebCore
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.
- 1:07 AM Changeset in webkit [226261] by
-
- 5 edits in trunk/Source/JavaScriptCore
[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):
- 12:19 AM Changeset in webkit [226260] by
-
- 3 edits in trunk/Source/JavaScriptCore
[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):
Dec 21, 2017:
- 10:25 PM Changeset in webkit [226259] by
-
- 10 edits3 adds in trunk/Websites/perf.webkit.org
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.
- 9:37 PM Changeset in webkit [226258] by
-
- 2 edits in trunk/Source/WebCore
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.
- 9:36 PM Changeset in webkit [226257] by
-
- 28 edits in trunk
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:]):
- 7:34 PM Changeset in webkit [226256] by
-
- 2 edits in trunk/Source/WebCore
[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
- 7:23 PM Changeset in webkit [226255] by
-
- 3 edits in trunk/Source/WebKit
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.
- 7:05 PM Changeset in webkit [226254] by
-
- 2 edits in trunk/Source/JavaScriptCore
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):
- 6:17 PM Changeset in webkit [226253] by
-
- 2 edits in trunk/Tools
"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.
- 5:17 PM Changeset in webkit [226252] by
-
- 9 edits3 adds1 delete in trunk/Source/WebCore
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:
- 5:10 PM Changeset in webkit [226251] by
-
- 27 edits1 move in trunk/Source/WebCore
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):
- 5:03 PM Changeset in webkit [226250] by
-
- 2 edits in trunk/Source/WebCore
Update Service Workers status to Supported in Preview
https://bugs.webkit.org/show_bug.cgi?id=181093
Reviewed by Andy Estes.
- features.json:
- 4:58 PM Changeset in webkit [226249] by
-
- 2 edits in trunk/LayoutTests
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:
- 3:57 PM Changeset in webkit [226248] by
-
- 4 edits in trunk/Source/WebCore
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.
- 3:05 PM Changeset in webkit [226247] by
-
- 10 edits1 move4 adds in trunk
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):
- 3:03 PM Changeset in webkit [226246] by
-
- 6 edits in trunk/Source/WebCore
[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:
- 2:56 PM Changeset in webkit [226245] by
-
- 8 edits13 copies1 add1 delete in trunk
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:
- Rename the folder from credentials to credentialmanagement for better understanding.
- Remove unneeded dummy codes, i.e. PasswordCredential and FederatedCredential.
- 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:
- 2:50 PM Changeset in webkit [226244] by
-
- 7 edits in trunk
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:
- 2:47 PM Changeset in webkit [226243] by
-
- 2 edits in trunk/Source/WebKit
Address additional review feedback after r226182.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toPKPaymentRequest):
- 2:32 PM Changeset in webkit [226242] by
-
- 2 edits in trunk/Source/WebCore
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.
- 2:14 PM Changeset in webkit [226241] by
-
- 2 edits in trunk/Source/WebCore/platform/gtk/po
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:
- 2:05 PM Changeset in webkit [226240] by
-
- 6 edits in trunk/Source/WebCore
[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:
- 1:10 PM Changeset in webkit [226239] by
-
- 13 edits in trunk
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:
- 1:00 PM Changeset in webkit [226238] by
-
- 2 edits in trunk/Source/WebCore
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):
- 12:59 PM Changeset in webkit [226237] by
-
- 2 edits in trunk/Source/WebCore
[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):
- 12:35 PM Changeset in webkit [226236] by
-
- 2 edits in trunk/Source/WebCore
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):
- 11:56 AM Changeset in webkit [226235] by
-
- 50 edits1 copy5 adds in trunk
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+.
- 11:51 AM Changeset in webkit [226234] by
-
- 12 edits in trunk
[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:
- 11:38 AM Changeset in webkit [226233] by
-
- 2 edits in trunk/LayoutTests
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:
- 11:13 AM Changeset in webkit [226232] by
-
- 4 edits in trunk/Tools
[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:
- 10:52 AM Changeset in webkit [226231] by
-
- 2 edits in trunk/Source/WebKit
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):
- 10:40 AM Changeset in webkit [226230] by
-
- 3 edits in trunk/JSTests
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:
- 10:38 AM Changeset in webkit [226229] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
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):
- 10:28 AM Changeset in webkit [226228] by
-
- 27 edits30 adds in trunk
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:
- 10:01 AM Changeset in webkit [226227] by
-
- 2 edits in trunk/LayoutTests
Correct a TestExpectations entry after r226074.
https://bugs.webkit.org/show_bug.cgi?id=180703
Unreviewed test gardening.
- platform/wk2/TestExpectations:
- 9:53 AM Changeset in webkit [226226] by
-
- 13 edits in trunk/Source
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):
- 9:50 AM Changeset in webkit [226225] by
-
- 2 edits in trunk/Tools
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:
- 9:18 AM Changeset in webkit [226224] by
-
- 5 edits in trunk/Source/WebCore
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.
- 9:16 AM Changeset in webkit [226223] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed Debug build fix after r226217
- UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
- 7:43 AM Changeset in webkit [226222] by
-
- 3 edits in trunk/JSTests
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.
- 7:13 AM Changeset in webkit [226221] by
-
- 5 edits1 copy1 add in trunk/Source/WebCore
[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.
- 6:51 AM Changeset in webkit [226220] by
-
- 2 edits in trunk/Source/WebCore
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):
- 6:44 AM Changeset in webkit [226219] by
-
- 6 edits in trunk/LayoutTests
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:
- 2:56 AM Changeset in webkit [226218] by
-
- 7 edits2 copies2 adds1 delete in trunk/Source
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:
- 2:08 AM Changeset in webkit [226217] by
-
- 27 edits in trunk/Source
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:
Dec 20, 2017:
- 10:48 PM Changeset in webkit [226216] by
-
- 6 edits2 adds in trunk
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.
- 9:39 PM Changeset in webkit [226215] by
-
- 2 edits in trunk/Source/WebCore
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):
- 8:37 PM Changeset in webkit [226214] by
-
- 3 edits in trunk/Tools
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.
- 7:50 PM Changeset in webkit [226213] by
-
- 4 edits in trunk/Source/WebCore
[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.
- 7:39 PM Changeset in webkit [226212] by
-
- 2 edits in trunk
[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:
- 6:45 PM Changeset in webkit [226211] by
-
- 32 edits4 adds in trunk
[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.
- 6:38 PM Changeset in webkit [226210] by
-
- 8 edits1 move1 delete in trunk
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
- 5:58 PM Changeset in webkit [226209] by
-
- 8 edits1 add in trunk
[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):
- 5:54 PM Changeset in webkit [226208] by
-
- 7 edits in trunk/Source/JavaScriptCore
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:
- 5:49 PM Changeset in webkit [226207] by
-
- 2 edits in trunk/LayoutTests
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
- 5:39 PM Changeset in webkit [226206] by
-
- 2 edits in trunk/Source/WebKit
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.
- 5:10 PM Changeset in webkit [226205] by
-
- 16 edits in trunk/Source/WebCore
[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):
- 5:07 PM Changeset in webkit [226204] by
-
- 2 edits in trunk/Source/bmalloc
Include stdio.h before using stderr and _IONBF
https://bugs.webkit.org/show_bug.cgi?id=181046
Patch by Ting-Wei Lan <Ting-Wei Lan> on 2017-12-20
Reviewed by Alex Christensen.
- bmalloc/IsoTLS.cpp:
- 4:13 PM Changeset in webkit [226203] by
-
- 2 edits in trunk/Source/WebCore
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):
- 2:47 PM Changeset in webkit [226202] by
-
- 8 edits1 add in trunk
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.
- 2:09 PM Changeset in webkit [226201] by
-
- 9 copies1 add in releases/Apple/Safari Technology Preview 46
Added a tag for Safari Technology Preview release 46.
- 1:51 PM Changeset in webkit [226200] by
-
- 2 edits in trunk/Source/WebCore
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.
- 1:38 PM Changeset in webkit [226199] by
-
- 4 edits1 delete in trunk/LayoutTests
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:
- 1:08 PM Changeset in webkit [226198] by
-
- 4 edits in trunk/LayoutTests
[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:
- 12:10 PM Changeset in webkit [226197] by
-
- 1 edit2 deletes in trunk/Source/WebCore
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.
- 12:07 PM Changeset in webkit [226196] by
-
- 4 edits in trunk/Source/WebCore
[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.
- 12:04 PM Changeset in webkit [226195] by
-
- 2 edits in trunk/Source/WebCore
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):
- 11:59 AM Changeset in webkit [226194] by
-
- 4 edits in trunk
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):
- 11:29 AM Changeset in webkit [226193] by
-
- 4 edits in trunk
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:
- 11:19 AM Changeset in webkit [226192] by
-
- 2 edits in trunk/LayoutTests
[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:
- 11:16 AM Changeset in webkit [226191] by
-
- 17 edits in trunk
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):
- 10:55 AM Changeset in webkit [226190] by
-
- 2 edits in trunk/Source/WebCore
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):
- 10:45 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 10:43 AM Changeset in webkit [226189] by
-
- 63 edits10 deletes in trunk
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:
- 10:30 AM Changeset in webkit [226188] by
-
- 7 edits in trunk
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.
- 10:08 AM Changeset in webkit [226187] by
-
- 2 edits in trunk/LayoutTests
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:
- 9:32 AM Changeset in webkit [226186] by
-
- 4 edits1 delete in trunk/LayoutTests
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.
- 9:22 AM Changeset in webkit [226185] by
-
- 2 edits in trunk/Source/WebCore
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):
- 9:19 AM Changeset in webkit [226184] by
-
- 3 edits in trunk/LayoutTests
[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.
- 9:16 AM Changeset in webkit [226183] by
-
- 2 edits in trunk/LayoutTests
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:
- 9:11 AM Changeset in webkit [226182] by
-
- 9 edits in trunk/Source
[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):
- 8:52 AM Changeset in webkit [226181] by
-
- 6 edits in trunk/Source/WebCore
[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:
- 8:34 AM Changeset in webkit [226180] by
-
- 7 edits2 adds in trunk
Split layout of RenderMathMLRow into smaller steps
https://bugs.webkit.org/show_bug.cgi?id=180348
Patch by Frederic Wang <fwang@igalia.com> on 2017-12-20
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Currently, RenderMathMLRow mixes too many steps in the same layout functions: layout children,
calculate stretch size, stretch vertical operators, calculate final ascent/descent, handle
out-of-flow positioned children, set logical height, set logical width for non-display
<math> tag, center display <math> tag etc This situation is inherited from the old flexbox
implementation but it makes difficult to read the code and to re-use layout & metrics
calculation for follow-up work on <mrow>-like elements (<menclose>, <mapdded>, <msqrt> or
<math>). See for example bug 160547 for <math> or bug 161126 for <menclose>.
This patch rewrites RenderMathMLRow into smaller steps:
- stretchVerticalOperatorsAndLayoutChildren() which calls layoutIfNeeded() or
insertPositionedObject() on children and stretch vertical operators.
- getContentBoundingBox() to determine the metrics of the mrow-like element without calling
layout on children or positioning them, so that we can improve mrow-like element in the
future.
- layoutRowItems() which sets the position of children.
Setting the logical width/height or centering children is now moved into layoutBlock() since
derived class overriding layoutBlock() will do their own adjustment for width, height and
positions.
Test: mathml/mrow-preferred-width-with-out-of-flow-child.html
The rest of the behavior is unchanged and already covered by existing tests.
- rendering/mathml/RenderMathMLMenclose.cpp:
(WebCore::RenderMathMLMenclose::layoutBlock): Use the new function and get contentWidth
directly from getContentBoundingBox().
- rendering/mathml/RenderMathMLPadded.cpp:
(WebCore::RenderMathMLPadded::layoutBlock): Ditto.
- rendering/mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::layoutBlock): Ditto, also remove useless statement
baseAscent = baseDescent.
- rendering/mathml/RenderMathMLRow.cpp:
(WebCore::toVerticalStretchyOperator): New helper function to cast to a vertical stretchy
operator.
(WebCore::RenderMathMLRow::stretchVerticalOperatorsAndLayoutChildren): New helper function
to ensure layoutIfNeeded()/insertPositionedObject() is called on children and that the
vertical operators are stretched.
(WebCore::RenderMathMLRow::getContentBoundingBox const): New helper function to determine
the width/ascent/descent to use for the mrow content.
(WebCore::RenderMathMLRow::computePreferredLogicalWidths): Skip out-of-flow children in the
preferred width calculation. This is verified by the new test.
(WebCore::RenderMathMLRow::layoutRowItems): Only keep the positioning of children with the
specified width and ascent.
(WebCore::RenderMathMLRow::layoutBlock): Center children for <math display="block"> tag and
set the logical width in other cases. Also set the logical height here.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): Deleted. This work is included in
stretchVerticalOperatorsAndLayoutChildren() now.
- rendering/mathml/RenderMathMLRow.h: Update declaration of functions.
LayoutTests:
New test to verify that out-of-flow positioned children are not taken into account in the
calculation of the preferred width of the mrow element.
- mathml/mrow-preferred-width-with-out-of-flow-child-expected.html: Added.
- mathml/mrow-preferred-width-with-out-of-flow-child.html: Added.
- 8:33 AM Changeset in webkit [226179] by
-
- 9 edits4 moves in trunk/Source/WebCore
Move list and multicolumn building code from RenderTreeUpdater to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=181021
Reviewed by Zalan Bujtas.
RenderTreeUpdater::ListItem -> RenderTreeBuilder::List
RenderTreeUpdater::MultiColumn -> RenderTreeBuilder::MultiColumn
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::adjustTextNodeSizes):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::updateAfterDescendants):
- rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::listBuilder):
(WebCore::RenderTreeBuilder::multiColumnBuilder):
- rendering/updating/RenderTreeBuilderList.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterListItem.cpp.
(WebCore::RenderTreeBuilder::List::List):
(WebCore::RenderTreeBuilder::List::updateItemMarker):
(WebCore::RenderTreeUpdater::ListItem::updateMarker): Deleted.
- rendering/updating/RenderTreeBuilderList.h: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterListItem.h.
- rendering/updating/RenderTreeBuilderMultiColumn.cpp: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterMultiColumn.cpp.
(WebCore::RenderTreeBuilder::MultiColumn::MultiColumn):
(WebCore::RenderTreeBuilder::MultiColumn::updateAfterDescendants):
(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeUpdater::MultiColumn::update): Deleted.
(WebCore::RenderTreeUpdater::MultiColumn::createFragmentedFlow): Deleted.
(WebCore::RenderTreeUpdater::MultiColumn::destroyFragmentedFlow): Deleted.
- rendering/updating/RenderTreeBuilderMultiColumn.h: Copied from Source/WebCore/rendering/updating/RenderTreeUpdaterMultiColumn.h.
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::commit):
(WebCore::RenderTreeUpdater::updateAfterDescendants):
- rendering/updating/RenderTreeUpdater.h:
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
- rendering/updating/RenderTreeUpdaterListItem.cpp: Removed.
- rendering/updating/RenderTreeUpdaterListItem.h: Removed.
- rendering/updating/RenderTreeUpdaterMultiColumn.cpp: Removed.
- rendering/updating/RenderTreeUpdaterMultiColumn.h: Removed.
- 8:20 AM WebKitGTK/2.18.x edited by
- (diff)
- 6:31 AM Changeset in webkit [226178] by
-
- 4 edits in trunk/Source
REGRESSION(r226160) Build broken when MEDIA_STREAM is disabled with MediaStreamRequest namespace confusion
https://bugs.webkit.org/show_bug.cgi?id=181026
Unreviewed build fix.
Source/WebCore:
- platform/mediastream/MediaStreamRequest.h: Fix namespace, unconditionally include header.
Source/WebKit:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame):
Remove UNUSED_PARAM macros that check for (undefined) members rather than params.
- 6:28 AM Changeset in webkit [226177] by
-
- 3 edits in trunk/Source/WebCore
Refactor RenderMathMLFraction to remove members modified during layout
https://bugs.webkit.org/show_bug.cgi?id=180151
Patch by Frederic Wang <fwang@igalia.com> on 2017-12-20
Reviewed by Manuel Rego Casasnovas.
Currently, RenderMathMLFraction has three LayoutUnit members m_defaultLineThickness,
m_lineThickness and m_ascent that are set during layout. In the past such members have caused
MathML rendering bugs due to update issues. This patch refactors the layout of MathML
fractions so that it does not require to store and keep these LayoutUnit members up-to-date.
New helper functions are introduced to perform the simple arithmetic calculations required.
No new tests, behavior unchanged and already covered by existing tests.
- rendering/mathml/RenderMathMLFraction.cpp: We add new helper functions to calculate line
thickness values. This allows to remove updateLineThickness(), m_defaultLineThickness and
m_lineThickness. We also introduce the ascentOverHorizontalAxis() helper function to
calculate the ascent over the middle of its fraction bar or stack gap. This allows to remove
the m_ascent member.
(WebCore::RenderMathMLFraction::defaultLineThickness const): Helper function to calculate
the default thickness of the fraction bar given in the MATH table or a fallback value.
This replaces the use of m_defaultLineThickness.
(WebCore::RenderMathMLFraction::lineThickness const): Helper function to resolve the
actual thickness based on the @linethickness attribute and the default value. This replaces
the use of m_lineThickness.
(WebCore::RenderMathMLFraction::relativeLineThickness const): Rewrite this function using
the new helper functions.
(WebCore::RenderMathMLFraction::fractionParameters const): Make this const and replaces
isStack() with !lineThickness().
(WebCore::RenderMathMLFraction::stackParameters const): Ditto. Also move from layoutBlock
the adjustment of parameters to ensure a minimum gap. Doing so assumes that the fraction is
valid so we add an ASSERT.
(WebCore::RenderMathMLFraction::horizontalOffset const): Make this a const since it does not
mutate anything.
(WebCore::RenderMathMLFraction::ascentOverHorizontalAxis const): Move this code from
layoutBlock() to determine the middle of the stack gap or of the fraction bar. This helper
function replaces m_ascent - mathAxisHeight(). Note that the adjustment of topShiftUp is now
done in stackParameters().
(WebCore::RenderMathMLFraction::layoutBlock): Remove the call to updateLineThickness().
Rely on stackParameters() and ascentOverHorizontalAxis() to perform the necessary calculation
of bottomShiftDown and ascent respectively.
(WebCore::RenderMathMLFraction::paint): Use lineThickness() and ascentOverHorizontalAxis()
instead of m_lineThickness, m_ascent and isStack().
(WebCore::RenderMathMLFraction::firstLineBaseline const): Use ascentOverHorizontalAxis() and
mathAxisHeight() instead of m_ascent.
(WebCore::RenderMathMLFraction::updateLineThickness): Deleted.
- rendering/mathml/RenderMathMLFraction.h: Declare new helper functions for line thickness
values and ascent and remove the old LayoutUnit members. Make horizontalOffset(),
fractionParameter() and stackParameters() const since they do not modify anything and the two
last are used in the const function ascentOverHorizontalAxis(), itself used in
firstLineBaseline().
- 6:25 AM Changeset in webkit [226176] by
-
- 5 edits in trunk
[CMake][WTF] Lowercase ForwardingHeaders directory name of WTF
https://bugs.webkit.org/show_bug.cgi?id=181022
Patch by Fujii Hironori <Fujii Hironori> on 2017-12-20
Reviewed by Konstantin Tokarev.
.:
ForwardingHeaders of WTF are included as <wtf/FooBar.h>. But, the
directory name was uppercase DerivedSources/ForwardingHeaders/WTF.
This confuses Ninja dependency tracking. It should be lowercase.
- Source/cmake/WebKitMacros.cmake: Renamed ForwardingHeaders directory name WTF to wtf.
Source/WTF:
- wtf/CMakeLists.txt: Renamed ForwardingHeaders directory name WTF to wtf.
- wtf/PlatformWin.cmake: Ditto.
- 6:24 AM Changeset in webkit [226175] by
-
- 3 edits in trunk/LayoutTests
Make fast/css-generated-content/quotes-lang.html pass on GTK
https://bugs.webkit.org/show_bug.cgi?id=93976
Unreviewed test gardening.
Adding a span to the reference file avoids a one-pixel difference in the
font rendering between test and reference on GTK.
- fast/css-generated-content/quotes-lang-expected.html:
- platform/gtk/TestExpectations:
- 4:46 AM Changeset in webkit [226174] by
-
- 2 edits in trunk/Source/WebCore
[GTK][Clang] Build fix after r226138
https://bugs.webkit.org/show_bug.cgi?id=180984
Unreviewed build fix.
No new tests, its a build fix.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers):
- 4:44 AM Changeset in webkit [226173] by
-
- 4 edits in trunk
REGRESSION(r222699): Drag & drop from a web page to Gmail fails
https://bugs.webkit.org/show_bug.cgi?id=181019
Reviewed by Wenson Hsieh.
Source/WebCore:
The bug was caused by imageTypeToFakeFilename returning "image/png" instead of "image.png" for
the filename for a PING image converted from a TIFF image. Fixed the bug by correcting this typo.
Tests: PasteImage.PasteLegacyTIFFImage
PasteImage.PasteTIFFImage
- platform/cocoa/PasteboardCocoa.mm:
(WebCore::imageTypeToFakeFilename):
Tools:
Added assertions for filenames.
- TestWebKitAPI/Tests/WebKitCocoa/PasteImage.mm:
- 2:59 AM WebKitGTK/2.18.x edited by
- (diff)
Dec 19, 2017:
- 7:24 PM Changeset in webkit [226172] by
-
- 23 edits1 add in trunk
Refactor user-installed font setting for clarity
https://bugs.webkit.org/show_bug.cgi?id=181013
Reviewed by Simon Fraser.
Source/WebCore:
Pave the way for https://bugs.webkit.org/show_bug.cgi?id=180951.
This patch renames the Setting to not have so many grammatical negatives, and moves
some CoreText-specific FontCache function signatures into a new FontCacheCoreText.h
header file. It also uses the AllowUserInstalledFonts enum class in more places instead
of the old boolean we were using, and puts this enum class in the common TextFlags.h
header.
No new tests because there is no behavior change.
- WebCore.xcodeproj/project.pbxproj:
- css/CSSFontFaceSet.cpp:
(WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::initializeFontStyle):
- page/Settings.yaml:
- platform/graphics/FontCache.h:
(WebCore::SynthesisPair::SynthesisPair): Deleted.
(WebCore::SynthesisPair::boldObliquePair const): Deleted.
- platform/graphics/FontDescription.cpp:
(WebCore::m_shouldAllowUserInstalledFonts):
(WebCore::m_mayRepresentUserInstalledFont): Deleted.
- platform/graphics/FontDescription.h:
(WebCore::FontDescription::shouldAllowUserInstalledFonts const):
(WebCore::FontDescription::setShouldAllowUserInstalledFonts):
(WebCore::FontDescription::operator== const):
(WebCore::FontDescription::mayRepresentUserInstalledFont const): Deleted.
(WebCore::FontDescription::setMayRepresentUserInstalledFont): Deleted.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::FontDatabase::singleton):
(WebCore::FontDatabase::singletonAllowingUserInstalledFonts):
(WebCore::FontDatabase::singletonDisallowingUserInstalledFonts):
(WebCore::FontDatabase::FontDatabase):
(WebCore::platformFontLookupWithFamily):
(WebCore::fontWithFamily):
- platform/graphics/cocoa/FontCacheCoreText.h: Added.
(WebCore::SynthesisPair::SynthesisPair):
(WebCore::SynthesisPair::boldObliquePair const):
- platform/text/TextFlags.h:
- style/StyleResolveForDocument.cpp:
(WebCore::Style::resolveForDocument):
Source/WebKit:
There are no clients of this SPI yet, so we can rename it to remove the
grammatical negative.
- Shared/WebPreferences.yaml:
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShouldAllowUserInstalledFonts):
(WKPreferencesGetShouldAllowUserInstalledFonts):
(WKPreferencesSetShouldDisallowUserInstalledFonts): Deleted.
(WKPreferencesGetShouldDisallowUserInstalledFonts): Deleted.
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _shouldAllowUserInstalledFonts]):
(-[WKPreferences _setShouldAllowUserInstalledFonts:]):
(-[WKPreferences _shouldDisallowUserInstalledFonts]): Deleted.
(-[WKPreferences _setShouldDisallowUserInstalledFonts:]): Deleted.
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
LayoutTests:
- fast/text/user-installed-fonts/disable.html:
- fast/text/user-installed-fonts/shadow-disable.html:
- fast/text/user-installed-fonts/shadow-family-disable.html:
- fast/text/user-installed-fonts/shadow-postscript-disable.html:
- fast/text/user-installed-fonts/shadow-postscript-family-disable.html:
- 7:17 PM Changeset in webkit [226171] by
-
- 3 edits in trunk/Source/WebCore
UserMediaRequest should stop a request when Document is being stopped
https://bugs.webkit.org/show_bug.cgi?id=180962
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-19
Reviewed by Eric Carlson.
Covered by fast/mediastream/destroy-document-while-enumerating-devices.html not crashing anymore under guardmalloc.
Stopping to wait for the media stream to be active whenDocument goes away.
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::stop):
(WebCore::UserMediaRequest::activeDOMObjectName const):
(WebCore::UserMediaRequest::canSuspendForDocumentSuspension const):
(WebCore::UserMediaRequest::contextDestroyed): Deleted.
- Modules/mediastream/UserMediaRequest.h:
- 5:58 PM Changeset in webkit [226170] by
-
- 7 edits in branches/safari-604.5.100-branch/Source
Versioning.
- 5:52 PM Changeset in webkit [226169] by
-
- 7 edits in branches/safari-604-branch/Source
Versioning.
- 5:44 PM Changeset in webkit [226168] by
-
- 9 edits2 moves in trunk/Source/WebCore
Move first-letter building code to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=180992
Reviewed by Zalan Bujtas.
All special case tree building logic should go to RenderTreeBuilder.
- RenderTreeUpdater::FirstLetter -> RenderTreeBuilder::FirstLetter
- Make the builder non-static and stop using RenderTreeBuilder::current() there.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/TextAutoSizing.cpp:
(WebCore::TextAutoSizingValue::adjustTextNodeSizes):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::RenderTreeBuilder):
(WebCore::RenderTreeBuilder::insertChild):
(WebCore::RenderTreeBuilder::updateAfterDescendants):
- rendering/updating/RenderTreeBuilder.h:
(WebCore::RenderTreeBuilder::firstLetterBuilder):
(WebCore::RenderTreeBuilder::tableBuilder):
- rendering/updating/RenderTreeBuilderFirstLetter.cpp: Copied from rendering/updating/RenderTreeUpdaterFirstLetter.cpp.
(WebCore::supportsFirstLetter):
(WebCore::RenderTreeBuilder::FirstLetter::FirstLetter):
(WebCore::RenderTreeBuilder::FirstLetter::updateAfterDescendants):
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):
(WebCore::updateFirstLetterStyle): Deleted.
(WebCore::createFirstLetterRenderer): Deleted.
(WebCore::RenderTreeUpdater::FirstLetter::update): Deleted.
- rendering/updating/RenderTreeBuilderFirstLetter.h: Copied from rendering/updating/RenderTreeUpdaterFirstLetter.h.
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateAfterDescendants):
- rendering/updating/RenderTreeUpdater.h:
- rendering/updating/RenderTreeUpdaterFirstLetter.cpp: Removed.
- rendering/updating/RenderTreeUpdaterFirstLetter.h: Removed.
- 5:44 PM Changeset in webkit [226167] by
-
- 1 copy in tags/Safari-604.5.3
Tag Safari-604.5.3.
- 5:43 PM Changeset in webkit [226166] by
-
- 1 copy in tags/Safari-604.5.100.3
Tag Safari-604.5.100.3.
- 5:33 PM Changeset in webkit [226165] by
-
- 2 edits in trunk/Tools
MarkerSubrange.SubdivideGrammarAndSelectionOverlap{Frontmost, FrontmostWithLongestEffectiveRange} are failing
https://bugs.webkit.org/show_bug.cgi?id=181014
Temporarily disable tests while I investigate offline.
- TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp:
(TestWebKitAPI::TEST):
- 5:31 PM Changeset in webkit [226164] by
-
- 2 edits in trunk/Tools
Unreviewed, rebaseline an API test result for El Capitan and Sierra.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(TestWebKitAPI::TEST):
- 5:29 PM Changeset in webkit [226163] by
-
- 5 edits in trunk
Web Inspector: InspectorTest.evaluateInPage should return a rejection if an error was thrown
https://bugs.webkit.org/show_bug.cgi?id=180956
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness.prototype.evaluateInPage.translateResult): Renamed.
(FrontendTestHarness.prototype.evaluateInPage):
If the result was thrown, then reject with the error.
Rename the helper method to match the same one in RemoteObject.prototype.fetchProperties.
LayoutTests:
- inspector/unit-tests/test-harness-evaluate-in-page-expected.txt:
- inspector/unit-tests/test-harness-evaluate-in-page.html:
Update test case to expect an exception when an error was thrown in our evaluation.
- 5:15 PM Changeset in webkit [226162] by
-
- 11 edits in trunk
[Fetch] Extracting a body of type Blob should not set Content-Type to the empty string
https://bugs.webkit.org/show_bug.cgi?id=180991
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT test now that it is passing.
- web-platform-tests/service-workers/service-worker/invalid-blobtype.https-expected.txt:
Source/WebCore:
Extracting a body of type Blob should not set Content-Type to the empty string as per:
No new tests, rebaselined existing test.
- Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract):
- 5:10 PM Changeset in webkit [226161] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed, rolling out r226094.
https://bugs.webkit.org/show_bug.cgi?id=181012
No longer needed to build without error. (Requested by xenon
on #webkit).
Reverted changeset:
"[GTK][WPE] Conditionalize libTASN1 use behind
ENABLE_SUBTLE_CRYPTO in the CMake files"
https://bugs.webkit.org/show_bug.cgi?id=180949
https://trac.webkit.org/changeset/226094
- 5:08 PM Changeset in webkit [226160] by
-
- 42 edits3 copies1 add in trunk
[MediaStream] Clean up RealtimeMediaSource interfaces
https://bugs.webkit.org/show_bug.cgi?id=180934
<rdar://problem/36108648>
Reviewed by Youenn Fablet.
Source/WebCore:
No new tests, updated http/tests/media/media-stream/disconnected-frame.html.
Wrap video and audio constraints in a struct instead of passing both around as separate
parameters. Cleanup up the interface to RealTimeMediaSourceCenter.
- Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getUserMedia const):
- Modules/mediastream/MediaDevicesRequest.cpp:
(WebCore::MediaDevicesRequest::start):
- Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::start):
(WebCore::UserMediaRequest::allow):
(WebCore::UserMediaRequest::contextDestroyed):
- Modules/mediastream/UserMediaRequest.h:
(WebCore::UserMediaRequest::request const):
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/CaptureDevice.h:
(WebCore::CaptureDevice::persistentId const):
(WebCore::CaptureDevice::label const):
(WebCore::CaptureDevice::groupId const):
(WebCore::CaptureDevice::type const):
(WebCore::CaptureDevice::setPersistentId): Deleted.
(WebCore::CaptureDevice::setLabel): Deleted.
(WebCore::CaptureDevice::setGroupId): Deleted.
(WebCore::CaptureDevice::setType): Deleted.
- platform/mediastream/CaptureDeviceManager.cpp:
(CaptureDeviceManager::getAudioSourcesInfo): Deleted.
(CaptureDeviceManager::getVideoSourcesInfo): Deleted.
(CaptureDeviceManager::deviceWithUID): Deleted.
- platform/mediastream/CaptureDeviceManager.h:
(WebCore::CaptureDeviceManager::captureDeviceWithPersistentID):
(WebCore::CaptureDeviceManager::refreshCaptureDevices):
- platform/mediastream/MediaStreamRequest.h: Copied from Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDevice.mm.
(WebCore::MediaStreamRequest::encode const):
(WebCore::MediaStreamRequest::decode):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::createMediaStream):
(WebCore::RealtimeMediaSourceCenter::getMediaStreamDevices):
(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::RealtimeMediaSourceCenter::captureDeviceWithPersistentID):
- platform/mediastream/RealtimeMediaSourceCenter.h:
- platform/mediastream/RealtimeMediaSourceSettings.h:
- platform/mediastream/ios/AVAudioSessionCaptureDevice.mm:
(WebCore::AVAudioSessionCaptureDevice::AVAudioSessionCaptureDevice):
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(WebCore::AVAudioSessionCaptureDeviceManager::captureDevices):
(WebCore::AVAudioSessionCaptureDeviceManager::captureDeviceWithPersistentID):
- platform/mediastream/mac/AVCaptureDeviceManager.h:
- platform/mediastream/mac/AVCaptureDeviceManager.mm:
(WebCore::AVCaptureDeviceManager::captureDevicesInternal):
(WebCore::AVCaptureDeviceManager::captureDevices):
(WebCore::AVCaptureDeviceManager::refreshAVCaptureDevicesOfType):
(WebCore::AVCaptureDeviceManager::refreshCaptureDevices):
(WebCore::AVCaptureDeviceManager::deviceDisconnected):
(WebCore::AVCaptureDeviceManager::getAudioSourcesInfo): Deleted.
(WebCore::AVCaptureDeviceManager::getVideoSourcesInfo): Deleted.
- platform/mediastream/mac/CoreAudioCaptureDevice.cpp:
(WebCore::CoreAudioCaptureDevice::CoreAudioCaptureDevice):
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
(WebCore::CoreAudioCaptureDeviceManager::captureDevices):
(WebCore::CoreAudioCaptureDeviceManager::captureDeviceWithPersistentID):
(WebCore::CoreAudioCaptureDeviceManager::refreshAudioCaptureDevices):
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
- platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::startProducingData):
(WebCore::MockRealtimeAudioSource::createMuted): Deleted.
- platform/mock/MockRealtimeAudioSource.h:
- platform/mock/MockRealtimeMediaSource.cpp:
(WebCore::deviceMap):
(WebCore::MockRealtimeMediaSource::captureDeviceWithPersistentID):
(WebCore::MockRealtimeMediaSource::audioDevices):
(WebCore::MockRealtimeMediaSource::videoDevices):
(WebCore::MockRealtimeMediaSource::MockRealtimeMediaSource):
- platform/mock/MockRealtimeMediaSource.h:
(WebCore::MockRealtimeMediaSource::device const):
(WebCore::MockRealtimeMediaSource::deviceIndex): Deleted.
- platform/mock/MockRealtimeMediaSourceCenter.h:
- platform/mock/MockRealtimeVideoSource.cpp:
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
(WebCore::MockRealtimeVideoSource::initializeCapabilities):
(WebCore::MockRealtimeVideoSource::generateFrame):
(WebCore::MockRealtimeVideoSource::createMuted): Deleted.
- platform/mock/MockRealtimeVideoSource.h:
Source/WebKit:
- Shared/WebCoreArgumentCoders.h: Update CaptureDevice encoder.
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::createPermissionRequest): Renamed from createRequest.
(WebKit::UserMediaPermissionRequestManagerProxy::requestUserMediaPermissionForFrame): Update for
API change.
(WebKit::UserMediaPermissionRequestManagerProxy::enumerateMediaDevicesForFrame): Filter the
vector returned by getMediaStreamDevices.
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest): Deleted.
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy): Update for API change.
(WebKit::UserMediaPermissionRequestProxy::allow): Ditto.
- UIProcess/UserMediaPermissionRequestProxy.h:
(WebKit::UserMediaPermissionRequestProxy::create):
(WebKit::UserMediaPermissionRequestProxy::requestType const):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForFrame): Ditto.
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
(WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): m_blockedRequests -> m_blockedUserMediaRequests.
(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest): Ditto.
(WebKit::UserMediaPermissionRequestManager::mediaCanStart): Ditto.
(WebKit::UserMediaPermissionRequestManager::removeMediaRequestFromMaps): Ditto.
- WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
LayoutTests:
- http/tests/media/media-stream/disconnected-frame-expected.txt:
- http/tests/media/media-stream/disconnected-frame.html:
- 4:59 PM Changeset in webkit [226159] by
-
- 2 edits in trunk/LayoutTests
Marked http/tests/images/image-supports-video.html as flaky on macOS WK1.
https://bugs.webkit.org/show_bug.cgi?id=181008
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 4:56 PM Changeset in webkit [226158] by
-
- 7 edits1 delete in trunk/Source/WebInspectorUI
Web Inspector: Network Table - Redesign the waterfall popover showing timing data
https://bugs.webkit.org/show_bug.cgi?id=180996
<rdar://problem/34072542>
Reviewed by Matt Baker.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Main.html:
New strings and files.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
(WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
Use the ResourceTimingBreakdownView with a fixed width size.
- UserInterface/Views/ResourceTimingContentView.css: Removed.
- UserInterface/Views/ResourceTimingContentView.js:
(WI.ResourceTimingContentView.prototype.initialLayout):
(WI.ResourceTimingContentView.prototype._refreshTimingSection):
(WI.ResourceTimingContentView.prototype._refreshTimingSection.createBlock): Deleted.
(WI.ResourceTimingContentView.prototype._refreshTimingSection.createTimeLabel): Deleted.
(WI.ResourceTimingContentView.prototype._refreshTimingSection.createRow): Deleted.
Use the ResourceTimingBreakdownView with a flexible size.
Also changed the loading indicator and empty message to match
normal ContentView loading indicator and message only UI.
- UserInterface/Views/ResourceTimingBreakdownView.css:
(.waterfall-popover .resource-timing-breakdown):
(.resource-timing-breakdown > table > tr > td.label):
(.resource-timing-breakdown > table > tr > td.graph):
(.resource-timing-breakdown > table > tr > td.time):
(.resource-timing-breakdown > table > tr.empty):
(.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
(.resource-timing-breakdown > table hr):
(.resource-timing-breakdown .waterfall .block):
(.resource-timing-breakdown): Deleted.
(.resource-timing-breakdown > .waterfall): Deleted.
(.resource-timing-breakdown > .waterfall .block): Deleted.
(.resource-timing-breakdown ul): Deleted.
(.resource-timing-breakdown ul > li): Deleted.
(.resource-timing-breakdown ul > li > .row-label): Deleted.
(body[dir=ltr] .resource-timing-breakdown ul > li > .row-label): Deleted.
(body[dir=rtl] .resource-timing-breakdown ul > li > .row-label): Deleted.
(.resource-timing-breakdown ul > li > .section-label): Deleted.
(.resource-timing-breakdown ul > li > .time-label): Deleted.
(.resource-timing-breakdown .time-section): Deleted.
(.resource-timing-breakdown ul > li > .time-section > .label): Deleted.
(.resource-timing-breakdown ul > li.total .block): Deleted.
(.resource-timing-breakdown ul > li.total .time-label): Deleted.
- UserInterface/Views/ResourceTimingBreakdownView.js:
(WI.ResourceTimingBreakdownView):
(WI.ResourceTimingBreakdownView.prototype._appendEmptyRow):
(WI.ResourceTimingBreakdownView.prototype._appendHeaderRow):
(WI.ResourceTimingBreakdownView.prototype._appendRow):
(WI.ResourceTimingBreakdownView.prototype.initialLayout):
(WI.ResourceTimingBreakdownView.prototype.initialLayout.createBlock): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.createSectionLabel): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.createTimeLabel): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.createTimeSection): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.createRow): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.emptyRow): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.appendGraphRow): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.appendEmptyRow): Deleted.
(WI.ResourceTimingBreakdownView.prototype.initialLayout.getCurrentSectionMetrics): Deleted.
Redesign the breakdown view.
- 4:12 PM Changeset in webkit [226157] by
-
- 3 edits in branches/safari-604-branch/Source/JavaScriptCore/offlineasm
Apply patch. rdar://problem/36111999
Fix build failure for iOS. Partial cherry-pick r223239 (offlineasm portion of that change).
- 4:07 PM Changeset in webkit [226156] by
-
- 6 edits2 adds in trunk
Don't convert pasted content to use blob URL in WebKit1
https://bugs.webkit.org/show_bug.cgi?id=180969
Reviewed by Wenson Hsieh.
Source/WebCore:
Turns out that some WebKit1 clients are relying on being able to see the original URLs of the pasted content;
e.g. not storing content referenced by HTTP/HTTPS protocol as opposed to local files.
This patch restores the behavior prior to r223440 and r222839 for WebKit1 clients by overriding resources in
DocumentLoader instead of converting URLs used in the pasted contents by blob URLs. In addition, this patch
disables the pasteboard sanitization and custom data transfer types for WebKit1 clients as the feature poses
a compatibility concern for WebKit1 clients.
Tests: WebKitLegacy.AccessingImageInPastedRTFD
WebKitLegacy.AccessingImageInPastedWebArchive
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::createFragmentAndAddResources):
(WebCore::WebContentReader::readWebArchive):
- page/DeprecatedGlobalSettings.cpp:
(WebCore::DeprecatedGlobalSettings::defaultCustomPasteboardDataEnabled):
Tools:
Added API tests to make sure we can access the images in the pasted content.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/paste-rtfd.html:
- TestWebKitAPI/Tests/WebKitLegacy/mac: Added.
- TestWebKitAPI/Tests/WebKitLegacy/mac/AccessingPastedImage.mm: Added.
(writeRTFDToPasteboard):
(-[SubresourceForBlobURLFrameLoadDelegate webView:didFinishLoadForFrame:]):
(-[SubresourceForBlobURLFrameLoadDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
(TestWebKitAPI::TEST):
- 4:06 PM Changeset in webkit [226155] by
-
- 2 edits in trunk/LayoutTests
Web Inspector: add TestPage.debug() to inspect evaluations being sent to Inspector page
https://bugs.webkit.org/show_bug.cgi?id=181005
Reviewed by Joseph Pecoraro.
When TestPage.debug() is called, dump out all code that is sent to be evaluated in
the inspector page. This is useful for debugging initialization and InspectorTest.awaitEvent.
- http/tests/inspector/resources/inspector-test.js:
(runTest):
(TestPage.debug):
(TestPage.evaluateInWebInspector):
(TestPage.dispatchEventToFrontend):
- 4:03 PM Changeset in webkit [226154] by
-
- 2 edits in trunk/LayoutTests
Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/getregistrations.https.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=180497
<rdar://problem/35947470>
Unreviewed.
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-19
- TestExpectations: Marking test as slow on Debug.
- 3:53 PM Changeset in webkit [226153] by
-
- 5 edits in trunk
Web Inspector: InspectorTest.expectException does not handle implicitly resolved async functions correctly
https://bugs.webkit.org/show_bug.cgi?id=180944
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Test/TestHarness.js:
(TestHarness.prototype.expectException):
Don't chain .catch after we might have just returned a rejected promise.
LayoutTests:
Add a new test case for implicitly resolved async functions passed to expectException.
Rebaseline one existing test that had a failing assertion that progresses with
this change. I didn't notice it because the assertion just prior is expected to fail.
- inspector/unit-tests/test-harness-expect-functions-async-expected.txt:
- inspector/unit-tests/test-harness-expect-functions-async.html:
- 3:50 PM Changeset in webkit [226152] by
-
- 2 edits in trunk/Source/WTF
SLEEP_THREAD_FOR_DEBUGGER() macro should try to print out the PID of the affected process
https://bugs.webkit.org/show_bug.cgi?id=180947
Reviewed by Joseph Pecoraro.
- wtf/DebugUtilities.h:
- Use sleep() from CurrentTime.h as it is more cross-platform.
- Print a message with the process PID to simplify attaching to sleeping thread.
- Include source location in case multiple such macros are being used.
- 3:40 PM Changeset in webkit [226151] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Network Table - Update the Time column to include the total duration not just the download duration
https://bugs.webkit.org/show_bug.cgi?id=180998
<rdar://problem/36140424>
Reviewed by Matt Baker.
- UserInterface/Models/Resource.js:
(WI.Resource.prototype.get totalDuration):
(WI.Resource.prototype.get duration): Deleted.
Rename and group getters to be clearer.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView.prototype._entryForResource):
Use the totalDuration for the network table time column.
- UserInterface/Views/ResourceTimelineDataGridNode.js:
(WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar graphDataSource.get secondsPerPixel):
Using the download duration was incorrect here.
- 3:16 PM Changeset in webkit [226150] by
-
- 9 edits in trunk
Playing media elements which call "pause(); play()" will have the play promise rejected.
https://bugs.webkit.org/show_bug.cgi?id=180781
<rdar://problem/33191377>
Reviewed by Eric Carlson.
Source/WebCore:
Follow-up to address failing iOS API tests. Rather than skipping the call to
prepareForLoad() in the case where media elements are not allowed to load data,
unconditionally call prepareForLoad(), but conditionally call selectMediaResource() inside
that function only if the media elemnet is allowed to load. This ensures that the
MediaPlayer is created when play(), pause(), or load() are called during a user gesture
later, and selectMediaResource() (which depends on having a non-null m_player) is called.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::insertedIntoAncestor):
(WebCore::HTMLMediaElement::load):
(WebCore::HTMLMediaElement::prepareForLoad):
(WebCore::HTMLMediaElement::playInternal):
Source/WebKit:
shouldRequireUserGestureToLoadVideo() should default to false on Mac.
- UIProcess/API/Cocoa/WKWebView.mm:
(shouldRequireUserGestureToLoadVideo):
Source/WebKitLegacy/mac:
shouldRequireUserGestureToLoadVideo() should default to false on Mac.
- WebView/WebView.mm:
(shouldRequireUserGestureToLoadVideo):
LayoutTests:
- media/video-load-require-user-gesture.html:
- 3:13 PM Changeset in webkit [226149] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Styles Redesign: Typing semicolon at the end of value should move to the next property
https://bugs.webkit.org/show_bug.cgi?id=178498
<rdar://problem/35065995>
Reviewed by Joseph Pecoraro.
- UserInterface/Views/SpreadsheetStypeProperty.js:
(WI.SpreadsheetStypeProperty.prototype._update):
(WI.SpreadsheetStypeProperty.prototype._handleValueBeforeInput):
Only move to the next property if there are no unbalanced quotes. For example, adding a
semicolon afterurl("foo
orurl('bar
would not move to the next property.
- UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype.valueWithoutSuggestion):
(WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
(WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion):
(WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
(WI.SpreadsheetTextField.prototype._updateCompletions):
(WI.SpreadsheetTextField.prototype._getPrefix): Deleted.
- 3:12 PM Changeset in webkit [226148] by
-
- 3 edits in trunk/Source/WebKitLegacy/mac
API test WKAttachmentTests.InsertPastedAttributedStringContainingMultipleAttachments is failing on El Capitan and Sierra
https://bugs.webkit.org/show_bug.cgi?id=180977
Reviewed by Tim Horton.
Fixes a failing API test by updating markup deserialization codepaths in WebKitLegacy to behave like the modern
WebCore counterpart. When determining element tags to exclude when generating markup from an attributed string,
don't add "object" as an element to exclude if the attachment element runtime feature is enabled.
- WebCoreSupport/WebEditorClient.mm:
(attributesForAttributedStringConversion):
- WebView/WebHTMLView.mm:
(+[WebHTMLView _excludedElementsForAttributedStringConversion]):
- 3:01 PM Changeset in webkit [226147] by
-
- 2 edits in branches/safari-604.5.100-branch/Source/JavaScriptCore
Apply patch. rdar://problem/36112003
32-bit fix.
- 3:01 PM Changeset in webkit [226146] by
-
- 62 edits4 copies3 adds in branches/safari-604.5.100-branch
Apply patch. rdar://problem/36111996
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
Also merged offlineasm parts of r220184 and r222549. These changes are required
to support the code in cherry-picked revisions above.
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
- MacroAssemblerCodePtr now stores a ScrambledPtr instead of a void*.
- MacroAssemblerCodePtr's executableAddress() and dataLocation() now take a template argument type that will be used to cast the result. This makes the client code that uses these functions a little less verbose.
- Change the code base in general to minimize passing void* code pointers around. We now pass MacroAssemblerCodePtr as much as possible, and descramble it only at the last moment when we need the underlying code pointer.
- Added some MasmScrambledPtr paranoid asserts that are disabled (not built) by default. I'm leaving them in because they are instrumental in finding bugs where not all MacroAssemblerCodePtr values were not scrambled as expected. I expect them to be useful in the near future as we add more scrambling.
- Also disable the casting operator on MacroAssemblerCodePtr (except for explicit casts to a boolean). This ensures that clients will always explicitly use scrambledBits() or executableAddress() to get a value based on which value they actually need.
- Added currentThread() id to the logging in LLIntSlowPath trace functions. This was helpful when debugging tests that ran multiple VMs concurrently on different threads.
MacroAssemblerCodePtr is currently supported on 64-bit builds (including the
CLoop). It is not yet supported in 32-bit and Windows because we don't
currently have a way to read a global variable from their LLInt code.
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::differenceBetweenCodePtr): (JSC::AbstractMacroAssembler::linkPointer):
- assembler/CodeLocation.h: (JSC::CodeLocationCommon::instructionAtOffset): (JSC::CodeLocationCommon::labelAtOffset): (JSC::CodeLocationCommon::jumpAtOffset): (JSC::CodeLocationCommon::callAtOffset): (JSC::CodeLocationCommon::nearCallAtOffset): (JSC::CodeLocationCommon::dataLabelPtrAtOffset): (JSC::CodeLocationCommon::dataLabel32AtOffset): (JSC::CodeLocationCommon::dataLabelCompactAtOffset): (JSC::CodeLocationCommon::convertibleLoadAtOffset):
- assembler/LinkBuffer.cpp: (JSC::LinkBuffer::finalizeCodeWithDisassembly):
- assembler/LinkBuffer.h: (JSC::LinkBuffer::link): (JSC::LinkBuffer::patch):
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize):
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::scrambledPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator bool const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::hash const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::executableAddress const): Deleted. (JSC::MacroAssemblerCodePtr::dataLocation const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGDisassembler.cpp: (JSC::DFG::Disassembler::dumpDisassembly):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitSwitchIntJump): (JSC::DFG::SpeculativeJIT::emitSwitchImm): (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): (JSC::DFG::SpeculativeJIT::emitSwitchChar):
- dfg/DFGSpeculativeJIT.h:
- disassembler/Disassembler.cpp: (JSC::disassemble):
- disassembler/UDis86Disassembler.cpp: (JSC::tryToDisassembleWithUDis86):
- ftl/FTLCompile.cpp: (JSC::FTL::compile):
- ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::executableAddressAtOffset):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileMathIC): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct): (JSC::FTL::DFG::LowerDFGToB3::compileTailCall): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
- interpreter/InterpreterInlines.h: (JSC::Interpreter::getOpcodeID):
- jit/JITArithmetic.cpp: (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow):
- jit/JITCode.cpp: (JSC::JITCodeWithCodeRef::executableAddressAtOffset): (JSC::JITCodeWithCodeRef::dataAddressAtOffset): (JSC::JITCodeWithCodeRef::offsetOf):
- jit/JITDisassembler.cpp: (JSC::JITDisassembler::dumpDisassembly):
- jit/PCToCodeOriginMap.cpp: (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
- jit/Repatch.cpp: (JSC::ftlThunkAwareRepatchCall):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::llint_trace_operand): (JSC::LLInt::llint_trace_value): (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::complete):
- wasm/WasmCallee.h: (JSC::Wasm::Callee::entrypoint const):
- wasm/WasmCodeBlock.cpp: (JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work):
- wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS):
- wasm/js/WebAssemblyFunction.cpp: (JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyWrapperFunction.cpp: (JSC::WebAssemblyWrapperFunction::create):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize): Deleted.
- assembler/MacroAssemblerCodeRef.h: (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::hash const):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCScrambledPtr.cpp: Added. (JSC::initializeScrambledPtrKeys):
- runtime/JSCScrambledPtr.h: Added.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::poisonedPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject): (JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp. (JSC::initializePoison): (JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Renamed g_classInfoPoison to g_globalDataPoison.
Renamed g_masmPoison to g_jitCodePoison.
Introduced g_nativeCodePoison.
Applied g_nativeCodePoison to poisoning some native code pointers.
Introduced non-random Int32 poison values (in JSCPoison.h) for use with pointers
to malloc allocated data structures (where needed).
- API/JSCallbackFunction.h: (JSC::JSCallbackFunction::functionCallback):
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/ThunkGenerators.cpp: (JSC::nativeForGenerator):
- llint/LowLevelInterpreter64.asm:
- runtime/CustomGetterSetter.h: (JSC::CustomGetterSetter::getter const): (JSC::CustomGetterSetter::setter const):
- runtime/InternalFunction.cpp: (JSC::InternalFunction::getCallData): (JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h: (JSC::InternalFunction::nativeFunctionFor):
- runtime/JSCPoison.h: Added.
- runtime/JSCPoisonedPtr.cpp: (JSC::initializePoison):
- runtime/JSCPoisonedPtr.h:
- runtime/Lookup.h:
- runtime/NativeExecutable.cpp: (JSC::NativeExecutable::hashFor const):
- runtime/NativeExecutable.h:
- runtime/Structure.cpp: (JSC::StructureTransitionTable::setSingleTransition):
- runtime/StructureTransitionTable.h: (JSC::StructureTransitionTable::StructureTransitionTable): (JSC::StructureTransitionTable::isUsingSingleSlot const): (JSC::StructureTransitionTable::map const): (JSC::StructureTransitionTable::weakImpl const): (JSC::StructureTransitionTable::setMap):
2017-12-08 Mark Lam <mark.lam@apple.com>
Need to unpoison native function pointers for CLoop.
https://bugs.webkit.org/show_bug.cgi?id=180601
<rdar://problem/35942028>
Reviewed by JF Bastien.
- llint/LowLevelInterpreter64.asm:
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
- runtime/StructureTransitionTable.h:
2017-12-18 Jason Marcell <jmarcell@apple.com>
Apply patch. rdar://problem/36113365
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
Introduce a ScrambledPtr class to facilitate scrambling.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/ScrambledPtr.cpp: Added. (WTF::makeScrambledPtrKey):
- wtf/ScrambledPtr.h: Added. (WTF::ScrambledPtr::ScrambledPtr): (WTF::ScrambledPtr::paranoidAssertIsScrambled const): (WTF::ScrambledPtr::paranoidAssertIsNotScrambled const): (WTF::ScrambledPtr:: const): (WTF::ScrambledPtr::operator-> const): (WTF::ScrambledPtr::scrambledBits const): (WTF::ScrambledPtr::operator! const): (WTF::ScrambledPtr::operator bool const): (WTF::ScrambledPtr::operator== const): (WTF::ScrambledPtr::operator==): (WTF::ScrambledPtr::scramble): (WTF::ScrambledPtr::descramble):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- wtf/ScrambledPtr.h: (WTF::ScrambledPtr::descrambled const): (WTF::ScrambledPtr::bits const): (WTF::ScrambledPtr::operator==): (WTF::ScrambledPtr::operator=): (WTF::ScrambledPtr::scramble): (WTF::ScrambledPtr::descramble): (WTF::ScrambledPtr:: const): Deleted. (WTF::ScrambledPtr::scrambledBits const): Deleted.
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Poisoned.cpp: Copied from Source/WTF/wtf/ScrambledPtr.cpp. (WTF::makePoison): (WTF::makeScrambledPtrKey): Deleted.
- wtf/Poisoned.h: Copied from Source/WTF/wtf/ScrambledPtr.h. (WTF::PoisonedImpl::PoisonedImpl): (WTF::PoisonedImpl::assertIsPoisoned const): (WTF::PoisonedImpl::assertIsNotPoisoned const): (WTF::PoisonedImpl::unpoisoned const): (WTF::PoisonedImpl::operator-> const): (WTF::PoisonedImpl::bits const): (WTF::PoisonedImpl::operator! const): (WTF::PoisonedImpl::operator bool const): (WTF::PoisonedImpl::operator== const): (WTF::PoisonedImpl::operator==): (WTF::PoisonedImpl::operator=): (WTF::PoisonedImpl::poison): (WTF::PoisonedImpl::unpoison): (WTF::ScrambledPtr::ScrambledPtr): Deleted. (WTF::ScrambledPtr::assertIsScrambled const): Deleted. (WTF::ScrambledPtr::assertIsNotScrambled const): Deleted. (WTF::ScrambledPtr::descrambled const): Deleted. (WTF::ScrambledPtr::operator-> const): Deleted. (WTF::ScrambledPtr::bits const): Deleted. (WTF::ScrambledPtr::operator! const): Deleted. (WTF::ScrambledPtr::operator bool const): Deleted. (WTF::ScrambledPtr::operator== const): Deleted. (WTF::ScrambledPtr::operator==): Deleted. (WTF::ScrambledPtr::operator=): Deleted. (WTF::ScrambledPtr::scramble): Deleted. (WTF::ScrambledPtr::descramble): Deleted.
- wtf/ScrambledPtr.cpp: Removed.
- wtf/ScrambledPtr.h: Removed.
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Ensure that the resultant poisoned bits still looks like a pointer in that its
bottom bits are 0, just like the alignment bits of a pointer. This allows the
client to use the bottom bits of the poisoned bits as flag bits just like the
client was previously able to do with pointer values.
Note: we only ensure that the bottom alignment bits of the generated poison
value is 0. We're not masking out the poisoned bits. This means that the bottom
bits of the poisoned bits will only be null if the original pointer is aligned.
Hence, if the client applies the poison to an unaligned pointer, we do not lose
any information on the low bits.
Also removed 2 wrong assertions in PoisonedImpl's constructors. We were
asserting that Poisoned will never be used with a null value, but that's invalid.
We do want to allow a null value so that we don't have to constantly do null
checks in the clients. This was uncovered by some layout tests.
- wtf/Poisoned.cpp: (WTF::makePoison):
- wtf/Poisoned.h: (WTF::PoisonedImpl::PoisonedImpl):
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
Also rename Int32Poisoned to ConstExprPoisoned. The key it takes is actually a
uint32_t. So, Int32 is really a misnomer. In addition, the key needs to be a
constexpr. So, ConstExprPoisoned is a better name for it.
- wtf/Poisoned.cpp: (WTF::makePoison):
- wtf/Poisoned.h: (WTF::PoisonedImplHelper::asReference): (WTF::PoisonedImpl::PoisonedImpl): (WTF::PoisonedImpl::clear): (WTF::PoisonedImpl::operator* const): (WTF::PoisonedImpl::operator-> const): (WTF::PoisonedImpl::operator== const): (WTF::PoisonedImpl::operator!= const): (WTF::PoisonedImpl::operator< const): (WTF::PoisonedImpl::operator<= const): (WTF::PoisonedImpl::operator> const): (WTF::PoisonedImpl::operator>= const): (WTF::PoisonedImpl::operator=): (WTF::PoisonedImpl::swap): (WTF::PoisonedImpl::exchange): (WTF::swap): (WTF::makePoison): (WTF::PoisonedImpl::operator==): Deleted.
2017-12-18 Mark Lam <mark.lam@apple.com>
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
Also merged offlineasm parts of r220184 and r222549. These changes are required
to support the code in cherry-picked revisions above.
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
- MacroAssemblerCodePtr now stores a ScrambledPtr instead of a void*.
- MacroAssemblerCodePtr's executableAddress() and dataLocation() now take a template argument type that will be used to cast the result. This makes the client code that uses these functions a little less verbose.
- Change the code base in general to minimize passing void* code pointers around. We now pass MacroAssemblerCodePtr as much as possible, and descramble it only at the last moment when we need the underlying code pointer.
- Added some MasmScrambledPtr paranoid asserts that are disabled (not built) by default. I'm leaving them in because they are instrumental in finding bugs where not all MacroAssemblerCodePtr values were not scrambled as expected. I expect them to be useful in the near future as we add more scrambling.
- Also disable the casting operator on MacroAssemblerCodePtr (except for explicit casts to a boolean). This ensures that clients will always explicitly use scrambledBits() or executableAddress() to get a value based on which value they actually need.
- Added currentThread() id to the logging in LLIntSlowPath trace functions. This was helpful when debugging tests that ran multiple VMs concurrently on different threads.
MacroAssemblerCodePtr is currently supported on 64-bit builds (including the
CLoop). It is not yet supported in 32-bit and Windows because we don't
currently have a way to read a global variable from their LLInt code.
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::differenceBetweenCodePtr): (JSC::AbstractMacroAssembler::linkPointer):
- assembler/CodeLocation.h: (JSC::CodeLocationCommon::instructionAtOffset): (JSC::CodeLocationCommon::labelAtOffset): (JSC::CodeLocationCommon::jumpAtOffset): (JSC::CodeLocationCommon::callAtOffset): (JSC::CodeLocationCommon::nearCallAtOffset): (JSC::CodeLocationCommon::dataLabelPtrAtOffset): (JSC::CodeLocationCommon::dataLabel32AtOffset): (JSC::CodeLocationCommon::dataLabelCompactAtOffset): (JSC::CodeLocationCommon::convertibleLoadAtOffset):
- assembler/LinkBuffer.cpp: (JSC::LinkBuffer::finalizeCodeWithDisassembly):
- assembler/LinkBuffer.h: (JSC::LinkBuffer::link): (JSC::LinkBuffer::patch):
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize):
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::scrambledPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator bool const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::hash const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::executableAddress const): Deleted. (JSC::MacroAssemblerCodePtr::dataLocation const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGDisassembler.cpp: (JSC::DFG::Disassembler::dumpDisassembly):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitSwitchIntJump): (JSC::DFG::SpeculativeJIT::emitSwitchImm): (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): (JSC::DFG::SpeculativeJIT::emitSwitchChar):
- dfg/DFGSpeculativeJIT.h:
- disassembler/Disassembler.cpp: (JSC::disassemble):
- disassembler/UDis86Disassembler.cpp: (JSC::tryToDisassembleWithUDis86):
- ftl/FTLCompile.cpp: (JSC::FTL::compile):
- ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::executableAddressAtOffset):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileMathIC): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct): (JSC::FTL::DFG::LowerDFGToB3::compileTailCall): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
- interpreter/InterpreterInlines.h: (JSC::Interpreter::getOpcodeID):
- jit/JITArithmetic.cpp: (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow):
- jit/JITCode.cpp: (JSC::JITCodeWithCodeRef::executableAddressAtOffset): (JSC::JITCodeWithCodeRef::dataAddressAtOffset): (JSC::JITCodeWithCodeRef::offsetOf):
- jit/JITDisassembler.cpp: (JSC::JITDisassembler::dumpDisassembly):
- jit/PCToCodeOriginMap.cpp: (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
- jit/Repatch.cpp: (JSC::ftlThunkAwareRepatchCall):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::llint_trace_operand): (JSC::LLInt::llint_trace_value): (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::complete):
- wasm/WasmCallee.h: (JSC::Wasm::Callee::entrypoint const):
- wasm/WasmCodeBlock.cpp: (JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work):
- wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS):
- wasm/js/WebAssemblyFunction.cpp: (JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyWrapperFunction.cpp: (JSC::WebAssemblyWrapperFunction::create):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize): Deleted.
- assembler/MacroAssemblerCodeRef.h: (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::hash const):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCScrambledPtr.cpp: Added. (JSC::initializeScrambledPtrKeys):
- runtime/JSCScrambledPtr.h: Added.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::poisonedPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject): (JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp. (JSC::initializePoison): (JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Renamed g_classInfoPoison to g_globalDataPoison.
Renamed g_masmPoison to g_jitCodePoison.
Introduced g_nativeCodePoison.
Applied g_nativeCodePoison to poisoning some native code pointers.
Introduced non-random Int32 poison values (in JSCPoison.h) for use with pointers
to malloc allocated data structures (where needed).
- API/JSCallbackFunction.h: (JSC::JSCallbackFunction::functionCallback):
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/ThunkGenerators.cpp: (JSC::nativeForGenerator):
- llint/LowLevelInterpreter64.asm:
- runtime/CustomGetterSetter.h: (JSC::CustomGetterSetter::getter const): (JSC::CustomGetterSetter::setter const):
- runtime/InternalFunction.cpp: (JSC::InternalFunction::getCallData): (JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h: (JSC::InternalFunction::nativeFunctionFor):
- runtime/JSCPoison.h: Added.
- runtime/JSCPoisonedPtr.cpp: (JSC::initializePoison):
- runtime/JSCPoisonedPtr.h:
- runtime/Lookup.h:
- runtime/NativeExecutable.cpp: (JSC::NativeExecutable::hashFor const):
- runtime/NativeExecutable.h:
- runtime/Structure.cpp: (JSC::StructureTransitionTable::setSingleTransition):
- runtime/StructureTransitionTable.h: (JSC::StructureTransitionTable::StructureTransitionTable): (JSC::StructureTransitionTable::isUsingSingleSlot const): (JSC::StructureTransitionTable::map const): (JSC::StructureTransitionTable::weakImpl const): (JSC::StructureTransitionTable::setMap):
2017-12-08 Mark Lam <mark.lam@apple.com>
Need to unpoison native function pointers for CLoop.
https://bugs.webkit.org/show_bug.cgi?id=180601
<rdar://problem/35942028>
Reviewed by JF Bastien.
- llint/LowLevelInterpreter64.asm:
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
- runtime/StructureTransitionTable.h:
jmarcell@apple.com o [local/branches/safari-604.5.100-branch] Apply patch. rdar://problem/36112003
2017-12-19 19:34 jmarcell@apple.com o Apply patch. rdar://problem/36111996
2017-12-19 19:34 jmarcell@apple.com o Apply patch. rdar://problem/36112003
2017-12-19 19:33 jmarcell@apple.com o Cherry-pick r226068. rdar://problem/36112028
2017-12-19 19:33 jmarcell@apple.com o Cherry-pick r226065. rdar://problem/36080415 # modified: Source/JavaScriptCore/assembler/LinkBuffer.cpp
- 3:01 PM Changeset in webkit [226145] by
-
- 27 edits in branches/safari-604.5.100-branch/Source
Apply patch. rdar://problem/36112003
- 3:00 PM Changeset in webkit [226144] by
-
- 13 edits in branches/safari-604.5.100-branch/Source
Cherry-pick r226068. rdar://problem/36112028
- 3:00 PM Changeset in webkit [226143] by
-
- 5 edits2 adds in branches/safari-604.5.100-branch
Cherry-pick r226065. rdar://problem/36080415
- 2:36 PM Changeset in webkit [226142] by
-
- 3 edits in trunk/Source/WebCore
Build failure in WebGL2 when Video feature is disabled
https://bugs.webkit.org/show_bug.cgi?id=180946
Reviewed by Brian Burg.
- html/canvas/WebGL2RenderingContext.h: Make TexImageSource conditional on ENABLE(VIDEO).
- html/canvas/WebGL2RenderingContext.idl: Ditto.
- 2:32 PM Changeset in webkit [226141] by
-
- 28 edits in trunk
scopeURL should start with the provided scriptURL
https://bugs.webkit.org/show_bug.cgi?id=180983
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT tests now that more checks are passing.
- web-platform-tests/service-workers/service-worker/register-default-scope.https-expected.txt:
- web-platform-tests/service-workers/service-worker/registration-iframe.https-expected.txt:
- web-platform-tests/service-workers/service-worker/registration-security-error.https-expected.txt:
Source/WebCore:
scopeURL should start with the provided scriptURL, as per:
- https://w3c.github.io/ServiceWorker/#update (steps 7.8 to 7.18)
No new tests, rebaselined existing tests.
- platform/network/HTTPHeaderNames.in:
- workers/service/ServiceWorkerJob.cpp:
(WebCore::ServiceWorkerJob::didReceiveResponse):
LayoutTests:
Update WebKit tests due to new restrictions.
- http/tests/workers/service/basic-unregister.https-expected.txt:
- http/tests/workers/service/controller-change.html:
- http/tests/workers/service/resources/ServiceWorkerGlobalScope_getRegistration-worker.js:
(async.runTest):
- http/tests/workers/service/resources/ServiceWorkerGlobalScope_register-worker.js:
(async.runTest):
- http/tests/workers/service/resources/basic-fetch.js:
(async.test):
- http/tests/workers/service/resources/basic-register.js:
(async.test):
- http/tests/workers/service/resources/basic-unregister.js:
(async.test):
- http/tests/workers/service/resources/service-worker-fetch.js:
(async.test):
- http/tests/workers/service/resources/service-worker-getRegistration.js:
(async.test):
- http/tests/workers/service/resources/service-worker-importScript.js:
(async.test):
- http/tests/workers/service/resources/shift-reload-navigation.js:
(async.test):
- http/tests/workers/service/service-worker-clear.html:
- http/tests/workers/service/service-worker-crossorigin-fetch.html:
- http/tests/workers/service/service-worker-getRegistration-expected.txt:
- http/tests/workers/service/service-worker-request-with-body.https.html:
- http/tests/workers/service/serviceworker-idb.https.html:
- http/tests/workers/service/serviceworker-websocket.https.html:
- http/tests/workers/service/serviceworkerclients-get.https.html:
- 2:15 PM Changeset in webkit [226140] by
-
- 5 edits in trunk/Source/WebCore
[RenderTreeBuilder] Move finding-the-parent/creating-wrapper logic from RenderTableSection::addChild to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=180994
<rdar://problem/36139222>
Reviewed by Antti Koivisto.
This is in preparation for removing all tree mutation from renderering code.
Covered by existing tests.
- rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::addChild):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
- rendering/updating/RenderTreeBuilderTable.cpp:
(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
- rendering/updating/RenderTreeBuilderTable.h:
- 1:51 PM Changeset in webkit [226139] by
-
- 2 edits in trunk/Source/JavaScriptCore
We forgot to do index masking for in bounds int32 arrays in the FTL
https://bugs.webkit.org/show_bug.cgi?id=180987
Reviewed by Keith Miller.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
- 1:48 PM Changeset in webkit [226138] by
-
- 13 edits in trunk
Implement InlineTextBox painting using marker subranges
https://bugs.webkit.org/show_bug.cgi?id=180984
<rdar://problem/36139364>
Reviewed by David Hyatt.
Source/WebCore:
As a step towards implementing CSS Pseudo-Elements Module Level 4, explicitly decompose a
text line into subrange objects that may be styled (say, to give the appearance of selected
text) and painted.
No functionality changed. So, no new tests.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::localSelectionRect const): Update comments.
(WebCore::InlineTextBox::MarkerSubrangeStyle::operator== const):
(WebCore::InlineTextBox::MarkerSubrangeStyle::operator!= const):
(WebCore::InlineTextBox::StyledMarkerSubrange::StyledMarkerSubrange):
Define a subclass to represent a marker subrange that has associated style information.
We will make use of the style information when painting the subrange.
(WebCore::createMarkerSubrangeFromSelectionInBox): Convenience function to instantiate a
MarkerSubrange instance from the current selection of a specified text box.
(WebCore::InlineTextBox::paint): Write in terms of MarkerSubrange. We keep composition backgrounds
and composition underlines as special cases for now. We represent all other subranges of the line
as MarkerSubrange instances, including unmarked text (i.e. non-selected text without an associated
document marker). The subranges for the gaps between document markers and selection are implicitly
created by subdividing the entire line. Support for PaintBehaviorExcludeSelection is implemented
by subdividing the entire line with the selection subrange and then removing the selection subrange
from the resulting list of subdivisions before painting with the resulting list.
(WebCore::InlineTextBox::paintPlatformDocumentMarkers): Renamed; formerly named paintDocumentMarkers.
(WebCore::InlineTextBox::paintPlatformDocumentMarker): Renamed; formerly named paintDocumentMarker.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkerSubrange const): Convenience function to
compute the style for unmarked text.
(WebCore::InlineTextBox::resolveStyleForSubrange): Added
(WebCore::InlineTextBox::subdivideAndResolveStyle): Subdivides the list of marker subranges and
coalesces subranges of the same type (e.g. selection) or with the same style. The latter strategy
preserves the optimization of drawing the text of the entire line in one draw command when we know
that the selected text looks identical to non-selected text. This optimization was performed in TextPainter::paint().
(WebCore::InlineTextBox::collectSubrangesForDraggedContent): Added.
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers): Added.
(WebCore::InlineTextBox::textOriginFromBoxRect const): Added.
(WebCore::InlineTextBox::paintMarkerSubranges):
(WebCore::InlineTextBox::paintTextSubrangeBackground):
(WebCore::InlineTextBox::paintTextSubrangeForeground):
(WebCore::InlineTextBox::paintTextSubrangeDecoration):
Paint the marker subrange.
(WebCore::InlineTextBox::paintCompositionBackground): Moved function to group it with the logic to
paint composition underlines. Modified to pass clamped offsets to paintTextSubrangeBackground() as
paintTextSubrangeBackground() now expects them.
(WebCore::mirrorRTLSegment): Moved function to be above paintCompositionUnderline() as it is the only
function that makes use of it.
(WebCore::InlineTextBox::paintSelection): Deleted.
(WebCore::InlineTextBox::paintTextMatchMarker): Deleted.
(WebCore::InlineTextBox::paintDecoration): Deleted.
(WebCore::InlineTextBox::paintDocumentMarker): Deleted; renamed to paintPlatformDocumentMarker.
(WebCore::InlineTextBox::paintDocumentMarkers): Deleted; renamed to paintPlatformDocumentMarkers.
- rendering/InlineTextBox.h:
(WebCore::InlineTextBox::paintMarkerSubranges): Added.
- rendering/MarkerSubrange.h:
(WebCore::MarkerSubrange::isEmpty const): Added.
(WebCore::MarkerSubrange::operator!= const): Added.
(WebCore::MarkerSubrange::operator== const): Added.
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow): Updated code as we no longer need to pass the text run length
to TextPainter::paint(). Also modernize the code while I am here.
- rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::Styles::operator== const): Added.
(WebCore::TextDecorationPainter::TextDecorationPainter): Modified to take an optional TextDecorationPainter::Styles
instance as an argument and removed the unused parameter for PseudoId.
- rendering/TextDecorationPainter.h:
(WebCore::TextDecorationPainter::Styles::operator!= const): Added.
- rendering/TextPaintStyle.cpp:
(WebCore::TextPaintStyle::operator== const): Added.
(WebCore::computeTextSelectionPaintStyle): Removed the now unused out-arguments paintSelectedTextOnly, paintSelectedTextSeparately,
and paintNonSelectedTextOnly. The values stored in these out-arguments were intended to be used by the caller to
minimize the number of drawing commands. The value of paintSelectedTextSeparately indicated whether selected text
would look identical to non-selected text so that a caller could use one paint command to draw the entire line
instead of issuing two or more drawing commands to paint non-selected and selected text separately. We now
accomplish the same optimization by coalescing subrange styles in InlineTextBox::subdivideAndResolveStyle().
The value of paintNonSelectedTextOnly, as its name states, indicated whether a caller should only paint non-selected
text and hence skip painting of selected text. This value was only used when painting dragged content (i.e. DocumentMarker::DraggedContent
markers) and its effect is now more directly achieved by the dragged content logic in InlineTextBox::paint().
- rendering/TextPaintStyle.h:
(WebCore::TextPaintStyle::operator!= const): Added.
- rendering/TextPainter.cpp:
(WebCore::TextPainter::paint): Implemented in terms TextPainter::paintRange() now that InlineTextBox::paint() optimizes
for the number of drawing calls. See remarks for WebCore::computeTextSelectionPaintStyle() for more details.
- rendering/TextPainter.h: Group together related member functions.
(WebCore::TextPainter::setSelectionStyle): Deleted.
(WebCore::TextPainter::setSelectionShadow): Deleted.
Tools:
Update unit tests now that we use subranges for the painting of dragged content.
- TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp:
(WebCore::operator<<):
(WebCore::operator==): Deleted; moved to class MarkerSubrange.
- 1:28 PM Changeset in webkit [226137] by
-
- 5 edits in trunk
Add support for computing the frontmost longest effective marker subrange
https://bugs.webkit.org/show_bug.cgi?id=180985
Reviewed by Dave Hyatt.
Source/WebCore:
Add a new subdivision overlap strategy to return the minimum list of maximal length non-
overlapping subranges. We will make use of this strategy together with an algorithm to
coalesce adjacent subranges with visually indistinct styles to minimize the total number
of drawing commands needed to paint an entire line of text. We are not making use of
this functionality now. We will make use of it to simplify the patch for <https://bugs.webkit.org/show_bug.cgi?id=180984>.
- rendering/MarkerSubrange.cpp:
(WebCore::subdivide):
- rendering/MarkerSubrange.h:
Tools:
Adds a test case to ensure that we compute the minimum list of maximal length non-
overlapping subranges when using strategy OverlapStrategy::FrontmostWithLongestEffectiveRange.
- TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp:
(TestWebKitAPI::TEST):
- 1:22 PM Changeset in webkit [226136] by
-
- 8 edits in trunk
Handle Fetch should wait for the service worker's state to become activated
https://bugs.webkit.org/show_bug.cgi?id=180959
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
Rebaseline WPT test that is now passing.
- web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https-expected.txt:
Source/WebCore:
Handle Fetch should wait for the service worker's state to become activated when
it is currently activating.
Specification:
No new tests, rebaselined existing test.
- workers/service/server/SWServerWorker.cpp:
(WebCore::SWServerWorker::~SWServerWorker):
(WebCore::SWServerWorker::whenActivated):
(WebCore::SWServerWorker::setState):
(WebCore::SWServerWorker::callWhenActivatedHandler):
- workers/service/server/SWServerWorker.h:
Source/WebKit:
Handle Fetch should wait for the service worker's state to become activated when
it is currently activating.
Specification:
- StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
- 12:46 PM Changeset in webkit [226135] by
-
- 2 edits in branches/safari-604-branch/Source/JavaScriptCore
Apply patch. rdar://problem/36112002
32-bit fix.
- 11:38 AM Changeset in webkit [226134] by
-
- 14 edits in trunk/Source/JavaScriptCore
[DFG][FTL] NewRegexp shoud be fast
https://bugs.webkit.org/show_bug.cgi?id=180960
Reviewed by Michael Saboff.
When we encounter RegExp literal like /AAA/g, we need to create a RegExp object.
Typical idiom likestring.match(/regexp/)
requires RegExp object creation
every time.
As a first step, this patch accelerates RegExp object creation by handling it
in DFG and FTL. In a subsequent patch, we would like to introduce PhantomNewRegexp
to remove unnecessary RegExp object creations.
This patch improves SixSpeed/regex-u.{es5,es6}.
baseline patched
regex-u.es5 69.6759+-3.1951 53.1425+-2.0292 definitely 1.3111x faster
regex-u.es6 129.5413+-5.4437 107.2105+-7.7775 definitely 1.2083x faster
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewRegexp):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLAbstractHeapRepository.h:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNewRegexp):
- jit/JIT.h:
- jit/JITInlines.h:
(JSC::JIT::callOperation):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_new_regexp):
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- runtime/RegExpObject.h:
(JSC::RegExpObject::offsetOfRegExp):
(JSC::RegExpObject::allocationSize):
- 11:34 AM Changeset in webkit [226133] by
-
- 62 edits4 copies3 adds in branches/safari-604-branch
Apply patch. rdar://problem/36111993
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
Also merged offlineasm parts of r220184 and r222549. These changes are required
to support the code in cherry-picked revisions above.
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
- MacroAssemblerCodePtr now stores a ScrambledPtr instead of a void*.
- MacroAssemblerCodePtr's executableAddress() and dataLocation() now take a template argument type that will be used to cast the result. This makes the client code that uses these functions a little less verbose.
- Change the code base in general to minimize passing void* code pointers around. We now pass MacroAssemblerCodePtr as much as possible, and descramble it only at the last moment when we need the underlying code pointer.
- Added some MasmScrambledPtr paranoid asserts that are disabled (not built) by default. I'm leaving them in because they are instrumental in finding bugs where not all MacroAssemblerCodePtr values were not scrambled as expected. I expect them to be useful in the near future as we add more scrambling.
- Also disable the casting operator on MacroAssemblerCodePtr (except for explicit casts to a boolean). This ensures that clients will always explicitly use scrambledBits() or executableAddress() to get a value based on which value they actually need.
- Added currentThread() id to the logging in LLIntSlowPath trace functions. This was helpful when debugging tests that ran multiple VMs concurrently on different threads.
MacroAssemblerCodePtr is currently supported on 64-bit builds (including the
CLoop). It is not yet supported in 32-bit and Windows because we don't
currently have a way to read a global variable from their LLInt code.
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::differenceBetweenCodePtr): (JSC::AbstractMacroAssembler::linkPointer):
- assembler/CodeLocation.h: (JSC::CodeLocationCommon::instructionAtOffset): (JSC::CodeLocationCommon::labelAtOffset): (JSC::CodeLocationCommon::jumpAtOffset): (JSC::CodeLocationCommon::callAtOffset): (JSC::CodeLocationCommon::nearCallAtOffset): (JSC::CodeLocationCommon::dataLabelPtrAtOffset): (JSC::CodeLocationCommon::dataLabel32AtOffset): (JSC::CodeLocationCommon::dataLabelCompactAtOffset): (JSC::CodeLocationCommon::convertibleLoadAtOffset):
- assembler/LinkBuffer.cpp: (JSC::LinkBuffer::finalizeCodeWithDisassembly):
- assembler/LinkBuffer.h: (JSC::LinkBuffer::link): (JSC::LinkBuffer::patch):
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize):
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::scrambledPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator bool const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::hash const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::executableAddress const): Deleted. (JSC::MacroAssemblerCodePtr::dataLocation const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGDisassembler.cpp: (JSC::DFG::Disassembler::dumpDisassembly):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitSwitchIntJump): (JSC::DFG::SpeculativeJIT::emitSwitchImm): (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): (JSC::DFG::SpeculativeJIT::emitSwitchChar):
- dfg/DFGSpeculativeJIT.h:
- disassembler/Disassembler.cpp: (JSC::disassemble):
- disassembler/UDis86Disassembler.cpp: (JSC::tryToDisassembleWithUDis86):
- ftl/FTLCompile.cpp: (JSC::FTL::compile):
- ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::executableAddressAtOffset):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileMathIC): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct): (JSC::FTL::DFG::LowerDFGToB3::compileTailCall): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
- interpreter/InterpreterInlines.h: (JSC::Interpreter::getOpcodeID):
- jit/JITArithmetic.cpp: (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow):
- jit/JITCode.cpp: (JSC::JITCodeWithCodeRef::executableAddressAtOffset): (JSC::JITCodeWithCodeRef::dataAddressAtOffset): (JSC::JITCodeWithCodeRef::offsetOf):
- jit/JITDisassembler.cpp: (JSC::JITDisassembler::dumpDisassembly):
- jit/PCToCodeOriginMap.cpp: (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
- jit/Repatch.cpp: (JSC::ftlThunkAwareRepatchCall):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::llint_trace_operand): (JSC::LLInt::llint_trace_value): (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::complete):
- wasm/WasmCallee.h: (JSC::Wasm::Callee::entrypoint const):
- wasm/WasmCodeBlock.cpp: (JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work):
- wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS):
- wasm/js/WebAssemblyFunction.cpp: (JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyWrapperFunction.cpp: (JSC::WebAssemblyWrapperFunction::create):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize): Deleted.
- assembler/MacroAssemblerCodeRef.h: (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::hash const):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCScrambledPtr.cpp: Added. (JSC::initializeScrambledPtrKeys):
- runtime/JSCScrambledPtr.h: Added.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::poisonedPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject): (JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp. (JSC::initializePoison): (JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Renamed g_classInfoPoison to g_globalDataPoison.
Renamed g_masmPoison to g_jitCodePoison.
Introduced g_nativeCodePoison.
Applied g_nativeCodePoison to poisoning some native code pointers.
Introduced non-random Int32 poison values (in JSCPoison.h) for use with pointers
to malloc allocated data structures (where needed).
- API/JSCallbackFunction.h: (JSC::JSCallbackFunction::functionCallback):
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/ThunkGenerators.cpp: (JSC::nativeForGenerator):
- llint/LowLevelInterpreter64.asm:
- runtime/CustomGetterSetter.h: (JSC::CustomGetterSetter::getter const): (JSC::CustomGetterSetter::setter const):
- runtime/InternalFunction.cpp: (JSC::InternalFunction::getCallData): (JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h: (JSC::InternalFunction::nativeFunctionFor):
- runtime/JSCPoison.h: Added.
- runtime/JSCPoisonedPtr.cpp: (JSC::initializePoison):
- runtime/JSCPoisonedPtr.h:
- runtime/Lookup.h:
- runtime/NativeExecutable.cpp: (JSC::NativeExecutable::hashFor const):
- runtime/NativeExecutable.h:
- runtime/Structure.cpp: (JSC::StructureTransitionTable::setSingleTransition):
- runtime/StructureTransitionTable.h: (JSC::StructureTransitionTable::StructureTransitionTable): (JSC::StructureTransitionTable::isUsingSingleSlot const): (JSC::StructureTransitionTable::map const): (JSC::StructureTransitionTable::weakImpl const): (JSC::StructureTransitionTable::setMap):
2017-12-08 Mark Lam <mark.lam@apple.com>
Need to unpoison native function pointers for CLoop.
https://bugs.webkit.org/show_bug.cgi?id=180601
<rdar://problem/35942028>
Reviewed by JF Bastien.
- llint/LowLevelInterpreter64.asm:
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
- runtime/StructureTransitionTable.h:
2017-12-18 Jason Marcell <jmarcell@apple.com>
Apply patch. rdar://problem/36113365
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
Introduce a ScrambledPtr class to facilitate scrambling.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/ScrambledPtr.cpp: Added. (WTF::makeScrambledPtrKey):
- wtf/ScrambledPtr.h: Added. (WTF::ScrambledPtr::ScrambledPtr): (WTF::ScrambledPtr::paranoidAssertIsScrambled const): (WTF::ScrambledPtr::paranoidAssertIsNotScrambled const): (WTF::ScrambledPtr:: const): (WTF::ScrambledPtr::operator-> const): (WTF::ScrambledPtr::scrambledBits const): (WTF::ScrambledPtr::operator! const): (WTF::ScrambledPtr::operator bool const): (WTF::ScrambledPtr::operator== const): (WTF::ScrambledPtr::operator==): (WTF::ScrambledPtr::scramble): (WTF::ScrambledPtr::descramble):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- wtf/ScrambledPtr.h: (WTF::ScrambledPtr::descrambled const): (WTF::ScrambledPtr::bits const): (WTF::ScrambledPtr::operator==): (WTF::ScrambledPtr::operator=): (WTF::ScrambledPtr::scramble): (WTF::ScrambledPtr::descramble): (WTF::ScrambledPtr:: const): Deleted. (WTF::ScrambledPtr::scrambledBits const): Deleted.
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/Poisoned.cpp: Copied from Source/WTF/wtf/ScrambledPtr.cpp. (WTF::makePoison): (WTF::makeScrambledPtrKey): Deleted.
- wtf/Poisoned.h: Copied from Source/WTF/wtf/ScrambledPtr.h. (WTF::PoisonedImpl::PoisonedImpl): (WTF::PoisonedImpl::assertIsPoisoned const): (WTF::PoisonedImpl::assertIsNotPoisoned const): (WTF::PoisonedImpl::unpoisoned const): (WTF::PoisonedImpl::operator-> const): (WTF::PoisonedImpl::bits const): (WTF::PoisonedImpl::operator! const): (WTF::PoisonedImpl::operator bool const): (WTF::PoisonedImpl::operator== const): (WTF::PoisonedImpl::operator==): (WTF::PoisonedImpl::operator=): (WTF::PoisonedImpl::poison): (WTF::PoisonedImpl::unpoison): (WTF::ScrambledPtr::ScrambledPtr): Deleted. (WTF::ScrambledPtr::assertIsScrambled const): Deleted. (WTF::ScrambledPtr::assertIsNotScrambled const): Deleted. (WTF::ScrambledPtr::descrambled const): Deleted. (WTF::ScrambledPtr::operator-> const): Deleted. (WTF::ScrambledPtr::bits const): Deleted. (WTF::ScrambledPtr::operator! const): Deleted. (WTF::ScrambledPtr::operator bool const): Deleted. (WTF::ScrambledPtr::operator== const): Deleted. (WTF::ScrambledPtr::operator==): Deleted. (WTF::ScrambledPtr::operator=): Deleted. (WTF::ScrambledPtr::scramble): Deleted. (WTF::ScrambledPtr::descramble): Deleted.
- wtf/ScrambledPtr.cpp: Removed.
- wtf/ScrambledPtr.h: Removed.
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Ensure that the resultant poisoned bits still looks like a pointer in that its
bottom bits are 0, just like the alignment bits of a pointer. This allows the
client to use the bottom bits of the poisoned bits as flag bits just like the
client was previously able to do with pointer values.
Note: we only ensure that the bottom alignment bits of the generated poison
value is 0. We're not masking out the poisoned bits. This means that the bottom
bits of the poisoned bits will only be null if the original pointer is aligned.
Hence, if the client applies the poison to an unaligned pointer, we do not lose
any information on the low bits.
Also removed 2 wrong assertions in PoisonedImpl's constructors. We were
asserting that Poisoned will never be used with a null value, but that's invalid.
We do want to allow a null value so that we don't have to constantly do null
checks in the clients. This was uncovered by some layout tests.
- wtf/Poisoned.cpp: (WTF::makePoison):
- wtf/Poisoned.h: (WTF::PoisonedImpl::PoisonedImpl):
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
Also rename Int32Poisoned to ConstExprPoisoned. The key it takes is actually a
uint32_t. So, Int32 is really a misnomer. In addition, the key needs to be a
constexpr. So, ConstExprPoisoned is a better name for it.
- wtf/Poisoned.cpp: (WTF::makePoison):
- wtf/Poisoned.h: (WTF::PoisonedImplHelper::asReference): (WTF::PoisonedImpl::PoisonedImpl): (WTF::PoisonedImpl::clear): (WTF::PoisonedImpl::operator* const): (WTF::PoisonedImpl::operator-> const): (WTF::PoisonedImpl::operator== const): (WTF::PoisonedImpl::operator!= const): (WTF::PoisonedImpl::operator< const): (WTF::PoisonedImpl::operator<= const): (WTF::PoisonedImpl::operator> const): (WTF::PoisonedImpl::operator>= const): (WTF::PoisonedImpl::operator=): (WTF::PoisonedImpl::swap): (WTF::PoisonedImpl::exchange): (WTF::swap): (WTF::makePoison): (WTF::PoisonedImpl::operator==): Deleted.
2017-12-18 Mark Lam <mark.lam@apple.com>
Cherry-pick r225363, r225437, r225632, r225659, r225697, r225857. rdar://problem/36085975
Also merged offlineasm parts of r220184 and r222549. These changes are required
to support the code in cherry-picked revisions above.
2017-11-30 Mark Lam <mark.lam@apple.com>
Let's scramble MacroAssemblerCodePtr values.
https://bugs.webkit.org/show_bug.cgi?id=180169
<rdar://problem/35758340>
Reviewed by Filip Pizlo, Saam Barati, and JF Bastien.
- MacroAssemblerCodePtr now stores a ScrambledPtr instead of a void*.
- MacroAssemblerCodePtr's executableAddress() and dataLocation() now take a template argument type that will be used to cast the result. This makes the client code that uses these functions a little less verbose.
- Change the code base in general to minimize passing void* code pointers around. We now pass MacroAssemblerCodePtr as much as possible, and descramble it only at the last moment when we need the underlying code pointer.
- Added some MasmScrambledPtr paranoid asserts that are disabled (not built) by default. I'm leaving them in because they are instrumental in finding bugs where not all MacroAssemblerCodePtr values were not scrambled as expected. I expect them to be useful in the near future as we add more scrambling.
- Also disable the casting operator on MacroAssemblerCodePtr (except for explicit casts to a boolean). This ensures that clients will always explicitly use scrambledBits() or executableAddress() to get a value based on which value they actually need.
- Added currentThread() id to the logging in LLIntSlowPath trace functions. This was helpful when debugging tests that ran multiple VMs concurrently on different threads.
MacroAssemblerCodePtr is currently supported on 64-bit builds (including the
CLoop). It is not yet supported in 32-bit and Windows because we don't
currently have a way to read a global variable from their LLInt code.
- assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::differenceBetweenCodePtr): (JSC::AbstractMacroAssembler::linkPointer):
- assembler/CodeLocation.h: (JSC::CodeLocationCommon::instructionAtOffset): (JSC::CodeLocationCommon::labelAtOffset): (JSC::CodeLocationCommon::jumpAtOffset): (JSC::CodeLocationCommon::callAtOffset): (JSC::CodeLocationCommon::nearCallAtOffset): (JSC::CodeLocationCommon::dataLabelPtrAtOffset): (JSC::CodeLocationCommon::dataLabel32AtOffset): (JSC::CodeLocationCommon::dataLabelCompactAtOffset): (JSC::CodeLocationCommon::convertibleLoadAtOffset):
- assembler/LinkBuffer.cpp: (JSC::LinkBuffer::finalizeCodeWithDisassembly):
- assembler/LinkBuffer.h: (JSC::LinkBuffer::link): (JSC::LinkBuffer::patch):
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize):
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::scrambledPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator bool const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::hash const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::executableAddress const): Deleted. (JSC::MacroAssemblerCodePtr::dataLocation const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGDisassembler.cpp: (JSC::DFG::Disassembler::dumpDisassembly):
- dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::link): (JSC::DFG::JITCompiler::compileFunction):
- dfg/DFGOperations.cpp:
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::emitSwitchIntJump): (JSC::DFG::SpeculativeJIT::emitSwitchImm): (JSC::DFG::SpeculativeJIT::emitSwitchCharStringJump): (JSC::DFG::SpeculativeJIT::emitSwitchChar):
- dfg/DFGSpeculativeJIT.h:
- disassembler/Disassembler.cpp: (JSC::disassemble):
- disassembler/UDis86Disassembler.cpp: (JSC::tryToDisassembleWithUDis86):
- ftl/FTLCompile.cpp: (JSC::FTL::compile):
- ftl/FTLJITCode.cpp: (JSC::FTL::JITCode::executableAddressAtOffset):
- ftl/FTLLink.cpp: (JSC::FTL::link):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileMathIC): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct): (JSC::FTL::DFG::LowerDFGToB3::compileTailCall): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargsSpread): (JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
- interpreter/InterpreterInlines.h: (JSC::Interpreter::getOpcodeID):
- jit/JITArithmetic.cpp: (JSC::JIT::emitMathICFast): (JSC::JIT::emitMathICSlow):
- jit/JITCode.cpp: (JSC::JITCodeWithCodeRef::executableAddressAtOffset): (JSC::JITCodeWithCodeRef::dataAddressAtOffset): (JSC::JITCodeWithCodeRef::offsetOf):
- jit/JITDisassembler.cpp: (JSC::JITDisassembler::dumpDisassembly):
- jit/PCToCodeOriginMap.cpp: (JSC::PCToCodeOriginMap::PCToCodeOriginMap):
- jit/Repatch.cpp: (JSC::ftlThunkAwareRepatchCall):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::llint_trace_operand): (JSC::LLInt::llint_trace_value): (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- wasm/WasmBBQPlan.cpp: (JSC::Wasm::BBQPlan::complete):
- wasm/WasmCallee.h: (JSC::Wasm::Callee::entrypoint const):
- wasm/WasmCodeBlock.cpp: (JSC::Wasm::CodeBlock::CodeBlock):
- wasm/WasmOMGPlan.cpp: (JSC::Wasm::OMGPlan::work):
- wasm/js/WasmToJS.cpp: (JSC::Wasm::wasmToJS):
- wasm/js/WebAssemblyFunction.cpp: (JSC::callWebAssemblyFunction):
- wasm/js/WebAssemblyFunction.h:
- wasm/js/WebAssemblyWrapperFunction.cpp: (JSC::WebAssemblyWrapperFunction::create):
2017-12-01 Mark Lam <mark.lam@apple.com>
Let's scramble ClassInfo pointers in cells.
https://bugs.webkit.org/show_bug.cgi?id=180291
<rdar://problem/35807620>
Reviewed by JF Bastien.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.cpp: (JSC::MacroAssemblerCodePtr::initialize): Deleted.
- assembler/MacroAssemblerCodeRef.h: (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::hash const):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCScrambledPtr.cpp: Added. (JSC::initializeScrambledPtrKeys):
- runtime/JSCScrambledPtr.h: Added.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
[Re-landing r225620] Refactoring: Rename ScrambledPtr to Poisoned.
https://bugs.webkit.org/show_bug.cgi?id=180514
Reviewed by Saam Barati and JF Bastien.
Re-landing r225620 with speculative build fix for GCC 7.
- API/JSCallbackObject.h:
- API/JSObjectRef.cpp: (classInfoPrivate):
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/MacroAssemblerCodeRef.h: (JSC::FunctionPtr::FunctionPtr): (JSC::FunctionPtr::value const): (JSC::FunctionPtr::executableAddress const): (JSC::ReturnAddressPtr::ReturnAddressPtr): (JSC::ReturnAddressPtr::value const): (JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): (JSC::MacroAssemblerCodePtr::createFromExecutableAddress): (JSC::MacroAssemblerCodePtr::poisonedPtr const): (JSC::MacroAssemblerCodePtr:: const): (JSC::MacroAssemblerCodePtr::operator! const): (JSC::MacroAssemblerCodePtr::operator== const): (JSC::MacroAssemblerCodePtr::emptyValue): (JSC::MacroAssemblerCodePtr::deletedValue): (JSC::MacroAssemblerCodePtr::scrambledPtr const): Deleted.
- b3/B3LowerMacros.cpp:
- b3/testb3.cpp: (JSC::B3::testInterpreter):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::checkArray): (JSC::DFG::SpeculativeJIT::compileCheckSubClass): (JSC::DFG::SpeculativeJIT::compileNewStringObject): (JSC::DFG::SpeculativeJIT::emitSwitchIntJump):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNewStringObject): (JSC::FTL::DFG::LowerDFGToB3::compileCheckSubClass):
- jit/AssemblyHelpers.h: (JSC::AssemblyHelpers::emitAllocateDestructibleObject):
- jit/SpecializedThunkJIT.h: (JSC::SpecializedThunkJIT::loadArgumentWithSpecificClass):
- jit/ThunkGenerators.cpp: (JSC::virtualThunkFor): (JSC::boundThisNoArgsFunctionCallGenerator):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::handleHostCall): (JSC::LLInt::setUpCall):
- llint/LowLevelInterpreter64.asm:
- runtime/InitializeThreading.cpp: (JSC::initializeThreading):
- runtime/JSCPoisonedPtr.cpp: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.cpp. (JSC::initializePoison): (JSC::initializeScrambledPtrKeys): Deleted.
- runtime/JSCPoisonedPtr.h: Copied from Source/JavaScriptCore/runtime/JSCScrambledPtr.h.
- runtime/JSCScrambledPtr.cpp: Removed.
- runtime/JSCScrambledPtr.h: Removed.
- runtime/JSDestructibleObject.h: (JSC::JSDestructibleObject::classInfo const):
- runtime/JSSegmentedVariableObject.h: (JSC::JSSegmentedVariableObject::classInfo const):
- runtime/Structure.h:
- runtime/VM.h:
2017-12-07 Mark Lam <mark.lam@apple.com>
Apply poisoning to some native code pointers.
https://bugs.webkit.org/show_bug.cgi?id=180541
<rdar://problem/35916875>
Reviewed by Filip Pizlo.
Renamed g_classInfoPoison to g_globalDataPoison.
Renamed g_masmPoison to g_jitCodePoison.
Introduced g_nativeCodePoison.
Applied g_nativeCodePoison to poisoning some native code pointers.
Introduced non-random Int32 poison values (in JSCPoison.h) for use with pointers
to malloc allocated data structures (where needed).
- API/JSCallbackFunction.h: (JSC::JSCallbackFunction::functionCallback):
- JavaScriptCore.xcodeproj/project.pbxproj:
- jit/ThunkGenerators.cpp: (JSC::nativeForGenerator):
- llint/LowLevelInterpreter64.asm:
- runtime/CustomGetterSetter.h: (JSC::CustomGetterSetter::getter const): (JSC::CustomGetterSetter::setter const):
- runtime/InternalFunction.cpp: (JSC::InternalFunction::getCallData): (JSC::InternalFunction::getConstructData):
- runtime/InternalFunction.h: (JSC::InternalFunction::nativeFunctionFor):
- runtime/JSCPoison.h: Added.
- runtime/JSCPoisonedPtr.cpp: (JSC::initializePoison):
- runtime/JSCPoisonedPtr.h:
- runtime/Lookup.h:
- runtime/NativeExecutable.cpp: (JSC::NativeExecutable::hashFor const):
- runtime/NativeExecutable.h:
- runtime/Structure.cpp: (JSC::StructureTransitionTable::setSingleTransition):
- runtime/StructureTransitionTable.h: (JSC::StructureTransitionTable::StructureTransitionTable): (JSC::StructureTransitionTable::isUsingSingleSlot const): (JSC::StructureTransitionTable::map const): (JSC::StructureTransitionTable::weakImpl const): (JSC::StructureTransitionTable::setMap):
2017-12-08 Mark Lam <mark.lam@apple.com>
Need to unpoison native function pointers for CLoop.
https://bugs.webkit.org/show_bug.cgi?id=180601
<rdar://problem/35942028>
Reviewed by JF Bastien.
- llint/LowLevelInterpreter64.asm:
2017-12-13 Mark Lam <mark.lam@apple.com>
Fill out some Poisoned APIs, fix some bugs, and add some tests.
https://bugs.webkit.org/show_bug.cgi?id=180724
<rdar://problem/36006884>
Reviewed by JF Bastien.
- runtime/StructureTransitionTable.h:
- 11:34 AM Changeset in webkit [226132] by
-
- 27 edits in branches/safari-604-branch/Source
Apply patch. rdar://problem/36112002
- 11:33 AM Changeset in webkit [226131] by
-
- 13 edits in branches/safari-604-branch/Source
Cherry-pick r226068. rdar://problem/36112026
- 11:33 AM Changeset in webkit [226130] by
-
- 5 edits2 adds in branches/safari-604-branch
Cherry-pick r226065. rdar://problem/36080413
- 11:26 AM Changeset in webkit [226129] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, include YarrErrorCode.h in Yarr.h
https://bugs.webkit.org/show_bug.cgi?id=180966
- yarr/Yarr.h:
- 11:16 AM Changeset in webkit [226128] by
-
- 17 edits1 copy1 add in trunk/Source
[YARR] Yarr should return ErrorCode instead of error messages (const char*)
https://bugs.webkit.org/show_bug.cgi?id=180966
Reviewed by Mark Lam.
Source/JavaScriptCore:
Currently, Yarr returns const char*` for an error message when needed.
But it is easier to handle error status if Yarr returns an error code
instead ofconst char*
.
In this patch, we introduce Yarr::ErrorCode. Yarr returns it instead of
const char*
.std::expected<void, Yarr::ErrorCode>
would be appropriate
for the Yarr API interface. But it requires substantial changes removing
ErrorCode::NoError, so this patch just uses the current Yarr::ErrorCode as
a first step.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- inspector/ContentSearchUtilities.cpp:
(Inspector::ContentSearchUtilities::findMagicComment):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createRegExp):
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parsePrimaryExpression):
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createRegExp):
- runtime/RegExp.cpp:
(JSC::RegExp::RegExp):
(JSC::RegExp::byteCodeCompileIfNecessary):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):
- runtime/RegExp.h:
- yarr/RegularExpression.cpp:
(JSC::Yarr::RegularExpression::Private::Private):
(JSC::Yarr::RegularExpression::Private::compile):
- yarr/YarrErrorCode.cpp: Added.
(JSC::Yarr::errorMessage):
- yarr/YarrErrorCode.h: Copied from Source/JavaScriptCore/yarr/YarrSyntaxChecker.h.
(JSC::Yarr::hasError):
- yarr/YarrParser.h:
(JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::isIdentityEscapeAnError):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseQuantifier):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::parse):
(JSC::Yarr::Parser::tryConsumeUnicodeEscape):
(JSC::Yarr::Parser::tryConsumeUnicodePropertyExpression):
(JSC::Yarr::parse):
- yarr/YarrPattern.cpp:
(JSC::Yarr::YarrPatternConstructor::YarrPatternConstructor):
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPattern::errorMessage): Deleted.
- yarr/YarrPattern.h:
(JSC::Yarr::YarrPattern::reset):
- yarr/YarrSyntaxChecker.cpp:
(JSC::Yarr::checkSyntax):
- yarr/YarrSyntaxChecker.h:
Source/WebCore:
Remove unnecessary String creation.
No behavior change.
- contentextensions/URLFilterParser.cpp:
(WebCore::ContentExtensions::URLFilterParser::addPattern):
- 10:56 AM Changeset in webkit [226127] by
-
- 6 edits1 copy1 add in trunk/Source/WebCore
[RenderTreeBuilder] Move finding-the-parent/creating-wrapper logic from RenderTableRow::addChild to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=180964
<rdar://problem/36123315>
Reviewed by Antti Koivisto.
This is in preparation for removing all tree mutation from renderering code.
Covered by existing tests.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderTableRow.cpp:
(WebCore::RenderTableRow::addChild):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::insertChild):
- rendering/updating/RenderTreeBuilder.h:
- rendering/updating/RenderTreeBuilderTable.cpp: Added.
(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
- rendering/updating/RenderTreeBuilderTable.h: Copied from Source/WebCore/rendering/updating/RenderTreeBuilder.h.
- 10:37 AM Changeset in webkit [226126] by
-
- 26 edits in trunk
Service Worker should not clean HTTP headers added by the application or by fetch specification before service worker interception
https://bugs.webkit.org/show_bug.cgi?id=180939
Patch by Youenn Fablet <youenn@apple.com> on 2017-12-19
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-request-xhr.https-expected.txt:
- web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html:
- web-platform-tests/service-workers/service-worker/fetch-header-visibility.https-expected.txt:
Source/WebCore:
Covered by modified WPT test.
Add support to clean only specific headers in cleanHTTPRequestHeadersForAccessControl,
renamed from cleanRedirectedRequestForAccessControl.
Compute the list of headers to keep in DocumentThreadableLoader.
Add a specific rule for Accept header which is set prior service worker interception and for
HTTP headers set by DocumentThreadableLoader clients.
- loader/CrossOriginAccessControl.cpp:
(WebCore::httpHeadersToKeepFromCleaning):
(WebCore::cleanRedirectedRequestForAccessControl):
- loader/CrossOriginAccessControl.h:
(WebCore::cleanRedirectedRequestForAccessControl):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
- loader/ResourceLoaderOptions.h:
- workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):
- workers/service/context/ServiceWorkerFetch.h:
- workers/service/context/ServiceWorkerThread.cpp:
(WebCore::ServiceWorkerThread::postFetchTask):
- workers/service/context/ServiceWorkerThread.h:
Source/WebKit:
Passing referrer as an explicit parameter of StartFetch.
Cleaning request headers based on ResourceLoaderOptions.httpHeadersToKeep.
- StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::startFetch):
- StorageProcess/ServiceWorker/WebSWServerConnection.h:
- StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
- WebProcess/Storage/ServiceWorkerClientFetch.cpp:
(WebKit::ServiceWorkerClientFetch::start):
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::startFetch):
- WebProcess/Storage/WebSWClientConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
(WebKit::WebSWContextManagerConnection::startFetch):
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
LayoutTests:
- 10:25 AM Changeset in webkit [226125] by
-
- 9 edits in trunk/LayoutTests
Unreviewed, rebaseline service workers flaky tests.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
- web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:
- web-platform-tests/service-workers/service-worker/update-bytecheck.https-expected.txt:
LayoutTests:
- 10:01 AM Changeset in webkit [226124] by
-
- 2 edits in trunk/LayoutTests
Marked accessibility/mac/search-field-cancel-button.html as flaky on macOS.
https://bugs.webkit.org/show_bug.cgi?id=180675
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 9:49 AM Changeset in webkit [226123] by
-
- 26 edits in trunk
[Apple Pay] Stop maintaining a list of payment networks
https://bugs.webkit.org/show_bug.cgi?id=180965
<rdar://problem/34696560>
Reviewed by Tim Horton.
Source/WebCore:
Instead of maintaining the list of valid payment networks in WebCore, allow the client to
provide the list when constructing a PaymentCoordinator. Then, use PaymentCoordinator's list
to validate ApplePaySessionPaymentRequests.
Validation will now be done case-insensitively since Cocoa clients will provide a list of
network names that differ in capitalization from the names formerly accepted by WebCore.
Added new test cases to http/tests/ssl/applepay/ApplePaySession.html.
- Modules/applepay/ApplePayRequestBase.cpp:
(WebCore::convertAndValidate): Changed to return a Vector of validated strings.
(WebCore::validate): Renamed to convertAndValidate.
- Modules/applepay/ApplePayRequestBase.h:
- Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
(WebCore::ApplePaySession::create):
- Modules/applepay/ApplePaySessionPaymentRequest.cpp:
(WebCore::ApplePaySessionPaymentRequest::isValidSupportedNetwork): Deleted.
- Modules/applepay/ApplePaySessionPaymentRequest.h:
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::toHashSet):
(WebCore::PaymentCoordinator::PaymentCoordinator): Converted availablePaymentNetworks to a
case-insensitive HashSet and stored in m_availablePaymentNetworks.
(WebCore::PaymentCoordinator::validatedPaymentNetwork const): Added special cases for "jcb"
and "carteBancaire" for API compatibility. For other networks, checked m_availablePaymentNetworks.
- Modules/applepay/PaymentCoordinator.h:
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::ApplePayPaymentHandler::show):
- page/MainFrame.cpp:
(WebCore::MainFrame::MainFrame): Constructed m_paymentCoordinator with configuration.availablePaymentNetworks.
- page/PageConfiguration.h:
- testing/Internals.cpp:
(WebCore::Internals::Internals):
- testing/MockPaymentCoordinator.cpp:
- testing/MockPaymentCoordinator.h:
Source/WebCore/PAL:
- pal/spi/cocoa/PassKitSPI.h: Defined +[PKPaymentRequest availableNetworks].
Source/WebKit:
- Shared/WebPageCreationParameters.cpp:
(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):
- Shared/WebPageCreationParameters.h: Defined availablePaymentNetworks.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::toSupportedNetworks):
(WebKit::WebPaymentCoordinatorProxy::availablePaymentNetworks): Called
+[PKPaymentRequest availableNetworks].
(WebKit::toSupportedNetwork): Deleted.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::creationParameters): Set parameters.availablePaymentNetworks by
calling WebPaymentCoordinatorProxy::availablePaymentNetworks.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage): Set pageConfiguration.availablePaymentNetworks to
parameters.availablePaymentNetworks.
LayoutTests:
- http/tests/ssl/applepay/ApplePaySession-expected.txt:
- http/tests/ssl/applepay/ApplePaySession.html: Added a test case for network names with
varying capitalization.
- 9:03 AM Changeset in webkit [226122] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, try to fix the Windows build after r226097.
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::appendCustomAttributes):
- 7:43 AM Changeset in webkit [226121] by
-
- 2 edits11 adds in trunk/LayoutTests
[WPE] Enable the rest of the wpt html tests.
https://bugs.webkit.org/show_bug.cgi?id=180975
Unreviewed test gardening.
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/read-media/pageload-video-expected.txt: Added: dependent on the supported video codecs.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/mime-types/canPlayType-expected.txt: Added: dependent on the supported video codecs.
- platform/wpe/imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-filter-expected.txt: Added: whitespace difference.
- 7:09 AM Changeset in webkit [226120] by
-
- 3 edits in trunk/LayoutTests
Mark scroll-restoration-navigation-samedoc.html as passing.
https://bugs.webkit.org/show_bug.cgi?id=169264
Unreviewed test gardening.
It is passing on mac, gtk, and wpe, disabled on win, and still marked
as failing on ios.
- TestExpectations:
- platform/gtk/TestExpectations:
- 3:50 AM Changeset in webkit [226119] by
-
- 2 edits1 add in trunk/LayoutTests
Unreviewed test gardening.
Patch by Frederic Wang <fwang@igalia.com> on 2017-12-19
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
- platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added.
- 1:24 AM Changeset in webkit [226118] by
-
- 1 copy in releases/WebKitGTK/webkit-2.18.4
WebKitGTK+ 2.18.4
- 1:23 AM Changeset in webkit [226117] by
-
- 4 edits in releases/WebKitGTK/webkit-2.18
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.18.4 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.18.4.
- 12:17 AM WebKitGTK/2.18.x edited by
- (diff)
- 12:17 AM Changeset in webkit [226116] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18
Merge r225168 - [CMake] Values of CMAKE_BUILD_TYPE from toolchain file are ignored
https://bugs.webkit.org/show_bug.cgi?id=179971
Reviewed by Carlos Alberto Lopez Perez.
- CMakeLists.txt: Call project() first, as it loads the toolchain
file, so that's done before checking CMAKE_BUILD_TYPE.
- 12:16 AM Changeset in webkit [226115] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebKit
Merge r225078 - [WPE] WPEWebProcess: Couldn't find current GLX or EGL context
https://bugs.webkit.org/show_bug.cgi?id=179883
Reviewed by Žan Doberšek.
I'm seeing that message quite often when running the unit tests. The problem seems to be that some tests run so
fast that the web process never renders the first frame, so the context is created but never made current. I've
checked with apitrace that there are calls to eglQueryContext with null display, causing a EGL_BAD_DISPLAY, but
I don't know where those calls are originated. Making the context current right after it's created fixes the
problem.
- Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
(WebKit::ThreadedCompositor::createGLContext): Always call makeContextCurrent() right after the context is created.
- 12:15 AM Changeset in webkit [226114] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore
Merge r225051 - [WPE] GLContextEGLWPE.cpp:44:96: error: invalid cast from type ‘GLNativeWindowType {aka long long unsigned int}’ to type ‘EGLNativeWindowType {aka unsigned int}
https://bugs.webkit.org/show_bug.cgi?id=179511
Reviewed by Žan Doberšek.
r217208 changed the definition of GLNativeWindowType from EGLNativeWindowType to uint64_t for platform WPE.
This built fine on a 64-bit platform since uint64_t matches the size of a pointer, but fails on 32-bits.
This switches back the definition to EGLNativeWindowType.
And we need to include <EGL/eglplatform.h> first in order to get a definition for EGLNativeWindowType itself.
This commit pretty much reverts the changes r217208 did on platform/graphics/GLContext.h
No new tests, it is a build fix.
- platform/graphics/GLContext.h:
- 12:13 AM Changeset in webkit [226113] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore
Merge r224725 - [GTK] PlatformGTK.cmake: use the PKG_CONFIG_EXECUTABLE variable
https://bugs.webkit.org/show_bug.cgi?id=179547
Patch by Helmut Grohne <helmut@subdivi.de> on 2017-11-11
Reviewed by Michael Catanzaro.
- PlatformGTK.cmake: Use PKG_CONFIG_EXECUTABLE instead of
hardcoding the executable name.
- 12:07 AM Changeset in webkit [226112] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore
Merge r225473 - [GStreamer] More leaks in TextCombinerGStreamer
https://bugs.webkit.org/show_bug.cgi?id=180331
Reviewed by Michael Catanzaro.
I've noticed more leaks reading the code, but I couldn't check them with valgrind, because I don't know how to
trigger that code path. This patch cleans up the file using smart pointer everywhere.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkit_text_combiner_pad_init):
(webkitTextCombinerPadEvent):
(webkitTextCombinerReleasePad):
- 12:07 AM Changeset in webkit [226111] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore
Merge r225459 - [GStreamer] GstPad leaked in WebKitTextCombiner
https://bugs.webkit.org/show_bug.cgi?id=180314
Reviewed by Michael Catanzaro.
gst_element_get_static_pad() returns a full reference that si never freed, because gst_ghost_pad_new doesn't
take the ownership of the given pad.
- platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
(webkit_text_combiner_init):
- 12:06 AM Changeset in webkit [226110] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore
Merge r225458 - [GStreamer] GstCaps leaked in MediaPlayerPrivateGStreamer::createGSTPlayBin
https://bugs.webkit.org/show_bug.cgi?id=180311
Reviewed by Michael Catanzaro.
gst_caps_new_empty_simple() is passed directly to g_object_set(). The returned caps should be freed with
gst_caps_unref().
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- 12:03 AM Changeset in webkit [226109] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebKit
Merge r225676 - [GTK] WebInspectorProxyClient needs a virtual destructor
https://bugs.webkit.org/show_bug.cgi?id=180533
Reviewed by Carlos Garcia Campos.
Otherwise the derived class portion of the object, WebKitInspectorClient, is not destroyed.
- UIProcess/gtk/WebInspectorProxyClient.h:
- 12:03 AM Changeset in webkit [226108] by
-
- 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebKit
Merge r225267 - REGRESSION(r218064): [GTK] Broke entering fullscreen mode in debug builds
https://bugs.webkit.org/show_bug.cgi?id=180120
Reviewed by Carlos Garcia Campos.
These assertions need to be swapped. Fixes /webkit2/WebKitWebView/fullscreen in debug mode.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseEnterFullScreen):
(webkitWebViewBaseExitFullScreen):