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

Timeline



Aug 10, 2018:

11:47 PM Changeset in webkit [234782] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472
<rdar://problem/43153059>

Followup, fix some mistakes.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::~RenderLayerBacking):

7:55 PM Changeset in webkit [234781] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit

[Cocoa] WebKit::PlatformPopupMenuData should use member initialization
<https://webkit.org/b/188478>
<rdar://problem/43154363>

Reviewed by Joseph Pecoraro.

  • Shared/PlatformPopupMenuData.cpp:

(WebKit::PlatformPopupMenuData::PlatformPopupMenuData): Delete
implementation. This constructor caused the warning by never
initializing its member variables.

  • Shared/PlatformPopupMenuData.h:

(WebKit::PlatformPopupMenuData::PlatformPopupMenuData):

  • Use default constructor.

(WebKit::PlatformPopupMenuData::shouldPopOver):
(WebKit::PlatformPopupMenuData::hideArrows):
(WebKit::PlatformPopupMenuData::menuSize):

  • Add struct member initialization.
7:43 PM Changeset in webkit [234780] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Web Inspector: console.log fires getters for deep properties
https://bugs.webkit.org/show_bug.cgi?id=187542
<rdar://problem/42873158>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(RemoteObject.prototype._isPreviewableObject):
Avoid getters/setters when checking for simple properties to preview.
Here we avoid invoking object[property] if it could be a user getter.

LayoutTests:

  • inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
  • inspector/injected-script/avoid-getter-invocation.html: Added.
7:21 PM Changeset in webkit [234779] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

LayoutTest inspector/worker/debugger-pause.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=164833
<rdar://problem/29295404>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Brian Burg.

  • inspector/worker/debugger-pause.html:

Add a microtask turn to ensure the workerTarget's mainResource is setup.
There were times it might not get setup, but a single turn appears
reliable enough.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:

This test always passes for me in Release and Debug. Reset expectations.

7:01 PM Changeset in webkit [234778] by rniwa@webkit.org
  • 4 edits in trunk/Source

[macOS] Multiple third party apps crash due to the thread safety check in TimerBase::setNextFireTime
https://bugs.webkit.org/show_bug.cgi?id=188480

Reviewed by Simon Fraser.

Source/WebCore:

Suppress the release assert in WebKit1 on macOS (isInWebProcess is always true in non-Cocoa platforms).

In the future, we should consider throwing Objective-C exceptions when third party apps call WebKit1
or WebKit2 APIs in non-main threads.

  • platform/Timer.cpp:

(WebCore::shouldSuppressThreadSafetyCheck): Extracted out of ~TimerBase and setNextFireTime.
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::setNextFireTime):

Source/WTF:

Added the SDK version for macOS Mojave.

  • wtf/spi/darwin/dyldSPI.h:
4:31 PM Changeset in webkit [234777] by keith_miller@apple.com
  • 6 edits in trunk

Slicing an ArrayBuffer with a long number returns an ArrayBuffer with byteLength zero
https://bugs.webkit.org/show_bug.cgi?id=185127

Reviewed by Saam Barati.

JSTests:

Rebaseline the expectations.

  • test262/expectations.yaml:

Source/JavaScriptCore:

Previously, we would truncate the indicies passed to slice to an
int. This meant that the value was not getting properly clamped
later.

This patch also removes a non-spec compliant check that slice was
passed at least one argument.

  • runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::clampValue):
(JSC::ArrayBuffer::clampIndex const):
(JSC::ArrayBuffer::slice const):

  • runtime/ArrayBuffer.h:

(JSC::ArrayBuffer::clampValue): Deleted.
(JSC::ArrayBuffer::clampIndex const): Deleted.

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

4:03 PM Changeset in webkit [234776] by Chris Dumez
  • 6 edits
    3 adds in trunk

Crash under NetworkResourceLoader::convertToDownload()
https://bugs.webkit.org/show_bug.cgi?id=188479
<rdar://problem/42201724>

Reviewed by Alex Christensen.

Source/WebKit:

In NetworkResourceLoader::convertToDownload(), if m_networkLoad is null then we're trying
to convert a load that came from the disk cache. Since we do not currently support converting
such a load, cancel the current load and start a fresh download.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::convertToDownload):

LayoutTests:

Add layout test coverage which reproduces the crash by:

  1. Loading a cacheable plugin while plugins are enabled so that the plugin goes into the disk cache
  2. Load the plugin again with plugins disabled so that we try to convert the load to a download
  • http/tests/download/convert-cached-load-to-download-expected.txt: Added.
  • http/tests/download/convert-cached-load-to-download.html: Added.
  • http/tests/plugins/resources/mock-plugin-cacheable.pl: Added.
3:59 PM Changeset in webkit [234775] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.0-branch/Source

Versioning.

3:58 PM Changeset in webkit [234774] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.1-branch/Source

Versioning.

3:35 PM Changeset in webkit [234773] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.4

Tag Safari-606.1.36.1.4.

2:55 PM Changeset in webkit [234772] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.0.2

Tag Safari-606.1.36.0.2.

2:53 PM Changeset in webkit [234771] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Cleanup: Remove unnecessary code to resume animations from CachedFrameBase::restore()
https://bugs.webkit.org/show_bug.cgi?id=188459

Reviewed by Chris Dumez.

It is unnessary for CachedFrameBase::restore() to explicitly resume animations on the
document as it calls Document::resume(), which already does this.

No functionality changed. So, no new tests.

  • history/CachedFrame.cpp:

(WebCore::CachedFrameBase::restore):

2:48 PM Changeset in webkit [234770] by dbates@webkit.org
  • 2 edits in trunk/Tools

webkit-patch setup-git-clone should set Git core editor to commit-log-editor
https://bugs.webkit.org/show_bug.cgi?id=188473

Reviewed by Ryosuke Niwa.

Have "webkit-patch setup-git-clone" set the Git core editor to "perl Tools/Scripts/commit-log-editor --regenerate-log"
so that the Git commit message is generated from the ChangeLog for developers that manually
generate their ChangeLog using prepare-ChangeLog.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone.execute):

1:29 PM Changeset in webkit [234769] by Ross Kirsling
  • 2 edits in trunk/LayoutTests

[WinCairo] More unreviewed gardening.

  • platform/wincairo/TestExpectations:
12:51 PM Changeset in webkit [234768] by Antti Koivisto
  • 13 edits in trunk/Source

Use OptionSet for various RenderLayer flags
https://bugs.webkit.org/show_bug.cgi?id=188472

Reviewed by Simon Fraser.

Source/WebCore:

Typesafe flags.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/FrameView.cpp:

(WebCore::updateLayerPositionFlags):
(WebCore::FrameView::paintContents):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
(WebCore::RenderLayer::paint):
(WebCore::paintForFixedRootBackground):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintLayerContentsAndReflection):
(WebCore::RenderLayer::filterPainter const):
(WebCore::RenderLayer::hasFilterThatIsPainting const):
(WebCore::RenderLayer::setupFilters):
(WebCore::RenderLayer::paintLayerContents):
(RenderLayer::paintLayerByApplyingTransform):
(RenderLayer::paintList):
(RenderLayer::updatePaintingInfoForFragments):
(RenderLayer::paintTransformedLayerIntoFragments):
(RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::paintLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::paintList): Deleted.
(WebCore::RenderLayer::enclosingPaginationLayerInSubtree const): Deleted.
(WebCore::RenderLayer::collectFragments): Deleted.
(WebCore::RenderLayer::updatePaintingInfoForFragments): Deleted.
(WebCore::RenderLayer::paintTransformedLayerIntoFragments): Deleted.
(WebCore::RenderLayer::paintBackgroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragments): Deleted.
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase): Deleted.
(WebCore::RenderLayer::paintOutlineForFragments): Deleted.
(WebCore::RenderLayer::paintMaskForFragments): Deleted.
(WebCore::RenderLayer::paintChildClippingMaskForFragments): Deleted.
(WebCore::RenderLayer::paintOverflowControlsForFragments): Deleted.
(WebCore::RenderLayer::hitTest): Deleted.
(WebCore::RenderLayer::enclosingElement const): Deleted.
(WebCore::RenderLayer::enclosingFragmentedFlowAncestor const): Deleted.
(WebCore::computeZOffset): Deleted.
(WebCore::RenderLayer::createLocalTransformState const): Deleted.
(WebCore::isHitCandidate): Deleted.
(WebCore::RenderLayer::hitTestLayer): Deleted.
(WebCore::RenderLayer::hitTestContentsForFragments const): Deleted.
(WebCore::RenderLayer::hitTestResizerInFragments const): Deleted.
(WebCore::RenderLayer::hitTestTransformedLayerInFragments): Deleted.
(WebCore::RenderLayer::hitTestLayerByApplyingTransform): Deleted.
(WebCore::RenderLayer::hitTestContents const): Deleted.
(WebCore::RenderLayer::hitTestList): Deleted.
(WebCore::RenderLayer::updateClipRects): Deleted.
(WebCore::RenderLayer::clipRects const): Deleted.
(WebCore::RenderLayer::calculateClipRects const): Deleted.
(WebCore::showLayerTree): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateCompositedBounds):
(WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
(WebCore::RenderLayerBacking::paintIntoLayer):

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderReplica.cpp:

(WebCore::RenderReplica::paint):

Source/WTF:

  • wtf/MathExtras.h:

(hasOneBitSet):
(hasZeroOrOneBitsSet):
(hasTwoOrMoreBitsSet):

Make constexpr.

  • wtf/OptionSet.h:

(WTF::OptionSet::OptionSet):

Always use constexpr, no need for separate debug versions with C++14.

12:35 PM Changeset in webkit [234767] by Basuke Suzuki
  • 6 edits in trunk/LayoutTests

[LayoutTests] Suppress warning messages generated by the test scripts.
https://bugs.webkit.org/show_bug.cgi?id=188455

Reviewed by Fujii Hironori.

The messages such as warnings shouldn't be out on error log if that can be avoidable.

  • http/tests/cookies/resources/cookie-utility.php:
  • http/tests/xmlhttprequest/resources/access-control-allow-lists.php:
  • http/tests/xmlhttprequest/resources/access-control-basic-get-fail-non-simple.cgi:
  • http/tests/xmlhttprequest/resources/post-echo.cgi:
  • http/tests/xmlhttprequest/web-apps/004-test.cgi:
12:05 PM Changeset in webkit [234766] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.Storage at WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose
https://bugs.webkit.org/show_bug.cgi?id=188461
<rdar://problem/33555052>

Reviewed by Chris Dumez.

When we try to schedule shutdown for database, we should cancel the timer so no
scheduleShutdownForClose will be running after this.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::scheduleShutdownForClose):

11:56 AM Changeset in webkit [234765] by Truitt Savell
  • 5 edits in trunk/Tools

Unreviewed, rolling out r234749.

Caused all perf tests to fail in Sierra

Reverted changeset:

"[webkitpy][Win] LayoutTests: test names should be Unix style,
separated by slash not backslash"
https://bugs.webkit.org/show_bug.cgi?id=187973
https://trac.webkit.org/changeset/234749

11:23 AM Changeset in webkit [234764] by commit-queue@webkit.org
  • 4 edits in trunk/PerformanceTests

Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-10
Reviewed by Ryosuke Niwa.

Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.

  • LaunchTime/launch_time.py:

(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):

  • LaunchTime/new_tab.py:

(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):

  • LaunchTime/startup.py:

(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):

10:42 AM Changeset in webkit [234763] by yusukesuzuki@slowstart.org
  • 5 edits
    2 adds in trunk

Date.UTC should not return NaN with only Year param
https://bugs.webkit.org/show_bug.cgi?id=188378

Reviewed by Keith Miller.

JSTests:

  • ChakraCore.yaml:
  • ChakraCore/test/Date/dateutc.baseline-jsc: Added.
  • stress/date-utc-optional.js: Added.

(shouldBe):

  • test262/expectations.yaml:

Source/JavaScriptCore:

Date.UTC requires one argument for |year|. But the other ones are optional.
This patch fix this handling.

  • runtime/DateConstructor.cpp:

(JSC::millisecondsFromComponents):

10:39 AM Changeset in webkit [234762] by dbates@webkit.org
  • 3 edits
    5 adds in trunk

Once <object> is hidden, its content won't be displayed again if its URL has fragment identifier ("#").
https://bugs.webkit.org/show_bug.cgi?id=187990

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where an HTML object element that behaves like an iframe and references a resource
whose URL contains a fragment would not be repainted when its CSS display property changes.

Rendering of an <object> that behaves like an iframe is handled by a widget (FrameView). When
the CSS display property for an <object> is set to "none" we detach the widget from its renderer
as part of destroying the render tree for the <object>. Subsequently changing the CSS display
to a non-"none"/"contents" value will create a new renderer for <object> R. For an <object> that
behaves like an iframe, we navigate to the resource associated with the <object> reusing the
existing Frame F object created when we first displayed the <object>. Unlike the case where
the URL of the resource does not contain a fragment, navigating to a fragment in the same document
uses a different code path that does not re-associate the FrameView of F with R before it scrolls
the view; => the FrameView of F is not in the view hierarchy. Therefore we do not paint anything
for the content of the <object> and hence the scroll is not observable. Instead we need to ensure
that the FrameView of F installed in the view hierarchy when navigating to an anchor in the same
document.

As a side benefit of this fix we now also repaint an <object> that is programmatically navigated
to a different anchor in the same document.

Tests: fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html

fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadInSameDocument):

LayoutTests:

Add tests to ensure that we repaint an <object>, whose resource URL contains a fragment, when
its CSS display property changes as well as when its navigated to a different anchor in the same
document.

  • fast/repaint/object-as-iframe-hide-and-show-document-at-anchor-expected.txt: Added.
  • fast/repaint/object-as-iframe-hide-and-show-document-at-anchor.html: Added.
  • fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint-expected.txt: Added.
  • fast/repaint/object-as-iframe-navigate-to-same-document-anchor-repaint.html: Added.
  • fast/repaint/resources/red-square-on-top-of-green-square.html: Added.
10:08 AM Changeset in webkit [234761] by ajuma@chromium.org
  • 10 edits in trunk

[IntersectionObserver] Implement rootMargin parsing
https://bugs.webkit.org/show_bug.cgi?id=188469

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update expectations for newly passing test cases.

  • web-platform-tests/intersection-observer/observer-attributes-expected.txt:
  • web-platform-tests/intersection-observer/observer-exceptions-expected.txt:

Source/WebCore:

Parse IntersectionObserver's rootMargin argument and throw an exception if it's invalid.
Change the stored rootMargin from a String to a LengthBox so that future patches can
use this value in intersection logic.

Tested by: imported/w3c/web-platform-tests/intersection-observer/observer-attributes.html

imported/w3c/web-platform-tests/intersection-observer/observer-exceptions.html
intersection-observer/intersection-observer-interface.html

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):
(WebCore::IntersectionObserver::create):
(WebCore::IntersectionObserver::IntersectionObserver):
(WebCore::IntersectionObserver::rootMargin const):

  • page/IntersectionObserver.h:

(WebCore::IntersectionObserver::create): Deleted.
(WebCore::IntersectionObserver::rootMargin const): Deleted.

  • page/IntersectionObserver.idl:

LayoutTests:

  • intersection-observer/intersection-observer-interface-expected.txt:
  • intersection-observer/intersection-observer-interface.html:
9:46 AM Changeset in webkit [234760] by Kocsen Chung
  • 10 edits in branches/safari-606.1.36.0-branch

Cherry-pick r234730. rdar://problem/43144157

REGRESSION (r232083): WKWebView loses first-party cookies on iOS
https://bugs.webkit.org/show_bug.cgi?id=188443
<rdar://problem/42991584>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-08-09
Reviewed by Chris Dumez.

Source/WebKit:

Revert the change to set sharedCookieStorage for iOS as it is breaking Kayak.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp: (WebKit::NetworkProcessCreationParameters::encode const): (WebKit::NetworkProcessCreationParameters::decode):
  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm: (WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):
  • Shared/WebProcessCreationParameters.cpp: (WebKit::WebProcessCreationParameters::encode const): (WebKit::WebProcessCreationParameters::decode):
  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm: (WebKit::WebProcessPool::platformInitializeWebProcess): (WebKit::WebProcessPool::platformInitializeNetworkProcess):

Tools:

Skip WebKit.WKHTTPCookieStoreWithoutProcessPool on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

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

9:45 AM Changeset in webkit [234759] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Incorrect log message in NetworkSession when creating NetworkDataTask
https://bugs.webkit.org/show_bug.cgi?id=188463

Reviewed by Chris Dumez.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):

9:31 AM Changeset in webkit [234758] by david_fenton@apple.com
  • 2 edits in trunk/Tools

Timeouts in TestWebKitAPI.PreferredAudioBufferSize.AudioWithWebAudio and TestWebKitAPI.PreferredAudioBufferSize.WebAudio.
https://bugs.webkit.org/show_bug.cgi?id=188470.

Unreviewed test gardening, disabling the tests.

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(TEST_F):

9:26 AM Changeset in webkit [234757] by Truitt Savell
  • 4 edits in trunk/PerformanceTests

Unreviewed, rolling out r234750.

Caused 185 perf test failures.

Reverted changeset:

"Add ability to ignore process prewarming for launch time
benchmark"
https://bugs.webkit.org/show_bug.cgi?id=188462
https://trac.webkit.org/changeset/234750

9:10 AM Changeset in webkit [234756] by commit-queue@webkit.org
  • 7 edits in trunk

Eliminate remaining instances of "ElCapitan" from LayoutTests / Tools
https://bugs.webkit.org/show_bug.cgi?id=188458

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Alex Christensen.

Tools:

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser):

  • TestResultServer/static-dashboards/flakiness_dashboard.js:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
9:02 AM Changeset in webkit [234755] by Ryan Haddad
  • 2 edits in branches/safari-606.1.36.1-branch/Tools

Cherry-pick r234734. rdar://problem/42387347

REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

  • WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):

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

8:52 AM Changeset in webkit [234754] by Ryan Haddad
  • 2 edits in branches/safari-606-branch/Tools

Cherry-pick r234734. rdar://problem/42387347

REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

  • WebKitTestRunner/mac/main.mm: (setDefaultsToConsistentValuesForTesting):

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

1:17 AM Changeset in webkit [234753] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebDriver

[GTK][WPE] WebDriver: do not use default browser arguments when browser binary has been provided
https://bugs.webkit.org/show_bug.cgi?id=188465

Reviewed by Žan Doberšek.

We only want to use --automation when no options or no browser binary is provided, because we fallback to
MiniBrowser and we know it needs --automation flag.

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::launchBrowser): Handle the case of browser arguments being std::nullopt.

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformParseCapabilities const): Initialize browser arguments to std:nullopt if
browser binary was provided.

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformParseCapabilities const): Ditto.

12:57 AM Changeset in webkit [234752] by Ross Kirsling
  • 4 edits
    21 adds in trunk/LayoutTests

[WinCairo] Unreviewed layout test gardening.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/editing/selection/5057506-expected.png: Added.
  • platform/wincairo/editing/selection/caret-ltr-right-expected.txt:
  • platform/wincairo/editing/selection/caret-rtl-right-expected.txt:
  • platform/wincairo/editing/selection/doubleclick-crash-expected.txt: Added.
  • platform/wincairo/editing/selection/editable-links-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-character-006-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-sentence-001-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-by-word-001-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-inside-transforms-backward-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-inside-transforms-forward-expected.txt: Added.
  • platform/wincairo/editing/selection/extend-selection-bidi-expected.txt: Added.
  • platform/wincairo/editing/selection/focus-body-expected.txt: Added.
  • platform/wincairo/editing/selection/move-by-line-001-expected.txt: Added.
  • platform/wincairo/editing/selection/move-by-word-001-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-001-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-002-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-003-expected.txt: Added.
  • platform/wincairo/editing/selection/select-all-004-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-001-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-002-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-003-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-004-expected.txt: Added.
  • platform/wincairo/editing/selection/unrendered-005-expected.txt: Added.

Aug 9, 2018:

10:13 PM Changeset in webkit [234751] by Basuke Suzuki
  • 3 edits in trunk/LayoutTests

[LayoutTests] Test case which committed on r175053 was wrong.
https://bugs.webkit.org/show_bug.cgi?id=188454

Reviewed by Fujii Hironori.

It was originally committed on https://bugs.webkit.org/show_bug.cgi?id=136938 and has kept unchanged,
but the test case uses non-existing redirect.php scripts which was removed a few months before than
this bug. Also result was compared to wrong values.

  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-redirect-responseURL.html:
9:53 PM Changeset in webkit [234750] by commit-queue@webkit.org
  • 4 edits in trunk/PerformanceTests

Add ability to ignore process prewarming for launch time benchmark
https://bugs.webkit.org/show_bug.cgi?id=188462

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-09
Reviewed by Ryosuke Niwa.

Added a flag to the new tab benchmark that will open a blank tab before the tab to be measured in order to ignore process prewarming.

  • LaunchTime/launch_time.py:

(DefaultLaunchTimeHandler):
(DefaultLaunchTimeHandler.on_receive_stop_time): Deleted.
(DefaultLaunchTimeHandler.on_receive_stop_signal):
(DefaultLaunchTimeHandler.do_HEAD):
(DefaultLaunchTimeHandler.do_GET):
(DefaultLaunchTimeHandler.do_POST):
(LaunchTimeBenchmark):
(LaunchTimeBenchmark._standard_deviation): Fixed divide by zero bug when '-n' is set to 1
(LaunchTimeBenchmark.open_tab): Added option to open a blank tab
(LaunchTimeBenchmark.run):

  • LaunchTime/new_tab.py:

(NewTabBenchmark.initialize):
(NewTabBenchmark.run_iteration):
(NewTabBenchmark.will_parse_arguments):
(NewTabBenchmark.did_parse_arguments):
(NewTabBenchmark.ResponseHandler.Handler.get_test_page):
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(NewTabBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(NewTabBenchmark):

  • LaunchTime/startup.py:

(StartupBenchmark.ResponseHandler.Handler.get_test_page):
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_time): Deleted.
(StartupBenchmark.ResponseHandler.Handler.on_receive_stop_signal):
(StartupBenchmark):

7:13 PM Changeset in webkit [234749] by Fujii Hironori
  • 5 edits in trunk/Tools

[webkitpy][Win] LayoutTests: test names should be Unix style, separated by slash not backslash
https://bugs.webkit.org/show_bug.cgi?id=187973

Reviewed by Alex Christensen.

In LayoutTests, test names have been canonicalized in Unix style
since Bug 63597, for example 'fast/css/001.html'. But, Bug 179219,
Bug 179572, Bug 180660 and Bug 181814 have changed to use
os.path.seq instead of slash if Windows Python is used.

Revert parts of those changes. Change relative_test_filename to
return a slash sperated test name as well as chromium_win.py used
to do.

This change fixes all 41 test-webkitpy failures in WinCairo port.

  • Scripts/webkitpy/layout_tests/models/test_expectations.py:

(TestExpectationParser._parse_line): Do not convert a test name by using normpath.

  • Scripts/webkitpy/port/base.py:

(Port.normalize_test_name): Use TEST_PATH_SEPARATOR instead of os.path.sep.
(Port.relative_test_filename): Replace self.host.filesystem.sep with self.TEST_PATH_SEPARATOR.
(Port.abspath_for_test): Split test_name with TEST_PATH_SEPARATOR.

  • Scripts/webkitpy/port/driver.py:

(Driver): Use '/' instead of os.sep.

  • Scripts/webkitpy/port/win.py:

(WinCairoPort): Do not override TEST_PATH_SEPARATOR.

6:18 PM Changeset in webkit [234748] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WHLSL] Add individual test durations to output
https://bugs.webkit.org/show_bug.cgi?id=188448

Patch by Thomas Denney <tdenney@apple.com> on 2018-08-09
Reviewed by Myles C. Maxfield.

  • WebGPUShadingLanguageRI/Test.js: Add timing output.
5:28 PM Changeset in webkit [234747] by commit-queue@webkit.org
  • 23 edits
    5 adds in trunk

We should cache the compiled sandbox profile in a data vault
https://bugs.webkit.org/show_bug.cgi?id=184991

Patch by Ben Richards <benton_richards@apple.com> on 2018-08-09
Reviewed by Ryosuke Niwa.

Source/WebCore:

Added functionality to FileHandle so that it can lock a file while open.
Added a function to FileSystem to delete non empty directories.

  • platform/FileHandle.cpp:

(WebCore::FileHandle::FileHandle):
(WebCore::FileHandle::open):
(WebCore::FileHandle::close):

  • platform/FileHandle.h:
  • platform/FileSystem.h:
  • platform/cocoa/FileSystemCocoa.mm:

(WebCore::FileSystem::deleteNonEmptyDirectory):

Source/WebKit:

This patch changes a few things (note: data vaults and sandbox entitlements are only used in internal builds):
(1) Instead of compiling a sandbox every time a process is launched, processes now look for a cached sandbox

in a process specific data vault on macOS platforms. (ChildProcessMac.mm)

(2) If a valid cached sandbox is not found, a process will create the data vault (or ensure that it exists),

compile a sandbox, and cache it.

(3) In order to create process specific data vaults, each process now has their own <process name>-OSX-sandbox.entitlements

file which contains an entitlement with a process specific "storage class" which ensures that each process
can only ever access its own data vault. (See the article on confluence "Data Vaults and Restricted Files" for more info)

(4) The sandbox entitlements file for the Network, WebContent and Plugin services are loaded dynamically

through Scripts/<process name>-process-entitlements.sh which is triggered in a new build phase for each service.
The Storage process sandbox entitlements are loaded directly in Configurations/StorageService.xcconfig.
The reason that the sandbox entitlements are applied dynamically is so that these sandbox entitlements
are only applied when WK_USE_RESTRICTED_ENTITLEMENTS is YES. This means that open source builds will still work.

  • Configurations/Network-OSX-sandbox.entitlements: Added.
  • Configurations/Storage-OSX-sandbox.entitlements: Added.
  • Configurations/StorageService.xcconfig:
  • Configurations/WebContent-OSX-sandbox.entitlements: Added.
  • Configurations/WebKit.xcconfig:
  • NetworkProcess/NetworkProcess.h:
  • PluginProcess/PluginProcess.h:
  • Scripts/process-network-sandbox-entitlements.sh: Added.
  • Scripts/process-webcontent-sandbox-entitlements.sh: Added.
  • Shared/ChildProcess.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):

  • Shared/SandboxInitializationParameters.h:

(WebKit::SandboxInitializationParameters::setOverrideSandboxProfilePath):
(WebKit::SandboxInitializationParameters::overrideSandboxProfilePath const):
(WebKit::SandboxInitializationParameters::setSandboxProfile):
(WebKit::SandboxInitializationParameters::sandboxProfile const):
(): Deleted.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::SandboxProfileDeleter::operator()):
(WebKit::SandboxParametersDeleter::operator()):
(WebKit::SandboxInfo::SandboxInfo):
(WebKit::fileContents):
(WebKit::processStorageClass):
(WebKit::setAndSerializeSandboxParameters):
(WebKit::sandboxDataVaultParentDirectory):
(WebKit::sandboxDirectory):
(WebKit::sandboxFilePath):
(WebKit::ensureSandboxCacheDirectory):
(WebKit::writeSandboxDataToCacheFile):
(WebKit::compileAndCacheSandboxProfile):
(WebKit::tryApplyCachedSandbox):
(WebKit::webKit2Bundle):
(WebKit::sandboxProfilePath):
(WebKit::compileAndApplySandboxSlowCase):
(WebKit::applySandbox):
(WebKit::initializeSandboxParameters):
(WebKit::ChildProcess::initializeSandbox):

  • Shared/mac/SandboxInitialiationParametersMac.mm:

(WebKit::SandboxInitializationParameters::SandboxInitializationParameters):

  • StorageProcess/StorageProcess.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebProcess.h:

Source/WTF:

Added trace points for sandbox initialization and exposed functions needed for sandbox caching

  • wtf/SystemTracing.h:
  • wtf/spi/darwin/SandboxSPI.h:

Tools:

Added trace points for sandbox initialization

  • Tracing/SystemTracePoints.plist:
5:20 PM Changeset in webkit [234746] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

Remove ElCapitan specific layout test expectations
https://bugs.webkit.org/show_bug.cgi?id=188457

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-09
Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
5:18 PM Changeset in webkit [234745] by Basuke Suzuki
  • 2 edits
    4 adds in trunk/LayoutTests

[Curl] Test gardening
https://bugs.webkit.org/show_bug.cgi?id=188456

Unreviewed test gardening.

Unskip http/xmlhttprequest.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/tests/local/file-url-sent-as-referer-expected.png: Added.
  • platform/wincairo/http/tests/multipart/invalid-image-data-expected.png: Added.
  • platform/wincairo/http/tests/multipart/invalid-image-data-standalone-expected.png: Added.
  • platform/wincairo/http/tests/uri/css-href-expected.png: Added.
4:56 PM Changeset in webkit [234744] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

InputType should not interact with an HTMLInputElement is no longer associated with
https://bugs.webkit.org/show_bug.cgi?id=188410

Reviewed by Ryosuke Niwa.

Clear InputType::m_element when the InputType is no longer associated with the HTMLInputElement
because the element changed type. We were already dealing with the InputType no longer being
associated with an element because the element died by using a WeakPtr. However, it is conceptually
better (more correct) to also clear this pointer if the element is still alive but associated with
another InputType.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):

  • html/InputType.h:

(WebCore::InputType::detachFromElement):

4:49 PM Changeset in webkit [234743] by jer.noble@apple.com
  • 12 edits
    4 adds in trunk

Video playback is using more power
https://bugs.webkit.org/show_bug.cgi?id=188452
Source/WebCore:

<rdar://problem/42298937>

Reviewed by Eric Carlson.

Test: TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm

When the meaning of PlatformMediaSession::Video changed to "video-only", we failed to update
MediaSessionManagerCocoa::updateSessionState() to use the new PlatformMediaSession::VideoAudio
enum, so Video-only sessions were getting the higher audio buffer size (where it's not needed)
and Video-and-Audio sessions were getting the default value.

To enable testing, add a preferredAudioBufferSize property to Internals. Also, the getter for
AudioSession::preferredBufferSize was using the wrong CoreAudio property address, and was
always returning 0.

  • platform/audio/AudioSession.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp:

(MediaSessionManagerCocoa::updateSessionState):

  • platform/audio/mac/AudioSessionMac.cpp:

(WebCore::AudioSession::preferredBufferSize const):

  • testing/Internals.cpp:

(WebCore::Internals::preferredAudioBufferSize const):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

Reviewed by Eric Carlson.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setLowPowerVideoAudioBufferSizeEnabled:]):
(-[WKPreferences _lowPowerVideoAudioBufferSizeEnabled]):

Tools:

<rdar://problem/42298937>

Reviewed by Eric Carlson.

  • TestWebKitAPI/Tests/WebKitCocoa/PreferredAudioBufferSize.mm:

(PreferredAudioBufferSize::createView):
(PreferredAudioBufferSize::preferredAudioBufferSize const):
(TEST_F):

4:30 PM Changeset in webkit [234742] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r234330): 3 legacy-animation-engine/compositing tests are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=188357

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
4:07 PM Changeset in webkit [234741] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix URLSchemeHandler.SyncXHR API test after r234735.
https://bugs.webkit.org/show_bug.cgi?id=188358

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):
Return after appending data for synchronous loads. We used to send unused messages.

3:51 PM Changeset in webkit [234740] by Kocsen Chung
  • 4 edits in tags/Safari-607.1.2

Cherry-pick r234739. rdar://problem/43102553

REGRESSION(234640) Loading stalls in environments without SafariSafeBrowsing framework
https://bugs.webkit.org/show_bug.cgi?id=188453
<rdar://problem/43102553>

Source/WebKit:

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::beginSafeBrowsingCheck):

Tools:

Reviewed by Chris Dumez

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm: (TEST): (+[NullLookupContext sharedLookupContext]): (TestWebKitAPI::TEST): Deleted.

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

3:37 PM Changeset in webkit [234739] by achristensen@apple.com
  • 4 edits in trunk

REGRESSION(234640) Loading stalls in environments without SafariSafeBrowsing framework
https://bugs.webkit.org/show_bug.cgi?id=188453
<rdar://problem/43102553>

Source/WebKit:

Reviewed by Chris Dumez.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):

Tools:

Reviewed by Chris Dumez

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):
(+[NullLookupContext sharedLookupContext]):
(TestWebKitAPI::TEST): Deleted.

3:03 PM Changeset in webkit [234738] by Kocsen Chung
  • 7 edits in branches/safari-606.1.36.1-branch/Source

Versioning.

2:53 PM Changeset in webkit [234737] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.36.1.3

Tag Safari-606.1.36.1.3.

2:47 PM Changeset in webkit [234736] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
https://bugs.webkit.org/show_bug.cgi?id=188126
<rdar://problem/42674963>

Reviewed by Matt Baker.

  • UserInterface/Views/DarkMode.css:

(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added.
(.source-code.text-editor > .CodeMirror .issue-widget.error,): Added.

2:43 PM Changeset in webkit [234735] by commit-queue@webkit.org
  • 5 edits in trunk

WKURLSchemeHandler crashes when sent errors with sync XHR
https://bugs.webkit.org/show_bug.cgi?id=188358

Patch by Alex Christensen <achristensen@webkit.org> on 2018-08-09
Reviewed by Chris Dumez.

Source/WebKit:

  • UIProcess/WebURLSchemeTask.cpp:

(WebKit::WebURLSchemeTask::didReceiveData):
(WebKit::WebURLSchemeTask::didComplete):

  • UIProcess/WebURLSchemeTask.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

(-[SyncErrorScheme webView:startURLSchemeTask:]):
(-[SyncErrorScheme webView:stopURLSchemeTask:]):
(-[SyncErrorScheme webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):

1:43 PM Changeset in webkit [234734] by pvollan@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r234652): fast/scrolling/rtl-scrollbars-animation-property.html is failing
https://bugs.webkit.org/show_bug.cgi?id=188397

Reviewed by Tim Horton.

After r234652, [NSScroller preferredScrollerStyle] is called in the UI process, and we need to set the same
user defaults related to scrollbars in the UI process as we do in the WebProcess.

  • WebKitTestRunner/mac/main.mm:

(setDefaultsToConsistentValuesForTesting):

1:13 PM Changeset in webkit [234733] by sbarati@apple.com
  • 9 edits in trunk/Source

memoryFootprint should return size_t not optional<size_t>
https://bugs.webkit.org/show_bug.cgi?id=188444

Reviewed by Simon Fraser.

Source/WebCore:

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::ResourceUsageOverlay::platformDraw):

Source/WTF:

We're now going to return zero instead of returning nullopt on failure.
There was a lot of code dancing around memoryFootprint failing for no
good reason.

Users of this API were previously doing this on failure:

  • Treating it as zero (this was the most common user).
  • Crashing.
  • Bailing out early and not changing our memory pressure state. This change

has the effect that instead of not changing our memory pressure state on
failure, we will go back to thinking we're not under memory pressure. Since
we relied on this API not failing to do anything useful (like kill the process
or release memory), this won't change our behavior here in a meaningful way.

  • wtf/MemoryFootprint.h:
  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::currentMemoryUsagePolicy):
(WTF::MemoryPressureHandler::shrinkOrDie):
(WTF::MemoryPressureHandler::measurementTimerFired):

  • wtf/cocoa/MemoryFootprintCocoa.cpp:

(WTF::memoryFootprint):

  • wtf/linux/MemoryFootprintLinux.cpp:

(WTF::memoryFootprint):

  • wtf/linux/MemoryPressureHandlerLinux.cpp:

(WTF::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

  • wtf/win/MemoryFootprintWin.cpp:

(WTF::memoryFootprint):

12:36 PM Changeset in webkit [234732] by ajuma@chromium.org
  • 7 edits in trunk

Update IDL for IntersectionObserverEntry and IntersectionObserverEntryInit
https://bugs.webkit.org/show_bug.cgi?id=188445

Reviewed by Simon Fraser.

Source/WebCore:

Update IntersectionObserverEntry by making rootBounds nullable, and adding an
isIntersecting attribute. Make the same changes to IntersectionObserverEntryInit,
and also add an intersectionRatio attribute.

Tested by intersection-observer/intersection-observer-entry-interface.html

  • page/IntersectionObserverEntry.cpp:

(WebCore::IntersectionObserverEntry::IntersectionObserverEntry):

  • page/IntersectionObserverEntry.h:

(WebCore::IntersectionObserverEntry::isIntersecting const):

  • page/IntersectionObserverEntry.idl:

LayoutTests:

  • intersection-observer/intersection-observer-entry-interface-expected.txt:
  • intersection-observer/intersection-observer-entry-interface.html:
12:02 PM Changeset in webkit [234731] by Wenson Hsieh
  • 4 edits
    3 moves
    1 add in trunk/Tools

[iOS WK2] Rename and refactor DataInteractionTests and DataInteractionSimulator
https://bugs.webkit.org/show_bug.cgi?id=188439

Reviewed by Andy Estes and Megan Gardner.

Refactor DataInteractionSimulator (currently used for drag and drop testing on iOS) so that it exists across
macOS and iOS, and rename it to DragAndDropSimulator. Additionally, rename DataInteractionTests to
DragAndDropTests.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm: Renamed from Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm.

(testIconImage):
(testZIPArchive):
(-[UIItemProvider registerDataRepresentationForTypeIdentifier:withData:]):
(-[TestWKWebView editorContainsImageElement]):
(-[TestWKWebView editorValue]):
(makeCGRectValue):
(checkCGRectIsEqualToCGRectWithLogging):
(checkSelectionRectsWithLogging):
(checkRichTextTypePrecedesPlainTextType):
(checkFirstTypeIsPresentAndSecondTypeIsMissing):
(checkTypeIdentifierIsRegisteredAtIndex):
(checkEstimatedSize):
(checkSuggestedNameAndEstimatedSize):
(checkStringArraysAreEqual):
(checkDragCaretRectIsContainedInRect):
(checkJSONWithLogging):
(testIconImageData):
(runTestWithTemporaryTextFile):
(runTestWithTemporaryFolder):
(TestWebKitAPI::TEST):
(TestWebKitAPI::setUpTestWebViewForDataTransferItems):
(TestWebKitAPI::testDragAndDropOntoTargetElements):
(TestWebKitAPI::testIconImageData):

  • TestWebKitAPI/cocoa/DragAndDropSimulator.h: Renamed from Tools/TestWebKitAPI/ios/DataInteractionSimulator.h.
  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm: Renamed from Tools/TestWebKitAPI/ios/DataInteractionSimulator.mm.

(-[WKWebView dropInteractionDelegate]):
(-[WKWebView dragInteractionDelegate]):
(-[WKWebView dropInteraction]):
(-[WKWebView dragInteraction]):
(-[MockDragDropSession initWithItems:location:window:allowMove:]):
(-[MockDragDropSession allowsMoveOperation]):
(-[MockDragDropSession isRestrictedToDraggingApplication]):
(-[MockDragDropSession hasItemsConformingToTypeIdentifiers:]):
(-[MockDragDropSession canLoadObjectsOfClass:]):
(-[MockDragDropSession canLoadObjectsOfClasses:]):
(-[MockDragDropSession items]):
(-[MockDragDropSession setItems:]):
(-[MockDragDropSession addItems:]):
(-[MockDragDropSession locationInView:]):
(-[MockDropSession initWithProviders:location:window:allowMove:]):
(-[MockDropSession isLocal]):
(-[MockDropSession progress]):
(-[MockDropSession setProgressIndicatorStyle:]):
(-[MockDropSession progressIndicatorStyle]):
(-[MockDropSession operationMask]):
(-[MockDropSession localDragSession]):
(-[MockDropSession hasItemsConformingToTypeIdentifier:]):
(-[MockDropSession canCreateItemsOfClass:]):
(-[MockDropSession loadObjectsOfClass:completion:]):
(-[MockDragSession initWithWindow:allowMove:]):
(-[MockDragSession localOperationMask]):
(-[MockDragSession externalOperationMask]):
(-[MockDragSession session]):
(-[MockDragSession localContext]):
(-[MockDragSession setLocalContext:]):
(dragAndDropEventNames):
(-[DragAndDropSimulatorApplication _cancelAllTouches]):
(-[DragAndDropSimulator initWithWebView:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator _resetSimulatedState]):
(-[DragAndDropSimulator observedEventNames]):
(-[DragAndDropSimulator simulateAllTouchesCanceled:]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator runFrom:to:additionalItemRequestLocations:]):
(-[DragAndDropSimulator finalSelectionRects]):
(-[DragAndDropSimulator _concludeDropAndPerformOperationIfNecessary]):
(-[DragAndDropSimulator _enqueuePendingAdditionalItemRequestLocations]):
(-[DragAndDropSimulator _sendQueuedAdditionalItemRequest]):
(-[DragAndDropSimulator _advanceProgress]):
(-[DragAndDropSimulator _currentLocation]):
(-[DragAndDropSimulator _scheduleAdvanceProgress]):
(-[DragAndDropSimulator sourceItemProviders]):
(-[DragAndDropSimulator externalItemProviders]):
(-[DragAndDropSimulator setExternalItemProviders:]):
(-[DragAndDropSimulator phase]):
(-[DragAndDropSimulator liftPreviews]):
(-[DragAndDropSimulator lastKnownDragCaretRect]):
(-[DragAndDropSimulator waitForInputSession]):
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):
(-[DragAndDropSimulator endDataTransfer]):
(-[DragAndDropSimulator _webView:dataInteractionOperationWasHandled:forSession:itemProviders:]):
(-[DragAndDropSimulator _webView:willUpdateDataInteractionOperationToOperation:forSession:]):
(-[DragAndDropSimulator _webView:adjustedDataInteractionItemProvidersForItemProvider:representingObjects:additionalData:]):
(-[DragAndDropSimulator _webView:showCustomSheetForElement:]):
(-[DragAndDropSimulator _webView:willPerformDropWithSession:]):
(-[DragAndDropSimulator _webView:didInsertAttachment:]):
(-[DragAndDropSimulator _webView:didRemoveAttachment:]):
(-[DragAndDropSimulator _webView:focusShouldStartInputSession:]):
(-[DragAndDropSimulator _webView:didStartInputSession:]):

  • TestWebKitAPI/ios/UIKitSPI.h:
  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm: Added.

(-[DragAndDropSimulator initWithWebView:]):
(-[DragAndDropSimulator dealloc]):
(-[DragAndDropSimulator runFrom:to:]):
(-[DragAndDropSimulator insertedAttachments]):
(-[DragAndDropSimulator removedAttachments]):

11:48 AM Changeset in webkit [234730] by Chris Dumez
  • 10 edits in trunk

REGRESSION (r232083): WKWebView loses first-party cookies on iOS
https://bugs.webkit.org/show_bug.cgi?id=188443
<rdar://problem/42991584>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-08-09
Reviewed by Chris Dumez.

Source/WebKit:

Revert the change to set sharedCookieStorage for iOS as it is breaking Kayak.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

Tools:

Skip WebKit.WKHTTPCookieStoreWithoutProcessPool on iOS.

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
11:18 AM Changeset in webkit [234729] by Kocsen Chung
  • 7 edits
    2 adds in branches/safari-606.1.36.1-branch

Cherry-pick r234718. rdar://problem/43102434

REGRESSION (r228260): Events handled by input method invoke default event handler
https://bugs.webkit.org/show_bug.cgi?id=188370

Reviewed by Wenson Hsieh.

Source/WebCore:

The bug was caused by the default event handler being invoked for the "virtual" keydown events
generated for input methods. Namely, when Japanese or Chinese input methods swallows TAB key,
WebKit should not invoke the default event handler and move the focus during input composition.

Fixed the bug by adding a new boolean on Event indicating whether the default event handler
should be invoked, and restoring the behavior prior to r228260 for these virtual keydown events.

Test: editing/input/press-tab-during-ime-composition.html

  • dom/Event.h: (WebCore::Event::isDefaultEventHandlerIgnored const): Added. (WebCore::Event::setIsDefaultEventHandlerIgnored): Added.
  • dom/EventDispatcher.cpp: (WebCore::EventDispatcher::dispatchEvent): Don't invoke the default event handler if isDefaultEventHandlerIgnored is set.
  • page/EventHandler.cpp: (WebCore::EventHandler::internalKeyEvent): Set isDefaultEventHandlerIgnored. This restores WebKit's behavior prior to r228260.

LayoutTests:

Added a regression test. Due to the lack of adequate support of textInputController in WebKitTestRunner,
the test is only enabled in WebKit1. The WTR fix is tracked by https://webkit.org/b/188428.

  • editing/input/press-tab-during-ime-composition-expected.txt: Added.
  • editing/input/press-tab-during-ime-composition.html: Added.
  • platform/ios/TestExpectations:
  • platform/wk2/TestExpectations:

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

11:02 AM Changeset in webkit [234728] by keith_miller@apple.com
  • 9 edits in trunk

Array.prototype.sort should call @toLength instead of ">>> 0"
https://bugs.webkit.org/show_bug.cgi?id=188430

Reviewed by Saam Barati.

JSTests:

  • test262/expectations.yaml:

Source/JavaScriptCore:

Also add a new function to $vm that will fetch a private
property. This can be useful for running builtin helper functions.

  • builtins/ArrayPrototype.js:

(sort):

  • tools/JSDollarVM.cpp:

(JSC::functionGetPrivateProperty):
(JSC::JSDollarVM::finishCreation):

LayoutTests:

Remove invalid conformance test expectations. Array.prototype.sort calls toLength, which
does not truncate integers.

  • sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T1.html:
  • sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T2.html:
  • sputnik/Conformance/15_Native_Objects/15.4_Array/15.4.4/15.4.4.11_Array_prototype_sort/S15.4.4.11_A4_T3.html:
10:47 AM Changeset in webkit [234727] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.2/Source/WebCore

Cherry-pick r234717. rdar://problem/43075662

Prevent collectScreenProperties from crashing Base System
https://bugs.webkit.org/show_bug.cgi?id=188429
<rdar://problem/43075662>

Patch by Justin Fan <Justin Fan> on 2018-08-08
Reviewed by Simon Fraser.

Adding some error-checking and early returns to further prevent calling CGLDescribeRenderer with invalid parameters.

Existing WebGL tests should cover; no expected change in behavior. Crash happened primarily on Base System.

  • platform/mac/PlatformScreenMac.mm: (WebCore::gpuIDForDisplayMask):

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

10:24 AM Changeset in webkit [234726] by Ross Kirsling
  • 2 edits in trunk/Tools

Unreviewed follow-up fix for r234720.

  • Scripts/webkitpy/bindings/main.py:

(BindingsTests.close_and_remove):
(BindingsTests.main):
Return to the original approach, since this seems to be the simplest cross-platform solution.

8:49 AM Changeset in webkit [234725] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

DisplayRefreshMonitorMac should hold a weak pointer to WebPage.
https://bugs.webkit.org/show_bug.cgi?id=186683

Reviewed by Brent Fulgham.

Instead of DisplayRefreshMonitorMac having a RefPtr to WebPage, it should have a weak pointer.
Having a RefPtr could in theory create reference cycles. This potential problem has not been
observed in practice, but it is safer to use a weak pointer.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:

(WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):

