Timeline
Aug 6, 2019:
- 11:53 PM Changeset in webkit [248361] by
-
- 5 edits1 delete in branches/safari-608.1-branch
Cherry-pick r248037. rdar://problem/54018119
AX: Re-enable accessibility/set-selected-text-range-after-newline.html test.
https://bugs.webkit.org/show_bug.cgi?id=199431
<rdar://problem/52563340>
Patch by Andres Gonzalez <Andres Gonzalez> on 2019-07-31
Reviewed by Chris Fleizach.
Source/WebCore:
- Re-enabled LayoutTests/accessibility/set-selected-text-range-after-newline.html.
- Put back workaround in visiblePositionForIndexUsingCharacterIterator that is needed for several accessibility issues.
- This workaround was rolled back because it was thought the cause of: https://bugs.webkit.org/show_bug.cgi?id=199434 It turned out that the actual cause of that hang was unrelated and was fixed in: https://bugs.webkit.org/show_bug.cgi?id=199845
- editing/Editing.cpp: (WebCore::visiblePositionForIndexUsingCharacterIterator):
LayoutTests:
- TestExpectations:
- accessibility/ios-simulator/set-selected-text-range-after-newline.html: Removed because it was the same as the one in the parent accessibility directory, so enabling it for iOS in ios-wk2/TestExpectations.
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248037 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:53 PM Changeset in webkit [248360] by
-
- 4 edits in branches/safari-608.1-branch/Source
Cherry-pick r248330. rdar://problem/54018116
Context menu on a universal link produces a blank preview
https://bugs.webkit.org/show_bug.cgi?id=200485
<rdar://problem/53699620>
Reviewed by Dean Jackson.
Source/WebCore/PAL:
Define iTunesStoreURL from CoreServices.
- pal/spi/cocoa/LaunchServicesSPI.h:
Source/WebKit:
If the context menu is activated on an iTunesStore URL, pass it
on to DataDetectors, who should know how to handle it.
Two drive-by fixes:
- make it clear that early returns do not produce a value. Instead call the completion handler first, then return.
- The new API DataDetectors case doesn't need to worry about hiding link previews as DataDetectors itself will handle that.
- UIProcess/ios/WKContentViewInteraction.mm: If the URL is an iTunesStoreURL (as defined by CoreServices), let DataDetectors handle it. (-[WKContentView assignLegacyDataForContextMenuInteraction]): (-[WKContentView continueContextMenuInteraction:]): (-[WKContentView continueContextMenuInteractionWithDataDetectors:]): New method to use DataDetectors if possible.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248330 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:53 PM Changeset in webkit [248359] by
-
- 7 edits4 adds in branches/safari-608.1-branch
Cherry-pick r248265. rdar://problem/54017843
Ping loads should not prevent page caching
https://bugs.webkit.org/show_bug.cgi?id=200418
<rdar://problem/53901632>
Reviewed by Darin Adler.
Source/WebCore:
We normally prevent page caching if there were any pending subresource loads when navigating,
to avoid caching partial / broken content. However, this should not apply to Ping / Beacon
loads since those do not impact page rendering and can outlive the page.
Tests: http/tests/navigation/page-cache-pending-ping-load-cross-origin.html
http/tests/navigation/page-cache-pending-ping-load-same-origin.html
- history/PageCache.cpp: (WebCore::PageCache::addIfCacheable): After we've fired the 'pagehide' event in each frame, stop all the loads again. This is needed since pages are allowed to start ping / beacon loads in their 'pagehide' handlers. If we do not stop those loads, then the next call to canCachePage() would fail because the DocumentLoader is still loading. Note that we're not actually preventing these ping loads from hitting the server since we never cancel page loads and those can outlive their page.
- loader/DocumentLoader.cpp: (WebCore::shouldPendingCachedResourceLoadPreventPageCache): (WebCore::areAllLoadersPageCacheAcceptable): Make sure that Ping / Beacon / Prefetches / Icon loads do not prevent page caching.
(WebCore::DocumentLoader::addSubresourceLoader):
Tweak assertion that was incorrect since we actually allow ping / beacon loads when the
document is about to enter PageCache (while firing pagehide event).
Tools:
Add TestOption to enable PageCache at UIProcess-level so that we can test
page caching when navigating cross-origin with PSON enabled.
- WebKitTestRunner/TestController.cpp: (WTR::TestController::resetPreferencesToConsistentValues): (WTR::updateTestOptionsFromTestHeader):
- WebKitTestRunner/TestOptions.h: (WTR::TestOptions::hasSameInitializationOptions const):
LayoutTests:
Add layout test coverage.
- http/tests/navigation/page-cache-pending-ping-load-cross-origin-expected.txt: Added.
- http/tests/navigation/page-cache-pending-ping-load-cross-origin.html: Added.
- http/tests/navigation/page-cache-pending-ping-load-same-origin-expected.txt: Added.
- http/tests/navigation/page-cache-pending-ping-load-same-origin.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:53 PM Changeset in webkit [248358] by
-
- 5 edits2 adds in branches/safari-608.1-branch
Cherry-pick r248148. rdar://problem/54017841
Pages using MessagePorts should be PageCacheable
https://bugs.webkit.org/show_bug.cgi?id=200366
<rdar://problem/53837882>
Reviewed by Geoffrey Garen.
Source/WebCore:
Allow a page to enter PageCache, even if it has MessagePorts (potentially with
pending messages). If there are pending messages on the MessagePorts when
entering PageCache, those will get dispatched upon restoring from PageCache.
Test: fast/history/page-cache-MessagePort-pending-message.html
- dom/MessagePort.cpp: (WebCore::MessagePort::messageAvailable): (WebCore::MessagePort::dispatchMessages): Do not dispatch messages while in PageCache.
(WebCore::MessagePort::canSuspendForDocumentSuspension const):
Allow pages with MessagePort objects to enter PageCache.
- dom/ScriptExecutionContext.cpp: (WebCore::ScriptExecutionContext::resumeActiveDOMObjects): Make sure pending messages on MessagePorts get dispatched asynchronously after restoring from PageCache.
- loader/DocumentLoader.cpp: (WebCore::areAllLoadersPageCacheAcceptable): Make sure only CachedResources that are still loading upon load cancelation prevent entering PageCache.
LayoutTests:
Add layout test coverage.
- fast/history/page-cache-MessagePort-pending-message-expected.txt: Added.
- fast/history/page-cache-MessagePort-pending-message.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248148 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248357] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebKit
Cherry-pick r248085. rdar://problem/54017902
WKImagePreviewViewController not being autoreleased
https://bugs.webkit.org/show_bug.cgi?id=200325
<rdar://problem/53788214>
Reviewed by Wenson Hsieh.
Wenson noticed I wasn't autoreleasing the WKImagePreviewViewController.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView continueContextMenuInteraction:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248085 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248356] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebCore
Cherry-pick r248028. rdar://problem/54017896
ASSERTion failure under takeSnapshot after r247846
- page/TextIndicator.cpp: (WebCore::takeSnapshots): We now sometimes inflate the scale factor; allow this.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248028 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248355] by
-
- 6 edits in branches/safari-608.1-branch/Source
Cherry-pick r248018. rdar://problem/54017893
REGRESSION(r241288): Text on Yahoo Japan mobile looks too bold
https://bugs.webkit.org/show_bug.cgi?id=200065
<rdar://problem/50912757>
Reviewed by Simon Fraser.
Source/WebCore:
Before r241288, we were mapping Japanese sans-serif to Hiragino Kaku Gothic ProN, which
has a 300 weight and a 600 weight. However, we can't use that font because it's user-installed,
so in r241288 we switched to using Hiragino Sans, which has a 300 weight, a 600 weight, and an
800 weight. According to the CSS font selection algorithm, sites that request a weight of 700
would get the 800 weight instead of the 600 weight, which caused the text to look too heavy.
Therefore, the apparent visual change is from a weight change from 600 to 800.
In general, this is working as intended. However, text on Yahoo Japan looks too heavy in weight
- Instead, this patch adds a quirk specific to Yahoo Japan that overwrites any font requests to give them a weight of 600 instead of 700. This way, the lighter font will be used.
No new tests because quirks cannot be tested.
- css/CSSFontSelector.cpp: (WebCore::resolveGenericFamily): (WebCore::CSSFontSelector::fontRangesForFamily):
- page/Quirks.cpp: (WebCore::Quirks::shouldLightenJapaneseBoldSansSerif const):
- page/Quirks.h:
Source/WTF:
- wtf/Platform.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248018 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248354] by
-
- 3 edits2 adds in branches/safari-608.1-branch
Cherry-pick r248015. rdar://problem/54017889
Can't scroll on yummly.co.uk recipe (scale(0) div covers the content and hit-tests)
https://bugs.webkit.org/show_bug.cgi?id=200263
rdar://problem/53679408
Reviewed by Antti Koivisto.
Source/WebKit:
The content on this page had a scale(0) div overlaying an overflow:scroll element,
and our UI-side hit-testing code would find this scale(0) element, because apparently
-[UIView convertPoint:fromView:] will happily work with non-invertible matrices, and
-[UIView pointInside:withEvent:] just compares the point with the view bounds.
Since the view frame takes the transform into account, we can look for an empty frame
to detect these non-invertible transforms.
- UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm: (WebKit::collectDescendantViewsAtPoint):
LayoutTests:
- fast/scrolling/ios/non-invertible-transformed-over-scroller-expected.txt: Added.
- fast/scrolling/ios/non-invertible-transformed-over-scroller.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@248015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248353] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebKit
Cherry-pick r247920. rdar://problem/54017883
Contextual menu does not present when holding an embedded photo but works with link and attachments
https://bugs.webkit.org/show_bug.cgi?id=200239
<rdar://problem/53318733>
Reviewed by Tim Horton.
If the user long-pressed on an image, and the client implemented the new API but did
not provide a configuration, we were not falling back to the default behaviour of
giving a menu allowing the user to copy/share/save the image.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView continueContextMenuInteraction:]): If we get through the delegates, and the element is an image, return the default configuration.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247920 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248352] by
-
- 17 edits2 moves in branches/safari-608.1-branch
Cherry-pick r247868. rdar://problem/54017876
[iOS] WebPage::TouchEventSync() & WebPage::GetPositionInformation() sync IPC causes UIProcess hangs
https://bugs.webkit.org/show_bug.cgi?id=200138
<rdar://problem/52698157>
Reviewed by Geoffrey Garen.
Source/WebKit:
Revert most of r247822 and use an alternative approach to address hangs. In this patch, the proposal
is to add a SendSyncOption::ForceDispatchWhenDestinationIsWaitingForUnboundedSyncReply flag on the
WebPage::TouchEventSync() & WebPage::GetPositionInformation() sendSync() calls in the UIProcess.
Those will cause this IPCs to get dispatched right away in the WebContent process, even if the
WebContent process is itself currently stuck on unbounded (i.e. potentially slow) synchronous IPC
(JS alerts / prompts & sync XHR). Because re-entering WebCore on sync IPC is generally unsafe, this
patch also updates the WebPage::getPositionInformation() & WebPage::touchEventSync() to return early
(i.e. cancelled) if they get called while the WebContent process is stuck on a slow sendSync.
This approach should address the UIProcess hangs caused by the WebPage::TouchEventSync() and
WebPage::GetPositionInformation() sync IPC messages when the WebContent process is busy on a slow XHR
or a JS prompt / alert. It should be safe because we do not re-enter WebCore. The only drawback is that
those IPCs will be cancelled (early return with default value) when the WebContent process is busy.
However, I am being told that this is likely acceptable in practice.
- Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::sendMessage): (IPC::Connection::sendSyncMessage): (IPC::Connection::dispatchMessage):
- Platform/IPC/Connection.h: (IPC::UnboundedSynchronousIPCScope::UnboundedSynchronousIPCScope): (IPC::UnboundedSynchronousIPCScope::~UnboundedSynchronousIPCScope): (IPC::UnboundedSynchronousIPCScope::hasOngoingUnboundedSyncIPC):
- Platform/IPC/Decoder.cpp: (IPC::Decoder::shouldDispatchMessageWhenWaitingForSyncReply const):
- Platform/IPC/Decoder.h:
- Platform/IPC/Encoder.cpp: (IPC::Encoder::shouldDispatchMessageWhenWaitingForSyncReply const): (IPC::Encoder::setShouldDispatchMessageWhenWaitingForSyncReply): (IPC::Encoder::wrapForTesting):
- Platform/IPC/Encoder.h:
- Platform/IPC/MessageFlags.h:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::handleTouchEventSynchronously):
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView ensurePositionInformationIsUpToDate:]):
- WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::loadResourceSynchronously):
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): (WebKit::WebChromeClient::runJavaScriptAlert): (WebKit::WebChromeClient::runJavaScriptConfirm): (WebKit::WebChromeClient::runJavaScriptPrompt):
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::layerVolatilityTimerFired): (WebKit::WebPage::markLayersVolatile): (WebKit::WebPage::cancelMarkLayersVolatile): (WebKit::WebPage::touchEventSync): (WebKit::WebPage::didCompletePageTransition): (WebKit::WebPage::updatePreferences): (WebKit::WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- WebProcess/WebPage/WebPage.h: (WebKit::WebPage::sendSyncWithDelayedReply):
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::getPositionInformation):
LayoutTests:
Update existing layout test accordingly.
- fast/misc/{testProcessIncomingSyncMessagesWhenWaitingForUnboundedReply-expected.txt: Renamed from LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt.
- fast/misc/{testProcessIncomingSyncMessagesWhenWaitingForUnboundedReply.html: Renamed from LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247868 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248351] by
-
- 4 edits in branches/safari-608.1-branch/Source/WebCore
Cherry-pick r247846. rdar://problem/54017896
Subpixel fringes around TextIndicator snapshots at non-integral scale factors
https://bugs.webkit.org/show_bug.cgi?id=200145
Reviewed by Simon Fraser.
- page/FrameSnapshotting.cpp: (WebCore::snapshotFrameRectWithClip):
- page/FrameSnapshotting.h:
- page/TextIndicator.cpp: (WebCore::snapshotOptionsForTextIndicatorOptions): Round the scale factor up, and snappily enclose the clip rects.
TextIndicator doesn't require the use of the precise scale factor that
the page is painted at, but we want it to be sharp, so we overshoot!
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247846 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248350] by
-
- 1 edit2 adds in branches/safari-608.1-branch/LayoutTests
Cherry-pick r247824. rdar://problem/54017900
Adding iOS-specific expectations for fast/text-indicator/text-indicator-with-low-contrast-text.html.
https://bugs.webkit.org/show_bug.cgi?id=200064
Unreviewed Test Gardening.
- platform/ios/fast/text-indicator/text-indicator-with-low-contrast-text-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248349] by
-
- 20 edits2 adds in branches/safari-608.1-branch
Cherry-pick r247822. rdar://problem/54017886
Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts
https://bugs.webkit.org/show_bug.cgi?id=200107
<rdar://problem/53034592>
Reviewed by Geoffrey Garen.
Source/WebCore:
Add testing infrastructure for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply.
Test: fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html
- page/ChromeClient.h:
- testing/Internals.cpp: (WebCore::Internals::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
- Platform/IPC/Connection.cpp: (IPC::Connection::SyncMessageState::incrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): (IPC::Connection::SyncMessageState::decrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): (IPC::Connection::SyncMessageState::processIncomingMessage): (IPC::Connection::sendSyncMessage):
- Platform/IPC/Connection.h: Add support for new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag to allow processing incoming sync messages while sending a particular sync IPC. This is the default behavior in all processes except in the WebContent process, where we try to avoid re-entering to prevent bugs. This flag allows the WebContent process to change its default behavior for some specific IPCs, where we know it is safe to re-enter and where it benefits performance to re-renter.
- NetworkProcess/NetworkConnectionToWebProcess.cpp: (WebKit::NetworkConnectionToWebProcess::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::didReceiveSyncMessage): (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- UIProcess/Network/NetworkProcessProxy.h:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
- WebProcess/WebPage/WebPage.h: (WebKit::WebPage::sendSyncWithDelayedReply):
- WebProcess/WebPage/WebPage.messages.in: SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply Add testing infrastructure for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag.
- WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::runJavaScriptAlert): (WebKit::WebChromeClient::runJavaScriptConfirm): (WebKit::WebChromeClient::runJavaScriptPrompt): Use new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag when sending the synchronous IPC for JS alerts / prompt / confirm. This allows the WebProcess to process incoming synchronous IPC for other processes (in particular the UIProcess) while it is blocked on those synchronous IPCs. It is safe to re-enter the WebContent process on these sync IPCs since they are triggered by JS and we return to JS right after. This should avoid UIProcess hangs when the UIProcess is sending a sync IPC to the WebContent process, which is itself stuck on the sync IPC to show a JS alert.
LayoutTests:
Add layout test coverage for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply.
Without the flag on the sendSync from the WebContent process of the
NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply IPC, the
test would hang. This is because the WebContent process sends a sync IPC to the network process,
which in turns sends one to the UIProcess, which itself sends one back to the WebContent process.
This would attempt to re-enter the WebContent process which is currently sending a sync IPC, which
is not allowed by default.
- fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt: Added.
- fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248348] by
-
- 4 edits in branches/safari-608.1-branch/Source
Cherry-pick r247793. rdar://problem/54017899
Regression(r247400): Unable to log into AIB Mobile Banking App
https://bugs.webkit.org/show_bug.cgi?id=200094
<rdar://problem/52519818>
Reviewed by Brent Fulgham.
In r247400, a change was made to only set the 'app has universal sandbox access' flag
only when issueing the sandbox extension for / actually succeeded (it usually fails
in practice). Previously, AIB Mobile Banking app was relying on this behavior to
trigger a load for file:///login which is outside their container. However, now that
the 'app has universal sandbox access' flag is no longer set, it trips our security
checks and the load gets ignored.
To address the issue, apply only the 'app has universal sandbox access' flag fix with
a linked-on-after check.
- UIProcess/Cocoa/VersionChecks.h:
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247793 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248347] by
-
- 8 edits2 adds in branches/safari-608.1-branch
Cherry-pick r247792. rdar://problem/54017900
Daring Fireball long press highlights are unnecessarily inflated due to false illegibility
https://bugs.webkit.org/show_bug.cgi?id=200064
Reviewed by Geoff Garen.
Source/WebCore:
If we consider text illegible on the given estimated background color,
we bail from doing a tightly fitted selection-only TextIndicator and
instead just paint the page without modification into the indicator,
causing ugly overlap and an excessively inflated indicator.
Change the mechanism we use to determine illegibility to be based on
a standard, instead of a constant chosen by hand 13 years ago.
Test: fast/text-indicator/text-indicator-with-low-contrast-text.html
- platform/graphics/ColorUtilities.cpp: (WebCore::luminance): Fix a typo.
(WebCore::contrastRatio):
Add a function that computes the contrast ratio given two colors using
the formula from WCAG.
- platform/graphics/ColorUtilities.h:
- rendering/TextPaintStyle.cpp: (WebCore::textColorIsLegibleAgainstBackgroundColor): Make use of WCAG's minimum legible contrast ratio instead of an arbitrary color difference cutoff for determining whether we consider text legible. It seems sensible and also considers the text on DF readable (which it seems to be to me!).
- testing/Internals.cpp: (WebCore::Internals::TextIndicatorInfo::TextIndicatorInfo):
- testing/Internals.h:
- testing/Internals.idl: Expose all of the text rects to Internals, not just the bounding rect. Expose some more TextIndicator options to Internals so that we can turn on the legibility mechanism.
LayoutTests:
- fast/text-indicator/text-indicator-with-low-contrast-text-expected.txt: Added.
- fast/text-indicator/text-indicator-with-low-contrast-text.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247792 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248346] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebCore
Cherry-pick r247756. rdar://problem/54017897
Long press hint has half blue shape in Feedly.com
https://bugs.webkit.org/show_bug.cgi?id=200053
<rdar://problem/53323369>
Reviewed by Simon Fraser.
No new tests, because TextIndicator snapshots are not yet testable.
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::paintForegroundForFragments): Paint ChildBlockBackgrounds when painting selection AND backgrounds; only exclude it when doing a selection-only paint.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247756 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248345] by
-
- 5 edits2 adds in branches/safari-608.1-branch
Cherry-pick r247730. rdar://problem/54017873
Long press hint of AirPods buy buttons are tall and narrow during animation
https://bugs.webkit.org/show_bug.cgi?id=200036
<rdar://problem/53145697>
Reviewed by Wenson Hsieh.
Source/WebCore:
New test: fast/text-indicator/text-indicator-with-tiny-child.html
- dom/Range.cpp: (WebCore::Range::borderAndTextRects const):
- dom/Range.h: Add a BoundingRectBehavior that ignores 1x1 and smaller rects.
- page/TextIndicator.cpp: (WebCore::absoluteBoundingRectForRange): Enable IgnoreTinyRects.
LayoutTests:
- fast/text-indicator/text-indicator-with-tiny-child-expected.txt: Added.
- fast/text-indicator/text-indicator-with-tiny-child.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247730 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248344] by
-
- 10 edits3 adds in branches/safari-608.1-branch
Cherry-pick r247720. rdar://problem/54017869
WebKit should strip away system font names from the pasted content
https://bugs.webkit.org/show_bug.cgi?id=199975
<rdar://problem/53336353>
Reviewed by Darin Adler.
Source/WebCore:
Cocoa HTML Writer sometimes generate system font names such as ".AppleSystemUIFont", ".SFUI-Regular", and ".SF UI Mono".
We need to strip away these font names upon paste to avoid these font names falling back to Times New Roman.
Added the code to strip these font names away in EditingStyle::mergeStyleFromRulesForSerialization, which is used by
StylizedMarkupAccumulator to generate HTML during copy. This works because WebContentReader::readWebArchive invokes
sanitizeMarkupWithArchive which inserts the pasteboard content into a temporary document then re-serializes back to HTML
using StylizedMarkupAccumulator before the actual pasting happens.
This approach has a few benefits over stripping away these font names in ReplaceSelectionCommand:
- It would only affect clients that opts-in to copy & paste sanitization. e.g. it won't affect legacy WebKit clients and those that opt out of pasteboard content sanitization.
- It preserves font names such as ".SF Blah" that a website may insert as some kind of house keeping purposes if ever. While we don't have any evidence that there is any such a website but it's a real risk nonetheless. The copy side fix would only affect cross-site and cross-app pasting, which is rare and less likely to affect real user scenarios.
- It avoids exposing bogus .Apple* or .SF* font names to websites that directly use event.clipboardData.getData. Indeed stripping away bogus markup like this is one of the key features / benefit of using copy & paste sanitization.
Test: editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts.html
- editing/EditingStyle.cpp: (WebCore::usesForbiddenSystemFontAsOnlyFontFamilyName): Added. (WebCore::EditingStyle::mergeStyleFromRulesForSerialization): Added the code to remove font-family property when needed.
- platform/graphics/FontCache.h:
- platform/graphics/cocoa/FontCacheCoreText.cpp: (WebCore::isSystemFont): Moved. (WebCore::FontCache::isSystemFontForbiddenForEditing): Added.
- platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::FontCache::isSystemFontForbiddenForEditing): Added. Always returns false.
- platform/graphics/win/FontCacheWin.cpp: (WebCore::FontCache::isSystemFontForbiddenForEditing): Ditto.
Tools:
Added a test to strip away system font names such as ".AppleSystemUIFont", ".SFUI-Regular", and ".SF UI Mono".
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:
- TestWebKitAPI/Tests/WebKitCocoa/cocoa-writer-markup-with-system-fonts.html: Added.
LayoutTests:
Added a test for ClipboardData.getData returning the original markup and execCommand('insertHTML', ~)
not stripping away system font names.
- editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts-expected.txt: Added.
- editing/pasteboard/paste-cocoa-writer-markup-with-system-fonts.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248343] by
-
- 8 edits in branches/safari-608.1-branch
Cherry-pick r247679. rdar://problem/54017903
[iOS] [WebKit2] Add limited support for -isPosition:atBoundary:inDirection: in WKContentView
https://bugs.webkit.org/show_bug.cgi?id=199993
<rdar://problem/49523528>
Reviewed by Beth Dakin.
Source/WebKit:
Add support for -isPosition:atBoundary:inDirection:, only in the cases where the given position is the start or
and position and the given granularity is UITextGranularityParagraph.
Test: EditorStateTests.ParagraphBoundary
- Shared/EditorState.cpp: (WebKit::EditorState::PostLayoutData::encode const): (WebKit::EditorState::PostLayoutData::decode):
- Shared/EditorState.h:
Add a couple of bits to indicate whether the selection start or end positions are at paragraph boundaries.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView isPosition:atBoundary:inDirection:]):
Implement this to return selectionStartIsAtParagraphBoundary or selectionEndIsAtParagraphBoundary.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::platformEditorState const):
Tools:
Add a new API test to verify the behavior of -isPosition:atBoundary:inDirection:.
- TestWebKitAPI/Tests/WebKitCocoa/EditorStateTests.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/cocoa/TestWKWebView.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247679 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248342] by
-
- 3 edits in branches/safari-608.1-branch/Source/WebKit
Cherry-pick r247657. rdar://problem/54017957
Provide correct names for UIContextMenuInteraction API replacements
https://bugs.webkit.org/show_bug.cgi?id=199966
Reviewed by Tim Horton.
We had some old incorrect names for replacements to SPI. While
here, I reordered and expanded the documentation for the new API.
- UIProcess/API/Cocoa/WKUIDelegate.h:
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247657 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 PM Changeset in webkit [248341] by
-
- 5 edits2 adds in branches/safari-608.1-branch
Cherry-pick r247651. rdar://problem/54017866
[iOS] Entering 2FA code on idmsa.apple.com causes unexpected scrolling
https://bugs.webkit.org/show_bug.cgi?id=199949
<rdar://problem/49944428>
Reviewed by Tim Horton and Megan Gardner.
Source/WebKit:
Since at least iOS 11, -[UIScrollView _adjustForAutomaticKeyboardInfo:animated:lastAdjustment:] adjusts the
scroll view's content offset to account for updated keyboard bottom insets. In WebKit, we call this method
whenever keyboard geometry changes (based on system notifications, such as UIKeyboardWillHideNotification).
When switching between focused form fields, we hide the keyboard for the previous focused element prior to
showing the keyboard for the newly focused element. This means that we will actually dismiss the keyboard in the
process of changing the focused element, which posts keyboard geometry notifications, which causes us to scroll
WKScrollView.
On iOS 12, this would be immediately followed by re-presenting the keyboard for the new focused element, which
causes us to adjust the scroll view back to its original position right away; this means that the scrolling that
happens as a result of adjusting for the keyboard insets after dismissal doesn't result in any visible change.
However, on iOS 13, after r239441 and r244546, we now defer scrolling and zooming to reveal the focused element
until later; this means the scrolling that happens as a result of initially dismissing the keyboard now causes a
consistent jump in the scroll view's scroll position (whereas on iOS 12, this only happens rarely, and the jump
is also less noticeable).
To mitigate this, we detect the case where we're moving focus from one element to another; if we're about to
show a keyboard for the newly focused element, then we should avoid scrolling as a result of the impending
"keyboard will hide" notification.
Test: fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields.html
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _keyboardChangedWithInfo:adjustScrollView:]): (-[WKWebView _keyboardWillHide:]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (shouldShowKeyboardForElement):
Add a helper to determine whether we're focusing an element which presents a "keyboard" (i.e. a UIKit input
view, as opposed to modal select pickers, modal date pickers, or fields with inputmode="none", for which we
don't show an input view).
(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
(-[WKContentView shouldIgnoreKeyboardWillHideNotification]):
LayoutTests:
Add a new layout test to verify that moving focus between horizontally adjacent form controls doesn't induce
vertical scrolling.
- fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields-expected.txt: Added.
- fast/forms/ios/no-scrolling-when-moving-focus-between-adjacent-fields.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:51 PM Changeset in webkit [248340] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebKit
Cherry-pick r247635. rdar://problem/54017879
Fix warning when importing WebKit in Swift
https://bugs.webkit.org/show_bug.cgi?id=199914
<rdar://problem/52854930>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-07-18
Reviewed by Wenson Hsieh.
- UIProcess/API/Cocoa/NSAttributedString.h: Declare NSAttributedString and update a swift name. This fix was proposed by Argyrios Kyrtzidis.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247635 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:17 PM Changeset in webkit [248339] by
-
- 2 edits in trunk/Source/WebCore
[WHLSL] Make resolveFunction in Checker faster
https://bugs.webkit.org/show_bug.cgi?id=200287
Reviewed by Robin Morisset.
This patch makes compute_boids faster by making function overload
resolution faster inside the Checker. It's a ~6ms speedup in the
checker. The main idea is to limit the number of overloads we need
to look for by using a hash table that describes a function's type
instead of just using a hash table keyed by a function's name.
The interesting implementation detail here is we must construct entries
in the hash table such that they still allow constants to be resolved to
various types. This means that the key in the hash table must normalize
the vector of types it uses to express a function's identity. The normalization
rules are:
- int => float
- uint => float
- T* => float*
- T[] => float*
The first two rules are because int constants can be matched against
the float and uint types. The latter two rules are because the null
literal can be matched against any pointer or any array reference
(we pick float* arbitrarily). Even though it seems like these
normalization rules would drastically broaden the efficacy of the hash
table, we still see a 100x reduction in the number of overloads we must
resolve inside compute_boids. We go from having to resolve 400,000
overloads to just resolving 4,000.
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::FunctionKey::FunctionKey):
(WebCore::WHLSL::FunctionKey::isEmptyValue const):
(WebCore::WHLSL::FunctionKey::isHashTableDeletedValue const):
(WebCore::WHLSL::FunctionKey::hash const):
(WebCore::WHLSL::FunctionKey::operator== const):
(WebCore::WHLSL::FunctionKey::Hash::hash):
(WebCore::WHLSL::FunctionKey::Hash::equal):
(WebCore::WHLSL::FunctionKey::Traits::isEmptyValue):
(WebCore::WHLSL::Checker::Checker):
(WebCore::WHLSL::Checker::wrappedFloatType):
(WebCore::WHLSL::Checker::genericPointerType):
(WebCore::WHLSL::Checker::normalizedTypeForFunctionKey):
(WebCore::WHLSL::Checker::resolveFunction):
(WebCore::WHLSL::Checker::finishVisiting):
(WebCore::WHLSL::Checker::visit):
(WebCore::WHLSL::resolveFunction): Deleted.
- 8:15 PM Changeset in webkit [248338] by
-
- 7 edits2 adds2 deletes in trunk
[iPadOS] slides.google.com: tapping near cursor in a slide title focuses the speaker notes
https://bugs.webkit.org/show_bug.cgi?id=200216
Reviewed by Wenson Hsieh.
Source/WebKit:
The bug was caused by a race condition between Google slides removing inputmode="none" from the hidden
content editable and updating the focused region upon receiving a pointerup event, which happens after
the Google slides had already updated its page layout & coordinates based on new visual viewport with
the software keyboard's boudning rect taken into account.
Delay bringing up the software keyboard for a inputmode change until all touches are released.
In the future, we could consider also delaying the software keyboard to be brought in general until
touchend / pointerup events are dispatched but this is rather risky since that could affact random
other websites while Google suites is the only major site to make use of inputmode="none".
This patch also reverts r243044, which was added for Google slides, since it's no longer needed and
interferes with this patch by adding another way to bring up the software keyboard.
Note: Adjusting touchend / pointerup coordinates while the keyboard is being brought up doesn't work
because the page had already updated the layout by then based on new visual viewport size.
Test: fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleTouchEventSynchronously): Call didReleaseAllTouchPoints when all
touches are released.
(WebKit::WebPageProxy::handleTouchEventAsynchronously): Ditto.
(WebKit::WebPageProxy::handleTouchEvent): Ditto.
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::didReleaseAllTouchPoints): Added for non-iOS platforms.
(WebKit::WebPageProxy::m_pendingInputModeChange): Added. Used when inputmode is changed while
there is an on-going touch interaction.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::elementDidFocus): Clear m_pendingInputModeChange when a new element is focused.
(WebKit::WebPageProxy::elementDidBlur): Ditto for bluring.
(WebKit::WebPageProxy::focusedElementDidChangeInputMode): Don't bring up the software keyboard now if
there are on-going touches by exiting early after setting m_pendingInputModeChange.
(WebKit::WebPageProxy::didReleaseAllTouchPoints): Bring up the software keyboard if inputmode
had changed from "none" to something else.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::dispatchTouchEvent): Removed the code added by r243044.
LayoutTests:
Added a new regression test and removed the one added for r243044.
- fast/events/touch/ios/show-keyboard-after-preventing-touchstart-expected.txt: Removed.
- fast/events/touch/ios/show-keyboard-after-preventing-touchstart.html: Removed.
- fast/forms/ios/inputmode-change-update-keyboard-after-pointerup-expected.txt: Added.
- fast/forms/ios/inputmode-change-update-keyboard-after-pointerup.html: Added.
- fast/forms/ios/inputmode-change-update-keyboard.html: Fixed the test for manual testing.
- 7:48 PM Changeset in webkit [248337] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] sampling-profiler can see garbage Wasm::Callee* pointer which is HashTable deleted / empty values
https://bugs.webkit.org/show_bug.cgi?id=200494
Reviewed by Saam Barati.
The sampling-profiler can see a garbage pointer which is like Wasm::Callee*. This can be filtered by HashSet<Callee*>.
But this is safe only when the garbage pointer is not deleted / empty values. We saw occasional crash with JetStream2/tsf-wasm.
This patch filters out these values withHashSet<Callee*>::isValidValue.
- wasm/WasmCalleeRegistry.h:
(JSC::Wasm::CalleeRegistry::isValidCallee):
- 6:44 PM Changeset in webkit [248336] by
-
- 5 edits in trunk
ASSERTION FAILED: m_observers.isEmpty() if WKPageSetPageStateClient is used
https://bugs.webkit.org/show_bug.cgi?id=200465
Reviewed by Alex Christensen.
Source/WebKit:
PageLoadState::Observer should be removed before destructing
WebPageProxy.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::~WebPageProxy): Call
setPageLoadStateObserver with nullptr to remove
PageLoadState::Observer.
Tools:
- TestWebKitAPI/Tests/WebKit/PageLoadState.cpp:
(TestWebKitAPI::WebKit.PageLoadState): Set PageStateClient before
finishing the test.
- TestWebKitAPI/win/PlatformWebViewWin.cpp:
(TestWebKitAPI::PlatformWebView::~PlatformWebView): Release m_view.
- 6:16 PM Changeset in webkit [248335] by
-
- 2 edits in trunk/Source/WebCore
Fix 32-bit Linux build after r248282
https://bugs.webkit.org/show_bug.cgi?id=200491
Patch by Loïc Yhuel <loic.yhuel@softathome.com> on 2019-08-06
Reviewed by Youenn Fablet.
minInterToneGapMs must be a size_t like interToneGap for std::max call.
The other constants are updated for consistency, even if the compiler
was able to cast them automatically.
- Modules/mediastream/RTCDTMFSender.cpp:
- 5:33 PM Changeset in webkit [248334] by
-
- 7 edits in branches/safari-608.1-branch/Source
Versioning.
- 5:33 PM Changeset in webkit [248333] by
-
- 2 edits in trunk/Source/WebKit
Add release assertions to help catch a bug in our WebProcessCache implementation
https://bugs.webkit.org/show_bug.cgi?id=200483
Reviewed by Geoffrey Garen.
Add release assertions to help catch a bug in our WebProcessCache implementation. We
have evidence (rdar://problem/53962494) that we have processes with a page which
starts a provisional load while the process is in the WebProcessCache. This should
not be possible.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setIsInProcessCache):
(WebKit::WebProcessProxy::addExistingWebPage):
- 5:31 PM Changeset in webkit [248332] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 5:31 PM Changeset in webkit [248331] by
-
- 1 copy in tags/Safari-608.1.43
Tag Safari-608.1.43.
- 5:17 PM Changeset in webkit [248330] by
-
- 4 edits in trunk/Source
Context menu on a universal link produces a blank preview
https://bugs.webkit.org/show_bug.cgi?id=200485
<rdar://problem/53699620>
Reviewed by Dean Jackson.
Source/WebCore/PAL:
Define iTunesStoreURL from CoreServices.
- pal/spi/cocoa/LaunchServicesSPI.h:
Source/WebKit:
If the context menu is activated on an iTunesStore URL, pass it
on to DataDetectors, who should know how to handle it.
Two drive-by fixes:
- make it clear that early returns do not produce a value. Instead call the completion handler first, then return.
- The new API DataDetectors case doesn't need to worry about hiding link previews as DataDetectors itself will handle that.
- UIProcess/ios/WKContentViewInteraction.mm: If the URL is an iTunesStoreURL
(as defined by CoreServices), let DataDetectors handle it.
(-[WKContentView assignLegacyDataForContextMenuInteraction]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView continueContextMenuInteractionWithDataDetectors:]): New method to
use DataDetectors if possible.
- 5:06 PM Changeset in webkit [248329] by
-
- 2 edits in trunk/Source/WebKit
Avoid unnecessary ResourceRequest copy under NetworkResourceLoader::isCrossOriginPrefetch()
https://bugs.webkit.org/show_bug.cgi?id=200478
Reviewed by Youenn Fablet.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::isCrossOriginPrefetch const):
- 4:46 PM Changeset in webkit [248328] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Show radius values in box model metrics view
https://bugs.webkit.org/show_bug.cgi?id=160993
<rdar://problem/27919035>
Reviewed by Brian Burg.
- UserInterface/Views/BoxModelDetailsSectionRow.js:
(WI.BoxModelDetailsSectionRow.prototype._getPropertyValue): Added.
(WI.BoxModelDetailsSectionRow.prototype._getPropertyValueAsPx):
(WI.BoxModelDetailsSectionRow.prototype._getBox):
(WI.BoxModelDetailsSectionRow.prototype._getComponentPrefix): Added.
(WI.BoxModelDetailsSectionRow.prototype._getComponentSuffix):
(WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
(WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
(WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement):
(WI.BoxModelDetailsSectionRow.prototype._applyUserInput):
(WI.BoxModelDetailsSectionRow.prototype._applyUserInput.inspectedPage_node_toggleInlineStyleProperty):
- UserInterface/Views/BoxModelDetailsSectionRow.css:
(.details-section .row.box-model .box): Added.
(.details-section .row.box-model .box > .label): Added.
(.details-section .row.box-model .box.position): Added.
(.details-section .row.box-model .box.margin): Added.
(.details-section .row.box-model:not(.hovered) .box.margin, .details-section .row.box-model .box.margin.active): Added.
(.details-section .row.box-model .box.border): Added.
(.details-section .row.box-model:not(.hovered) .box.border, .details-section .row.box-model .box.border.active): Added.
(.details-section .row.box-model .box.border > .label): Added.
(.details-section .row.box-model .box.border.has-top-left-radius, .details-section .row.box-model .box.border.has-top-left-radius .box): Added.
(.details-section .row.box-model .box.border.has-top-right-radius, .details-section .row.box-model .box.border.has-top-right-radius .box): Added.
(.details-section .row.box-model .box.border.has-bottom-right-radius, .details-section .row.box-model .box.border.has-bottom-right-radius .box): Added.
(.details-section .row.box-model .box.border.has-bottom-left-radius, .details-section .row.box-model .box.border.has-bottom-left-radius .box): Added.
(.details-section .row.box-model .box.padding): Added.
(.details-section .row.box-model:not(.hovered) .box.padding, .details-section .row.box-model .box.padding.active): Added.
(.details-section .row.box-model .box.content): Added.
(.details-section .row.box-model:not(.hovered) .box.content, .details-section .row.box-model .box.content.active): Added.
(.details-section .row.box-model :matches(.top, .right, .bottom, .left)): Added.
(.details-section .row.box-model :matches(.top, .right, .bottom, .left):not(.editing), .details-section .row.box-model :matches(.top-left, .top-right, .bottom-right, .bottom-left)): Added.
(.details-section .row.box-model :matches(.top-left, .top-right, .bottom-right, .bottom-left)): Added.
(.details-section .row.box-model :matches(.top-left, .top-right)): Added.
(.details-section .row.box-model :matches(.bottom-left, .bottom-right):not(.editing)): Added.
(.details-section .row.box-model :matches(.bottom-left, .bottom-right).editing): Added.
(.details-section .row.box-model :matches(.top-left, .bottom-left):not(.editing)): Added.
(.details-section .row.box-model :matches(.top-left, .bottom-left).editing): Added.
(.details-section .row.box-model :matches(.top-right, .bottom-right):not(.editing)): Added.
(.details-section .row.box-model :matches(.top-right, .bottom-right).editing): Added.
(@media (prefers-color-scheme: dark) .details-section .row.box-model .box): Added.
(@media (prefers-color-scheme: dark) .details-section .row.box-model:not(.hovered) .box:matches(.margin, .border, .padding, .content), .details-section .row.box-model .box.active:matches(.margin, .border, .padding, .content)): Added.
(@media (prefers-color-scheme: dark) .details-section .row.box-model .box.margin): Added.
(@media (prefers-color-scheme: dark) .details-section .row.box-model .box.border): Added.
(.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)): Deleted.
(.details-section .row.box-model .position): Deleted.
(.details-section .row.box-model .margin): Deleted.
(.details-section .row.box-model:not(.hovered) .margin, .details-section .row.box-model .margin.active): Deleted.
(.details-section .row.box-model .border): Deleted.
(.details-section .row.box-model:not(.hovered) .border, .details-section .row.box-model .border.active): Deleted.
(.details-section .row.box-model .padding): Deleted.
(.details-section .row.box-model:not(.hovered) .padding, .details-section .row.box-model .padding.active): Deleted.
(.details-section .row.box-model .content): Deleted.
(.details-section .row.box-model:not(.hovered) .content, .details-section .row.box-model .content.active): Deleted.
(.details-section .row.box-model :matches(.content span, .top, .right, .bottom, .left)): Deleted.
(.details-section .row.box-model :matches(.right, .left)): Deleted.
(.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content), .details-section .row.box-model .active:matches(.margin, .border, .padding, .content)): Deleted.
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.update):
Ensure that the_valueis updated whenever the_rawValueis updated.
- 4:38 PM Changeset in webkit [248327] by
-
- 18 edits1 move in trunk
Unreviewed, rolling out r248289.
https://bugs.webkit.org/show_bug.cgi?id=200488
Broke internal builds (Requested by drousso on #webkit).
Reverted changeset:
"Web Inspector: Styles: show @supports CSS groupings"
https://bugs.webkit.org/show_bug.cgi?id=200419
https://trac.webkit.org/changeset/248289
- 4:24 PM Changeset in webkit [248326] by
-
- 5 edits3 adds in trunk/PerformanceTests
Make JSC memory benchmark available on OpenSource
https://bugs.webkit.org/show_bug.cgi?id=195012
Reviewed by Saam Barati.
This patch upstreams the RAMification memory benchmark to open source.
The prior RAMification.py driver script in the Internal directory has been moved here
with the device execution code seperated out to a new Internal driver script.
As a result, command line argument parsing as well as acting on the resulting argument
values has changed. The remote device Runner creates an ArgumentParser object that is
passed through main(). In main(), if we have an ArgumentParser, we use it otherwise we
create one for benchmarking locally. The arguments object returned from argument
parsing is now passed to the Runner constructor so it can extract the settings appropriate
for that particular runner.
Added some sane argument default values for the JSC command patch and the JetStream2
source directory.
Updated the Lua tests to eliminate the testing harness and its overhead, matching what was
done in the Internal tree.
- JetStream2/LuaJSFight/hello_world.js:
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
- JetStream2/LuaJSFight/list_search.js:
(run): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
- JetStream2/LuaJSFight/lists.js:
(): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
- JetStream2/LuaJSFight/richards.js: Added.
(runRichards):
(Scheduler):
(Scheduler.prototype.addIdleTask):
(Scheduler.prototype.addWorkerTask):
(Scheduler.prototype.addHandlerTask):
(Scheduler.prototype.addDeviceTask):
(Scheduler.prototype.addRunningTask):
(Scheduler.prototype.addTask):
(Scheduler.prototype.schedule):
(Scheduler.prototype.release):
(Scheduler.prototype.holdCurrent):
(Scheduler.prototype.suspendCurrent):
(Scheduler.prototype.queue):
(TaskControlBlock):
(TaskControlBlock.prototype.setRunning):
(TaskControlBlock.prototype.markAsNotHeld):
(TaskControlBlock.prototype.markAsHeld):
(TaskControlBlock.prototype.isHeldOrSuspended):
(TaskControlBlock.prototype.markAsSuspended):
(TaskControlBlock.prototype.markAsRunnable):
(TaskControlBlock.prototype.run):
(TaskControlBlock.prototype.checkPriorityAdd):
(TaskControlBlock.prototype.toString):
(IdleTask):
(IdleTask.prototype.run):
(IdleTask.prototype.toString):
(DeviceTask):
(DeviceTask.prototype.run):
(DeviceTask.prototype.toString):
(WorkerTask):
(WorkerTask.prototype.run):
(WorkerTask.prototype.toString):
(HandlerTask):
(HandlerTask.prototype.run):
(HandlerTask.prototype.toString):
(Packet):
(Packet.prototype.addTo):
(Packet.prototype.toString):
- JetStream2/LuaJSFight/string_lists.js:
(): Deleted.
(Benchmark.prototype.runIteration): Deleted.
(Benchmark): Deleted.
- JetStream2/RAMification.py: Added.
(mean):
(geomean):
(frameworkPathFromExecutablePath):
(parseArgs):
(parseArgs.optStrToBool):
(BaseRunner):
(BaseRunner.init):
(BaseRunner.setup):
(BaseRunner.setEnv):
(BaseRunner.unsetEnv):
(BaseRunner.resetForTest):
(BaseRunner.processLine):
(BaseRunner.setReturnCode):
(BaseRunner.getResults):
(LocalRunner):
(LocalRunner.init):
(LocalRunner.runOneTest):
(main):
(main.runTestList):
- JetStream2/init.py: Added.
- 4:20 PM Changeset in webkit [248325] by
-
- 2 edits in trunk/Tools
Unreviewed, a build fix after r248308
Don't use WK_ENGINEERING_CODE_SIGN_IDENTITY for Production build.
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
- 3:40 PM Changeset in webkit [248324] by
-
- 4 edits in trunk
Unreviewed, a build fix after r248319
Use HAVE(DATA_PROTECTION_KEYCHAIN) instead of HAVE_DATA_PROTECTION_KEYCHAIN.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
Tools:
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):
- 3:28 PM Changeset in webkit [248323] by
-
- 1 copy in tags/Safari-608.2.3
Tag Safari-608.2.3.
- 3:27 PM Changeset in webkit [248322] by
-
- 1 delete in tags/Safari-608.2.3
Delete tag.
- 3:26 PM Changeset in webkit [248321] by
-
- 47 edits1 add in branches/safari-608-branch
Apply patch. rdar://problem/53992160
- 3:20 PM Changeset in webkit [248320] by
-
- 2 edits2 adds in trunk/Source/JavaScriptCore
Web Inspector: allow comments in protocol JSON
https://bugs.webkit.org/show_bug.cgi?id=200104
Reviewed by Brian Burg.
- inspector/scripts/generate-inspector-protocol-bindings.py:
(generate_from_specification.load_specification):
- inspector/scripts/tests/generic/should-strip-comments.json: Added.
- inspector/scripts/tests/generic/expected/should-strip-comments.json-result: Added.
- 3:12 PM Changeset in webkit [248319] by
-
- 6 edits in trunk
Unreviewed, a build fix after r248308
Use kSecUseDataProtectionKeychain for iOS 13 and macOS Catalina or newer.
Source/WebKit:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
Source/WTF:
- wtf/Platform.h:
Tools:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):
- 3:04 PM Changeset in webkit [248318] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, fix internal iOS build after r248308.
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
- 2:57 PM Changeset in webkit [248317] by
-
- 2 edits in trunk/Tools
Enable XCBuild for
makeandbuild-webkitbuilds
https://bugs.webkit.org/show_bug.cgi?id=200476
<rdar://problem/50771065>
Reviewed by Jonathan Bedard.
All projects have now been tested under XCBuild and successfully
build. Enable the use of XCBuild when performing builds withmakeor
build-webkitand when using a sufficient version of Xcode. We set
this version to Xcode 11 since Xcode 10 -- even though it supports
XCBuild -- does not support a build facility needed to build WebKit
(Bug 197072, Bug 197116, Bug 197340).
Do not enable XCBuild in the Xcode projects themselves since these
projects may need to be used under older versions of Xcode and there's
no way to make those project changes sensitive to the version of Xcode
being used. This means that builds performed in the Xcode IDE will not
use XCBuild.
- Scripts/webkitdirs.pm:
(canUseXCBuild):
- 2:45 PM Changeset in webkit [248316] by
-
- 10 edits in trunk
Fix inefficiency in HTTPHeaderMap::set(CFStringRef, const String&)
https://bugs.webkit.org/show_bug.cgi?id=200475
Reviewed by Darin Adler.
Source/WebCore:
In the case where CFStringGetCStringPtr() succeeds in returning us a pointer
to the CFStringRef underlying characters but it is not a common header, we
would fall back to calling HTTPHeaderMap::set(const String&, const String&)
which would unecessarily call findHTTPHeaderName() again to try and determine
if it is a common header. Avoid this by introducing a new setUncommonHeader()
private method and calling this one instead. Also got rid of some code
duplication at the same time.
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::set):
(WebCore::HTTPHeaderMap::setUncommonHeader):
- platform/network/HTTPHeaderMap.h:
- platform/network/HTTPParsers.cpp:
(WebCore::parseHTTPHeader):
- testing/MockCDMFactory.cpp:
(WebCore::MockCDMInstance::setServerCertificate):
Source/WTF:
Add convenience constuctor to StringView which takes in a const char*
and an unsigned length, similarly to what we already have for String.
- wtf/URL.cpp:
(WTF::URL::protocolIs const):
(WTF::protocolIsInternal):
- wtf/text/StringView.h:
(WTF::StringView::StringView):
(WTF::StringView::empty):
Tools:
- TestWebKitAPI/Tests/WTF/StringView.cpp:
(TestWebKitAPI::stringViewFromLiteral):
(TestWebKitAPI::stringViewFromUTF8):
- 2:34 PM Changeset in webkit [248315] by
-
- 2 edits in trunk/Tools
Update my status in contributors.json to reviewer.
Regained the status after following the procedure for inactive contributors.
See r247136 for further explanation.
- Scripts/webkitpy/common/config/contributors.json:
- 2:28 PM Changeset in webkit [248314] by
-
- 1 copy in tags/Safari-608.2.3
Tag Safari-608.2.3.
- 2:25 PM Changeset in webkit [248313] by
-
- 7 edits in branches/safari-608-branch/Source
Versioning.
- 1:38 PM Changeset in webkit [248312] by
-
- 3 edits in trunk/LayoutTests
Updating Test Expectations for <rdar://53957264>, <rdar://53946482>, <rdar://53866783>
Unreviewed Test Gardening.
- platform/ios-12/TestExpectations:
- platform/ios/TestExpectations:
- 1:33 PM Changeset in webkit [248311] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: RTL: go-to arrows and expand triangles in Computed panel should match their context
https://bugs.webkit.org/show_bug.cgi?id=200449
Reviewed by Joseph Pecoraro.
- UserInterface/Views/ComputedStyleSection.css:
(body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button): Deleted.
- UserInterface/Views/Main.css:
(body[dir=rtl] [dir=ltr] .go-to-arrow): Added.
In the RTL mode, LTR "islands" should have their contents to be still LTR.
- 1:31 PM Changeset in webkit [248310] by
-
- 5 edits2 deletes in trunk/Source/WebCore
[WHLSL] Remove the auto initialize variables pass
https://bugs.webkit.org/show_bug.cgi?id=200472
Reviewed by Robin Morisset.
From a separation of concerns perspective, it's a bit nicer to make variables
without initializers call their default constructors as a transformation over the AST.
This removes the need for the lowering to need to worry about such things. However,
changing metal lowering to deal with this is trivial. It means we need to change one
line of code in Metal code generation, and we get to remove a ~50 LOC AST pass.
Also, in this case, it saves us from the compile time hit of having to run the
auto initialize variables phase, which takes ~1.2ms on compute_boids.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
- Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.cpp: Removed.
- Modules/webgpu/WHLSL/WHLSLAutoInitializeVariables.h: Removed.
- Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 1:18 PM Changeset in webkit [248309] by
-
- 7 edits1 copy4 adds in trunk/Websites/webkit.org
[WebGPU] Fix up demos on and add compute demo to webkit.org/demos
https://bugs.webkit.org/show_bug.cgi?id=200454
Reviewed by Jon Lee.
Add the compute-blur demo.
Ensure that WebGPU demos will work on upcoming STP release.
- demos/webgpu/compute-blur.html: Added.
- demos/webgpu/css/style.css: Sync with internal demo repository stylesheet.
(body):
(canvas):
(body.error img):
(body.error input):
(#error p):
- demos/webgpu/hello-cube.html:
- demos/webgpu/hello-triangle.html:
- demos/webgpu/index.html:
- demos/webgpu/resources/compute-blur.png: Added.
- demos/webgpu/resources/hello-cube.png:
- demos/webgpu/resources/textured-cube.png: Added.
- demos/webgpu/scripts/compute-blur.js: Added.
(async.init):
(async.loadImage):
(setUpCompute):
(async.computeBlur):
(async.setUniforms):
(createShaderCode):
- demos/webgpu/scripts/hello-triangle.js:
(async.helloTriangle):
- demos/webgpu/textured-cube.html: Renmaed from Websites/webkit.org/demos/webgpu/hello-cube.html.
- 12:54 PM Changeset in webkit [248308] by
-
- 16 edits1 add in trunk
[WebAuthN] Enable LocalAuthenticator for macOS
https://bugs.webkit.org/show_bug.cgi?id=182772
<rdar://problem/43347920>
Reviewed by Brent Fulgham.
Source/WebKit:
This patch enables LocalAuthenticator for macOS. The majority
of this patch is to tweak macOS keychain to use the modern one.
- Configurations/WebKit.xcconfig:
- Platform/spi/Cocoa/DeviceIdentitySPI.h:
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticatorInternal::toVector):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):
- UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:
(WebKit::LocalConnection::getUserConsent const):
(WebKit::LocalConnection::getAttestation const):
- UIProcess/WebAuthentication/Cocoa/LocalService.mm:
(WebKit::LocalService::isAvailable):
- UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:
(WebKit::MockLocalConnection::getAttestation const):
- config.h:
Source/WTF:
- wtf/Platform.h:
Adds HAVE_DEVICE_IDENTITY.
- wtf/spi/cocoa/SecuritySPI.h:
Adds a SPI for telling macOS keychain to use the modern one.
Tools:
Add an entitlement file to WebKitTestRunner such that it can access
the modern macOS keychain.
- WebKitTestRunner/Configurations/WebKitTestRunner.entitlements: Added.
- WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
- WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistsInKeychain):
LayoutTests:
Enable existing local authenticator tests for macOS. Since OpenSource bots
don't have the internal setting to include restricted entitlements, tests
will fail on OpenSource bots.
- platform/mac-wk2/TestExpectations:
- 12:04 PM Changeset in webkit [248307] by
-
- 18 edits in trunk/Source/WebCore
WHLSL Metal code generation unnecessarily does string copies by passing partial results as Strings
https://bugs.webkit.org/show_bug.cgi?id=200471
Reviewed by Saam Barati.
Avoid string copies by passing a single StringBuilder all the way through Metal code
generation and only converting to a String when passing the constructed shader to Metal
API.
Where possible, use StringView in lieu of String for temporary strings being passed to
the StringBuilder to avoid the allocation overhead of StringImpl.
- Modules/webgpu/WHLSL/AST/WHLSLAddressSpace.h:
(WebCore::WHLSL::AST::toString):
Switch to StringView.
- Modules/webgpu/WHLSL/AST/WHLSLBuiltInSemantic.h:
(WebCore::WHLSL::AST::BuiltInSemantic::toString const):
Switch to StringView.
- Modules/webgpu/WHLSL/AST/WHLSLEntryPointType.h:
(WebCore::WHLSL::AST::toString):
Switch to StringView.
- Modules/webgpu/WHLSL/AST/WHLSLPointerType.h:
Remove unnecessary "private:".
- Modules/webgpu/WHLSL/AST/WHLSLResourceSemantic.h:
(WebCore::WHLSL::AST::ResourceSemantic::toString):
Switch to StringView.
- Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.cpp:
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceHelperTypes):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitResourceSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitBuiltInsSignature):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledInputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitMangledOutputPath):
(WebCore::WHLSL::Metal::EntryPointScaffolding::emitUnpackResourcesAndNamedBuiltIns):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitHelperTypes):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitSignature):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitUnpack):
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::emitPack):
(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceHelperTypes): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::resourceSignature): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::builtInsSignature): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledInputPath): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::mangledOutputPath): Deleted.
(WebCore::WHLSL::Metal::EntryPointScaffolding::unpackResourcesAndNamedBuiltIns): Deleted.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::helperTypes): Deleted.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::signature): Deleted.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::unpack): Deleted.
(WebCore::WHLSL::Metal::VertexEntryPointScaffolding::pack): Deleted.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::helperTypes): Deleted.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::signature): Deleted.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::unpack): Deleted.
(WebCore::WHLSL::Metal::FragmentEntryPointScaffolding::pack): Deleted.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::helperTypes): Deleted.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::signature): Deleted.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::unpack): Deleted.
(WebCore::WHLSL::Metal::ComputeEntryPointScaffolding::pack): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLEntryPointScaffolding.h:
Rather than have scaffolding return strings, pass in StringBuilders everywhere.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::FunctionDefinitionWriter):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::emitConstantExpressionString):
(WebCore::WHLSL::Metal::generateMetalFunctionsMapping):
(WebCore::WHLSL::Metal::emitSharedMetalFunctions):
(WebCore::WHLSL::Metal::emitMetalFunctions):
(WebCore::WHLSL::Metal::FunctionDeclarationWriter::FunctionDeclarationWriter): Deleted.
(WebCore::WHLSL::Metal::FunctionDeclarationWriter::toString): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::toString): Deleted.
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::constantExpressionString): Deleted.
(WebCore::WHLSL::Metal::RenderFunctionDefinitionWriter::RenderFunctionDefinitionWriter): Deleted.
(WebCore::WHLSL::Metal::ComputeFunctionDefinitionWriter::ComputeFunctionDefinitionWriter): Deleted.
(WebCore::WHLSL::Metal::sharedMetalFunctions): Deleted.
(WebCore::WHLSL::Metal::metalFunctions): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.h:
Rather than returning Strings from function generation functions, pass in StringBuilders everywhere.
- Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.cpp:
(WebCore::WHLSL::Metal::metalCodeProlog):
(WebCore::WHLSL::Metal::dumpMetalCodeIfNeeded):
(WebCore::WHLSL::Metal::generateMetalCode):
(WebCore::WHLSL::Metal::generateMetalCodeShared): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLMetalCodeGenerator.h:
Switch RenderMetalCode and ComputeMetalCode to contain StringBuilders to allow
delaying conversion to String to the latest point possible.
- Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.cpp:
(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDeclarations):
(WebCore::WHLSL::Metal::TypeNamer::emitUnnamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitNamedTypeDefinition):
(WebCore::WHLSL::Metal::TypeNamer::emitAllUnnamedTypeDefinitions):
(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypeDefinitions):
(WebCore::WHLSL::Metal::TypeNamer::emitMetalTypes):
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::MetalTypeDeclarationWriter): Deleted.
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::toString): Deleted.
(WebCore::WHLSL::Metal::MetalTypeDeclarationWriter::visit): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::metalTypeDeclarations): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::metalTypeDefinitions): Deleted.
(WebCore::WHLSL::Metal::TypeNamer::metalTypes): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLTypeNamer.h:
Rather than returning Strings from function generation functions, pass in StringBuilders everywhere.
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parseResourceSemantic):
Remove use of _str, which allocates a String, and just use a StringView directly.
- Modules/webgpu/WHLSL/WHLSLPrepare.h:
Switch RenderPrepareResult and ComputePrepareResult to contain StringBuilders to allow
delaying conversion to String to the latest point possible.
- platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:
(WebCore::trySetFunctions):
- platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
(WebCore::trySetFunctions):
Convert StringBuilders to String at the last moment necessary. Adds a FIXME to improve
in the future by adding direct conversion from StringBuilder to NSString to avoid another
copy.
- 10:57 AM Changeset in webkit [248306] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, drop change to TestExpectations that landed accidentally with r248276.
- platform/wk2/TestExpectations:
- 10:56 AM Changeset in webkit [248305] by
-
- 5 edits in trunk/Tools
[results.webkit.org Timeline] Performance improvements
https://bugs.webkit.org/show_bug.cgi?id=200406
Patch by Zhifei Fang <zhifei_fang@apple.com> on 2019-08-06
Reviewed by Jonathan Bedard.
- Unhook the scroll event when a series/axis have been removed from the container
- Fix the axis's cache data structure out of sync.
- Use position:sticky to reduce the scrolling blink when update the presenter's transform
- Use intersection observer to detect if the canvas on screen or not, if a canvas is not on the screen, we do nothing, this will eliminate render requests we send out.
- resultsdbpy/resultsdbpy/view/static/library/js/Ref.js:
(Signal.prototype.removeListener):
(prototype.stopAction): Unregsiter an action handler
(Ref):
(Ref.prototype.apply):
(Ref.prototype.destory):
- resultsdbpy/resultsdbpy/view/static/library/js/components/BaseComponents.js:
(ApplyNewChildren):
- resultsdbpy/resultsdbpy/view/static/library/js/components/TimelineComponents.js:
(Timeline.CanvasSeriesComponent):
- 10:37 AM Changeset in webkit [248304] by
-
- 7 edits in trunk/Source
[Win] Fix AppleWin build
https://bugs.webkit.org/show_bug.cgi?id=200455
Reviewed by Alex Christensen.
- CMakeLists.txt:
Source/JavaScriptCore:
- shell/CMakeLists.txt:
Source/WebKitLegacy:
- PlatformWin.cmake:
- WebKitLegacy.vcxproj/WebKitLegacy.proj:
- 10:37 AM Changeset in webkit [248303] by
-
- 16 edits2 copies in trunk/Source/WebCore
[WHLSL] Reduce the number of variables that make it into the global struct by skipping stdlib functions and internal uses of MakePointerExpression/MakeArrayReference
https://bugs.webkit.org/show_bug.cgi?id=200463
Reviewed by Myles C. Maxfield.
This patch makes it so that we put fewer variables in the global struct.
This decreases end-to-end running time in compute_boids by 30% (with p = 0.0001).
We achieve this in two ways:
- We track if each function is user code or "standard library" code. We also
count native functions as the standard library. We know a priori that the
standard library never escapes any variables. So the preserve variable
lifetimes phase skips analyzing all standard library functions and also
skips passing the global struct to any standard library functions.
- We internally emit MakePointerExpression/MakeArrayReferenceExpression nodes in
the compiler in various phases. We sometimes emit these nodes in such a way
that we know that this address-of expression does not cause the variable to
escape. We now mark each address-of expressions as either:
- Conservatively escaping. We conservatively do this for all user code.
- Not escaping. This means that this address-of operation definitely does
not escape the variable. If a variable never has an escaping use, we will
omit putting this variable in the struct.
- Modules/webgpu/WHLSL/AST/WHLSLAddressEscapeMode.h: Added.
- Modules/webgpu/WHLSL/AST/WHLSLFunctionDeclaration.h:
(WebCore::WHLSL::AST::FunctionDeclaration::FunctionDeclaration):
(WebCore::WHLSL::AST::FunctionDeclaration::parsingMode const):
- Modules/webgpu/WHLSL/AST/WHLSLMakeArrayReferenceExpression.h:
(WebCore::WHLSL::AST::MakeArrayReferenceExpression::MakeArrayReferenceExpression):
(WebCore::WHLSL::AST::MakeArrayReferenceExpression::mightEscape const):
- Modules/webgpu/WHLSL/AST/WHLSLMakePointerExpression.h:
(WebCore::WHLSL::AST::MakePointerExpression::MakePointerExpression):
(WebCore::WHLSL::AST::MakePointerExpression::mightEscape const):
- Modules/webgpu/WHLSL/WHLSLChecker.cpp:
(WebCore::WHLSL::resolveWithOperatorAnderIndexer):
(WebCore::WHLSL::resolveWithOperatorLength):
(WebCore::WHLSL::resolveWithReferenceComparator):
- Modules/webgpu/WHLSL/WHLSLParser.cpp:
(WebCore::WHLSL::Parser::parse):
(WebCore::WHLSL::Parser::parseComputeFunctionDeclaration):
(WebCore::WHLSL::Parser::parseVertexOrFragmentFunctionDeclaration):
(WebCore::WHLSL::Parser::parseRegularFunctionDeclaration):
(WebCore::WHLSL::Parser::parseOperatorFunctionDeclaration):
(WebCore::WHLSL::Parser::parsePossiblePrefix):
- Modules/webgpu/WHLSL/WHLSLParser.h:
- Modules/webgpu/WHLSL/WHLSLParsingMode.h: Added.
- Modules/webgpu/WHLSL/WHLSLPrepare.cpp:
(WebCore::WHLSL::prepareShared):
- Modules/webgpu/WHLSL/WHLSLPreserveVariableLifetimes.cpp:
- Modules/webgpu/WHLSL/WHLSLPropertyResolver.cpp:
(WebCore::WHLSL::wrapAnderCallArgument):
(WebCore::WHLSL::modify):
(WebCore::WHLSL::PropertyResolver::visit):
- Modules/webgpu/WHLSL/WHLSLStandardLibraryUtilities.cpp:
(WebCore::WHLSL::includeStandardLibrary):
- Modules/webgpu/WHLSL/WHLSLSynthesizeArrayOperatorLength.cpp:
(WebCore::WHLSL::synthesizeArrayOperatorLength):
- Modules/webgpu/WHLSL/WHLSLSynthesizeConstructors.cpp:
(WebCore::WHLSL::synthesizeConstructors):
- Modules/webgpu/WHLSL/WHLSLSynthesizeEnumerationFunctions.cpp:
(WebCore::WHLSL::synthesizeEnumerationFunctions):
- Modules/webgpu/WHLSL/WHLSLSynthesizeStructureAccessors.cpp:
(WebCore::WHLSL::synthesizeStructureAccessors):
- WebCore.xcodeproj/project.pbxproj:
- 10:34 AM Changeset in webkit [248302] by
-
- 7 edits2 copies1 add in trunk
Add test for behavior introduced in r248174
https://bugs.webkit.org/show_bug.cgi?id=200446
Reviewed by Eric Carlson.
Source/WebKit:
Add a new helper struct, FullscreenTouchSecheuristicParameters, and static getter,
iosParameters(), to allow the settings used by WKFullScreenViewController to be tested
in TestWebKitAPI. Make both of the Secheuristic classes privately exported as well.
- UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.cpp:
(WebKit::FullscreenTouchSecheuristic::scoreOfNextTouch):
(WebKit::FullscreenTouchSecheuristic::reset):
(WebKit::FullscreenTouchSecheuristic::distanceScore):
(WebKit::FullscreenTouchSecheuristic::attenuationFactor):
- UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h:
(WebKit::FullscreenTouchSecheuristic::setParameters):
(WebKit::FullscreenTouchSecheuristic::requiredScore const):
(WebKit::FullscreenTouchSecheuristic::setRampUpSpeed):
(WebKit::FullscreenTouchSecheuristic::setRampDownSpeed):
(WebKit::FullscreenTouchSecheuristic::setXWeight):
(WebKit::FullscreenTouchSecheuristic::setYWeight):
(WebKit::FullscreenTouchSecheuristic::setGamma):
(WebKit::FullscreenTouchSecheuristic::setGammaCutoff):
- UIProcess/ios/fullscreen/FullscreenTouchSecheuristicParameters.cpp: Copied from Source/WebKit/UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h.
(WebKit::FullscreenTouchSecheuristicParameters::iosParameters):
- UIProcess/ios/fullscreen/FullscreenTouchSecheuristicParameters.h: Copied from Source/WebKit/UIProcess/ios/fullscreen/FullscreenTouchSecheuristic.h.
- UIProcess/ios/fullscreen/WKFullScreenViewController.mm:
(-[WKFullScreenViewController initWithWebView:]):
(-[WKFullScreenViewController _touchDetected:]):
- WebKit.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/ios/FullscreenTouchSecheuristicTests.cpp: Added.
(WebKit::configureSecheuristic):
(WebKit::TEST):
- 10:05 AM Changeset in webkit [248301] by
-
- 12 edits2 adds in trunk
Adopt -expectMinimumUpcomingSampleBufferPresentationTime:
https://bugs.webkit.org/show_bug.cgi?id=200457
<rdar://problem/53961130>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/media-source/media-source-minimumupcomingpresentationtime.html
Adopt a new API vended by AVSampleBufferDisplayLayer, piped from SourceBuffer down
through SourceBufferPrivate to SourceBufferPrivateAVFObjC. This value should be
reset and updated when new samples are appended.
- Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
(WebCore::SourceBuffer::provideMediaData):
(WebCore::SourceBuffer::updateMinimumUpcomingPresentationTime):
(WebCore::SourceBuffer::resetMinimumUpcomingPresentationTime):
(WebCore::SourceBuffer::minimumUpcomingPresentationTimeForTrackID):
(WebCore::SourceBuffer::setMaximumQueueDepthForTrackID):
- Modules/mediasource/SourceBuffer.h:
- platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivate::setMinimumUpcomingPresentationTime):
(WebCore::SourceBufferPrivate::clearMinimumUpcomingPresentationTime):
(WebCore::SourceBufferPrivate::enqueuedSamplesForTrackID):
(WebCore::SourceBufferPrivate::minimumUpcomingPresentationTimeForTrackID):
(WebCore::SourceBufferPrivate::setMaximumQueueDepthForTrackID):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::canSetMinimumUpcomingPresentationTime const):
(WebCore::SourceBufferPrivateAVFObjC::setMinimumUpcomingPresentationTime):
(WebCore::SourceBufferPrivateAVFObjC::clearMinimumUpcomingPresentationTime):
- platform/mock/mediasource/MockSourceBufferPrivate.cpp:
(WebCore::MockSourceBufferPrivate::minimumUpcomingPresentationTimeForTrackID):
(WebCore::MockSourceBufferPrivate::setMaximumQueueDepthForTrackID):
(WebCore::MockSourceBufferPrivate::canSetMinimumUpcomingPresentationTime const):
(WebCore::MockSourceBufferPrivate::setMinimumUpcomingPresentationTime):
(WebCore::MockSourceBufferPrivate::clearMinimumUpcomingPresentationTime):
- platform/mock/mediasource/MockSourceBufferPrivate.h:
- testing/Internals.cpp:
(WebCore::Internals::minimumUpcomingPresentationTimeForTrackID):
(WebCore::Internals::setMaximumQueueDepthForTrackID):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- media/media-source/media-source-minimumupcomingpresentationtime-expected.txt: Added.
- media/media-source/media-source-minimumupcomingpresentationtime.html: Added.
- 9:30 AM Changeset in webkit [248300] by
-
- 2 edits in trunk/LayoutTests
[iPad] editing/selection/character-granularity-rect.html is now passing.
<rdar://53468934>
Unreviewed Test Gardening.
- platform/ipad/TestExpectations: Removed expectation for passing test, editing/selection/character-granularity-rect.html
- 9:26 AM Changeset in webkit [248299] by
-
- 2 edits in branches/safari-608.1-branch/Source/WebKit
Cherry-pick r247838. rdar://problem/53973599
WebKit/UIProcess/ios/WKContentViewInteraction.mm: error: implementing deprecated method contextMenuInteractionWillPresent
https://bugs.webkit.org/show_bug.cgi?id=200136
<rdar://problem/53547698>
Reviewed by Wenson Hsieh.
Ignore deprecation warnings for these UIContextMenuInteraction delegates.
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView contextMenuInteractionWillPresent:]): (-[WKContentView contextMenuInteraction:willCommitWithAnimator:]): (-[WKContentView contextMenuInteractionDidEnd:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:26 AM Changeset in webkit [248298] by
-
- 30 edits in branches/safari-608.1-branch/Source
Cherry-pick r247837. rdar://problem/53973599
Add helper for ignoring deprecated implementation warnings
https://bugs.webkit.org/show_bug.cgi?id=200135
Reviewed by Wenson Hsieh.
Add ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN/END macro which
is IGNORE_WARNINGS_BEGIN("deprecated-implementations")
Source/WebCore:
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): (-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]): (-[WebAccessibilityObjectWrapper accessibilityPerformAction:]): (-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]): (-[WebAccessibilityObjectWrapper accessibilityActionDescription:]): (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): (-[WebAccessibilityObjectWrapper IGNORE_WARNINGS_END]): Deleted.
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm: (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveAuthenticationChallenge:]): (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
Source/WebKit:
- UIProcess/API/Cocoa/LegacyBundleForClass.mm:
- UIProcess/API/Cocoa/WKBrowsingContextController.mm: (IGNORE_WARNINGS_BEGIN): Deleted.
- UIProcess/API/Cocoa/WKBrowsingContextGroup.mm: (IGNORE_WARNINGS_BEGIN): Deleted.
- UIProcess/API/Cocoa/WKConnection.mm: (IGNORE_WARNINGS_BEGIN): Deleted.
- UIProcess/API/Cocoa/WKPreviewElementInfo.mm:
- UIProcess/API/Cocoa/WKProcessGroup.mm: (IGNORE_WARNINGS_BEGIN): Deleted.
- UIProcess/API/Cocoa/WKTypeRefWrapper.mm:
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKWebView draggedImage:endedAt:operation:]): (-[WKWebView accessibilityAttributeValue:]): (-[WKWebView accessibilityAttributeValue:forParameter:]): (-[WKWebView namesOfPromisedFilesDroppedAtDestination:]): (-[WKWebView IGNORE_WARNINGS_END]): Deleted.
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm: (-[WKWebViewConfiguration ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKWebViewConfiguration _setWebsiteDataStore:]): (-[WKWebViewConfiguration IGNORE_WARNINGS_END]): Deleted.
- UIProcess/API/Cocoa/_WKWebsiteDataStore.mm:
- UIProcess/API/mac/WKView.mm: (-[WKView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKView draggedImage:endedAt:operation:]): (-[WKView accessibilityAttributeValue:]): (-[WKView accessibilityAttributeValue:forParameter:]): (-[WKView namesOfPromisedFilesDroppedAtDestination:]): (-[WKView IGNORE_WARNINGS_END]): Deleted.
- UIProcess/WKImagePreviewViewController.mm: (-[WKImagePreviewViewController ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKImagePreviewViewController IGNORE_WARNINGS_END]): Deleted.
- UIProcess/ios/forms/WKAirPlayRoutePicker.mm: (-[WKAirPlayRoutePicker popoverControllerDidDismissPopover:]):
- UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel popoverControllerDidDismissPopover:]):
- UIProcess/ios/forms/WKFormPopover.mm: (-[WKRotatingPopover popoverControllerDidDismissPopover:]):
- WebProcess/Plugins/PDF/PDFPlugin.mm: (-[WKPDFPluginAccessibilityObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:]): (-[WKPDFPluginAccessibilityObject accessibilityAttributeValue:forParameter:]): (-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]): (-[WKPDFPluginAccessibilityObject accessibilityIsAttributeSettable:]): (-[WKPDFPluginAccessibilityObject accessibilitySetValue:forAttribute:]): (-[WKPDFPluginAccessibilityObject IGNORE_WARNINGS_END]): Deleted.
- WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm: (-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WKAccessibilityWebPageObject accessibilityIsAttributeSettable:]): (-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]): (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]): (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]): (-[WKAccessibilityWebPageObject IGNORE_WARNINGS_END]): Deleted.
Source/WebKitLegacy/mac:
- Misc/WebDownload.mm: (-[WebDownload initWithRequest:delegate:]):
- Misc/WebIconDatabase.mm:
- Plugins/WebBaseNetscapePluginView.mm: (-[WebBaseNetscapePluginView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebBaseNetscapePluginView IGNORE_WARNINGS_END]): Deleted.
- WebView/WebDynamicScrollBarsView.mm: (-[WebDynamicScrollBarsView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebDynamicScrollBarsView IGNORE_WARNINGS_END]): Deleted.
- WebView/WebHTMLView.mm: (-[WebHTMLView draggingSourceOperationMaskForLocal:]): (-[WebHTMLView draggedImage:endedAt:operation:]): (-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]): (-[WebHTMLView accessibilityAttributeValue:]): (-[WebHTMLView ALLOW_DEPRECATED_IMPLEMENTATIONS_END]): (-[WebHTMLView characterIndexForPoint:]): (-[WebHTMLView firstRectForCharacterRange:]): (-[WebHTMLView attributedSubstringFromRange:]): (-[WebHTMLView setMarkedText:selectedRange:]): (-[WebHTMLView doCommandBySelector:]): (-[WebHTMLView insertText:]): (-[WebHTMLView IGNORE_WARNINGS_END]): Deleted.
Source/WTF:
- wtf/Compiler.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:18 AM Changeset in webkit [248297] by
-
- 5 edits in trunk/Source/WebCore
Add release assert against InvalidationRuleSet mutation during invalidation
https://bugs.webkit.org/show_bug.cgi?id=200467
Reviewed by Chris Dumez.
Try to get a more informative stack for rdar://problem/53413013
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::~DocumentRuleSets):
(WebCore::DocumentRuleSets::collectFeatures const):
- css/DocumentRuleSets.h:
- style/AttributeChangeInvalidation.cpp:
(WebCore::Style::AttributeChangeInvalidation::invalidateStyleWithRuleSets):
- style/ClassChangeInvalidation.cpp:
(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets):
- 9:08 AM Changeset in webkit [248296] by
-
- 7 edits in branches/safari-608.1-branch/Source
Versioning.
- 8:37 AM Changeset in webkit [248295] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION: Cannot tap on any buttons on m.naver.com home screen on iPad
https://bugs.webkit.org/show_bug.cgi?id=200466
Reviewed by Zalan Bujtas.
The page calls preventDefault() for a mouse event generated by a site specific quirk.
- page/Quirks.cpp:
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
Disable the quirk for the "m." subdomain. This is a mobile site that don't need or expect them.
- 8:01 AM Changeset in webkit [248294] by
-
- 2 edits in trunk/Source/WTF
FileSystem: silent build warning
Unreviewed compilation warning fix.
Remove unused parameter in empty method
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::createTemporaryZipArchive):
- 7:59 AM Changeset in webkit [248293] by
-
- 2 edits in trunk/Source/WebKit
[GLIB] Fix documentation typo
Unreviewed.
- UIProcess/API/glib/WebKitWebsiteDataManager.cpp:
- 7:49 AM Changeset in webkit [248292] by
-
- 4 edits6 adds in trunk
[iPadOS] Unable to increase zoom level on Google using the Aa menu
https://bugs.webkit.org/show_bug.cgi?id=200453
<rdar://problem/52278579>
Reviewed by Tim Horton.
Source/WebCore:
Makes a couple of minor adjustments to how layout size scale factor is handled in ViewportConfiguration, to
address some scenarios in which adjusting WKWebView's _viewScale does not have any apparent effect on the page.
See changes below for more detail.
Tests: fast/viewport/ios/non-responsive-viewport-after-changing-view-scale.html
fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale.html
- page/ViewportConfiguration.cpp:
(WebCore::ViewportConfiguration::initialScaleFromSize const):
When the page is either zoomed in or zoomed out using _viewScale, let the specified initial scale take
precedence over the scale computed by fitting the content width to the view width, or the scale computed by
fitting the content height to the view height.
This avoids a scenario in which nothing happens when increasing view scale in a responsively designed web page
that has a fixed minimum width. Before this change, when computing the initial scale at a view scale that would
not allow the entire content width of the page to fit within the viewport, the new initial scale would remain
unchanged if the initial scale in the meta viewport is not also set to 1, because a new initial scale would be
computed in ViewportConfiguration::initialScaleFromSize to accomodate for the entire content width.
Our new behavior allows us to zoom into the page, even if doing so would cause horizontal scrolling.
(WebCore::ViewportConfiguration::updateConfiguration):
When the page is either zoomed in or zoomed out using _viewScale and the default viewport configuration has a
fixed width (e.g. on iPhone), then adjust the width of the default viewport configuration to account for the
_viewScale. For example, the default width of a viewport-less web page is 980px on iPhone; at a view scale of 2,
this would become 490px instead, and at 0.5 view scale, it would become 1960px.
This ensures that on iPhone, for web pages without a meta viewport, changing the view scale still changes the
layout and initial scale of the web page.
- page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::layoutSizeIsExplicitlyScaled const):
LayoutTests:
Adds a couple of layout tests (with device-specific expectations) to verify that the two scenarios targeted by
this change are fixed.
- fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
- fast/viewport/ios/non-responsive-viewport-after-changing-view-scale.html: Added.
Verifies that, for a page with no viewport meta tag (where we fall back to a fixed 980px viewport on iPhone),
changing view scale still changes page scale and window size.
- fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
- fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale.html: Added.
Verifies that, for a page with a responsive meta viewport tag containing a fixed-width element that forces a
minimum width for the page, setting the view scale such that the page scrolls horizontally (2.5) doesn't result
in the initial scale being adjusted back to the maximum scale that would accomodate the full contents of the
page (2).
- platform/ipad/fast/viewport/ios/non-responsive-viewport-after-changing-view-scale-expected.txt: Added.
- platform/ipad/fast/viewport/ios/responsive-viewport-with-minimum-width-after-changing-view-scale-expected.txt: Added.
Aug 5, 2019:
- 11:47 PM Changeset in webkit [248291] by
-
- 5 edits in trunk
Source/WebKit:
[Win][MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
https://bugs.webkit.org/show_bug.cgi?id=200464
Reviewed by Ross Kirsling.
- UIProcess/API/C/WKNativeEvent.h: Define WKNativeEventPtr for WIN32.
Tools:
[MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
https://bugs.webkit.org/show_bug.cgi?id=200464
Reviewed by Ross Kirsling.
When WK2 WebView is focused, short cut keys (e.g. Alt-F to open File
menu, Alt-F4 to close window, and etc) don't work.
WK1 WebView doesn't have this issue because it processes key events
properly.
- MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didNotHandleKeyEvent): Added. Send the
unhandled key events to the main window.
- MiniBrowser/win/WebKitBrowserWindow.h:
- 10:20 PM Changeset in webkit [248290] by
-
- 13 edits in trunk/Source/WebCore
[LFC] Remove out-of-flow descendants from Container
https://bugs.webkit.org/show_bug.cgi?id=200430
<rdar://problem/53923980>
Reviewed by Antti Koivisto.
The out-of-flow descendant list is the last "formatting context type" bit in the layout tree.
Let's cached them in the FormattingStates instead for now.
- layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
- layout/FormattingContext.h:
- layout/FormattingState.h:
(WebCore::Layout::FormattingState::addOutOfFlowBox):
(WebCore::Layout::FormattingState::outOfFlowBoxes const):
- layout/LayoutState.cpp:
(WebCore::Layout::LayoutState::layoutFormattingContextSubtree):
(WebCore::Layout::LayoutState::createFormattingStateForFormattingRootIfNeeded):
(WebCore::Layout::LayoutState::run):
- layout/LayoutState.h:
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutFormattingContextRoot const):
- layout/layouttree/LayoutBox.h:
- layout/layouttree/LayoutContainer.cpp:
(WebCore::Layout::Container::addOutOfFlowDescendant): Deleted.
- layout/layouttree/LayoutContainer.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createLayoutTree):
- page/FrameViewLayoutContext.cpp:
(WebCore::layoutUsingFormattingContext):
- 10:04 PM Changeset in webkit [248289] by
-
- 18 edits1 move in trunk
Web Inspector: Styles: show @supports CSS groupings
https://bugs.webkit.org/show_bug.cgi?id=200419
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/CSS.json:
Rename
CSSMediatoGroupingand remove thesourceLinevalue, as it was never populated
and wasn't used by Web Inspector.
Source/WebCore:
Test: inspector/css/getMatchedStylesForNode.html
- inspector/InspectorStyleSheet.cpp:
(WebCore::buildArrayForGroupings): Added.
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::buildMediaObject): Deleted.
(WebCore::fillMediaListChain): Deleted.
- css/MediaList.h:
- css/MediaList.cpp:
(WebCore::MediaQuerySet::MediaQuerySet):
Remove thelastLineas it was never set by anyone and wasn't used by Web Inspector.
Source/WebInspectorUI:
- UserInterface/Models/CSSGrouping.js: Renamed from Source/WebInspectorUI/UserInterface/Models/CSSMedia.js.
(WI.CSSGrouping):
(WI.CSSGrouping.prototype.get type):
(WI.CSSGrouping.prototype.get text):
(WI.CSSGrouping.prototype.get sourceCodeLocation):
(WI.CSSGrouping.prototype.get isMedia): Added.
(WI.CSSGrouping.prototype.get isSupports): Added.
(WI.CSSGrouping.prototype.get prefix): Added.
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.get groupings): Added.
(WI.CSSStyleDeclaration.prototype.generateCSSRuleString):
(WI.CSSStyleDeclaration.prototype.get mediaList): Deleted.
- UserInterface/Models/CSSRule.js:
(WI.CSSRule):
(WI.CSSRule.prototype.get groupings): Added.
(WI.CSSRule.prototype.update):
(WI.CSSRule.prototype._selectorResolved):
(WI.CSSRule.prototype.get mediaList): Deleted.
- UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._parseRulePayload):
(WI.DOMNodeStyles.prototype.rulesForSelector): Deleted.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleEditorFilterApplied):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._createMediaHeader): Deleted.
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
(.spreadsheet-css-declaration :matches(.header, .header-groupings)): Added.
(.spreadsheet-css-declaration :matches(.header, .header-groupings):first-child): Added.
(.spreadsheet-css-declaration .header-groupings > .grouping): Added.
(.spreadsheet-css-declaration .header-groupings + .header > .selector > .icon): Added.
(.spreadsheet-css-declaration :matches(.header, .header-media)): Deleted.
(.spreadsheet-css-declaration :matches(.header, .header-media):first-child): Deleted.
(.spreadsheet-css-declaration .media-label): Deleted.
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.protocolGroupingTypeToEnum): Added.
(WI.CSSManager.protocolMediaSourceToEnum): Deleted.
- UserInterface/Main.html:
- UserInterface/Test.html:
LayoutTests:
- inspector/css/getMatchedStylesForNode.html:
- inspector/css/getMatchedStylesForNode-expected.txt:
- 8:45 PM Changeset in webkit [248288] by
-
- 6 edits in trunk/Source
Make Logger::log thread safe so that it can be used from background threads
https://bugs.webkit.org/show_bug.cgi?id=200448
Reviewed by Eric Carlson.
Source/WebCore:
No change of behavior.
- dom/Document.cpp:
(WebCore::crossThreadCopy):
(WebCore::Document::didLogMessage):
Make sure to hop to the main thread if needed.
- platform/mediastream/mac/RealtimeIncomingAudioSourceCocoa.cpp:
(WebCore::RealtimeIncomingAudioSourceCocoa::OnData):
Remove hopping to the main thread.
- platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
Remove hopping to the main thread.
Source/WTF:
Add a lock to ensure calling log is thread-safe.
- wtf/Logger.h:
(WTF::Logger::addObserver):
(WTF::Logger::removeObserver):
(WTF::Logger::log):
(WTF::Logger::observerLock):
- 8:37 PM Changeset in webkit [248287] by
-
- 34 edits2 adds in trunk
Can't use $0, $1 etc when inspecting Google Docs pages because the content uses these for function names
https://bugs.webkit.org/show_bug.cgi?id=195834
Reviewed by Joseph Pecoraro.
Allow the user to alias saved results by providing a different prefix (e.g. "$") from within
Web Inspector. When changing the alias, all existing saved results will update to be
reference-able from the new alias.
Source/JavaScriptCore:
- inspector/protocol/Runtime.json:
Add
setSavedResultAliascommand.
- inspector/agents/InspectorRuntimeAgent.h:
- inspector/agents/InspectorRuntimeAgent.cpp:
(Inspector::InspectorRuntimeAgent::setSavedResultAlias): Added.
- inspector/InjectedScriptHost.h:
(Inspector::InjectedScriptHost::setSavedResultAlias): Added.
(Inspector::InjectedScriptHost::savedResultAlias const): Added.
- inspector/JSInjectedScriptHost.h:
- inspector/JSInjectedScriptHost.cpp:
(Inspector::JSInjectedScriptHost::savedResultAlias const): Added.
- inspector/JSInjectedScriptHostPrototype.cpp:
(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::jsInjectedScriptHostPrototypeAttributeSavedResultAlias): Added.
Store the saved result alias on theInjectedScriptHostsince it is a shared object among
allInjectedScript.
- inspector/InjectedScriptSource.js:
(BasicCommandLineAPI):
Source/WebCore:
Test: inspector/runtime/setSavedResultAlias.html
- inspector/CommandLineAPIModuleSource.js:
(CommandLineAPI):
Source/WebInspectorUI:
- UserInterface/Controllers/RuntimeManager.js:
(WI.RuntimeManager):
(WI.RuntimeManager.preferredSavedResultPrefix): Added.
(WI.RuntimeManager.prototype.initializeTarget):
- UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):
- UserInterface/Base/Setting.js:
- UserInterface/Base/Main.js:
(WI.contentLoaded):
(WI.contentLoaded.updateConsoleSavedResultPrefixCSSVariable): Added.
- UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype.toClipboardString):
(WI.ConsoleMessageView.prototype.removeEventListeners): Added.
(WI.ConsoleMessageView.prototype._appendSavedResultIndex):
(WI.ConsoleMessageView.prototype._appendSavedResultIndex.updateSavedVariableText): Added.
(WI.ConsoleMessageView.prototype._rootPropertyPathForObject):
(WI.ConsoleMessageView.prototype._rootPropertyPathForObject.prefixSavedResultIndex): Added.
- UserInterface/Views/LogContentView.js:
(WI.LogContentView.prototype._sessionStarted):
(WI.LogContentView.prototype._logCleared):
- UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom.show-last-selected li.last-selected > span::after):
- UserInterface/Views/QuickConsole.js:
(WI.QuickConsole):
(WI.QuickConsole.prototype.closed):
(WI.QuickConsole.prototype._updateAutomaticExecutionContextPathComponentTooltip): Added.
Listen for changes to the setting that holds the current saved result alias and update any
related UI accordingly.
- UserInterface/Views/SettingsTabContentView.js:
(WI.SettingsTabContentView.prototype._createConsoleSettingsView):
- UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="text"]): Added.
- UserInterface/Views/SettingsGroup.js:
(WI.SettingsGroup.prototype.addCustomEditor): Added.
Add an input to the Settings tab that controls the saved result prefix alias. Only allow
[a-zA-Z0-9_$] as values (but [0-9] cannot be used as the start).
- UserInterface/Models/PropertyPath.js:
(WI.PropertyPath.prototype.set pathComponent): Added.
Miscellaneous getters/setters.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Test/TestHarness.js:
(TestHarness.prototype.newline): Added.
Convenience function for adding newlines to test results.
LayoutTests:
- inspector/runtime/setSavedResultAlias.html: Added.
- inspector/runtime/setSavedResultAlias-expected.txt: Added.
- http/tests/inspector/dom/cross-domain-inspected-node-access-expected.txt:
- inspector/console/command-line-api-expected.txt:
- inspector/console/command-line-api-exception.html:
- inspector/console/command-line-api-exception-expected.txt:
- inspector/console/command-line-api-exception-nested-catch.html:
- inspector/console/command-line-api-exception-nested-catch-expected.txt:
- 7:21 PM Changeset in webkit [248286] by
-
- 27 edits in trunk
Web Inspector: Timelines: disable related agents when the tab is closed
https://bugs.webkit.org/show_bug.cgi?id=200118
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
Rework how
enable/disableis used for timeline-related agents so that events are not sent
and data isn't kept alive when the Timelines tab isn't enabled.
- inspector/protocol/Timeline.json:
Add
enable/disablecommands.
- inspector/agents/InspectorHeapAgent.cpp:
(Inspector::InspectorHeapAgent::willDestroyFrontendAndBackend):
(Inspector::InspectorHeapAgent::enable):
(Inspector::InspectorHeapAgent::disable):
Source/WebCore:
Rework how
enable/disableis used for timeline-related agents so that events are not sent
and data isn't kept alive when the Timelines tab isn't enabled.
- inspector/agents/InspectorTimelineAgent.h:
- inspector/agents/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::enable):
(WebCore::InspectorTimelineAgent::disable):
(WebCore::InspectorTimelineAgent::start):
(WebCore::InspectorTimelineAgent::stop):
(WebCore::InspectorTimelineAgent::internalStart):
(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
Renamem_enabled*tom_tracking*to match other timeline-related agents.
- inspector/agents/InspectorMemoryAgent.h:
- inspector/agents/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::didCreateFrontendAndBackend):
(WebCore::InspectorMemoryAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorMemoryAgent::enable):
(WebCore::InspectorMemoryAgent::disable):
(WebCore::InspectorMemoryAgent::didHandleMemoryPressure):
- inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::trackingInspectorTimelineAgent): Added.
(WebCore::InstrumentingAgents::setTrackingInspectorTimelineAgent): Added.
(WebCore::InstrumentingAgents::persistentInspectorTimelineAgent): Added.
(WebCore::InstrumentingAgents::setPersistentInspectorTimelineAgent): Added.
- inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::reset):
- inspector/InspectorInstrumentation.h:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didInstallTimerImpl):
(WebCore::InspectorInstrumentation::didRemoveTimerImpl):
(WebCore::InspectorInstrumentation::willCallFunctionImpl):
(WebCore::InspectorInstrumentation::willDispatchEventImpl):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
(WebCore::InspectorInstrumentation::willEvaluateScriptImpl):
(WebCore::InspectorInstrumentation::willFireTimerImpl):
(WebCore::InspectorInstrumentation::didInvalidateLayoutImpl):
(WebCore::InspectorInstrumentation::willLayoutImpl):
(WebCore::InspectorInstrumentation::willCompositeImpl):
(WebCore::InspectorInstrumentation::didCompositeImpl):
(WebCore::InspectorInstrumentation::willPaintImpl):
(WebCore::InspectorInstrumentation::didPaintImpl):
(WebCore::InspectorInstrumentation::willRecalculateStyleImpl):
(WebCore::InspectorInstrumentation::didScheduleStyleRecalculationImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::frameStartedLoadingImpl):
(WebCore::InspectorInstrumentation::startConsoleTimingImpl):
(WebCore::InspectorInstrumentation::stopConsoleTimingImpl):
(WebCore::InspectorInstrumentation::consoleTimeStampImpl):
(WebCore::InspectorInstrumentation::startProfilingImpl):
(WebCore::InspectorInstrumentation::stopProfilingImpl):
(WebCore::InspectorInstrumentation::timelineAgentTracking): Added.
(WebCore::InspectorInstrumentation::didRequestAnimationFrameImpl):
(WebCore::InspectorInstrumentation::didCancelAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireAnimationFrameImpl):
(WebCore::InspectorInstrumentation::willFireObserverCallbackImpl):
(WebCore::InspectorInstrumentation::retrieveTimelineAgent):
(WebCore::InspectorInstrumentation::timelineAgentEnabled): Deleted.
- bindings/js/JSExecStateInstrumentation.h:
(WebCore::JSExecState::instrumentFunctionInternal):
Rename for clarity/correctness:
inspectorTimelineAgent=>trackingInspectorTimelineAgentpersistentInspectorTimelineAgent=>inspectorTimelineAgent
Source/WebInspectorUI:
Rework how
enable/disableis used for timeline-related agents so that events are not sent
and data isn't kept alive when the Timelines tab isn't enabled.
- UserInterface/Controllers/TimelineManager.js:
(WI.TimelineManager):
(WI.TimelineManager.prototype.get domains): Added.
(WI.TimelineManager.prototype.activateExtraDomain): Added.
(WI.TimelineManager.prototype.initializeTarget):
(WI.TimelineManager.prototype.reset):
(WI.TimelineManager.prototype.set autoCaptureOnPageLoad):
(WI.TimelineManager.prototype.enable): Added.
(WI.TimelineManager.prototype.disable): Added.
(WI.TimelineManager.prototype.startCapturing):
(WI.TimelineManager.prototype.stopCapturing):
(WI.TimelineManager.prototype.async processJSON):
(WI.TimelineManager.prototype.capturingStarted):
(WI.TimelineManager.prototype.capturingStopped):
(WI.TimelineManager.prototype.autoCaptureStarted):
(WI.TimelineManager.prototype.eventRecorded):
(WI.TimelineManager.prototype.pageDOMContentLoadedEventFired):
(WI.TimelineManager.prototype.pageLoadEventFired):
(WI.TimelineManager.prototype.cpuProfilerTrackingUpdated):
(WI.TimelineManager.prototype.memoryTrackingUpdated):
(WI.TimelineManager.prototype.heapTrackingStarted):
(WI.TimelineManager.prototype.heapTrackingCompleted):
(WI.TimelineManager.prototype.heapSnapshotAdded):
(WI.TimelineManager.prototype._loadNewRecording):
(WI.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame):
(WI.TimelineManager.prototype._provisionalLoadStarted):
(WI.TimelineManager.prototype._mainResourceDidChange):
(WI.TimelineManager.prototype._resourceWasAdded):
(WI.TimelineManager.prototype._garbageCollected):
(WI.TimelineManager.prototype._memoryPressure):
(WI.TimelineManager.prototype.scriptProfilerTrackingUpdated):
(WI.TimelineManager.prototype.scriptProfilerTrackingCompleted):
(WI.TimelineManager.prototype._updateAutoCaptureInstruments):
(WI.TimelineManager.prototype._handleDOMNodeDidFireEvent):
(WI.TimelineManager.prototype._handleDOMNodePowerEfficientPlaybackStateChanged):
- UserInterface/Models/Instrument.js:
(WI.Instrument.startLegacyTimelineAgent):
(WI.Instrument.stopLegacyTimelineAgent):
- UserInterface/Controllers/HeapManager.js:
(WI.HeapManager): Added.
(WI.HeapManager.prototype.get domains): Added.
(WI.HeapManager.prototype.activateExtraDomain): Added.
(WI.HeapManager.prototype.initializeTarget):
(WI.HeapManager.prototype.enable): Added.
(WI.HeapManager.prototype.disable): Added.
(WI.HeapManager.prototype.snapshot): Added.
(WI.HeapManager.prototype.getPreview): Added.
(WI.HeapManager.prototype.getRemoteObject): Added.
(WI.HeapManager.prototype.garbageCollected):
- UserInterface/Controllers/MemoryManager.js:
(WI.MemoryManager): Added.
(WI.MemoryManager.prototype.get domains): Added.
(WI.MemoryManager.prototype.activateExtraDomain): Added.
(WI.MemoryManager.prototype.initializeTarget):
(WI.MemoryManager.prototype.enable): Added.
(WI.MemoryManager.prototype.disable): Added.
(WI.MemoryManager.prototype.memoryPressure):
- UserInterface/Views/TimelineTabContentView.js:
(WI.TimelineTabContentView):
(WI.TimelineTabContentView.prototype.closed):
- UserInterface/Models/HeapAllocationsInstrument.js:
(WI.HeapAllocationsInstrument):
(WI.HeapAllocationsInstrument.prototype._takeHeapSnapshot):
- UserInterface/Views/HeapAllocationsTimelineView.js:
(WI.HeapAllocationsTimelineView.prototype._takeHeapSnapshotClicked):
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WI.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode):
(WI.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
(WI.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
Go through theHeapManagerforHeapAgentcommands so it can better manage state.
- UserInterface/Test/Test.js:
(WI.contentLoaded):
LayoutTests:
- inspector/timeline/line-column.html:
- inspector/timeline/setInstruments-errors.html:
- inspector/timeline/setInstruments-programmatic-capture.html:
- 7:07 PM Changeset in webkit [248285] by
-
- 4 edits in trunk
[Win] Specifying huge font-size causes crashing
https://bugs.webkit.org/show_bug.cgi?id=200340
Reviewed by Don Olmstead.
Source/WebCore:
Covered by existing tests.
- platform/graphics/win/FontPlatformDataWin.cpp:
(WebCore::FontPlatformData::FontPlatformData): Use GetTextFace to
get font face names instead of GetOutlineTextMetrics which returns
null for huge size fonts.
LayoutTests:
- platform/win/TestExpectations:
- 7:00 PM Changeset in webkit [248284] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: brotli-compressed resources have "Compressed: No" in Resources details sidebar
https://bugs.webkit.org/show_bug.cgi?id=200452
Reviewed by Joseph Pecoraro.
- UserInterface/Models/Resource.js:
(WI.Resource.prototype.get compressed):
Add "br" - Brotli content encoding.
- 5:36 PM Changeset in webkit [248283] by
-
- 17 edits4 deletes in trunk
LayoutTests/imported/w3c:
Response constructor doesn't throw on disturbed ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=200130
<rdar://problem/53550351>
Reviewed by Alex Christensen.
Update test to use promise_rejects instead of assert_throws.
- web-platform-tests/fetch/api/request/request-init-stream.any-expected.txt:
- web-platform-tests/fetch/api/request/request-init-stream.any.js:
(async.assert_request):
(promise_test.async):
- web-platform-tests/fetch/api/request/request-init-stream.any.worker-expected.txt:
- web-platform-tests/fetch/api/response/response-from-stream.any-expected.txt:
- web-platform-tests/fetch/api/response/response-from-stream.any.worker-expected.txt:
Source/WebCore:
Response constructor doesn't throw on disturbed ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=200130
<rdar://problem/53550351>
Reviewed by Alex Christensen.
Make FetchBody::extract return an exception in error cases.
Update call sites accordingly.
Add the error case as per https://fetch.spec.whatwg.org/#concept-bodyinit-extract, ReadableStream handling.
Covered by updated and rebased tests.
- Modules/beacon/NavigatorBeacon.cpp:
(WebCore::NavigatorBeacon::sendBeacon):
- Modules/fetch/FetchBody.cpp:
(WebCore::FetchBody::extract):
- Modules/fetch/FetchBody.h:
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::extractBody):
- Modules/fetch/FetchBodyOwner.h:
- Modules/fetch/FetchRequest.cpp:
(WebCore::FetchRequest::initializeWith):
(WebCore::FetchRequest::setBody):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::create):
- Modules/streams/ReadableStreamInternals.js:
(readableStreamPipeTo): fix a case where the promise would be unhandled and would show up in
unhandledrejectionhandler.
LayoutTests:
Support RTCRtpSender.dtmf
https://bugs.webkit.org/show_bug.cgi?id=200431
<rdar://problem/53924833>
Reviewed by Alex Christensen.
Removed cache storage test which is no longer valid.
Removed WK1 expectation that is no longer needed.
- http/wpt/cache-storage/cache-put-stream.https.any.html: Removed.
- http/wpt/cache-storage/cache-put-stream.https.any.js: Removed.
- http/wpt/cache-storage/cache-put-stream.https.any.worker.html: Removed.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-init-stream.any-expected.txt: Removed.
- platform/mac-wk2/TestExpectations:
- 5:34 PM Changeset in webkit [248282] by
-
- 26 edits2 copies1 add2 deletes in trunk
Support RTCRtpSender.dtmf
https://bugs.webkit.org/show_bug.cgi?id=200431
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCDTMFSender-insertDTMF.https-expected.txt:
- web-platform-tests/webrtc/RTCDTMFSender-ontonechange-long.https-expected.txt:
- web-platform-tests/webrtc/RTCDTMFSender-ontonechange.https-expected.txt:
Source/WebCore:
Add a new backend interface to RTCDTMFSender and implementation of it using libwebrtc.
Update RTCDTMFSender to use that new backend and make RTCRtpSender return a RTCDTMFSender
conditionally on a newly added runtime flag.
Update RTCDTMFSender implementation based on https://w3c.github.io/webrtc-pc/#peer-to-peer-dtmf.
Covered by rebased tests.
- Modules/mediastream/PeerConnectionBackend.cpp:
(WebCore::PeerConnectionBackend::context const):
(WebCore::PeerConnectionBackend::transceiverFromSender):
- Modules/mediastream/PeerConnectionBackend.h:
- Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::RTCDTMFSender):
(WebCore::RTCDTMFSender::canInsertDTMF const):
(WebCore::RTCDTMFSender::toneBuffer const):
(WebCore::isToneCharacterInvalid):
(WebCore::RTCDTMFSender::insertDTMF):
(WebCore::RTCDTMFSender::playNextTone):
(WebCore::RTCDTMFSender::onTonePlayed):
(WebCore::RTCDTMFSender::toneTimerFired):
(WebCore::RTCDTMFSender::stop):
(WebCore::RTCDTMFSender::activeDOMObjectName const):
(WebCore::RTCDTMFSender::canSuspendForDocumentSuspension const):
- Modules/mediastream/RTCDTMFSender.h:
- Modules/mediastream/RTCDTMFSender.idl:
- Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
- Modules/mediastream/RTCDTMFToneChangeEvent.h:
- Modules/mediastream/RTCDTMFToneChangeEvent.idl:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::dtmf):
(WebCore::RTCRtpSender::currentTransceiverDirection const):
- Modules/mediastream/RTCRtpSender.h:
- Modules/mediastream/RTCRtpSender.idl:
- Modules/mediastream/RTCRtpSenderBackend.h:
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.cpp:
(WebCore::LibWebRTCRtpSenderBackend::createDTMFBackend):
- Modules/mediastream/libwebrtc/LibWebRTCRtpSenderBackend.h:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/EventNames.in:
- dom/EventTargetFactory.in:
- page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::webRTCDTMFEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCDTMFEnabled):
- platform/mediastream/RTCDTMFSenderBackend.h: Added.
- platform/mediastream/RTCDTMFSenderHandler.h: Removed.
- platform/mediastream/RTCDTMFSenderHandlerClient.h: Removed.
- platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.cpp: Added.
(WebCore::toWTFString):
(WebCore::LibWebRTCDTMFSenderBackend::LibWebRTCDTMFSenderBackend):
(WebCore::LibWebRTCDTMFSenderBackend::~LibWebRTCDTMFSenderBackend):
(WebCore::LibWebRTCDTMFSenderBackend::canInsertDTMF):
(WebCore::LibWebRTCDTMFSenderBackend::playTone):
(WebCore::LibWebRTCDTMFSenderBackend::tones const):
(WebCore::LibWebRTCDTMFSenderBackend::duration const):
(WebCore::LibWebRTCDTMFSenderBackend::interToneGap const):
(WebCore::LibWebRTCDTMFSenderBackend::OnToneChange):
(WebCore::LibWebRTCDTMFSenderBackend::onTonePlayed):
- platform/mediastream/libwebrtc/LibWebRTCDTMFSenderBackend.h: Added.
Source/WebKit:
- Shared/WebPreferences.yaml:
- 5:31 PM Changeset in webkit [248281] by
-
- 4 edits in trunk
iOS 13: Overflow:hidden on body prevents PDF scroll
https://bugs.webkit.org/show_bug.cgi?id=200435
rdar://problem/53942888
Reviewed by Tim Horton.
Source/WebKit:
When we navigate from an overflow:hidden HTML page to a custom view (like PDF), we need
to make sure that the scroll view is scrollable.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setHasCustomContentView:loadedMIMEType:]):
Tools:
When we navigate from an overflow:hidden HTML page to a custom view (like PDF), we need
to make sure that the scroll view is scrollable.
- TestWebKitAPI/Tests/ios/ScrollViewScrollabilityTests.mm:
(TestWebKitAPI::TEST):
- 5:03 PM Changeset in webkit [248280] by
-
- 4 edits in trunk/Source/WebCore
[WHLSL] Inline all native function calls
https://bugs.webkit.org/show_bug.cgi?id=200350
Reviewed by Robin Morisset.
Native functions calls tend to be really small. If we inline in the generated
Metal code, we end up with faster Metal compile times. On compute_boids, this
provides a ~10ms improvement.
- Modules/webgpu/WHLSL/Metal/WHLSLFunctionWriter.cpp:
(WebCore::WHLSL::Metal::FunctionDefinitionWriter::visit):
(WebCore::WHLSL::Metal::sharedMetalFunctions):
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.cpp:
(WebCore::WHLSL::Metal::inlineNativeFunction):
(WebCore::WHLSL::Metal::writeNativeFunction): Deleted.
- Modules/webgpu/WHLSL/Metal/WHLSLNativeFunctionWriter.h:
- 4:40 PM Changeset in webkit [248279] by
-
- 6 edits2 adds in trunk
Web Inspector: Styles: variable swatch not shown for var() with a fallback
https://bugs.webkit.org/show_bug.cgi?id=200237
Reviewed by Joseph Pecoraro.
Source/WebInspectorUI:
- UserInterface/Views/SpreadsheetStyleProperty.js:
(WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
(WI.SpreadsheetStyleProperty.prototype._replaceSpecialTokens): Added.
(WI.SpreadsheetStyleProperty.prototype._addGradientTokens):
(WI.SpreadsheetStyleProperty.prototype._addColorTokens):
(WI.SpreadsheetStyleProperty.prototype._addTimingFunctionTokens):
(WI.SpreadsheetStyleProperty.prototype._addVariableTokens):
Check to see if there's a fallback value in thevar()and tokenize it if there is. Mark
the property as invalid if thevar()doesn't end up resolving to anything.
- UserInterface/Views/InlineSwatch.js:
(WI.InlineSwatch):
(WI.InlineSwatch.prototype.get value):
(WI.InlineSwatch.prototype._updateSwatch):
(WI.InlineSwatch.prototype._handleContextMenuEvent):
(WI.InlineSwatch.prototype._getNextValidHEXFormat.hexMatchesCurrentColor):
(WI.InlineSwatch.prototype._getNextValidHEXFormat):
Allow thevalueto be a function. In that case, use the getterthis.valueinstead of the
valuethis._valuedirectly so that the function is invoked.
This is needed for variable swatches because the fallback value could change after the
swatch has been created (e.g. another swatch in a CSS property value that just modifies the
text, rather than re-renders the entire CSS property value).
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.resolveVariableValue): Added.
Follow the variable chain until an ultimate value is reached.
- UserInterface/Models/CSSKeywordCompletions.js:
(WI.CSSKeywordCompletions.isColorAwareProperty):
(WI.CSSKeywordCompletions.isTimingFunctionAwareProperty): Added.
Limitcubic-bezierandspringtokens to only be shown for timing function properties.
LayoutTests:
- inspector/css/resolve-variable-value.html: Added.
- inspector/css/resolve-variable-value-expected.txt: Added.
- 4:25 PM Changeset in webkit [248278] by
-
- 4 edits in trunk/Source/WebCore
RealtimeOutgoingAudioSource::pullAudioData is no longer needed
https://bugs.webkit.org/show_bug.cgi?id=200450
Reviewed by Geoffrey Garen.
No change of behavior, removing base class method declaration.
- platform/mediastream/RealtimeOutgoingAudioSource.h:
(WebCore::RealtimeOutgoingAudioSource::pullAudioData): Deleted.
- platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceLibWebRTC.h:
- platform/mediastream/mac/RealtimeOutgoingAudioSourceCocoa.h:
- 4:17 PM Changeset in webkit [248277] by
-
- 4 edits in trunk/Source/WebCore
[WHLSL] Add compile time flag to dump metal compile times
https://bugs.webkit.org/show_bug.cgi?id=200447
Reviewed by Myles C. Maxfield.
- Modules/webgpu/WHLSL/WHLSLPrepare.h:
- platform/graphics/gpu/cocoa/GPUComputePipelineMetal.mm:
(WebCore::trySetFunctions):
- platform/graphics/gpu/cocoa/GPURenderPipelineMetal.mm:
(WebCore::trySetFunctions):
- 4:00 PM Changeset in webkit [248276] by
-
- 23 edits4 adds in trunk
navigator.geolocation wrapper should not become GC-collectable once its frame is detached
https://bugs.webkit.org/show_bug.cgi?id=200436
Reviewed by Darin Adler.
Source/WebCore:
navigator.geolocation wrapper should not become GC-collectable once its frame is detached, given
that it can outlive the frame. Instead, tie the navigator.geolocation wrapper's lifetime to its
Navigator's.
Test: fast/dom/navigator-property-gc-after-frame-detach.html
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::create):
(WebCore::Geolocation::Geolocation):
(WebCore::Geolocation::navigator):
(WebCore::Geolocation::frame const):
- Modules/geolocation/Geolocation.h:
- Modules/geolocation/Geolocation.idl:
- Modules/geolocation/NavigatorGeolocation.cpp:
(WebCore::NavigatorGeolocation::NavigatorGeolocation):
(WebCore::NavigatorGeolocation::from):
(WebCore::NavigatorGeolocation::geolocation):
(WebCore::NavigatorGeolocation::geolocation const):
- Modules/geolocation/NavigatorGeolocation.h:
- bindings/js/JSNavigatorCustom.cpp:
(WebCore::JSNavigator::visitAdditionalChildren):
- bindings/js/JSWorkerNavigatorCustom.cpp:
(WebCore::JSWorkerNavigator::visitAdditionalChildren):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- bindings/scripts/IDLAttributes.json:
- page/Navigator.cpp:
(WebCore::Navigator::plugins):
(WebCore::Navigator::mimeTypes):
- page/NavigatorBase.h:
- plugins/DOMMimeTypeArray.cpp:
(WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
- plugins/DOMMimeTypeArray.h:
- plugins/DOMMimeTypeArray.idl:
- plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::DOMPluginArray):
- plugins/DOMPluginArray.h:
- plugins/DOMPluginArray.idl:
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerContainer.idl:
LayoutTests:
Add layout test coverage.
- fast/dom/navigator-property-gc-after-frame-detach-expected.txt: Added.
- fast/dom/navigator-property-gc-after-frame-detach.html: Added.
- 3:52 PM Changeset in webkit [248275] by
-
- 10 edits in trunk/Source/WebCore
[WebIDL] Support partial dictionaries and conditional dictionary members
https://bugs.webkit.org/show_bug.cgi?id=200441
Reviewed by Alex Christensen.
Added new bindings tests.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateDictionaryImplementationContent):
- bindings/scripts/IDLParser.pm:
(parsePartialDefinition):
(parsePartialInterface): Deleted.
(parsePartialDictionary): Deleted.
- bindings/scripts/generate-bindings.pl:
(generateBindings):
- bindings/scripts/preprocess-idls.pl:
(getPartialNamesFromIDL):
(getPartialInterfaceNameFromIDL): Deleted.
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::convertDictionary<TestEventConstructor::Init>):
- bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):
- bindings/scripts/test/JS/JSTestStandaloneDictionary.h:
- bindings/scripts/test/TestStandaloneDictionary.idl:
- bindings/scripts/test/TestSupplemental.idl:
- 3:44 PM Changeset in webkit [248274] by
-
- 25 edits in trunk
Web Inspector: rename "Stylesheet" to "Style Sheet" to match spec text
https://bugs.webkit.org/show_bug.cgi?id=200422
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/Page.json:
Source/WebCore:
No observable change in functionality.
- inspector/agents/InspectorPageAgent.h:
- inspector/agents/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::resourceTypeJSON):
(WebCore::InspectorPageAgent::inspectorResourceType):
Source/WebInspectorUI:
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype._resourceAdded):
(WI.CSSManager.prototype._resourceTypeDidChange):
(WI.CSSManager.prototype._clearStyleSheetsForResource):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):
- UserInterface/Models/CSSStyleSheet.js:
(WI.CSSStyleSheet.prototype.get displayName):
- UserInterface/Models/CollectionTypes.js:
(WI.CSSStyleSheetCollection.prototype.get displayName):
- UserInterface/Models/Resource.js:
(WI.Resource.displayNameForType):
(WI.Resource.prototype.get syntheticMIMEType):
- UserInterface/Models/ResourceCollection.js:
(WI.ResourceCollection.prototype.objectIsRequiredType):
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.shortDisplayNameForResourceType):
- UserInterface/Views/ResourceClusterContentView.js:
(WI.ResourceClusterContentView.prototype._contentViewForResourceType):
- UserInterface/Views/ResourceSidebarPanel.js:
(WI.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
- UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._save):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._populateIconElementContextMenu):
- UserInterface/Views/StyleOriginView.js:
(WI.StyleOriginView.prototype.update):
- UserInterface/Views/TextResourceContentView.js:
(WI.TextResourceContentView.prototype._shouldBeEditable):
- UserInterface/Views/CSSStyleSheetTreeElement.js:
(WI.CSSStyleSheetTreeElement):
- UserInterface/Views/ResourceIcons.css:
(:matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Added.
(.source-map-resource.resource-icon.resource-type-style-sheet .icon): Added.
(.large :matches(.resource-icon.resource-type-style-sheet, .style-sheet-icon) .icon): Added.
(.large .source-map-resource.resource-icon.resource-type-style-sheet .icon): Added.
(:matches(.resource-icon.resource-type-stylesheet, .stylesheet-icon) .icon): Deleted.
(.source-map-resource.resource-icon.resource-type-stylesheet .icon): Deleted.
(.large :matches(.resource-icon.resource-type-stylesheet, .stylesheet-icon) .icon): Deleted.
(.large .source-map-resource.resource-icon.resource-type-stylesheet .icon): Deleted.
LayoutTests:
- inspector/unit-tests/resource-collection.html:
- http/tests/inspector/network/resource-mime-type.html:
- http/tests/inspector/network/resource-mime-type-expected.txt:
- 2:33 PM Changeset in webkit [248273] by
-
- 7 edits2 moves in trunk
Resource Load Statistics: Re-introduce latch mode for subresource cookie blocking
https://bugs.webkit.org/show_bug.cgi?id=200395
<rdar://problem/53869611>
Reviewed by Darin Adler.
Back when we had a relaxation of cookie blocking 24 hours after first-party user
interaction, we made sure cookie blocking could be turned on and off in subresource
redirect chains. The 24 hour window is now long gone. This patch simplifies the
cookie blocking so that once a subresource request is denied cookies, any
subsequent redirect of that request will also be denied cookies, regardless of the
classification status of the domains involved. I call it latch mode.
Source/WebKit:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::blockCookies):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy): Deleted.
LayoutTests:
- http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect-expected.txt: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect-expected.txt.
- http/tests/resourceLoadStatistics/do-not-remove-blocking-in-redirect.html: Renamed from LayoutTests/http/tests/resourceLoadStatistics/remove-blocking-in-redirect.html.
Changed to expect no removal of blocking in the redirect and renamed accordingly.
- platform/ios/TestExpectations:
Renamed.
- platform/mac-wk2/TestExpectations:
Renamed.
- platform/wk2/TestExpectations:
Renamed.
- 2:24 PM Changeset in webkit [248272] by
-
- 2 edits in trunk/Tools
New EWS:mac-wk2 status-bubble shows waiting to run tests for all recent bugs
https://bugs.webkit.org/show_bug.cgi?id=200400
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-app/ews/views/statusbubble.py:
(StatusBubble._build_bubble):
(StatusBubble._queue_position):
- 1:02 PM Changeset in webkit [248271] by
-
- 3 edits1 add in trunk
JSC: assertion failure in SpeculativeJIT::compileGetByValOnIntTypedArray
https://bugs.webkit.org/show_bug.cgi?id=199997
Reviewed by Saam Barati.
JSTests:
New test.
- stress/typedarray-no-alreadyChecked-assert.js: Added.
(checkIntArray):
(checkFloatArray):
Source/JavaScriptCore:
No need to ASSERT(node->arrayMode().alreadyChecked(...)) in SpeculativeJIT::compileGetByValOnIntTypedArray()
and compileGetByValOnFloatTypedArray() as the abstract interpreter is conservative and can insert a
CheckStructureOrEmpty which will fail the ASSERT as it checks for the SpecType of the array
and not for SpecEmpty. If we added a check for the SpecEmpty in the ASSERT, there are cases where
it won't be set.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnIntTypedArray):
(JSC::DFG::SpeculativeJIT::compileGetByValOnFloatTypedArray):
- 9:42 AM Changeset in webkit [248270] by
-
- 8 edits in trunk/Tools
run-webkit-tests asserts when the iPhone XR simulator is running
https://bugs.webkit.org/show_bug.cgi?id=200404
<rdar://problem/53878739>
Reviewed by Dean Jackson.
Support unicode in all logging statements tied to device model.
- Scripts/webkitpy/layout_tests/controllers/manager.py:
(Manager.run):
- Scripts/webkitpy/layout_tests/views/printing.py:
(Printer.print_baseline_search_path):
- Scripts/webkitpy/port/device.py:
(Device.repr):
- Scripts/webkitpy/port/device_port.py:
(DevicePort._install):
(DevicePort.setup_test_run):
(DevicePort.clean_up_test_run):
(DevicePort.configuration_for_upload):
- Scripts/webkitpy/port/ios.py:
(IOSPort.default_baseline_search_path):
- Scripts/webkitpy/xcode/device_type.py:
(DeviceType.str):
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager.populate_available_devices):
(SimulatedDeviceManager._find_available_name):
(SimulatedDeviceManager._get_device_identifier_for_type):
(SimulatedDeviceManager._create_or_find_device_for_request):
(SimulatedDeviceManager._does_fulfill_request):
(SimulatedDeviceManager._wait_until_device_in_state):
(SimulatedDeviceManager._wait_until_device_is_usable):
(SimulatedDeviceManager._boot_device):
(SimulatedDeviceManager.initialize_devices):
(SimulatedDeviceManager.max_supported_simulators):
(SimulatedDeviceManager.swap):
(SimulatedDevice.is_usable):
(SimulatedDevice._shut_down):
(SimulatedDevice._delete):
(SimulatedDevice.launch_app):
(SimulatedDevice.repr):
- 9:26 AM Changeset in webkit [248269] by
-
- 3 edits5 adds in trunk
Disable speculative loading if cache is not to be used for the load
https://bugs.webkit.org/show_bug.cgi?id=199644
Reviewed by Alex Christensen.
Source/WebKit:
When the page is reloaded, loads are instructed to not use the cache.
It is therefore unneeded to do speculative revalidation.
Allow speculative revalidation if the cache policy is either the default HTTP policy or
if policy is to refresh all cache data.
Covered by added test.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::cachePolicyValidForSpeculativeRevalidation):
(WebKit::NetworkCache::canRequestUseSpeculativeRevalidation):
LayoutTests:
- http/wpt/fetch/disable-speculative-for-reload-expected.txt: Added.
- http/wpt/fetch/disable-speculative-for-reload.html: Added.
- http/wpt/fetch/resources/iframe-with-image.py: Added.
(main):
- http/wpt/fetch/resources/image-load-count.py: Added.
(main):
- http/wpt/fetch/resources/image-load.py: Added.
(main):
- 12:34 AM Changeset in webkit [248268] by
-
- 11 edits1 copy1 add in trunk
[Curl] implement CertificateInfo::summaryInfo
https://bugs.webkit.org/show_bug.cgi?id=191498
Patch by Takashi Komori <Takashi.Komori@sony.com> on 2019-08-05
Reviewed by Alex Christensen.
Source/WebCore:
Implement CertificaeInfo::SummaryInfo.
This patch makes WebInspector show summary of certificates.
Tests: http/tests/inspector/network/resource-security-certificate.html
http/tests/inspector/network/getSerializedCertificate.html
- platform/Curl.cmake:
- platform/network/curl/CertificateInfo.h:
(WTF::Persistence::Coder<WebCore::CertificateInfo>::encode):
(WTF::Persistence::Coder<WebCore::CertificateInfo>::decode):
(WebCore::CertificateInfo::summaryInfo const): Deleted.
- platform/network/curl/CertificateInfoCurl.cpp:
(WebCore::CertificateInfo::summaryInfo const):
- platform/network/curl/CurlSSLVerifier.cpp:
(WebCore::CurlSSLVerifier::collectInfo):
(WebCore::CurlSSLVerifier::verifyCallback):
(WebCore::StackOfX509::StackOfX509): Deleted.
(WebCore::StackOfX509::~StackOfX509): Deleted.
(WebCore::StackOfX509::count): Deleted.
(WebCore::StackOfX509::item): Deleted.
(): Deleted.
(WebCore::BIOHolder::BIOHolder): Deleted.
(WebCore::BIOHolder::~BIOHolder): Deleted.
(WebCore::BIOHolder::write): Deleted.
(WebCore::BIOHolder::asCertificate): Deleted.
(WebCore::pemDataFromCtx): Deleted.
- platform/network/curl/CurlSSLVerifier.h:
- platform/network/curl/OpenSSLHelper.cpp: Added.
(OpenSSL::deleter<X509>::operator()):
(OpenSSL::StackOfGeneralName::StackOfGeneralName):
(OpenSSL::StackOfGeneralName::~StackOfGeneralName):
(OpenSSL::StackOfGeneralName::operator bool):
(OpenSSL::StackOfGeneralName::count):
(OpenSSL::StackOfGeneralName::item):
(OpenSSL::StackOfX509::StackOfX509):
(OpenSSL::StackOfX509::~StackOfX509):
(OpenSSL::StackOfX509::count):
(OpenSSL::StackOfX509::item):
(OpenSSL::BIO::BIO):
(OpenSSL::BIO::~BIO):
(OpenSSL::BIO::getDataAsVector const):
(OpenSSL::BIO::getDataAsString const):
(OpenSSL::BIO::readX509):
(OpenSSL::BIO::get):
(OpenSSL::pemDataFromCtx):
(OpenSSL::createCertificateInfo):
(OpenSSL::toString):
(OpenSSL::getCommonName):
(OpenSSL::getSubjectName):
(OpenSSL::convertASN1TimeToSeconds):
(OpenSSL::getSubjectAltName):
(OpenSSL::createSummaryInfo):
- platform/network/curl/OpenSSLHelper.h: Copied from Source/WebCore/platform/network/curl/CertificateInfoCurl.cpp.
Source/WTF:
Fixed function template for encoding vector.
- wtf/persistence/PersistentCoders.h:
LayoutTests:
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations: