⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Oct 24, 2018:

11:12 PM Changeset in webkit [237407] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r237331): DismissingActionSheetShouldNotDismissPresentingViewController times out
https://bugs.webkit.org/show_bug.cgi?id=190897

  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::TEST):
Disable the test for now.

10:02 PM Changeset in webkit [237406] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 68

Added a tag for Safari Technology Preview release 68.

5:19 PM Changeset in webkit [237405] by ap@apple.com
  • 18 edits in trunk

Clean up some obsolete macOS version guards
https://bugs.webkit.org/show_bug.cgi?id=190887

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::maximumDurationToCacheMediaTime const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::didPassCORSAccessCheck const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::wouldTaintOrigin const):

Source/WebCore/PAL:

  • pal/spi/mac/TUCallSPI.h:

Source/WebKit:

  • PluginProcess/mac/com.apple.WebKit.plugin-common.sb.in:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

Source/WebKitLegacy/mac:

  • Misc/WebNSPasteboardExtras.mm:

(+[NSPasteboard _web_dragTypesForURL]):

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::respondToChangedSelection):

  • WebView/WebPDFView.mm:

(-[WebPDFView _clipViewForPDFDocumentView]):

Tools:

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(simulated_forceClickAssociatedEventsMask):
(-[TestWKWebViewHostWindow _mouseDownAtPoint:simulatePressure:clickCount:]):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

  • WebKitTestRunner/mac/EventSenderProxy.mm:

(-[EventSenderSyntheticEvent initPressureEventAtLocation:globalLocation:stage:pressure:stageTransition:phase:time:eventNumber:window:]):

4:52 PM Changeset in webkit [237404] by Kocsen Chung
  • 1 copy in tags/Safari-606.3.2

Tag Safari-606.3.2.

3:51 PM Changeset in webkit [237403] by timothy_horton@apple.com
  • 6 edits
    2 adds in trunk

Attachment filenames with RTL characters should format similar to Finder
https://bugs.webkit.org/show_bug.cgi?id=190736
<rdar://problem/44735946>

Reviewed by Dan Bernstein.

Source/WebCore:

Test: fast/attachment/attachment-title-with-rtl.html

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::attachmentTitleForDisplay const):

  • html/HTMLAttachmentElement.h:

Add attachmentTitleForDisplay(), which wraps the non-extension part of
attachmentTitle in BiDi isolates, matching Finder's behavior.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderAttachmentInfo::buildWrappedLines):
(WebCore::RenderAttachmentInfo::RenderAttachmentInfo):

  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::layOutTitle):
Adopt attachmentTitleForDisplay, and ask CoreText to use a subrange of
the original string for the last line, instead of splitting the string
ourselves. This ensures that BiDi control characters are respected
even in the last line of the string.

LayoutTests:

  • fast/attachment/attachment-title-with-rtl-expected.html: Added.
  • fast/attachment/attachment-title-with-rtl.html: Added.

Add a test that directionality marks in the attachment's title are
isolated from the file extension.

3:28 PM Changeset in webkit [237402] by Megan Gardner
  • 24 edits in trunk

Turn on Conic Gradients
https://bugs.webkit.org/show_bug.cgi?id=190810

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Added tests previously, only switching feature from experimental to always avaiable.

  • Configurations/FeatureDefines.xcconfig:
  • css/parser/CSSParserContext.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeConicGradient):

  • page/Settings.yaml:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Remove conic gradients from experimental features and turn it on always.

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

No longer necessary to manually turn on conic gradients for testing.

  • http/wpt/css/css-images-4/conic-gradient-parsing.html:
3:12 PM Changeset in webkit [237401] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: popovers for function source code are malformed
https://bugs.webkit.org/show_bug.cgi?id=190859

Reviewed by Joseph Pecoraro.

Previously, the WI.Popover would be drawn twice: once when the
WI.CodeMirrorTokenTrackingController determines that the user has hovered on a function
token, and once again when the source for that function is formatted (after being retrieved).
In the case that the formatter is able to return the prettified source within a frame (or
two), the WI.Popover is still in the middle of animating to its new size, meaning that the
changes made by the formatted update will be overridden on the next rAF (creates a flash).

  • UserInterface/Views/Popover.js:

(WI.Popover.prototype):
(WI.Popover.prototype._animateFrame.drawBackground):
(WI.Popover.prototype._drawBackground):
Add a member variable to make sure that there is only ever one rAF firing at a time.
Drive-by: rework the background code to only use one canvas.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Don't show the WI.Popover until the formatter has finished prettifying the function's
source code, as otherwise there is brief moment that the popover appears and is empty.

2:35 PM Changeset in webkit [237400] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

2018-10-24 Michael Saboff <msaboff@apple.com>

Increase executable memory pool from 64MB to 128MB for ARM64
https://bugs.webkit.org/show_bug.cgi?id=190453

Unreviewed, rolling back in r237024.

The original change did impact ARES-6 performance by 4-8%. That will
be investigated separately.

2:01 PM Changeset in webkit [237399] by ap@apple.com
  • 9 edits in trunk/Source/bmalloc

Add BPLATFORM(IOS_FAMILY)
https://bugs.webkit.org/show_bug.cgi?id=190878

Reviewed by Saam Barati.

  • bmalloc/AvailableMemory.cpp:

(bmalloc::memorySizeAccordingToKernel):
(bmalloc::computeAvailableMemory):

  • bmalloc/AvailableMemory.h:

(bmalloc::isUnderMemoryPressure):

  • bmalloc/BPlatform.h:
  • bmalloc/Gigacage.h:
  • bmalloc/Logging.cpp:

(bmalloc::logVMFailure):

  • bmalloc/VMAllocate.h:

(bmalloc::vmPageSizePhysical):

  • bmalloc/bmalloc.h:
  • bmalloc/darwin/MemoryStatusSPI.h:
1:41 PM Changeset in webkit [237398] by Alan Coon
  • 7 edits in branches/safari-606-branch/Source

Versioning.

1:19 PM Changeset in webkit [237397] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r237232): changing resources via up/down blurs the TreeOutline in Resources
https://bugs.webkit.org/show_bug.cgi?id=190862

Reviewed by Matt Baker.

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.set selectedTextRange):
Don't focus unless the activeElement is not a WebInspector element (e.g. <body>),
meaning that the previously focused element has been removed from the DOM and no longer
needs to keep the focus.

12:27 PM Changeset in webkit [237396] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: CSP request payload on medium.com is unreadable, should be pretty-printed
https://bugs.webkit.org/show_bug.cgi?id=190354
<rdar://problem/45090894>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.set string.update):
(WI.TextEditor.prototype._attemptToDetermineMIMEType): Added.
If the content doesn't already have a MIME type, attempt to determine one by trying to
format it as "javascript" (e.g. request JSON that is simply missing a MIME type).

  • UserInterface/Views/TextContentView.js:

(WI.TextContentView):
(WI.TextContentView.prototype._handleTextEditorMIMETypeChanged): Added.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView):
(WI.TextResourceContentView.prototype._handleTextEditorMIMETypeChanged): Added.

  • UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView):
(WI.ScriptContentView.prototype._handleTextEditorMIMETypeChanged): Added.
Enable the "Pretty Print" navigation button if the MIME type changes to something that is
able to be formatted.
Drive-by: reorder the creation of the "Pretty Print" button so that it exists if
_attemptToDetermineMIMEType finishes synchronously.

11:49 AM Changeset in webkit [237395] by jiewen_tan@apple.com
  • 5 edits
    5 adds in trunk

Only report resource timing to parent frame for the first iframe load
https://bugs.webkit.org/show_bug.cgi?id=190498
<rdar://problem/44347398>

Reviewed by Youenn Fablet.

Source/WebCore:

Only the first iframe navigation or the first iframe navigation after about:blank should be reported.
https://www.w3.org/TR/resource-timing-2/#resources-included-in-the-performanceresourcetiming-interface

Test: http/tests/misc/resource-timing-navigation-in-restored-iframe.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader):

  • loader/FrameLoader.h:

(WebCore::FrameLoader::shouldReportResourceTimingToParentFrame):
(WebCore::FrameLoader::setShouldReportResourceTimingToParentFrame): Deleted.

  • loader/ResourceTimingInformation.cpp:

(WebCore::ResourceTimingInformation::addResourceTiming):

LayoutTests:

The layout test is from Chromium change:
https://chromium-review.googlesource.com/c/chromium/src/+/1186215.

  • http/tests/misc/resource-timing-navigation-in-restored-iframe-expected.txt: Added.
  • http/tests/misc/resource-timing-navigation-in-restored-iframe.html: Added.
  • http/tests/misc/resources/alert-then-back.html: Added.
  • http/tests/misc/resources/navigate-on-message.html: Added.
  • http/tests/misc/resources/post-message-to-parent.html: Added.
11:46 AM Changeset in webkit [237394] by Brent Fulgham
  • 17 edits in trunk/Source/WebCore

Cure Windows Direct2D Backend of a nasty case of bitrot
https://bugs.webkit.org/show_bug.cgi?id=190875
<rdar://problem/45523268>

Reviewed by Zalan Bujtas.

The Direct2D backend has drifted out of date with the rest of WebKit.
This patch updates things so we can get a runnable build.

  • platform/graphics/FontPlatformData.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageDecoder.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::setTargetContext):

  • platform/graphics/opentype/OpenTypeMathData.cpp:

(WebCore::OpenTypeMathData::OpenTypeMathData): Need non-default constructor to make Visual
Studio happy.

  • platform/graphics/win/GradientDirect2D.cpp:

(WebCore::Gradient::generateGradient):

  • platform/graphics/win/GraphicsContextDirect2D.cpp: Update for new display list implementation.

(WebCore::GraphicsContextPlatformPrivate::setAlpha):
(WebCore::GraphicsContext::savePlatformState):
(WebCore::GraphicsContext::restorePlatformState):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipOut):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::clipBounds const):
(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):
(WebCore::GraphicsContext::setMiterLimit):
(WebCore::GraphicsContext::clearRect):
(WebCore::GraphicsContext::strokeRect):
(WebCore::GraphicsContext::setLineCap):
(WebCore::GraphicsContext::setLineDash):
(WebCore::GraphicsContext::setLineJoin):
(WebCore::GraphicsContext::scale):
(WebCore::GraphicsContext::rotate):
(WebCore::GraphicsContext::translate):
(WebCore::GraphicsContext::concatCTM):
(WebCore::GraphicsContext::setCTM):
(WebCore::GraphicsContext::getCTM const):
(WebCore::GraphicsContext::roundToDevicePixels):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::setURLForRect):
(WebCore::GraphicsContext::setIsCALayerContext):
(WebCore::GraphicsContext::isCALayerContext const):
(WebCore::GraphicsContext::setIsAcceleratedContext):
(WebCore::GraphicsContext::isAcceleratedContext const):
(WebCore::GraphicsContext::setPlatformShouldAntialias):
(WebCore::GraphicsContext::setPlatformShouldSmoothFonts):
(WebCore::GraphicsContext::setPlatformCompositeOperation):
(WebCore::GraphicsContext::platformFillEllipse):
(WebCore::GraphicsContext::platformStrokeEllipse):

  • platform/graphics/win/GraphicsLayerDirect2D.cpp:

(WebCore::GraphicsLayer::create):
(): Deleted.

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::putData):

  • platform/graphics/win/ImageBufferDataDirect2D.h:
  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties const):
(WebCore::ImageDecoderDirect2D::encodedDataStatus const):
(WebCore::ImageDecoderDirect2D::repetitionCount const):
(WebCore::ImageDecoderDirect2D::frameOrientationAtIndex const):
(WebCore::ImageDecoderDirect2D::frameDurationAtIndex const):
(WebCore::ImageDecoderDirect2D::frameAllowSubsamplingAtIndex const):
(WebCore::ImageDecoderDirect2D::frameHasAlphaAtIndex const):
(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex):
(WebCore::ImageDecoderDirect2D::setData):
(WebCore::ImageDecoderDirect2D::bytesDecodedToDetermineProperties): Deleted.
(WebCore::ImageDecoderDirect2D::createFrameImageAtIndex const): Deleted.

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/graphics/win/ImageDirect2D.cpp:

(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/PatternDirect2D.cpp:

(WebCore::Pattern::createPlatformPattern const):

11:42 AM Changeset in webkit [237393] by commit-queue@webkit.org
  • 17 edits in trunk/Source

Cleanup: MIMETypeRegistry functions
https://bugs.webkit.org/show_bug.cgi?id=190838

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-10-24
Reviewed by Simon Fraser.

Source/WebCore:

Modernize the initialization of the lists in MIMETypeRegistry. Make the
functions that return these list be self-contained. Use NeverDestroy<> to
allocate the local static variable. Use std::initializer_list() and
makeNeverDestroyed() to initialize NeverDestroy<> variables only once.

supportedImageResourceMIMETypes will be deleted and all the calls to it
will be replaced by supportedImageMIMETypes because they are identical.

  • loader/archive/ArchiveFactory.cpp:

(WebCore::ArchiveFactory::registerKnownArchiveMIMETypes): This function
is called while initializing the supportedNonImageMIMETypes(). So it
should not have a direct call to it. Instead, supportedNonImageMIMETypes
is passed to it.

  • loader/archive/ArchiveFactory.h:
  • platform/MIMETypeRegistry.cpp:

(WebCore::MIMETypeRegistry::supportedImageMIMETypes):
(WebCore::supportedImageMIMETypesForEncoding):
(WebCore::supportedJavaScriptMIMETypes):
(WebCore::MIMETypeRegistry::supportedNonImageMIMETypes):
(WebCore::MIMETypeRegistry::supportedMediaMIMETypes):
(WebCore::pdfMIMETypes):
(WebCore::MIMETypeRegistry::unsupportedTextMIMETypes):
(WebCore::MIMETypeRegistry::isSupportedImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedImageMIMETypeForEncoding):
(WebCore::MIMETypeRegistry::isSupportedJavaScriptMIMEType):
(WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):
(WebCore::MIMETypeRegistry::isSupportedMediaMIMEType):
(WebCore::MIMETypeRegistry::isUnsupportedTextMIMEType):
(WebCore::MIMETypeRegistry::isPDFMIMEType):
(WebCore::MIMETypeRegistry::systemPreviewMIMETypes):
(WebCore::MIMETypeRegistry::isSystemPreviewMIMEType):
(WebCore::initializeSupportedImageMIMETypes): Deleted.
(WebCore::initializeSupportedImageMIMETypesForEncoding): Deleted.
(WebCore::initializeSupportedJavaScriptMIMETypes): Deleted.
(WebCore::initializePDFMIMETypes): Deleted.
(WebCore::initializeSupportedNonImageMimeTypes): Deleted.
(WebCore::initializeSupportedMediaMIMETypes): Deleted.
(WebCore::initializeUnsupportedTextMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::isSupportedImageResourceMIMEType): Deleted.
(WebCore::MIMETypeRegistry::getSupportedImageMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedImageResourceMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedNonImageMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSupportedMediaMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getPDFMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getUnsupportedTextMIMETypes): Deleted.
(WebCore::MIMETypeRegistry::getSystemPreviewMIMETypes): Deleted.

  • platform/MIMETypeRegistry.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::supportsType):

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::encodedDataStatus const):

  • platform/graphics/cg/UTIRegistry.cpp:

(WebCore::supportedDefaultImageSourceTypes):
(WebCore::isSupportImageSourceType):
(WebCore::allowedImageUTIs): Deleted.
(WebCore::isAllowedImageUTI): Deleted.

  • platform/graphics/cg/UTIRegistry.h:
  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

Source/WebKit:

  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry initWithConfiguration:]):

Source/WebKitLegacy/mac:

  • Misc/WebNSPasteboardExtras.mm:

(-[NSPasteboard _web_writePromisedRTFDFromArchive:containsImage:]):
Replace isSupportedImageResourceMIMEType() by isSupportedImageMIMEType()
because they were identical.

  • WebView/WebHTMLRepresentation.mm:

(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):

  • WebView/WebView.mm:

(+[WebView _unregisterViewClassAndRepresentationClassForMIMEType:]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(+[WebView registerViewClass:representationClass:forMIMEType:]):

11:26 AM Changeset in webkit [237392] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS] Layout Test legacy-animation-engine/animations/suspend-resume-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190883

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
11:24 AM Changeset in webkit [237391] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked webgl/1.0.2/conformance/glsl/misc/shader-with-reserved-words.html as a flaky timout.
https://bugs.webkit.org/show_bug.cgi?id=170877

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:44 AM Changeset in webkit [237390] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WPE] Fix CMake rules in for TestWebKitAPIBase library building in developer mode
https://bugs.webkit.org/show_bug.cgi?id=190328

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-10-24
Reviewed by Michael Catanzaro.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformWPE.cmake:
10:18 AM Changeset in webkit [237389] by Kocsen Chung
  • 4 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236227. rdar://problem/45491949

Crash under WebPageProxy::decidePolicyForNavigationAction()
https://bugs.webkit.org/show_bug.cgi?id=189763
<rdar://problem/44597111>

Reviewed by Alex Christensen.

Update WebNavigationState::navigation() / WebNavigationState::takeNavigation()
to return a pointer instead of a reference as we have evidence that they can
return null. I kept the debug assertions to try and catch the cases where we
return null but at least we stop crashing in release builds.

  • UIProcess/WebNavigationState.cpp: (WebKit::WebNavigationState::navigation): (WebKit::WebNavigationState::takeNavigation):
  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didStartProvisionalLoadForFrame): (WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame): (WebKit::WebPageProxy::didCommitLoadForFrame): (WebKit::WebPageProxy::didFinishDocumentLoadForFrame): (WebKit::WebPageProxy::didFinishLoadForFrame): (WebKit::WebPageProxy::didFailLoadForFrame): (WebKit::WebPageProxy::didSameDocumentNavigationForFrame): (WebKit::WebPageProxy::decidePolicyForNavigationAction): (WebKit::WebPageProxy::decidePolicyForResponse):

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

9:56 AM Changeset in webkit [237388] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Source/WebCore

Cherry-pick r236747. rdar://problem/45491954

Add release assertion to ensure m_owningPointerForClose is null in UniqueIDBDatabase::invokeOperationAndTransactionTimer()
https://bugs.webkit.org/show_bug.cgi?id=190178

Reviewed by Chris Dumez.

This would help debug rdar://problem/44902833.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::invokeOperationAndTransactionTimer):

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

9:56 AM Changeset in webkit [237387] by Kocsen Chung
  • 8 edits in branches/safari-606-branch/Source/WebCore

Cherry-pick r234791. rdar://problem/45491958

CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient(WebCore::IDBServer::UniqueIDBDatabaseConnection&)
https://bugs.webkit.org/show_bug.cgi?id=188474

Reviewed by Chris Dumez.

UniqueIDBDatabaseConnection is refcounted by UniqueIDBDatabaseTransaction and it refcounts
UniqueIDBDatabaseTransaction. This cycle could make UniqueIDBDatabaseConnection outlives
UniqueIDBDatabase, so its reference to UniqueIDBDatabase may be stale. Calling a function
on a stale object is probably the reason of recent various storage process crashes in
indexedDB.

This patch makes m_database a WeakPtr and adds assertions that could help us debug the
crashes.

  • Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince): (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp: (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction): (WebCore::IDBServer::UniqueIDBDatabase::abortTransaction):
  • Modules/indexeddb/server/UniqueIDBDatabase.h:
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp: (WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection): (WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection): (WebCore::IDBServer::UniqueIDBDatabaseConnection::abortTransactionWithoutCallback): (WebCore::IDBServer::UniqueIDBDatabaseConnection::connectionClosedFromClient): (WebCore::IDBServer::UniqueIDBDatabaseConnection::confirmDidCloseFromServer): (WebCore::IDBServer::UniqueIDBDatabaseConnection::didFireVersionChangeEvent): (WebCore::IDBServer::UniqueIDBDatabaseConnection::didFinishHandlingVersionChange): (WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction): (WebCore::IDBServer::UniqueIDBDatabaseConnection::establishTransaction): (WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):
  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.h: (WebCore::IDBServer::UniqueIDBDatabaseConnection::database):
  • Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp: (WebCore::IDBServer::UniqueIDBDatabaseTransaction::UniqueIDBDatabaseTransaction): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::~UniqueIDBDatabaseTransaction): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::createObjectStore): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteObjectStore): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameObjectStore): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::clearObjectStore): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteIndex): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::renameIndex): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::putOrAdd): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getAllRecords): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::openCursor): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::iterateCursor): (WebCore::IDBServer::UniqueIDBDatabaseTransaction::objectStoreIdentifiers):
  • Modules/indexeddb/shared/IDBResultData.cpp: (WebCore::IDBResultData::openDatabaseSuccess): (WebCore::IDBResultData::openDatabaseUpgradeNeeded):

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

9:39 AM Changeset in webkit [237386] by Chris Dumez
  • 4 edits in trunk

[PSON] When navigating back and forth, 'about:blank' shows up in the back/forward list
https://bugs.webkit.org/show_bug.cgi?id=190846
<rdar://problem/45058938>

Reviewed by Antti Koivisto.

Source/WebCore:

When a page gets suspended after a process-swap, we navigate it to about:blank from inside the navigation
policy handler, by overriding the request URL. This normally works fine because we usually process-swap
on standard navigation. However, when we would process-swap on a back/forward navigation, we would end
up using the back/forward navigation load type to do the about:blank load. This would have repercussions
because history navigations update the current history item with the new URL (in this case 'about:blank').
To avoid the issue, switch to a standard load type whenever the client asks us to suspend and we load
'about:blank' as a result.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
9:33 AM Changeset in webkit [237385] by Truitt Savell
  • 4 edits in trunk/LayoutTests

Marking Multiple tests as flakey at once
https://bugs.webkit.org/show_bug.cgi?id=190847

Unreviewed Test Gardening

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
8:38 AM Changeset in webkit [237384] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

REGRESSION (r237257): [iOS] Crashes in com.apple.WebKit: WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit
https://bugs.webkit.org/show_bug.cgi?id=190804

Reviewed by Alex Christensen.

Fix null-dereference of the drawing area in RemoteScrollingCoordinator::scheduleTreeStateCommit.
With process-swap-on-navigation enabled, suspended pages' drawing area gets torn down.

  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:

(WebKit::RemoteScrollingCoordinator::scheduleTreeStateCommit):

7:32 AM Changeset in webkit [237383] by Claudio Saavedra
  • 2 edits
    1 add in trunk/Tools

[GTK] TestSSL failing because of missing libsoup patch
https://bugs.webkit.org/show_bug.cgi?id=190869

Reviewed by Michael Catanzaro.

  • gtk/jhbuild.modules: Add the patch below to fix the API test TestSSL
  • gtk/patches/libsoup-soup-socket-fix-critical-warning-when-the-peer-certi.patch: Added.
7:27 AM Changeset in webkit [237382] by chris.reid@sony.com
  • 4 edits
    2 adds in trunk/Source/WTF

[Win] Add function call name information to stack traces
https://bugs.webkit.org/show_bug.cgi?id=190761

Reviewed by Fujii Hironori.

Add symbol information to stack traces using dbghelp.dll
This library will use symbols files from these sources:

  • The current working directory
  • The directory containing the application's executable
  • _NT_SYMBOL_PATH environment variable
  • _NT_ALTERNATE_SYMBOL_PATH environment variable

This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
can still attempt to call the library at the same time as WebKit.

  • wtf/CMakeLists.txt:
  • wtf/PlatformWin.cmake:
  • wtf/StackTrace.cpp:
  • wtf/win/DbgHelperWin.cpp: Added.
  • wtf/win/DbgHelperWin.h: Added.
7:15 AM Changeset in webkit [237381] by aestes@apple.com
  • 4 edits in trunk

[macOS Debug WK2] Layout Test http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=190650
<rdar://problem/45341914>

Reviewed by Alex Christensen.

Source/WebCore:

In computeErrors, we intend to ignore errors when computing paymentMethodErrors. But we
weren't clearing exceptions generated from calling convert(), so they would end up being
logged as unhandled promise rejections.

Changed ApplePayPaymentHandler::computeErrors() to use a CatchScope to clear exceptions when
decoding paymentMethodErrors.

Also changed ApplePayShippingAddressChangeEventErrorsV3.https.html to catch promise
rejections from calling PaymentRequest.abort().

Covered by existing test.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::computeErrors const):

LayoutTests:

  • http/tests/resources/payment-request.js:

(updateDetailsOnShippingAddressChange):

6:45 AM Changeset in webkit [237380] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Cleanups to the certificate decoder
https://bugs.webkit.org/show_bug.cgi?id=190867

Reviewed by Žan Doberšek.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<CertificateInfo>::decode):

3:20 AM Changeset in webkit [237379] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

topPrivatelyControlledDomain is slow
https://bugs.webkit.org/show_bug.cgi?id=190792

Reviewed by Alex Christensen and Chris Dumez.

It calls into some slowish CFNetwork code and ends up showing up in profiles.

  • platform/mac/PublicSuffixMac.mm:

(WebCore::topPrivatelyControlledDomain):

Add a cache that avoids calls into frameworks.

3:03 AM Changeset in webkit [237378] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=190790

Reviewed by Alex Christensen.

Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by
MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created
the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make
GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making
incrementing the pending task count atomic.

  • platform/GenericTaskQueue.cpp:

(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedLock):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):

  • platform/GenericTaskQueue.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(-[WebCoreAVFMovieObserver initWithPlayer:]):
(-[WebCoreAVFMovieObserver disconnect]):
(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate initWithPlayer:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
(-[WebCoreAVFPullDelegate initWithPlayer:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFMovieObserver initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate setCallback:]): Deleted.
(-[WebCoreAVFPullDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFPullDelegate setCallback:]): Deleted.

2:10 AM Changeset in webkit [237377] by Claudio Saavedra
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Cleanups to the certificate encoder
https://bugs.webkit.org/show_bug.cgi?id=190865

Reviewed by Žan Doberšek.

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<CertificateInfo>::encode):

2:05 AM Changeset in webkit [237376] by jer.noble@apple.com
  • 11 edits
    2 adds in trunk

TextTrack cues should be updated more often than every 250ms.
https://bugs.webkit.org/show_bug.cgi?id=190827

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/track/track-cue-timing.html

TextTracks cues are recalculated on the playback timer, which fires at least every 250ms.
In addition to this timer, add a method to MediaPlayer to provide a task which will be
performed at a particular media time, and use this new method to request cues be updated
at the next interesting media time. The next interesting time would be either when the
soonest current cue will end, or when the next non-current cue will start, whichever is
earlier.

(Determining the "next non-current cue" requires new API on PODIntervalTree, as that class
does not have iterators per-se.)

  • html/HTMLMediaElement.cpp:

(WebCore::compareCueIntervalEndTime):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):

  • platform/PODIntervalTree.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::performTaskAtMediaTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::performTaskAtMediaTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtMediaTime):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtMediaTime):

LayoutTests:

Add a LayoutTest which plays back 6s of captions, each 50 ms in duration, and uses
when the "enter" and "exit" were fired (in media time) to check whether they were missed
or not. The test succeeds if fewer than 50 of the 120 cues were missed.

  • media/track/track-cue-missing-expected.txt: Added.
  • media/track/track-cue-missing.html: Added.

Oct 23, 2018:

9:58 PM Changeset in webkit [237375] by Fujii Hironori
  • 2 edits in trunk/Source/WebCore

[Win] Assertion fails while destructing local static AtomicString of FontCache::lastResortFallbackFont
https://bugs.webkit.org/show_bug.cgi?id=190748

Reviewed by Myles C. Maxfield.

FontCache::lastResortFallbackFont had local static AtomicString
variables which are not capsuled by NeverDestroyed. Hence, those
variables are destructed on IPC thread when WebProcess exits.

Changed those AtomicString to NeverDestroyed<AtomicString> not to
be destructed on exit.

This change can't be tested automatically because WebKitTestRunner
doesn't support Windows port yet.

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::lastResortFallbackFont): Changed
fallbackFonts's type from AtomicString array to
NeverDestroyed<AtomicString> array.

4:52 PM Changeset in webkit [237374] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236606. rdar://problem/45285669

Gardening: speculative build fix.
<rdar://problem/44869924>

Not reviewed.

  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):

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

4:52 PM Changeset in webkit [237373] by Kocsen Chung
  • 14 edits in branches/safari-606-branch

Cherry-pick r236589. rdar://problem/45285669

Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>

Reviewed by Mark Lam.

JSTests:

  • stress/regress-189132.js:

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h: (JSC::ARM64Assembler::ARM64Assembler): (JSC::ARM64Assembler::fillNops): (JSC::ARM64Assembler::link): (JSC::ARM64Assembler::linkJumpOrCall): (JSC::ARM64Assembler::linkCompareAndBranch): (JSC::ARM64Assembler::linkConditionalBranch): (JSC::ARM64Assembler::linkTestAndBranch): (JSC::ARM64Assembler::unlinkedCode): Deleted.
  • assembler/ARMAssembler.h: (JSC::ARMAssembler::fillNops):
  • assembler/ARMv7Assembler.h: (JSC::ARMv7Assembler::unlinkedCode): Deleted.
  • assembler/AbstractMacroAssembler.h: (JSC::AbstractMacroAssembler::emitNops): (JSC::AbstractMacroAssembler::AbstractMacroAssembler):
  • assembler/AssemblerBuffer.h: (JSC::ARM64EHash::ARM64EHash): (JSC::ARM64EHash::update): (JSC::ARM64EHash::hash const): (JSC::ARM64EHash::randomSeed const): (JSC::AssemblerBuffer::AssemblerBuffer): (JSC::AssemblerBuffer::putShort): (JSC::AssemblerBuffer::putIntUnchecked): (JSC::AssemblerBuffer::putInt): (JSC::AssemblerBuffer::hash const): (JSC::AssemblerBuffer::data const): (JSC::AssemblerBuffer::putIntegralUnchecked): (JSC::AssemblerBuffer::append): Deleted.
  • assembler/LinkBuffer.cpp: (JSC::LinkBuffer::copyCompactAndLinkCode):
  • assembler/MIPSAssembler.h: (JSC::MIPSAssembler::fillNops):
  • assembler/MacroAssemblerARM64.h: (JSC::MacroAssemblerARM64::jumpsToLink): (JSC::MacroAssemblerARM64::link): (JSC::MacroAssemblerARM64::unlinkedCode): Deleted.
  • assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::jumpsToLink): (JSC::MacroAssemblerARMv7::unlinkedCode): Deleted.
  • assembler/X86Assembler.h: (JSC::X86Assembler::fillNops):

Source/WTF:

  • wtf/PtrTag.h: (WTF::tagInt):

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

4:52 PM Changeset in webkit [237372] by Kocsen Chung
  • 6 edits
    2 adds in branches/safari-606-branch

Cherry-pick r237238. rdar://problem/45363879

[Apple Pay] Increment the API version to 5
https://bugs.webkit.org/show_bug.cgi?id=190686
<rdar://problem/45348523>

Reviewed by Simon Fraser.

Source/WebCore:

Test: http/tests/ssl/applepay/ApplePaySessionV5.html

  • testing/MockPaymentCoordinator.cpp: (WebCore::MockPaymentCoordinator::supportsVersion):

Source/WebKit:

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp: (WebKit::WebPaymentCoordinator::supportsVersion):

LayoutTests:

  • http/tests/ssl/applepay/ApplePaySessionV5-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePaySessionV5.html: Added.
  • platform/mac-wk2/TestExpectations:

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

4:52 PM Changeset in webkit [237371] by Kocsen Chung
  • 3 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236604. rdar://problem/45285669

[JSC] [Armv7] Add a copy function argument to MacroAssemblerARMv7::link() and pass it down to the assembler's linking functions.
https://bugs.webkit.org/show_bug.cgi?id=190080

Reviewed by Mark Lam.

  • assembler/ARMv7Assembler.h: (JSC::ARMv7Assembler::link): (JSC::ARMv7Assembler::linkJumpT1): (JSC::ARMv7Assembler::linkJumpT2): (JSC::ARMv7Assembler::linkJumpT3): (JSC::ARMv7Assembler::linkJumpT4): (JSC::ARMv7Assembler::linkConditionalJumpT4): (JSC::ARMv7Assembler::linkBX): (JSC::ARMv7Assembler::linkConditionalBX):
  • assembler/MacroAssemblerARMv7.h: (JSC::MacroAssemblerARMv7::link):

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

4:52 PM Changeset in webkit [237370] by Kocsen Chung
  • 5 edits
    2 adds in branches/safari-606-branch

Cherry-pick r236578. rdar://problem/45285613

Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics
https://bugs.webkit.org/show_bug.cgi?id=190055
<rdar://problem/44843460>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html

  • loader/ResourceLoadStatistics.cpp: (WebCore::ResourceLoadStatistics::decode):

Corrects legacy statistics for frames and triggers a re-classification.

Source/WebKit:

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

Bumped the statisticsModelVersion to 14 to be able to
correct legacy statistics.

(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):

Now skips capture if it's the main frame.

LayoutTests:

  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-expected.txt: Added.
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html: Added.

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

4:51 PM Changeset in webkit [237369] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r235674. rdar://problem/45285711

Cancelled fullscreen exit gesture leaves bad state for next exit request.
https://bugs.webkit.org/show_bug.cgi?id=189278

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-09-05
Reviewed by Jer Noble.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm: (-[WKFullScreenWindowController _dismissFullscreenViewController]):

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

3:05 PM Changeset in webkit [237368] by Justin Fan
  • 50 edits
    8 copies
    63 moves
    7 deletes in trunk

[WebGPU] Rename old GPU* implementation files to GPULegacy* for WebMetal
https://bugs.webkit.org/show_bug.cgi?id=190817

Reviewed by Dean Jackson.

Source/WebCore:

No new tests. No change in behavior.

  • [Large list of refactored classes and renamed files]: GPU* is now GPULegacy*

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyBuffer.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUBuffer.mm.

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyCommandQueue.mm: Copied from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm.

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyDevice.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUDevice.mm.

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyFunction.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUFunction.mm.

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyLibrary.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPULibrary.mm.

(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/mac/GPULegacyTest.h: Renamed from Tools/TestWebKitAPI/Tests/WebCore/mac/GPUTest.h.
2:07 PM Changeset in webkit [237367] by Ryan Haddad
  • 21 edits in trunk

Unreviewed, rolling out r237261.

The layout test for this change crashes under GuardMalloc.

Reverted changeset:

"Handle MDNS resolution of candidates through libwebrtc
directly"
https://bugs.webkit.org/show_bug.cgi?id=190681
https://trac.webkit.org/changeset/237261

1:53 PM Changeset in webkit [237366] by Truitt Savell
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r237357.

API test is now failing on all platforms.

Reverted changeset:

"topPrivatelyControlledDomain is slow"
https://bugs.webkit.org/show_bug.cgi?id=190792
https://trac.webkit.org/changeset/237357

1:36 PM Changeset in webkit [237365] by ddkilzer@apple.com
  • 4 edits in trunk/Source

Fix false positive leaks when using custom -init methods that don't start with -init
<https://webkit.org/b/190818>
<rdar://problem/45476042>

Reviewed by Dan Bernstein.

Source/WebKit:

  • UIProcess/Cocoa/WKWebViewContentProvider.h:

(-[WKWebViewContentProvider web_initWithFrame:webView:mimeType:]):
Add attribute to make this behave like an -init method.

Source/WebKitLegacy/mac:

  • Misc/WebKitErrors.m: Move descriptions static global so that

it is accessible by both categories.
(-[NSError _webkit_initWithDomain:code:URL:]): Declare new
NSError (WebKitInternal) category. Add attribute to make this
behave like an -init method.
(-[NSError _webkit_initWithDomain:code:URL:]): Move into new
NSError (WebKitInternal) category. Modernize method. Replace
constant NSString with NSURLErrorFailingURLStringErrorKey.

1:02 PM Changeset in webkit [237364] by Truitt Savell
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r237350.

Caused several Crashes cross multiple tests and platforms.

Reverted changeset:

"Use WeakPtr and GenericTaskQueue within ObjC classes used by
MediaPlayerPrivateAVFoundationObjC"
https://bugs.webkit.org/show_bug.cgi?id=190790
https://trac.webkit.org/changeset/237350

12:44 PM Changeset in webkit [237363] by commit-queue@webkit.org
  • 1 edit
    1 delete in trunk/LayoutTests

Web Inspector: Remove unused css-rules pretty printing test expectation
https://bugs.webkit.org/show_bug.cgi?id=190834

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-10-23
Reviewed by Matt Baker.

  • inspector/codemirror/prettyprinting-css-rules-expected.txt: Removed.
12:29 PM Changeset in webkit [237362] by Alan Coon
  • 2 edits in tags/Safari-607.1.10.4/Source/WebKit

Cherry-pick r237309. rdar://problem/45377609

Allow WebContent process to check some file system features
https://bugs.webkit.org/show_bug.cgi?id=190768
<rdar://problem/45377609>

Reviewed by Alexey Proskuryakov.

This patch unblocks some IOKit properties that are needed by lower level frameworks to make decisions
about how to efficiently use the file system.

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

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

11:30 AM Changeset in webkit [237361] by ap@apple.com
  • 2 edits in trunk/Source/WTF

Really prevent PLATFORM(IOS) from being used
https://bugs.webkit.org/show_bug.cgi?id=190813

Reviewed by Tim Horton.

  • wtf/Platform.h: This relies on -Wundef, which we have enabled.
11:23 AM Changeset in webkit [237360] by Alan Coon
  • 7 edits in tags/Safari-607.1.10.4/Source

Versioning.

11:17 AM Changeset in webkit [237359] by Ryan Haddad
  • 7 edits in trunk

Unreviewed, rolling out r237280.

Causes fast/box-shadow/box-shadow-with-zero-radius.html to
fail on iOS Simulator.

Reverted changeset:

"[CG] Adopt CG SPI for non-even cornered rounded rects"
https://bugs.webkit.org/show_bug.cgi?id=190155
https://trac.webkit.org/changeset/237280

11:15 AM Changeset in webkit [237358] by Alan Coon
  • 1 copy in tags/Safari-607.1.10.4

New tag.

11:02 AM Changeset in webkit [237357] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

topPrivatelyControlledDomain is slow
https://bugs.webkit.org/show_bug.cgi?id=190792

Reviewed by Alex Christensen.

It calls into some slowish CFNetwork code and ends up showing up in profiles.

  • platform/mac/PublicSuffixMac.mm:

(WebCore::topPrivatelyControlledDomain):

Add a cache that avoids calls into frameworks.

10:54 AM Changeset in webkit [237356] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS Debug WK1] Layout Test inspector/codemirror/prettyprinting-css.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=190833

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as slow.
10:54 AM Changeset in webkit [237355] by Chris Dumez
  • 25 edits in trunk

[PSON] Add support for cross-site client-side redirects
https://bugs.webkit.org/show_bug.cgi?id=190806
<rdar://problem/45047344>

Reviewed by Geoffrey Garen.

Source/WebCore:

Add support for cross-site client-side redirects so that it swaps process and so that the back
forward list looks as expected. To support this, the following changes had to be done:

  • The NavigationAction now provides additional information so that the WebProcess can communicate things about the client-side redirect to the UIProcess: lockHistory / lockBackForwardList and clientRedirectSourceForHistory.
  • If the UIProcess decides to process-swap on a client-side redirect, we pass the client-side redirect information to the new WebContent process via LoadRequest struct. WebCore then takes care of setting things up using this information so that it recognizes that it is continuing a load that is a client side redirect.
  • We also need to pass the current BackForwardListItem / HistoryItem to the new WebContent process so that the new process can truly lock history and keep updating the *current* HistoryItem, instead of creating a new HistoryItem.
  • After a process swap, when we re-construct the WebFrameProxy for the main frame in the new process, we now set the frame's URL in the UIProcess to the URL it had before we swapped. Clients such as Safari, rely on the main frame's URL being the expected value (the last committed load URL) until the next load is committed when receiving didPerformRedirect calls. Because we are destroying the main frame on process-swapping, we were losing the last committed URL and Safari would hit assertions.

With this model, the willPerformClientRedirect IPC is still sent from the previous WebProcess
and the didPerformClientRedirect IPC is now sent by the new WebProcess. No change should be
observable from the client's point of view.

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setLockHistory):
(WebCore::FrameLoadRequest::setlockBackForwardList):
(WebCore::FrameLoadRequest::clientRedirectSourceForHistory const):
(WebCore::FrameLoadRequest::setClientRedirectSourceForHistory):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):

  • loader/HistoryController.cpp:

(WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):

  • loader/HistoryController.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::lockHistory const):
(WebCore::NavigationAction::setLockHistory):
(WebCore::NavigationAction::lockBackForwardList const):
(WebCore::NavigationAction::setLockBackForwardList):

Source/WebKit:

  • Shared/LoadParameters.cpp:

(WebKit::LoadParameters::encode const):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h:
  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::setSuspendedPage):

  • UIProcess/API/APINavigation.h:

(API::Navigation::setLockHistory):
(API::Navigation::lockHistory const):
(API::Navigation::setLockBackForwardList):
(API::Navigation::lockBackForwardList const):
(API::Navigation::setClientRedirectSourceForHistory):
(API::Navigation::clientRedirectSourceForHistory const):

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::willPerformClientRedirect):
(API::NavigationClient::didPerformClientRedirect):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::didPerformClientRedirect):

  • UIProcess/FrameLoadState.h:

(WebKit::FrameLoadState::setURL):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequestWithNavigation):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::didPerformClientRedirect):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::setCurrentHistoryItemForReattach):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONNavigationDelegate _webView:willPerformClientRedirectToURL:delay:]):
(-[PSONNavigationDelegate _webView:didPerformClientRedirectFromURL:toURL:]):

10:26 AM Changeset in webkit [237354] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Debug WK1 ] Layout Test fast/forms/state-restore-to-non-edited-controls.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190832

Unreviewed Test Gardening.

  • platform/mac-wk1/TestExpectations:
10:22 AM Changeset in webkit [237353] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/ready-states/autoplay-with-slow-text-tracks.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=176929

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
9:58 AM Changeset in webkit [237352] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r236501?): Layout Test compositing/geometry/limit-layer-bounds-opacity-transition.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190210

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
8:52 AM Changeset in webkit [237351] by Claudio Saavedra
  • 4 edits in trunk

[WPE][GTK] Pass full certificate chain in CertificateInfo coder
https://bugs.webkit.org/show_bug.cgi?id=190789

Reviewed by Michael Catanzaro.

When the network process serializes certificate data to other
processes through the argument coders, the certificate chain, if
present, is lost. In practice this means that applications using
the public API to process certificate info have no details on the
certificate chain, other than the very basics included in the
certificate. Serialize the entire chain if available in the
certificate.

Source/WebKit:

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<CertificateInfo>::encode): Encode the
certificate chain if present.
(IPC::ArgumentCoder<CertificateInfo>::decode): Decode the
entire certificate chain and rebuild it.

Tools:

  • TestWebKitAPI/Tests/WebKitGLib/TestSSL.cpp:

(testSSL): Test that the self-signed certificate has no bogus
issuer certificate.

7:40 AM Changeset in webkit [237350] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

Use WeakPtr and GenericTaskQueue within ObjC classes used by MediaPlayerPrivateAVFoundationObjC
https://bugs.webkit.org/show_bug.cgi?id=190790

Reviewed by Alex Christensen.

Move towards using WeakPtr callbacks instead of raw pointers within the utility objects used by
MediaPlayerPrivateAVFoundationObjC. Additionally, accessing WeakPtr off the thread which created
the pointer is not allowed, so use a GenericTaskQueue to schedule callbacks instead. Make
GenericTaskQueue<Timer> thread-safe by locking around access to m_pendingTasks, and by making
incrementing the pending task count atomic.

  • platform/GenericTaskQueue.cpp:

(WebCore::TaskDispatcher<Timer>::postTask):
(WebCore::TaskDispatcher<Timer>::sharedLock):
(WebCore::TaskDispatcher<Timer>::sharedTimerFired):
(WebCore::TaskDispatcher<Timer>::dispatchOneTask):
(WebCore::TaskDispatcher<Timer>::pendingDispatchers):

  • platform/GenericTaskQueue.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(-[WebCoreAVFMovieObserver initWithPlayer:]):
(-[WebCoreAVFMovieObserver disconnect]):
(-[WebCoreAVFMovieObserver metadataLoaded]):
(-[WebCoreAVFMovieObserver didEnd:]):
(-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
(-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
(-[WebCoreAVFMovieObserver outputSequenceWasFlushed:]):
(-[WebCoreAVFLoaderDelegate initWithPlayer:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
(-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
(-[WebCoreAVFPullDelegate initWithPlayer:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFMovieObserver initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFLoaderDelegate setCallback:]): Deleted.
(-[WebCoreAVFPullDelegate initWithCallback:]): Deleted.
(-[WebCoreAVFPullDelegate setCallback:]): Deleted.

2:52 AM Changeset in webkit [237349] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener')
https://bugs.webkit.org/show_bug.cgi?id=190766

Reviewed by Brian Burg.

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._populateWaterfallGraph):
When creating the mouseBlock, if the startTimestamp and endTimestamp are equal, we
don't create an element. If this is true for the total range of the WI.Resouce (meaning
its startTime and responseEnd), don't even try to create blocks.

2:50 AM Changeset in webkit [237348] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "Queued NaNms" in Network tab
https://bugs.webkit.org/show_bug.cgi?id=190767
<rdar://problem/45420859>

Reviewed by Brian Burg.

  • UserInterface/Models/ResourceTimingData.js:

(WI.ResourceTimingData.prototype.get fetchStart):
If the WI.ResourceTimingData has no fetchStart use the associated WI.Resource's
requestSentTimestamp (just like startTime).

Note: See TracTimeline for information about the timeline view.