Title: [219321] trunk/Websites/perf.webkit.org
Revision 219321
Author rn...@webkit.org
Date 2017-07-10 20:45:00 -0700 (Mon, 10 Jul 2017)
Log Message
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):
Modified Paths
trunk/Websites/perf.webkit.org/ChangeLog
trunk/Websites/perf.webkit.org/public/v3/components/test-group-results-viewer.js
trunk/Websites/perf.webkit.org/public/v3/models/analysis-results.js
trunk/Websites/perf.webkit.org/public/v3/pages/analysis-task-page.js
Diff
Modified: trunk/Websites/perf.webkit.org/ChangeLog (219320 => 219321)
--- trunk/Websites/perf.webkit.org/ChangeLog 2017-07-11 03:40:59 UTC (rev 219320)
+++ trunk/Websites/perf.webkit.org/ChangeLog 2017-07-11 03:45:00 UTC (rev 219321)
@@ -1,3 +1,32 @@
+2017-07-10 Ryosuke Niwa
+
+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):
+
2017-07-06 Ryosuke Niwa
Safari 10.1 fails to upload a patch on perf try bots page
Modified: trunk/Websites/perf.webkit.org/public/v3/components/test-group-results-viewer.js (219320 => 219321)
--- trunk/Websites/perf.webkit.org/public/v3/components/test-group-results-viewer.js 2017-07-11 03:40:59 UTC (rev 219320)
+++ trunk/Websites/perf.webkit.org/public/v3/components/test-group-results-viewer.js 2017-07-11 03:45:00 UTC (rev 219321)
@@ -24,6 +24,12 @@
{
this._analysisResults = analysisResults;
this._currentMetric = metric;
+if (metric) {
+const path = metric.test().path();
+for (let i = path.length - 2; i >= 0; i--)
+
Title: [219320] trunk
Revision 219320
Author simon.fra...@apple.com
Date 2017-07-10 20:40:59 -0700 (Mon, 10 Jul 2017)
Log Message
[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.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/FrameView.cpp
trunk/Source/WebCore/page/FrameView.h
trunk/Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
trunk/Source/WebCore/page/scrolling/ScrollingStateFixedNode.cpp
Added Paths
trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt
trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable.html
Diff
Modified: trunk/LayoutTests/ChangeLog (219319 => 219320)
--- trunk/LayoutTests/ChangeLog 2017-07-11 02:52:07 UTC (rev 219319)
+++ trunk/LayoutTests/ChangeLog 2017-07-11 03:40:59 UTC (rev 219320)
@@ -1,3 +1,14 @@
+2017-07-10 Simon Fraser
+
+[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.
+
+* fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt: Added.
+* fast/visual-viewport/ios/get-bounding-client-rect-unstable.html: Added.
+
2017-07-10 John Wilander
Resource Load Statistics: Prune statistics in orders of importance
Added: trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt (0 => 219320)
--- trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable-expected.txt 2017-07-11 03:40:59 UTC (rev 219320)
@@ -0,0 +1,9 @@
+PASS boundingClientRect.top is expectedTop
+Doing unstable scroll
+PASS boundingClientRect.top is expectedTop
+Finishing scroll
+PASS boundingClientRect.top is expectedTop
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable.html (0 => 219320)
--- trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable.html (rev 0)
+++ trunk/LayoutTests/fast/visual-viewport/ios/get-bounding-client-rect-unstable.html 2017-07-11 03:40:59 UTC (rev 219320)
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+jsTestIsAsync = true;
+
+function simulateScrollingStart(offsetTop)
+{
+return `(function() {
+uiController.stableStateOverride = false;
+uiController.immediateScrollToOffset(0, ${offsetTop});
+uiController.doAfterPresentationUpdate(function() {
+uiController.uiScriptComplete();
+});
+})()`;
+}
+
+function simulateScrollingEnd(offsetTop)
+{
+return `(function() {
+uiController.stableStateOverride = true;
+uiController.doAfterNextStablePresentationUpdate(function() {
+uiController.uiScriptComplete();
+});
+})()`;
+}
+
+var
Title: [219318] trunk/Source/WebKit2
Revision 219318
Author d...@apple.com
Date 2017-07-10 19:39:16 -0700 (Mon, 10 Jul 2017)
Log Message
const() experimental feature should always be on by default
https://bugs.webkit.org/show_bug.cgi?id=174341
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:
Modified Paths
trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h
Diff
Modified: trunk/Source/WebKit2/ChangeLog (219317 => 219318)
--- trunk/Source/WebKit2/ChangeLog 2017-07-11 00:29:36 UTC (rev 219317)
+++ trunk/Source/WebKit2/ChangeLog 2017-07-11 02:39:16 UTC (rev 219318)
@@ -1,3 +1,16 @@
+2017-07-10 Dean Jackson
+
+const() experimental feature should always be on by default
+https://bugs.webkit.org/show_bug.cgi?id=174341
+
+
+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:
+
2017-07-10 Chris Dumez
[iOS] _didCommitLayerTree should avoid calling [scrollView setZoomScale] unnecessarily
Modified: trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h (219317 => 219318)
--- trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2017-07-11 00:29:36 UTC (rev 219317)
+++ trunk/Source/WebKit2/Shared/WebPreferencesDefinitions.h 2017-07-11 02:39:16 UTC (rev 219318)
@@ -356,7 +356,7 @@
// wider testing).
#define FOR_EACH_WEBKIT_EXPERIMENTAL_FEATURE_PREFERENCE(macro) \
-macro(ConstantPropertiesEnabled, constantPropertiesEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "Constant Properties", "Enable CSS constant() properties") \
+macro(ConstantPropertiesEnabled, constantPropertiesEnabled, Bool, bool, true, "Constant Properties", "Enable CSS constant() properties") \
macro(DisplayContentsEnabled, displayContentsEnabled, Bool, bool, false, "CSS display: contents", "Enable CSS display: contents support") \
macro(SpringTimingFunctionEnabled, springTimingFunctionEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "CSS Spring Animations", "CSS Spring Animation prototype") \
macro(IsSecureContextAttributeEnabled, isSecureContextAttributeEnabled, Bool, bool, DEFAULT_EXPERIMENTAL_FEATURES_ENABLED, "isSecureContext attribute", "Enable isSecureContext attribute") \
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes
Title: [219317] trunk/Source/_javascript_Core
Revision 219317
Author sbar...@apple.com
Date 2017-07-10 17:29:36 -0700 (Mon, 10 Jul 2017)
Log Message
Allocation sinking phase should consider a CheckStructure that would fail as an escape
https://bugs.webkit.org/show_bug.cgi?id=174321
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:
Modified Paths
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (219316 => 219317)
--- trunk/Source/_javascript_Core/ChangeLog 2017-07-11 00:01:55 UTC (rev 219316)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-07-11 00:29:36 UTC (rev 219317)
@@ -1,3 +1,33 @@
+2017-07-10 Saam Barati
+
+Allocation sinking phase should consider a CheckStructure that would fail as an escape
+https://bugs.webkit.org/show_bug.cgi?id=174321
+
+
+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:
+
2017-07-10 Devin Rousso
Web Inspector: Highlight matching CSS canvas clients when hovering contexts in the Resources tab
Modified: trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp (219316 => 219317)
--- trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp 2017-07-11 00:01:55 UTC (rev 219316)
+++ trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp 2017-07-11 00:29:36 UTC (rev 219317)
@@ -218,6 +218,7 @@
{
ASSERT(hasStructures());
m_structures.filter(structures);
+RELEASE_ASSERT(!m_structures.isEmpty());
return *this;
}
@@ -902,7 +903,15 @@
case CheckStructure: {
Allocation* allocation = m_heap.onlyLocalAllocation(node->child1().node());
if (allocation && allocation->isObjectAllocation()) {
-allocation->filterStructures(node->structureSet());
+RegisteredStructureSet filteredStructures = allocation->structures();
+filteredStructures.filter(node->structureSet());
+if (filteredStructures.isEmpty()) {
+// FIXME: Write a test for this:
+// https://bugs.webkit.org/show_bug.cgi?id=174322
+m_heap.escape(node->child1().node());
+
Title: [219313] trunk/LayoutTests
Revision 219313
Author mmaxfi...@apple.com
Date 2017-07-10 16:25:19 -0700 (Mon, 10 Jul 2017)
Log Message
fast/text/trak-optimizeLegibility.html is failing on macOS High Sierra
https://bugs.webkit.org/show_bug.cgi?id=174325
Reviewed by Zalan Bujtas.
The name of the font changed.
* fast/text/trak-optimizeLegibility.html:
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/LayoutTests/fast/text/trak-optimizeLegibility.html
Diff
Modified: trunk/LayoutTests/ChangeLog (219312 => 219313)
--- trunk/LayoutTests/ChangeLog 2017-07-10 23:00:42 UTC (rev 219312)
+++ trunk/LayoutTests/ChangeLog 2017-07-10 23:25:19 UTC (rev 219313)
@@ -1,3 +1,15 @@
+2017-07-10 Myles C. Maxfield
+
+fast/text/trak-optimizeLegibility.html is failing on macOS High Sierra
+https://bugs.webkit.org/show_bug.cgi?id=174325
+
+
+Reviewed by Zalan Bujtas.
+
+The name of the font changed.
+
+* fast/text/trak-optimizeLegibility.html:
+
2017-07-10 Youenn Fablet
Update webrtc expectations
Modified: trunk/LayoutTests/fast/text/trak-optimizeLegibility.html (219312 => 219313)
--- trunk/LayoutTests/fast/text/trak-optimizeLegibility.html 2017-07-10 23:00:42 UTC (rev 219312)
+++ trunk/LayoutTests/fast/text/trak-optimizeLegibility.html 2017-07-10 23:25:19 UTC (rev 219313)
@@ -7,8 +7,8 @@
This test makes sure that you can opt-in to honoring the 'trak' table by specifying text-rendering: optimizeLegibility.
The first and third lines below should have the same width. The middle one can (but doesn't have to) have a different width.
hamburgefonstiv
-hamburgefonstiv
-hamburgefonstiv
+hamburgefonstiv
+hamburgefonstiv
Title: [219312] trunk/Source/WebKit2
Revision 219312
Author cdu...@apple.com
Date 2017-07-10 16:00:42 -0700 (Mon, 10 Jul 2017)
Log Message
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:
Modified Paths
trunk/Source/WebKit2/CMakeLists.txt
trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebsiteDataStore.mm
trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.cpp
trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsStore.h
trunk/Source/WebKit2/UIProcess/WebResourceLoadStatisticsTelemetry.cpp
Title: [219310] trunk
Revision 219310
Author wenson_hs...@apple.com
Date 2017-07-10 15:08:38 -0700 (Mon, 10 Jul 2017)
Log Message
[WK2] Ignore touch events that interrupt platform-driven momentum scrolling
https://bugs.webkit.org/show_bug.cgi?id=174300
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.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/scrolling/ScrollingTree.h
Title: [219307] trunk/Source/WebCore
Revision 219307
Author commit-qu...@webkit.org
Date 2017-07-10 13:58:32 -0700 (Mon, 10 Jul 2017)
Log Message
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 on 2017-07-10
Reviewed by Eric Carlson.
Reverts a regression created by r218403.
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
Modified Paths
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/shadow/MediaControlElements.cpp
Diff
Modified: trunk/Source/WebCore/ChangeLog (219306 => 219307)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 20:09:04 UTC (rev 219306)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 20:58:32 UTC (rev 219307)
@@ -1,3 +1,16 @@
+2017-07-10 Jeremy Jones
+
+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
+
+Reviewed by Eric Carlson.
+
+Reverts a regression created by r218403.
+
+* html/shadow/MediaControlElements.cpp:
+(WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation):
+
2017-07-10 Per Arne Vollan
[Win] Link error when building WTF from WTF.proj project file.
Modified: trunk/Source/WebCore/html/shadow/MediaControlElements.cpp (219306 => 219307)
--- trunk/Source/WebCore/html/shadow/MediaControlElements.cpp 2017-07-10 20:09:04 UTC (rev 219306)
+++ trunk/Source/WebCore/html/shadow/MediaControlElements.cpp 2017-07-10 20:58:32 UTC (rev 219307)
@@ -1296,7 +1296,6 @@
mediaElement->setTextTrackRepresentation(m_textTrackRepresentation.get());
}
-hide();
m_textTrackRepresentation->update();
updateStyleForTextTrackRepresentation();
}
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes
Title: [219306] trunk/Source
Revision 219306
Author pvol...@apple.com
Date 2017-07-10 13:09:04 -0700 (Mon, 10 Jul 2017)
Log Message
[Win] Link error when building WTF from WTF.proj project file.
https://bugs.webkit.org/show_bug.cgi?id=174316
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:
Modified Paths
trunk/Source/WTF/ChangeLog
trunk/Source/WTF/WTF.vcxproj/WTF.proj
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.vcxproj/WebCore.proj
trunk/Source/WebKit/ChangeLog
trunk/Source/WebKit/WebKit.vcxproj/WebKit.proj
Diff
Modified: trunk/Source/WTF/ChangeLog (219305 => 219306)
--- trunk/Source/WTF/ChangeLog 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WTF/ChangeLog 2017-07-10 20:09:04 UTC (rev 219306)
@@ -1,3 +1,15 @@
+2017-07-10 Per Arne Vollan
+
+[Win] Link error when building WTF from WTF.proj project file.
+https://bugs.webkit.org/show_bug.cgi?id=174316
+
+
+Reviewed by Brent Fulgham.
+
+WTF_CPU_X86 cmake variable needs to be set for link libraries directories to be correct.
+
+* WTF.vcxproj/WTF.proj:
+
2017-07-03 Brian Burg
Web Replay: remove some unused code
Modified: trunk/Source/WTF/WTF.vcxproj/WTF.proj (219305 => 219306)
--- trunk/Source/WTF/WTF.vcxproj/WTF.proj 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WTF/WTF.vcxproj/WTF.proj 2017-07-10 20:09:04 UTC (rev 219306)
@@ -46,9 +46,9 @@
-
+
-
+
Modified: trunk/Source/WebCore/ChangeLog (219305 => 219306)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 20:09:04 UTC (rev 219306)
@@ -1,3 +1,15 @@
+2017-07-10 Per Arne Vollan
+
+[Win] Link error when building WTF from WTF.proj project file.
+https://bugs.webkit.org/show_bug.cgi?id=174316
+
+
+Reviewed by Brent Fulgham.
+
+WTF_CPU_X86 cmake variable needs to be set for link libraries directories to be correct.
+
+* WebCore.vcxproj/WebCore.proj:
+
2017-07-10 Jeremy Jones
media element handle adding source immediately before src.
Modified: trunk/Source/WebCore/WebCore.vcxproj/WebCore.proj (219305 => 219306)
--- trunk/Source/WebCore/WebCore.vcxproj/WebCore.proj 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WebCore/WebCore.vcxproj/WebCore.proj 2017-07-10 20:09:04 UTC (rev 219306)
@@ -54,9 +54,9 @@
-
+
-
+
Modified: trunk/Source/WebKit/ChangeLog (219305 => 219306)
--- trunk/Source/WebKit/ChangeLog 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WebKit/ChangeLog 2017-07-10 20:09:04 UTC (rev 219306)
@@ -1,3 +1,15 @@
+2017-07-10 Per Arne Vollan
+
+[Win] Link error when building WTF from WTF.proj project file.
+https://bugs.webkit.org/show_bug.cgi?id=174316
+
+
+Reviewed by Brent Fulgham.
+
+WTF_CPU_X86 cmake variable needs to be set for link libraries directories to be correct.
+
+* WebKit.vcxproj/WebKit.proj:
+
2017-07-05 Don Olmstead
[WinCairo] Consolidate CMake code related to CURL
Modified: trunk/Source/WebKit/WebKit.vcxproj/WebKit.proj (219305 => 219306)
--- trunk/Source/WebKit/WebKit.vcxproj/WebKit.proj 2017-07-10 19:49:29 UTC (rev 219305)
+++ trunk/Source/WebKit/WebKit.vcxproj/WebKit.proj 2017-07-10 20:09:04 UTC (rev 219306)
@@ -54,9 +54,9 @@
-
+
-
+
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes
Title: [219305] trunk
Revision 219305
Author commit-qu...@webkit.org
Date 2017-07-10 12:49:29 -0700 (Mon, 10 Jul 2017)
Log Message
media element handle adding source immediately before src.
https://bugs.webkit.org/show_bug.cgi?id=174284
rdar://problem/33115439
Patch by Jeremy Jones 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.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLMediaElement.cpp
Added Paths
trunk/LayoutTests/media/video-source-before-src.html
Diff
Modified: trunk/LayoutTests/ChangeLog (219304 => 219305)
--- trunk/LayoutTests/ChangeLog 2017-07-10 19:46:01 UTC (rev 219304)
+++ trunk/LayoutTests/ChangeLog 2017-07-10 19:49:29 UTC (rev 219305)
@@ -1,3 +1,13 @@
+2017-07-10 Jeremy Jones
+
+media element handle adding source immediately before src.
+https://bugs.webkit.org/show_bug.cgi?id=174284
+rdar://problem/33115439
+
+Reviewed by David Kilzer.
+
+* media/video-source-before-src.html: Added.
+
2017-07-10 Matt Lewis
Fixed test expectations for http/tests/loading/resourceLoadStatistics/user-interaction-in-cross-origin-sub-frame.html.
Added: trunk/LayoutTests/media/video-source-before-src.html (0 => 219305)
--- trunk/LayoutTests/media/video-source-before-src.html (rev 0)
+++ trunk/LayoutTests/media/video-source-before-src.html 2017-07-10 19:49:29 UTC (rev 219305)
@@ -0,0 +1,28 @@
+
+
+
+
+if (window.testRunner) {
+internals.settings.setVideoPlaybackRequiresUserGesture(true);
+testRunner.waitUntilDone();
+testRunner.dumpAsText();
+}
+
+window._onload_ = () => {
+var video = document.getElementsByTagName("video")[0]
+video.appendChild(document.createElement("source"))
+video.src = ""
+
+setTimeout(()=>{
+if (window.testRunner)
+testRunner.notifyDone();
+}, 1)
+}
+
+
+
+
+Append source element before setting src attribute.
+
+
+
\ No newline at end of file
Modified: trunk/Source/WebCore/ChangeLog (219304 => 219305)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 19:46:01 UTC (rev 219304)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 19:49:29 UTC (rev 219305)
@@ -1,3 +1,27 @@
+2017-07-10 Jeremy Jones
+
+media element handle adding source immediately before src.
+https://bugs.webkit.org/show_bug.cgi?id=174284
+rdar://problem/33115439
+
+Reviewed by David Kilzer.
+
+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):
+
2017-07-10 Megan Gardner
Add location to NavigationActionData
Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (219304 => 219305)
--- trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-07-10 19:46:01 UTC (rev 219304)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp 2017-07-10 19:49:29 UTC (rev 219305)
@@ -1323,6 +1323,11 @@
} else if (hasAttributeWithoutSynchronization(srcAttr)) {
//Otherwise, if the media element has no assigned media provider object but has a src attribute, then let mode be attribute.
mode = Attribute;
+ASSERT(m_player);
+if (!m_player) {
+RELEASE_LOG_ERROR(Media, "HTMLMediaElement::selectMediaResource(%p) - has srcAttr but m_player is not created", this);
+return;
+
Title: [219302] trunk/Source/WebCore
Revision 219302
Author commit-qu...@webkit.org
Date 2017-07-10 11:27:26 -0700 (Mon, 10 Jul 2017)
Log Message
[WebIDL] Move plugin object customization into the generator
https://bugs.webkit.org/show_bug.cgi?id=174238
Patch by Sam Weinig 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.
Modified Paths
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp
Title: [219300] trunk/Tools
Revision 219300
Author zandober...@gmail.com
Date 2017-07-10 11:07:10 -0700 (Mon, 10 Jul 2017)
Log Message
[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):
Modified Paths
trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/port/wpe.py
trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py
Diff
Modified: trunk/Tools/ChangeLog (219299 => 219300)
--- trunk/Tools/ChangeLog 2017-07-10 17:52:06 UTC (rev 219299)
+++ trunk/Tools/ChangeLog 2017-07-10 18:07:10 UTC (rev 219300)
@@ -1,3 +1,29 @@
+2017-07-10 Zan Dobersek
+
+[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):
+
2017-07-10 Chris Dumez
Further WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore clean up
Modified: trunk/Tools/Scripts/webkitpy/port/wpe.py (219299 => 219300)
--- trunk/Tools/Scripts/webkitpy/port/wpe.py 2017-07-10 17:52:06 UTC (rev 219299)
+++ trunk/Tools/Scripts/webkitpy/port/wpe.py 2017-07-10 18:07:10 UTC (rev 219300)
@@ -81,6 +81,19 @@
def _path_to_image_diff(self):
return self._built_executables_path('ImageDiff')
+def _search_paths(self):
+return [self.port_name, 'wk2'] + self.get_option("additional_platform_directory", [])
+
+def default_baseline_search_path(self):
+return map(self._webkit_baseline_path, self._search_paths())
+
+def _port_specific_expectations_files(self):
+return map(lambda x: self._filesystem.join(self._webkit_baseline_path(x), 'TestExpectations'), reversed(self._search_paths()))
+
+def test_expectations_file_position(self):
+# WPE port baseline search path is wpe -> wk2 -> generic, so port test expectations file is at third to last position.
+return 2
+
def _get_crash_log(self, name, pid, stdout, stderr, newer_than, target_host=None):
name = "WPEWebProcess" if name == "WebProcess" else name
return GDBCrashLogGenerator(name, pid, newer_than, self._filesystem, self._path_to_driver).generate_crash_log(stdout, stderr)
Modified: trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py (219299 => 219300)
--- trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py 2017-07-10 17:52:06 UTC (rev 219299)
+++ trunk/Tools/Scripts/webkitpy/port/wpe_unittest.py 2017-07-10 18:07:10 UTC (rev 219300)
@@ -51,6 +51,17 @@
port._pulseaudio_sanitizer = PulseAudioSanitizerMock()
return port
+def test_default_baseline_search_path(self):
+port = self.make_port()
+self.assertEqual(port.default_baseline_search_path(), ['/mock-checkout/LayoutTests/platform/wpe',
+'/mock-checkout/LayoutTests/platform/wk2'])
+
+def test_port_specific_expectations_files(self):
+port = self.make_port()
+self.assertEqual(port.expectations_files(), ['/mock-checkout/LayoutTests/TestExpectations',
+'/mock-checkout/LayoutTests/platform/wk2/TestExpectations',
+'/mock-checkout/LayoutTests/platform/wpe/TestExpectations'])
+
def test_default_timeout_ms(self):
Title: [219298] trunk/Source
Revision 219298
Author beid...@apple.com
Date 2017-07-10 10:43:38 -0700 (Mon, 10 Jul 2017)
Log Message
Cleanup lifetime issues of UniqueIDBDatabase and IDBBackingStore.
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::append):
(WTF::CrossThreadQueue::kill):
(WTF::CrossThreadQueue::isKilled):
(WTF::CrossThreadQueue::isEmpty):
(WTF::CrossThreadQueue::isKilled): Deleted.
Modified Paths
trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/CrossThreadQueue.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/indexeddb/server/IDBBackingStore.h
trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.cpp
trunk/Source/WebCore/Modules/indexeddb/server/IDBServer.h
Title: [219296] trunk
Revision 219296
Author akl...@apple.com
Date 2017-07-10 10:03:14 -0700 (Mon, 10 Jul 2017)
Log Message
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
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.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp
Added Paths
trunk/LayoutTests/fast/history/page-cache-element-state-focused-expected.html
trunk/LayoutTests/fast/history/page-cache-element-state-focused.html
Diff
Modified: trunk/LayoutTests/ChangeLog (219295 => 219296)
--- trunk/LayoutTests/ChangeLog 2017-07-10 16:23:19 UTC (rev 219295)
+++ trunk/LayoutTests/ChangeLog 2017-07-10 17:03:14 UTC (rev 219296)
@@ -1,3 +1,14 @@
+2017-07-10 Andreas Kling
+
+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
+
+
+Reviewed by Antti Koivisto.
+
+* fast/history/page-cache-element-state-focused-expected.html: Added.
+* fast/history/page-cache-element-state-focused.html: Added.
+
2017-07-10 Zalan Bujtas
Block of text is missing in iBooks sample books.
Added: trunk/LayoutTests/fast/history/page-cache-element-state-focused-expected.html (0 => 219296)
--- trunk/LayoutTests/fast/history/page-cache-element-state-focused-expected.html (rev 0)
+++ trunk/LayoutTests/fast/history/page-cache-element-state-focused-expected.html 2017-07-10 17:03:14 UTC (rev 219296)
@@ -0,0 +1,20 @@
+
+
+
+
+a:focus {
+background: yellow;
+}
+
+
+function runTest() {
+document.getElementById("a3").focus();
+}
+
+
+
+
+
Added: trunk/LayoutTests/fast/history/page-cache-element-state-focused.html (0 => 219296)
--- trunk/LayoutTests/fast/history/page-cache-element-state-focused.html (rev 0)
+++ trunk/LayoutTests/fast/history/page-cache-element-state-focused.html 2017-07-10 17:03:14 UTC (rev 219296)
@@ -0,0 +1,37 @@
+
+
+
+
+a:focus {
+background: yellow;
+}
+
+
+function runTest() {
+if (window.testRunner) {
+testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
+testRunner.waitUntilDone();
+}
+
+window._onpageshow_ = function(e) {
+if (e.persisted) {
+document.getElementById("a3").focus();
+if (window.testRunner)
+testRunner.notifyDone();
+} else {
+document.getElementById("a2").focus();
+}
+};
+
+setTimeout(function() {
+window.location.href = "" _onload_='history.back()'>
";
+}, 0);
+}
+
+
+
+
+
Modified: trunk/Source/WebCore/ChangeLog (219295 => 219296)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 16:23:19 UTC (rev 219295)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 17:03:14 UTC (rev 219296)
@@ -1,3 +1,23 @@
+2017-07-10 Andreas Kling
+
+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
+
+
+Reviewed by Antti Koivisto.
+
+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):
+
2017-07-10 Daniel Bates
REGRESSION (r218616): Cannot build WebCore for macOS 10.12 with macOS 10.13 SDK
Modified: trunk/Source/WebCore/dom/Document.cpp (219295 => 219296)
--- trunk/Source/WebCore/dom/Document.cpp 2017-07-10 16:23:19 UTC (rev 219295)
+++ trunk/Source/WebCore/dom/Document.cpp 2017-07-10 17:03:14 UTC
Title: [219295] trunk/Source/WebKit2
Revision 219295
Author mcatanz...@igalia.com
Date 2017-07-10 09:23:19 -0700 (Mon, 10 Jul 2017)
Log Message
[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.
Modified Paths
trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/PlatformGTK.cmake
trunk/Source/WebKit2/PlatformWPE.cmake
trunk/Source/WebKit2/WebProcess/Cookies/soup/WebCookieManagerSoup.cpp
Removed Paths
trunk/Source/WebKit2/WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp
trunk/Source/WebKit2/WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.h
Diff
Modified: trunk/Source/WebKit2/ChangeLog (219294 => 219295)
--- trunk/Source/WebKit2/ChangeLog 2017-07-10 16:21:41 UTC (rev 219294)
+++ trunk/Source/WebKit2/ChangeLog 2017-07-10 16:23:19 UTC (rev 219295)
@@ -1,3 +1,30 @@
+2017-07-10 Michael Catanzaro
+
+[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.
+
2017-07-10 Myles C. Maxfield
REGRESSION(r213590): UI process updates the visible content rects more often than it did in iOS 10
Modified: trunk/Source/WebKit2/PlatformGTK.cmake (219294 => 219295)
--- trunk/Source/WebKit2/PlatformGTK.cmake 2017-07-10 16:21:41 UTC (rev 219294)
+++ trunk/Source/WebKit2/PlatformGTK.cmake 2017-07-10 16:23:19 UTC (rev 219295)
@@ -239,7 +239,6 @@
UIProcess/soup/WebProcessPoolSoup.cpp
WebProcess/Cookies/soup/WebCookieManagerSoup.cpp
-WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp
WebProcess/InjectedBundle/API/glib/WebKitConsoleMessage.cpp
WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp
Modified: trunk/Source/WebKit2/PlatformWPE.cmake (219294 => 219295)
--- trunk/Source/WebKit2/PlatformWPE.cmake 2017-07-10 16:21:41 UTC (rev 219294)
+++ trunk/Source/WebKit2/PlatformWPE.cmake 2017-07-10 16:23:19 UTC (rev 219295)
@@ -222,7 +222,6 @@
UIProcess/wpe/WebProcessPoolWPE.cpp
WebProcess/Cookies/soup/WebCookieManagerSoup.cpp
-WebProcess/Cookies/soup/WebKitSoupCookieJarSqlite.cpp
WebProcess/InjectedBundle/API/glib/WebKitConsoleMessage.cpp
WebProcess/InjectedBundle/API/glib/WebKitExtensionManager.cpp
Modified: trunk/Source/WebKit2/WebProcess/Cookies/soup/WebCookieManagerSoup.cpp (219294 => 219295)
---
Title: [219294] trunk/Source/WebCore
Revision 219294
Author dba...@webkit.org
Date 2017-07-10 09:21:41 -0700 (Mon, 10 Jul 2017)
Log Message
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.
Modified Paths
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Configurations/WebCore.xcconfig
trunk/Source/WebCore/platform/spi/cocoa/CoreTextSPI.h
Diff
Modified: trunk/Source/WebCore/ChangeLog (219293 => 219294)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 16:17:00 UTC (rev 219293)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 16:21:41 UTC (rev 219294)
@@ -1,3 +1,25 @@
+2017-07-10 Daniel Bates
+
+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.
+
2017-07-10 Zalan Bujtas
Block of text is missing in iBooks sample books.
Modified: trunk/Source/WebCore/Configurations/WebCore.xcconfig (219293 => 219294)
--- trunk/Source/WebCore/Configurations/WebCore.xcconfig 2017-07-10 16:17:00 UTC (rev 219293)
+++ trunk/Source/WebCore/Configurations/WebCore.xcconfig 2017-07-10 16:21:41 UTC (rev 219294)
@@ -76,7 +76,7 @@
LIBWEBRTC_LIBRARY_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_NO = $(WEBCORE_FRAMEWORKS_DIR)/WebCore.framework/Versions/A/Frameworks;
LIBWEBRTC_LIBRARY_DIR_USE_OVERRIDE_FRAMEWORKS_DIR_YES = $(WK_OVERRIDE_FRAMEWORKS_DIR);
-OTHER_LDFLAGS = $(inherited) $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS) $(OTHER_LDFLAGS_PLATFORM);
+OTHER_LDFLAGS = $(inherited) $(WK_RELOCATABLE_FRAMEWORK_LDFLAGS) $(WK_UNDEFINED_SYMBOLS_LDFLAGS) $(OTHER_LDFLAGS_PLATFORM);
OTHER_LDFLAGS_BASE = -lsqlite3 -lobjc -lANGLE -framework CoreAudio -framework Metal -allowable_client WebCoreTestSupport -allowable_client WebKitLegacy;
// FIXME: Reduce the number of allowable_client
OTHER_LDFLAGS_BASE_ios = $(OTHER_LDFLAGS_BASE) -framework CFNetwork -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework MobileCoreServices -framework OpenGLES -lMobileGestalt $(WK_IOS_BINCOMPAT_LDFLAGS) -allowable_client WebKit -allowable_client iTunesU -allowable_client Casablanca -allowable_client Remote -allowable_client TVBooks -allowable_client DumpRenderTree -allowable_client WebKitTestRunner -allowable_client TestWebKitAPI;
@@ -84,6 +84,10 @@
OTHER_LDFLAGS_PLATFORM[sdk=iphonesimulator*] = $(OTHER_LDFLAGS_BASE_ios) $(LIBWEBRTC_LDFLAGS);
OTHER_LDFLAGS_PLATFORM[sdk=macosx*] = $(OTHER_LDFLAGS_BASE) -sub_library libobjc -umbrella WebKit -framework ApplicationServices -framework AudioUnit -framework Carbon -framework Cocoa -framework DataDetectorsCore -framework IOSurface -framework OpenGL -framework SystemConfiguration $(LIBWEBRTC_LDFLAGS);
+WK_UNDEFINED_SYMBOLS_LDFLAGS = $(WK_UNDEFINED_SYMBOLS_LDFLAGS_$(TARGET_MAC_OS_X_VERSION_LESS_THAN_1013000));
+WK_UNDEFINED_SYMBOLS_LDFLAGS_YES = -Wl,-U,_CTFontCreatePhysicalFontForCharactersWithLanguage;
+WK_UNDEFINED_SYMBOLS_LDFLAGS_YES[sdk=macosx10.12*] =;
+
SECTORDER_FLAGS = $(SECTORDER_FLAGS_$(CONFIGURATION));
SECTORDER_FLAGS_Production[sdk=iphoneos*] = -Wl,-order_file,$(SDKROOT)/AppleInternal/OrderFiles/WebCore.order;
SECTORDER_FLAGS_Production[sdk=macosx*] = -Wl,-order_file,WebCore.order;
Title: [219292] trunk/Tools
Revision 219292
Author commit-qu...@webkit.org
Date 2017-07-10 09:10:18 -0700 (Mon, 10 Jul 2017)
Log Message
[GStreamer] Live twitch.tv videos do not play
https://bugs.webkit.org/show_bug.cgi?id=174222
Patch by Charlie Turner 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:
Modified Paths
trunk/Tools/ChangeLog
trunk/Tools/gtk/jhbuild.modules
Diff
Modified: trunk/Tools/ChangeLog (219291 => 219292)
--- trunk/Tools/ChangeLog 2017-07-10 16:03:03 UTC (rev 219291)
+++ trunk/Tools/ChangeLog 2017-07-10 16:10:18 UTC (rev 219292)
@@ -1,3 +1,15 @@
+2017-07-10 Charlie Turner
+
+[GStreamer] Live twitch.tv videos do not play
+https://bugs.webkit.org/show_bug.cgi?id=174222
+
+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:
+
2017-07-09 Zan Dobersek
Add WebGL2 configuration option to build-webkit
Modified: trunk/Tools/gtk/jhbuild.modules (219291 => 219292)
--- trunk/Tools/gtk/jhbuild.modules 2017-07-10 16:03:03 UTC (rev 219291)
+++ trunk/Tools/gtk/jhbuild.modules 2017-07-10 16:10:18 UTC (rev 219292)
@@ -317,9 +317,9 @@
-+ repo="gstreamer"
-hash="sha256:50c2f5af50a6cc6c0a3f3ed43bdd8b5e2bff00bacfb766d4be139ec06d8b5218">
+hash="sha256:bc06243600817f637029da29d089d5908d1d266542f68bf6626a10c5f05f1f1d">
@@ -333,9 +333,9 @@
-+ repo="gstreamer"
-hash="sha256:f6d245b6b3d4cb733f81ebb021074c525ece83db0c10e932794b339b8d935eb7"/>
+hash="sha256:1c401a79bd1e4521c6ef1b66579bddedd9136e164e54792aab4bfcf3485bf9a7"/>
@@ -347,9 +347,9 @@
-+ repo="gstreamer"
-hash="sha256:8a86c61434a8c44665365bd0b3557a040937d1f44bf69caee4e9ea816ce74d7e">
+hash="sha256:be053f6ed716eeb517cec148cec637cdce571c6e04d5c21409e2876fb76c7639">
@@ -363,9 +363,9 @@
-+ repo="gstreamer"
-hash="sha256:23ddae506b3a223b94869a0d3eea3e9a12e847f94d2d0e0b97102ce13ecd6966"/>
+hash="sha256:c5806040bb83b43be86ce592e6a19c5d83d7776f7d9f434eb4b911c4efff3573"/>
@@ -372,9 +372,9 @@
-+ repo="gstreamer"
-hash="sha256:6ca0feca75e3d48315e07f20ec37cf6260ed1e9dde58df355febd5016246268b"/>
+hash="sha256:e4d2f315f478d47281fbfdfbd590a63d23704ca37911d7142d5992616f4b28d3"/>
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes
Title: [219291] trunk
Revision 219291
Author za...@apple.com
Date 2017-07-10 09:03:03 -0700 (Mon, 10 Jul 2017)
Log Message
Block of text is missing in iBooks sample books.
https://bugs.webkit.org/show_bug.cgi?id=174295
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.
Modified Paths
trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/SimpleLineLayoutResolver.cpp
Added Paths
trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2-expected.html
trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2.html
Diff
Modified: trunk/LayoutTests/ChangeLog (219290 => 219291)
--- trunk/LayoutTests/ChangeLog 2017-07-10 13:21:35 UTC (rev 219290)
+++ trunk/LayoutTests/ChangeLog 2017-07-10 16:03:03 UTC (rev 219291)
@@ -1,3 +1,14 @@
+2017-07-10 Zalan Bujtas
+
+Block of text is missing in iBooks sample books.
+https://bugs.webkit.org/show_bug.cgi?id=174295
+
+
+Reviewed by Antti Koivisto.
+
+* 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.
+
2017-07-08 John Wilander
Resource Load Statistics: User interaction should always go to top document
Added: trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2-expected.html (0 => 219291)
--- trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2-expected.html (rev 0)
+++ trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2-expected.html 2017-07-10 16:03:03 UTC (rev 219291)
@@ -0,0 +1,32 @@
+
+
+
+This tests that paginated lines are painting properly when line is taller than the font.
+
+html {
+ overflow: hidden;
+}
+div {
+ font-size: 20px;
+ line-height: 50px;
+ width: 50px;
+ margin-top: -8px;
+}
+
+
+
+
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+
+
+if (window.internals)
+internals.setPagination("LeftToRightPaginated", 0);
+
+
+
Added: trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2.html (0 => 219291)
--- trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2.html (rev 0)
+++ trunk/LayoutTests/fast/multicol/simple-line-layout-line-index-after-strut-2.html 2017-07-10 16:03:03 UTC (rev 219291)
@@ -0,0 +1,64 @@
+
+
+
+This tests that paginated lines are painting properly when line is taller than the font.
+
+html {
+ overflow: hidden;
+}
+div {
+ column-fill: auto;
+ font-size: 20px;
+ line-height: 50px;
+ width: 50px;
+}
+
+
+
+
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+foobar
+
+
+if (window.internals)
+internals.setPagination("LeftToRightPaginated", 0);
+if (window.testRunner)
+testRunner.waitUntilDone();
+
+setTimeout(function() {
+window.scrollTo(1600, 0);
+document.body.offsetHeight;
+if (window.testRunner)
+testRunner.notifyDone();
+}, 0);
+
+
+
Modified: trunk/Source/WebCore/ChangeLog (219290 => 219291)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 13:21:35 UTC (rev 219290)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 16:03:03 UTC (rev 219291)
@@ -1,3 +1,20 @@
+2017-07-10 Zalan Bujtas
+
+Block of text is missing in iBooks sample books.
+https://bugs.webkit.org/show_bug.cgi?id=174295
+
+
+Reviewed by Antti Koivisto.
+
+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):
+
2017-07-10 Carlos Garcia Campos
[SOUP] SoupCookieJar is never released
Title: [219289] trunk
Revision 219289
Author carlo...@webkit.org
Date 2017-07-10 06:19:55 -0700 (Mon, 10 Jul 2017)
Log Message
Move make-js-file-arrays.py from WebCore to _javascript_Core
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
_javascript_Core. It's no longer needed to set PYTHON_PATH to find jsmin.py.
* Source/cmake/WebKitMacros.cmake:
Source/_javascript_Core:
It's currently used only by WebCore, but it depends on other _javascript_Core 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.
* _javascript_Core.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 _javascript_Core. It's no longer needed to set
PYTHON_PATH to find jsmin.py.
Modified Paths
trunk/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj
trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/cmake/WebKitMacros.cmake
Added Paths
trunk/Source/_javascript_Core/Scripts/make-js-file-arrays.py
Removed Paths
trunk/Source/WebCore/Scripts/make-js-file-arrays.py
Diff
Modified: trunk/ChangeLog (219288 => 219289)
--- trunk/ChangeLog 2017-07-10 10:13:47 UTC (rev 219288)
+++ trunk/ChangeLog 2017-07-10 13:19:55 UTC (rev 219289)
@@ -1,3 +1,15 @@
+2017-07-10 Carlos Garcia Campos
+
+Move make-js-file-arrays.py from WebCore to _javascript_Core
+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
+_javascript_Core. It's no longer needed to set PYTHON_PATH to find jsmin.py.
+
+* Source/cmake/WebKitMacros.cmake:
+
2017-07-08 Yusuke Suzuki
Drop NOSNIFF compile flag
Modified: trunk/Source/_javascript_Core/ChangeLog (219288 => 219289)
--- trunk/Source/_javascript_Core/ChangeLog 2017-07-10 10:13:47 UTC (rev 219288)
+++ trunk/Source/_javascript_Core/ChangeLog 2017-07-10 13:19:55 UTC (rev 219289)
@@ -1,3 +1,18 @@
+2017-07-10 Carlos Garcia Campos
+
+Move make-js-file-arrays.py from WebCore to _javascript_Core
+https://bugs.webkit.org/show_bug.cgi?id=174024
+
+Reviewed by Michael Catanzaro.
+
+It's currently used only by WebCore, but it depends on other _javascript_Core 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.
+
+* _javascript_Core.xcodeproj/project.pbxproj:
+* Scripts/make-js-file-arrays.py: Renamed from Source/WebCore/Scripts/make-js-file-arrays.py.
+(main):
+
2017-07-09 Yusuke Suzuki
[JSC] Drop LineNumberAdder since we no longer treat (not ) as one line terminator
Modified: trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj (219288 => 219289)
--- trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2017-07-10 10:13:47 UTC (rev 219288)
+++ trunk/Source/_javascript_Core/_javascript_Core.xcodeproj/project.pbxproj 2017-07-10 13:19:55 UTC (rev 219289)
@@ -1900,6 +1900,7 @@
A5EA710A19F6DE7E0098F5EC /* generate_objc_internal_header.py in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70F619F6DE5A0098F5EC /* generate_objc_internal_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
A5EA710C19F6DE820098F5EC /* objc_generator.py in Headers */ = {isa = PBXBuildFile; fileRef = A5EA70F819F6DE5A0098F5EC /* objc_generator.py */; settings = {ATTRIBUTES = (Private, ); }; };
A5EA710E19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EA710D19F6DF810098F5EC /* InspectorAlternateBackendDispatchers.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ A5EF13F91F073204000F0442 /* make-js-file-arrays.py in Headers */ = {isa = PBXBuildFile; fileRef = A5EF13F71F0731B4000F0442 /* make-js-file-arrays.py */; settings = {ATTRIBUTES = (Private, ); }; };
A5EF9B141A1D43F600702E90 /* generate_cpp_backend_dispatcher_header.py in Headers */ = {isa = PBXBuildFile; fileRef = C4F4B6D11A05C76F005CAB76 /* generate_cpp_backend_dispatcher_header.py */; settings = {ATTRIBUTES = (Private, ); }; };
Title: [219288] trunk/Source/WebCore
Revision 219288
Author commit-qu...@webkit.org
Date 2017-07-10 03:13:47 -0700 (Mon, 10 Jul 2017)
Log Message
[GTK] http/tests/media/video-redirect.html is failing
https://bugs.webkit.org/show_bug.cgi?id=174260
Patch by Charlie Turner 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.
Modified Paths
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
Diff
Modified: trunk/Source/WebCore/ChangeLog (219287 => 219288)
--- trunk/Source/WebCore/ChangeLog 2017-07-10 10:04:53 UTC (rev 219287)
+++ trunk/Source/WebCore/ChangeLog 2017-07-10 10:13:47 UTC (rev 219288)
@@ -1,3 +1,22 @@
+2017-07-10 Charlie Turner
+
+[GTK] http/tests/media/video-redirect.html is failing
+https://bugs.webkit.org/show_bug.cgi?id=174260
+
+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.
+
2017-07-08 John Wilander
Resource Load Statistics: User interaction should always go to top document
Modified: trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp (219287 => 219288)
--- trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2017-07-10 10:04:53 UTC (rev 219287)
+++ trunk/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp 2017-07-10 10:13:47 UTC (rev 219288)
@@ -210,6 +210,12 @@
}
}
+static void convertToInternalProtocol(URL& url)
+{
+if (url.protocolIsInHTTPFamily())
+url.setProtocol("webkit+" + url.protocol());
+}
+
void MediaPlayerPrivateGStreamer::setPlaybinURL(const URL& url)
{
// Clean out everything after file:// url path.
@@ -218,10 +224,8 @@
cleanURLString = cleanURLString.substring(0, url.pathEnd());
m_url = URL(URL(), cleanURLString);
+convertToInternalProtocol(m_url);
-if (m_url.protocolIsInHTTPFamily())
-m_url.setProtocol("webkit+" + url.protocol());
-
GST_INFO("Load %s", m_url.string().utf8().data());
g_object_set(m_pipeline.get(), "uri", m_url.string().utf8().data(), nullptr);
}
@@ -1668,6 +1672,7 @@
// append the value of new-location to it.
URL baseUrl = gst_uri_is_valid(newLocation) ? URL() : m_url;
URL newUrl = URL(baseUrl, newLocation);
+convertToInternalProtocol(newUrl);
RefPtr securityOrigin = SecurityOrigin::create(m_url);
if (securityOrigin->canRequest(newUrl)) {
___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes
Title: [219287] trunk/Source/WebKit2
Revision 219287
Author wenson_hs...@apple.com
Date 2017-07-10 03:04:53 -0700 (Mon, 10 Jul 2017)
Log Message
[WK2] Action sheets for links fail to present in WebKit2 PDF view
https://bugs.webkit.org/show_bug.cgi?id=174307
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.
Modified Paths
trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm
Diff
Modified: trunk/Source/WebKit2/ChangeLog (219286 => 219287)
--- trunk/Source/WebKit2/ChangeLog 2017-07-10 05:58:57 UTC (rev 219286)
+++ trunk/Source/WebKit2/ChangeLog 2017-07-10 10:04:53 UTC (rev 219287)
@@ -1,3 +1,30 @@
+2017-07-10 Wenson Hsieh
+
+[WK2] Action sheets for links fail to present in WebKit2 PDF view
+https://bugs.webkit.org/show_bug.cgi?id=174307
+
+
+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.
+
2017-07-09 Brady Eidson
Remove some obsolete WebKitVersionChecks.
Modified: trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm (219286 => 219287)
--- trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm 2017-07-10 05:58:57 UTC (rev 219286)
+++ trunk/Source/WebKit2/UIProcess/ios/WKActionSheetAssistant.mm 2017-07-10 10:04:53 UTC (rev 219287)
@@ -371,7 +371,7 @@
_elementInfo = WTFMove(elementInfo);
-if (![_interactionSheet presentSheet:[self _shouldPresentAtTouchLocationForElementRect:elementBounds] ? WKActionSheetPresentAtTouchLocation : WKActionSheetPresentAtElementRect])
+if (![_interactionSheet presentSheet:presentationStyleForView(_view.getAutoreleased(), _positionInformation.value(), _elementInfo.get())])
[self cleanupSheet];
};
@@ -393,10 +393,9 @@
showImageSheetWithAlternateURLBlock(nil, nil);
}
-- (BOOL)_shouldPresentAtTouchLocationForElementRect:(CGRect)elementRect
+static WKActionSheetPresentationStyle presentationStyleForView(UIView *view, const InteractionInformationAtPosition& positionInfo, _WKActivatedElementInfo *elementInfo)
{
-UIView *view = _view.getAutoreleased();
-auto apparentElementRect = [view convertRect:elementRect toView:view.window];
+auto apparentElementRect = [view convertRect:positionInfo.bounds toView:view.window];
auto windowRect = view.window.bounds;
apparentElementRect = CGRectIntersection(apparentElementRect, windowRect);
@@ -408,7 +407,13 @@
// If at least this much of the window is available for the popover to draw in, then target the element rect when presenting the action menu popover.
// Otherwise, there is not enough space to position the popover around the element, so revert to using the touch location instead.
static const