7:37 AM WebKitGTK/Gardening/Calendar/2018Logs edited by magomez@igalia.com
(diff)
7:01 AM Changeset in webkit [234724] by magomez@igalia.com
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ gardening after r234720.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/inspector/network/xhr-response-body-expected.txt:
6:36 AM Changeset in webkit [234723] by ajuma@chromium.org
  • 9 edits
    66 adds in trunk

Import WPTs for IntersectionObserver
https://bugs.webkit.org/show_bug.cgi?id=188416

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/intersection-observer/META.yml: Added.
  • web-platform-tests/intersection-observer/bounding-box-expected.txt: Added.
  • web-platform-tests/intersection-observer/bounding-box.html: Added.
  • web-platform-tests/intersection-observer/client-rect-expected.txt: Added.
  • web-platform-tests/intersection-observer/client-rect.html: Added.
  • web-platform-tests/intersection-observer/containing-block-expected.txt: Added.
  • web-platform-tests/intersection-observer/containing-block.html: Added.
  • web-platform-tests/intersection-observer/cross-origin-iframe-expected.txt: Added.
  • web-platform-tests/intersection-observer/cross-origin-iframe.html: Added.
  • web-platform-tests/intersection-observer/disconnect-expected.txt: Added.
  • web-platform-tests/intersection-observer/disconnect.html: Added.
  • web-platform-tests/intersection-observer/display-none-expected.txt: Added.
  • web-platform-tests/intersection-observer/display-none.html: Added.
  • web-platform-tests/intersection-observer/edge-inclusive-intersection-expected.txt: Added.
  • web-platform-tests/intersection-observer/edge-inclusive-intersection.html: Added.
  • web-platform-tests/intersection-observer/idlharness.window-expected.txt: Added.
  • web-platform-tests/intersection-observer/idlharness.window.html: Added.
  • web-platform-tests/intersection-observer/idlharness.window.js: Added.

(idl_array.self.observer.new.IntersectionObserver):

  • web-platform-tests/intersection-observer/iframe-no-root-expected.txt: Added.
  • web-platform-tests/intersection-observer/iframe-no-root.html: Added.
  • web-platform-tests/intersection-observer/inline-client-rect-expected.txt: Added.
  • web-platform-tests/intersection-observer/inline-client-rect.html: Added.
  • web-platform-tests/intersection-observer/isIntersecting-change-events-expected.txt: Added.
  • web-platform-tests/intersection-observer/isIntersecting-change-events.html: Added.
  • web-platform-tests/intersection-observer/multiple-targets-expected.txt: Added.
  • web-platform-tests/intersection-observer/multiple-targets.html: Added.
  • web-platform-tests/intersection-observer/multiple-thresholds-expected.txt: Added.
  • web-platform-tests/intersection-observer/multiple-thresholds.html: Added.
  • web-platform-tests/intersection-observer/observer-attributes-expected.txt: Added.
  • web-platform-tests/intersection-observer/observer-attributes.html: Added.
  • web-platform-tests/intersection-observer/observer-exceptions-expected.txt: Added.
  • web-platform-tests/intersection-observer/observer-exceptions.html: Added.
  • web-platform-tests/intersection-observer/observer-in-iframe.html: Added.
  • web-platform-tests/intersection-observer/observer-without-js-reference-expected.txt: Added.
  • web-platform-tests/intersection-observer/observer-without-js-reference.html: Added.
  • web-platform-tests/intersection-observer/remove-element-expected.txt: Added.
  • web-platform-tests/intersection-observer/remove-element.html: Added.
  • web-platform-tests/intersection-observer/resources/cross-origin-subframe.html: Added.
  • web-platform-tests/intersection-observer/resources/iframe-no-root-subframe.html: Added.
  • web-platform-tests/intersection-observer/resources/intersection-observer-test-utils.js: Added.

(waitForNotification):
(runTestCycle):
(contentBounds):
(borderBoxBounds):
(clientBounds):
(rectArea):
(checkRect):
(checkLastEntry):
(checkJsonEntry):
(checkJsonEntries):

  • web-platform-tests/intersection-observer/resources/observer-in-iframe-subframe.html: Added.
  • web-platform-tests/intersection-observer/resources/timestamp-subframe.html: Added.
  • web-platform-tests/intersection-observer/resources/w3c-import.log: Added.
  • web-platform-tests/intersection-observer/root-margin-expected.txt: Added.
  • web-platform-tests/intersection-observer/root-margin.html: Added.
  • web-platform-tests/intersection-observer/same-document-no-root-expected.txt: Added.
  • web-platform-tests/intersection-observer/same-document-no-root.html: Added.
  • web-platform-tests/intersection-observer/same-document-root-expected.txt: Added.
  • web-platform-tests/intersection-observer/same-document-root.html: Added.
  • web-platform-tests/intersection-observer/same-document-zero-size-target-expected.txt: Added.
  • web-platform-tests/intersection-observer/same-document-zero-size-target.html: Added.
  • web-platform-tests/intersection-observer/shadow-content-expected.txt: Added.
  • web-platform-tests/intersection-observer/shadow-content.html: Added.
  • web-platform-tests/intersection-observer/text-target-expected.txt: Added.
  • web-platform-tests/intersection-observer/text-target.html: Added.
  • web-platform-tests/intersection-observer/timestamp-expected.txt: Added.
  • web-platform-tests/intersection-observer/timestamp.html: Added.
  • web-platform-tests/intersection-observer/unclipped-root-expected.txt: Added.
  • web-platform-tests/intersection-observer/unclipped-root.html: Added.
  • web-platform-tests/intersection-observer/w3c-import.log: Added.
  • web-platform-tests/intersection-observer/zero-area-element-hidden-expected.txt: Added.
  • web-platform-tests/intersection-observer/zero-area-element-hidden.html: Added.
  • web-platform-tests/intersection-observer/zero-area-element-visible-expected.txt: Added.
  • web-platform-tests/intersection-observer/zero-area-element-visible.html: Added.

Source/WebKit:

Make IntersectionObserver an experimental feature, so that it is enabled in
WebKitTestRunner.

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferencesPrivate.h:

Tools:

Enable IntersectionObserver in DumpRenderTree.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):
(setWebPreferencesForTestOptions):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

5:00 AM Changeset in webkit [234722] by zandobersek@gmail.com
  • 4 edits in trunk/LayoutTests

Unreviewed GTK+ and WPE gardening. Add a reftest failure expectation.
Update a WPT EME test baseline for the WPE port.

  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:
4:50 AM Changeset in webkit [234721] by cturner@igalia.com
  • 3 edits in trunk/Source/WebCore

Fix copyright headers on new ISO parsing class
https://bugs.webkit.org/show_bug.cgi?id=188432

Unreviewed fix.

This was left off from a previous bug by mistake, retrospectively
adding the correct copyright headers.

No tests required.

  • platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.cpp:
  • platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.h:
Note: See TracTimeline for information about the timeline view.