Timeline



Jun 14, 2018:

11:28 PM Changeset in webkit [232867] by sbarati@apple.com
  • 2 edits in trunk/Tools

sun spider compile time benchmark fails in run-jsc-benchmarks with JSC_validateOptions=1
https://bugs.webkit.org/show_bug.cgi?id=186647

Reviewed by Yusuke Suzuki.

Let's use unset JSC_useBlah instead of export JSC_useBlah= to clear environment
variables. The latter was causing crashes with when JSC_validateOptions was true.

  • Scripts/run-jsc-benchmarks:
7:11 PM Changeset in webkit [232866] by clopez@igalia.com
  • 3 edits in trunk/Tools

[GTK][buildbot] Raise timeouts for the step benchmark-test on the GTK perf bot
https://bugs.webkit.org/show_bug.cgi?id=186635

Reviewed by Michael Catanzaro.

The current maximum timeout for a run-benchmark test is 1800 (Motionmark plan),
but the buildbot default timeout for the whole step without text output is 1200.
That means that a timeout on a single test can cause a whole step abort because
the buildbot one will trigger first.

Set the benchmark-test step timeout to 2000 to avoid this.

When this benchmark-test was added in r197505 it was already added with a higher
timeout than default (1500) due to the above problem, but it seems this has been
ignored so far because buildbot won't accept the timeout to be set on the class
definition (not even on the class constructor).
The new timeout has to be defined in the addStep call itself.
I have double-checked that by testing locally with the script run-buildbot-test.py
And this upstream issue confirms that https://github.com/buildbot/buildbot/issues/3887

  • BuildSlaveSupport/build.webkit.org-config/factories.py:

(BuildAndPerfTestFactory.init):
(DownloadAndPerfTestFactory.init):

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunBenchmarkTests):

6:53 PM Changeset in webkit [232865] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Mark tests that are failing on the EWS test queue (v2)

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations:
6:20 PM Changeset in webkit [232864] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

Use new jQuery file layout
https://bugs.webkit.org/show_bug.cgi?id=186636

Patch by Roy Reapor <rreapor@apple.com> on 2018-06-14
Reviewed by Aakash Jain.

Tools:

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/rebaseline.html:
  • TestResultServer/static-dashboards/run-embedded-unittests.html:

Websites/webkit.org:

  • ajax/libs/jqueryui/jquery-ui-1.8.15.css: Removed.
  • ajax/libs/jqueryui/jquery-ui-1.8.15.min.js: Removed.
6:05 PM Changeset in webkit [232863] by youenn@apple.com
  • 22 edits in trunk/Source

Make NetworkProcess get cache storage parameters at creation of the CacheStorage engine
https://bugs.webkit.org/show_bug.cgi?id=186166

Reviewed by Alex Christensen.

Source/WebCore:

Covered by existing tests.

  • platform/network/NetworkStorageSession.h:

(WebCore::NetworkStorageSession::cacheStorageDirectory const): Deleted.
(WebCore::NetworkStorageSession::setCacheStorageDirectory): Deleted.
(WebCore::NetworkStorageSession::cacheStoragePerOriginQuota const): Deleted.
(WebCore::NetworkStorageSession::setCacheStoragePerOriginQuota): Deleted.

Source/WebKit:

Make CacheStorage::Engine creation asynchronous.
Update Engine public methods be static methods taking a SessionID, which will be used to create the engine.

Add IPC methods to retrieve cache storage parameters from NetworkProcess to UIProcess.

Add NetworkProcessProxy ability to compute the cache storage parameters based on the SessionID.
For that purpose, make NetworkProcessProxy store a map of SessionID-to-WebsiteDataStore.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::cacheStorageParameters):
(WebKit::NetworkProcess::setCacheStorageParameters):
(WebKit::NetworkProcess::cacheStorageDirectory const): Deleted.
(WebKit::NetworkProcess::cacheStoragePerOriginQuota const): Deleted.

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

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

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

(WebKit::CacheStorage::Engine::from):
(WebKit::CacheStorage::Engine::fetchEntries):
(WebKit::CacheStorage::Engine::open):
(WebKit::CacheStorage::Engine::remove):
(WebKit::CacheStorage::Engine::retrieveCaches):
(WebKit::CacheStorage::Engine::retrieveRecords):
(WebKit::CacheStorage::Engine::putRecords):
(WebKit::CacheStorage::Engine::deleteMatchingRecords):
(WebKit::CacheStorage::Engine::lock):
(WebKit::CacheStorage::Engine::unlock):
(WebKit::CacheStorage::Engine::clearMemoryRepresentation):
(WebKit::CacheStorage::Engine::representation):
(WebKit::CacheStorage::Engine::clearAllCaches):
(WebKit::CacheStorage::Engine::clearCachesForOrigin):
(WebKit::CacheStorage::Engine::Engine):
(WebKit::CacheStorage::Engine::readCachesFromDisk):
(WebKit::CacheStorage::Engine::defaultEngine): Deleted.

  • NetworkProcess/cache/CacheStorageEngine.h:

(WebKit::CacheStorage::Engine::shouldPersist const):
(WebKit::CacheStorage::Engine::weakPtrFactory):
(WebKit::CacheStorage::Engine::create): Deleted.

  • NetworkProcess/cache/CacheStorageEngineConnection.cpp:

(WebKit::CacheStorageEngineConnection::~CacheStorageEngineConnection):
(WebKit::CacheStorageEngineConnection::open):
(WebKit::CacheStorageEngineConnection::remove):
(WebKit::CacheStorageEngineConnection::caches):
(WebKit::CacheStorageEngineConnection::retrieveRecords):
(WebKit::CacheStorageEngineConnection::deleteMatchingRecords):
(WebKit::CacheStorageEngineConnection::putRecords):
(WebKit::CacheStorageEngineConnection::reference):
(WebKit::CacheStorageEngineConnection::dereference):
(WebKit::CacheStorageEngineConnection::clearMemoryRepresentation):
(WebKit::CacheStorageEngineConnection::engineRepresentation):

  • NetworkProcess/cache/CacheStorageEngineConnection.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):

  • Shared/WebsiteDataStoreParameters.h:

(): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::addSession):
(WebKit::NetworkProcessProxy::removeSession):
(WebKit::NetworkProcessProxy::retrieveCacheStorageParameters):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::setAnyPageGroupMightHavePrivateBrowsingEnabled):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::pageEndUsingWebsiteDataStore):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):

5:23 PM Changeset in webkit [232862] by Basuke Suzuki
  • 4 edits in trunk/Tools

[Win][MiniBrowser] Change to use WebKit by default if it's available
https://bugs.webkit.org/show_bug.cgi?id=186633

When MiniBrowser is built with WebKit, use it by default. Also add command
line switch for WebKitLegacy.

Reviewed by Youenn Fablet.

  • MiniBrowser/win/Common.cpp:

(parseCommandLine):
(dllLauncherEntryPoint): Deleted.

  • MiniBrowser/win/Common.h:
  • MiniBrowser/win/WinMain.cpp:

(wWinMain):
(dllLauncherEntryPoint):

5:18 PM Changeset in webkit [232861] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Mark tests that are failing on the EWS test queue

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations:
5:07 PM Changeset in webkit [232860] by Basuke Suzuki
  • 2 edits in trunk/Source/WebKit

[Win] Add IPC error case for broken pipe
https://bugs.webkit.org/show_bug.cgi?id=186445

Add error handling for ERROR_BROKEN_PIPE on IPC::Connection::readEventHandler.

Reviewed by Ryosuke Niwa.

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::readEventHandler):

4:53 PM Changeset in webkit [232859] by Matt Lewis
  • 7 edits
    2 deletes in trunk

Unreviewed, rolling out r232823.

This caused both test timeouts and api failures.

Reverted changeset:

"[Mail] Use the Mail Viewer width as the base for resolving
horizontal viewport units"
https://bugs.webkit.org/show_bug.cgi?id=186585
https://trac.webkit.org/changeset/232823

4:21 PM Changeset in webkit [232858] by youenn@apple.com
  • 11 edits in trunk/Source/ThirdParty/libwebrtc

Activate -Wexit-time-destructors -and Wglobal-constructors in libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=186615

Reviewed by Darin Adler.

Update xcconfig files to activate these compile flags.
Also enable -Wthread-safety since libwebrtc code is using some related attributes.
Update libwebrtc code base to accomodate these flags.

  • Configurations/libwebrtc.xcconfig:
  • Configurations/opus.xcconfig:
  • Configurations/usrsctp.xcconfig:
  • Source/webrtc/modules/audio_processing/beamformer/array_util.h:

(webrtc::DegreesToRadians): Make function constexpr.

  • Source/webrtc/modules/rtp_rtcp/source/rtp_utility.cc:

Make sure the destructor is never called.

  • Source/webrtc/rtc_base/logging.cc:

Update code to move streams_ from a static class member to a regular static function variable.

  • Source/webrtc/rtc_base/logging.h:
  • Source/webrtc/system_wrappers/source/clock.cc:

Make sure the destructor is never called.

3:08 PM Changeset in webkit [232857] by youenn@apple.com
  • 2 edits in trunk/Tools

TestWebKitAPI.WebKit.WKNavigationResponsePDFType fails after r232815
https://bugs.webkit.org/show_bug.cgi?id=186631

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/WKNavigationResponse.mm:

(TEST): Update PDF plug-in identifier.

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

REGRESSION(232741): Crash running ARES-6
https://bugs.webkit.org/show_bug.cgi?id=186630

Reviewed by Saam Barati.

The de-duplicating work in r232741 caused a bug in breakCriticalEdge() where it
treated edges between identical predecessor->successor pairs independently.
This fixes the issue by handling such edges once, using the added intermediate
pad for all instances of the edges between the same pairs.

  • dfg/DFGCriticalEdgeBreakingPhase.cpp:

(JSC::DFG::CriticalEdgeBreakingPhase::run):
(JSC::DFG::CriticalEdgeBreakingPhase::breakCriticalEdge): Deleted.

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

[test262-runner] Improve displayed settings, use rel paths
https://bugs.webkit.org/show_bug.cgi?id=186626

Patch by Leo Balter <Leo Balter> on 2018-06-14
Reviewed by Michael Saboff.

Use relative paths for the information printed in the settings summary after calling the Test262 Runner. This provides a cleaner summary that is easier to read and consume.

  • Scripts/test262/Runner.pm:

(processCLI):
(getBuildPath):

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

Test262-Runner: Add more information in the summarized stats
https://bugs.webkit.org/show_bug.cgi?id=185749

Patch by Leo Balter <Leo Balter> on 2018-06-14
Reviewed by Michael Saboff.

This patch adds extra information in the summarized stats for the given results for each run.
This includes a total of files, a total of executed files and a time information per path and feature.

  • Scripts/test262/Runner.pm:

(summarizeResults):

2:40 PM Changeset in webkit [232853] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Test262-Runner: Update config list with some failing tests
https://bugs.webkit.org/show_bug.cgi?id=185628

Patch by Leo Balter <Leo Balter> on 2018-06-14
Reviewed by Michael Saboff.

The config list is updated to match some slow / hanging tests that are currenctly failing
due to the length used in Array or Array like objects.

This also adds matching bugs for known features that are still in progress and not enabled
yet.

  • test262/config.yaml:
2:11 PM Changeset in webkit [232852] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Crash in AccessibilityNodeObject::textUnderElement(WebCore::AccessibilityTextUnderElementMode) const + 536
https://bugs.webkit.org/show_bug.cgi?id=186629

Reviewed by Chris Fleizach.

Source/WebCore:

This crashed when we passed a null node to ancestorsOfType. Fixed it
by adding a null check.

Test: accessibility/hidden-object-text-value-crash.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement const):

LayoutTests:

  • accessibility/hidden-object-text-value-crash-expected.txt: Added.
  • accessibility/hidden-object-text-value-crash.html: Added.
1:26 PM Changeset in webkit [232851] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Minor layout fix for WebKit Feature Status Page
https://bugs.webkit.org/show_bug.cgi?id=186539

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/status.php: Added padding below the bottom paragraph.
1:06 PM Changeset in webkit [232850] by wilander@apple.com
  • 5 edits
    4 adds in trunk

Resource Load Statistics: Shortcut classification for redirect to prevalent resource
https://bugs.webkit.org/show_bug.cgi?id=186627
<rdar://problem/41132308>

Reviewed by Brent Fulgham.

Source/WebKit:

This patch shortcuts classification of redirect collusion so that we more seldom
have to rely on the recursive backtrace of the redirect graph. The initial
implementation of Resource Load Statistics actually had this classification method.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::markAsPrevalentIfHasRedirectedToPrevalent):

Iterates through a non-classified resource's data for where it has redirected
and classifies it as prevalent if has redirected to

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):

Now calls WebResourceLoadStatisticsStore::markAsPrevalentIfHasRedirectedToPrevalent()
before regular classification steps.

  • UIProcess/WebResourceLoadStatisticsStore.h:

LayoutTests:

  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-redirect-to-prevalent.html: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent-expected.txt: Added.
  • http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-to-prevalent.html: Added.
  • platform/wk2/TestExpectations:

New tests marked as [ Pass ].

12:59 PM Changeset in webkit [232849] by youenn@apple.com
  • 5 edits
    3 adds in trunk

Apply CSP checks before Content blocker checks in NetworkLoadChecker as done by CachedResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=186550

Reviewed by Alex Christensen.

Source/WebKit:

Do CSP checks and URL upgrade before content blocker checks.

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::continueCheckingRequest):

LayoutTests:

  • http/tests/contentextensions/fetch-redirect-blocked-expected.txt: Added.
  • http/tests/contentextensions/fetch-redirect-blocked.html: Added.
  • http/tests/contentextensions/fetch-redirect-blocked.html.json: Added.
  • http/tests/contentextensions/resources/subresource-redirect.php:
12:58 PM Changeset in webkit [232848] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Plug-in Process crashing on Mojave (affects Flash, others)
https://bugs.webkit.org/show_bug.cgi?id=186628
<rdar://problem/41120462>

Reviewed by Eric Carlson.

Add the missing “com.apple.security.cs.allow-unsigned-executable-memory” entitlement. Also alphabetize
the entitlements file to make it easier to read.

  • Configurations/PluginService.entitlements:
12:16 PM Changeset in webkit [232847] by timothy@apple.com
  • 8 edits in trunk

Expose more semantic system colors.

https://bugs.webkit.org/show_bug.cgi?id=186609
rdar://problem/39287277

Reviewed by Tim Horton.

Source/WebCore:

Add the following semantic colors:

-apple-system-control-accent
-apple-system-even-alternating-content-background
-apple-system-odd-alternating-content-background
-apple-system-selected-content-background
-apple-system-unemphasized-selected-content-background
-apple-system-selected-text
-apple-system-unemphasized-selected-text
-apple-system-selected-text-background
-apple-system-unemphasized-selected-text-background
-apple-system-placeholder-text
-apple-system-find-highlight-background
-apple-system-separator

  • css/CSSValueKeywords.in:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

Source/WebCore/PAL:

  • pal/spi/cocoa/NSColorSPI.h: Added findHighlightColor and placeholderTextColor.

LayoutTests:

  • fast/css/apple-system-control-colors.html: Updated for new colors.
  • fast/css/apple-system-control-colors-expected.txt: Ditto.
11:04 AM Changeset in webkit [232846] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Eliminate static initializers in libwebrtc.dylib
https://bugs.webkit.org/show_bug.cgi?id=186570
<rdar://problem/41054874>

Reviewed by Darin Adler.

  • Source/webrtc/rtc_base/flags.h:

Fix memory corruption error by having the actual flag value be static.

11:02 AM Changeset in webkit [232845] by aakash_jain@apple.com
  • 1 edit
    65 adds in trunk/Websites/webkit.org

jQuery UI image assets are missing on webkit.org website.
https://bugs.webkit.org/show_bug.cgi?id=185949

Patch by Roy Reapor <rreapor@apple.com> on 2018-06-14
Reviewed by Aakash Jain.

  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_dadada_1x400.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_222222_256x240.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_2e83ff_256x240.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_454545_256x240.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_888888_256x240.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_cd0a0a_256x240.png: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery-ui.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.accordion.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.all.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.autocomplete.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.base.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.button.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.core.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.datepicker.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.dialog.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.progressbar.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.resizable.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.selectable.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.slider.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.tabs.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.theme.min.css: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery-ui.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.blind.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.bounce.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.clip.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.core.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.drop.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.explode.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fade.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fold.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.highlight.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.pulsate.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.scale.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.shake.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.slide.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.effects.transfer.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.accordion.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.autocomplete.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.button.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.core.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.datepicker.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.dialog.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.draggable.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.droppable.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.mouse.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.position.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.progressbar.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.resizable.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.selectable.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.slider.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.sortable.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.tabs.min.js: Added.
  • ajax/libs/jqueryui/1.8.15/ui/jquery.ui.widget.min.js: Added.
10:57 AM Changeset in webkit [232844] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] Enable tests on the GTK EWS queue
https://bugs.webkit.org/show_bug.cgi?id=186559

Reviewed by Michael Catanzaro.

Enable testing for the gtk-wk2 EWS queue.

  • Scripts/webkitpy/common/config/ews.json:
10:57 AM Changeset in webkit [232843] by Basuke Suzuki
  • 3 edits in trunk/Source/WebKitLegacy/win

[Win] Fix build break after r232815 (SupportedPluginIdentifier)
https://bugs.webkit.org/show_bug.cgi?id=186623

Reviewed by Youenn Fablet.

  • WebCoreSupport/WebPluginInfoProvider.cpp:

(WebPluginInfoProvider::pluginInfo):
(WebPluginInfoProvider::webVisiblePluginInfo):

  • WebCoreSupport/WebPluginInfoProvider.h:
10:49 AM Changeset in webkit [232842] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] WebAVPlayerController isPlayingOnSecondScreen should be declared read-write
https://bugs.webkit.org/show_bug.cgi?id=186621
<rdar://problem/40243303>

Reviewed by Jer Noble.

  • platform/ios/WebAVPlayerController.h:
10:49 AM Changeset in webkit [232841] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[test262-runner] Test output should summarize tests that are
unexpectedly passing/failing.
https://bugs.webkit.org/show_bug.cgi?id=186527

Patch by Valerie R Young <valerie@bocoup.com> on 2018-06-14
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(main):

In verbose mode, a summary of all new failing tests
and all new passing tests are printed at the end of
the script output.

8:55 AM WebKitGTK/Gardening/Calendar edited by magomez@igalia.com
(diff)
7:31 AM Changeset in webkit [232840] by magomez@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK+ gardening after r232834.

  • platform/gtk/TestExpectations:
7:27 AM Changeset in webkit [232839] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LFC] Miscellaneous fixes to be able to layout <div> with fixed width/height
https://bugs.webkit.org/show_bug.cgi?id=186616

Reviewed by Antti Koivisto.

  1. Move box horizontally/vertically when relevant margin is computed.
  2. Fix isStretchedToViewport() logic and make sure that the width/height is adjusted with the margin when the box is stretchy.
  3. Fix isPaddingApplicable() and add "GenericElement" for elements that don't need special handling.

With this patch LFC produces the correct geometry for the following content:
<html><body><div style="width: 100px; height: 100px;"></div></body></html>

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeFloatingHeightAndMargin const):
(WebCore::Layout::FormattingContext::computeFloatingWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContext.cpp:

(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeightAndMargin const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidthAndMargin const):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::isStretchedToViewport):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedWidthAndMargin):
(WebCore::Layout::BlockFormattingContext::Geometry::staticPosition):

  • layout/displaytree/DisplayBox.h:

(WebCore::Display::Box::moveHorizontally):
(WebCore::Display::Box::moveVertically):
(WebCore::Display::Box::Rect::setWidth):
(WebCore::Display::Box::Rect::setHeight):
(WebCore::Display::Box::Rect::moveHorizontally):
(WebCore::Display::Box::Rect::moveVertically):

  • layout/layouttree/LayoutBox.cpp:

(WebCore::Layout::Box::isPaddingApplicable const):

  • layout/layouttree/LayoutBox.h:
  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::TreeBuilder::createSubTree):

3:27 AM Changeset in webkit [232838] by Adrian Perez de Castro
  • 1 copy in releases/WPE WebKit/webkit-2.20.1

WPE WebKit 2.20.1

3:24 AM Changeset in webkit [232837] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source

Unreviewed. Update OptionsWPE.cmake and NEWS for 2.20.1 release.

3:24 AM Changeset in webkit [232836] by Adrian Perez de Castro
  • 10 edits in releases/WebKitGTK/webkit-2.20

Merged r232832 - [WPE] Trying to access the remote inspector hits an assertion in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=186588

Reviewed by Carlos Garcia Campos.

Make both the WPE and GTK+ ports use /org/webkit/inspector as base prefix
for resource paths, which avoids needing a switcheroo depending on the port.

Source/JavaScriptCore:

  • inspector/remote/glib/RemoteInspectorUtils.cpp:

Source/WebKit:

  • UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):

  • UIProcess/wpe/WebInspectorProxyWPE.cpp:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):

  • WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):

Tools:

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::inspectorTestStubURL):

  • glib/generate-inspector-gresource-manifest.py:
3:24 AM Changeset in webkit [232835] by Adrian Perez de Castro
  • 8 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merged r232816 - [LLInt] use loadp consistently for get_from_scope/put_to_scope
https://bugs.webkit.org/show_bug.cgi?id=132333

Patch by Caitlin Potter <caitp@igalia.com> on 2018-06-13
Reviewed by Mark Lam.

Using loadis for register indexes and loadp for constant scopes /
symboltables makes sense, but is problematic for big-endian
architectures.

Consistently treating the operand as a pointer simplifies determining
how to access the operand, and helps avoid bad accesses and crashes on
big-endian ports.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Instruction.h:
  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):

2:23 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
1:57 AM Changeset in webkit [232834] by zandobersek@gmail.com
  • 3 edits in trunk/Tools

[GTK][WPE] MiniBrowsers should be able to ignore TLS errors
https://bugs.webkit.org/show_bug.cgi?id=186557

Reviewed by Carlos Garcia Campos.

Add the --ignore-tls-errors flags to the GTK and WPE MiniBrowsers.
Enabling the flag enforces ignoring of TLS errors that occur during
load. This is primarily useful for loading test cases from the wpt or
run-webkit-httpd servers where testing-purpose certificates are used.

  • MiniBrowser/gtk/main.c:

(main):

  • MiniBrowser/wpe/main.cpp:

(main):

1:41 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
1:21 AM WebKitGTK/2.20.x edited by tpopela@redhat.com
(diff)
12:23 AM Changeset in webkit [232833] by Carlos Garcia Campos
  • 17 edits in trunk/Source

[GTK][WPE] WebDriver: handle acceptInsecureCertificates capability
https://bugs.webkit.org/show_bug.cgi?id=186560

Reviewed by Brian Burg.

Source/JavaScriptCore:

Add SessionCapabilities struct to Client class and unify requestAutomationSession() methods into a single one
that always receives the session capabilities.

  • inspector/remote/RemoteInspector.h:
  • inspector/remote/RemoteInspectorConstants.h:
  • inspector/remote/cocoa/RemoteInspectorCocoa.mm:

(Inspector::RemoteInspector::receivedAutomationSessionRequestMessage): Move the parsing of mac capabilities from
WebKit here and fill the SessionCapabilities instead.

  • inspector/remote/glib/RemoteInspectorGlib.cpp:

(Inspector::RemoteInspector::requestAutomationSession): Pass SessionCapabilities to the client.

  • inspector/remote/glib/RemoteInspectorServer.cpp:

(Inspector::RemoteInspectorServer::startAutomationSession): Process SessionCapabilities.

  • inspector/remote/glib/RemoteInspectorServer.h:

Source/WebDriver:

Send session capabilities as part of the StartAutomationSession message. For now only acceptInsecureCerts
capability is sent.

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::startAutomationSession):

  • gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformCapabilities): Remove default value of acceptInsecureCerts, since that's
now handled by the browser.

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformCapabilities): Ditto.

Source/WebKit:

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

(webkitAutomationSessionCreate): Check the acceptInsecureCertificates capability and set the TLS error policy in
the WebContext accordingly if needed.

  • UIProcess/API/glib/WebKitAutomationSessionPrivate.h:
  • UIProcess/API/glib/WebKitWebContext.cpp:
  • UIProcess/Cocoa/AutomationClient.h:
  • UIProcess/Cocoa/AutomationClient.mm:

(WebKit::AutomationClient::requestAutomationSession): Use SessionCapabilities to fill the session configuration.
(WebKit::AutomationClient::requestAutomationSessionWithCapabilities): Deleted.

Jun 13, 2018:

11:39 PM Changeset in webkit [232832] by Adrian Perez de Castro
  • 10 edits in trunk

[WPE] Trying to access the remote inspector hits an assertion in the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=186588

Reviewed by Carlos Garcia Campos.

Make both the WPE and GTK+ ports use /org/webkit/inspector as base prefix
for resource paths, which avoids needing a switcheroo depending on the port.

Source/JavaScriptCore:

  • inspector/remote/glib/RemoteInspectorUtils.cpp:

Source/WebKit:

  • UIProcess/API/wpe/WebKit2InspectorGResourceBundle.xml:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):

  • UIProcess/wpe/WebInspectorProxyWPE.cpp:

(WebKit::WebInspectorProxy::inspectorPageURL):
(WebKit::WebInspectorProxy::inspectorTestPageURL):
(WebKit::WebInspectorProxy::inspectorBaseURL):

  • WebProcess/WebPage/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::localizedStringsURL):
(WebKit::RemoteWebInspectorUI::localizedStringsURL):

Tools:

  • WebKitTestRunner/InjectedBundle/gtk/TestRunnerGtk.cpp:

(WTR::TestRunner::inspectorTestStubURL):

  • glib/generate-inspector-gresource-manifest.py:
11:09 PM Changeset in webkit [232831] by Carlos Garcia Campos
  • 7 edits
    5 adds in releases/WebKitGTK/webkit-2.20

Merge r230662 - Function.prototype.caller shouldn't return generator bodies
https://bugs.webkit.org/show_bug.cgi?id=184630

Reviewed by Yusuke Suzuki.
JSTests:

  • stress/function-caller-async-arrow-function-body.js: Added.
  • stress/function-caller-async-function-body.js: Added.
  • stress/function-caller-async-generator-body.js: Added.
  • stress/function-caller-generator-body.js: Added.
  • stress/function-caller-generator-method-body.js: Added.

Source/JavaScriptCore:

Function.prototype.caller no longer returns generator bodies. Those are meant to be
private.

Also added some builtin debugging tools so that it's easier to do the investigation that I
did.

  • builtins/BuiltinNames.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::callerGetter):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncBuiltinDescribe):

  • runtime/JSGlobalObjectFunctions.h:
9:56 PM Changeset in webkit [232830] by Kocsen Chung
  • 8 edits in tags/Safari-606.1.21

Revert r231850. rdar://problem/41113111

9:56 PM Changeset in webkit [232829] by Kocsen Chung
  • 1 edit in tags/Safari-606.1.21/Tools/ChangeLog

Revert r231999. rdar://problem/41113111

9:56 PM Changeset in webkit [232828] by Kocsen Chung
  • 8 edits in tags/Safari-606.1.21/Source

Revert r232741. rdar://problem/41108295

9:14 PM Changeset in webkit [232827] by youenn@apple.com
  • 5 edits in trunk/Source/ThirdParty/libwebrtc

Eliminate static initializers in libwebrtc.dylib
https://bugs.webkit.org/show_bug.cgi?id=186570

Reviewed by Darin Adler.

  • Source/webrtc/rtc_base/flags.h: Changed macro to create the static into a function.
  • Source/webrtc/rtc_base/logging.cc: Ditto.

Made sure that the scope is created on instantiation of the first Log instance that might use it.

  • Source/webrtc/sdk/objc/Framework/Classes/PeerConnection/RTCVideoCodec.mm:
  • Source/webrtc/system_wrappers/source/runtime_enabled_features_default.cc:
7:51 PM Changeset in webkit [232826] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.20.40-branch/Source

Versioning.

7:39 PM Changeset in webkit [232825] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.20.40.2

Tag Safari-606.1.20.40.2.

7:31 PM Changeset in webkit [232824] by Chris Dumez
  • 9 edits in trunk/Source

Crash under SWServer::unregisterConnection(Connection&)
https://bugs.webkit.org/show_bug.cgi?id=186584
<rdar://problem/40931680>

Reviewed by Youenn Fablet.

Source/WebCore:

The crash was due to SWServer::Connection objects outliving their SWServer, even
though SWServer::Connection::m_server is a C++ reference. This was possible because
SWServer does not own the connections, StorageToWebProcessConnection does. This
started crashing recently, after r232423, because SWServer can get destroyed now.
The SWServer might get destroyed before the StorageToWebProcessConnection, in which
case the SWServer::Connection objects will get destroyed later. We were crashing
because the SWServer::Connection destructor tries to unregister the connection from
the SWServer (which is dead).

To address the issue, the SWServer now owns the connections. StorageToWebProcessConnection
merely has weak pointers to the connections.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::Connection::Connection):
(WebCore::SWServer::addConnection):
(WebCore::SWServer::removeConnection):
(WebCore::SWServer::resolveRegistrationReadyRequests):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::Connection::~Connection):
(WebCore::SWServer::Connection::server):
(WebCore::SWServer::connection):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::forEachConnection):
(WebCore::SWServerRegistration::notifyClientsOfControllerChange):
(WebCore::SWServerRegistration::controlClient):

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:
  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection):
(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didReceiveSyncMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::StorageToWebProcessConnection::unregisterSWConnections):
(WebKit::StorageToWebProcessConnection::establishSWServerConnection):

  • StorageProcess/StorageToWebProcessConnection.h:
6:36 PM Changeset in webkit [232823] by Alan Bujtas
  • 6 edits
    2 adds in trunk

[Mail] Use the Mail Viewer width as the base for resolving horizontal viewport units
https://bugs.webkit.org/show_bug.cgi?id=186585
<rdar://problem/30685325>

Reviewed by Tim Horton.

Source/WebCore:

Use the existing "override viewport size for viewport units" mechanism to compute the preferred
viewport unit values for the Mail Viewer html content.

Test: fast/dynamic/mail-autosize-viewport-unit.html

  • page/FrameView.cpp:

(WebCore::FrameView::FrameView):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::clearViewportSizeOverrideForCSSViewportUnits):
(WebCore::FrameView::setViewportSizeForCSSViewportUnits):
(WebCore::FrameView::overrideViewportSizeForCSSViewportUnits):
(WebCore::FrameView::viewportSizeForCSSViewportUnits const):

  • page/FrameView.h:

LayoutTests:

  • fast/dynamic/mail-autosize-viewport-unit-expected.txt: Added.
  • fast/dynamic/mail-autosize-viewport-unit.html: Added.
6:23 PM Changeset in webkit [232822] by Kocsen Chung
  • 8 edits in branches/safari-606.1.20.40-branch

Revert r231850. rdar://problem/39111626

6:23 PM Changeset in webkit [232821] by Kocsen Chung
  • 1 edit in branches/safari-606.1.20.40-branch/Tools/ChangeLog

Revert r231999. rdar://problem/39111626

6:04 PM Changeset in webkit [232820] by clopez@igalia.com
  • 2 edits
    7 adds in trunk/Tools

[GTK] Add a script to upload the data generated with run-benchmark to a browserperfdash server and use it on the gtk perf bot
https://bugs.webkit.org/show_bug.cgi?id=166885

Reviewed by Michael Catanzaro.

This patch adds a new script that will execute run-benchmark and upload the results it generates to a browserperfdash web app.

It also modifies the buildbot config file so the GTK performance bot runs this script on the perf-test step.

  • BuildSlaveSupport/build.webkit.org-config/steps.py:

(RunBenchmarkTests):

  • Scripts/browserperfdash-benchmark: Added.
  • Scripts/webkitpy/browserperfdash/README: Added.
  • Scripts/webkitpy/browserperfdash/init.py: Added.
  • Scripts/webkitpy/browserperfdash/browserperfdash_runner.py: Added.

(parse_args):
(BrowserPerfDashRunner):
(BrowserPerfDashRunner.init):
(BrowserPerfDashRunner._parse_config_file):
(BrowserPerfDashRunner._get_test_version_string):
(BrowserPerfDashRunner._get_test_data_json_string):
(BrowserPerfDashRunner._upload_result):
(BrowserPerfDashRunner.run):
(format_logger):
(main):

  • Scripts/webkitpy/browserperfdash/browserperfdash_unittest.py: Added.

(FakeBenchmarkRunner):
(FakeBenchmarkRunner.init):
(FakeBenchmarkRunner.execute):
(BrowserPerfDashRunnerTest):
(BrowserPerfDashRunnerTest.test_list_plans_at_least_five):
(BrowserPerfDashRunnerTest.test_benchmark_runner_subclasses_at_least_two):
(BrowserPerfDashRunnerTest.test_can_construct_runner_object_minimum_parameters):

  • Scripts/webkitpy/browserperfdash/config-file-example.txt: Added.
4:46 PM Changeset in webkit [232819] by Kocsen Chung
  • 8 edits in branches/safari-606.1.20.20-branch

Revert r231850. rdar://problem/39111626

4:46 PM Changeset in webkit [232818] by Kocsen Chung
  • 1 edit in branches/safari-606.1.20.20-branch/Tools/ChangeLog

Revert r231999. rdar://problem/39111626

4:20 PM Changeset in webkit [232817] by dino@apple.com
  • 14 edits in trunk

Disable AR support in WKWebView clients
https://bugs.webkit.org/show_bug.cgi?id=186611
<rdar://problem/39544684>

Reviewed by Jon Lee.

Since it hasn't been adequately tested, System Preview (AR) should
be disabled by default for WKWebViews.

Source/WebCore:

Add a new RuntimeEnabledFeature to control this, and guard for
this case everywhere we use system previews.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::isSystemPreviewLink const):
(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isSystemPreviewImage const):

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::isSystemPreviewImage const):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setSystemPreviewEnabled):
(WebCore::RuntimeEnabledFeatures::systemPreviewEnabled const):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

Source/WebKit:

Add a new WebPreference, and SPI into WKWebViewConfiguration. Also
don't register the WebViewContentProvider if the feature is
disabled.

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _contentProviderRegistry]):
(-[WKWebViewConfiguration _systemPreviewEnabled]):
(-[WKWebViewConfiguration _setSystemPreviewEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.h:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
(-[WKWebViewContentProviderRegistry init]): Deleted.

3:51 PM Changeset in webkit [232816] by caitp@igalia.com
  • 8 edits in trunk/Source/JavaScriptCore

[LLInt] use loadp consistently for get_from_scope/put_to_scope
https://bugs.webkit.org/show_bug.cgi?id=132333

Reviewed by Mark Lam.

Using loadis for register indexes and loadp for constant scopes /
symboltables makes sense, but is problematic for big-endian
architectures.

Consistently treating the operand as a pointer simplifies determining
how to access the operand, and helps avoid bad accesses and crashes on
big-endian ports.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/Instruction.h:
  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):

3:22 PM Changeset in webkit [232815] by youenn@apple.com
  • 19 edits in trunk/Source

Supported plugin check should be based on plugin identifier
https://bugs.webkit.org/show_bug.cgi?id=186578
<rdar://problem/40523828>

Reviewed by Darin Adler.

Source/WebCore:

Rename SupportedPluginName in SupportedPluginIdentifier.
Add cross-platform support for plug-in identifier.

Update built-in PDF plug-in to check its identifier instead of its name.
This is stronger as the name may change according localization.

  • loader/EmptyClients.cpp:
  • plugins/PluginData.cpp:

(WebCore::isBuiltInPDFPlugIn):
(WebCore::PluginData::initPlugins):

  • plugins/PluginData.h:

(WebCore::operator==):
(WebCore::isSupportedPlugin):
(WebCore::SupportedPluginIdentifier::decode):
(WebCore::SupportedPluginIdentifier::encode const):
(WebCore::SupportedPluginName::decode): Deleted.
(WebCore::SupportedPluginName::encode const): Deleted.

  • plugins/PluginInfoProvider.h:

Source/WebKit:

Refactoring to move from Plugin name to Plugin identifier.
Set built-in pdf plugin identifier.
This allows making sure that the PDF plug-in check might not change according localization.

  • Scripts/webkit/messages.py:
  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<PluginInfo>::encode):
(IPC::ArgumentCoder<PluginInfo>::decode):

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::supportedPluginIdentifiers):
(WebKit::PluginInfoStore::addSupportedPlugin):
(WebKit::PluginInfoStore::supportedPluginNames): Deleted.

  • UIProcess/Plugins/PluginInfoStore.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getPlugins):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pluginInfo):

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::pluginInfo):
(WebKit::WebPluginInfoProvider::webVisiblePluginInfo):
(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/Plugins/WebPluginInfoProvider.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPluginInfoProvider.h:
  • WebCoreSupport/WebPluginInfoProvider.mm:

(WebPluginInfoProvider::pluginInfo):
(WebPluginInfoProvider::webVisiblePluginInfo):

3:16 PM Changeset in webkit [232814] by Chris Dumez
  • 29 edits in trunk

PSON: http/tests/resourceLoadStatistics/classify-as-prevalent-based-on-top-frame-redirect-collusion.html ASSERTS with process swap enabled
https://bugs.webkit.org/show_bug.cgi?id=186545

Reviewed by Brady Eidson.

Source/WebCore:

Move frame navigation logging for ITP purposes from the WebProcess to the UIProcess.
This information was previously logged in DocumentLoader::willSendRequest() and was getting
sync'd to the UIProcess at regular intervals or when the layout tests call testRunner's
statisticsNotifyObserver(). We now do the logging directly in the UIProcess, in
WebPageProxy::decidePolicyForNavigationAction (which was getting called via IPC from
DocumentLoader::willSendRequest()).

This is more efficient and will also be needed soon due to the way process swap on navigation
deals with cross-origin redirects. On cross-origin redirect of the main frame, PSON cancels
the load and started a new load to the redirected to URL in the new WebProcess. As a result,
the new WebProcess is not aware that the load is a redirect, which is information that ITP
requires. By moving the ITP logging to the UIProcess, we still have access to this
information.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):
Stop logging the navigation now that it is logged in the UIProcess.

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):

  • loader/FrameLoaderClient.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/PolicyChecker.h:

We now pass the full redirect request to the decidePolicyForNavigationAction
delegate instead of a simple isRedirect boolean, so that we have the redirect
response URL in the UIProcess for ITP logging.

  • loader/ResourceLoadObserver.cpp:

(WebCore::areDomainsAssociated):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::areDomainsAssociated):
(WebCore::ResourceLoadStatistics::reduceTimeResolution):

  • loader/ResourceLoadStatistics.h:
  • Remove ResourceLoadObserver::logFrameNavigation() now that it is on the WebResourceLoadStatisticsStore.
  • Move some code from ResourceLoadObserver to ResourceLoadStatistics so that it can be called from the UIProcess and to avoid code duplication.

Source/WebKit:

Move frame navigation logging for ITP purposes from the WebProcess to the UIProcess.
This information was previously logged in DocumentLoader::willSendRequest() and was getting
sync'd to the UIProcess at regular intervals or when the layout tests call testRunner's
statisticsNotifyObserver(). We now do the logging directly in the UIProcess, in
WebPageProxy::decidePolicyForNavigationAction (which was getting called via IPC from
DocumentLoader::willSendRequest()).

This is more efficient and will also be needed soon due to the way process swap on navigation
deals with cross-origin redirects. On cross-origin redirect of the main frame, PSON cancels
the load and started a new load to the redirected to URL in the new WebProcess. As a result,
the new WebProcess is not aware that the load is a redirect, which is information that ITP
requires. By moving the ITP logging to the UIProcess, we still have access to this
information.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • We now pass the full redirect response the the delegate method instead of a simple

isRedirect boolean.

  • Log the navigation in the WebResourceLoadStatisticsStore for ITP purposes.
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::areDomainsAssociated):
Equivalent of ResourceLoadObserver's areDomainsAssociated(). Most of the logic was moved
to ResourceLoadStatistics::areDomainsAssociated() to avoid code duplication.

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
This is called whenever a WebProcess sends new resource load statistics to the UIProcess.
Whenever this happens, we call processStatisticsAndDataRecords() right away, which is
sometimes the tests currently rely on. As a result, we can cancels any pending statistics
processing request that was scheduled by logFrameNavigation().

(WebKit::WebResourceLoadStatisticsStore::scheduleStatisticsProcessingRequestIfNecessary):
(WebKit::WebResourceLoadStatisticsStore::cancelPendingStatisticsProcessingRequest):
Whenever a navigation is logged and statistics have been updated, we need to make sure we
schedule a "timer" to process the new data. We do this at most every 5 seconds for performance
reasons. This 5 second interval matches what the ResourceLoadObserver is using in the WebProcess
to notify the UIProcess of new data.

(WebKit::WebResourceLoadStatisticsStore::logFrameNavigation):
This code was moved from ResourceLoadObserver to WebResourceLoadStatisticsStore now that we
do this logging in the UIProcess instead of the WebProcess. One difference with WebCore is
that we use WebPageProxy::pageLoadState().url() as mainFrameURL instead of
WebPageProxy::mainFrame().url(). The reason for that is that WebPageProxy::mainFrame().url()
becomes empty in case of process swap but ITP still needs the actual main frame URL when the
navigation was triggered. WebPageProxy::pageLoadState().url() gives us this information.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

We now pass the full redirect response the the delegate method instead of a simple
isRedirect boolean.

Source/WebKitLegacy/mac:

Update client delegate now that parameter type has changed.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Source/WebKitLegacy/win:

Update client delegate now that parameter type has changed.

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:

Attempt to mark the test as non-flaky now that it no longer relies on sync'ing from the WebProcess
to the UIProcess.

  • platform/wk2/TestExpectations:
2:54 PM Changeset in webkit [232813] by david_fenton@apple.com
  • 2 edits in trunk/Tools

Unreviewed, add myself as a WebKit committer.

  • Scripts/webkitpy/common/config/contributors.json:
2:48 PM Changeset in webkit [232812] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS Debug WK1] LayoutTest fast/parser/xml-error-adopted.xml is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=186581

Unreviewed test gardening.

Patch by David Fenton <david_fenton@apple.com> on 2018-06-13

  • platform/mac-wk1/TestExpectations:
2:26 PM Changeset in webkit [232811] by Nikita Vasilyev
  • 2 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: open source Dark Mode
https://bugs.webkit.org/show_bug.cgi?id=186606

Reviewed by Timothy Hatcher.

The dark mode is currently only available on macOS Mojave via prefers-dark-interface CSS media query.

  • UserInterface/Main.html:
  • UserInterface/Views/DarkMode.css: Added.

(@media (prefers-dark-interface)):
(:root):
(body.window-inactive):
(body.window-inactive *):
(#main):
(.tree-outline.dom li.selected .selection-area):
(.tab-bar > .item > .icon):
(.go-to-arrow):
(.resource-link,):
(.expand-list-button):
(:matches(img, canvas).show-grid):
(.formatted-object,):
(.formatted-null,):
(.editing):
(.editing, .editing *):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
(.details-section > .header):
(.details-section > .header > label):
(.details-section .details-section,):
(.details-section .details-section:not(.collapsed) > .header):
(.details-section > .content > .group > .row.simple > .label):
(.details-section > .content > .group:nth-child(even)):
(.details-section > .content > .group > .row:matches(.empty, .text)):
(.data-grid th):
(.data-grid td .subtitle):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
(.data-grid tr.editable .cell-content > input):
(.data-grid td.spanning):
(.object-tree,):
(.object-preview .name):
(.object-preview > .size):
(.tab-bar):
(.tab-bar > .item):
(.tab-bar > .item > .title):
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar:not(.animating) > .item:not(.selected):hover):
(.tab-bar > .item > .close):
(body.window-inactive .tab-bar):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(body.window-inactive .tab-bar > .item > .title):
(body .toolbar):
(body.window-inactive .toolbar):
(body.latest-mac .toolbar .item.button,):
(body.latest-mac .toolbar .search-bar > input[type="search"]):
(body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
(body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
(body.latest-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .item.button:active):
(body.latest-mac.window-inactive .toolbar .item.button,):
(.navigation-bar .item.divider):
(.toolbar .item.button):
(.toolbar .item.button:not(.disabled):active):
(.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
(.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .resourcesCount > img,):
(body.latest-mac .toolbar .dashboard .item.button):
(.dashboard-container .advance-arrow):
(.toolbar .dashboard.debugger):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .go-to-link):
(.dashboard.debugger > .divider):
(.popover .edit-breakpoint-popover-content > label.toggle):
(.popover .edit-breakpoint-popover-content > table > tr > th):
(.breakpoint-action-block-body):
(.breakpoint-action-block-body > .description):
(.breakpoint-action-append-button,):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
(.navigation-bar .item.button):
(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration .selector:focus,):
(.spreadsheet-css-declaration.locked .origin::after):
(.spreadsheet-css-declaration .origin .go-to-link,):
(.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
(.spreadsheet-style-declaration-editor .property.has-warning):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):
(.spreadsheet-css-declaration .media-label):
(.quick-console):
(.syntax-highlighted,):
(.cm-s-default,):
(.CodeMirror .jump-to-symbol-highlight,):
(.console-prompt):
(.completion-suggestions):
(.completion-suggestions-container > .item):
(.CodeMirror-cursor):
(.CodeMirror .CodeMirror-gutters):
(.cm-s-default .cm-link):
(.cm-s-default .cm-m-xml.cm-attribute,):
(.cm-s-default .cm-meta):
(.cm-s-default .cm-variable-3):
(.cm-s-default .cm-builtin):
(.tree-outline .item .subtitle):
(.object-tree-property .getter,):
(.item.object-tree-property.prototype-property):
(.object-tree-property.prototype-property:hover,):
(.object-tree-property .value.error):
(.tree-outline.dom):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom .shadow):
(.tree-outline.dom li.parent.shadow + ol.children.expanded,):
(.showing-find-banner .tree-outline.dom .search-highlight):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
(.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
(.spreadsheet-css-declaration.locked):
(.spreadsheet-css-declaration .selector.style-attribute):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
(.inline-swatch):
(.spreadsheet-style-panel .section-header):
(.spreadsheet-style-panel .section-header .node-link:hover):
(.computed-style-properties.details-section):
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
(.table,):
(.table > .header > .sortable:active):
(.table > .header > :matches(.sort-ascending, .sort-descending)):
(.table > .header > :matches(.sort-ascending, .sort-descending)::after):
(.scope-bar > li):
(.timeline-overview > .navigation-bar.timelines):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
(.time-icon .icon):
(.data-grid th:matches(.sort-ascending, .sort-descending)):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
(.content-view.settings .navigation-bar):
(.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
(.new-tab.tab.content-view):
(.filter-bar > input[type="search"]):
(.filter-bar > input[type="search"]::placeholder):
(.filter-bar > input[type="search"]:focus):
(.content-view.resource.image):
(.console-messages):
(.console-item):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-session:first-of-type .console-session-header):
(.console-session:not(:first-of-type) .console-session-header):
(.console-messages a):
(.console-messages a:hover):
(.console-messages:focus .console-item.selected::after):
(.console-error-level):
(.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.console-warning-level):
(.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
(.source-code.text-editor > .CodeMirror .error):
(.source-code.text-editor > .CodeMirror .warning):
(.source-code.text-editor > .CodeMirror .issue-widget):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
(.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
(.console-message .syntax-highlighted):
(.console-warning-level .console-message-text):
(.console-error-level .console-message-text):
(.console-user-command > .console-message-text):
(.console-message .repeat-count):
(.call-frame .subtitle,):
(.call-frame:hover .subtitle .source-link,):
(.call-frame .separator):
(.quick-console.showing-log):
(.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
(.network-resource-detail):
(.network-resource-detail .item.close > .glyph):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
(.resource-headers .value):
(.network-table .cell.domain > .lock):
(.resource-sizes > .content .label):
(.popover.waterfall-popover):
(.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
(.resource-timing-breakdown > table > tr > td.label,):
(.resource-timing-breakdown > table hr):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
(.web-socket.content-view .data-grid table.data tr.revealed):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
(.item.action:not(.initial-state)::before):
(.tree-outline .item.action.visual:not(.selected, .invalid)):
(.item.action:not(.initial-state) > .icon):
(.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
(.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon,):
(.content-view.canvas > .preview > img,):
(.content-view.canvas-overview):
(.content-view.canvas-overview .content-view.canvas):
(.content-view.canvas-overview .content-view.canvas.is-recording):
(.content-view.canvas-overview .content-view.canvas.is-recording > header):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
(.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
(.content-view.canvas:not(.tab)):
(.content-view:not(.tab).recording):
(.content-view:not(.tab).recording > header > .slider-container):
(.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
(.progress-view > .titles > .title):
(.progress-view > .titles > .subtitle):
(.indeterminate-progress-spinner):
(.content-view.shader-program > .text-editor.shader):
(.content-view.shader-program > .text-editor.shader > .type-title):
(.item.shader-program .status > img):
(.open-resource-dialog):
(.open-resource-dialog > .field > input):
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .tree-outline .item.selected):
(.open-resource-dialog > .field::before):

2:21 PM Changeset in webkit [232810] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Gardening: Layout Test js/error-should-not-strong-reference-global-object.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=186372

Not reviewed.

Speculative fix to green the bots plus improved the error message logging to get
more info if this fails again.

  • js/error-should-not-strong-reference-global-object.html:
2:07 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
1:57 PM Changeset in webkit [232809] by mark.lam@apple.com
  • 3 edits in trunk/Source/WebCore

FloatingPointEnvironment is only needed for ARM CPUs.
https://bugs.webkit.org/show_bug.cgi?id=186567
<rdar://problem/40929441>

Reviewed by Michael Saboff.

No new tests. This behavior is already covered by existing tests.

  • platform/ios/wak/FloatingPointEnvironment.cpp:
  • platform/ios/wak/FloatingPointEnvironment.h:

(WebCore::FloatingPointEnvironment::enableDenormalSupport):
(WebCore::FloatingPointEnvironment::saveMainThreadEnvironment):
(WebCore::FloatingPointEnvironment::propagateMainThreadEnvironment):
(WebCore::FloatingPointEnvironment::singleton):

1:47 PM Changeset in webkit [232808] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

Crash during interrupted process termination
https://bugs.webkit.org/show_bug.cgi?id=185373
<rdar://problem/40019480>

Reviewed by Alex Christensen.

It's possible to encounter a crash if a user agent feature (such as Safari's responsiveness timer) decides
to kill a Web Process around the same time that a user decides to trigger a new page load. One of the two
termination operations may attempt to call methods on a nulled process pointer.

We can avoid this by holding our own reference to the terminating process until the termination steps have
been completed.

  • UIProcess/API/C/WKPage.cpp:

(WKPageTerminate): Ref<> the active process while the termination call is performed.

  • UIProcess/API/Cocoa/WKWebView.mm:

([WKWebView _killWebContentProcessAndResetState]): Ditto.

1:29 PM Changeset in webkit [232807] by BJ Burg
  • 2 edits in trunk/Source/WebKit

[Cocoa] Web Automation: wrong modifiers sent for 'Help' virtual key
https://bugs.webkit.org/show_bug.cgi?id=186600
<rdar://problem/41088912>

Reviewed by Timothy Hatcher.

This fixes a hang when running W3C test:

special_keys.py::test_webdriver_special_key_sends_keydown[HELP-expected2]

  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:

(WebKit::eventModifierFlagsForVirtualKey):
The help modifier doesn't seem to be used when pressing the Help key.
I verified this using the Help key on the Keyboard Viewer, since no
keyboards from the past decade actually have this physical button.

1:26 PM Changeset in webkit [232806] by timothy@apple.com
  • 12 edits in trunk

Input form controls have a white background in dark mode, when they should not.

https://bugs.webkit.org/show_bug.cgi?id=186577
rdar://problem/39258325

Reviewed by Tim Horton.

Source/WebCore:

  • DerivedSources.make: Allow WTF_PLATFORM_MAC ifdefs to preprocess in html.css.
  • css/CSSValueKeywords.in: Added -apple-system-control-background.
  • css/MediaQueryExpression.cpp:

(WebCore::featureWithValidIdent): Allow dark mode media query in user agent stylesheets.
(WebCore::isFeatureValidWithoutValue): Ditto.

  • css/MediaQueryParserContext.cpp:

(WebCore::MediaQueryParserContext::MediaQueryParserContext): Transfer the CSSParserMode from CSSParserContext.

  • css/MediaQueryParserContext.h:
  • css/html.css: Set color and background-color to semantic colors for input, textarea, and select.

Make input background-color transparent in dark mode to match AppKit.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const): Added -apple-system-control-background.
(WebCore::RenderThemeMac::paintTextField): Adjust the drawing rect to match new artwork in macOS 10.14.

LayoutTests:

  • fast/css/apple-system-control-colors-expected.txt: Updated.
  • fast/css/apple-system-control-colors.html: Added -apple-system-control-background.
  • platform/gtk/fast/css/apple-system-control-colors-expected.txt: Updated.
1:24 PM Changeset in webkit [232805] by wilander@apple.com
  • 3 edits in trunk/LayoutTests

Add console logging to test case to help investigate flaky timeouts
https://bugs.webkit.org/show_bug.cgi?id=186603
<rdar://problem/41096614>

Unreviewed test gardening.

  • http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout-expected.txt:
  • http/tests/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:

Now has step-by-step console logging so that (hopefully) the flaky timeouts don't produce empty output.

1:01 PM Changeset in webkit [232804] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

12:59 PM Changeset in webkit [232803] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.21

Tag Safari-606.1.21.

12:10 PM Changeset in webkit [232802] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

TileFirstPaint strategy for async image decoding should be disabled for non root RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=186336
<rdar://problem/40808099>

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

Source/WebCore:

When showing a composited RenderLayer for the first time, the images in
this layer have to be decoded synchronously to avoid unwanted flashing.

To create a layout test for this patch, FrameDecodingDurationForTesting
needs to be generalized for large and animated images. The decoding thread
now forces the decoding time to be at least equal to
FrameDecodingDurationForTesting.

Test: fast/images/async-image-composited-show.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::shouldUseAsyncDecodingForAnimatedImages const):
(WebCore::BitmapImage::internalStartAnimation):
(WebCore::BitmapImage::advanceAnimation):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::startAsyncDecodingQueue):

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::setFrameDecodingDurationForTesting):
(WebCore::ImageSource::frameDecodingDurationForTesting const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents):

LayoutTests:

  • fast/images/async-image-composited-show-expected.html: Added.
  • fast/images/async-image-composited-show.html: Added.
12:07 PM Changeset in webkit [232801] by keith_miller@apple.com
  • 10 edits in trunk/Source

AutomaticThread should have a way to provide a thread name
https://bugs.webkit.org/show_bug.cgi?id=186604

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Add names for JSC's automatic threads.

  • dfg/DFGWorklist.cpp:
  • heap/Heap.cpp:
  • jit/JITWorklist.cpp:
  • runtime/VMTraps.cpp:
  • wasm/WasmWorklist.cpp:

Source/WTF:

AutomaticThread now has a virtual method to get a name, which can be
overridden to provide a custom name to the thread.

  • wtf/AutomaticThread.cpp:

(WTF::AutomaticThread::start):

  • wtf/AutomaticThread.h:
  • wtf/WorkerPool.cpp:
12:04 PM Changeset in webkit [232800] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CFGSimplificationPhase should de-dupe jettisonedBlocks
https://bugs.webkit.org/show_bug.cgi?id=186583

Reviewed by Filip Pizlo.

When making the predecessors list unique in r232741, it revealed a bug inside
of CFG simplification, where we try to remove the same predecessor more than
once from a blocks predecessors list. We built the list of blocks to remove
from the list of successors, which is not unique, causing us to try to remove
the same predecessor more than once. The solution here is to just add to this
list of blocks to remove only if the block is not already in the list.

  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):

11:51 AM Changeset in webkit [232799] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

CSS "background-color" style no longer affects natively rendered text fields
https://bugs.webkit.org/show_bug.cgi?id=186597
<rdar://problem/41050528>

Reviewed by Tim Horton.

AppKit currently does not support rendering background color to the edges of a text field cell. This means that
in WebCore, when natively rendering text inputs with background color, we need to only draw the bezels of a text
field, such that the background color we paint behind the text field will be shown. Currently, the way we
accomplish this is by intercepting an internal NSTextField method that computes drawing options for CoreUI, and
inserting a "borders only" => true entry.

However, in a recent build of macOS Mojave, AppKit tweaked -_coreUIDrawOptionsWithFrame:inView:includeFocus: to
add an extra argument (such that it's now -_coreUIDrawOptionsWithFrame:inView:includeFocus:maskOnly:), which
negates the above workaround. To fix this in the short term, augment the workaround to apply to the latest macOS
Mojave as well. A longer-term fix is already tracked in <rdar://problem/11385461>, which would allow WebKit to
simply specify a background color on the text field cell, and have AppKit render it properly to the edges of the
bezels.

Covered by a test that is currently failing on Mojave: fast/forms/hidpi-textfield-background-bleeding.html

  • rendering/RenderThemeMac.mm:

(-[WebCoreTextFieldCell _adjustedCoreUIDrawOptionsForDrawingBordersOnly:]):
(-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
(-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:maskOnly:]):

11:32 AM Changeset in webkit [232798] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Always use Nuke & Set procedure for x86
https://bugs.webkit.org/show_bug.cgi?id=186592

Reviewed by Keith Miller.

We always use nukeStructureAndStoreButterfly for Contiguous -> ArrayStorage conversion if the architecture is x86.
By doing so, we can concurrently load structure and butterfly at least in x86 environment even in non-collector
threads.

  • runtime/JSObject.cpp:

(JSC::JSObject::convertContiguousToArrayStorage):

11:29 AM Changeset in webkit [232797] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Mark some flaky tests and expected failures.

Unreviewed test gardening.

  • platform/gtk/TestExpectations:
11:22 AM Changeset in webkit [232796] by commit-queue@webkit.org
  • 17 edits in trunk

[WPE] Build getUserMedia support
https://bugs.webkit.org/show_bug.cgi?id=186547

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-06-13
Reviewed by Alejandro G. Castro.

.:

  • Source/cmake/OptionsWPE.cmake: Build MediaStream support

Source/WebCore:

Enable mediastream tests.

  • PlatformWPE.cmake: Build MediaStream support.
  • SourcesGTK.txt: Moved GStreamer related files to GStreamer.cmake.
  • SourcesWPE.txt: Removed platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp

which is now in GStreamer.cmake.

  • platform/GStreamer.cmake: Build more MediaStream/webrtc related files.
  • platform/graphics/ImageBuffer.cpp: Handle the fact that toBGRAData is

now built directly into the Cairo backend and not GTK anymore.

  • platform/graphics/cairo/ImageBufferCairo.cpp: Implement toBGRAData
  • platform/graphics/gtk/ImageBufferGtk.cpp: Removed toBGRAData as it is

now implemented in the Cairo backend itself.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: Switch an

ASSERT to RELEASE_ASSERT when adding the GhostPad to itself. This was making
test fail when built in RELEASE mode.
(WebCore::webkitMediaStreamSrcChain): Minor variable name change to make it
more accurate.
(WebCore::webkitMediaStreamSrcAddPad): Now add the ghost pad to the element
before setting its chain function, making things clearer.
(WebCore::webkitMediaStreamSrcSetupSrc): Remove extra new line.

Source/WebKit:

  • SourcesWPE.txt: Compile files necessary for MediaStream/webrtc.

LayoutTests:

  • platform/gtk/TestExpectations: Mark some tests as potentially passing (they fail only

when built in debug mode).

  • platform/wpe/TestExpectations: Enable MediaStream tests.
10:58 AM Changeset in webkit [232795] by Philippe Normand
  • 4 edits in trunk/Source/WebCore

[GStreamer] fast/canvas/webgl crashes
https://bugs.webkit.org/show_bug.cgi?id=186590

Reviewed by Carlos Alberto Lopez Perez.

After r232747 the sample managed by the player can be empty,
without buffer. So we need to check for this before mapping video
frames. Also use the GstVideoFrameHolder in more places to reduce
copy-paste churn.

  • platform/graphics/gstreamer/ImageGStreamer.h:
  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp:

(ImageGStreamer::ImageGStreamer):
(ImageGStreamer::~ImageGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::MediaPlayerPrivateGStreamerBase::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):

10:06 AM Changeset in webkit [232794] by aestes@apple.com
  • 4 edits in trunk/Source/WebKit

[iOS] Synchronize PDF resizing with device rotation
https://bugs.webkit.org/show_bug.cgi?id=186587
<rdar://problem/40922462>

Reviewed by Darin Adler.

Both -beginPDFViewRotation and -endPDFViewRotation need to be called as part of
the transition coordinator's -animateAlongsideTransition: block to be synchronized
with rotation. Additionally, updateBlock needs to be invoked between the two calls
so that PDFKit can capture the frame geometry before and after the update.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):

  • UIProcess/Cocoa/WKWebViewContentProvider.h:
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_beginAnimatedResizeWithUpdates:]):
(-[WKPDFView web_beginAnimatedResize]): Renamed to web_beginAnimatedResizeWithUpdates:.
(-[WKPDFView web_endAnimatedResize]): Deleted.

9:35 AM Changeset in webkit [232793] by clopez@igalia.com
  • 4 edits
    3 copies
    9 moves
    42 deletes in trunk/LayoutTests

Update expectations for WebCryptoAPI generateKey tests
https://bugs.webkit.org/show_bug.cgi?id=186591

Unreviewed test gardening.

These tests were split and moved around several times, and expectation
files for old names stuck around.

LayoutTests/imported/w3c:

This also removes the placeholder failures.worker.html and
successes.worker.html files, because the tests were removed.

Patch by Ms2ger <Ms2ger@igalia.com> on 2018-06-13

  • web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/failures.worker.html: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/successes.worker.html: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_aes-cbc-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt: Removed.
  • web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt: Removed.

LayoutTests:

Patch by Ms2ger <Ms2ger@igalia.com> on 2018-06-13

  • TestExpectations: Remove reference to long-removed test.
  • platform/gtk/TestExpectations: Remove reference to long-removed test.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Copied from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Removed.
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDH.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_ECDSA.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Renamed from LayoutTests/platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Renamed from LayoutTests/platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDH.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_ECDSA.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDH.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_ECDSA.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDH.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_ECDSA.https-expected.txt: Removed.
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
9:16 AM Changeset in webkit [232792] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

A few layout tests are failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=186562

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:56 AM WebKitGTK/Gardening/Calendar edited by Ms2ger@igalia.com
(diff)
8:46 AM Changeset in webkit [232791] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

Unreviewed GTK build fix for --cmakeargs=-DUSE_GSTREAMER_GL=OFF

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::load):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):

6:39 AM Changeset in webkit [232790] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] Video freezes when GStreamerGL is not installed
https://bugs.webkit.org/show_bug.cgi?id=184925

Reviewed by Žan Doberšek.

At runtime when the GStreamer opengl plugin isn't available the
player will fallback to the internal WebKit video sink. The
VideoFrameHolder was refactored to handle both cases (opengl,
non-opengl).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::~GstVideoFrameHolder):
(WebCore::GstVideoFrameHolder::frame const):
(WebCore::GstVideoFrameHolder::updateTexture):
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::GstVideoFrameHolder::isValid const): Deleted.
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
3:50 AM Changeset in webkit [232789] by clopez@igalia.com
  • 3 edits in trunk/Tools

[JSCOnly] Add a MIPS32el JSCOnly EWS (follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=186523

Unreviewed follow-up fix after r232748

  • Scripts/webkitpy/common/config/ports.py:

(JscOnlyPort.build_jsc_command): It is needed to pass a --jsc-only argument to the build-jsc script.

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_jsconly_port):

Jun 12, 2018:

11:24 PM Changeset in webkit [232788] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Remove JSVirtualMachine shrinkFootprint when clients move to shrinkFootprintWhenIdle
https://bugs.webkit.org/show_bug.cgi?id=186071

Reviewed by Mark Lam.

  • API/JSVirtualMachine.mm:

(-[JSVirtualMachine shrinkFootprint]): Deleted.

  • API/JSVirtualMachinePrivate.h:
7:59 PM Changeset in webkit [232787] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Complex text handling should opt out of bounded text layout.
https://bugs.webkit.org/show_bug.cgi?id=186571
<rdar://problem/41060908>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/text/complex-long-text-crash.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

LayoutTests:

  • fast/text/complex-long-text-crash-expected.txt: Added.
  • fast/text/complex-long-text-crash.html: Added.
6:55 PM Changeset in webkit [232786] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

webkitpy: Implement coredumpctl support on linux
https://bugs.webkit.org/show_bug.cgi?id=184039

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-06-12
Reviewed by Daniel Bates.

And start using an Executive to run subprocesses
in GDBCrashLogGenerator.

Unit tests adapted to the new API and still passing.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator):
(GDBCrashLogGenerator._get_trace_from_systemd):
(GDBCrashLogGenerator.generate_crash_log):

6:09 PM Changeset in webkit [232785] by Kocsen Chung
  • 7 edits in branches/safari-606.1.20.40-branch/Source

Versioning.

5:37 PM Changeset in webkit [232784] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r232774.

Breaks internal builds.

Reverted changeset:

"Complex text handling should opt out of bounded text layout."
https://bugs.webkit.org/show_bug.cgi?id=186571
https://trac.webkit.org/changeset/232774

5:27 PM Changeset in webkit [232783] by achristensen@apple.com
  • 3 edits
    10271 adds in trunk/LayoutTests

Import the 2.0.0 version of Khronos WebGL conformance suite
https://bugs.webkit.org/show_bug.cgi?id=181293
<rdar://problem/40654103>

Patch by Justin Fan <Justin Fan> on 2018-06-07
Reviewed by Dean Jackson.

Original description and patch by Zan Dobersek <zdobersek@igalia.com>.
Retrying patch with up-to-date revision of conformance suite:

"Import the 2.0.0 version of the WebGL conformance suite that's
maintained under the Khronos organization on GitHub:
https://github.com/KhronosGroup/WebGL.git

The following revision of this repository has been used for importing:
8ea92581353d18f50d25159489897ae634eb23b1

For importing purposes, the generate-webgl-tests.py script is modified
to import tests at version 2.0.0 or below. 2.0 is now used as the
default version for importing purposes. Additionally, the
GreaterThanOrEqualToVersion function is fixed to correctly compare 2.x
versions against 1.x.

The following generate-webgl-tests.py invocation was used:
$ python generate-webgl-tests.py -e -w ~/WebGL/conformance-suites/2.0.0

The 2.0.0 version of the conformance suite is composed of three parts:

  • tests under conformance/ cover WebGL1 functionality,
  • tests under conformance2/ cover WebGL2 functionality,
  • tests under deqp/ are a port of the dEQP suite.

webkit-webgl-test-harness.js file is added under webgl/2.0.0/resources/
to properly integrate the imported tests with the WebKit testing
facilities.

The complete suite is for now skipped on all platforms. WebGL1 tests
should be passing in majority, with failures in that part of the suite
mirroring the ones experienced in the current 1.0.2 and 1.0.3 suites.
The WebGL2 support is still incomplete, and the conformance2/ pass rate
will reflect that. dEQP in majority utilizes WebGL2, so the pass rate
is similarly poor.

List of imported conformance suite files is omitted for brevity."

  • TestExpectations: Skip the WebGL 1 (conformance) and WebGL 2 (conformance2) tests
  • webgl/2.0.0/conformance: Added.
  • webgl/2.0.0/conformance2: Added.
  • webgl/2.0.0/deqp: Added.
  • webgl/2.0.0/resources: Added.
  • webgl/2.0.0/resources/webkit-webgl-test-harness.js:

(window.layoutTestController.window.console.log):
(window.layoutTestController.window.console.error):
(log):
(window.webglTestHarness.reportResults):
(window.webglTestHarness.notifyFinished):

  • webgl/generate-webgl-tests.py:

(GreaterThanOrEqualToVersion):

  • webgl/resources/js-test-pre.js:

(window.console.log):
(window.console.error):
(initNonKhronosFramework):
(this.initTestingHarness):
(nonKhronosFrameworkNotifyDone):
(reportTestResultsToHarness):
(notifyFinishedToHarness):
(_logToConsole):
(enableJSTestPreVerboseLogging):
(description):
(_addSpan):
(debug):
(escapeHTML):
(testPassed):
(testFailed):
(areArraysEqual):
(isMinusZero):
(isResultCorrect):
(stringify):
(evalAndLog):
(shouldBe):
(shouldNotBe):
(shouldBeTrue):
(shouldBeFalse):
(shouldBeNaN):
(shouldBeNull):
(shouldBeEqualToString):
(shouldEvaluateTo):
(shouldBeNonZero):
(shouldBeNonNull):
(shouldBeUndefined):
(shouldBeDefined):
(shouldBeGreaterThanOrEqual):
(expectTrue):
(shouldThrow):
(assertMsg):
(gc.gcRec):
(gc):
(finishTest):

  • webgl/resources/webgl-test-harness.js:

(log):
(try.request.onreadystatechange):
(loadTextFileAsynchronous):
(getMajorVersion):
(getURLWithOptions):
(greaterThanOrEqualToVersion):
(copyObject):
(toCamelCase):
(getFileListImpl):
(getFileList):
(FilterURL):
(TestFile):
(Test):
(TestHarness):
(TestHarness.prototype.addFiles_):
(TestHarness.prototype.runTests):
(TestHarness.prototype.setTimeout):
(TestHarness.prototype.clearTimeout):
(TestHarness.prototype.startNextTest):
(TestHarness.prototype.startTest):
(TestHarness.prototype.getTest):
(TestHarness.prototype.reportResults):
(TestHarness.prototype.dequeTest):
(TestHarness.prototype.notifyFinished):
(TestHarness.prototype.timeout):
(TestHarness.prototype.setTimeoutDelay):
(WebGLTestHarnessModule):

5:08 PM Changeset in webkit [232782] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.20.40.1

Tag Safari-606.1.20.40.1.

4:30 PM Changeset in webkit [232781] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline RSA-PSS tests for High Sierra.

  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Add missing whitespace.
  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Ditto.
3:28 PM Changeset in webkit [232780] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Unreviewed followup for r232736
https://bugs.webkit.org/show_bug.cgi?id=185698

Consider the case when the SVG animation starts before requestAnimationFrame()
is called. Store the value of animItem and compare it later with the value
of animItem after detaching it from the animated animList.

  • svg/dom/animated-tearoff-list-remove-target.html:
3:10 PM Changeset in webkit [232779] by Kocsen Chung
  • 3 edits
    2 adds in branches/safari-606.1.20.40-branch

Cherry-pick r232774. rdar://problem/40801429

Complex text handling should opt out of bounded text layout.
https://bugs.webkit.org/show_bug.cgi?id=186571
<rdar://problem/40801429>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/text/complex-long-text-crash.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm: (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

LayoutTests:

  • fast/text/complex-long-text-crash-expected.txt: Added.
  • fast/text/complex-long-text-crash.html: Added.

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

2:50 PM Changeset in webkit [232778] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

iOS WK1: Occasional crash in FrameView::setScrollPosition
https://bugs.webkit.org/show_bug.cgi?id=186575

Reviewed by David Kilzer.

The bug was caused by ScrollView::platformSetScrollPosition releasing the web thread lock
and DumpRenderTree requesting a new page load thereby destroying FrameView.

Fixed the crash by keeping FrameView alive while scrollToFocusedElementTimerFired is getting called.

No new tests since the bug is caught by existing layout tests under guard malloc.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToFocusedElementTimerFired):

2:45 PM Changeset in webkit [232777] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark inspector/console/webcore-logging.html as flaky on mac-wk2 debug.
https://bugs.webkit.org/show_bug.cgi?id=186425

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:37 PM Changeset in webkit [232776] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/video-buffering-allowed.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=186574

Unreviewed test gardening.

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

test262/Runner.pm: fix one test (can't find jsc)
https://bugs.webkit.org/show_bug.cgi?id=186573

Patch by Valerie R Young <valerie@bocoup.com> on 2018-06-12
Reviewed by Michael Saboff.

  • Scripts/webkitperl/test262_unittest/test262-runner-tests.pl:

fix subtest to use mock JSC

2:14 PM Changeset in webkit [232774] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Complex text handling should opt out of bounded text layout.
https://bugs.webkit.org/show_bug.cgi?id=186571
<rdar://problem/40801429>

Reviewed by Tim Horton.

Source/WebCore:

Test: fast/text/complex-long-text-crash.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

LayoutTests:

  • fast/text/complex-long-text-crash-expected.txt: Added.
  • fast/text/complex-long-text-crash.html: Added.
2:09 PM Changeset in webkit [232773] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the Windows build after r232757

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):

1:50 PM Changeset in webkit [232772] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

Rebaseline WebCrypto API tests for High Sierra after r232641.
https://bugs.webkit.org/show_bug.cgi?id=186565

Unreviewed test gardening.

Patch by David Fenton <david_fenton@apple.com> on 2018-06-12

  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Added.
  • platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Added.
  • platform/mac/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Added.
1:15 PM Changeset in webkit [232771] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Turn CSS Spring Animations and Link Preload off by default for production builds.
https://bugs.webkit.org/show_bug.cgi?id=186548
<rdar://problem/41023774>

Reviewed by Eric Carlson.

  • Shared/WebPreferences.yaml: Switch these features from 'on' to

DEFAULT_EXPERIMENTAL_FEATURES_ENABLED.

1:07 PM Changeset in webkit [232770] by Wenson Hsieh
  • 12 edits
    4 adds
    2 deletes in trunk

[WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=186442
<rdar://problem/40879364>

Reviewed by Tim Horton.

Source/WebKit:

Upstream most of the work around form controls on watchOS. Also, rename WKFormControlListViewController.* to
its intended name, WKQuickboardListViewController.*.

  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/forms/WKDatePickerViewController.h:
  • UIProcess/ios/forms/WKDatePickerViewController.mm:

(datePickerSetButtonHeight):
(datePickerVerticalMargin):
(-[WKDatePickerWheelLabel initWithFrame:]):
(-[WKDatePickerWheelLabel lastSelectedDate]):
(-[WKDatePickerWheelLabel setLastSelectedDate:]):
(-[WKDatePickerWheelLabel needsUpdateForIndex:selectedDate:]):
(-[WKDatePickerWheel initWithStyle:]):
(-[WKDatePickerWheel initWithController:style:]):
(-[WKDatePickerWheel gestureRecognized:]):
(-[WKDatePickerWheel setDrawsFocusOutline:]):
(-[WKDatePickerWheel drawsFocusOutline]):
(-[WKDatePickerWheel gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKDatePickerViewController initWithDelegate:]):
(-[WKDatePickerViewController viewDidLoad]):
(-[WKDatePickerViewController prefersStatusBarHidden]):
(-[WKDatePickerViewController viewWillAppear:]):
(-[WKDatePickerViewController viewDidAppear:]):
(-[WKDatePickerViewController viewDidDisappear:]):
(-[WKDatePickerViewController _handleStatusBarNavigation]):
(-[WKDatePickerViewController viewWillLayoutSubviews]):
(-[WKDatePickerViewController becomeFirstResponder]):
(-[WKDatePickerViewController defaultMinimumDate]):
(-[WKDatePickerViewController defaultMaximumDate]):
(-[WKDatePickerViewController _valueForInput]):
(-[WKDatePickerViewController _dateFromInitialText]):
(-[WKDatePickerViewController _setButtonPressed]):
(-[WKDatePickerViewController _updateSelectedPickerViewIndices]):
(-[WKDatePickerViewController _configurePickerView:]):
(-[WKDatePickerViewController setMinimumDate:]):
(-[WKDatePickerViewController minimumDate]):
(-[WKDatePickerViewController setMaximumDate:]):
(-[WKDatePickerViewController maximumDate]):
(-[WKDatePickerViewController setDate:]):
(-[WKDatePickerViewController setDateFromComponents:]):
(-[WKDatePickerViewController setDay:month:year:era:]):
(-[WKDatePickerViewController date]):
(-[WKDatePickerViewController _dateComponentForDay:month:year:era:]):
(-[WKDatePickerViewController _adjustDateToValidDateIfNecessary]):
(-[WKDatePickerViewController _createAndConfigureGranularityLabelWithText:]):
(-[WKDatePickerViewController _canonicalizeAndUpdateSelectedDate]):
(-[WKDatePickerViewController numberOfItemsInPickerView:]):
(-[WKDatePickerViewController pickerView:viewForItemAtIndex:]):
(-[WKDatePickerViewController didBeginInteractingWithDatePicker:]):
(-[WKDatePickerViewController pickerView:didSelectItemAtIndex:]):
(-[WKDatePickerViewController pickerViewWillBeginSelection:]):
(-[WKDatePickerViewController pickerViewDidEndSelection:]):
(-[WKDatePickerViewController _dayFromIndex:]):
(-[WKDatePickerViewController _eraAndYearFromIndex:]):
(-[WKDatePickerViewController _monthFromIndex:]):
(-[WKDatePickerViewController _indexFromDay:]):
(-[WKDatePickerViewController _indexFromYear:era:]):
(-[WKDatePickerViewController _indexFromMonth:]):

  • UIProcess/ios/forms/WKFormControlListViewController.h: Removed.
  • UIProcess/ios/forms/WKFormControlListViewController.mm: Removed.
  • UIProcess/ios/forms/WKNumberPadViewController.h:
  • UIProcess/ios/forms/WKNumberPadViewController.mm:

(inputLabelFontSize):
(-[WKNumberPadViewController initWithDelegate:initialText:inputMode:]):
(-[WKNumberPadViewController dealloc]):
(-[WKNumberPadViewController viewDidLoad]):
(-[WKNumberPadViewController viewWillDisappear:]):
(-[WKNumberPadViewController viewWillLayoutSubviews]):
(-[WKNumberPadViewController _reloadHeaderViewFromInputText]):
(-[WKNumberPadViewController didSelectKey:]):
(-[WKNumberPadViewController _handleKeyPress:]):
(-[WKNumberPadViewController _cancelInput]):
(-[WKNumberPadViewController _deleteLastInputCharacter]):
(-[WKNumberPadViewController _deleteButtonPressed]):
(-[WKNumberPadViewController _cancelDeletionTimers]):
(-[WKNumberPadViewController _startDeletionTimer]):
(-[WKNumberPadViewController _deletionTimerFired]):
(-[WKNumberPadViewController addContentViewAnimations:]):

  • UIProcess/ios/forms/WKQuickboardListViewController.h: Added.
  • UIProcess/ios/forms/WKQuickboardListViewController.mm: Added.

(-[WKQuickboardListItemCell topToLabelBaselineSpecValue]):
(-[WKQuickboardListItemCell baselineToBottomSpecValue]):
(-[WKQuickboardListViewController initWithDelegate:]):
(-[WKQuickboardListViewController updateContextViewIfNeeded]):
(-[WKQuickboardListViewController prefersStatusBarHidden]):
(-[WKQuickboardListViewController viewDidLoad]):
(-[WKQuickboardListViewController viewWillAppear:]):
(-[WKQuickboardListViewController viewDidDisappear:]):
(-[WKQuickboardListViewController _handleStatusBarNavigation]):
(-[WKQuickboardListViewController reloadContextView]):
(-[WKQuickboardListViewController actionController]):
(-[WKQuickboardListViewController languageControllerDidChangePrimaryLanguage:]):
(-[WKQuickboardListViewController headerContentViewHeight]):
(-[WKQuickboardListViewController headerContentView]):
(configureStatusBarForController):

  • UIProcess/ios/forms/WKSelectMenuListViewController.h:
  • UIProcess/ios/forms/WKSelectMenuListViewController.mm:

(-[WKSelectMenuItemCell initWithStyle:reuseIdentifier:]):
(-[WKSelectMenuItemCell imageView]):
(-[WKSelectMenuListViewController initWithDelegate:]):
(-[WKSelectMenuListViewController viewDidLoad]):
(-[WKSelectMenuListViewController acceptButtonTappedWithCompletion:]):
(-[WKSelectMenuListViewController shouldShowTrayView]):
(-[WKSelectMenuListViewController didSelectListItem:]):
(-[WKSelectMenuListViewController numberOfListItems]):
(-[WKSelectMenuListViewController heightForListItem:width:]):
(-[WKSelectMenuListViewController cellForListItem:]):
(-[WKSelectMenuListViewController selectItemAtIndex:]):

  • UIProcess/ios/forms/WKTimePickerViewController.h:
  • UIProcess/ios/forms/WKTimePickerViewController.mm:

(-[WKTimePickerViewController initWithDelegate:]):
(-[WKTimePickerViewController dateFormatter]):
(-[WKTimePickerViewController timeValueForFormControls]):
(-[WKTimePickerViewController dateComponentsFromInitialValue]):
(-[WKTimePickerViewController viewDidAppear:]):
(-[WKTimePickerViewController viewDidLoad]):
(-[WKTimePickerViewController becomeFirstResponder]):
(-[WKTimePickerViewController setHour:minute:]):
(-[WKTimePickerViewController leftButtonWOTAction]):
(-[WKTimePickerViewController rightButtonWOTAction]):

  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

Upstream a couple of internal test expectations on watchOS.

  • fast/viewport/extrazoom/viewport-adaptations-after-navigation-expected.txt: Added.
  • fast/viewport/extrazoom/viewport-disable-extra-zoom-adaptations-expected.txt: Added.
12:28 PM Changeset in webkit [232769] by Kocsen Chung
  • 4 edits in branches/safari-606.1.20.40-branch

Cherry-pick r232580. rdar://problem/38881568

Don't start service worker fetch when there is substitute data
https://bugs.webkit.org/show_bug.cgi?id=186349
<rdar://problem/38881568>

Reviewed by Youenn Fablet.

Loading content via WKWebView.loadData may also end up starting a main resource service worker fetch.
This breaks DocumentWriter assumptions.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::tryLoadingRequestFromApplicationCache): (WebCore::DocumentLoader::tryLoadingSubstituteData):

Factor substitute resource loading out from tryLoadingRequestFromApplicationCache.

(WebCore::DocumentLoader::startLoadingMainResource):

If we have substitute data already (typically from WKWebView.loadData), allow service worker registration
but load the main resource using the substitute data.

(WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Deleted.

Merge to tryLoadingSubstituteData.

  • loader/DocumentLoader.h:

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

12:28 PM Changeset in webkit [232768] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Make Modern EME An Experimental Feature Again
https://bugs.webkit.org/show_bug.cgi?id=186569
<rdar://problem/41054402>

Reviewed by Eric Carlson.

  • Shared/WebPreferences.yaml:
11:54 AM Changeset in webkit [232767] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit

[watchOS] Enable NetworkActivityTracker
https://bugs.webkit.org/show_bug.cgi?id=186568
<rdar://problem/41050624>

Reviewed by Tim Horton.

  • NetworkProcess/NetworkActivityTracker.h:
11:53 AM Changeset in webkit [232766] by timothy_horton@apple.com
  • 2 edits in trunk/Tools

Add a API test for r232601
https://bugs.webkit.org/show_bug.cgi?id=186417

Reviewed by Wenson Hsieh.

  • TestWebKitAPI/Tests/WebKitCocoa/AnimatedResize.mm:

(immediateSubviewOfClass):
(TEST):
Ensure that we put the view hierarchy back together (move WKContentView
out of the animated resize view) and unhide WKContentView after a
resize-with-hidden-content.

11:40 AM Changeset in webkit [232765] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.20.40-branch/Source

Versioning.

11:38 AM Changeset in webkit [232764] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.20.30-branch/Source

Versioning.

11:35 AM Changeset in webkit [232763] by bshafiei@apple.com
  • 7 edits in branches/safari-606.1.20.20-branch/Source

Versioning.

11:06 AM Changeset in webkit [232762] by bshafiei@apple.com
  • 1 copy in branches/safari-606.1.20.40-branch

New branch.

11:06 AM Changeset in webkit [232761] by bshafiei@apple.com
  • 1 copy in branches/safari-606.1.20.30-branch

New branch.

11:06 AM Changeset in webkit [232760] by bshafiei@apple.com
  • 1 copy in branches/safari-606.1.20.20-branch

New branch.

10:53 AM Changeset in webkit [232759] by Antti Koivisto
  • 9 edits in trunk/Source/WebKit

Add performance logging for slow cache retrieves
https://bugs.webkit.org/show_bug.cgi?id=186520
<rdar://problem/41002070>

Reviewed by Chris Dumez.

We sometimes see slow cache retrieves in logs. Add some more logging to better analyze these cases.

This patch adds timings to all cache storage retrieve operations and passes them up to the client.
We then log the timings on NetworkResourceLoader levels if needed. Items logged include

  • total retrieve time
  • dispatch delay and number of resources dispatched before this one
  • record I/O time
  • blob I/O time
  • whether cache shrink was in progress
  • whether cache synchronization was in progress
  • cancellation
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::logSlowCacheRetrieveIfNeeded):

Log if the retrieve took more than 1s.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::readRecord):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::completeRetrieve):
(WebKit::NetworkCache::Cache::retrieveData):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):

SpeculativeLoadManager does not records specific timings yet but at least we do log when they occur.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::ReadOperation::cancel):
(WebKit::NetworkCache::Storage::ReadOperation::finish):

Record timing info in ReadOperations.

(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::retrieveFromMemory):
(WebKit::NetworkCache::Storage::retrieve):

  • NetworkProcess/cache/NetworkCacheStorage.h:
10:31 AM Changeset in webkit [232758] by bshafiei@apple.com
  • 4 edits in branches/safari-606.1.20-branch

Cherry-pick r232580. rdar://problem/38881568

Don't start service worker fetch when there is substitute data
https://bugs.webkit.org/show_bug.cgi?id=186349
<rdar://problem/38881568>

Reviewed by Youenn Fablet.

Loading content via WKWebView.loadData may also end up starting a main resource service worker fetch.
This breaks DocumentWriter assumptions.

  • loader/DocumentLoader.cpp: (WebCore::DocumentLoader::tryLoadingRequestFromApplicationCache): (WebCore::DocumentLoader::tryLoadingSubstituteData):

Factor substitute resource loading out from tryLoadingRequestFromApplicationCache.

(WebCore::DocumentLoader::startLoadingMainResource):

If we have substitute data already (typically from WKWebView.loadData), allow service worker registration
but load the main resource using the substitute data.

(WebCore::DocumentLoader::handleSubstituteDataLoadSoon): Deleted.

Merge to tryLoadingSubstituteData.

  • loader/DocumentLoader.h:

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

10:25 AM Changeset in webkit [232757] by Wenson Hsieh
  • 3 edits
    2 adds in trunk

REGRESSION(r228724): Occasional crash when executing ReplaceSelectionCommand at the end of the document
https://bugs.webkit.org/show_bug.cgi?id=186555
<rdar://problem/39703004>

Reviewed by Ryosuke Niwa.

Source/WebCore:

r228724 removed a null check for m_lastNodeInserted in InsertedNodes::pastLastLeaf(). This null check was
guarding against the case where m_firstNodeInserted might exist, but m_lastNodeInserted is null, which may
happen when inserting content at the end of the document, since InsertedNodes::willRemoveNodePreservingChildren
may cause m_lastNodeInserted to be null. This is because the removed node may be at the very end of the document
_and also_ not have any children, which means that both node->lastChild() as well as
NodeTraversal::nextSkippingChildren(*node) will be null.

After getting into this state, we subsequently crash when attempting to compute InsertedNodes::pastLastLeaf().
To fix this, avoid accidentally clearing out m_lastNodeInserted; if the last inserted node has neither a child
nor a next node, seek backwards to the previous node in the DOM instead, and clamp to the first inserted node,
such that the last inserted node's document position is at or after the first inserted node's position.

Test: editing/execCommand/insert-apple-style-span-at-document-end.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::InsertedNodes::willRemoveNodePreservingChildren):

LayoutTests:

Add a new layout test demonstrating the crash. The test passes if the right text is inserted into the DOM, and
we don't hit a crash.

  • editing/execCommand/insert-apple-style-span-at-document-end-expected.txt: Added.
  • editing/execCommand/insert-apple-style-span-at-document-end.html: Added.
10:22 AM Changeset in webkit [232756] by commit-queue@webkit.org
  • 1 edit
    16 adds in trunk/Tools

test262/Runner.pm: add unit tests
https://bugs.webkit.org/show_bug.cgi?id=185783

Patch by Valerie R Young <valerie@bocoup.com> on 2018-06-12
Reviewed by Michael Saboff.

  • Scripts/webkitperl/test262_unittest/README: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/expectations-compare.yaml: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/expectations.yaml: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/mock-jsc-fail-new-error.pl: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/mock-jsc-fail.pl: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/mock-jsc-pass.pl: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-failing-with-new-error.js: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-failing.js: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-fail-now-passing.js: Added.

(f):

  • Scripts/webkitperl/test262_unittest/fixtures/test/expected-to-pass-now-failing.js: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/test/fail.js: Added.
  • Scripts/webkitperl/test262_unittest/fixtures/test/pass.js: Added.

(f):

  • Scripts/webkitperl/test262_unittest/test262-runner-tests.pl: Added.
10:16 AM Changeset in webkit [232755] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

test262/Runner.pm: minor updates
https://bugs.webkit.org/show_bug.cgi?id=186399

  • If harness files cannot be found in a CLI supplied

test262 path, then default to webkit's test262 harness files.

  • Lazily create the test262-results directory (only right before

writing to it)

  • If an expectation file is supplied via the CLI, save to the

supplied location instead of the default webkit location
(JSTest/test262/expectation.yaml).

Patch by Valerie R Young <valerie@bocoup.com> on 2018-06-12
Reviewed by Michael Saboff.

  • Scripts/test262/Runner.pm:

(processCLI):
(main):
(compileTest):
(processResult):
(getHarness):
(summarizeResults):

8:28 AM Changeset in webkit [232754] by commit-queue@webkit.org
  • 6 edits in trunk

Hash deviceId and groupId of MediaTrackCapabilities.
https://bugs.webkit.org/show_bug.cgi?id=186471

Patch by Jianjun Zhu <jianjun.zhu@intel.com> on 2018-06-12
Reviewed by Eric Carlson.

This change makes the identifier for the source of the MediaStreamTrack
has the same value returned by enumerateDevices(). It also prevents real
device ID being leaked.

Source/WebCore:

(WebCore::MediaStreamTrack::getCapabilities const):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:

LayoutTests:

  • fast/mediastream/MediaStreamTrack-getCapabilities.html:
8:20 AM Changeset in webkit [232753] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed WPE build fix after r232749.

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:
7:42 AM Changeset in webkit [232752] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LFC] Add vertical margin computation for inflow non-replaced box and for the (10.6.6) complicated cases.
https://bugs.webkit.org/show_bug.cgi?id=186469

Reviewed by Antti Koivisto.

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedHeightAndMargin):
(WebCore::Layout::FormattingContext::Geometry::floatingNonReplacedWidthAndMargin):

  • layout/blockformatting/BlockFormattingContextGeometry.cpp:

(WebCore::Layout::BlockFormattingContext::Geometry::inFlowNonReplacedHeightAndMargin):

7:23 AM Changeset in webkit [232751] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

A few layout tests are failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=186562

Unreviewed test gardening.

  • platform/win/TestExpectations:
5:09 AM Changeset in webkit [232750] by Yusuke Suzuki
  • 2 edits in trunk/JSTests

Update test262 for Array#sort
https://bugs.webkit.org/show_bug.cgi?id=186458

  • test262/expectations.yaml:
5:07 AM Changeset in webkit [232749] by Philippe Normand
  • 6 edits
    1 delete in trunk

[GStreamer] Bump required version to 1.8.3
https://bugs.webkit.org/show_bug.cgi?id=186558

Reviewed by Xabier Rodriguez-Calvar.

.:

  • Source/cmake/GStreamerChecks.cmake: Bump to 1.8.3 which is the

version shipped in the current Ubuntu LTS we support (16.04).

Source/WebCore:

  • platform/GStreamer.cmake: Remove useless file.
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcChangeState): Remove useless version check.

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp:

Removed. createDecryptor() is dead code since the decryptors moved
to the MSE playback pipeline.

  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:

(WebCore::GStreamerEMEUtilities::keySystemToUuid):

4:40 AM Changeset in webkit [232748] by clopez@igalia.com
  • 8 edits
    1 add in trunk/Tools

[JSCOnly] Add a MIPS32el JSCOnly EWS
https://bugs.webkit.org/show_bug.cgi?id=186523

Reviewed by Michael Catanzaro.

Add a new jsc-mips-ews queue that will execute build-jsc for the jsc-only (Linux) port.
The worker(s) on this queue should be pre-configured to cross-build JSC for MIPS32el.

  • QueueStatusServer/config/queues.py:
  • QueueStatusServer/model/queues.py:

(Queue.display_name):

  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/config/ports.py:

(DeprecatedPort.port):
(WpePort.run_webkit_tests_command):
(JscOnlyPort):
(JscOnlyPort.build_jsc_command):

  • Scripts/webkitpy/common/config/ports_unittest.py:

(DeprecatedPortTest.test_wincairo_port):
(DeprecatedPortTest):
(DeprecatedPortTest.test_jsconly_port):

  • Scripts/webkitpy/port/factory.py:

(PortFactory):

  • Scripts/webkitpy/port/jsc_only.py: Added. Add a basic port definition. Required by the EWS tooling.

(JscOnlyPort):
(JscOnlyPort.init):

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

(test_ews_name):

2:43 AM Changeset in webkit [232747] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] flush video sample upon DRAIN query
https://bugs.webkit.org/show_bug.cgi?id=186481

Patch by Philippe Normand <philn@igalia.com> on 2018-06-11
Reviewed by Xabier Rodriguez-Calvar.

Use the appsink sink pad pad probe for both event and drain query
management. This patch is partially based on
https://github.com/WebPlatformForEmbedded/WPEWebKit/commit/d3a336523d123119fe1dd53da5d9006c92cf078c
by Enrique Ocaña González <eocanha@igalia.com>.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::createGLAppSink):

12:55 AM Changeset in webkit [232746] by zandobersek@gmail.com
  • 7 edits
    7 adds in trunk

Add run-web-platform-tests script
https://bugs.webkit.org/show_bug.cgi?id=183356

Reviewed by Carlos Alberto Lopez Perez.

.:

Store port-specific test expectations and test manifest files for the
web-platform-tests test runs under the top-level WebPlatformTests
directory.

TestExpectations.json file lists all the failing or disabled tests
or subtests that are to be expected in the test run. This information is
parsed in the run-web-platform-tests script and used to build
test-specific metadata files (ending with .ini) inside a temporary
directory that is then used during the test run. JSON format is used to
follow the WebDriver test suite in how it manages expectations, and to
avoid having to manually manage .ini files for every deviant test case.

TestManifest.ini file is used to fine-tune which tests are to be enabled
by default. For the GTK+ port, we currently disable all tests by default
but then specifically enable tests under the 2dcontext and WebCryptoAPI
directories. This will allow for gradual enabling of further tests.

  • WebPlatformTests/gtk/TestExpectations.json: Added.
  • WebPlatformTests/gtk/TestManifest.ini: Added.

Tools:

Add the run-web-platform-tests script that allows running WebKit builds
against the external web-platform-tests project.

The script sets up all the port-specific information, including the
display driver. If no web-platform-tests repository location is
specified, the TestDownloader utility is used to clone the repository,
and path to that clone is leveraged instead.

Port-specific TestManifest.ini and TestExpectations.json file paths are
then constructed, bailing if any of the files is missing. The JSON file
is then used to construct the metadata file tree, creating an .ini file
for each test that is disabled, has a certain expectation, or has
subtests that themselves have certain expectations. This metadata tree
is built under the build directory, and is purged and reconstructed for
each separate run.

Lastly, the WPT python module is imported from the web-platform-tests
source location, and wpt.main() is invoked along with all the necessary
arguments that set up a web-platform-tests suite run using the WebKit
product.

  • Scripts/run-web-platform-tests: Added.
  • Scripts/webkitpy/common/config/ports_mock.py:

(MockPort.run_bindings_tests_command):
(MockPort):
(MockPort.wpt_metadata_directory):
(MockPort.wpt_manifest_file):

  • Scripts/webkitpy/port/base.py:

(Port.wpt_metadata_directory):
(Port):
(Port.wpt_manifest_file):

  • Scripts/webkitpy/w3c/common.py:

(is_file_exportable):
(WPTPaths):
(WPTPaths.checkout_directory):
(WPTPaths.wpt_checkout_path):

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader.clone_tests):
(TestDownloader):
(TestDownloader.download_tests):

  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter.init):

  • Scripts/webkitpy/w3c/wpt_runner.py: Added.

(main):
(parse_args):
(create_webdriver):
(spawn_wpt):
(WPTRunner):
(WPTRunner.init):
(WPTRunner._prepare_wpt_checkout):
(WPTRunner._generate_metadata_directory):
(WPTRunner.run):

  • Scripts/webkitpy/w3c/wpt_runner_unittest.py: Added.

(WPTRunnerTest):
(WPTRunnerTest.MockTestDownloader):
(WPTRunnerTest.MockTestDownloader.default_options):
(WPTRunnerTest.MockTestDownloader.init):
(WPTRunnerTest.MockTestDownloader.clone_tests):
(WPTRunnerTest.MockWebDriver):
(WPTRunnerTest.MockWebDriver.create):
(WPTRunnerTest.MockWebDriver.binary_path):
(WPTRunnerTest.MockWebDriver.browser_path):
(WPTRunnerTest.MockWebDriver.browser_args):
(WPTRunnerTest.MockSpawnWPT):
(WPTRunnerTest.MockSpawnWPT.init):
(WPTRunnerTest.MockSpawnWPT.call):
(WPTRunnerTest.TestInstance):
(WPTRunnerTest.TestInstance.init):
(WPTRunnerTest.TestInstance.prepare_mock_files_for_run):
(WPTRunnerTest.test_prepare_wpt_checkout):
(WPTRunnerTest.test_prepare_wpt_checkout_specified_path):
(WPTRunnerTest.test_generate_metadata_directory):
(WPTRunnerTest.test_run):
(WPTRunnerTest.test_run_with_specified_options):
(WPTRunnerTest.test_run_with_args):

12:00 AM Changeset in webkit [232745] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.21.4

WebKitGTK+ 2.21.4

Jun 11, 2018:

11:58 PM Changeset in webkit [232744] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.21.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.21.4.
10:40 PM Changeset in webkit [232743] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Replace HorizontalGeometry::width and margin with WidthAndMargin (Vertical too)
https://bugs.webkit.org/show_bug.cgi?id=186556

Reviewed by Sam Weinig.

HorizontalGeometry::width and margin -> WidthAndMargin
VerticalGeometry::height and margin -> HeightAndMargin

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const):

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::inlineReplacedWidthAndMargin):
(WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedHorizontalMarginValue):
(WebCore::Layout::FormattingContext::Geometry::computedNonCollapsedVerticalMarginValue):

10:05 PM Changeset in webkit [232742] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Reduce graph size by replacing terminal nodes in blocks that have a ForceOSRExit with Unreachable
https://bugs.webkit.org/show_bug.cgi?id=181409
<rdar://problem/36383749>

Reviewed by Keith Miller.

This patch is me redoing r226655. This is a patch I wrote when
profiling Speedometer. Fil rolled this change out in r230928. He
showed this slowed down a sunspider tests by ~2x. This sunspider
regression revealed a real performance bug in the original change:
we would kill blocks that reached OSR entry targets, sometimes leading
us to not do OSR entry into the DFG, since we could end up deleting
entire loops from the CFG. The reason for this is that code that has run
~once and that reaches loops often has ForceOSRExits inside of it. The
solution to this is to not perform this optimization on blocks that can
reach OSR entry targets.

The reason I'm redoing this patch is that it turns out Fil rolling
out the change was a Speedometer 2 regression.

This is a modified version of the original ChangeLog I wrote in r226655:

When I was looking at profiler data for Speedometer, I noticed that one of
the hottest functions in Speedometer is around 1100 bytecode operations long.
Only about 100 of those bytecode ops ever execute. However, we ended up
spending a lot of time compiling basic blocks that never executed. We often
plant ForceOSRExit nodes when we parse bytecodes that have a null value profile.
This is the case when such a node never executes.

This patch makes it so that anytime a block has a ForceOSRExit, and that block
can not reach an OSR entry target, we replace its terminal node with an Unreachable
node, and remove all nodes after the ForceOSRExit. This cuts down the graph
size since it removes control flow edges from the CFG. This allows us to get
rid of huge chunks of the CFG in certain programs. When doing this transformation,
we also insert Flushes/PhantomLocals to ensure we can recover values that are bytecode
live-in to the ForceOSRExit.

Using ForceOSRExit as the signal for this is a bit of a hack. It definitely
does not get rid of all the CFG that it could. If we decide it's worth
it, we could use additional inputs into this mechanism. For example, we could
profile if a basic block ever executes inside the LLInt/Baseline, and
remove parts of the CFG based on that.

When running Speedometer with the concurrent JIT turned off, this patch
improves DFG/FTL compile times by around 5%.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::blocksInPostOrder):

10:05 PM Changeset in webkit [232741] by sbarati@apple.com
  • 8 edits in trunk/Source

The NaturalLoops algorithm only works when the list of blocks in a loop is de-duplicated
https://bugs.webkit.org/show_bug.cgi?id=184829

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This patch codifies that a BasicBlock's list of predecessors is de-duplicated.
In B3/Air, this just meant writing a validation rule. In DFG, this meant
ensuring this property when building up the predecessors list, and also adding
a validation rule. The NaturalLoops algorithm relies on this property.

  • b3/B3Validate.cpp:
  • b3/air/AirValidate.cpp:
  • b3/testb3.cpp:

(JSC::B3::testLoopWithMultipleHeaderEdges):
(JSC::B3::run):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::handleSuccessor):

  • dfg/DFGValidate.cpp:

Source/WTF:

This patch switches NaturalLoops to walking over a block's predecessors
instead of successors when building the initial list of loops and their
headers. The algorithm broke down when we had a footer block with multiple
control flow edges pointing to the same header. This made the loop data
structure contain multiple entries for the same basic block. The algorithm
breaks down when we end up in this state, since it means our way of detecting
what loop is more inner is broken, since that check uses a loop's size.

  • wtf/NaturalLoops.h:

(WTF::NaturalLoop::addBlock):
(WTF::NaturalLoops::NaturalLoops):

8:27 PM Changeset in webkit [232740] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Extend test group rule to support 'userInitiated' field.
https://bugs.webkit.org/show_bug.cgi?id=186544

Reviewed by Ryosuke Niwa.

Added support for rule specifying whether or not test group is user initiated.

  • tools/js/analysis-results-notifier.js: Rule now support 'userInitiated' field.

(AnalysisResultsNotifier.prototype.async.sendNotificationsForTestGroups):
(AnalysisResultsNotifier.prototype._applyRules):
(AnalysisResultsNotifier._matchesRule):

  • unit-tests/analysis-results-notifier-tests.js: Added unit tests for this change.
7:37 PM Changeset in webkit [232739] by youenn@apple.com
  • 23 edits in trunk

Improve error messages in case FetchEvent.respondWith has a rejected promise
https://bugs.webkit.org/show_bug.cgi?id=186368

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-argument.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-response-body-with-invalid-chunk.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-frame-resource.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/invalid-header.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-recovery.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Introduce a new error domain for service worker ResourceError.
Used this domain to log in the console any such error.

Update FetchEvent implementation to get meaningful error messages for respondWith error cases.
In particular, convert the rejected promise JS value as a string to populate the error message.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):

  • platform/network/ResourceErrorBase.cpp:
  • platform/network/ResourceErrorBase.h:
  • testing/ServiceWorkerInternals.cpp:

(WebCore::ServiceWorkerInternals::waitForFetchEventToFinish):

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::~FetchEvent):
(WebCore::FetchEvent::createResponseError):
(WebCore::FetchEvent::onResponse):
(WebCore::FetchEvent::respondWithError):
(WebCore::FetchEvent::processResponse):
(WebCore::FetchEvent::promiseIsSettled):

  • workers/service/FetchEvent.h:
  • workers/service/context/ServiceWorkerFetch.cpp:

(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

Source/WebKit:

Log in JS console in case of failures.
Rely on ThreadableLoader to log which client actually failed.

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::didFail):

LayoutTests:

6:46 PM Changeset in webkit [232738] by keith_miller@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Loading cnn.com in MiniBrowser hits Structure::dump() under DFG::AdaptiveInferredPropertyValueWatchpoint::handleFire which churns 65KB of memory
https://bugs.webkit.org/show_bug.cgi?id=186467

Reviewed by Simon Fraser.

This patch adds a LazyFireDetail that wraps ScopedLambda so that
we don't actually malloc any strings for firing unless those
Strings are actually going to be printed.

  • bytecode/Watchpoint.h:

(JSC::LazyFireDetail::LazyFireDetail):

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::handleFire):

  • dfg/DFGAdaptiveStructureWatchpoint.cpp:

(JSC::DFG::AdaptiveStructureWatchpoint::fireInternal):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototypeAdaptiveInferredPropertyWatchpoint::handleFire):

6:27 PM Changeset in webkit [232737] by Chris Dumez
  • 11 edits
    2 adds in trunk

http/tests/security/xss-DENIED-script-inject-into-inactive-window2.html times out with PSON enabled
https://bugs.webkit.org/show_bug.cgi?id=186546

Reviewed by Brady Eidson.

Source/WebCore:

Add a hasOpenedFrames flag to NavigationAction, which we'll use in the UIProcess when deciding
to process swap on navigation or not.

Test: http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURL):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::hasOpenedFrames const):
(WebCore::NavigationAction::setHasOpenedFrames):

Source/WebKit:

Disable process swap on navigation in frames that have opened other frames via
window.open(). These new windows may have a WindowProxy to their opener, and it
would therefore be unsafe to process swap at this point.

  • Shared/NavigationActionData.cpp:

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

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigation.h:

(API::Navigation::setHasOpenedFrames):
(API::Navigation::hasOpenedFrames const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigationInternal):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

LayoutTests:

Add layout test coverage.

  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson-expected.txt: Added.
  • http/tests/security/xss-DENIED-script-inject-into-inactive-window2-pson.html: Added.
5:11 PM Changeset in webkit [232736] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Layout Test svg/dom/animated-tearoff-list-remove-target.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=185698
<rdar://problem/40341200>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-06-11
Reviewed by Daniel Bates.

The test is flaky because we get the animVal.getItem(0) of the 'x' attribute
from the target element without initializing this attribute with a base value.

The test assumes the animator would set the animVal of the 'x' attribute
from the 'from' attribute of the <animate> element before animVal.getItem(0)
is executed. But this may not always happen. Therefore the test will get
the 'IndexSizeError' exception and it will time out.

The fix is:
-- Initialize the attribute of the target element by a base value.
-- Use requestAnimationFrame() instead of using setTimeout() to make the

test deterministic.

-- Allow the animation to advance one more step after kicking off the GC

to ensure the variable 'animItem' is detached from animVal.getItem(0).

  • svg/dom/animated-tearoff-list-remove-target.html:
4:14 PM Changeset in webkit [232735] by jer.noble@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed gardening; add a late endTest(), in case none of the other events fire in time.

  • media/track/track-delete-during-setup.html:
3:52 PM Changeset in webkit [232734] by Keith Rollin
  • 5 edits in trunk/Source

Add logging around internalError(const URL&)
https://bugs.webkit.org/show_bug.cgi?id=186369
<rdar://problem/40872046>

Reviewed by Brent Fulgham.

There are times when we receive bug reports where the user says that
they are simply shown a page saying an internal error occurred. To
help understand the circumstances of that error, add some logging to
internalError() in WebErrors.cpp. This logging logs at the Error level
that internalError() was called and then logs a backtrace.

Source/WebKit:

  • Shared/WebErrors.cpp:

(WebKit::internalError):

Source/WTF:

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
3:15 PM Changeset in webkit [232733] by mark.lam@apple.com
  • 13 edits in trunk

Add support for webkit-test-runner jscOptions in DumpRenderTree and WebKitTestRunner.
https://bugs.webkit.org/show_bug.cgi?id=186451
<rdar://problem/40875792>

Reviewed by Tim Horton.

Source/JavaScriptCore:

Enhance setOptions() to be able to take a comma separated options string in
addition to white space separated options strings.

  • runtime/Options.cpp:

(JSC::isSeparator):
(JSC::Options::setOptions):

Tools:

This jscOptions option can be used by a layout test to specify some JSC runtime
options needed by the test e.g. by adding something like this to the top of the
html file after the DOCTYPE tag:

<!-- webkit-test-runner [ jscOptions=--useIntlPluralRules=true ] -->

If more than one option is needed, the options can be specified as a comma
separated string e.g.

<!-- webkit-test-runner [ jscOptions=--useIntlPluralRules=true,--useZombieMode=true ] -->

This only works with JSC options that can be changed at runtime. Not all JSC
options can be changed this way as some options are only checked and set once at
VM / process initialization time: changing this type of options may have no
effect. It's the test writer's responsibility to determine which options are
appropriate for with this webkit-test-runner jscOptions option.

This implementation is a workaround until we can change the run-webkit-tests
scripts to parse the option and apply it to a new launch of DRT or WKTR:
https://bugs.webkit.org/show_bug.cgi?id=186452

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):
(TestOptions::webViewIsCompatibleWithOptions const):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(setJSCOptions):
(resetWebViewToConsistentStateBeforeTesting):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::didReceiveMessageToPage):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

  • js/intl-numberformat-format-to-parts.html:
  • js/intl-pluralrules.html:
  • js/script-tests/intl-numberformat-format-to-parts.js:
2:29 PM Changeset in webkit [232732] by beidson@apple.com
  • 4 edits in trunk/Tools

Add a command line default to force WebKitTestRunner to turn on process swap on navigation.
https://bugs.webkit.org/show_bug.cgi?id=186534

Reviewed by Chris Dumez.

Right now Process Swap On Navigation is enabled on a per-test basis.
The future is to enable it by default.

Adding a 'defaults write' helps us get to that future.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::testOptionsForTest const):
(WTR::TestController::platformAddTestOptions const):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformAddTestOptions const):

2:06 PM Changeset in webkit [232731] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Link drag image is inconsistently unreadable in dark mode
https://bugs.webkit.org/show_bug.cgi?id=186472

Reviewed by Timothy Hatcher.

Source/WebCore:

  • platform/mac/DragImageMac.mm:

(WebCore::createDragImageForLink):
Use LocalDefaultSystemAppearance so that NSColors used inside
createDragImageForLink are interpreted correctly. This function
always follows the system appearance regardless of what the preference
is set to, because it's generating UI that isn't part of the page.

Use controlBackgroundColor to get a consistently contrasting background
for the link drag image.

Source/WebKit:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::useDefaultAppearance):
Make defaultAppearance accurate even if useSystemAppearance is false.
Some parts of WebKit (like the link drag image, but also context menus)
want to be able to follow the system appearance regardless of whether
the view or content has opted in.

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _defaultAppearance]):
Make defaultAppearance accurate even if useSystemAppearance is false.
Some parts of WebKit (like the link drag image, but also context menus)
want to be able to follow the system appearance regardless of whether
the view or content has opted in.

1:52 PM Changeset in webkit [232730] by Chris Dumez
  • 23 edits
    1 move
    2 adds in trunk

http/tests/security/cors-post-redirect-307.html fails with PSON enabled
https://bugs.webkit.org/show_bug.cgi?id=186441

Reviewed by Brady Eidson.

Source/WebCore:

When we are continuing a load in a new process, we currently bypass the navigation policy
check. We now also bypass the adding of headers such as the Origin one since the request
was already processed in the previous process. This is important because in the case of
a cross-origin redirect, the previous process has removed the Origin header from the
request and we do not want the new process to add it again.

Test: http/tests/security/cors-post-redirect-307-pson.html

  • WebCore.xcodeproj/project.pbxproj:
  • history/BackForwardController.cpp:

(WebCore::BackForwardController::goBackOrForward):
(WebCore::BackForwardController::goBack):
(WebCore::BackForwardController::goForward):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldTreatAsContinuingLoad):
(WebCore::FrameLoadRequest::shouldTreatAsContinuingLoad const):
(WebCore::FrameLoadRequest::setShouldCheckNavigationPolicy): Deleted.
(WebCore::FrameLoadRequest::shouldCheckNavigationPolicy const): Deleted.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::addExtraFieldsToRequest):
(WebCore::FrameLoader::addHTTPOriginIfNeeded):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):

  • loader/FrameLoader.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::setDefersLoading):
(WebCore::HistoryController::recursiveGoToItem):

  • loader/HistoryController.h:
  • loader/ShouldTreatAsContinuingLoad.h: Renamed from Source/WebCore/loader/NavigationPolicyCheck.h.
  • page/Page.cpp:

(WebCore::Page::goToItem):

  • page/Page.h:

Source/WebKit:

Rename existing flag to something a bit more generic, now that it is used for
more things than bypassing the navigation policy check.

  • Shared/LoadParameters.cpp:

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

  • Shared/LoadParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigation):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::continueNavigationInNewProcess):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::goToBackForwardItem):

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

Source/WebKitLegacy/mac:

Rename existing flag to something a bit more generic, now that it is used for
more things than bypassing the navigation policy check.

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView goToBackForwardItem:]):

Source/WebKitLegacy/win:

Rename existing flag to something a bit more generic, now that it is used for
more things than bypassing the navigation policy check.

  • WebView.cpp:

(WebView::goToBackForwardItem):
(WebView::loadBackForwardListFromOtherView):

LayoutTests:

Add layout test coverage.

  • http/tests/security/cors-post-redirect-307-pson-expected.txt: Added.
  • http/tests/security/cors-post-redirect-307-pson.html: Added.
1:28 PM Changeset in webkit [232729] by Chris Dumez
  • 5 edits in trunk

Allow enabling PSON in layout tests without window.open support
https://bugs.webkit.org/show_bug.cgi?id=186537

Reviewed by Geoffrey Garen.

Tools:

Allow enabling PSON in layout tests without window.open support since window.open support
is far from being ready and we plan to enable PSON in layout tests soon.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createWebViewWithOptions):
(WTR::updateTestOptionsFromTestHeader):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::hasSameInitializationOptions const):

LayoutTests:

Update layout test which requires window.open support in addition to PSON.

  • http/tests/navigation/process-swap-window-open.html:
1:18 PM Changeset in webkit [232728] by youenn@apple.com
  • 6 edits in trunk

Accept request header values should be more tightly checked after r232572 in case of CORS load
https://bugs.webkit.org/show_bug.cgi?id=186533
<rdar://problem/40933880>

Reviewed by Darin Adler.

Source/WebCore:

Covered by updated test.

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidAcceptHeaderValue): Checking that Accept header value conforms with RFC7370.
If not, this will trigger preflighting for CORS cross origin loads.
Current checks for Accept-Language and Content-Language are sufficient to ensure values conform with RFC7370.

LayoutTests:

Added test to check Accept header value preflight.
Updated test to check that a preflight really happens if expected.

  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight-expected.txt:
  • http/tests/xmlhttprequest/cors-non-standard-safelisted-headers-should-trigger-preflight.html:
  • http/tests/xmlhttprequest/resources/cors-preflight-safelisted-headers-responder.php:
12:55 PM Changeset in webkit [232727] by beidson@apple.com
  • 2 edits in trunk/Tools

Followup to [Cocoa] Remove all uses of NSAutoreleasePool as part of preparation for ARC
https://bugs.webkit.org/show_bug.cgi?id=186436

Patch by Darin Adler
Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/mac/StopLoadingFromDidFinishLoading.mm:

(TestWebKitAPI::TEST):

12:35 PM Changeset in webkit [232726] by Antti Koivisto
  • 2 edits in trunk/LayoutTests

Fix spelling.

  • http/tests/cache/disk-cache/disk-cache-media-small.html:
12:23 PM Changeset in webkit [232725] by mark.lam@apple.com
  • 2 edits in trunk/Tools

Gardening: skip BigInt tests on iOS until the feature is stable.
<rdar://problem/40331121>

Not reviewed.

  • Scripts/run-jsc-stress-tests:
12:07 PM Changeset in webkit [232724] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

http/tests/navigation/https-in-page-cache.html fails with process swapping on.
https://bugs.webkit.org/show_bug.cgi?id=186532

Reviewed by Geoffrey Garen.

  • http/tests/navigation/resources/https-in-page-cache-1.php:
  • http/tests/navigation/resources/https-in-page-cache-2.php:
  • http/tests/navigation/resources/https-in-page-cache-3.html:
11:59 AM Changeset in webkit [232723] by Fujii Hironori
  • 8 edits
    1 copy
    1 add in trunk/Tools

[Win][MiniBrowser] Add WebKitBrowserWindow class for modern WebKit API
https://bugs.webkit.org/show_bug.cgi?id=186478

Reviewed by Alex Christensen.

Added "New WebKit Window" and "New WebKitLegacy Window" menu
items. Disabled the menu item "New WebKit Window" if
!ENABLE(WEBKIT).

  • MiniBrowser/win/CMakeLists.txt: Added WebKitBrowserWindow.cpp

source file and ENABLE_WEBKIT macro if ENABLE_WEBKIT.

  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::MainWindow):
(MainWindow::create):
(MainWindow::init):
(MainWindow::WndProc):

  • MiniBrowser/win/MainWindow.h:
  • MiniBrowser/win/MiniBrowserLib.rc:
  • MiniBrowser/win/MiniBrowserLibResource.h:
  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(PrintWebUIDelegate::createWebViewWithRequest):

  • MiniBrowser/win/WebKitBrowserWindow.cpp: Added.

(createString):
(toUtf8):
(createWKString):
(createWKURL):
(WebKitBrowserWindow::create):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::init):
(WebKitBrowserWindow::hwnd):
(WebKitBrowserWindow::loadURL):
(WebKitBrowserWindow::loadHTMLString):
(WebKitBrowserWindow::navigateForwardOrBackward):
(WebKitBrowserWindow::navigateToHistory):
(WebKitBrowserWindow::setPreference):
(WebKitBrowserWindow::print):
(WebKitBrowserWindow::launchInspector):
(WebKitBrowserWindow::setUserAgent):
(WebKitBrowserWindow::userAgent):
(WebKitBrowserWindow::showLayerTree):
(WebKitBrowserWindow::updateStatistics):
(WebKitBrowserWindow::resetZoom):
(WebKitBrowserWindow::zoomIn):
(WebKitBrowserWindow::zoomOut):
(toWebKitBrowserWindow):
(WebKitBrowserWindow::didReceiveTitleForFrame):
(WebKitBrowserWindow::didCommitLoadForFrame):

  • MiniBrowser/win/WebKitBrowserWindow.h:
  • MiniBrowser/win/WinMain.cpp:

(wWinMain):

11:11 AM Changeset in webkit [232722] by n_wang@apple.com
  • 2 edits in trunk/Source/WebKit

AX: [iOS] accessibility sometimes doesn't know process suspension is canceled
https://bugs.webkit.org/show_bug.cgi?id=186450

Reviewed by Chris Fleizach.

There's some early return condition in WebProcess::cancelPrepareToSuspend() which
could lead to accessibility failing to post process status notificaiton. Fixed it
by moving the accessibility notification before the early return condition.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::cancelPrepareToSuspend):

10:24 AM Changeset in webkit [232721] by keith_miller@apple.com
  • 2 edits in trunk/Tools

Add missing whitespace to run-jsc command
https://bugs.webkit.org/show_bug.cgi?id=186528

Reviewed by Mark Lam.

  • Scripts/run-jsc:
9:58 AM Changeset in webkit [232720] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under com.apple.WebKit.Networking at WebCore: WebCore::NetworkStorageSession::hasStorageAccess const
https://bugs.webkit.org/show_bug.cgi?id=186433
<rdar://problem/40750907>

Reviewed by Geoffrey Garen.

Do some hardening in NetworkStorageSession::hasStorageAccess() to make sure
we do not try and do a HashMap lookup with a null firstPartyDomain, as this
would crash.

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::hasStorageAccess const):

9:39 AM Changeset in webkit [232719] by msaboff@apple.com
  • 9 edits in trunk

JavaScriptCore: Disable 32-bit JIT on Windows
https://bugs.webkit.org/show_bug.cgi?id=185989

Reviewed by Mark Lam.

.:

  • Source/cmake/OptionsWin.cmake:

Source/JavaScriptCore:

Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.

  • llint/LLIntData.h:

(JSC::LLInt::getCodePtr): Used a reinterpret_cast since Opcode could be an int.

  • llint/LowLevelInterpreter.cpp: Changed the definition of OFFLINE_ASM_GLOBAL_LABEL to not

have a case label because these aren't opcodes.

  • runtime/Options.cpp: Made assembler related Windows conditional code also conditional

on the JIT being enabled.
(JSC::recomputeDependentOptions):

Source/WTF:

Fixed the CLOOP so it can work when COMPUTED_GOTOs are not supported.

  • wtf/Platform.h:
9:32 AM Changeset in webkit [232718] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Test js/regexp-zero-length-alternatives.html fails when RegExpJIT is disabled
https://bugs.webkit.org/show_bug.cgi?id=186477

Reviewed by Filip Pizlo.

Fixed bug where we were using the wrong frame size for TypeParenthesesSubpatternTerminalBegin
YARR interpreter nodes. This caused us to overwrite other frame information.

Added frame offset debugging code to YARR interpreter.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::emitDisjunction):
(JSC::Yarr::ByteCompiler::dumpDisjunction):

8:44 AM Changeset in webkit [232717] by Antti Koivisto
  • 3 edits in trunk/LayoutTests

REGRESSION (Mojave): LayoutTest http/tests/cache/disk-cache/disk-cache-media-small.html is failing
https://bugs.webkit.org/show_bug.cgi?id=186482
<rdar://problem/40924056>

Reviewed by Zalan Bujtas.

The test was sensitive to which exact ranges the system media framework would request.

  • http/tests/cache/disk-cache/disk-cache-media-small-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-media-small.html:

Don't print out the ranges, just check they are all coming from the right source.

8:33 AM Changeset in webkit [232716] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Remove redundant position functions for out-of-flow elements
https://bugs.webkit.org/show_bug.cgi?id=186525

Reviewed by Antti Koivisto.

Position is computed as part of the Horizontal/Vertical geometry computation.
(see outOfFlow(Non)ReplacedHorizontalGeometry/outOfFlow(Non)ReplacedVerticalGeometry functions)

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowPosition const): Deleted.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::outOfFlowNonReplacedPosition): Deleted.
(WebCore::Layout::outOfFlowReplacedPosition): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowPosition): Deleted.

8:22 AM Changeset in webkit [232715] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Merge top, bottom, height and vertical margin computation for out-of-flow replaced elements
https://bugs.webkit.org/show_bug.cgi?id=186524

Reviewed by Antti Koivisto.

Implement https://www.w3.org/TR/CSS22/visudet.html#abs-replaced-height
(10.6.5 Absolutely positioned, replaced elements)

  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):

7:48 AM Changeset in webkit [232714] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC] Merge left, right, width and horizontal margin computation for out-of-flow replaced elements
https://bugs.webkit.org/show_bug.cgi?id=186475

Reviewed by Antti Koivisto.

Implement https://www.w3.org/TR/CSS22/visudet.html#abs-replaced-width
(10.3.8 Absolutely positioned, replaced elements)

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidthAndMargin const): Deleted.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::computedValueIfNotAuto):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowWidthAndMargin): Deleted.

7:41 AM Changeset in webkit [232713] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Some CSS animations tests are failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=186522

Unreviewed test gardening.

  • platform/win/TestExpectations:
7:37 AM Changeset in webkit [232712] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Merge left, right, width and horizontal margin computation for out-of-flow non-replaced elements
https://bugs.webkit.org/show_bug.cgi?id=186474

Reviewed by Antti Koivisto.

Implement https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-width
(10.3.7 Absolutely positioned, non-replaced elements)

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowHorizontalGeometry const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidthAndMargin const): Deleted.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHorizontalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedWidthAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowWidthAndMargin): Deleted.

7:27 AM Changeset in webkit [232711] by Philippe Normand
  • 3 edits
    1 add in trunk

[webkitpy] PHP7.2 support on Debian platforms
https://bugs.webkit.org/show_bug.cgi?id=186521

Reviewed by Michael Catanzaro.

Tools:

  • Scripts/webkitpy/port/base.py:

(Port._debian_php_version): Refactor and add PHP 7.2 version support.

LayoutTests:

  • http/conf/debian-httpd-2.4-php7.2.conf: Added.
7:27 AM Changeset in webkit [232710] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC] Merge top, bottom, height and vertical margin computation for out-of-flow non-replaced elements
https://bugs.webkit.org/show_bug.cgi?id=186476

Reviewed by Antti Koivisto.

Implement https://www.w3.org/TR/CSS22/visudet.html#abs-non-replaced-height
(10.6.4 Absolutely positioned, non-replaced elements)

  • layout/FormattingContext.cpp:

(WebCore::Layout::FormattingContext::computeOutOfFlowVerticalGeometry const):
(WebCore::Layout::FormattingContext::layoutOutOfFlowDescendants const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const): Deleted.

  • layout/FormattingContext.h:
  • layout/FormattingContextGeometry.cpp:

(WebCore::Layout::computedValueIfNotAuto):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowVerticalGeometry):
(WebCore::Layout::FormattingContext::Geometry::outOfFlowNonReplacedHeightAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowReplacedHeightAndMargin): Deleted.
(WebCore::Layout::FormattingContext::Geometry::outOfFlowHeightAndMargin): Deleted.

5:14 AM Changeset in webkit [232709] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.20.3

WebKitGTK+ 2.20.3

5:13 AM Changeset in webkit [232708] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.20.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.20.3.
4:31 AM Changeset in webkit [232707] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r230379 - Unreviewed, follow-up patch for DFG 32bit
https://bugs.webkit.org/show_bug.cgi?id=183970

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

4:31 AM Changeset in webkit [232706] by Carlos Garcia Campos
  • 60 edits
    4 adds in releases/WebKitGTK/webkit-2.20

Merge r230376 - [JSC] Introduce op_get_by_id_direct
https://bugs.webkit.org/show_bug.cgi?id=183970

Reviewed by Filip Pizlo.

JSTests:

  • stress/generator-prototype-copy.js: Added.

(gen):
(catch):
Adopted JF's tests.

  • stress/generator-type-check.js: Added.

(shouldThrow):
(foo2):
(i.shouldThrow):

  • stress/get-by-id-direct-getter.js: Added.

(shouldBe):
(shouldThrow):
(obj.get hello):
(builtin.createBuiltin):
(obj2.get length):

  • stress/get-by-id-direct.js: Added.

(shouldBe):
(shouldThrow):
(builtin.createBuiltin):

  • test262.yaml:

We fixed long-standing spec compatibility issue.
As a result, this patch makes several test262 tests passed!

Source/JavaScriptCore:

This patch introduces op_get_by_id_direct bytecode. This is super similar to op_get_by_id.
But it just performs GetOwnProperty? operation instead of Get?. We support this
in all the tiers, so using this opcode does not lead to inefficiency.

Main purpose of this op_get_by_id_direct is using it for private properties. We are using
properties indexed with private symbols to implement ECMAScript internal fields. Before this
patch, we just use get and put operations. However, it is not the correct semantics: accessing
to the internal fields should not traverse prototype chain, which is specified in the spec.
We use op_get_by_id_direct to access to properties which are used internal fields, so that
prototype chains are not traversed.

To emit op_get_by_id_direct, we introduce a new bytecode intrinsic @getByIdDirectPrivate().
When you write @getByIdDirectPrivate(object, "name"), the bytecode generator emits the
bytecode op_get_by_id_direct, object, @name.

  • builtins/ArrayIteratorPrototype.js:

(next):
(globalPrivate.arrayIteratorValueNext):
(globalPrivate.arrayIteratorKeyNext):
(globalPrivate.arrayIteratorKeyValueNext):

  • builtins/AsyncFromSyncIteratorPrototype.js:
  • builtins/AsyncFunctionPrototype.js:

(globalPrivate.asyncFunctionResume):

  • builtins/AsyncGeneratorPrototype.js:

(globalPrivate.asyncGeneratorQueueIsEmpty):
(globalPrivate.asyncGeneratorQueueEnqueue):
(globalPrivate.asyncGeneratorQueueDequeue):
(globalPrivate.asyncGeneratorDequeue):
(globalPrivate.isExecutionState):
(globalPrivate.isSuspendYieldState):
(globalPrivate.asyncGeneratorReject):
(globalPrivate.asyncGeneratorResolve):
(globalPrivate.doAsyncGeneratorBodyCall):
(globalPrivate.asyncGeneratorEnqueue):

  • builtins/GeneratorPrototype.js:

(globalPrivate.generatorResume):
(next):
(return):
(throw):

  • builtins/MapIteratorPrototype.js:

(next):

  • builtins/PromiseOperations.js:

(globalPrivate.isPromise):
(globalPrivate.rejectPromise):
(globalPrivate.fulfillPromise):

  • builtins/PromisePrototype.js:

(then):

  • builtins/SetIteratorPrototype.js:

(next):

  • builtins/StringIteratorPrototype.js:

(next):

  • builtins/TypedArrayConstructor.js:

(of):
(from):

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::dumpBytecode):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):
(JSC::GetByIdStatus::computeFor):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::reset):

  • bytecode/StructureStubInfo.h:

(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDirectGetById):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirect):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirectPrivate):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::hasIdentifier):
(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileGetByIdFlush):
(JSC::DFG::SpeculativeJIT::compileTryGetById): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emitSlow_op_get_by_id_direct):

  • jit/Repatch.cpp:

(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGetByIdFunction):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::appropriateGenericGetByIdFunction): Deleted.

  • jit/Repatch.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::getOwnPropertySlot const):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::getOwnPropertySlotInline):

3:29 AM Changeset in webkit [232705] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r229987 - DFG should know that CreateThis can be effectful
https://bugs.webkit.org/show_bug.cgi?id=184013

Reviewed by Saam Barati.

JSTests:

  • stress/create-this-property-change.js: Added.

(Foo):
(RealBar):
(get if):

  • stress/create-this-structure-change-without-cse.js: Added.

(Foo):
(RealBar):
(get if):

  • stress/create-this-structure-change.js: Added.

(Foo):
(RealBar):
(get if):

Source/JavaScriptCore:

As shown in the tests added in JSTests, CreateThis can be effectful if the constructor this
is a proxy.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

3:29 AM Changeset in webkit [232704] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r230119 - WebAssembly compilation from DataView

3:28 AM Changeset in webkit [232703] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r230052 - WebSocket cookie incorrectly stored
https://bugs.webkit.org/show_bug.cgi?id=184100
<rdar://problem/37928715>

Reviewed by Brent Fulgham.

Source/WebCore:

A cookie received in a WebSocket response should be stored with respect to the
origin of the WebSocket server in order for it to be sent in a subsequent request.

Also removed a FIXME about implementing support for the long since
deprecated Set-Cookie2 header.

Test: http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::processBuffer):

  • Modules/websockets/WebSocketHandshake.h:

LayoutTests:

  • http/tests/websocket/tests/hybi/cookie_wsh.py: Added. Downloaded from

<https://github.com/w3c/pywebsocket/blob/b2e1d11086fdf00b33a0d30c504f227e7d4fa86b/src/example/cookie_wsh.py>.
(_add_set_cookie):
(web_socket_do_extra_handshake):
(web_socket_transfer_data):

  • http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior-expected.txt: Added.
  • http/tests/websocket/tests/hybi/websocket-cookie-overwrite-behavior.html: Added.
3:28 AM Changeset in webkit [232702] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r230016 - Attempt to fix media control layout tests after <https://trac.webkit.org/changeset/230006/>
(https://bugs.webkit.org/show_bug.cgi?id=179983)

Exempt elements in user agent shadow DOM from having to perform a potentially CORS-
enabled fetch for a mask image to try to fix the following tests from timing out:

media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html
media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):

3:28 AM Changeset in webkit [232701] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.20

Merge r230006 - CSS mask images should be retrieved using potentially CORS-enabled fetch
https://bugs.webkit.org/show_bug.cgi?id=179983
<rdar://problem/35678149>

Reviewed by Brent Fulgham.

Source/WebCore:

As per <https://drafts.fxtf.org/css-masking-1/#priv-sec> (Editor’s Draft, 23 December 2017)
we should fetch CSS mask images using a potentially CORS-enabled fetch.

Both cross-origin CSS shape-outside images and CSS mask images may be sensitive to timing
attacks that can be used to reveal their pixel data when retrieved without regard to CORS.
For the same reason that we fetch CSS shape-outside images using a potentially CORS-enabled
fetch we should fetch CSS mask the same way. This also makes the behavior of WebKit more
closely align with the behavior in the spec.

Test: http/tests/security/css-mask-image.html

  • page/Settings.yaml: Add a setting for toggle "Anonymous" mode fetching of mask images (defaults: true).

We need this setting to avoid breaking the developer convenience feature that some modern media controls
layout tests employ to load assets from the filesystem as opposed to using the hardcoded data URLs baked
into the WebKit binary.

  • style/StylePendingResources.cpp: Substitute LoadPolicy::NoCORS and LoadPolicy::Anonymous for

LoadPolicy::Normal and LoadPolicy::ShapeOutside, respectively, to match the terminology used
in the HTML, CSS Shapes Module Level 1, and CSS Masking Module Level 1 specs.
(WebCore::Style::loadPendingImage): Ditto.
(WebCore::Style::loadPendingResources): Use load policy LoadPolicy::Anonymous when fetching
a mask image or shape-outside image.

LayoutTests:

Add a test to ensure we do not fetch a cross-origin CSS mask image that does
not allow CORS access.

  • http/tests/security/css-mask-image-expected.html: Added.
  • http/tests/security/css-mask-image.html: Added.
  • http/tests/security/resources/black-square.png: Added.
  • http/tests/security/resources/fail-mask.png: Added.
  • media/modern-media-controls/resources/media-controls-loader.js: Disable "Anonymous" mode

fetching of mask images to allow modern media controls to load mask assets from the filesystem.

3:28 AM Changeset in webkit [232700] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r229830 - Disconnect the SVGPathSegList items from their SVGPathElement before rebuilding a new list
https://bugs.webkit.org/show_bug.cgi?id=183723
<rdar://problem/38517871>

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-03-21
Reviewed by Daniel Bates.

Source/WebCore:

When setting the "d" attribute directly on a path, we rebuild the list
of path segments held for creating the property tear off. The old path
segments need to get disconnected from the path element. We already do
that when a path segment is replaced or removed.

Test: svg/dom/reuse-pathseg-after-changing-d.html

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged):

  • svg/SVGPathSegList.cpp:

(WebCore::SVGPathSegList::clear): SVGPathSegListValues::clearContextAndRoles()
will now be called from SVGPathSegListValues::clear() via SVGListProperty::clearValues().
(WebCore::SVGPathSegList::replaceItem):
(WebCore::SVGPathSegList::removeItem):
(WebCore::SVGPathSegList::clearContextAndRoles): Deleted.

  • svg/SVGPathSegList.h: SVGPathSegListValues::clearContextAndRoles() will

now be called from SVGPathSegListValues::clear() via SVGListProperty::initializeValues().

  • svg/SVGPathSegListValues.cpp:

(WebCore::SVGPathSegListValues::clearItemContextAndRole):
(WebCore::SVGPathSegListValues::clearContextAndRoles):

  • svg/SVGPathSegListValues.h:

(WebCore::SVGPathSegListValues::operator=):
(WebCore::SVGPathSegListValues::clear):

LayoutTests:

  • svg/dom/reuse-pathseg-after-changing-d-expected.txt: Added.
  • svg/dom/reuse-pathseg-after-changing-d.html: Added.
3:13 AM Changeset in webkit [232699] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_setting-effect.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183850

Unreviewed.

This test is now passing.

LayoutTests/imported/mozilla:

  • css-transitions/test_setting-effect-expected.txt:

LayoutTests:

3:10 AM Changeset in webkit [232698] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-animations/test_setting-effect.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183849

Unreviewed.

This test is now passing.

3:04 AM Changeset in webkit [232697] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-animations/test_cssanimation-animationname.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183838

Unreviewed.

This test is now passing.

2:58 AM Changeset in webkit [232696] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_csstransition-transitionproperty.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183835

Unreviewed.

This test is now passing.

2:56 AM Changeset in webkit [232695] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_animation-starttime.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183833

Unreviewed.

This test is now passing.

LayoutTests/imported/mozilla:

  • css-transitions/test_animation-starttime-expected.txt:

LayoutTests:

2:53 AM Changeset in webkit [232694] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r232151 - Unreviewed. Fix GTK+ input method unit tests after r232049.

Unit tests don't use a WebPageProxy.

  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::isViewFocused const):
(WebKit::InputMethodFilter::setEnabled):

  • UIProcess/gtk/InputMethodFilter.h:
2:53 AM Changeset in webkit [232693] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r232049 - [GTK][Wayland] UI process crash when closing the window
https://bugs.webkit.org/show_bug.cgi?id=185818

Reviewed by Michael Catanzaro.

This happens when a page containing a text field is loaded but the focus remains in the url bar when the window
is closed. This is because we are sending a notify-in to the IM context, but the focus is still in the URL
bar. That confuses the wayland input method manager that tries to free the text of the web view IM context that has
already been deleted.

  • UIProcess/gtk/InputMethodFilter.cpp:

(WebKit::InputMethodFilter::setEnabled): Only send notify-in if the view is actually focused.

2:53 AM Changeset in webkit [232692] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r232111 - [GTK] WebDriver: implement AutomationSessionClient::didDisconnectFromRemote
https://bugs.webkit.org/show_bug.cgi?id=185866

Reviewed by Brian Burg.

Source/WebDriver:

Close the dbus connection when receiving an empty target list.

  • glib/SessionHostGlib.cpp:

(WebDriver::SessionHost::setTargetList):

Source/WebKit:

To handle the case of the session being closed by the browser, for example in case of a network process
crash. This is currently causing WebDriver tests to timeout in the bot.

  • UIProcess/API/glib/WebKitAutomationSession.cpp: Add an implementation of didDisconnectFromRemote() to notify

the WebContext that the session will be closed.

  • UIProcess/API/glib/WebKitWebContext.cpp: Remove the automation session when closed.
  • UIProcess/API/glib/WebKitWebContextPrivate.h:
2:53 AM Changeset in webkit [232691] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r232066 - [GTK] WebDriver: Network process crash when running imported/w3c/webdriver/tests/delete_cookie/delete.py::test_unknown_cookie
https://bugs.webkit.org/show_bug.cgi?id=185867

Reviewed by Michael Catanzaro.

We need to null check the value returned by URL::createSoupURI() before passing it to soup.

  • platform/network/soup/CookieJarSoup.cpp:

(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):
(WebCore::getRawCookies):
(WebCore::deleteCookie):

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getCookies):

2:53 AM Changeset in webkit [232690] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Tools

Merge r232009 - [GTK] MiniBrowser crashes when loading twice quickly
https://bugs.webkit.org/show_bug.cgi?id=185763

Reviewed by Michael Catanzaro.

This is very difficult to reproduce manually, but it happens when running WebDriver tests where loads are very
fast and multiple loads are done quickly. The problem is that we use an idle to reset the progress bar, but we
don't reset it when a new load starts. We always reset the last idle on destroy, but if there's another one
leaked, it will crash when scheduled if the window has already been destroyed.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewLoadProgressChanged): Stop any pending reset task when progress != 1.

2:53 AM Changeset in webkit [232689] by Carlos Garcia Campos
  • 4 edits
    4 adds in releases/WebKitGTK/webkit-2.20

Merge r232584 - Handle Storage Access API calls in the absence of an attached frame
https://bugs.webkit.org/show_bug.cgi?id=186373
<rdar://problem/40028265>

Reviewed by Daniel Bates.

Source/WebCore:

Tests: http/tests/storageAccess/has-storage-access-crash.html

http/tests/storageAccess/request-storage-access-crash.html

The new frame-specific storage access checks were done without confirming a
frame was present, although the frame state was validated in other parts of
the same method.

This patch checks for a non-null frame before making frame-specific calls.

  • dom/Document.cpp:

(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):

LayoutTests:

  • http/tests/storageAccess/has-storage-access-crash-expected.txt: Added.
  • http/tests/storageAccess/has-storage-access-crash.html: Added.
  • http/tests/storageAccess/request-storage-access-crash-expected.txt: Added.
  • http/tests/storageAccess/request-storage-access-crash.html: Added.
  • platform/mac-wk2/TestExpectations: Add the two new tests for HighSierra+
2:41 AM Changeset in webkit [232688] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-animations/test_animation-reverse.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183832

Unreviewed.

This test is now passing.

2:37 AM Changeset in webkit [232687] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_animation-pausing.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183829

Unreviewed.

This test is now passing.

2:34 AM Changeset in webkit [232686] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_animation-finished.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183827

Unreviewed.

This test is now passing.

2:32 AM Changeset in webkit [232685] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_animation-currenttime.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183825

Unreviewed.

This test is now passing.

LayoutTests/imported/mozilla:

  • css-transitions/test_animation-currenttime-expected.txt:

LayoutTests:

2:29 AM Changeset in webkit [232684] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Unreviewed. Remove PRIVATE keyword added in r232676.

  • CMakeLists.txt:
2:29 AM Changeset in webkit [232683] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r232663 - REGRESSION (r230480): Cannot adjust photo position on LinkedIn's profile page
https://bugs.webkit.org/show_bug.cgi?id=186464
<rdar://problem/40369448>

Reviewed by Simon Fraser.

Source/WebCore:

The optimization logic for skipping image layout when we only need overflow computation should check if the image actually needs
simplified layout only. The needsSimplifiedNormalFlowLayout() flag means that the overflow information needs to be updated but
it does not mean that overflow is the only property that we need to recompute.

Test: fast/images/positioned-image-when-transform-is-present.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layout):

  • rendering/RenderObject.h:

(WebCore::RenderObject::needsSimplifiedNormalFlowLayoutOnly const):

LayoutTests:

  • fast/images/positioned-image-when-transform-is-present-expected.html: Added.
  • fast/images/positioned-image-when-transform-is-present.html: Added.
2:28 AM Changeset in webkit [232682] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-animations/test_animation-id.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183824

Unreviewed.

This test has been passing reliably on the bots.

2:26 AM Changeset in webkit [232681] by graouts@webkit.org
  • 4 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-transitions/test_animation-computed-timing.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183823

Unreviewed.

This test is now passing.

LayoutTests/imported/mozilla:

  • css-transitions/test_animation-computed-timing-expected.txt:

LayoutTests:

2:22 AM Changeset in webkit [232680] by graouts@webkit.org
  • 2 edits in trunk/LayoutTests

[Web Animations] Make imported/mozilla/css-animations/test_animation-finished.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183822

Unreviewed.

This test has been passing reliably on the bots.

2:20 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
2:19 AM Changeset in webkit [232679] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

Merge r232667 - [WPE][GTK] paypal.com requires user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=186466

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

2:19 AM Changeset in webkit [232678] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r232618 - [GTK][WPE] Wrong result when calling ImageBufferCairo's getImageData()
https://bugs.webkit.org/show_bug.cgi?id=186384

Reviewed by Michael Catanzaro.

Fix calculations so the result is the expected one.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::getImageData):

2:19 AM Changeset in webkit [232677] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r232397 - [GTK] Crash in WebKitFaviconDatabase when pageURL is unset
https://bugs.webkit.org/show_bug.cgi?id=186164

Reviewed by Carlos Garcia Campos.

PageURL can legitimately be null here if JavaScript does something silly with window.open.

  • UIProcess/API/glib/WebKitFaviconDatabase.cpp:

(webkitFaviconDatabaseSetIconURLForPageURL):
(webkitFaviconDatabaseSetIconForPageURL):

2:03 AM Changeset in webkit [232676] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.20

Merge r232067 - [CMake] Properly detect compiler flags, needed libs, and fallbacks for usage of 64-bit atomic operations
https://bugs.webkit.org/show_bug.cgi?id=182622
<rdar://problem/40292317>

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/WebKitCompilerFlags.cmake:

Move the test to detect whether we need to link against libatomic
to a common CMake file so it can be used from both JavaScriptCore
and WebKit.

Source/JavaScriptCore:

We were linking JavaScriptCore against libatomic in MIPS because
in that architecture atomic_fetch_add_8() is not a compiler
intrinsic and is provided by that library instead. However other
architectures (e.g armel) are in the same situation, so we need a
generic test.

That test already exists in WebKit/CMakeLists.txt, so we just have
to move it to a common file (WebKitCompilerFlags.cmake) and use
its result (ATOMIC_INT64_REQUIRES_LIBATOMIC) here.

  • CMakeLists.txt:

Source/WebKit:

Move the test to determine whether we need to link against
libatomic to the common file WebKitCompilerFlags.cmake so it can
also be used for JavaScriptCore.

  • CMakeLists.txt:
2:03 AM Changeset in webkit [232675] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20

Merge r232062 - Unreviewed, rolling out r231843.

Broke cross build

Reverted changeset:

"[CMake] Properly detect compiler flags, needed libs, and
fallbacks for usage of 64-bit atomic operations"
https://bugs.webkit.org/show_bug.cgi?id=182622
https://trac.webkit.org/changeset/231843

2:03 AM Changeset in webkit [232674] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/bmalloc

Merge r232059 - Define GIGACAGE_ALLOCATION_CAN_FAIL on Linux
https://bugs.webkit.org/show_bug.cgi?id=183329

Reviewed by Michael Catanzaro.

We specify GIGACAGE_ALLOCATION_CAN_FAIL 1 in Linux since
Linux can fail to mmap if vm.overcommit_memory = 2.
Users can enable Gigacage if users enable overcommit_memory.

  • bmalloc/Gigacage.h:
2:03 AM Changeset in webkit [232673] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20

Merge r231631 - [GTK] gtk-doc installation subdir duplicated
https://bugs.webkit.org/show_bug.cgi?id=185468

Patch by Jan Alexander Steffens <jan.steffens@gmail.com> on 2018-05-09
Reviewed by Carlos Garcia Campos.

The GTK docs are installed into a duplicated subdir,
e.g. /usr/share/doc/gtk-doc/html/webkit2gtk-4.0/webkit2gtk-4.0.

  • Source/PlatformGTK.cmake:
1:13 AM Changeset in webkit [232672] by Carlos Garcia Campos
  • 5 edits in trunk/Tools

Unreviewed. Fix WPE API and layout tests after r232670.

Now that dyz is not installed, there's not -default.so symlink for the WPE backend, so we need to use
WPE_BACKEND_LIBRARY environment variable to ensure tests are run with fdo backend.

  • Scripts/run-wpe-tests:

(WPETestRunner.init):
(WPETestRunner):
(WPETestRunner.setup_testing_environment):

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.setup_environ_for_server):

  • glib/api_test_runner.py:

(TestRunner.setup_testing_environment):
(TestRunner.run_tests):
(TestRunner._setup_testing_environment): Deleted.

12:26 AM Changeset in webkit [232671] by Carlos Garcia Campos
  • 23 edits in trunk

[GTK][WPE] Add API run run javascript from a WebKitWebView in an isolated world
https://bugs.webkit.org/show_bug.cgi?id=186192

Reviewed by Michael Catanzaro.

Source/WebCore:

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld): Add ExceptionDetails parameter.

  • bindings/js/ScriptController.h:

Source/WebKit:

Add webkit_web_view_run_javascript_in_world() that receives a world name. Also add
webkit_script_world_new_with_name() to create an isolated world with a name and webkit_script_world_get_name()
to get the name of a WebKitScriptWorld.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_run_javascript):
(webkit_web_view_run_javascript_finish):
(webkit_web_view_run_javascript_in_world):
(webkit_web_view_run_javascript_in_world_finish):

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt: Add new symbols.
  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runJavaScriptInMainFrameScriptWorld): Send RunJavaScriptInMainFrameScriptWorld message to
the WebProcess.

  • UIProcess/WebPageProxy.h:
  • WebProcess/InjectedBundle/API/glib/WebKitScriptWorld.cpp:

(webkitScriptWorldCreate):
(webkit_script_world_new_with_name):
(webkit_script_world_get_name):

  • WebProcess/InjectedBundle/API/gtk/WebKitScriptWorld.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitScriptWorld.h:
  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:

(WebKit::InjectedBundleScriptWorld::find): Find an InjectedBundleScriptWorld by its name.

  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrameScriptWorld): Find the InjectedBundleScriptWorld for the given name
and run the script in its js context.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add RunJavaScriptInMainFrameScriptWorld message.

Tools:

Add tests cases for the new API.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewRunJavaScript):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(methodCallCallback):
(webkit_web_extension_initialize_with_user_data):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(runJavaScriptInWorldReadyCallback):
(WebViewTest::runJavaScriptFromGResourceAndWaitUntilFinished):
(WebViewTest::runJavaScriptInWorldAndWaitUntilFinished):

  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.h:

Jun 10, 2018:

11:43 PM Changeset in webkit [232670] by Carlos Garcia Campos
  • 20 edits
    2 copies
    10 adds
    1 delete in trunk

[WPE] Add a MiniBrowser and use it to run WebDriver tests
https://bugs.webkit.org/show_bug.cgi?id=186345

Reviewed by Žan Doberšek.

.:

Add an option to enable building the MiniBrowser.

  • Source/cmake/FindWaylandProtocols.cmake: Added.
  • Source/cmake/OptionsWPE.cmake:

Source/WebDriver:

Use MiniBrowser instead of dyz as the default WebDriver browser for WPE.

  • wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformParseCapabilities const):

Tools:

Most of the code is based on dyz and gtk MiniBrowser. This patch adds a new internal library WPEToolingBackends,
including the headless view backend and a new window backend to be used by the MiniBrowser. MiniBrowser can also
run in headless mode, by using the headless backend instead of the window one, which will allow us to run the
WebDriver tests in the bots.

  • CMakeLists.txt:
  • MiniBrowser/wpe/CMakeLists.txt: Added.
  • MiniBrowser/wpe/main.cpp: Added.

(automationStartedCallback):
(createViewBackend):
(main):

  • Scripts/run-minibrowser: Remove WPE specific code.
  • Scripts/run-webdriver-tests: Add headless display-server option.
  • Scripts/webkitdirs.pm:

(launcherName): Remove WPE specific code.

  • Scripts/webkitpy/webdriver_tests/webdriver_driver_wpe.py:

(WebDriverWPE.browser_name): Return MiniBrowser.
(WebDriverWPE.browser_path): Return the path to the MiniBrowser in build dir.
(WebDriverWPE.browser_args): Add --headless when running in headless mode.
(WebDriverWPE.capabilities): Use the full browser path.

  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_selenium.py:

(WebDriverTestRunnerSelenium.collect_tests): Fix early return value.

  • TestWebKitAPI/PlatformWPE.cmake: Use WPEToolingBackends instead of HeadlessViewBackend.
  • TestWebKitAPI/PlatformWebView.h: Ditto.
  • TestWebKitAPI/glib/PlatformWPE.cmake: Ditto
  • TestWebKitAPI/glib/WebKitGLib/TestMain.h:

(Test::createWebViewBackend): Ditto.

  • TestWebKitAPI/wpe/PlatformWebViewWPE.cpp:

(TestWebKitAPI::PlatformWebView::initialize): Ditto.

  • WebKitTestRunner/PlatformWPE.cmake: Ditto.
  • WebKitTestRunner/PlatformWebView.h: Ditto.
  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::PlatformWebView): Ditto.

  • wpe/HeadlessViewBackend/CMakeLists.txt: Removed.
  • wpe/backends/CMakeLists.txt: Added.
  • wpe/backends/HeadlessViewBackend.cpp: Renamed from Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.cpp.

(WPEToolingBackends::getEGLDisplay):
(WPEToolingBackends::HeadlessViewBackend::HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::~HeadlessViewBackend):
(WPEToolingBackends::HeadlessViewBackend::createSnapshot):
(WPEToolingBackends::HeadlessViewBackend::performUpdate):
(WPEToolingBackends::HeadlessViewBackend::displayBuffer):

  • wpe/backends/HeadlessViewBackend.h: Renamed from Tools/wpe/HeadlessViewBackend/HeadlessViewBackend.h.
  • wpe/backends/ViewBackend.cpp: Added.

(WPEToolingBackends::ViewBackend::ViewBackend):
(WPEToolingBackends::ViewBackend::~ViewBackend):
(WPEToolingBackends::ViewBackend::initialize):
(WPEToolingBackends::ViewBackend::setInputClient):
(WPEToolingBackends::ViewBackend::backend const):
(WPEToolingBackends::ViewBackend::dispatchInputPointerEvent):
(WPEToolingBackends::ViewBackend::dispatchInputAxisEvent):
(WPEToolingBackends::ViewBackend::dispatchInputKeyboardEvent):

  • wpe/backends/ViewBackend.h: Added.
  • wpe/backends/WindowViewBackend.cpp: Added.

(WPEToolingBackends::WindowViewBackend::WindowViewBackend):
(WPEToolingBackends::WindowViewBackend::~WindowViewBackend):
(WPEToolingBackends::WindowViewBackend::displayBuffer):
(WPEToolingBackends::WindowViewBackend::handleKeyEvent):

  • wpe/backends/WindowViewBackend.h: Added.
  • wpe/jhbuild.modules: Remove dyz and add wayland-protocols.
7:44 PM Changeset in webkit [232669] by Fujii Hironori
  • 17 edits
    2 moves in trunk/Tools

[Win][MiniBrowser] MiniBrowser class should be renamed to WebKitLegacyBrowserWindow
https://bugs.webkit.org/show_bug.cgi?id=186427

Reviewed by Ryosuke Niwa.

  • MiniBrowser/win/AccessibilityDelegate.cpp:
  • MiniBrowser/win/AccessibilityDelegate.h:

(AccessibilityDelegate::AccessibilityDelegate):

  • MiniBrowser/win/CMakeLists.txt: Removed MiniBrowser.cpp. Added WebKitLegacyBrowserWindow.cpp.
  • MiniBrowser/win/Common.h:
  • MiniBrowser/win/MainWindow.cpp:

(MainWindow::init):

  • MiniBrowser/win/MainWindow.h:
  • MiniBrowser/win/MiniBrowserWebHost.cpp:
  • MiniBrowser/win/MiniBrowserWebHost.h:

(MiniBrowserWebHost::MiniBrowserWebHost):

  • MiniBrowser/win/PageLoadTestClient.cpp:

(PageLoadTestClient::PageLoadTestClient):

  • MiniBrowser/win/PageLoadTestClient.h:
  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(PrintWebUIDelegate::createWebViewWithRequest):

  • MiniBrowser/win/PrintWebUIDelegate.h:

(PrintWebUIDelegate::PrintWebUIDelegate):

  • MiniBrowser/win/ResourceLoadDelegate.cpp:
  • MiniBrowser/win/ResourceLoadDelegate.h:

(ResourceLoadDelegate::ResourceLoadDelegate):

  • MiniBrowser/win/WebKitLegacyBrowserWindow.cpp: Renamed from Tools/MiniBrowser/win/MiniBrowser.cpp.
  • MiniBrowser/win/WebKitLegacyBrowserWindow.h: Renamed from Tools/MiniBrowser/win/MiniBrowser.h.
  • MiniBrowser/win/WebDownloadDelegate.cpp:

(WebDownloadDelegate::WebDownloadDelegate):

  • MiniBrowser/win/WebDownloadDelegate.h:
3:39 PM Changeset in webkit [232668] by Chris Dumez
  • 12 edits in trunk

Reload the Web view in case of crash if the client does not implement webViewWebContentProcessDidTerminate delegate
https://bugs.webkit.org/show_bug.cgi?id=186468

Reviewed by Geoffrey Garen.

Source/WebKit:

We now attempt to reload the Web view if the web content process crashes and the client
does not implement the webViewWebContentProcessDidTerminate delegate (or any of the similar
delegates in our SPI).

  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::processDidCrash):

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::processDidTerminate):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageLoaderClient):
(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/glib/WebKitNavigationClient.cpp:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::processDidTerminate):

  • UIProcess/WebPageProxy.cpp:

(WebKit::m_resetRecentCrashCountTimer):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::shouldReloadAfterProcessTermination):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):
(WebKit::WebPageProxy::tryReloadAfterProcessTermination):
(WebKit::WebPageProxy::resetRecentCrashCountSoon):
(WebKit::WebPageProxy::resetRecentCrashCount):
(WebKit::m_configurationPreferenceValues): Deleted.

  • UIProcess/WebPageProxy.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm:

(-[BasicNavigationDelegateWithoutCrashHandler webView:didStartProvisionalNavigation:]):
(-[BasicNavigationDelegateWithoutCrashHandler webView:didFinishNavigation:]):
(TEST):

9:12 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
2:23 AM Changeset in webkit [232667] by Michael Catanzaro
  • 4 edits in trunk

[WPE][GTK] paypal.com requires user agent quirk
https://bugs.webkit.org/show_bug.cgi?id=186466

Reviewed by Carlos Garcia Campos.

Source/WebCore:

  • platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresMacintoshPlatform):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):

12:36 AM Changeset in webkit [232666] by Yusuke Suzuki
  • 6 edits
    1 delete in trunk

[JSC] Array.prototype.sort should rejects null comparator
https://bugs.webkit.org/show_bug.cgi?id=186458

Reviewed by Keith Miller.

JSTests:

  • ChakraCore/test/Array/array_sort.baseline-jsc:
  • stress/array-sort-bad-comparator.js:

(test):

  • stress/sort-null-comparator.js: Removed.
  • test262/expectations.yaml:

Source/JavaScriptCore:

This relaxed behavior is once introduced in r216169 to fix some pages by aligning
the behavior to Chrome and Firefox.

However, now Chrome, Firefox and Edge reject a null comparator. So only JavaScriptCore
accepts it. This patch reverts r216169 to align JSC to the other engines and fix
the spec issue.

  • builtins/ArrayPrototype.js:

(sort):

Note: See TracTimeline for information about the timeline view.