Timeline
Jul 10, 2017:
- 9:08 PM Changeset in webkit [219323] by
-
- 5 edits in trunk
Resource Load Statistics: Prune statistics in orders of importance
https://bugs.webkit.org/show_bug.cgi?id=174215
<rdar://problem/33164403>
Unreviewed test correction.
Source/WebKit2:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::pruneResources): The revised algorithm did not update the remaining
count to be pruned, causing a test failure.
LayoutTests:
Drive-by fix after recent refactoring to correct the new function names in TestRunner.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
- http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
- 8:46 PM Changeset in webkit [219322] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Address Antti's review comment.
- public/v3/models/analysis-results.js:
(AnalysisResults.prototype.containsTest):
- 8:45 PM Changeset in webkit [219321] by
-
- 4 edits in trunk/Websites/perf.webkit.org
A/B testing results page show results for the top-level tests instead of the one being analyzed
https://bugs.webkit.org/show_bug.cgi?id=174304
Reviewed by Antti Koivisto.
When a specific subtest is analyzed (e.g. Images subtest of MotionMark), then TestGroupResultsViewer
should expand and highlight that specific subtest instead of simply showing the top-level test's score.
This is especially misleading since AnalysisResultsViewer (stacking bars for each test group) uses
the score of the specific subtest being analyzed.
Fixed the bug by passing in the metric associated with the analysis task from AnalysisTaskPage to
TestGroupResultsViewer via AnalysisTaskTestGroupPane. Also made TestGroupResultsViewer.setAnalysisResults
auto-expand the tests that are ancestors of the specified metric. Without that, the test won't be shown
to the user until the ancestor tests are expanded by the user.
Also fixed the bug that we were always listing sub-tests regardless of whether they have results or not.
Since tests tend to change over time, we shouldn't show a test if it doesn't have any results associated.
- public/v3/components/test-group-results-viewer.js:
(TestGroupResultsViewer.prototype.setAnalysisResults): Expand the ancestor tests of the metric.
(TestGroupResultsViewer.prototype._buildRowsForTest): Exit early if this test doesn't have any results.
- public/v3/models/analysis-results.js:
(AnalysisResults.prototype.containsTest): Added.
- public/v3/pages/analysis-task-page.js:
(AnalysisTaskTestGroupPane.prototype.setAnalysisResults): Takes a metric to pass it to the results viewer.
(AnalysisTaskPage.prototype._assignTestResultsIfPossible):
- 8:40 PM Changeset in webkit [219320] by
-
- 6 edits2 adds in trunk
[WK2 iOS] REGRESSION (r216803) During momentum scroll, getBoundingClientRect returns wrong coordinates (missing images on pinterest, elle.com and many other sites)
https://bugs.webkit.org/show_bug.cgi?id=174286
rdar://problem/32864180
Reviewed by Dean Jackson.
Source/WebCore:
r216803 made getBoundingClientRects relative to the layout viewport, but when scrolling we
only update that on stable viewport updates (at the end of the scroll). This meant that during
unstable updates, getBoundingClientRects() used a "frozen" viewport origin so things on-screen
would appear to be off-screen, causing sites to fail to dynamically load images etc. when
scrolling.
Fix by pushing an optional "unstable" layout viewport rect onto FrameView, which gets used by
FrameView::documentToClientOffset(). This is cleared when we do a stable update.
This is a short-term solution. Longer term, I would prefer to always call setLayoutViewportOverrideRect(),
but fix the scrolling tree logic to work correctly in this case.
Add a bit more scrolling logging.
Test: fast/visual-viewport/ios/get-bounding-client-rect-unstable.html
- page/FrameView.cpp:
(WebCore::FrameView::setUnstableLayoutViewportRect):
(WebCore::FrameView::documentToClientOffset):
- page/FrameView.h:
- page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::reconcileScrollingState):
- page/scrolling/ScrollingStateFixedNode.cpp:
(WebCore::ScrollingStateFixedNode::updateConstraints):
(WebCore::ScrollingStateFixedNode::reconcileLayerPositionForViewportRect):
LayoutTests:
- fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt: Added.
- fast/visual-viewport/ios/get-bounding-client-rect-unstable.html: Added.
- 7:52 PM Changeset in webkit [219319] by
-
- 20 edits2 adds in trunk
Resource Load Statistics: Prune statistics in orders of importance
https://bugs.webkit.org/show_bug.cgi?id=174215
<rdar://problem/33164403>
Patch by John Wilander <wilander@apple.com> on 2017-07-10
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/tests/loading/resourceLoadStatistics/prune-statistics.html
- loader/ResourceLoadObserver.cpp:
(WebCore::reduceTimeResolution):
(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
Now all set the new statistics field lastSeen.
- loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::encode):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString):
(WebCore::ResourceLoadStatistics::merge):
Handling of the new statistics field lastSeen.
- loader/ResourceLoadStatistics.h:
Source/WebKit2:
New functionality. Prunes statistics in this order:
- Non-prevalent resources without user interaction.
- Prevalent resources without user interaction.
- Non-prevalent resources with user interaction.
- Prevalent resources with user interaction.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
Added timestamp field lastSeen.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsSetLastSeen:forHost:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetMaxStatisticsEntries:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetPruneEntriesDownTo:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]):
Test infrastructure.
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::setMaxStatisticsEntries):
Test infrastructure.
(WebKit::ResourceLoadStatisticsStore::setPruneEntriesDownTo):
Test infrastructure.
(WebKit::sortAndPrune):
Convenience function.
(WebKit::ResourceLoadStatisticsStore::pruneStatisticsIfNeeded):
The new pruning function.
- UIProcess/Storage/ResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
Now calls ResourceLoadStatisticsStore::pruneStatisticsIfNeeded().
(WebKit::WebResourceLoadStatisticsStore::setLastSeen):
Test infrastructure.
(WebKit::WebResourceLoadStatisticsStore::setMaxStatisticsEntries):
Test infrastructure.
(WebKit::WebResourceLoadStatisticsStore::setPruneEntriesDownTo):
Test infrastructure.
- UIProcess/WebResourceLoadStatisticsStore.h:
Tools:
Nest infrastructure. Adds these functions:
- testRunner.setStatisticsLastSeen()
- setStatisticsMaxStatisticsEntries()
- setStatisticsPruneEntriesDownTo()
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsLastSeen):
(WTR::TestRunner::setStatisticsMaxStatisticsEntries):
(WTR::TestRunner::setStatisticsPruneEntriesDownTo):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setMaxStatisticsEntries):
(WTR::TestController::setPruneEntriesDownTo):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::setStatisticsLastSeen):
(WTR::TestController::setStatisticsMaxStatisticsEntries):
(WTR::TestController::setStatisticsPruneEntriesDownTo):
LayoutTests:
- http/tests/loading/resourceLoadStatistics/prune-statistics-expected.txt: Added.
- http/tests/loading/resourceLoadStatistics/prune-statistics.html: Added.
- platform/wk2/TestExpectations:
Added http/tests/loading/resourceLoadStatistics/prune-statistics.html as
[ Pass ] since Resource Load Statistics is WK2-only.
- 7:39 PM Changeset in webkit [219318] by
-
- 2 edits in trunk/Source/WebKit2
const() experimental feature should always be on by default
https://bugs.webkit.org/show_bug.cgi?id=174341
<rdar://problem/33228603>
Reviewed by Simon Fraser.
Even though this is experimental, it should be enabled by default, and
not follow the value of DEFAULT_EXPERIMENTAL_FEATURES_ENABLED.
- Shared/WebPreferencesDefinitions.h:
- 5:29 PM Changeset in webkit [219317] by
-
- 2 edits in trunk/Source/JavaScriptCore
Allocation sinking phase should consider a CheckStructure that would fail as an escape
https://bugs.webkit.org/show_bug.cgi?id=174321
<rdar://problem/32604963>
Reviewed by Filip Pizlo.
When the allocation sinking phase was generating stores to materialize
objects in a cycle with each other, it would assume that each materialized
object had a valid, non empty, set of structures. This is an OK assumption for
the phase to make because how do you materialize an object with no structure?
The abstract interpretation part of the phase will model what's in the heap.
However, it would sometimes model that a CheckStructure would fail. The phase
did nothing special for this; it just stored the empty set of structures for
its representation of a particular allocation. However, what the phase proved
in such a scenario is that, had the CheckStructure executed, it would have exited.
This patch treats such CheckStructures and MultiGetByOffsets as escape points.
This will cause the allocation in question to be materialized just before
the CheckStructure, and then at execution time, the CheckStructure will exit.
I wasn't able to write a test case for this. However, I was able to reproduce
this crash by manually editing the IR. I've opened a separate bug to help us
create a testing framework for writing tests for hard to reproduce bugs like this:
https://bugs.webkit.org/show_bug.cgi?id=174322
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- 5:01 PM Changeset in webkit [219316] by
-
- 9 edits2 adds in trunk
Web Inspector: Highlight matching CSS canvas clients when hovering contexts in the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=174279
Reviewed by Matt Baker.
Source/JavaScriptCore:
- inspector/protocol/DOM.json:
Add
highlightNodeListcommand that will highlight each node in the given list.
Source/WebCore:
Test: inspector/dom/highlightNodeList.html
- inspector/InspectorDOMAgent.h:
- inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightNodeList):
Source/WebInspectorUI:
- UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.highlightDOMNodeList):
(WebInspector.DOMTreeManager.prototype.highlightSelector):
- UserInterface/Views/CanvasTreeElement.js:
(WebInspector.CanvasTreeElement.prototype._handleMouseOver):
LayoutTests:
- inspector/dom/highlightNodeList-expected.html: Added.
- inspector/dom/highlightNodeList.html: Added.
- 4:56 PM Changeset in webkit [219315] by
-
- 31 edits in trunk
[css-align][css-flex][css-grid] 'auto' values of align-self and justify-self must not be resolved
https://bugs.webkit.org/show_bug.cgi?id=172707
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
This change makes all the cases of the test below to pass now, hence updated expectations accordingly.
- web-platform-tests/css/css-align-3/self-alignment/place-self-shorthand-006-expected.txt:
Source/WebCore:
The CSS Box Alignment specification has been changed recently so that
now all the propeties have the specificed value as computed value. The
rationale of this change are at the associated W3C github issue [1].
This change implies that we don't need to execute the StyleAdjuter
logic we implemented specifically for supporting 'auto' values
resolution for computed style. We can live now with resolution at
layout time only.
[1] https://github.com/w3c/csswg-drafts/issues/440
No new tests, just updating the already defined tests.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle): Removed
- css/StyleResolver.h:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::resolveCustomStyle):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::columnFlexItemHasStretchAlignment):
(WebCore::RenderBox::hasStretchedLogicalWidth):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::styleDidChange): Added
(WebCore::RenderFlexibleBox::alignmentForChild):
- rendering/RenderFlexibleBox.h:
LayoutTests:
Updated layout tests so that resolved value is as specified, even for 'auto' values.
- TestExpectations:
- css3/flexbox/css-properties-expected.txt:
- css3/flexbox/css-properties.html:
- css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled-expected.txt:
- css3/flexbox/new-alignment-values-invalid-if-grid-not-enabled.html:
- css3/parse-align-self.html:
- css3/parse-alignment-of-root-elements-expected.txt:
- css3/parse-alignment-of-root-elements.html:
- css3/parse-place-items.html:
- css3/parse-place-self.html:
- fast/css/ensure-flexbox-compatibility-with-initial-values-expected.txt:
- fast/css/parse-justify-self.html:
- 4:28 PM Changeset in webkit [219314] by
-
- 2 edits in trunk/Source/WebKit2
[iOS] _didCommitLayerTree should avoid calling [scrollView setZoomScale] unnecessarily
https://bugs.webkit.org/show_bug.cgi?id=174326
<rdar://problem/33150490>
Reviewed by Simon Fraser.
Only call [scrollView setZoomScale] if the new zoom scale is actually different to
avoid doing unnecessary work in UIKit.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _didCommitLayerTree:]):
- 4:25 PM Changeset in webkit [219313] by
-
- 2 edits in trunk/LayoutTests
fast/text/trak-optimizeLegibility.html is failing on macOS High Sierra
https://bugs.webkit.org/show_bug.cgi?id=174325
<rdar://problem/33190322>
Reviewed by Zalan Bujtas.
The name of the font changed.
- fast/text/trak-optimizeLegibility.html:
- 4:00 PM Changeset in webkit [219312] by
-
- 9 edits2 deletes in trunk/Source/WebKit2
Merge ResourceLoadStatisticsStore into WebResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174203
Reviewed by Brent Fulgham.
Merge ResourceLoadStatisticsStore into WebResourceLoadStatisticsStore. The 2 classes
have a similar purpose and there is no clean separation between the 2. It makes more
sense to have a single store class for resource load statistics.
If we want to simplify the WebResourceLoadStatisticsStore class, I think it'd make
more sense to split the file system I/O code out. This code adds quite a bit of
complexity.
- CMakeLists.txt:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStore]):
(-[WKWebsiteDataStore _resourceLoadStatisticsClearInMemoryAndPersistentStoreModifiedSinceHours:]):
(-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]):
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp: Removed.
- UIProcess/Storage/ResourceLoadStatisticsStore.h: Removed.
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk):
(WebKit::WebResourceLoadStatisticsStore::writeStoreToDisk):
(WebKit::WebResourceLoadStatisticsStore::startMonitoringStatisticsStorage):
(WebKit::WebResourceLoadStatisticsStore::performDailyTasks):
(WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::clearUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::isPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::clearPrevalentResource):
(WebKit::WebResourceLoadStatisticsStore::setGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::isGrandfathered):
(WebKit::WebResourceLoadStatisticsStore::setSubframeUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUnderTopFrameOrigin):
(WebKit::WebResourceLoadStatisticsStore::setSubresourceUniqueRedirectTo):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdate):
(WebKit::WebResourceLoadStatisticsStore::scheduleCookiePartitioningUpdateForDomains):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory):
(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree):
(WebKit::WebResourceLoadStatisticsStore::setGrandfatheringTime):
(WebKit::WebResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain):
(WebKit::WebResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::WebResourceLoadStatisticsStore::populateFromDecoder):
(WebKit::WebResourceLoadStatisticsStore::clearInMemory):
(WebKit::WebResourceLoadStatisticsStore::mergeStatistics):
(WebKit::WebResourceLoadStatisticsStore::shouldPartitionCookies):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains):
(WebKit::WebResourceLoadStatisticsStore::processStatistics):
(WebKit::WebResourceLoadStatisticsStore::hasHadUnexpiredRecentUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::WebResourceLoadStatisticsStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::WebResourceLoadStatisticsStore::hasStatisticsExpired):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
(WebKit::sortedPrevalentResourceTelemetry):
(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
- UIProcess/WebResourceLoadStatisticsTelemetry.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::removeData):
- WebKit2.xcodeproj/project.pbxproj:
- 4:00 PM Changeset in webkit [219311] by
-
- 6 edits in trunk/LayoutTests
Update webrtc expectations
https://bugs.webkit.org/show_bug.cgi?id=174318
Unreviewed.
Updated expectation according flakiness dashboard information.
Patch by Youenn Fablet <youenn@apple.com> on 2017-07-10
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- platform/wk2/TestExpectations:
- 3:08 PM Changeset in webkit [219310] by
-
- 19 edits6 adds in trunk
[WK2] Ignore touch events that interrupt platform-driven momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=174300
<rdar://problem/33030639>
Reviewed by Simon Fraser.
Source/WebCore:
See Source/WebKit2/ChangeLog for more detail.
Tests: fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe.html
fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html
fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::scrollingTreeNodeDidEndPanGesture):
Source/WebKit2:
Adds support for immediately failing WKContentView's UIWebTouchEventsGestureRecognizer if any touch interrupts
scroll view deceleration. Covered by 3 new LayoutTests (see Source/WebCore/ChangeLog).
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewDidEndDragging:willDecelerate:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
- UIProcess/PageClient.h:
- UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
- UIProcess/Scrolling/RemoteScrollingTree.cpp:
(WebKit::RemoteScrollingTree::scrollingTreeNodeDidEndPanGesture):
- UIProcess/Scrolling/RemoteScrollingTree.h:
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
- UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::overflowScrollViewDidEndPanGesture):
Adds plumbing in the UI process to alert the WKContentView when scroll view dragging has ended in an overflow
momentum scrolling region (tracked by an overflow scrolling tree node). This parallels UI process plumbing for
ScrollingTreeOverflowScrollingNodeIOS::overflowScrollViewWillStartPanGesture.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::overflowScrollViewDidEndPanGesture):
- UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxy::scrollingTreeNodeDidEndPanGesture):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView scrollViewDidEndPanOrPinchGesture]):
When the dragging phase of a scroll gesture ends, ensure that _canSendTouchEventsAsynchronously is reset to NO.
When touches are not being prevented, this flag is set to YES in -scrollViewWillStartPanOrPinchGesture: and
normally reset to NO in -_webTouchEventsRecognized: after all touch points have been released. However, in the
case where we've prematurely failed the web touch events gesture recognizer after -touchesBegan:,
-_webTouchEventsRecognized: will not be called again in a state where all touches have been released. Thus, we
also need to bookend the place where we begin allowing async touch event dispatch in
-scrollViewWillStartPanOrPinchGesture by disallowing async touch event dispatch in
-scrollViewDidEndPanOrPinchGesture.
This has no impact in the normal case where the user scrolls without momentum, since
-scrollViewDidEndPanOrPinchGesture will fire after async touch events have already been disallowed in
-_webTouchEventsRecognized:, and in the case where the page prevents default on touches, scrolling doesn't
happen anyways, so neither scrollViewWillStartPanOrPinchGesture nor scrollViewDidEndPanOrPinchGesture will be
invoked.
(-[WKContentView gestureRecognizer:shouldIgnoreWebTouchWithEvent:]):
Implements a new SPI hook in UIKit. This serves an identical purpose as -shouldIgnoreWebTouch, but additionally
passes the triggering UIEvent, as well as the gesture recognizer itself (following standard convention for
Objective C delegate methods). Here, we return YES in the case where one or more of the touches recognized by
the gesture is currently interrupting scroll deceleration.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::overflowScrollViewDidEndPanGesture):
LayoutTests:
Adds 3 new LayoutTests covering cases of touch event handling during scroll deceleration in mainframe and
overflow scrolling containers. See Source/WebKit2/ChangeLog for more detail.
- fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe-expected.txt: Added.
- fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-mainframe.html: Added.
- fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow-expected.txt: Added.
- fast/events/ios/no-touch-events-when-stopping-momentum-scroll-in-overflow.html: Added.
- fast/events/ios/touch-events-during-scroll-deceleration-in-overflow-expected.txt: Added.
- fast/events/ios/touch-events-during-scroll-deceleration-in-overflow.html: Added.
- 2:31 PM Changeset in webkit [219309] by
-
- 2 edits in trunk/LayoutTests
Marked animations/resume-after-page-cache.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=174183
Unreviewed test gardening.
- platform/ios-simulator-wk2/TestExpectations:
- 2:16 PM Changeset in webkit [219308] by
-
- 2 edits in trunk/Source/WebKit2
[WK2][macOS] Allow access to com.apple.cfnetwork.cfnetworkagent in the Network Process
https://bugs.webkit.org/show_bug.cgi?id=174320
<rdar://problem/33191856>
Reviewed by Geoffrey Garen.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 1:58 PM Changeset in webkit [219307] by
-
- 2 edits in trunk/Source/WebCore
Captions and subtitles not showing up in picture-in-picture for MSE content
https://bugs.webkit.org/show_bug.cgi?id=174317
rdar://problem/33188591
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-10
Reviewed by Eric Carlson.
Reverts a regression created by r218403.
- html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
- 1:09 PM Changeset in webkit [219306] by
-
- 6 edits in trunk/Source
[Win] Link error when building WTF from WTF.proj project file.
https://bugs.webkit.org/show_bug.cgi?id=174316
<rdar://problem/33178200>
Reviewed by Brent Fulgham.
WTF_CPU_X86 cmake variable needs to be set for link libraries directories to be correct.
Source/WebCore:
- WebCore.vcxproj/WebCore.proj:
Source/WebKit:
- WebKit.vcxproj/WebKit.proj:
Source/WTF:
- WTF.vcxproj/WTF.proj:
- 12:49 PM Changeset in webkit [219305] by
-
- 3 edits1 add in trunk
media element handle adding source immediately before src.
https://bugs.webkit.org/show_bug.cgi?id=174284
rdar://problem/33115439
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-07-10
Reviewed by David Kilzer.
Source/WebCore:
Test: media/video-source-before-src.html
Adding a source causes a selectMediaResource block to be enqueued.
If dataLoadingPermitted prevents creating the m_player but sets the srcAttr, then
the enqueued selectMediaResource will be in a bad state, with a srcAttr but no m_player.
This fix prevents selectMediaResource from being called, if data loading is not permitted
when adding a source element, to match how it prevents player creation when setting srcAttr.
This fix also adds a debug assert to catch the problem earlier and adds an early return to
prevent the crash in release builds.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::sourceWasAdded):
LayoutTests:
- media/video-source-before-src.html: Added.
- 12:46 PM Changeset in webkit [219304] by
-
- 13 edits in trunk/Source
Add location to NavigationActionData
https://bugs.webkit.org/show_bug.cgi?id=174233
<rdar://problem/29165518>
Reviewed by Simon Fraser.
Add the root view location of a tap to a NavigationAction to vend to Safari.
Source/WebCore:
Test: small enough change to not be tested alone.
- dom/MouseRelatedEvent.cpp:
(WebCore::MouseRelatedEvent::absoluteLocationConvertedToRootView):
- dom/MouseRelatedEvent.h:
Source/WebKit2:
- Shared/NavigationActionData.cpp:
(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):
- Shared/NavigationActionData.h:
- UIProcess/API/APINavigationAction.h:
- UIProcess/API/Cocoa/WKNavigationAction.mm:
(-[WKNavigationAction description]):
(-[WKNavigationAction _clickLocationInRootViewCoordinates]):
- UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
- WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::clickLocationInRootViewCoordinatesForMouseEvent):
(WebKit::InjectedBundleNavigationAction::clickLocationInRootViewCoordinatesForNavigationAction):
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
- WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
(WebKit::InjectedBundleNavigationAction::clickLocationInRootViewCoordinates):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::createWindow):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
- 12:04 PM Changeset in webkit [219303] by
-
- 2 edits in trunk/LayoutTests
Fixed test expectations for http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html.
https://bugs.webkit.org/show_bug.cgi?id=174120
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 11:27 AM Changeset in webkit [219302] by
-
- 20 edits1 copy2 adds3 deletes in trunk/Source/WebCore
[WebIDL] Move plugin object customization into the generator
https://bugs.webkit.org/show_bug.cgi?id=174238
Patch by Sam Weinig <sam@webkit.org> on 2017-07-10
Reviewed by Chris Dumez.
- Added [Plugin] extended attribute to forward the necessary hooks for get/set/delete to the plugin code.
- Removed [CustomNamedSetter] and replaced it's remaining uses [CustomPut] (formally called [CustomPutFunction]).
- Renamed [CustomNamedGetterOnPrototype] to [CustomPutOnPrototype] because that is actually what it does.
- Removed [CustomGetOwnPropertySlotByIndex] and made [CustomGetOwnPropertySlot] imply it, as the other custom hooks do.
- Renamed [CustomEnumerateProperty] to [CustomGetOwnPropertyNames] to conform with other attribute names.
- Renamed [CustomCall] to [CustomGetCallData] to conform with other attribute names.
- CMakeLists.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSBindingsAllInOne.cpp:
- bindings/js/JSHTMLAppletElementCustom.cpp: Removed.
- bindings/js/JSHTMLEmbedElementCustom.cpp: Removed.
- bindings/js/JSHTMLObjectElementCustom.cpp: Removed.
Remove custom bindings.
- bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::putCommon):
(WebCore::JSCSSStyleDeclaration::put):
(WebCore::JSCSSStyleDeclaration::putByIndex):
(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
Use [CustomPut] rather than [CustomNamedSetter] to allow us
to get rid of [CustomNamedSetter]. Reuse put delegate as
common code to share between put and putByIndex.
- bindings/js/JSLocationCustom.cpp:
(WebCore::getOwnPropertySlotCommon):
(WebCore::JSLocation::getOwnPropertySlot):
(WebCore::JSLocation::getOwnPropertySlotByIndex):
Replace [CustomGetOwnPropertySlotAndDescriptor] with [CustomGetOwnPropertySlot]
which is more clear and reduces the number of variants of this hook override
we need.
(WebCore::putCommon):
(WebCore::JSLocation::put):
(WebCore::JSLocation::putByIndex):
Use [CustomPut] rather than [CustomNamedSetter] to allow us
to get rid of [CustomNamedSetter]. Reuse put delegate as
common code to share between put and putByIndex.
(WebCore::JSLocationPrototype::put):
[CustomPutOnPrototype] (which weirdly used incorrectly be called
[CustomNamedGetterOnPrototype]) now works like [CustomPut] meaning
you need to call Base.
- bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginElementPropertyGetter):
(WebCore::pluginElementCustomGetOwnPropertySlot):
(WebCore::pluginElementCustomPut):
- bindings/js/JSPluginElementFunctions.h:
(WebCore::pluginElementCustomGetOwnPropertySlot): Deleted.
Remove templatized pluginElementCustomGetOwnPropertySlot, which was
completely unnecessary and merge its functionality into the out of
line overload. Remove pluginElementPropertyGetter from the header,
since it is only used in implementation, and unify the naming and
argument position (JSHTMLElement* comes first) of the hooks.
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateIndexedGetter):
(GenerateNamedGetter):
(GenerateGetOwnPropertySlot):
(GenerateGetOwnPropertySlotByIndex):
(GenerateGetOwnPropertyNames):
(GeneratePut):
(GeneratePutByIndex):
(GenerateDeleteProperty):
(GenerateDeletePropertyByIndex):
(GenerateNamedDeleterDefinition):
(InstanceOverridesGetOwnPropertySlot):
(InstanceOverridesGetOwnPropertyNames):
(InstanceOverridesPut):
(InstanceOverridesDeleteProperty):
(GenerateHeader):
(GenerateImplementation):
(GenerateGetCallData):
(GeneratePluginCall):
(GenerateLegacyCallerDefinitions):
(GenerateLegacyCallerDefinition):
(GeneratePrototypeDeclaration):
(InstanceOverridesGetCallData):
(HeaderNeedsPrototypeDeclaration):
- Add support for [Plugin]
- Remove support for [CustomNamedSetter]
- Replace [CustomGetOwnPropertySlotByIndex] with [CustomGetOwnPropertySlot]
- Replace [CustomEnumerateProperty] with [CustomGetOwnPropertyNames]
- Replace [CustomPutFunction] with [CustomPut].
- Make subroutine names more consistent (remove a few Definition suffixes)
- bindings/scripts/IDLAttributes.json:
Update for new / removed attributes.
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestInterface.h:
- bindings/scripts/test/JS/JSTestPluginInterface.cpp: Added.
- bindings/scripts/test/JS/JSTestPluginInterface.h: Added.
- bindings/scripts/test/TestInterface.idl:
- bindings/scripts/test/TestPluginInterface.idl: Added.
Update / add tests.
- css/CSSStyleDeclaration.idl:
- html/HTMLAppletElement.idl:
- html/HTMLEmbedElement.idl:
- html/HTMLObjectElement.idl:
- page/DOMWindow.idl:
- page/Location.idl:
- storage/Storage.idl:
Update for new / renamed attributes.
- 11:24 AM Changeset in webkit [219301] by
-
- 55 edits52 deletes in trunk
Web Replay: remove some unused code
https://bugs.webkit.org/show_bug.cgi?id=173903
Rubber-stamped by Joseph Pecoraro.
.:
- ManualTests/inspector/replay-keyboard-events.html: Removed.
- ManualTests/inspector/replay-mouse-events.html: Removed.
- ManualTests/inspector/replay-wheel-events.html: Removed.
- ManualTests/inspector/replay-window-navigator-basic.html: Removed.
- ManualTests/inspector/replay-window-screen.html: Removed.
- Source/cmake/OptionsMac.cmake:
- Source/cmake/WebKitFeatures.cmake:
Source/JavaScriptCore:
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- JavaScriptCore.xcodeproj/project.pbxproj:
- inspector/protocol/Replay.json: Removed.
- replay/EmptyInputCursor.h: Removed.
- replay/EncodedValue.cpp: Removed.
- replay/EncodedValue.h: Removed.
- replay/InputCursor.h: Removed.
- replay/JSInputs.json: Removed.
- replay/NondeterministicInput.h: Removed.
- replay/scripts/CodeGeneratorReplayInputs.py: Removed.
- replay/scripts/CodeGeneratorReplayInputsTemplates.py: Removed.
- replay/scripts/tests/expected/fail-on-c-style-enum-no-storage.json-error: Removed.
- replay/scripts/tests/expected/fail-on-duplicate-enum-type.json-error: Removed.
- replay/scripts/tests/expected/fail-on-duplicate-input-names.json-error: Removed.
- replay/scripts/tests/expected/fail-on-duplicate-type-names.json-error: Removed.
- replay/scripts/tests/expected/fail-on-enum-type-missing-values.json-error: Removed.
- replay/scripts/tests/expected/fail-on-missing-input-member-name.json-error: Removed.
- replay/scripts/tests/expected/fail-on-missing-input-name.json-error: Removed.
- replay/scripts/tests/expected/fail-on-missing-input-queue.json-error: Removed.
- replay/scripts/tests/expected/fail-on-missing-type-mode.json-error: Removed.
- replay/scripts/tests/expected/fail-on-missing-type-name.json-error: Removed.
- replay/scripts/tests/expected/fail-on-unknown-input-queue.json-error: Removed.
- replay/scripts/tests/expected/fail-on-unknown-member-type.json-error: Removed.
- replay/scripts/tests/expected/fail-on-unknown-type-mode.json-error: Removed.
- replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-enum-encoding-helpers-with-guarded-values.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-enum-encoding-helpers.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-enum-with-guard.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-enums-with-same-base-name.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-event-loop-shape-types.json-error: Removed.
- replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-input-with-guard.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-input-with-vector-members.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-inputs-with-flags.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.cpp: Removed.
- replay/scripts/tests/expected/generate-memoized-type-modes.json-TestReplayInputs.h: Removed.
- replay/scripts/tests/fail-on-c-style-enum-no-storage.json: Removed.
- replay/scripts/tests/fail-on-duplicate-enum-type.json: Removed.
- replay/scripts/tests/fail-on-duplicate-input-names.json: Removed.
- replay/scripts/tests/fail-on-duplicate-type-names.json: Removed.
- replay/scripts/tests/fail-on-enum-type-missing-values.json: Removed.
- replay/scripts/tests/fail-on-missing-input-member-name.json: Removed.
- replay/scripts/tests/fail-on-missing-input-name.json: Removed.
- replay/scripts/tests/fail-on-missing-input-queue.json: Removed.
- replay/scripts/tests/fail-on-missing-type-mode.json: Removed.
- replay/scripts/tests/fail-on-missing-type-name.json: Removed.
- replay/scripts/tests/fail-on-unknown-input-queue.json: Removed.
- replay/scripts/tests/fail-on-unknown-member-type.json: Removed.
- replay/scripts/tests/fail-on-unknown-type-mode.json: Removed.
- replay/scripts/tests/generate-enum-encoding-helpers-with-guarded-values.json: Removed.
- replay/scripts/tests/generate-enum-encoding-helpers.json: Removed.
- replay/scripts/tests/generate-enum-with-guard.json: Removed.
- replay/scripts/tests/generate-enums-with-same-base-name.json: Removed.
- replay/scripts/tests/generate-event-loop-shape-types.json: Removed.
- replay/scripts/tests/generate-input-with-guard.json: Removed.
- replay/scripts/tests/generate-input-with-vector-members.json: Removed.
- replay/scripts/tests/generate-inputs-with-flags.json: Removed.
- replay/scripts/tests/generate-memoized-type-modes.json: Removed.
- runtime/DateConstructor.cpp:
(JSC::constructDate):
(JSC::dateNow):
(JSC::deterministicCurrentTime): Deleted.
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::JSGlobalObject):
(JSC::JSGlobalObject::setInputCursor): Deleted.
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::inputCursor): Deleted.
Source/WebCore:
- CMakeLists.txt:
- Configurations/FeatureDefines.xcconfig:
- DerivedSources.make:
- PlatformMac.cmake:
- WebCore.xcodeproj/project.pbxproj:
- dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::lastModified):
(WebCore::Document::inputCursor): Deleted.
(WebCore::Document::setInputCursor): Deleted.
- dom/Document.h:
- inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::willDispatchEventImpl):
(WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
(WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
(WebCore::InspectorInstrumentation::didCommitLoadImpl):
(WebCore::InspectorInstrumentation::sessionCreatedImpl): Deleted.
(WebCore::InspectorInstrumentation::sessionLoadedImpl): Deleted.
(WebCore::InspectorInstrumentation::sessionModifiedImpl): Deleted.
(WebCore::InspectorInstrumentation::segmentCreatedImpl): Deleted.
(WebCore::InspectorInstrumentation::segmentCompletedImpl): Deleted.
(WebCore::InspectorInstrumentation::segmentLoadedImpl): Deleted.
(WebCore::InspectorInstrumentation::segmentUnloadedImpl): Deleted.
(WebCore::InspectorInstrumentation::captureStartedImpl): Deleted.
(WebCore::InspectorInstrumentation::captureStoppedImpl): Deleted.
(WebCore::InspectorInstrumentation::playbackStartedImpl): Deleted.
(WebCore::InspectorInstrumentation::playbackPausedImpl): Deleted.
(WebCore::InspectorInstrumentation::playbackHitPositionImpl): Deleted.
(WebCore::InspectorInstrumentation::playbackFinishedImpl): Deleted.
(WebCore::InspectorInstrumentation::replayAgentEnabled): Deleted.
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::sessionCreated): Deleted.
(WebCore::InspectorInstrumentation::sessionLoaded): Deleted.
(WebCore::InspectorInstrumentation::sessionModified): Deleted.
(WebCore::InspectorInstrumentation::segmentCreated): Deleted.
(WebCore::InspectorInstrumentation::segmentCompleted): Deleted.
(WebCore::InspectorInstrumentation::segmentLoaded): Deleted.
(WebCore::InspectorInstrumentation::segmentUnloaded): Deleted.
(WebCore::InspectorInstrumentation::captureStarted): Deleted.
(WebCore::InspectorInstrumentation::captureStopped): Deleted.
(WebCore::InspectorInstrumentation::playbackStarted): Deleted.
(WebCore::InspectorInstrumentation::playbackPaused): Deleted.
(WebCore::InspectorInstrumentation::playbackFinished): Deleted.
(WebCore::InspectorInstrumentation::playbackHitPosition): Deleted.
- inspector/InspectorReplayAgent.cpp: Removed.
- inspector/InspectorReplayAgent.h: Removed.
- inspector/InstrumentingAgents.cpp:
(WebCore::InstrumentingAgents::reset):
- inspector/InstrumentingAgents.h:
(WebCore::InstrumentingAgents::inspectorReplayAgent): Deleted.
(WebCore::InstrumentingAgents::setInspectorReplayAgent): Deleted.
- page/EventHandler.h:
- page/Page.cpp:
(WebCore::Page::Page):
- page/Page.h:
(WebCore::Page::replayController): Deleted.
- page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::synchronousScrollingReasons):
(WebCore::ScrollingCoordinator::replaySessionStateDidChange): Deleted.
- page/scrolling/ScrollingCoordinator.h:
- platform/Logging.h:
- plugins/DOMMimeTypeArray.cpp:
(WebCore::DOMMimeTypeArray::getPluginData):
- plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::pluginData):
- replay/AllReplayInputs.h: Removed.
- replay/CapturingInputCursor.cpp: Removed.
- replay/CapturingInputCursor.h: Removed.
- replay/EventLoopInput.cpp: Removed.
- replay/EventLoopInput.h: Removed.
- replay/EventLoopInputDispatcher.cpp: Removed.
- replay/EventLoopInputDispatcher.h: Removed.
- replay/FunctorInputCursor.h: Removed.
- replay/MemoizedDOMResult.cpp: Removed.
- replay/MemoizedDOMResult.h: Removed.
- replay/ReplayController.cpp: Removed.
- replay/ReplayController.h: Removed.
- replay/ReplayInputCreationMethods.cpp: Removed.
- replay/ReplayInputDispatchMethods.cpp: Removed.
- replay/ReplaySession.cpp: Removed.
- replay/ReplaySession.h: Removed.
- replay/ReplaySessionSegment.cpp: Removed.
- replay/ReplaySessionSegment.h: Removed.
- replay/ReplayingInputCursor.cpp: Removed.
- replay/ReplayingInputCursor.h: Removed.
- replay/SegmentedInputStorage.cpp: Removed.
- replay/SegmentedInputStorage.h: Removed.
- replay/SerializationMethods.cpp: Removed.
- replay/SerializationMethods.h: Removed.
- replay/WebInputs.json: Removed.
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebInspectorUI:
- .eslintrc:
- UserInterface/Base/Main.js:
(WebInspector.loaded):
- UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
- UserInterface/Controllers/ReplayManager.js: Removed.
- UserInterface/Images/ReplayPauseButton.svg: Removed.
- UserInterface/Images/ReplayPlayButton.svg: Removed.
- UserInterface/Images/ReplayRecordingButton.svg: Removed.
- UserInterface/Images/gtk/ReplayPauseButton.svg: Removed.
- UserInterface/Images/gtk/ReplayPlayButton.svg: Removed.
- UserInterface/Images/gtk/ReplayRecordingButton.svg: Removed.
- UserInterface/Main.html:
- UserInterface/Models/ReplayDashboard.js: Removed.
- UserInterface/Models/ReplaySession.js: Removed.
- UserInterface/Models/ReplaySessionSegment.js: Removed.
- UserInterface/Protocol/ReplayObserver.js: Removed.
- UserInterface/Test.html:
- UserInterface/Test/Test.js:
(WebInspector.loaded):
- UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView.create):
- UserInterface/Views/ReplayDashboardView.css: Removed.
- UserInterface/Views/ReplayDashboardView.js: Removed.
- UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::tryClose):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::stopLoadingFrame):
(WebKit::WebPage::stopLoading):
(WebKit::WebPage::reload):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::handleContextMenuEvent):
(WebKit::handleMouseEvent):
(WebKit::handleWheelEvent):
(WebKit::handleKeyEvent):
(WebKit::WebPage::scroll):
(WebKit::WebPage::logicalScroll):
Source/WTF:
- wtf/FeatureDefines.h:
Tools:
- Scripts/run-input-generator-tests: Removed.
- Scripts/webkitpy/replay/init.py: Removed.
- Scripts/webkitpy/replay/main.py: Removed.
LayoutTests:
- inspector/replay/javascript-date-now-expected.txt: Removed.
- inspector/replay/javascript-date-now.html: Removed.
- inspector/replay/javascript-random-seed-expected.txt: Removed.
- inspector/replay/javascript-random-seed.html: Removed.
- inspector/replay/window-navigator-plugins-memoized-expected.txt: Removed.
- inspector/replay/window-navigator-plugins-memoized.html: Removed.
- 11:07 AM Changeset in webkit [219300] by
-
- 3 edits in trunk/Tools
[WPE] Fix layout test baseline and TestExpectations hierarchy
https://bugs.webkit.org/show_bug.cgi?id=174092
Reviewed by Michael Catanzaro.
Like for the GTK+ port, override the default_baseline_search_path() and
_port_specific_expectations_files() methods in the webkitpy.port.WPEPort class.
Both methods operate on a short list of search paths that defaults to 'wpe' and
'wk2', along with any other user-specified platform directory.
The test_expectations_file_position() method is overridden for testing purposes,
and relevant unit tests are added.
- Scripts/webkitpy/port/wpe.py:
(WPEPort._search_paths):
(WPEPort):
(WPEPort.default_baseline_search_path):
(WPEPort._port_specific_expectations_files):
(WPEPort.test_expectations_file_position):
- Scripts/webkitpy/port/wpe_unittest.py:
(WPEPortTest.test_default_baseline_search_path):
(WPEPortTest):
(WPEPortTest.test_port_specific_expectations_files):
- 10:52 AM Changeset in webkit [219299] by
-
- 2 edits in trunk/LayoutTests
Skipped http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html.
https://bugs.webkit.org/show_bug.cgi?id=174120
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 10:43 AM Changeset in webkit [219298] by
-
- 8 edits in trunk/Source
Cleanup lifetime issues of UniqueIDBDatabase and IDBBackingStore.
<rdar://problem/32908525> and https://bugs.webkit.org/show_bug.cgi?id=174244
Reviewed by David Kilzer and Alex Christensen.
Source/WebCore:
No targeted test possible, implicitly covered by all IDB tests.
The original idea behind UniqueIDBDatabase lifetime was that they are ThreadSafeRefCounted and
we take protector Refs when any operation that needs it alive is in flight.
This added variability to their lifetime which made it difficult to enforce a few different
design invariants, namely:
- UniqueIBDDatabase objects are always created and destroyed only on the main thread.
- IDBBackingStore objects are always created and destroyed only on the database thread.
This patch removes the ref counting and instead ties UniqueIDBDatabase lifetime to a
std::unique_ptr that is owned by the IDBServer.
Whenever any operations on the UniqueIDBDatabase are in flight it is kept alive by virtue
of that unique_ptr in the IDBServer. Once a UniqueIDBDatabase is completely done with all of
its work, the following happens:
- On the main thread the IDBServer removes the unique_ptr owning the UniqueIDBDatabase from its map.
- It hands the unique_ptr to the UniqueIDBDatabase itself, which schedules one final database thread task.
- That database thread task is to destroy the IDBBackingStore, kill its message queues, and then message back to the main thread for one final task.
- That main thread task is to release the unique_ptr, resulting in destruction of the UniqueIDBDatabase object.
This is safe, predictable, solves the lifetime issues that r218516 originally tried to solve,
and solves the lifetime issues that r218516 introduced.
(This patch also adds many more assertions to cover various design invariants throughout the
lifecycle of a particular UniqueIDBDatabase)
ASSERT that IDBBackingStores are only ever created and destroyed on the background thread:
- Modules/indexeddb/server/IDBBackingStore.h:
(WebCore::IDBServer::IDBBackingStore::~IDBBackingStore):
(WebCore::IDBServer::IDBBackingStore::IDBBackingStore):
Transition UniqueIDBDatabase ownership from a RefPtr to a std::unique_ptr:
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getOrCreateUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::closeAndTakeUniqueIDBDatabase):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
(WebCore::IDBServer::IDBServer::closeUniqueIDBDatabase): Deleted.
- Modules/indexeddb/server/IDBServer.h:
Make all the other changes mentioned above:
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase): Bulk up on ASSERTs
(WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabase::performUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::shutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didShutdownForClose):
(WebCore::IDBServer::UniqueIDBDatabase::didDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::handleCurrentOperation):
(WebCore::IDBServer::UniqueIDBDatabase::performIterateCursor):
(WebCore::IDBServer::UniqueIDBDatabase::performPrefetchCursor):
(WebCore::IDBServer::UniqueIDBDatabase::operationAndTransactionTimerFired):
(WebCore::IDBServer::UniqueIDBDatabase::activateTransactionInBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::postDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::maybeFinishHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::isDoneWithHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformUnconditionalDeleteBackingStore): Deleted.
- Modules/indexeddb/server/UniqueIDBDatabase.h:
(WebCore::IDBServer::UniqueIDBDatabase::create): Deleted.
Source/WTF:
Add proper "kill" support to CrossThreadQueue, as well as isEmpty() support.
- wtf/CrossThreadQueue.h:
(WTF::CrossThreadQueue<DataType>::append):
(WTF::CrossThreadQueue<DataType>::kill):
(WTF::CrossThreadQueue<DataType>::isKilled):
(WTF::CrossThreadQueue<DataType>::isEmpty):
(WTF::CrossThreadQueue::isKilled): Deleted.
- 10:09 AM Changeset in webkit [219297] by
-
- 26 edits in trunk
Further WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore clean up
https://bugs.webkit.org/show_bug.cgi?id=174301
Reviewed by Brent Fulgham.
Source/WebCore:
Moved some generic file system utility functions down to platform's FileSystem.h.
- platform/FileSystem.cpp:
(WebCore::openAndLockFile):
(WebCore::unlockAndCloseFile):
- platform/FileSystem.h:
Source/WebKit2:
General clean up and various simplifications / optimizations to WebResourceLoadStatisticsStore
and ResourceLoadStatisticsStore classes.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsUpdateCookiePartitioning]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSetShouldPartitionCookies:forHost:]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::create):
(WebKit::ResourceLoadStatisticsStore::ResourceLoadStatisticsStore):
(WebKit::ResourceLoadStatisticsStore::hasHadRecentUserInteraction):
(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
(WebKit::ResourceLoadStatisticsStore::populateFromDecoder):
(WebKit::ResourceLoadStatisticsStore::clearInMemory):
(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
(WebKit::ResourceLoadStatisticsStore::updateCookiePartitioning):
(WebKit::ResourceLoadStatisticsStore::updateCookiePartitioningForDomains):
(WebKit::ResourceLoadStatisticsStore::processStatistics):
(WebKit::ResourceLoadStatisticsStore::hasHadUnexpiredRecentUserInteraction):
(WebKit::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
- UIProcess/Storage/ResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::~WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
(WebKit::WebResourceLoadStatisticsStore::grandfatherExistingWebsiteData):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk):
(WebKit::WebResourceLoadStatisticsStore::applicationWillTerminate):
(WebKit::WebResourceLoadStatisticsStore::resourceLogFilePath):
(WebKit::WebResourceLoadStatisticsStore::writeStoreToDisk):
(WebKit::WebResourceLoadStatisticsStore::scheduleOrWriteStoreToDisk):
(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):
(WebKit::WebResourceLoadStatisticsStore::startMonitoringStatisticsStorage):
(WebKit::WebResourceLoadStatisticsStore::platformExcludeFromBackup):
(WebKit::WebResourceLoadStatisticsStore::createDecoderFromDisk):
(WebKit::WebResourceLoadStatisticsStore::performDailyTasks):
(WebKit::WebResourceLoadStatisticsStore::logUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::hasHadUserInteraction):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioning):
(WebKit::WebResourceLoadStatisticsStore::updateCookiePartitioningForDomains):
(WebKit::WebResourceLoadStatisticsStore::clearInMemory):
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryAndPersistent):
(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::WebResourceLoadStatisticsStore::setDataRecordsBeingRemoved):
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
(WebKit::sortedPrevalentResourceTelemetry):
(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::updateCookiePartitioningForTopPrivatelyOwnedDomains):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Tools:
Rename some of the testRunner API for clarity and to better match what it calls
internally.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsUpdateCookiePartitioning):
(WTR::TestRunner::statisticsSetShouldPartitionCookiesForHost):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::statisticsUpdateCookiePartitioning):
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::statisticsUpdateCookiePartitioning):
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost):
LayoutTests:
Update existing layout tests to reflect testRunner API changes.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
- http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
- 10:03 AM Changeset in webkit [219296] by
-
- 3 edits2 adds in trunk
REGRESSION(r210226): Keyboard-focused element not preserved when navigating back through page cache, causing multiple elements to have focus
https://bugs.webkit.org/show_bug.cgi?id=174302
<rdar://problem/33204273>
Reviewed by Antti Koivisto.
Source/WebCore:
Don't clear the active/hovered/focused elements when destroying the render tree,
since we might need to reconstruct it later, and would like to remember which
elements those were.
Only the focused state actually stuck when going in and out of the page cache,
but this patch removes all the element pointer clearing for consistency.
Test: fast/history/page-cache-element-state-focused.html
- dom/Document.cpp:
(WebCore::Document::destroyRenderTree):
LayoutTests:
- fast/history/page-cache-element-state-focused-expected.html: Added.
- fast/history/page-cache-element-state-focused.html: Added.
- 9:37 AM WebKitGTK/Gardening/Calendar edited by
- Yoon -> Charlie (diff)
- 9:23 AM Changeset in webkit [219295] by
-
- 4 edits2 deletes in trunk/Source/WebKit2
[SOUP] Remove WebKitSoupCookieJarSqlite
https://bugs.webkit.org/show_bug.cgi?id=174310
Reviewed by Carlos Garcia Campos.
It seems WebKitSoupCookieJarSqlite uses exactly the same database format as the upstream
SoupCookieJarDb class. WebKitSoupCookieJarSqlite is a copy of SoupCookieJarSqlite that uses
WebCore's SQLite wrapper and WTF stuff. WebKitSoupCookieJarSqlite exists only because
SoupCookieJarDb is relatively new, and the older SoupCookieJarSqlite class existed only in
libsoup-gnome rather than libsoup proper. The advantage of continuing to use our
WebKitSoupCookieJarSqlite class, besides that we already know it works, is that it utilizes
the same SQLiteDatabase class that is used elsewhere in WebKit. But that's not really any
reason to keep the class around, when SoupCookieJarDb does exactly the same thing. It was
introduced in libsoup 2.42 and that is already our minimum required version, so we can
switch now.
This passes a quick sanity-check of Epiphany's cookies dialog and also TestCookieManager.
- PlatformGTK.cmake:
- PlatformWPE.cmake:
- WebProcess/Cookies/soup/WebCookieManagerSoup.cpp:
(WebKit::WebCookieManager::setCookiePersistentStorage):
- WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp: Removed.
- WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h: Removed.
- 9:21 AM Changeset in webkit [219294] by
-
- 3 edits in trunk/Source/WebCore
REGRESSION (r218616): Cannot build WebCore for macOS 10.12 with macOS 10.13 SDK
https://bugs.webkit.org/show_bug.cgi?id=173939
Reviewed by Dan Bernstein.
(The code in this change was either suggested or written by Dan Bernstein with a very
minor adjustment to get it to build).
Allow WebCore to link even though CTFontCreatePhysicalFontForCharactersWithLanguage() is
undefined when building against the macOS 10.13 SDK targeting macOS 10.12. Let the dynamic
linker resolve the undefined symbol.
For completeness the SPI CTFontCreatePhysicalFontForCharactersWithLanguage() was removed
from the macOS 10.13 SDK.
- Configurations/WebCore.xcconfig: Tell the linker that CTFontCreatePhysicalFontForCharactersWithLanguage()
can be undefined when building against macOS 10.13 or later SDK.
- platform/spi/cocoa/CoreTextSPI.h: Annotate CTFontCreatePhysicalFontForCharactersWithLanguage()
with its availability information.
- 9:17 AM Changeset in webkit [219293] by
-
- 2 edits in trunk/Source/WebKit2
REGRESSION(r213590): UI process updates the visible content rects more often than it did in iOS 10
https://bugs.webkit.org/show_bug.cgi?id=174282
<rdar://problem/33144344>
Reviewed by Simon Fraser.
In r213590, we accidentally refactored -[WKWebView _didCommitLayerTree:] to call _scheduleVisibleContentRectUpdate
more often. Instead, this should be triggered from inside the "if" statements.
No tests because there is no behavior change. Performance change is tested in MotionMark.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _isShowingVideoPictureInPicture]):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView goBack]):
(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _restorePageStateToUnobscuredCenter:scale:]):
(-[WKWebView _zoomToRect:withOrigin:fitEntireRect:minimumScale:maximumScale:minimumScrollDistance:]):
(-[WKWebView scrollViewWillEndDragging:withVelocity:targetContentOffset:]):
(-[WKWebView scrollViewDidScroll:]):
(-[WKWebView _visibleContentRect]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _scheduleVisibleContentRectUpdateAfterScrollInView:]):
(-[WKWebView _updateVisibleContentRects]):
(-[WKWebView _navigationGestureDidBegin]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _reloadExpiredOnly]):
(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _setUnobscuredSafeAreaInsets:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):
(-[WKWebView _clearOverrideLayoutParameters]):
(-[WKWebView _requestActivatedElementAtPosition:completionBlock:]):
(-[WKWebView _propertiesOfLayerWithID:]):
- 9:10 AM Changeset in webkit [219292] by
-
- 2 edits in trunk/Tools
[GStreamer] Live twitch.tv videos do not play
https://bugs.webkit.org/show_bug.cgi?id=174222
Patch by Charlie Turner <cturner@igalia.com> on 2017-07-10
Reviewed by Michael Catanzaro.
Upgrade GStreamer to 1.10.5. It contains a change to typefind that
fixes videos not playing on twitch.tv.
- gtk/jhbuild.modules:
- 9:03 AM Changeset in webkit [219291] by
-
- 3 edits2 adds in trunk
Block of text is missing in iBooks sample books.
https://bugs.webkit.org/show_bug.cgi?id=174295
<rdar://problem/32955620>
Reviewed by Antti Koivisto.
Source/WebCore:
In the simple line layout context, translating y coordinate to a line index is
normally just a (y / line height) operation. However in case of strut offsets (pagination)
we need to take these extra paddings into account while resolving the line index.
This patch fixes the boundary checking for a given line by using the font size only
when the font is taller than the line.
- rendering/SimpleLineLayoutResolver.cpp:
(WebCore::SimpleLineLayout::RunResolver::adjustLineIndexForStruts):
LayoutTests:
- fast/multicol/simple-line-layout-line-index-after-strut-2-expected.html: Added.
- fast/multicol/simple-line-layout-line-index-after-strut-2.html: Added.
- 6:21 AM Changeset in webkit [219290] by
-
- 5 edits in trunk/Source
[SOUP] SoupCookieJar is never released (resulting in sqlite temp files lying around)
https://bugs.webkit.org/show_bug.cgi?id=166029
Reviewed by Michael Catanzaro.
Source/WebCore:
Add clearSoupNetworkSessionAndCookieStorage() to clear the SoupNetworkSession and cookie storage of the main
network session, ensuring the cookies database is properly closed.
- platform/network/NetworkStorageSession.h:
- platform/network/soup/NetworkStorageSessionSoup.cpp:
(WebCore::NetworkStorageSession::clearSoupNetworkSessionAndCookieStorage):
Source/WebKit2:
Clear the SoupNetworkSession and cookie storage after the main loop quits.
- NetworkProcess/soup/NetworkProcessMainSoup.cpp:
(WebKit::NetworkProcessMainUnix):
- 6:19 AM Changeset in webkit [219289] by
-
- 7 edits1 move in trunk
Move make-js-file-arrays.py from WebCore to JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=174024
Reviewed by Michael Catanzaro.
.:
Make MAKE_JS_FILE_ARRAYS independent of WebCore and update it to use make-js-file-arrays.py from
JavaScriptCore. It's no longer needed to set PYTHON_PATH to find jsmin.py.
- Source/cmake/WebKitMacros.cmake:
Source/JavaScriptCore:
It's currently used only by WebCore, but it depends on other JavaScriptCore scripts and it's not WebCore
specific at all. I plan to use it to compile the JavaScript atoms used by the WebDriver implementation.
Added command line option to pass the namespace to use instead of using WebCore.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Scripts/make-js-file-arrays.py: Renamed from Source/WebCore/Scripts/make-js-file-arrays.py.
(main):
Source/WebCore:
- CMakeLists.txt: Explicitly add files generated by MAKE_JS_FILE_ARRAYS to the build, since the macro no longer
does it.
- DerivedSources.make: Updated to use make-js-file-arrays.py from JavaScriptCore. It's no longer needed to set
PYTHON_PATH to find jsmin.py.
- 5:28 AM WebKitGTK/TrackingMemoryErrors edited by
- Comment that you need to be in the jhbuild shell (diff)
- 3:13 AM Changeset in webkit [219288] by
-
- 2 edits in trunk/Source/WebCore
[GTK] http/tests/media/video-redirect.html is failing
https://bugs.webkit.org/show_bug.cgi?id=174260
Patch by Charlie Turner <cturner@igalia.com> on 2017-07-10
Reviewed by Carlos Garcia Campos.
Make sure we're testing new URLs within the same security origin.
Covered by existing tests.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::convertToInternalProtocol): Factor out setting our
internal URL schema.
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Use the
refactored helper.
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation): Use
refactored helper to ensure both URLs have the same origin.
- 3:04 AM Changeset in webkit [219287] by
-
- 2 edits in trunk/Source/WebKit2
[WK2] Action sheets for links fail to present in WebKit2 PDF view
https://bugs.webkit.org/show_bug.cgi?id=174307
<rdar://problem/31412128>
Reviewed by Tim Horton.
Currently, presenting an action sheet for a link always uses the WKActionSheetPresentAtClosestIndicatorRect
codepath, which requires text indicator data for the link. However, when showing an action sheet for a link via
WKPDFView, a text indicator for the link is not included, so the popover rect ends up being an empty rect at the
origin, which causes us to bail from presenting the popover.
To address this, we tweak our heuristic for determining which action sheet presentation style to use, so that we
only use the closest indicator rect for a link if the text indicator data is also present (otherwise, we fall
back to using the element rect). All other behavior is the same.
- UIProcess/ios/WKActionSheetAssistant.mm:
(-[WKActionSheetAssistant showImageSheet]):
(presentationStyleForView):
Refactor _shouldPresentAtTouchLocationForElementRect into presentationStyleForView, a static function that
returns a WKActionSheetPresentationStyle.
(-[WKActionSheetAssistant showLinkSheet]):
(-[WKActionSheetAssistant _shouldPresentAtTouchLocationForElementRect:]): Deleted.
Jul 9, 2017:
- 10:58 PM Changeset in webkit [219286] by
-
- 2 edits in trunk/Tools
Add WebGL2 configuration option to build-webkit
https://bugs.webkit.org/show_bug.cgi?id=174251
Reviewed by Michael Catanzaro.
- Scripts/webkitperl/FeatureList.pm: Add the 'webgl2' option, making it possible
to enable the ENABLE_WEBGL2 flag through the build-webkit script. The feature
is marked as enabled for the Apple Cocoa ports.
- 7:34 PM Changeset in webkit [219285] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Drop LineNumberAdder since we no longer treat <LF><CR> (not <CR><LF>) as one line terminator
https://bugs.webkit.org/show_bug.cgi?id=174296
Reviewed by Mark Lam.
Previously, we treat <LF><CR> as one line terminator. So we increase line number by one.
It caused a problem in scanning template literals. While template literals normalize
<LF><CR> to <LF><LF>, we still needed to increase line number by only one.
To handle it correctly, LineNumberAdder is introduced.
As of r219263, <LF><CR> is counted as two line terminators. So we do not need to have
LineNumberAdder. Let's just use shiftLineTerminator() instead.
- parser/Lexer.cpp:
(JSC::Lexer<T>::parseTemplateLiteral):
(JSC::LineNumberAdder::LineNumberAdder): Deleted.
(JSC::LineNumberAdder::clear): Deleted.
(JSC::LineNumberAdder::add): Deleted.
- 7:18 PM Changeset in webkit [219284] by
-
- 10 edits3 adds in trunk
Resource Load Statistics: User interaction should always go to top document
https://bugs.webkit.org/show_bug.cgi?id=174120
<rdar://problem/33117899>
Patch by John Wilander <wilander@apple.com> on 2017-07-08
Reviewed by Chris Dumez.
Source/WebCore:
Test: http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html
- dom/UserGestureIndicator.cpp:
(WebCore::UserGestureIndicator::UserGestureIndicator):
Now logs user interaction for the top document.
- loader/ResourceLoadObserver.cpp:
(WebCore::ResourceLoadObserver::setThrottledObserverNotifications):
Test infrastructure.
(WebCore::ResourceLoadObserver::setNotificationCallback):
Callback now takes a ResourceLoadObserver::NotificationType.
(WebCore::ResourceLoadObserver::logFrameNavigation):
Submits the configured ResourceLoadObserver::NotificationType.
(WebCore::ResourceLoadObserver::logSubresourceLoading):
Submits the configured ResourceLoadObserver::NotificationType.
(WebCore::ResourceLoadObserver::logWebSocketLoading):
Submits the configured ResourceLoadObserver::NotificationType.
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
Submits the configured ResourceLoadObserver::NotificationType.
- loader/ResourceLoadObserver.h:
- testing/Internals.cpp:
(WebCore::Internals::resetToConsistentState):
Resets to throttled notifications.
(WebCore::Internals::setResourceLoadStatisticsThrottledObserverNotifications):
Test infrastructure.
- testing/Internals.h:
- testing/Internals.idl:
Added internals.setResourceLoadStatisticsThrottledObserverNotifications().
LayoutTests:
- http/tests/loading/resourceLoadStatistics/resources/dummy.html: Added.
- http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame-expected.txt: Added.
- http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html: Added.
- platform/mac-wk2/TestExpectations:
Added as [ Pass ].
- 2:26 PM Changeset in webkit [219283] by
-
- 14 edits in trunk/Source
Remove some obsolete WebKitVersionChecks.
https://bugs.webkit.org/show_bug.cgi?id=174294
Reviewed by Dan Bernstein.
Source/WebCore:
No new tests (No change to testable behavior)
- dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::dispatchErrorEvent):
- page/Settings.in:
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isOkCupid): Deleted.
(WebCore::IOSApplication::isFacebook): Deleted.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation):
Source/WebKit/ios:
- WebView/WebPDFViewIOS.mm:
(-[WebPDFView drawPage:]):
Source/WebKit/mac:
- Misc/WebKitVersionChecks.h:
- WebView/WebHTMLView.mm:
(-[WebHTMLView hitTest:]):
- WebView/WebView.mm:
(shouldRespectPriorityInCSSAttributeSetters):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _preferencesChanged:]):
(shouldTransformsAffectOverflow): Deleted.
(shouldDispatchJavaScriptWindowOnErrorEvents): Deleted.
Source/WebKit2:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):
- 1:19 PM Changeset in webkit [219282] by
-
- 6 edits in trunk/Source/JavaScriptCore
[Xcode] ICU headers aren’t treated as system headers after r219155
https://bugs.webkit.org/show_bug.cgi?id=174299
Reviewed by Sam Weinig.
- Configurations/JavaScriptCore.xcconfig: Pass --system-header-prefix=unicode/ to the C and C++ compilers.
- 5:22 AM Changeset in webkit [219281] by
-
- 8 edits in trunk/Source
[JSC] Use fastMalloc / fastFree for STL containers
https://bugs.webkit.org/show_bug.cgi?id=174297
Reviewed by Sam Weinig.
Source/JavaScriptCore:
In some places, we intentionally use STL containers over WTF containers.
For example, we sometimes use std::unordered_{set,map} instead of WTF::Hash{Set,Map}
because we do not have effective empty / deleted representations in the space of key's value.
But just using STL container means using libc's malloc instead of our fast malloc (bmalloc if it is enabled).
We introduce WTF::FastAllocator. This is C++ allocator implementation using fastMalloc and fastFree.
We specify this allocator to STL containers' template parameter to allocate memory from fastMalloc.
This WTF::FastAllocator gives us a chance to use STL containers if it is necessary
without compromising memory allocation throughput.
- dfg/DFGGraph.h:
- dfg/DFGIntegerCheckCombiningPhase.cpp:
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
- runtime/FunctionHasExecutedCache.h:
- runtime/TypeLocationCache.h:
Source/WTF:
- wtf/FastMalloc.h:
(WTF::FastAllocator::FastAllocator):
(WTF::FastAllocator::allocate):
(WTF::FastAllocator::deallocate):
(WTF::FastAllocator::operator==):
(WTF::FastAllocator::operator!=):
Jul 8, 2017:
- 10:05 PM Changeset in webkit [219280] by
-
- 9 edits in trunk/Source
Remove some obsolete RuntimeApplicationChecks.
https://bugs.webkit.org/show_bug.cgi?id=174293
Reviewed by Dan Bernstein.
Source/WebCore:
No new tests (No change to testable behavior)
- html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parametersForPlugin):
(WebCore::shouldNotPerformURLAdjustment): Deleted.
- platform/RuntimeApplicationChecks.h:
- platform/cocoa/RuntimeApplicationChecksCocoa.mm:
(WebCore::IOSApplication::isDaijisenDictionary): Deleted.
(WebCore::IOSApplication::isNASAHD): Deleted.
(WebCore::IOSApplication::isTheEconomistOnIphone): Deleted.
- platform/ios/wak/WebCoreThread.h:
- platform/ios/wak/WebCoreThread.mm:
(StartWebThread):
(WebThreadSetDelegateSourceRunLoopMode): Deleted.
Source/WebKit/mac:
- Misc/WebKitVersionChecks.h:
- WebView/WebView.mm:
(+[WebView enableWebThread]):
(-[WebView _needsPreHTML5ParserQuirks]):
- 7:58 PM Changeset in webkit [219279] by
-
- 14 edits in trunk/Source/WebCore
[Curl] Safe access and life cycle management of bare Curl handle
by wrapping with C++ class
https://bugs.webkit.org/show_bug.cgi?id=174002
Patch by Basuke Suzuki <Basuke Suzuki> on 2017-07-08
Reviewed by Alex Christensen.
- platform/network/ResourceHandle.h:
- platform/network/ResourceHandleInternal.h:
- platform/network/curl/CookieJarCurl.cpp:
(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):
- platform/network/curl/CurlContext.cpp:
(WebCore::CurlContext::CurlContext):
(WebCore::CurlContext::~CurlContext):
(WebCore::CurlContext::initCookieSession):
(WebCore::CurlShareHandle::CurlShareHandle):
(WebCore::CurlShareHandle::~CurlShareHandle):
(WebCore::CurlShareHandle::lockCallback):
(WebCore::CurlShareHandle::unlockCallback):
(WebCore::CurlShareHandle::mutexFor):
(WebCore::CurlMultiHandle::CurlMultiHandle):
(WebCore::CurlMultiHandle::~CurlMultiHandle):
(WebCore::CurlMultiHandle::addHandle):
(WebCore::CurlMultiHandle::removeHandle):
(WebCore::CurlMultiHandle::getFdSet):
(WebCore::CurlMultiHandle::perform):
(WebCore::CurlMultiHandle::readInfo):
(WebCore::CurlHandle::CurlHandle):
(WebCore::CurlHandle::~CurlHandle):
(WebCore::CurlHandle::perform):
(WebCore::CurlHandle::pause):
(WebCore::CurlHandle::enableShareHandle):
(WebCore::CurlHandle::setPrivateData):
(WebCore::CurlHandle::setUrl):
(WebCore::CurlHandle::clearUrl):
(WebCore::CurlHandle::clearRequestHeaders):
(WebCore::CurlHandle::appendRequestHeader):
(WebCore::CurlHandle::enableRequestHeaders):
(WebCore::CurlHandle::enableHttpGetRequest):
(WebCore::CurlHandle::enableHttpHeadRequest):
(WebCore::CurlHandle::enableHttpPostRequest):
(WebCore::CurlHandle::setPostFields):
(WebCore::CurlHandle::setPostFieldLarge):
(WebCore::CurlHandle::enableHttpPutRequest):
(WebCore::CurlHandle::setInFileSizeLarge):
(WebCore::CurlHandle::setHttpCustomRequest):
(WebCore::CurlHandle::enableAcceptEncoding):
(WebCore::CurlHandle::enableAllowedProtocols):
(WebCore::CurlHandle::enableFollowLocation):
(WebCore::CurlHandle::enableAutoReferer):
(WebCore::CurlHandle::enableHttpAuthentication):
(WebCore::CurlHandle::setHttpAuthUserPass):
(WebCore::CurlHandle::enableCAInfoIfExists):
(WebCore::CurlHandle::setSslVerifyPeer):
(WebCore::CurlHandle::setSslVerifyHost):
(WebCore::CurlHandle::setSslCert):
(WebCore::CurlHandle::setSslCertType):
(WebCore::CurlHandle::setSslKeyPassword):
(WebCore::CurlHandle::enableCookieJarIfExists):
(WebCore::CurlHandle::setCookieList):
(WebCore::CurlHandle::getCookieList):
(WebCore::CurlHandle::clearCookieList):
(WebCore::CurlHandle::enableProxyIfExists):
(WebCore::CurlHandle::enableTimeout):
(WebCore::CurlHandle::setHeaderCallbackFunction):
(WebCore::CurlHandle::setWriteCallbackFunction):
(WebCore::CurlHandle::setReadCallbackFunction):
(WebCore::CurlHandle::setSslCtxCallbackFunction):
(WebCore::CurlHandle::getEffectiveURL):
(WebCore::CurlHandle::getPrimaryPort):
(WebCore::CurlHandle::getResponseCode):
(WebCore::CurlHandle::getContentLenghtDownload):
(WebCore::CurlHandle::getHttpAuthAvail):
(WebCore::CurlHandle::getTimes):
(WebCore::CurlHandle::maxCurlOffT):
(WebCore::CurlHandle::expectedSizeOfCurlOffT):
(WebCore::CurlHandle::enableVerboseIfUsed):
(WebCore::CurlHandle::enableStdErrIfUsed):
(WebCore::CurlContext::getEffectiveURL): Deleted.
(WebCore::CurlContext::createMultiHandle): Deleted.
(WebCore::CurlContext::mutexFor): Deleted.
(WebCore::CurlContext::lock): Deleted.
(WebCore::CurlContext::unlock): Deleted.
- platform/network/curl/CurlContext.h:
(WebCore::CurlGlobal::CurlGlobal):
(WebCore::CurlGlobal::~CurlGlobal):
(WebCore::CurlShareHandle::handle):
(WebCore::CurlContext::shareHandle):
(WebCore::CurlHandle::handle):
(WebCore::CurlHandle::url):
(WebCore::CurlContext::curlShareHandle): Deleted.
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::cancel):
(WebCore::CurlDownload::getUrl):
(WebCore::CurlDownload::addHeaders):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::writeCallback):
- platform/network/curl/CurlDownload.h:
- platform/network/curl/CurlJobManager.cpp:
(WebCore::CurlJobManager::CurlJobManager):
(WebCore::CurlJobManager::~CurlJobManager):
(WebCore::CurlJobManager::addToCurl):
(WebCore::CurlJobManager::removeFromCurl):
(WebCore::CurlJobManager::workerThread):
- platform/network/curl/CurlJobManager.h:
(WebCore::CurlJobManager::getMultiHandle): Deleted.
- platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::calculateWebTimingInformations):
(WebCore::handleLocalReceiveResponse):
(WebCore::writeCallback):
(WebCore::getProtectionSpace):
(WebCore::headerCallback):
(WebCore::readCallback):
(WebCore::setupFormData):
(WebCore::ResourceHandle::setupPUT):
(WebCore::ResourceHandle::setupPOST):
(WebCore::ResourceHandle::dispatchSynchronousJob):
(WebCore::ResourceHandle::applyAuthentication):
(WebCore::ResourceHandle::initialize):
(WebCore::ResourceHandle::handleCurlMsg):
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::removeFromCurl):
(WebCore::ResourceHandleManager::startJob):
- platform/network/curl/ResourceHandleManager.h:
- platform/network/curl/SSLHandle.cpp:
(WebCore::setSSLClientCertificate):
(WebCore::certVerifyCallback):
(WebCore::setSSLVerifyOptions):
- 4:59 PM Changeset in webkit [219278] by
-
- 5 edits2 adds in trunk
REGRESSION: "visibility:hidden" does not hide play button for video elements
https://bugs.webkit.org/show_bug.cgi?id=174258
<rdar://problem/33181452>
Patch by Antoine Quint <Antoine Quint> on 2017-07-08
Reviewed by Dean Jackson.
Source/WebCore:
In order to not have most styles from the page affect the shadow root, we set "all: initial" on the
media controls container. However, we need to still make the "visibility" property inherit from its
host such that "visibility: hidden" on the host won't be overridden by setting the property back to
its initial value, which is "visible".
Test: media/modern-media-controls/css/visibility-hidden.html
- Modules/modern-media-controls/controls/media-controls.css:
(.media-controls-container):
LayoutTests:
Add a test that checks that <video controls style="visibility:hidden"> does not render anything.
- media/modern-media-controls/css/visibility-hidden-expected.html: Added.
- media/modern-media-controls/css/visibility-hidden.html: Added.
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 4:11 PM Changeset in webkit [219277] by
-
- 37 edits in trunk
Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174290
Reviewed by Brent Fulgham.
Source/WebKit2:
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsProcessStatisticsAndDataRecords]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSubmitTelemetry]):
- UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
Rename a couple of functions in the Cocoa SPI for clarity and to match the name
of their internal implementation.
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::create):
(WebKit::ResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain):
Stylistic changes.
(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
Make const.
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):
Use HashMap::add() instead of HashMap::set(). There is not supposed to have any duplicate
keys so add() is sufficient and more efficient.
(WebKit::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): Removed.
clearInMemoryAndPersistent() was only called from WebResourceLoadStatisticsStore and
the m_deletePersistentStoreHandler / m_grandfatherExistingWebsiteDataHandler were both
set by the WebResourceLoadStatisticsStore as well. Therefore, we don't really need this
function, WebResourceLoadStatisticsStore now calls ResourceLoadStatisticsStore::clearInMemory()
instead and takes care of doing what the m_deletePersistentStoreHandler /
m_grandfatherExistingWebsiteDataHandler handlers were doing on its side.
(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
Pass Vector as rvalue reference, as a preparation for a future optimization. Added FIXME
comment about the optimization.
(WebKit::ResourceLoadStatisticsStore::setNotificationCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setDeletePersistentStoreCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setFireTelemetryCallback): Removed.
Drop those callback setters. WebResourceLoadStatisticsStore is the only client of
ResourceLoadStatisticsStore and those callbacks were always called as a result of
an operation requested by the WebResourceLoadStatisticsStore. Therefore, those are
not needed. WebResourceLoadStatisticsStore can take care of doing what those
callbacks were doing on its side.
(WebKit::ResourceLoadStatisticsStore::processStatistics):
Pass parameter by const reference since we clearly do not intend to transfer ownership of it.
(WebKit::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
(WebKit::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
Stylistic changes.
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords): Removed.
(WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): Removed.
(WebKit::ResourceLoadStatisticsStore::dataRecordsWereRemoved): Removed.
Those were moved to WebResourceLoadStatisticsStore since they do not require
any access to the statistics, and are only used by WebResourceLoadStatisticsStore.
- UIProcess/Storage/ResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
Store registering most callbacks on the coreStore. Instead, the logic of those
callbacks is now inlined in the few methods in WebResourceLoadStatisticsStore
that were causing these callbacks to be called.
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
Access some methods on WebResourceLoadStatisticsStore instead of the coreStore
since those were moved.
(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
Drop unnecessary mutable for lambda.
(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
Pass parameter as rvalue reference as a preparation for a future optimization.
(WebKit::WebResourceLoadStatisticsStore::hasStatisticsFileChangedSinceLastSync):
Make const.
(WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
Add assertion to make sure this is called on the main thread.
(WebKit::WebResourceLoadStatisticsStore::fireDataModificationHandler): Removed.
This was dispatching to a background queue to call fireDataModificationHandler()
on the ResourceLoadStatisticsStore. The coreStore would then dispatch back on the
main thread to call the WebResourceLoadStatisticsStore's modification handler.
This modification handler was merely calling processStatisticsAndDataRecords().
Therefore, callers of WebResourceLoadStatisticsStore::fireDataModificationHandler()
can call WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() directly
instead.
(WebKit::WebResourceLoadStatisticsStore::fireTelemetryHandler): Removed.
This was calling ResourceLoadStatisticsStore::fireTelemetryHandler(), which was
calling back WebResourceLoadStatisticsStore's fireTelemetryHandler. The handler
in question was merely calling submitTelemetry(). Therefore, callers of
WebResourceLoadStatisticsStore::fireTelemetryHandler() can call
WebResourceLoadStatisticsStore::submitTelemetry() directly instead.
(WebKit::WebResourceLoadStatisticsStore::clearInMemoryAndPersistent):
Call ResourceLoadStatisticsStore::clearInMemory() instead of clearInMemoryAndPersistent(),
which was removed. ResourceLoadStatisticsStore::clearInMemoryAndPersistent() was calling
clearInMemory() and then 2 of WebResourceLoadStatisticsStore's handlers. Instead, we now
call the functions that those handlers were calling directly, thus eliminating the need
for those handlers.
(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
Set m_minimumTimeBetweenDataRecordsRemoval directly as it is now store on this class
instead of the coreStore.
(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::WebResourceLoadStatisticsStore::dataRecordsBeingRemoved):
(WebKit::WebResourceLoadStatisticsStore::dataRecordsWereRemoved):
Those were merely moved from the ResourceLoadStatisticsStore.
- UIProcess/WebResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsTelemetry.cpp:
(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
Check for sortedPrevalentResources.isEmpty() instead of checking if the size
if less than minimumPrevalentResourcesForTelemetry.
ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry() either returns
an empty vector or a vector with more than minimumPrevalentResourcesForTelemetry
items. Therefore, there is no need to expose minimumPrevalentResourcesForTelemetry.
Tools:
Rename testRunner API to match the new internal API names.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::statisticsProcessStatisticsAndDataRecords):
(WTR::TestRunner::statisticsSubmitTelemetry):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsSubmitTelemetry):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsSubmitTelemetry):
LayoutTests:
Update layout tests to reflect changes to the testRunner API naming.
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html:
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html:
- http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html:
- http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html:
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
- http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:
- http/tests/loading/resourceLoadStatistics/grandfathering.html:
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
- http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
- http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
- http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
- http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
- http/tests/loading/resourceLoadStatistics/telemetry-generation.html:
- 8:58 AM Changeset in webkit [219276] by
-
- 24 edits in trunk
Drop NOSNIFF compile flag
https://bugs.webkit.org/show_bug.cgi?id=174289
Reviewed by Michael Catanzaro.
.:
- Source/cmake/WebKitFeatures.cmake:
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/WebCore:
- Configurations/FeatureDefines.xcconfig:
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::notifyLoadedSheet):
- dom/LoadableClassicScript.cpp:
(WebCore::LoadableClassicScript::notifyFinished):
- loader/cache/CachedCSSStyleSheet.cpp:
(WebCore::CachedCSSStyleSheet::mimeTypeAllowedByNosniff):
(WebCore::CachedCSSStyleSheet::canUseSheet):
- loader/cache/CachedCSSStyleSheet.h:
- platform/network/HTTPParsers.cpp:
(WebCore::parseContentTypeOptionsHeader):
- platform/network/HTTPParsers.h:
- platform/network/ResourceResponseBase.cpp:
(WebCore::isScriptAllowedByNosniff):
- platform/network/ResourceResponseBase.h:
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::didReceiveResponse):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
Tools:
- Scripts/webkitperl/FeatureList.pm:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
Jul 7, 2017:
- 10:09 PM Changeset in webkit [219275] by
-
- 6 edits in trunk/Source/WebKit2
[WK2] Use a rolling 30-day uptime for processing statistics
https://bugs.webkit.org/show_bug.cgi?id=174235
<rdar://problem/33164381>
Reviewed by Brent Fulgham.
Follow-up fix for r219274 because it caused this test to time out:
http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html
The test sets TimeToLiveUserInteraction to 0 so our implementation cannot use
0 as magic value to see if it was set. Instead, use std::optional.
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]):
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired):
- UIProcess/Storage/ResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
- UIProcess/WebResourceLoadStatisticsStore.h:
- 5:07 PM Changeset in webkit [219274] by
-
- 10 edits in trunk/Source
[WK2] Use a rolling 30-day uptime for processing statistics
https://bugs.webkit.org/show_bug.cgi?id=174235
<rdar://problem/33164381>
Reviewed by Chris Dumez.
Source/WebCore:
Add a KeyedDecoder specialization for Deque.
- platform/KeyedCoding.h:
(WebCore::KeyedDecoder::decodeObjects):
Source/WebKit2:
- UIProcess/API/Cocoa/WKWebsiteDataStore.cpp:
(WebKit::WKWebsiteDataStore::_resourceLoadStatisticsResetToConsistentState): Initialize time-to-live to zero by default.
- UIProcess/Storage/ResourceLoadStatisticsStore.cpp:
(WebKit::ResourceLoadStatisticsStore::createEncoderFromData): Write out vector
of operating dates.
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder): Read in vector of
operating dates.
(WebKit::ResourceLoadStatisticsStore::hasHadRecentUserInteraction): Check new
convenience method.
(WebKit::ResourceLoadStatisticsStore::markTodayAsOperatingDate): Added.
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired): Added.
- UIProcess/Storage/ResourceLoadStatisticsStore.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded): When reading
a new data file, update the current operating date (if needed).
(WebKit::WebResourceLoadStatisticsStore::handleDailyTasks): Roll uptime dates as
needed, then handle telemetry.
- UIProcess/WebResourceLoadStatisticsStore.h:
Source/WTF:
Modify Deque to allow it to be used in a template specialization in KeyedDecoder.
- wtf/Deque.h:
- 5:03 PM Changeset in webkit [219273] by
-
- 2 edits in trunk/Source/JavaScriptCore
Lower the max_protection for the separated heap
https://bugs.webkit.org/show_bug.cgi?id=174281
Patch by AJ Ringer <aringer@apple.com> on 2017-07-07
Reviewed by Oliver Hunt.
Switch to vm_protect so we can set maximum page protection.
- jit/ExecutableAllocator.cpp:
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
(JSC::ExecutableAllocator::allocate):
- 3:02 PM Changeset in webkit [219272] by
-
- 5 edits3 adds in trunk
[AppCache] Ignore fallback entries whose namespace is not prefixed with manifest path
https://bugs.webkit.org/show_bug.cgi?id=174273
<rdar://problem/33011682>
Reviewed by Brent Fulgham.
Source/WebCore:
As per <https://html.spec.whatwg.org/multipage/offline.html#parsing-cache-manifests> (07/06/2017)
we should ignore fallback entires whose fallback namespace URL is not prefixed with
the manifest path. For now we only apply this policy when the manifest is served with
a non-standard Content-Type to minimize web compatibility risk.
Test: http/tests/appcache/fallback-namespace-outside-manifest-path.html
- loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest): Pass the MIME type of the manifest.
- loader/appcache/ManifestParser.cpp:
(WebCore::manifestPath): Computes the manifest path from a manifest URL.
(WebCore::parseManifest): Modified to take the MIME type of the manifest. If the MIME type is
non-standard (i.e. not text/cached-manifest) then skip fallback entries whose namespace is not
prefixed with the manifest path. Otherwise, process fallback entries as we do now. Also cleaned
up the code a bit while I was here, including renaming a local variable to be more descriptive
and using a const character array for the manifest signature to avoid the need to document the
length of the manifest signature in a comment.
- loader/appcache/ManifestParser.h:
LayoutTests:
- http/tests/appcache/fallback-namespace-outside-manifest-path-expected.txt: Added.
- http/tests/appcache/fallback-namespace-outside-manifest-path.html: Added.
- http/tests/appcache/resources/fallback-namespace-outside-manifest-path.txt: Added.
- 2:59 PM Changeset in webkit [219271] by
-
- 14 edits in trunk
[iOS DnD] For cross-app drags, 'drop' event handlers are never invoked if dataTransfer.dropEffect is not set while dragging
https://bugs.webkit.org/show_bug.cgi?id=174219
<rdar://problem/32083177>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Currently, in DragController.cpp, defaultOperationForDrag maps a drag source operation mask of
DragOperationGeneric to DragOperationMove across all platforms. However, on iOS, where cross-app drag moves do
not trigger a drop, this means drop handlers won't fire unless the dropEffect is explicitly set to copy.
To fix this, we introduce DragController::platformGenericDragOperation(), which returns DragOperationCopy on iOS
and DragOperationMove (the existing behavior) elsewhere. defaultOperationForDrag then maps a drag source
operation mask of DragOperationGeneric to platformGenericDragOperation().
Tests: DataInteractionTests.ExternalSourceHTMLToUploadArea
DataInteractionTests.ExternalSourceImageAndHTMLToUploadArea
DataInteractionTests.ExternalSourceMoveOperationNotAllowed
- page/DragController.cpp:
(WebCore::DragController::platformGenericDragOperation):
(WebCore::defaultOperationForDrag):
- page/DragController.h:
- page/mac/DragControllerMac.mm:
(WebCore::DragController::platformGenericDragOperation):
Source/WebKit2:
Tweak some testing SPI to return a drop operation flag instead of whether or not the drop operation was not
UIDropOperationCancel.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _simulateDataInteractionUpdated:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _simulateDataInteractionUpdated:]):
Tools:
Add plumbing and support to mock the value of -allowsMoveOperation on the simulated UIDragDropSession objects.
Setting the DataInteractionSimulator's shouldAllowMoveOperation property to NO simulates a drag operation coming
in from another app out-of-process, for which move operations won't cause a drop to be performed in the first
place.
Also tweaks 2 existing unit tests regarding file uploads via JavaScript to simulate items coming in from a
different application, and adds a new test to check that if a drop area specifically requests a MOVE operation,
no action is taken when dropping.
- TestWebKitAPI/Tests/WebKit2Cocoa/file-uploading.html:
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/DataInteractionSimulator.h:
- TestWebKitAPI/ios/DataInteractionSimulator.mm:
(-[MockDragDropSession initWithItems:location:window:allowMove:]):
(-[MockDragDropSession allowsMoveOperation]):
(-[MockDataOperationSession initWithProviders:location:window:allowMove:]):
(-[MockDataInteractionSession initWithWindow:allowMove:]):
(-[DataInteractionSimulator initWithWebView:]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _advanceProgress]):
(-[MockDragDropSession initWithItems:location:window:]): Deleted.
(-[MockDataOperationSession initWithProviders:location:window:]): Deleted.
(-[MockDataInteractionSession initWithWindow:]): Deleted.
- 2:44 PM Changeset in webkit [219270] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Resources are sometimes missing from the tree outline right before folderizing
https://bugs.webkit.org/show_bug.cgi?id=174277
Reviewed by Joseph Pecoraro.
- UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.expand):
- 2:33 PM Changeset in webkit [219269] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r217258): WebSocket resource tree elements don't show the connection status
https://bugs.webkit.org/show_bug.cgi?id=174274
Reviewed by Brian Burg.
- UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
- UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.populateContextMenu):
- UserInterface/Views/WebSocketResourceTreeElement.js:
(WebInspector.WebSocketResourceTreeElement.prototype.populateContextMenu):
Move "Log WebSocket" context menu item to WebSocketResourceTreeElement.
- 2:30 PM Changeset in webkit [219268] by
-
- 23 edits1 copy2 adds in trunk
Web Inspector: Show all elements currently using a given CSS Canvas
https://bugs.webkit.org/show_bug.cgi?id=173965
Reviewed by Joseph Pecoraro.
Source/JavaScriptCore:
- inspector/protocol/Canvas.json:
- Add
requestCSSCanvasClientNodescommand for getting the node IDs all nodes using this canvas via -webkit-canvas. - Add
cssCanvasClientNodesChangedevent that is dispatched whenever a node is added/removed from the list of -webkit-canvas clients.
- Add
Source/WebCore:
Test: inspector/canvas/css-canvas-clients.html
- css/CSSImageGeneratorValue.cpp:
(WebCore::CSSImageGeneratorValue::addClient):
(WebCore::CSSImageGeneratorValue::removeClient):
- css/CSSImageGeneratorValue.h:
(WebCore::CSSImageGeneratorValue::clients):
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::addObserver):
(WebCore::HTMLCanvasElement::removeObserver):
(WebCore::HTMLCanvasElement::cssCanvasClients):
Each time an observer is added/removed for a given HTMLCanvasElement, send an event to the
inspector frontend that the CSS canvas client nodes have changed. Additionally, anytime a
client/use is added/removed from one of the observing CSSCanvasValue, fire the same event.
- css/CSSCanvasValue.h:
(isType):
- html/HTMLCanvasElement.h:
(WebCore::CanvasObserver::isCSSCanvasValueObserver):
Allows type traits to distinguish CanvasObserver from CSSCanvasValue::CanvasObserverProxy.
- inspector/InspectorCanvasAgent.h:
- inspector/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodes):
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl):
Notify the frontend that the list of client nodes has changed for the given canvas. Let the
frontend request the actual list of node IDs when it needs, possibly at a later time.
Source/WebInspectorUI:
- UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.cssCanvasClientNodesChanged):
- UserInterface/Models/Canvas.js:
(WebInspector.Canvas.prototype.requestCSSCanvasClientNodes):
(WebInspector.Canvas.prototype.cssCanvasClientNodesChanged):
- UserInterface/Protocol/CanvasObserver.js:
(WebInspector.CanvasObserver.prototype.cssCanvasClientNodesChanged):
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel):
(WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
Add CSS section for CSS canvases. Currently displays a list of node links, each of which is
using the selected canvas via -webkit-canvas.
- UserInterface/Main.html:
- UserInterface/Views/CanvasDetailsSidebarPanel.css: Added.
(.sidebar > .panel.details.canvas .details-section > .content .row.simple > .value > .node-link):
- UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.ensureDocument):
- UserInterface/Models/Canvas.js:
(WebInspector.Canvas.prototype.requestNode):
- UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch):
Add convenience function that will call DOMAgent.getDocument with an empty function. Should
be used when it is necessary that the document has been sent to the frontend, but the
document node itself is not needed.
LayoutTests:
- inspector/canvas/css-canvas-clients-expected.txt: Added.
- inspector/canvas/css-canvas-clients.html: Added.
- platform/mac/TestExpectations:
- 1:38 PM Changeset in webkit [219267] by
-
- 2 edits in trunk/LayoutTests
Adjusted test expectations for webrtc/video-replace-muted-track.html.
https://bugs.webkit.org/show_bug.cgi?id=173608
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 1:24 PM Changeset in webkit [219266] by
-
- 2 edits in trunk/Source/WebCore
AVPlayer can continue to be active after released by MediaPlayerPrivateAVFoundationObjC.
https://bugs.webkit.org/show_bug.cgi?id=174264
Reviewed by Eric Carlson.
If the AVPlayer is retained (by an autorelease pool, or internally by other objects in
AVFoundation), releasing the AVPlayer is not enough to cancel loading or playback. So before
releasing the AVPlayer, make sure to disassociate the current AVPlayerItem, which should
cancel all activity in the AVPlayer.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
- 1:20 PM Changeset in webkit [219265] by
-
- 2 edits in trunk/Source/WebCore
[Curl] Remove data url handler for async load
https://bugs.webkit.org/show_bug.cgi?id=174263
data url is handled by ResourceLoader. No need for specific handling
in platform dependent layer.
Patch by Basuke Suzuki <Basuke Suzuki> on 2017-07-07
Reviewed by Alex Christensen.
- platform/network/curl/ResourceHandleManager.cpp:
(WebCore::ResourceHandleManager::startJob):
- 1:05 PM Changeset in webkit [219264] by
-
- 3 edits2 deletes in trunk
Unreviewed, rolling out r219257.
The test added in the revision was still extreamly flaky on
all testers.
Reverted changeset:
"[SVG] Leak in SVGAnimatedListPropertyTearOff"
https://bugs.webkit.org/show_bug.cgi?id=172545
http://trac.webkit.org/changeset/219257
- 12:50 PM Changeset in webkit [219263] by
-
- 7 edits1 add in trunk
\n\r is not the same as \r\n.
https://bugs.webkit.org/show_bug.cgi?id=173053
Reviewed by Keith Miller.
JSTests:
- stress/regress-173053.js: Added.
- stress/template-literal-line-terminators.js:
Source/JavaScriptCore:
- parser/Lexer.cpp:
(JSC::Lexer<T>::shiftLineTerminator):
(JSC::LineNumberAdder::add):
LayoutTests:
- js/parse-backslash-before-newline-expected.txt:
- js/script-tests/parse-backslash-before-newline.js:
- 12:36 PM Changeset in webkit [219262] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, rolling out r219256.
Previous change to Test Expectations broke the tests
Reverted changeset:
"[WPE] Unreviewed gardening"
http://trac.webkit.org/changeset/219256
- 12:35 PM Changeset in webkit [219261] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, rolling out r219258.
Previous change to Test Expectations broke the tests
Reverted changeset:
"Unreviewed gardening, fix WK2 expectations after my previous
commit"
http://trac.webkit.org/changeset/219258
- 11:30 AM Changeset in webkit [219260] by
-
- 23 edits3 deletes in trunk
Unreviewed, rolling out r219238, r219239, and r219241.
https://bugs.webkit.org/show_bug.cgi?id=174265
"fast/workers/dedicated-worker-lifecycle.html is flaky"
(Requested by yusukesuzuki on #webkit).
Reverted changesets:
"[WTF] Implement WTF::ThreadGroup"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219238
"Unreviewed, build fix after r219238"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219239
"Unreviewed, CLoop build fix after r219238"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219241
- 10:20 AM Changeset in webkit [219259] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: Clean up some unnecessary constructors
https://bugs.webkit.org/show_bug.cgi?id=174236
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-07
Reviewed by Brian Burg.
- UserInterface/Controllers/CodeMirrorBezierEditingController.js:
- UserInterface/Controllers/CodeMirrorColorEditingController.js:
- UserInterface/Controllers/CodeMirrorGradientEditingController.js:
- UserInterface/Views/DividerNavigationItem.js:
- UserInterface/Views/FlexibleSpaceNavigationItem.js:
- UserInterface/Views/IdleTreeElement.js:
- 9:43 AM Changeset in webkit [219258] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening, fix WK2 expectations after my previous commit
- platform/wk2/TestExpectations:
- 9:42 AM Changeset in webkit [219257] by
-
- 2 edits2 adds in trunk
[SVG] Leak in SVGAnimatedListPropertyTearOff
https://bugs.webkit.org/show_bug.cgi?id=172545
Reviewed by Said Abou-Hallawa.
SVGAnimatedListPropertyTearOff maintains a vector m_wrappers with references to
SVGPropertyTraits<PropertyType>::ListItemTearOff. Apart from that SVGPropertyTearOff has a
reference to SVGAnimatedProperty.
When SVGListProperty::getItemValuesAndWrappers() is called, it creates a
SVGPropertyTraits<PropertyType>::ListItemTearOff pointing to the same SVGAnimatedProperty (a
SVGAnimatedListPropertyTearOff) which stores the m_wrappers vector where the ListItemTearOff
is going to be added to. This effectively creates a reference cycle between the
SVGAnimatedListPropertyTearOff and all the ListItemTearOff it stores in m_wrappers.
We should detach those wrappers in propertyWillBeDeleted() in order to break the cycle.
- svg/properties/SVGAnimatedListPropertyTearOff.h:
- 8:41 AM Changeset in webkit [219256] by
-
- 3 edits in trunk/LayoutTests
[WPE] Unreviewed gardening
- platform/wk2/TestExpectations: Do not mark individual resourceLoadStatistics tests as
passing. Instead, mark the entire directory, so we don't have to override the expectations
for every single test individually in the WPE expectations file.
- platform/wpe/TestExpectations: Update resourceLoadStatistics expectations.
- 5:45 AM Changeset in webkit [219255] by
-
- 8 edits1 delete in trunk
[GTK][WPE] Enable X-Content-Type-Options: nosniff
https://bugs.webkit.org/show_bug.cgi?id=174250
Reviewed by Carlos Alberto Lopez Perez.
.:
Make nosniff enabled by default in all the ports.
- Source/cmake/OptionsMac.cmake:
- Source/cmake/OptionsWin.cmake:
- Source/cmake/WebKitFeatures.cmake:
Tools:
- Scripts/webkitperl/FeatureList.pm:
LayoutTests:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Removed.
- 4:48 AM Changeset in webkit [219254] by
-
- 2 edits in trunk/LayoutTests
[WPE] New baseline after r218740
Unreviewed gardening.
- platform/wpe/js/dom/global-constructors-attributes-expected.txt:
- 3:44 AM Changeset in webkit [219253] by
-
- 2 edits in trunk/LayoutTests
[WPE] Unreviewed gardening
resourceLoadingStatistics tests are timing out and failing.
- platform/wpe/TestExpectations:
- 3:32 AM Changeset in webkit [219252] by
-
- 7 edits7 adds in trunk
[GStreamer] vid.me videos do not play
https://bugs.webkit.org/show_bug.cgi?id=172240
Patch by Charlie Turner <cturner@igalia.com> on 2017-07-07
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
In r142251, code to hide the WK HTTP source elements from elsewhere in
the pipeline was removed. This has the nasty side-effect of
auto-plugging the WK HTTP source into things it really should not be
used in, especially the adaptive streaming demuxers. The reasons this
is bad are documented in several places on Bugzilla, see the parent
bug report for more details. The high-level issue is that the WK HTTP
source and its use of WebCore is not thread-safe. Although work has
been recently done to improve this situation, it's still not perfect.
Another issue is the interface hlsdemux expects its HTTP source to
implement, specifically seeking in READY.
This does rely on HTTP context sharing being available in GStreamer,
upstream bug is here:
https://bugzilla.gnome.org/show_bug.cgi?id=761099. The failing case
can be demonstrated with
https://github.com/thiagoss/adaptive-test-server but manual testing on
popular video hosting sites, including vid.me, shows that this doesn't
bite us at the moment, just something else to fix in the future.
There are some QoS issues with the adaptive streaming code in
GStreamer, but it seems much better to offer a below par QoS in lieu
of crashing/livelocking when playing certain streams, and issues can be
raised upstream when they arise.
This patch does take us further away from the future goal of having all
networking operations go through the network process, but in return it
solves some nasty crashes and livelocks that have been irritating
users for some time. With the pressure off on this issue, work can be
planned to consider how to make the WK HTTP source a better citizen
inside the GStreamer pipeline when we migrate the netcode to go
through the network process.
A new test is added to check that the single file HLS playlists
(new in version 4) can be played, which was the primary cause of
this bug report.
Test: http/tests/media/hls/range-request.html
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Perform
some trickery to make sure that we only ever fetch URLs handed to
us by WebCore. Any further URLs discovered inside the pipeline
will not get WKWS auto-plugged, since they'll be plain https?
schemas.
(WebCore::MediaPlayerPrivateGStreamer::load): Refactor to use the
setPlaybinURL helper method.
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation): Ditto.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Add
the setPlaybinURL helper method.
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcGetProtocols): Only advertise webkit+https?, this
ensures we won't get auto-plugged by pipeline elements asking for
an element to fetch https? resources (like adaptive demuxers).
(convertPlaybinURI): Undo the trick when another element asks us
for our URI.
Tools:
Build httpsoupsrc again for use in adaptive streaming pipelines, and
have the existing libsoup build against GNOME to avoid header drift
against GStreamer's linked Soup library.
- gtk/jhbuild.modules:
LayoutTests:
Add a test for single output file HLS playlists that require HTTP
range requests to playback. This failed using the WK http source
for reasons documented in the linked bug.
Generated with mp4hls --segment-duration 3 --output-single-file
- Http/tests/media/hls/range-request-expected.txt: Added.
- http/tests/media/hls/range-request.html: Added.
- http/tests/media/resources/hls/range-request-playlist.m3u8: Added.
- http/tests/media/resources/hls/range-request-playlists/iframes.m3u8: Added.
- http/tests/media/resources/hls/range-request-playlists/media.ts: Added.
- http/tests/media/resources/hls/range-request-playlists/stream.m3u8: Added.
- 3:25 AM Changeset in webkit [219251] by
-
- 4 edits in trunk/PerformanceTests
Speedometer 2.0: Fix vanilla JS example
https://bugs.webkit.org/show_bug.cgi?id=174246
Patch by Mathias Bynens <mathias@qiwi.be> on 2017-07-07
Reviewed by Ryosuke Niwa.
Previously, all TODO items were assigned an ID of
null. This patch
fixes that bug. Manually deleting items now works again.
- Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Made title consistent.
- Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Fixed bug with deleting items.
- Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added docs.
- 1:30 AM Changeset in webkit [219250] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, Windows build fix after r219233 part 4
https://bugs.webkit.org/show_bug.cgi?id=174231
- wtf/Assertions.h:
- 12:22 AM Changeset in webkit [219249] by
-
- 6 edits in trunk/Source/WebKit2
WKWebSiteDataStore.removeDataOfTypes should wait until disk cache files are actually removed before invoking completion handler
https://bugs.webkit.org/show_bug.cgi?id=174224
<rdar://problem/33067545>
Reviewed by Sam Weinig.
Currently we dispatch file deletion operations to a background queue and call the completion
handler without waiting for the I/O to complete.
- NetworkProcess/NetworkProcess.cpp:
(WebKit::clearDiskCacheEntries):
Call a new version of NetworkCache::remove() for bulk deletion.
Note that it is fine to call this with an empty vector.
- NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::remove):
Bulk deletion with a completion handler.
(WebKit::NetworkCache::Cache::deleteFiles): Added.
Factor to a helper function.
- NetworkProcess/cache/NetworkCache.h:
- NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::Storage::remove):
Remove files for all the provided keys in a queue and invoke the completion handler in the main thread when done.
- NetworkProcess/cache/NetworkCacheStorage.h: