Timeline



Mar 6, 2018:

10:44 PM Changeset in webkit [229354] by mark.lam@apple.com
  • 20 edits
    1 add in trunk/Source

Prepare LLInt code to support pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183387
<rdar://problem/38199678>

Reviewed by JF Bastien.

Source/JavaScriptCore:

  1. Introduced PtrTag enums for supporting pointer profiling later.
  1. Also introduced tagging, untagging, retagging, and tag removal placeholder template functions for the same purpose.
  1. Prepare the offlineasm for supporting pointer profiling later.
  1. Tagged some pointers in LLInt asm code. Currently, these should have no effect on behavior.
  1. Removed returnToThrowForThrownException() because it is not used anywhere.
  1. Added the offlineasm folder to JavaScriptCore Xcode project so that it's easier to view and edit these files in Xcode.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/LLIntCallLinkInfo.h:

(JSC::LLIntCallLinkInfo::unlink):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:
  • llint/LLIntExceptions.cpp:

(JSC::LLInt::returnToThrowForThrownException): Deleted.

  • llint/LLIntExceptions.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntPCRanges.h:

(JSC::LLInt::isLLIntPC):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/ast.rb:
  • offlineasm/instructions.rb:
  • offlineasm/risc.rb:
  • runtime/PtrTag.h: Added.

(JSC::uniquePtrTagID):
(JSC::ptrTag):
(JSC::tagCodePtr):
(JSC::untagCodePtr):
(JSC::retagCodePtr):
(JSC::removeCodePtrTag):

Source/WTF:

  • wtf/Platform.h:
9:17 PM Changeset in webkit [229353] by BJ Burg
  • 2 edits in trunk/Source/WebCore

[Cocoa] Stop copying ForwardingHeaders directory that no longer exists
https://bugs.webkit.org/show_bug.cgi?id=183396

Reviewed by Dan Bernstein.

  • WebCore.xcodeproj/project.pbxproj:

Rename the phase to "Copy ICU Headers". ForwardingHeaders are no longer a thing.

7:06 PM Changeset in webkit [229352] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html and related tests on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183393

Unreviewed test gardening.

  • platform/win/TestExpectations:
6:08 PM Changeset in webkit [229351] by Ross Kirsling
  • 1 edit
    5861 adds in trunk/LayoutTests

[WinCairo] Unreviewed. Add platform-specific expectations.

Individual filenames are omitted for brevity.

  • platform/wincairo/accessibility/: Added.
  • platform/wincairo/animations/: Added.
  • platform/wincairo/css1/: Added.
  • platform/wincairo/css2.1/: Added.
  • platform/wincairo/css3/: Added.
  • platform/wincairo/editing/: Added.
  • platform/wincairo/fast/: Added.
  • platform/wincairo/fonts/: Added.
  • platform/wincairo/ietestcenter/: Added.
  • platform/wincairo/js/: Added.
  • platform/wincairo/mathml/: Added.
  • platform/wincairo/media/: Added.
  • platform/wincairo/plugins/: Added.
  • platform/wincairo/printing/: Added.
  • platform/wincairo/scrollbars/: Added.
  • platform/wincairo/svg/: Added.
  • platform/wincairo/tables/: Added.
  • platform/wincairo/transforms/: Added.
  • platform/wincairo/transitions/: Added.
6:05 PM Changeset in webkit [229350] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

5:15 PM Changeset in webkit [229349] by commit-queue@webkit.org
  • 10 edits
    3 adds in trunk

didReceiveServerRedirectForProvisionalNavigation is not called in case of document redirection with service worker registration change
https://bugs.webkit.org/show_bug.cgi?id=183299
<rdar://problem/37547029>

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-06
Reviewed by Alex Christensen.

Source/WebCore:

In case of redirection with service worker registration change, we cancel the load and create a new one.
This prevent ResourceLoader::willSendRequestInternal to call the didReceiveServerRedirectForProvisionalNavigation
callback. We thus explictly call this callback after restarting the load with the new service worker step.
We only call this callback if the main resource is there as we do not want to call it if it was blocked by content extension.

Test: http/wpt/service-workers/navigation-redirect-main-frame.https.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::restartLoadingDueToServiceWorkerRegistrationChange):

Tools:

Add support for checking whether this callback is called.
Used in the added layout test.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestRunner::clearDidReceiveServerRedirectForProvisionalNavigation):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didReceiveServerRedirectForProvisionalNavigation):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::didReceiveServerRedirectForProvisionalNavigation const):
(WTR::TestController::clearDidReceiveServerRedirectForProvisionalNavigation):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/wpt/service-workers/navigation-redirect-main-frame-worker.js: Added.
  • http/wpt/service-workers/navigation-redirect-main-frame.https-expected.txt: Added.
  • http/wpt/service-workers/navigation-redirect-main-frame.https.html: Added.
5:02 PM Changeset in webkit [229348] by Chris Dumez
  • 2 edits in trunk/LayoutTests

http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=183390

Unreviewed, temporarily mark the test as flaky while I investigate.

  • platform/mac-wk1/TestExpectations:
4:32 PM Changeset in webkit [229347] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[Curl] Remove unnecessary copied ResourceRequest member variable.
https://bugs.webkit.org/show_bug.cgi?id=183010

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-03-06
Reviewed by Youenn Fablet.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::resourceRequest const):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::addCacheValidationHeaders):
(WebCore::ResourceHandle::createCurlRequest):
(WebCore::ResourceHandle::restartRequestWithCredential):
(WebCore::ResourceHandle::continueAfterWillSendRequest):

3:26 PM Changeset in webkit [229346] by pvollan@apple.com
  • 1 edit
    1 move in trunk/LayoutTests

Unreviewed, fixed incorrect name of test expectation file.

  • platform/win/fast/text/combining-enclosing-keycap-expected.txt: Copied from LayoutTests/platform/win/fast/text/combining-enclosing-keycap.txt.
  • platform/win/fast/text/combining-enclosing-keycap.txt: Removed.
3:19 PM Changeset in webkit [229345] by Kocsen Chung
  • 3 edits in tags/Safari-606.1.7/Source/WebKit

Revert r229093. rdar://problem/38197270

2:49 PM Changeset in webkit [229344] by n_wang@apple.com
  • 5 edits in trunk

AX: Flaky test after r229310
https://bugs.webkit.org/show_bug.cgi?id=183376
<rdar://problem/38188685>

Reviewed by Chris Fleizach.

Source/WebCore:

The test that forces the context menu to show sometimes locks up
the test runner. Also, we missed a case where calling AXShowMenu
action on a combobox is not dispatching the accessibility event.

Using the combobox example to test the event dispatching in order to
avoid the test hang.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityPerformShowMenuAction]):
(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

LayoutTests:

  • accessibility/mac/AOM-events-all-expected.txt:
  • accessibility/mac/AOM-events-all.html:
2:49 PM Changeset in webkit [229343] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

NetworkDataTask should enable logging for automation clients
https://bugs.webkit.org/show_bug.cgi?id=183378
<rdar://problem/38189556>

Reviewed by Brian Burg.

The NetworkDataTaskCocoa class was only logging if the SessionID object allowed logging.
It should also be considering whether the current session is working on behalf of an
automation client. If so, it should allow logging.

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const):

2:41 PM Changeset in webkit [229342] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/ios/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController _EVOrganizationName]):

2:01 PM Changeset in webkit [229341] by Chris Dumez
  • 20 edits
    2 copies
    4 adds in trunk

fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183345

Reviewed by Alex Christensen.

Source/WebCore:

FrameLoader::loadURL() was calling loadWithNavigationAction() and then resetting the
m_quickRedirectComing flag right after. This works if the navigation policy decision
triggered by loadWithNavigationAction() is made synchronously. However, when it is
made asynchronously, the flag gets reset too early, before the policy decision
handler has been called. This is an issue because the policy decision handler
relies on the m_quickRedirectComing flag.

Similarly, FrameLoader::loadFrameRequest() was calling loadPostRequest() / loadURL()
and then focusing a frame right after. This does not work as intended when the navigation
policy decision is made asynchronously.

To address the issue, we now pass a completion handler that gets called when the operation
has actually completion, after the policy decision has been made. This maintains the
behavior in place with synchronous policy delegates.

Test: fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/FrameLoader.h:

Tools:

Add layout test infrastructure so a test can know when didCancelClientRedirectForFrame has
been called. The tests used to rely on a 0-timer but this does not work when the client
responds to the navigation policy asynchronously.

  • DumpRenderTree/TestRunner.cpp:

(getDidCancelClientRedirect):
(TestRunner::staticValues):

  • DumpRenderTree/TestRunner.h:

(TestRunner::didCancelClientRedirect const):
(TestRunner::setDidCancelClientRedirect):

  • DumpRenderTree/mac/FrameLoadDelegate.mm:

(-[FrameLoadDelegate webView:didCancelClientRedirectForFrame:]):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didCancelClientRedirectForFrame):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::didCancelClientRedirect const):
(WTR::TestRunner::setDidCancelClientRedirect):

LayoutTests:

  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates.html: Added.

Add layout test coverage.

  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html:
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
  • fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html:
  • fast/loader/window-open-to-invalid-url-disallowed-expected.txt:
  • fast/loader/window-open-to-invalid-url-disallowed.html:
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-javascript-disallowed-expected.txt:
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-async-delegates-expected.txt: Added.
  • platform/mac-wk1/fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed-expected.txt:
  • platform/mac-wk1/fast/loader/window-open-to-invalid-url-disallowed-expected.txt:

Update tests that were relying on a 0-timer to make sure that didCancelClientRedirectForFrame was
called to rely on our new test infrastructure instead. This is needed so that these tests keep passing
once we make policy delegates asynchronous by default. Without this, the didCancelClientRedirectForFrame lines
would be missing in the tests' output.

1:27 PM Changeset in webkit [229340] by commit-queue@webkit.org
  • 9 edits
    3 adds in trunk/Source/WebCore

[Web Animations] Add a new CSSTransition subclass of WebAnimation
https://bugs.webkit.org/show_bug.cgi?id=183373
<rdar://problem/38181985>

Patch by Antoine Quint <Antoine Quint> on 2018-03-06
Reviewed by Dean Jackson.

Adding a new CSSAnimation subclass which we will create in a later patch while resolving styles
upon identifying that a new CSS Animation has been added to an element.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSTransition.cpp: Added.

(WebCore::CSSTransition::create):
(WebCore::CSSTransition::CSSTransition):

  • animation/CSSTransition.h: Added.
  • animation/CSSTransition.idl: Added.
  • animation/KeyframeEffect.cpp:
  • animation/WebAnimation.h:

(WebCore::WebAnimation::isCSSTransition const):

  • bindings/js/JSWebAnimationCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/WebCoreBuiltinNames.h:
1:00 PM Changeset in webkit [229339] by Kocsen Chung
  • 7 edits in branches/safari-605.1.33.2-branch/Source

Versioning.

12:53 PM Changeset in webkit [229338] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

Unreviewed, rolling out r229330.
https://bugs.webkit.org/show_bug.cgi?id=183379

Broke some Apple internal code (Requested by ap on #webkit).

Reverted changeset:

"Remove unused crash hook functionality"
https://bugs.webkit.org/show_bug.cgi?id=183369
https://trac.webkit.org/changeset/229330

12:47 PM Changeset in webkit [229337] by Kocsen Chung
  • 1 copy in branches/safari-605.1.33.2-branch

New branch.

12:20 PM Changeset in webkit [229336] by Megan Gardner
  • 4 edits
    2 adds in trunk/Source/WebCore

Ensure system appearance is default for web content
https://bugs.webkit.org/show_bug.cgi?id=183354
<rdar://problem/36975571>
<rdar://problem/38162381>

Make sure the the system appearance for web content is default, and
consolidate that code to a single class.

Reviewed by Tim Horton.

Not currently testable, will add tests in a future patch.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mac/LocalDefaultSystemAppearance.h: Added.
  • platform/mac/LocalDefaultSystemAppearance.mm: Added.

(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
(WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):

  • platform/mac/ThemeMac.mm:

(-[WebCoreThemeView init]):
(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

12:12 PM Changeset in webkit [229335] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Service worker test gardening
https://bugs.webkit.org/show_bug.cgi?id=183264
<rdar://problem/38048743>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-06

11:50 AM Changeset in webkit [229334] by commit-queue@webkit.org
  • 10 edits in trunk/Source

[Web Animations] Add a new runtime flag to control whether CSS Animations and CSS Transitions should run using the Web Animations timeline
https://bugs.webkit.org/show_bug.cgi?id=183370
<rdar://problem/38180729>

Patch by Antoine Quint <Antoine Quint> on 2018-03-06
Reviewed by Dean Jackson.

Before we start creating WebAnimation objects to perform CSS Animations and CSS Transitions, which will replace the existing codepath
involving CSSAnimationController and CompositeAnimation, we need a runtime flag that will allow all the new code to be turned off by
default while we bring this feature up.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):
(WebCore::RuntimeEnabledFeatures::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled const):

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):
(WKPreferencesGetCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled:]):
(-[WKPreferences _cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
(WebKit::InjectedBundle::setCSSAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):

  • WebProcess/InjectedBundle/InjectedBundle.h:
11:46 AM Changeset in webkit [229333] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Make more use of USE(OPENGL_ES) and replace typedefs with C++11 using statements
in TextureCacheCV.h

Rubber-stamped by Tim Horton.

  • platform/graphics/cv/TextureCacheCV.h:
11:41 AM Changeset in webkit [229332] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Cache hasComplexSelectorsForStyleAttribute bit
https://bugs.webkit.org/show_bug.cgi?id=183363

Reviewed by Andreas Kling.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::collectFeatures const):
(WebCore::DocumentRuleSets::hasComplexSelectorsForStyleAttribute const):

Cache the bit to avoid hash lookups.

  • css/DocumentRuleSets.h:
  • dom/StyledElement.cpp:

(WebCore::StyledElement::invalidateStyleAttribute):
(WebCore::shouldSynchronizeStyleAttributeImmediatelyForInvalidation): Deleted.

Move code to DocumentRuleSets.

11:14 AM Changeset in webkit [229331] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Assembler warnings: "use of r13 is deprecated"
https://bugs.webkit.org/show_bug.cgi?id=183286

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-06
Reviewed by Mark Lam.

Usage of sp/r13 as operand Rm is deprecated on ARM. offlineasm
sometimes generates assembly code that triggers this warning. Prevent
this by simply switching operands.

  • offlineasm/arm.rb:
11:10 AM Changeset in webkit [229330] by Michael Catanzaro
  • 3 edits in trunk/Source/WTF

Remove unused crash hook functionality
https://bugs.webkit.org/show_bug.cgi?id=183369

Reviewed by Alexey Proskuryakov.

WTFSetCrashHook and WTFInstallReportBacktraceOnCrashHook are not used on any platforms and
can be removed.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
10:48 AM Changeset in webkit [229329] by Kocsen Chung
  • 2 edits in tags/Safari-606.1.7/Source/JavaScriptCore

Cherry-pick r229293. rdar://problem/38179753

10:35 AM Changeset in webkit [229328] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Change the type of SVGToOTFFontConverter::m_weight to be not a char
https://bugs.webkit.org/show_bug.cgi?id=183339

Reviewed by Alex Christensen.

No new tests because there is no behavior change.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

10:34 AM Changeset in webkit [229327] by graouts@webkit.org
  • 10 edits
    3 copies in trunk/Source/WebCore

[Web Animations] Add a new CSSAnimation subclass of WebAnimation
https://bugs.webkit.org/show_bug.cgi?id=183371
<rdar://problem/38181724>

Reviewed by Dean Jackson.

Adding a new CSSAnimation subclass which we will create in a later patch while resolving styles
upon identifying that a new CSS Animation has been added to an element.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/CSSAnimation.cpp: Added.

(WebCore::CSSAnimation::create):
(WebCore::CSSAnimation::CSSAnimation):

  • animation/CSSAnimation.h: Added.
  • animation/CSSAnimation.idl: Added.
  • animation/KeyframeEffectReadOnly.cpp
  • animation/WebAnimation.h:

(WebCore::WebAnimation::isCSSAnimation const):

  • animation/WebAnimation.idl:
  • bindings/js/JSWebAnimationCustom.cpp:

(WebCore::toJSNewlyCreated):
(WebCore::toJS):

  • bindings/js/WebCoreBuiltinNames.h:
10:02 AM Changeset in webkit [229326] by Claudio Saavedra
  • 1 edit
    1 add in trunk/LayoutTests

[GTK] Add new baseline after r229177

Unreviewed gardening.

This baseline is needed because our mimetype database recognizes
the type of the file in the test and therefore the extension gets
added to the downloaded file.

  • platform/gtk/fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
9:38 AM Changeset in webkit [229325] by zandobersek@gmail.com
  • 3 edits in trunk/Tools

REGRESSION(r229309): s_exceptionInstructions allocation change causing crashes in LLInt on WPE
https://bugs.webkit.org/show_bug.cgi?id=183366

Reviewed by Michael Catanzaro.

Have the TestRunnerInjectedBundle CMake library link against libraries
in the WebKitTestRunnerInjectedBundle_LIBRARIES list, and not the
WebKitTestRunner_LIBRARIES list, which is used for the WebKitTestRunner
executable. This allows narrowing down the libraries to only those that
are necessary for the injected bundle shared object.

The GTK+ port already has this list specified, adding one for the WPE
port.

  • WebKitTestRunner/CMakeLists.txt:

Link the TestRunnerInjectedBundle library against the libraries in the
WebKitTestRunnerInjectedBundle_LIBRARIES list.

  • WebKitTestRunner/PlatformWPE.cmake:

Specify the WebKitTestRunnerInjectedBundle_LIBRARIES list, including the
basic system dependencies, WebCoreTestSupport and WebKit. This follows
the GTK+ port.

9:38 AM Changeset in webkit [229324] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix incorrect assertion after r229309
https://bugs.webkit.org/show_bug.cgi?id=182975

  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::TypeProfilerLog):

9:10 AM Changeset in webkit [229323] by Ms2ger@igalia.com
  • 3 edits in trunk/Source/WebCore

Explicitly qualify some method calls on this in lambdas in Service Worker code.
https://bugs.webkit.org/show_bug.cgi?id=183367

Reviewed by Chris Dumez.

No new tests -- no change in behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::matchAll):

8:35 AM Changeset in webkit [229322] by pvollan@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

  • platform/win/fast/text/combining-enclosing-keycap.txt: Added.
5:47 AM Changeset in webkit [229321] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] Mark a few Wayland tests as failing

Unreviewed gardening

  • platform/gtk-wayland/TestExpectations:
5:30 AM Changeset in webkit [229320] by Ms2ger@igalia.com
  • 2 edits in trunk/Source/WebKit

[GLib] Implement WebsiteDataStore::defaultServiceWorkerRegistrationDirectory().
https://bugs.webkit.org/show_bug.cgi?id=183364

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/APIWebsiteDataStoreGLib.cpp:

(API::WebsiteDataStore::defaultServiceWorkerRegistrationDirectory): implement.

4:17 AM Changeset in webkit [229319] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed. Addressing further review feedback for patch landed in r229315.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::commitSceneState): There's no need for
explicit calls of the clear() method on both containers in the CommitScope
objects, the destructors invoked for these objects from the CommitScope
destructor will have the same effect.

4:12 AM Changeset in webkit [229318] by zandobersek@gmail.com
  • 20 edits in trunk/Source

[CoordGraphics] Remove unused scrolling-related code in TextureMapperLayer, CoordinatedGraphics stack
https://bugs.webkit.org/show_bug.cgi?id=183340

Reviewed by Michael Catanzaro.

Source/WebCore:

TextureMapperLayer::scrollBy() method is completely unused and can be
removed. This opens the gates on removing majority of scrolling-related
code in TextureMapperLayer, CoordinatedGraphicsLayer and
CoordinatedGraphicsScene classes, along with smaller bits in other
closely-associated classes.

We're able to remove two virtual method overrides in the
ScrollingCoordinatorCoordinatedGraphics class.

TextureMapperLayer can drop the ScrollingClient member variable, along
with multiple others. Various unused methods in that class are removed
as well.

CoordinatedGraphicsLayer and GraphicsLayerTextureMapper can both remove
the custom scrolling state tracking.

No new tests -- no change in behavior.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange): Deleted.
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea): Deleted.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
(WebCore::GraphicsLayerTextureMapper::didCommitScrollOffset): Deleted.
(WebCore::GraphicsLayerTextureMapper::setIsScrollable): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::hitTest): Deleted.
(WebCore::TextureMapperLayer::scrollableLayerHitTestCondition): Deleted.
(WebCore::TextureMapperLayer::findScrollableContentsLayerAt): Deleted.
(WebCore::TextureMapperLayer::mapScrollOffset): Deleted.
(WebCore::TextureMapperLayer::commitScrollOffset): Deleted.
(WebCore::TextureMapperLayer::scrollBy): Deleted.
(WebCore::TextureMapperLayer::didCommitScrollOffset): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
(WebCore::CoordinatedGraphicsLayer::syncLayerState):
(WebCore::CoordinatedGraphicsLayer::resetLayerState):
(WebCore::CoordinatedGraphicsLayer::setScrollableArea): Deleted.
(WebCore::CoordinatedGraphicsLayer::commitScrollOffset): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:

Source/WebKit:

With most of the scrolling-related code in TextureMapperLayer on the
chopping block, we can now drop the ScrollingClient inheritance and the
commitScrollOffset() virtual method implementation. This enables
removing the whole commitScrollOffset() call chain that ran from
CoordinatedGraphicsScene through CoordinatedLayerTreeHost and
CompositingCoordinator to the affected CoordinatedGraphicsLayer object.

The CoordinatedGraphicsScene::findScrollableContentsLayerAt() method is
also unused and can be deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::createLayer):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::findScrollableContentsLayerAt): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::commitScrollOffset): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::commitScrollOffset): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::commitScrollOffset): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
3:51 AM Changeset in webkit [229317] by zandobersek@gmail.com
  • 8 edits in trunk/Source

[CoordGraphics] Apply TextureMapperLayer animations with a single MonotonicTime value
https://bugs.webkit.org/show_bug.cgi?id=183360

Reviewed by Sergio Villar Senin.

Source/WebCore:

When animations are being applied on the TextureMapperLayer tree, the
monotonic time value is retrieved repeatedly in TextureMapperAnimation
class. Instead of spawning repeated syscalls that are required to obtain
the time value, TextureMapperLayer::applyAnimationsRecursively() now
accepts a MonotonicTime value that should be used for all animation
updates.

No new tests -- no change in behavior.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):

  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::computeTotalRunningTime):
(WebCore::TextureMapperAnimations::apply):

  • platform/graphics/texmap/TextureMapperAnimation.h:

(WebCore::TextureMapperAnimation::keyframes const):
(WebCore::TextureMapperAnimation::animation const):
(WebCore::TextureMapperAnimation::boxSize const): Deleted.
(WebCore::TextureMapperAnimation::listsMatch const): Deleted.
(WebCore::TextureMapperAnimation::startTime const): Deleted.
(WebCore::TextureMapperAnimation::pauseTime const): Deleted.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::applyAnimationsRecursively):
(WebCore::TextureMapperLayer::syncAnimations):

  • platform/graphics/texmap/TextureMapperLayer.h:

Source/WebKit:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
Pass the monotic time value, as returned by MonotonicTime::now(), to the
TextureMapperLayer::applyAnimationsRecursively() call.

3:35 AM Changeset in webkit [229316] by zandobersek@gmail.com
  • 6 edits in trunk/Source

[CoordGraphics] Clean up CoordinatedImageBacking
https://bugs.webkit.org/show_bug.cgi?id=183332

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Clean up the CoordinatedImageBacking class. Prefer reference values in
class functions, methods and member variables, where possible. Move
member variables into a more sensible order. Initialize a few member
variables at the place of declaration.

Drop releaseSurfaceIfNeeded() and updateVisibilityIfNeeded() methods,
integrating them into the update() method, which was the only place
where they were called from.

We don't have to keep a reference to the buffer object, since we're
not using it internally after it's been passed to the client's
updateImageBacking() implementation.

No new tests -- no change in behavior.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::syncImageBacking):
(WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:

(WebCore::CoordinatedImageBacking::getCoordinatedImageBackingID):
(WebCore::CoordinatedImageBacking::CoordinatedImageBacking):
(WebCore::CoordinatedImageBacking::addHost):
(WebCore::CoordinatedImageBacking::removeHost):
(WebCore::CoordinatedImageBacking::update):
(WebCore::CoordinatedImageBacking::clearContentsTimerFired):
(WebCore::CoordinatedImageBacking::create): Deleted.
(WebCore::CoordinatedImageBacking::markDirty): Deleted.
(WebCore::CoordinatedImageBacking::releaseSurfaceIfNeeded): Deleted.
(WebCore::CoordinatedImageBacking::updateVisibilityIfNeeded): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:

Source/WebKit:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
Adjust call to CoordinatedImageBacking::getCoordinatedImageBackingID().

3:34 AM Changeset in webkit [229315] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit

CoordinatedGraphicsScene: properly limit data specific to state commit operation
https://bugs.webkit.org/show_bug.cgi?id=183326

Reviewed by Sergio Villar Senin.

In the process of state commit in CoordinatedGraphicsScene, the released
image backings and backing stores with pending updates are stored in
Vector and HashSet objects, respectively. Instead of these two objects
being member variables on the CoordinatedGraphicsScene class, keep them
in the CommitScope structure that's limited to the operations done in
the commitSceneState() method.

The two member variables are dropped, and the CommitScope object is
passed by reference to any helper method that needs to append either
kind of object to the respective container. At the end of the state
commit, backing stores with pending updates have those updates applied,
and the two containers are cleared out as the CommitScope object is
destroyed.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerState):
(WebKit::CoordinatedGraphicsScene::prepareContentBackingStore):
(WebKit::CoordinatedGraphicsScene::resetBackingStoreSizeToLayerSize):
(WebKit::CoordinatedGraphicsScene::removeTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded):
(WebKit::CoordinatedGraphicsScene::syncImageBackings):
(WebKit::CoordinatedGraphicsScene::updateImageBacking):
(WebKit::CoordinatedGraphicsScene::clearImageBackingContents):
(WebKit::CoordinatedGraphicsScene::removeImageBacking):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::removeReleasedImageBackingsIfNeeded): Deleted.
(WebKit::CoordinatedGraphicsScene::commitPendingBackingStoreOperations): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
3:31 AM Changeset in webkit [229314] by commit-queue@webkit.org
  • 9 edits in trunk

[ARM] Disable tests that run out of memory
https://bugs.webkit.org/show_bug.cgi?id=182699

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-03-06
Reviewed by Žan Doberšek.

JSTests:

Skip tests that run of of memory. Do not run
modules/module-jit-reachability.js without LLInt to prevent
running out of executable memory.

  • modules.yaml:
  • modules/module-jit-reachability.js:
  • stress/has-own-property-name-cache-string-keys.js:
  • stress/has-own-property-name-cache-symbol-keys.js:

Tools:

Add run mode to allow running modules.yaml-tests without
disabling LLInt for specific tests.

  • Scripts/run-jsc-stress-tests:

LayoutTests:

Do not run test with LLInt disabled on Linux.

  • js/script-tests/dfg-osr-entry-hoisted-clobbered-structure-check.js:
3:23 AM Changeset in webkit [229313] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

GraphicsLayerTextureMapper: remove the setAnimations() method
https://bugs.webkit.org/show_bug.cgi?id=183358

Reviewed by Carlos Garcia Campos.

Remove the GraphicsLayerTextureMapper::setAnimations() method. This was
not called from anywhere, and is not the way animations are generated
for a given GraphicsLayer object (that would be addAnimation() method).

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setAnimations): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
12:22 AM Changeset in webkit [229312] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.19.92

WebKitGTK+ 2.19.92

12:21 AM Changeset in webkit [229311] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20

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

.:

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

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.19.92.
12:18 AM Changeset in webkit [229310] by n_wang@apple.com
  • 14 edits
    2 adds in trunk

AX: AOM: More accessibility events support
https://bugs.webkit.org/show_bug.cgi?id=183023
<rdar://problem/37764380>

Reviewed by Chris Fleizach.

Source/WebCore:

Accessibility events.
Spec: https://wicg.github.io/aom/spec/phase2.html

This change adds support for these new events:

accessiblecontextmenu
accessibledecrement
accessibledismiss
accessiblefocus
accessibleincrement
accessiblescrollintoview
accessibleselect

Note: The show context menu action is only supported on macOS now.
The dismiss action is not implemented for all the platforms yet.

Test: accessibility/mac/AOM-events-all.html

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::setSelected):

  • accessibility/AccessibilityMediaObject.cpp:

(WebCore::AccessibilityMediaObject::increment):
(WebCore::AccessibilityMediaObject::decrement):

  • accessibility/AccessibilityMenuListOption.cpp:

(WebCore::AccessibilityMenuListOption::setSelected):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent const):
(WebCore::AccessibilityObject::dispatchAccessibilityEventWithType const):
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent const):
(WebCore::AccessibilityObject::scrollToMakeVisible const):
(WebCore::AccessibilityObject::dispatchAccessibilityEvent): Deleted.
(WebCore::AccessibilityObject::dispatchAccessibleSetValueEvent): Deleted.

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::setFocused):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):

  • dom/Element.idl:
  • dom/EventNames.h:

LayoutTests:

  • accessibility/mac/AOM-events-all-expected.txt: Added.
  • accessibility/mac/AOM-events-all.html: Added.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Mar 5, 2018:

11:25 PM Changeset in webkit [229309] by Yusuke Suzuki
  • 78 edits
    1 copy
    1 add in trunk

Fix std::make_unique / new[] using system malloc
https://bugs.webkit.org/show_bug.cgi?id=182975

Reviewed by JF Bastien.

Source/JavaScriptCore:

Use Vector, FAST_ALLOCATED, or UniqueArray instead.

  • API/JSStringRefCF.cpp:

(JSStringCreateWithCFString):

  • bytecode/BytecodeKills.h:
  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::BytecodeLivenessAnalysis::computeKills):

  • dfg/DFGDisassembler.cpp:

(JSC::DFG::Disassembler::dumpDisassembly):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::PolymorphicCallStubRoutine):

  • jit/PolymorphicCallStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jsc.cpp:

(currentWorkingDirectory):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):

  • llint/LLIntData.h:
  • runtime/ArgList.h:
  • runtime/StructureChain.h:
  • runtime/StructureIDTable.cpp:

(JSC::StructureIDTable::StructureIDTable):
(JSC::StructureIDTable::resize):

  • runtime/StructureIDTable.h:
  • runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::TypeProfilerLog):
(JSC::TypeProfilerLog::initializeLog): Deleted.

  • runtime/TypeProfilerLog.h:

(JSC::TypeProfilerLog::TypeProfilerLog): Deleted.

  • runtime/VM.cpp:

(JSC::VM::~VM):
(JSC::VM::acquireRegExpPatternContexBuffer):

  • runtime/VM.h:
  • testRegExp.cpp:

(runFromFiles):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::HeapVerifier):

  • tools/HeapVerifier.h:

Source/WebCore:

Use Vector, FAST_ALLOCATED, or UniqueArray instead.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore::AudioBufferSourceNode::setBuffer):

  • Modules/webaudio/AudioBufferSourceNode.h:
  • css/StyleRule.h:
  • cssjit/CompiledSelector.h:
  • html/HTMLFrameSetElement.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::copyTexSubImage2D):
(WebCore::WebGLRenderingContextBase::simulateVertexAttrib0):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::LRUImageBufferCache):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::imageBuffer):
(WebCore::WebGLRenderingContextBase::LRUImageBufferCache::bubbleToFront):

  • html/canvas/WebGLRenderingContextBase.h:
  • platform/Length.cpp:

(WebCore::newCoordsArray):
(WebCore::newLengthArray):
(): Deleted.

  • platform/Length.h:
  • platform/audio/DynamicsCompressor.cpp:

(WebCore::DynamicsCompressor::setNumberOfChannels):

  • platform/audio/DynamicsCompressor.h:
  • platform/audio/FFTFrame.h:
  • platform/audio/gstreamer/FFTFrameGStreamer.cpp:

(WebCore::FFTFrame::FFTFrame):

  • platform/graphics/FormatConverter.h:

(WebCore::FormatConverter::FormatConverter):

  • platform/graphics/GraphicsContext3D.cpp:

(WebCore::GraphicsContext3D::texImage2DResourceSafe):

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::getDirtyRects):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::flipImageSurfaceVertically):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

  • platform/graphics/gpu/Texture.cpp:

(WebCore::Texture::updateSubRect):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
(WebCore::GraphicsContext3D::compileShader):
(WebCore::GraphicsContext3D::getActiveAttribImpl):
(WebCore::GraphicsContext3D::getActiveUniformImpl):
(WebCore::GraphicsContext3D::getProgramInfoLog):
(WebCore::GraphicsContext3D::getShaderInfoLog):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::getShaderLog):
(WebCore::getProgramLog):

  • platform/graphics/win/ImageBufferDataDirect2D.cpp:

(WebCore::ImageBufferData::putData):

  • platform/image-decoders/png/PNGImageDecoder.cpp:

(WebCore::PNGImageReader::PNGImageReader):
(WebCore::PNGImageReader::close):
(WebCore::PNGImageReader::interlaceBuffer const):
(WebCore::PNGImageReader::createInterlaceBuffer):

  • platform/image-decoders/webp/WEBPImageDecoder.cpp:

(WebCore::WEBPImageDecoder::decodeFrame):

  • platform/network/curl/SocketStreamHandleImpl.h:

(WebCore::SocketStreamHandleImpl::SocketData::SocketData):

  • platform/network/curl/SocketStreamHandleImplCurl.cpp:

(WebCore::createCopy):
(WebCore::SocketStreamHandleImpl::readData):
(): Deleted.

  • platform/network/soup/SocketStreamHandleImpl.h:
  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

(WebCore::SocketStreamHandleImpl::connected):

  • platform/win/LoggingWin.cpp:

(WebCore::logLevelString):

Source/WebCore/PAL:

Use Vector instead.

  • pal/win/LoggingWin.cpp:

(PAL::logLevelString):

Source/WebKit:

Use Vector instead.

  • NetworkProcess/win/SystemProxyWin.cpp:

(WindowsSystemProxy::getSystemHttpProxy):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::processMessage):
(IPC::Connection::sendOutputMessage):

  • Platform/win/LoggingWin.cpp:

(WebKit::logLevelString):

  • Shared/SandboxExtension.h:
  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::HandleArray::allocate):
(WebKit::SandboxExtension::HandleArray::operator[]):
(WebKit::SandboxExtension::HandleArray::operator[] const):
(WebKit::SandboxExtension::HandleArray::size const):
(WebKit::SandboxExtension::HandleArray::encode const):

Source/WebKitLegacy/win:

Use Vector instead.

  • MarshallingHelpers.cpp:

(MarshallingHelpers::safeArrayToStringArray):
(MarshallingHelpers::safeArrayToIntArray):

  • Plugins/PluginPackageWin.cpp:

(WebCore::PluginPackage::fetchInfo):

  • WebPreferences.cpp:

(WebPreferences::copyWebKitPreferencesToCFPreferences):

  • WebView.cpp:

(WebView::onMenuCommand):

Source/WTF:

If we use make_unique<char[]>(num) or new char[num], allocation is
done by the system malloc instead of bmalloc. This patch fixes this issue
by following three changes.

  1. Introduce UniqueArray<T>. It allocates memory from FastMalloc. While C++

array with new need to hold the size to call destructor correctly, our
UniqueArray only supports type T which does not have a non trivial destructor.
It reduces the allocation size since we do not need to track the size of the
array compared to standard new T[]. This is basically usable if we want to
have raw array which pointer won't be changed even if the container is moved.
In addition, we also extend UniqueArray<T> for types which have non trivial
destructors.

  1. Use Vector<T> instead.
  1. Annotate allocated types with MAKE_FAST_ALLOCATED. Since it introduces

new[] and delete[] operators, make_unique<T[]>(num) will allocate memory
from FastMalloc.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Assertions.cpp:
  • wtf/CMakeLists.txt:
  • wtf/FastMalloc.h:

(WTF::FastFree::operator() const):
(WTF::FastFree<T::operator() const):

  • wtf/MallocPtr.h:

(WTF::MallocPtr::operator bool const):

  • wtf/StackShot.h:

(WTF::StackShot::StackShot):
(WTF::StackShot::operator=):

  • wtf/SystemFree.h:

(WTF::SystemFree<T::operator() const):

  • wtf/UniqueArray.h: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.

(WTF::makeUniqueArray):

  • wtf/Vector.h:

(WTF::VectorTypeOperations::forceInitialize):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/UniqueArray.cpp: Copied from Source/WebKit/Platform/win/LoggingWin.cpp.

(TestWebKitAPI::NonTrivialDestructor::NonTrivialDestructor):
(TestWebKitAPI::NonTrivialDestructor::~NonTrivialDestructor):
(TestWebKitAPI::NonTrivialDestructor::setLog):
(TestWebKitAPI::TEST):

10:59 PM Changeset in webkit [229308] by yoav@yoav.ws
  • 5 edits
    4 adds in trunk

Support for preconnect Link headers
https://bugs.webkit.org/show_bug.cgi?id=181657

Reviewed by Darin Adler.

Source/WebCore:

Move the preconnect functionality into its own function, and
also call this function when Link headers are processed.

Test: http/tests/preconnect/link-header-rel-preconnect-http.php

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Call preconnectIfNeeded.
(WebCore::LinkLoader::preconnectIfNeeded): Preconnect to a host functionality moved here.
(WebCore::LinkLoader::loadLink): Call preconnectIfNeeded.

  • loader/LinkLoader.h:

LayoutTests:

Add test to see Link preconnect headers trigger a connection.

  • http/tests/preconnect/link-header-rel-preconnect-http-expected.txt: Added.
  • http/tests/preconnect/link-header-rel-preconnect-http.html: Added.
  • http/tests/preconnect/resources/header-preconnect.php: Added.
  • platform/win/TestExpectations: Skipped the preconnect test directory, rather than the individual files in it.
9:59 PM Changeset in webkit [229307] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Add ChildrenAffectedByForwardPositionalRules bit for nth-child pseudo class marking
https://bugs.webkit.org/show_bug.cgi?id=183341
<rdar://problem/38151470>

Reviewed by Zalan Bujtas.

Use it instead of AffectsNextSibling/AffectedByPreviousSibling bits, similar to ChildrenAffectedByBackwardPositionalRules bit.
This is more efficient and requires way less marking.

  • css/SelectorChecker.cpp:

(WebCore::countElementsBefore):
(WebCore::countElementsOfTypeBefore):
(WebCore::SelectorChecker::checkOne const):

Mark with ChildrenAffectedByForwardPositionalRules.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf):

Mark with ChildrenAffectedByForwardPositionalRules.

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

Invalidate siblings after added/removed element.

(WebCore::Element::setChildrenAffectedByForwardPositionalRules):
(WebCore::Element::hasFlagsSetDuringStylingOfChildren const):
(WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules const):

Add the new marking bit.

  • dom/Element.h:

(WebCore::Element::childrenAffectedByForwardPositionalRules const):
(WebCore::Element::attributeWithoutSynchronization const):

Remove assert so we can use this to get the current unresolved lazy value of style attrbute.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::childrenAffectedByForwardPositionalRules const):
(WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetStyleRelations):

Add the new marking bit.

  • dom/StyledElement.cpp:

(WebCore::StyledElement::invalidateStyleAttribute):

In special case where we have attribute selectors for style attribute, synchronize the attribute immediately so we get invalidation right.
Tested by fast/css/style-attribute-invalidation-propagates-to-counted-siblings.html

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

Commit the new bit.

  • style/StyleRelations.h:
8:38 PM Changeset in webkit [229306] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html as slow.
https://bugs.webkit.org/show_bug.cgi?id=180982

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
8:22 PM Changeset in webkit [229305] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix, remove unused variables.

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeSpeakAs):
(WebCore::consumeHangingPunctuation):

7:13 PM Changeset in webkit [229304] by Chris Dumez
  • 4 edits
    2 adds in trunk

fast/loader/onload-policy-ignore-for-frame.html is timing out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183337

Reviewed by Ryosuke Niwa.

Source/WebCore:

Make sure we call checkCompleted() before calling checkLoadComplete() in
FrameLoader::continueLoadAfterNavigationPolicy() when the client tells us
to ignore the navigation, so that we properly recognize that the load is
done. This matches what is already done in FrameLoader::receivedMainResourceError().

Test: fast/loader/onload-policy-ignore-for-frame-async-delegates.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

LayoutTests:

Add layout test coverage.

  • fast/loader/onload-policy-ignore-for-frame-async-delegates-expected.txt: Added.
  • fast/loader/onload-policy-ignore-for-frame-async-delegates.html: Added.
7:06 PM Changeset in webkit [229303] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] Allow user-installed fonts to be disabled
https://bugs.webkit.org/show_bug.cgi?id=183349

Rubber stamped by Brent Fulgham.

Tests: fast/text/user-installed-font.html

fast/text/user-installed-fonts/disable.html
fast/text/user-installed-fonts/shadow-disable.html
fast/text/user-installed-fonts/shadow-family-disable.html
fast/text/user-installed-fonts/shadow-family.html
fast/text/user-installed-fonts/shadow-postscript-disable.html
fast/text/user-installed-fonts/shadow-postscript-family-disable.html
fast/text/user-installed-fonts/shadow-postscript-family.html
fast/text/user-installed-fonts/shadow-postscript.html
fast/text/user-installed-fonts/shadow.html
fast/text/user-installed-fonts/system-ui.html

  • platform/graphics/cocoa/FontCacheCoreText.cpp:
7:03 PM Changeset in webkit [229302] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JITThunk functions should only be called when the JIT is enabled.
https://bugs.webkit.org/show_bug.cgi?id=183351
<rdar://problem/38160091>

Reviewed by Keith Miller.

  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):
(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getCTIInternalFunctionTrampolineFor):

6:34 PM Changeset in webkit [229301] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

Start using MAP_JIT for macOS
https://bugs.webkit.org/show_bug.cgi?id=183353

Reviewed by Filip Pizlo.

Unify setting this flag for both iOS and macOS.

  • wtf/OSAllocatorPosix.cpp:

(WTF::OSAllocator::reserveAndCommit):

6:15 PM Changeset in webkit [229300] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

DumpRenderTree build fix

Unreviewed.

  • DumpRenderTree/mac/LayoutTestHelper.m:
6:13 PM Changeset in webkit [229299] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Silence OpenGL and OpenGL ES deprecation warnings in newer SDKs
https://bugs.webkit.org/show_bug.cgi?id=183350

Unreviewed.

  • Configurations/WebCore.xcconfig:
5:53 PM Changeset in webkit [229298] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.7

Tag Safari-606.1.7.

5:36 PM Changeset in webkit [229297] by aestes@apple.com
  • 20 edits
    14 adds in trunk

[Mac] Teach WebCore::Pasteboard about file promise drags
https://bugs.webkit.org/show_bug.cgi?id=183314
<rdar://problem/38105493>

Reviewed by Darin Adler.

Source/WebCore:

While WebKit does support receiving file promise drags (since r210360), WebCore::Pasteboard
has not been instructed on how to read their file paths. When the various pasteboard readers
ask for file paths after a file promise drop, they receive an empty vector. This impacts
various features, most notably the DataTransfer API.

Pasteboard actually cannot learn about promised file paths from the pasteboard itself, as
the pasteboard only contains the dragged files' UTIs. Promised file paths aren't known until
the WebKits call -[NSFilePromiseReceiver receivePromisedFilesAtDestination:...], at which
point the file paths are passed to WebCore as part of WebCore::DragData.

When we construct new Pasteboards for drag and drop, we need to store any promised file
paths from the DragData. Then, when the various pasteboard readers ask for file paths and
NSFilesPromisePboardType is on the pasteboard, we can return these promised file paths.

Tests: editing/pasteboard/data-transfer-items-drag-drop-file-promise.html

editing/pasteboard/data-transfer-items-drop-file-promise.html
editing/pasteboard/datatransfer-items-drop-plaintext-file-promise.html
editing/pasteboard/datatransfer-types-dropping-text-file-promise.html
editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html
editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html
editing/pasteboard/file-input-files-access-promise.html

  • platform/FileSystem.h:
  • platform/Pasteboard.h:

(WebCore::Pasteboard::Pasteboard):

  • platform/mac/DragDataMac.mm:

(WebCore::DragData::containsPromise const):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::toString):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readFilePaths):
(WebCore::absoluteURLsFromPasteboardFilenames): Deleted.

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::numberOfFiles const):

Source/WebKit:

Added a FIXME comment.

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::performDragOperation):

Source/WebKitLegacy/mac:

Added a FIXME comment.

  • WebView/WebView.mm:

(-[WebView performDragOperation:]):

Tools:

  • DumpRenderTree/DumpRenderTreeFileDraggingSource.h:
  • DumpRenderTree/DumpRenderTreeFileDraggingSource.m:

(-[DumpRenderTreeFileDraggingSource initWithPromisedFileURLs:]):
(-[DumpRenderTreeFileDraggingSource dealloc]):

Taught DumpRenderTreeFileDraggingSource to store the promised file URLs.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(runTest):

Called +[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers] after running a test.

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

(-[DumpRenderTreeFilePromiseReceiver initWithPromisedUTIs:]):
(-[DumpRenderTreeFilePromiseReceiver fileTypes]):
(-[DumpRenderTreeFilePromiseReceiver fileNames]):
(-[DumpRenderTreeFilePromiseReceiver dealloc]):
(copyFile):
(-[DumpRenderTreeFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:]):

We can't instantiate real NSFilePromiseReceivers in DumpRenderTree. They rely on the
pasteboard server to generate unique file URLs, which is incompatible with our swizzled
NSPasteboard.

Instead, create a subclass of NSFilePromiseReceiver that implements its own promise resolution.
-receivePromisedFilesAtDestination:... asks its DumpRenderTreeFileDraggingSource for the
array of file URLs, then copies each to the destination directory on the specified operation
queue. It emulates how NSPasteboard tries to find a unique destination name by appending
numbers to the file name.

All receivers are collected in a global array that is cleared when each test finishes.
DumpRenderTreeFilePromiseReceiver will delete the files it copied in -dealloc.

(+[DumpRenderTreeDraggingInfo clearAllFilePromiseReceivers]):
(-[DumpRenderTreeDraggingInfo enumerateDraggingItemsWithOptions:forView:classes:searchOptions:usingBlock:]):

If NSFilesPromisePboardType is on the pasteboard and classArray contains
NSFilePromiseReceiver, construct a DumpRenderTreeFilePromiseReceiver, add it to the array of
all file promise receivers, then wrap it in an NSDraggingItem and call block.

  • DumpRenderTree/mac/EventSendingController.mm:

(+[EventSendingController isSelectorExcludedFromWebScript:]):
(+[EventSendingController webScriptNameForSelector:]):
(-[EventSendingController beginDragWithFilePromises:]):

Implement eventSender.beginDragWithFilePromises() by placing file UTIs on the pasteboard
with type NSFilesPromisePboardType, creating a DumpRenderTreeFileDraggingSource with the
file URLs, and creating a new DumpRenderTreeDraggingInfo and passing it to
-[WebView draggingEntered:].

LayoutTests:

Added versions of file dragging tests in editing/pasteboard/ that use
beginDragWithFilePromises() instead of beginDragWithFiles().

  • TestExpectations: Skipped the new tests.
  • editing/pasteboard/data-transfer-items-drag-drop-file-promise-expected.txt: Added.
  • editing/pasteboard/data-transfer-items-drag-drop-file-promise.html: Added.
  • editing/pasteboard/data-transfer-items-drop-file-promise-expected.txt: Added.
  • editing/pasteboard/data-transfer-items-drop-file-promise.html: Added.
  • editing/pasteboard/datatransfer-items-drop-plaintext-file-promise-expected.txt: Added.
  • editing/pasteboard/datatransfer-items-drop-plaintext-file-promise.html: Added.
  • editing/pasteboard/datatransfer-types-dropping-text-file-promise-expected.txt: Added.
  • editing/pasteboard/datatransfer-types-dropping-text-file-promise.html: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-URLs-expected.txt: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-URLs.html: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-attachment-expected.txt: Added.
  • editing/pasteboard/drag-file-promises-to-editable-element-as-attachment.html: Added.
  • editing/pasteboard/file-input-files-access-promise-expected.txt: Added.
  • editing/pasteboard/file-input-files-access-promise.html: Added.
  • platform/mac-wk1/TestExpectations: Un-skipped the new tests.
  • platform/win/TestExpectations: Skipped the new tests.
5:30 PM Changeset in webkit [229296] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[webkitpy] Bugzilla class should use NetworkTransaction for network operations
https://bugs.webkit.org/show_bug.cgi?id=183222

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:

(Bugzilla.open_url): Method which uses NetworkTransaction for opening url.
(Bugzilla.fetch_user): Used self.open_url instead of directly calling browser.open().
(Bugzilla.add_user_to_groups): Ditto.
(Bugzilla._fetch_bug_page): Ditto.
(Bugzilla.fetch_attachment_contents): Ditto.
(Bugzilla.get_bug_id_for_attachment_id): Ditto.
(Bugzilla.authenticate): Ditto.
(Bugzilla.add_attachment_to_bug): Ditto.
(Bugzilla.add_patch_to_bug): Ditto.
(Bugzilla.create_bug): Ditto.
(Bugzilla.clear_attachment_flags): Ditto.
(Bugzilla.set_flag_on_attachment): Ditto.
(Bugzilla.obsolete_attachment): Ditto.
(Bugzilla.add_cc_to_bug): Ditto.
(Bugzilla.post_comment_to_bug): Ditto.
(Bugzilla.close_bug_as_fixed): Ditto.
(Bugzilla.reassign_bug): Ditto.
(Bugzilla.reopen_bug): Ditto.
(Bugzilla._fetch_bug_page_by_url): Deleted, not required anymore.

  • Scripts/webkitpy/common/net/networktransaction.py:

(NetworkTransaction.run): Added a FIXME.

4:24 PM Changeset in webkit [229295] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Fix the build

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate): Removed unused variables.

3:19 PM Changeset in webkit [229294] by jeffm@apple.com
  • 3 edits in trunk/Source/WebKit

Expose still more WKPreferences SPI to match C SPI
https://bugs.webkit.org/show_bug.cgi?id=183045

Reviewed by Alex Christensen.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setAllowsInlineMediaPlayback:]):
(-[WKPreferences _allowsInlineMediaPlayback]):
(-[WKPreferences _setApplePayEnabled:]):
(-[WKPreferences _applePayEnabled]):
(-[WKPreferences _setDNSPrefetchingEnabled:]):
(-[WKPreferences _dnsPrefetchingEnabled]):
(-[WKPreferences _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
(-[WKPreferences _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKPreferences _setInvisibleMediaAutoplayNotPermitted:]):
(-[WKPreferences _invisibleMediaAutoplayNotPermitted]):
(-[WKPreferences _setLegacyEncryptedMediaAPIEnabled:]):
(-[WKPreferences _legacyEncryptedMediaAPIEnabled]):
(-[WKPreferences _setMainContentUserGestureOverrideEnabled:]):
(-[WKPreferences _mainContentUserGestureOverrideEnabled]):
(-[WKPreferences _setMediaStreamEnabled:]):
(-[WKPreferences _mediaStreamEnabled]):
(-[WKPreferences _setNeedsStorageAccessFromFileURLsQuirk:]):
(-[WKPreferences _needsStorageAccessFromFileURLsQuirk]):
(-[WKPreferences _setPDFPluginEnabled:]):
(-[WKPreferences _pdfPluginEnabled]):
(-[WKPreferences _setRequiresUserGestureForAudioPlayback:]):
(-[WKPreferences _requiresUserGestureForAudioPlayback]):
(-[WKPreferences _setRequiresUserGestureForVideoPlayback:]):
(-[WKPreferences _requiresUserGestureForVideoPlayback]):
(-[WKPreferences _setServiceControlsEnabled:]):
(-[WKPreferences _serviceControlsEnabled]):
(-[WKPreferences _setShowsToolTipOverTruncatedText:]):
(-[WKPreferences _showsToolTipOverTruncatedText]):
(-[WKPreferences _setTextAreasAreResizable:]):
(-[WKPreferences _textAreasAreResizable]):
(-[WKPreferences _setUseGiantTiles:]):
(-[WKPreferences _useGiantTiles]):
(-[WKPreferences _setWantsBalancedSetDefersLoadingBehavior:]):
(-[WKPreferences _wantsBalancedSetDefersLoadingBehavior]):
(-[WKPreferences _setWebAudioEnabled:]):
(-[WKPreferences _webAudioEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
2:16 PM Changeset in webkit [229293] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: build fix.

Not reviewed.

  • interpreter/AbstractPC.h:

(JSC::AbstractPC::AbstractPC):

11:54 AM Changeset in webkit [229292] by Ryan Haddad
  • 1 edit
    2 adds in trunk/LayoutTests

Unreviewed, add baseline for fast/text/combining-enclosing-keycap.html.

  • platform/ios/fast/text/combining-enclosing-keycap-expected.txt: Added.
  • platform/mac/fast/text/combining-enclosing-keycap-expected.txt: Added.
11:40 AM Changeset in webkit [229291] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

dump-class-layout mishandles duplicates base classes and miscomputes padding
https://bugs.webkit.org/show_bug.cgi?id=183311

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-03-05
Reviewed by Simon Fraser.

  • Scripts/dump-class-layout:

(verify_type):
(verify_type_recursive):
Keep a list of seen (offset, type) that we have output and don't re-output them.
The Python types list the base classes as members multiple times as you iterate
through the members, so just ignore them if we have seem them already at a
specific offset.

11:29 AM Changeset in webkit [229290] by clopez@igalia.com
  • 2 edits
    1 add in trunk/Tools

[GTK][Wayland] The GTK Wayland bot exits early because of assertions related with libsecret since r221925
https://bugs.webkit.org/show_bug.cgi?id=183330

Reviewed by Michael Catanzaro.

Add libsecret to the JHBuild and build it only when the system version is
less than 0.18.6 (unreleased as of writing this) in order to cherry pick
a fix for a bug that causes crashes with layout tests.

  • gtk/jhbuild.modules:
  • gtk/patches/libsecret-secret-methods-Don-t-unref-NULL-when-search-fails.patch: Added.
11:03 AM Changeset in webkit [229289] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

Unreviewed, follow-up after r229209
https://bugs.webkit.org/show_bug.cgi?id=183312

Add RELEASE_ASSERT to ensure success.

  • wtf/cocoa/CPUTimeCocoa.mm:

(WTF::CPUTime::forCurrentThread):

  • wtf/unix/CPUTimeUnix.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/CPUTimeWin.cpp:

(WTF::CPUTime::forCurrentThread):

10:43 AM Changeset in webkit [229288] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Don't invalidate all children when doing insertion/deletion in presence of backward positional selectors
https://bugs.webkit.org/show_bug.cgi?id=183325
<rdar://problem/38134480>

Reviewed by Zalan Bujtas.

It is sufficient to invalidate siblings before the mutation point.

  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

We already do sibling walk in the case of forwards positional rules and sibling combinators. The work
done here is insignifant compared to cost of overinvalidating.

10:31 AM Changeset in webkit [229287] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Use WTF::ArithmeticOperations for CLoop overflow operations
https://bugs.webkit.org/show_bug.cgi?id=183324

Reviewed by JF Bastien.

We have WTF::ArithmeticOperations which has operations with overflow checking.
This is suitable for CLoop's overflow checking operations. This patch emits
WTF::ArithmeticOperations for CLoop's overflow checking operations. And it is
lowered to optimized code using CPU's overflow flag.

  • offlineasm/cloop.rb:
10:15 AM Changeset in webkit [229286] by Chris Dumez
  • 4 edits
    23 adds in trunk

imported/w3c/web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html times out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183297

Patch by Ali Juma <ajuma@chromium.org> on 2018-03-05
Reviewed by Chris Dumez.

Source/WebCore:

When a FrameLoader's policy document loader is cleared after receiving a navigation policy decision
to not continue loading, we still need to trigger a check for load completion, since this loader or
an ancestor loader may have been in state isLoadingInAPISense only because of the existence of
the just-cleared policy document loader. Without triggering this check, these loaders may never
call WebFrameLoaderClient::dispatchDidFinishLoad.

Test: http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

LayoutTests:

Add layout test coverage. Copy expectations from the existing sync-policy version of the test.

  • http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404.html: Added.
  • http/wpt/html/semantics/text-level-semantics/the-a-element/resources/a-download-404.html: Added.
  • platform/ios-wk2/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/mac-wk1/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/win/http/wpt/html/semantics/text-level-semantics/the-a-element/a-download-click-404-expected.txt: Added.
  • platform/wpe/TestExpectations:
10:06 AM Changeset in webkit [229285] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Service worker test gardening
https://bugs.webkit.org/show_bug.cgi?id=183264
<rdar://problem/38048743>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-05

7:04 AM Changeset in webkit [229284] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] fast/events/blur-focus-window-should-blur-focus-element.html failing

Unreviewed gardening.

  • platform/gtk/TestExpectations: Move this test to the failing test section.
6:44 AM Changeset in webkit [229283] by Claudio Saavedra
  • 5 edits in trunk

[GTK] Implement WTR's PlatformWebView::setWindowIsKey()
https://bugs.webkit.org/show_bug.cgi?id=183143

Reviewed by Carlos Garcia Campos.

Tools:

Implement ::setWindowIsKey() by keeping a second window to be
presented when the webview's window is to lose its key status.

  • WebKitTestRunner/PlatformWebView.h:
  • WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::PlatformWebView):
(WTR::PlatformWebView::~PlatformWebView):
(WTR::PlatformWebView::setWindowIsKey):

LayoutTests:

  • platform/gtk/TestExpectations: Unmark the passing tests
5:28 AM Changeset in webkit [229282] by don.olmstead@sony.com
  • 6 edits in trunk

[CMake] Split JSC header copying into public and private targets
https://bugs.webkit.org/show_bug.cgi?id=183251

Reviewed by Konstantin Tokarev.

.:

  • Source/cmake/WebKitMacros.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/ThirdParty:

  • gtest/CMakeLists.txt:
5:20 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
5:19 AM Changeset in webkit [229281] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore/platform/gtk/po

Merge r229203 - [l10n] Updated Indonesian translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=183318

Patch by Andika Triwidada <atriwidada@gnome.org> on 2018-03-04
Rubber-stamped by Michael Catanzaro.

  • id.po:
5:18 AM Changeset in webkit [229280] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/LayoutTests

Merge r229171 - [GTK] Unreviewed gardening

  • platform/gtk/TestExpectations: Add

imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html,
which started failing in the bots.

5:18 AM Changeset in webkit [229279] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229213 - Unreviewed. Update Selenium WebDriver imported tests.

  • imported/selenium/importer.json:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/common/exceptions.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/safari/webdriver.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
5:18 AM Changeset in webkit [229278] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229212 - Automation: clicking on a disabled option element shouldn't produce an error
https://bugs.webkit.org/show_bug.cgi?id=183284

Reviewed by Brian Burg.

This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases.

14.1 Element Click.
https://w3c.github.io/webdriver/webdriver-spec.html#element-click

Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::selectOptionElement):

5:18 AM Changeset in webkit [229277] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebDriver

Merge r229211 - WebDriver: Also ignore NoSuchwindow errors when waiting for navigation to complete
https://bugs.webkit.org/show_bug.cgi?id=183280

Reviewed by Brian Burg.

We currently ignore NoSuchFrame, but navigation or previous command might have closed the window too.

Fixes: imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang

imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testCanCallGetWindowHandlesAfterClosingAWindow

  • Session.cpp:

(WebDriver::Session::waitForNavigationToComplete): Ignore NoSuchWindow errors.

5:18 AM Changeset in webkit [229276] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229210 - Automation: stale elements not detected when removed from the DOM
https://bugs.webkit.org/show_bug.cgi?id=183278

Reviewed by Brian Burg.

We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed
from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before
accessing the maps.

Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes()
(let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto.
(let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them
from the maps if they aren't.

5:18 AM Changeset in webkit [229275] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229167 - Unreviewed gardening. Skip new action tests added in r229166.

5:17 AM Changeset in webkit [229274] by Carlos Garcia Campos
  • 41 edits
    3 adds
    4 deletes in releases/WebKitGTK/webkit-2.20/WebDriverTests

Merge r229166 - Unreviewed. Update W3C WebDriver imported tests.

  • imported/w3c/importer.json:
  • imported/w3c/tools/webdriver/webdriver/transport.py:
  • imported/w3c/tools/wptrunner/MANIFEST.in:
  • imported/w3c/tools/wptrunner/README.rst:
  • imported/w3c/tools/wptrunner/requirements.txt:
  • imported/w3c/tools/wptrunner/requirements_chrome.txt:
  • imported/w3c/tools/wptrunner/requirements_edge.txt:
  • imported/w3c/tools/wptrunner/requirements_firefox.txt:
  • imported/w3c/tools/wptrunner/requirements_ie.txt:
  • imported/w3c/tools/wptrunner/requirements_opera.txt:
  • imported/w3c/tools/wptrunner/requirements_sauce.txt:
  • imported/w3c/tools/wptrunner/requirements_servo.txt:
  • imported/w3c/tools/wptrunner/setup.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/chrome_android.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/edge.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/firefox.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/ie.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/opera.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/sauce.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/server-locations.txt: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servo.py:
  • imported/w3c/tools/wptrunner/wptrunner/browsers/servodriver.py:
  • imported/w3c/tools/wptrunner/wptrunner/config.json: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/environment.py:
  • imported/w3c/tools/wptrunner/wptrunner/executors/executorservo.py:
  • imported/w3c/tools/wptrunner/wptrunner/font.py:
  • imported/w3c/tools/wptrunner/wptrunner/hosts.py: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/testrunner.py:
  • imported/w3c/tools/wptrunner/wptrunner/tests/browsers/init.py: Added.
  • imported/w3c/tools/wptrunner/wptrunner/tests/test_hosts.py: Removed.
  • imported/w3c/tools/wptrunner/wptrunner/webdriver_server.py:
  • imported/w3c/tools/wptrunner/wptrunner/wptrunner.py:
  • imported/w3c/webdriver/OWNERS:
  • imported/w3c/webdriver/tests/actions/mouse.py:
  • imported/w3c/webdriver/tests/actions/mouse_dblclick.py:
  • imported/w3c/webdriver/tests/actions/pointer_origin.py: Added.
  • imported/w3c/webdriver/tests/actions/support/mouse.py:
  • imported/w3c/webdriver/tests/element_click/bubbling.py:
  • imported/w3c/webdriver/tests/element_click/select.py:
  • imported/w3c/webdriver/tests/element_send_keys/form_controls.py:
  • imported/w3c/webdriver/tests/element_send_keys/interactability.py:
  • imported/w3c/webdriver/tests/execute_script/cyclic.py:
  • imported/w3c/webdriver/tests/fullscreen_window.py:
  • imported/w3c/webdriver/tests/interface.html:
  • imported/w3c/webdriver/tests/state/get_element_property.py:
5:17 AM Changeset in webkit [229273] by Carlos Garcia Campos
  • 5 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r229165 - REGRESSION(r222843): [HarfBuzz] Combining enclosed keycap not correctly handled
https://bugs.webkit.org/show_bug.cgi?id=183246

Reviewed by Michael Catanzaro.

Source/WebCore:

We are not correctly handling the combining enclosed keycap since we switched to use
ComplexTextController. This is because fontForCombiningCharacterSequence() always returns the font of the first
character, without checking if that font can render the whole sequence or not. Before 222843, the shaper did
that check when creating the text runs. In this case the sequence was split and a different font was used for the
text and the mark. This patch makes fontForCombiningCharacterSequence() try to find a suitable font for the
whole sequence, first looking at the CSS fallbacks and finally at system ones. The result is much better than
the old one, because we use the same font for both the text and the mark. If there isn't any font to render the
mark, then we fallback to use the first character font, since we will end up rendering the missing glyph
character, it's better to use the same font than the first character one.

Test: fast/text/combining-enclosing-keycap.html

  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence const): Check if the first charatcer font can render
the whole sequence, trying with fallbacks otherwise.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::canRenderCombiningCharacterSequence const): Check if the font face has glyphs for the whole
sequence not just the first character.

LayoutTests:

  • fast/text/combining-enclosing-keycap-expected.txt: Added.
  • platform/gtk/fast/text/combining-enclosing-keycap.html: Added.
  • platform/gtk/TestExpectations:
5:17 AM Changeset in webkit [229272] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.20

Merge r229164 - [FreeType] Remove FontPlatformData fallbacks
https://bugs.webkit.org/show_bug.cgi?id=183210

Reviewed by Michael Catanzaro.

Source/WebCore:

They are only used by FontCache::systemFallbackForCharacters() where a direct FcFontMatch provides the same
or better results.

  • platform/graphics/FontPlatformData.h: Remove fallbacks.
  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::systemFallbackForCharacters): Use FcFontMatch() only.

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::fallbacks): Removed.

LayoutTests:

Rebaseline 3 tests that progressed.

  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.png:
  • platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
5:16 AM Changeset in webkit [229271] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229162 - ASSERTION FAILED: matchContextualKeyword(m_vm->propertyNames->async)
https://bugs.webkit.org/show_bug.cgi?id=183173

Reviewed by Saam Barati.

JSTests:

  • stress/async-arrow-function-in-class-heritage.js: Added.

(testSyntax):
(testSyntaxError):
(SyntaxError):

Source/JavaScriptCore:

Classifier could propagate an error which does not occur at the first token
of the given expression. We should check whether the given token is "async"
instead of assertion.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):

5:16 AM Changeset in webkit [229270] by Carlos Garcia Campos
  • 5 edits
    1 add in releases/WebKitGTK/webkit-2.20

We need to clear cached structures when having a bad time
https://bugs.webkit.org/show_bug.cgi?id=183256
<rdar://problem/36245022>

Reviewed by Mark Lam.

JSTests:

  • stress/having-a-bad-time-with-derived-arrays.js: Added.

(assert):
(defineSetter):
(iterate):
(doSlice):

Source/JavaScriptCore:

This patch makes both InternalFunctionAllocationProfile and the VM's
structure cache having-a-bad-time aware. For InternalFunctionAllocationProfile,
we clear them when they'd produce an object with a bad indexing type.
For the VM's Structure cache, we conservatively clear the entire cache
since it may be housing Structures with bad indexing types.

  • runtime/FunctionRareData.h:

(JSC::FunctionRareData::clearInternalFunctionAllocationProfile):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::haveABadTime):

  • runtime/StructureCache.h:

(JSC::StructureCache::clear):

5:16 AM Changeset in webkit [229269] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20

Merge r229155 - [CMake] configure failure for aarch64
https://bugs.webkit.org/show_bug.cgi?id=183268

Unreviewed build fix. This failure is caused by a simple typo.

  • Source/cmake/OptionsCommon.cmake:
5:16 AM Changeset in webkit [229268] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229137 - Remove RenderElement::s_noLongerAffectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183196
<rdar://problem/38030797>

Reviewed by Antti Koivisto.

Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.

Covered by existing tests.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::noLongerAffectsParentBlock const):
(WebCore::RenderElement::styleDidChange):

  • rendering/RenderElement.h:

(WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.

5:16 AM Changeset in webkit [229267] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229134 - Crash when updating cache entry after validation in apps that uses class A file protection
https://bugs.webkit.org/show_bug.cgi?id=183242
<rdar://problem/33289058>

Reviewed by Chris Dumez.

When validating a cache entry, we keep it alive until we get a network response. With 304 response
we then update the headers of this existing entry. This accesses the body data of the entry which
may be backed by a mapped file. If the app uses class A protection, user might have locked
the device and the entry might have become inaccessible, leading to a crash.

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::setNeedsValidation):

In case of class A protection, pull the data to a memory buffer immediately before starting a revalidation request.
This makes the window where the file could become inaccessible much shorter (since it no longer depends on network).

5:16 AM Changeset in webkit [229266] by Carlos Garcia Campos
  • 7 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r229133 - imported/w3c/web-platform-tests/html/browsers/windows/browsing-context.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183225
<rdar://problem/38003828>

Reviewed by Alex Christensen.

Source/WebCore:

Bypass navigation policy check when loading about:blank. This does not seem necessary and it would not
be Web-compatible for such policy check to happen synchronously. This is because an iframe without src
or src="about:blank" should load synchronously as per HTML specification.

Test: http/wpt/html/browsers/windows/browsing-context.html

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

LayoutTests:

  • http/wpt/html/browsers/windows/browsing-context-expected.txt: Added.
  • http/wpt/html/browsers/windows/browsing-context.html: Added.

Add layout test coverage.

  • fast/loader/iframe-src-invalid-url-expected.txt:
  • fast/loader/policy-delegate-action-hit-test-zoomed-expected.txt:
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt:

Rebaseline a few layout tests now that the log lines for the about:blank policy checks are
gone.

5:16 AM Changeset in webkit [229265] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229129 - Unreviewed, fix exception check for ExceptionScope
https://bugs.webkit.org/show_bug.cgi?id=183175

  • jsc.cpp:

(GlobalObject::moduleLoaderFetch):

5:16 AM Changeset in webkit [229264] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229128 - [FreeType] Color emojis in WebKitGTK+ for great justice
https://bugs.webkit.org/show_bug.cgi?id=183155

Reviewed by Michael Catanzaro.

Emojis are actually rendered if there's an emoji font installed in the system, but the size is so tiny that we
don't see them. This is because for some reason the matrix we are getting from fontconfig contains a scale,
which we don't expect. We only get the fontconfig matrix to apply rotations in case of oblique fonts, and then we
always apply the scale for the computed pixel font size. Ignoring the fontconfig matrix scale fixes the issue.

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::fontWeightToFontconfigWeight): Moved here since it's now used by configurePatternForFontDescription().
(WebCore::configurePatternForFontDescription): Helper function to apply the same options for fallback pattern.
(WebCore::createFontConfigPatternForCharacters): Use configurePatternForFontDescription().
(WebCore::findBestFontGivenFallbacks): Adopt the returned reference.
(WebCore::FontCache::systemFallbackForCharacters): Clean it up.
(WebCore::FontCache::createFontPlatformData): Use configurePatternForFontDescription().

  • platform/graphics/freetype/FontPlatformDataFreeType.cpp:

(WebCore::FontPlatformData::buildScaledFont): Ignore the scale returned by fontconfig matrix.

5:15 AM Changeset in webkit [229263] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r229126 - REGRESSION(r221514): [GTK] UI process crash in WebKit::WaylandCompositor::Surface::flushPendingFrameCallbacks
https://bugs.webkit.org/show_bug.cgi?id=183091

Reviewed by Michael Catanzaro.

Invalidate the surface in the page map when the backing store is destroyed.

  • UIProcess/gtk/WaylandCompositor.cpp:

(WebKit::WaylandCompositor::willDestroySurface):

  • UIProcess/gtk/WaylandCompositor.h:
4:34 AM Changeset in webkit [229262] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229125 - [ARM] Fix compile error in debug builds by invoking unpoisoned().

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-02-28
Reviewed by Mark Lam.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr): Fix compile error.
(JSC::MacroAssemblerCodePtr::createFromExecutableAddress()): Ditto.
(JSC::MacroAssemblerCodePtr::dataLocation()): Ditto.

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::ByteCompiler::dumpDisjunction): use %zu for printf'ing size_t.

4:34 AM Changeset in webkit [229261] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229109 - GC should sweep code block before deleting
https://bugs.webkit.org/show_bug.cgi?id=183229
<rdar://problem/32767615>

Reviewed by Saam Barati, Fil Pizlo.

Stub routines shouldn't get deleted before codeblocks have been
swept, otherwise there's a small race window where the codeblock
thinks it's still reachable.

  • heap/Heap.cpp:

(JSC::Heap::deleteUnmarkedCompiledCode):
(JSC::Heap::sweepInFinalize):

4:34 AM Changeset in webkit [229260] by Carlos Garcia Campos
  • 4 edits
    8 adds in releases/WebKitGTK/webkit-2.20

Merge r229108 - html/browsers/browsing-the-web/navigating-across-documents/006.html fails with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183168
<rdar://problem/37951341>

Reviewed by Alex Christensen.

Source/WebCore:

The test has an anchor element with both a 'click' event handler which submits a form
and an href attribute. When clicking the link, as per specification, things happen in
this order:

  1. We fire the click event at the anchor, which will execute the event handler and submit the form. Submitting the form *schedules* a navigation to 'click.html'.
  2. We execute the anchor activation code which *navigates* to 'href.html'. The navigation to 'href' is supposed to cancel the pending navigation to 'click.html' and we should navigate to 'href.html', which is what the test asserts.

The issue for us is that we do not cancel pending navigations until after the navigation
policy decision is made, when the provisional loads actually starts, in FrameLoader::provisionalLoadStarted().
Because the policy decision for the navigation can now be made asynchronously, the NavigationScheduler
timer can now fire while the decision is made and we'll submit the form, thus navigating to
'click.html'.

To address the issue, we now cancel any pending navigations in FrameLoader::loadWithDocumentLoader(),
*before* doing the policy check for the navigation.

Test: http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadWithDocumentLoader):

LayoutTests:

Add layout test coverage.

  • TestExpectations:
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006-expected.txt: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/006.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/click.html: Added.
  • http/wpt/html/browsers/browsing-the-web/navigating-across-documents/href.html: Added.
4:34 AM Changeset in webkit [229259] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229092 - JSC crash with import("")
https://bugs.webkit.org/show_bug.cgi?id=183175

Reviewed by Saam Barati.

JSTests:

  • stress/import-with-empty-string.js: Added.

Source/JavaScriptCore:

Add file existence and file type check for module loader implementation in jsc.cpp.
This is not safe for TOCTOU, but it is OK since this functionality is used for the
JSC shell (jsc.cpp): testing purpose.

  • jsc.cpp:

(fillBufferWithContentsOfFile):
(fetchModuleFromLocalFileSystem):

4:34 AM Changeset in webkit [229258] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229091 - Remove RenderElement::s_affectsParentBlock
https://bugs.webkit.org/show_bug.cgi?id=183187
<rdar://problem/37961079>

Reviewed by Antti Koivisto.

Remove the hack to track floating/out-of-flow changes between styleWillChange and styleDidChange.

Covered by existing tests.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleWillChange):
(WebCore::RenderElement::styleDidChange):

  • rendering/RenderElement.h:
4:26 AM Changeset in webkit [229257] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Unreviewed, attempt to fix Apple port build

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
4:21 AM Changeset in webkit [229256] by Yusuke Suzuki
  • 4 edits in trunk/Tools

Unreviewed, attempt to fix WPE build

  • WebKitTestRunner/InjectedBundle/wpe/TestRunnerWPE.cpp:

(WTR::TestRunner::initializeWaitToDumpWatchdogTimerIfNeeded):

  • WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:

(WTR::PlatformWebView::windowSnapshotImage):

  • WebKitTestRunner/wpe/TestControllerWPE.cpp:

(WTR::TestController::platformRunUntil):

3:55 AM Changeset in webkit [229255] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229090 - Filter attribute selectors with selector filter
https://bugs.webkit.org/show_bug.cgi?id=183200

Reviewed by Zalan Bujtas.

Currently selector filtering is done based on tags, classes and ids. We should include attributes too.

This patch adds filtering based on attribute name (but not content).

  • css/SelectorFilter.cpp:

(WebCore::isExcludedAttribute):

Ignore id, class and style attributes. First two are already handled and the last is common but is rarely
used in selectors.

(WebCore::collectElementIdentifierHashes):

Collect attributes.
Remove the unnecessary StyledElement casting.

(WebCore::collectSimpleSelectorHash):

Collect attribute selectors.

(WebCore::chooseSelectorHashesForFilter):

Pick attributes with high priority for the filter as it is likely a good signal.

3:55 AM Changeset in webkit [229254] by Carlos Garcia Campos
  • 24 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r229087 - Replace TrustedImmPtr(0) with TrustedImmPtr(nullptr)
https://bugs.webkit.org/show_bug.cgi?id=183195

Reviewed by Mark Lam.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::TrustedImmPtr::TrustedImmPtr):

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranchPtr):
(JSC::MacroAssembler::patchableBranchPtrWithPatch):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchPtrWithPatch):
(JSC::MacroAssemblerARM::storePtrWithPatch):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::branchPtrWithPatch):
(JSC::MacroAssemblerARM64::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARM64::storePtrWithPatch):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchPtrWithPatch):
(JSC::MacroAssemblerARMv7::patchableBranchPtr):
(JSC::MacroAssemblerARMv7::patchableBranchPtrWithPatch):
(JSC::MacroAssemblerARMv7::storePtrWithPatch):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchPtrWithPatch):
(JSC::MacroAssemblerMIPS::storePtrWithPatch):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::branchPtrWithPatch):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::tailRecursiveCall):
(JSC::MacroAssemblerX86_64::makeTailRecursiveCall):
(JSC::MacroAssemblerX86_64::branchPtrWithPatch):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitAllocateRawObject):
(JSC::DFG::SpeculativeJIT::compileToLowerCase):
(JSC::DFG::SpeculativeJIT::compileMakeRope):
(JSC::DFG::SpeculativeJIT::compileGetTypedArrayByteOffset):
(JSC::DFG::SpeculativeJIT::compileNewFunctionCommon):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::compileAllocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileReallocatePropertyStorage):
(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::TrustedImmPtr::TrustedImmPtr):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitGenerationThunkGenerator):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::debugCall):
(JSC::AssemblyHelpers::sanitizeStackInline):

  • jit/IntrinsicEmitter.cpp:

(JSC::IntrinsicGetterAccessCase::emitIntrinsicGetter):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/ScratchRegisterAllocator.cpp:

(JSC::ScratchRegisterAllocator::restoreUsedRegistersFromScratchBufferForCall):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::wasmToJS):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::initParenContextFreeList):
(JSC::Yarr::YarrGenerator::storeToFrameWithPatch):
(JSC::Yarr::YarrGenerator::generate):

3:55 AM Changeset in webkit [229253] by Carlos Garcia Campos
  • 7 edits
    2 moves
    1 add
    1 delete in releases/WebKitGTK/webkit-2.20

Merge r229079 - Standardize terminology for marked text
https://bugs.webkit.org/show_bug.cgi?id=180999

Reviewed by Zalan Bujtas.

The name MarkerSubrange is a misnomer for a data structure that associates a text subrange with a type
and optional document marker. In particular, a MarkerSubrange may not always correspond to a document
marker. For instance, selected text is represented using a MarkerSubrange that does not have a
corresponding document marker. Let's standardize on the phrase "marked text" as the canonical way to
describe these tagged text subranges.

Source/WebCore:

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::localSelectionRect const):
(WebCore::InlineTextBox::MarkedTextStyle::areBackgroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areForegroundMarkedTextStylesEqual):
(WebCore::InlineTextBox::MarkedTextStyle::areDecorationMarkedTextStylesEqual):
(WebCore::InlineTextBox::StyledMarkedText::StyledMarkedText):
(WebCore::createMarkedTextFromSelectionInBox):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintPlatformDocumentMarkers):
(WebCore::InlineTextBox::paintPlatformDocumentMarker):
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkedText const):
(WebCore::InlineTextBox::resolveStyleForMarkedText):
(WebCore::InlineTextBox::subdivideAndResolveStyle):
(WebCore::InlineTextBox::coalesceAdjacentMarkedTexts):
(WebCore::InlineTextBox::collectMarkedTextsForDraggedContent):
(WebCore::InlineTextBox::collectMarkedTextsForDocumentMarkers):
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::MarkerSubrangeStyle::areBackgroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areForegroundMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::MarkerSubrangeStyle::areDecorationMarkerSubrangeStylesEqual): Deleted.
(WebCore::InlineTextBox::StyledMarkerSubrange::StyledMarkerSubrange): Deleted.
(WebCore::createMarkerSubrangeFromSelectionInBox): Deleted.
(WebCore::InlineTextBox::computeStyleForUnmarkedMarkerSubrange const): Deleted.
(WebCore::InlineTextBox::resolveStyleForSubrange): Deleted.
(WebCore::InlineTextBox::coalesceAdjacentSubranges): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDraggedContent): Deleted.
(WebCore::InlineTextBox::collectSubrangesForDocumentMarkers): Deleted.
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeBackground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeForeground): Deleted.
(WebCore::InlineTextBox::paintTextSubrangeDecoration): Deleted.

  • rendering/InlineTextBox.h:

(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkerSubranges): Deleted.

  • rendering/MarkedText.cpp: Renamed from Source/WebCore/rendering/MarkerSubrange.cpp.

(WebCore::subdivide):

  • rendering/MarkedText.h: Renamed from Source/WebCore/rendering/MarkerSubrange.h.

(WebCore::MarkedText::MarkedText):
(WebCore::MarkedText::isEmpty const):
(WebCore::MarkedText::operator!= const):
(WebCore::MarkedText::operator== const):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/MarkedText.cpp: Added.

(WebCore::operator<<):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebCore/MarkerSubrange.cpp: Removed.
3:54 AM Changeset in webkit [229252] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229061 - Potential privacy issue: DNS prefetching can be re-enabled
https://bugs.webkit.org/show_bug.cgi?id=182924

Patch by Milan Crha <mcrha@redhat.com> on 2018-02-27
Reviewed by Michael Catanzaro.

  • dom/Document.cpp:

(WebCore::Document::parseDNSPrefetchControlHeader):

3:54 AM Changeset in webkit [229251] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r229057 - Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

JSTests:

  • stress/has-indexed-property-array-storage-ftl.js:
  • stress/has-indexed-property-slow-put-array-storage-ftl.js:

Tools:

  • Scripts/run-jsc-stress-tests:
3:35 AM Changeset in webkit [229250] by Carlos Garcia Campos
  • 35 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r229054 - Modernize FINALIZE_CODE and peer macros to use VA_ARGS arguments.
https://bugs.webkit.org/show_bug.cgi?id=183159
<rdar://problem/37930837>

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • assembler/LinkBuffer.h:
  • assembler/testmasm.cpp:

(JSC::compile):

  • b3/B3Compile.cpp:

(JSC::B3::compile):

  • b3/air/testair.cpp:
  • b3/testb3.cpp:

(JSC::B3::testEntrySwitchSimple):
(JSC::B3::testEntrySwitchNoEntrySwitch):
(JSC::B3::testEntrySwitchWithCommonPaths):
(JSC::B3::testEntrySwitchWithCommonPathsAndNonTrivialEntrypoint):
(JSC::B3::testEntrySwitchLoop):

  • bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):
(JSC::InlineAccess::rewireStubAsJump):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileOSRExit):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrExitThunkGenerator):
(JSC::DFG::osrExitGenerationThunkGenerator):
(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeCommon):

  • ftl/FTLLazySlowPath.cpp:

(JSC::FTL::LazySlowPath::generate):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLThunks.cpp:

(JSC::FTL::genericGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/ExecutableAllocator.cpp:
  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):
(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JITStubRoutine.h:
  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::finalize):

  • jit/ThunkGenerators.cpp:

(JSC::throwExceptionFromCallSlowPathGenerator):
(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::unreachableGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntThunks.cpp:

(JSC::LLInt::generateThunkWithJumpTo):

  • wasm/WasmBBQPlan.cpp:

(JSC::Wasm::BBQPlan::complete):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmOMGPlan.cpp:

(JSC::Wasm::OMGPlan::work):

  • wasm/WasmThunks.cpp:

(JSC::Wasm::throwExceptionFromWasmThunkGenerator):
(JSC::Wasm::throwStackOverflowFromWasmThunkGenerator):
(JSC::Wasm::triggerOMGTierUpThunkGenerator):

  • wasm/js/WasmToJS.cpp:

(JSC::Wasm::handleBadI64Use):
(JSC::Wasm::wasmToJS):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile):

Source/WebCore:

No new tests needed because this is just a refactoring patch.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

3:22 AM Changeset in webkit [229249] by Carlos Garcia Campos
  • 10 edits
    3 adds in releases/WebKitGTK/webkit-2.20

Merge r229053 - [FTL] Support PutByVal(ArrayStorage/SlowPutArrayStorage)
https://bugs.webkit.org/show_bug.cgi?id=182965

Reviewed by Saam Barati.

JSTests:

  • stress/put-by-val-array-storage.js: Added.

(shouldBe):
(testArrayStorageInBounds):

  • stress/put-by-val-direct-out-of-bounds-setter.js: Added.

(shouldBe):
(testInt32.createBuiltin):
(set for):

  • stress/put-by-val-slow-put-array-storage.js: Added.

(shouldBe):
(testArrayStorageInBounds):

Source/JavaScriptCore:

This patch extends FTL coverage for PutByVal by adding ArrayStorage and SlwoPutArrayStorage support.
Basically large part of the patch is porting from DFG code. Since PutByVal already emits CheckInBounds
for InBounds case, we do not have OutOfBounds check for that case.
This is the last change for FTL to support all the types of DFG nodes except for CreateThis.

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoublePutByVal):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
For consistency, we use operationPutByValXXX and operationPutByValDirectXXX.
But except for SlowPutArrayStorage case, basically it is meaningless since
we do not have indexed accessors.

3:22 AM Changeset in webkit [229248] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r229036 - validateStackAccess should not validate if the offset is within the stack bounds
https://bugs.webkit.org/show_bug.cgi?id=183067
<rdar://problem/37749988>

Reviewed by Mark Lam.

JSTests:

  • stress/dont-validate-stack-offset-in-b3-because-it-might-be-guarded-by-control-flow.js: Added.

(assert):
(test.a):
(test.b):
(test):

Source/JavaScriptCore:

The validation rule was saying that any load from the stack must be
within the stack bounds of the frame. However, it's natural for a user
of B3 to emit code that may be outside of B3's stack bounds, but guard
such a load with a branch. The FTL does exactly this with GetMyArgumentByVal.
B3 is wrong to assert that this is a static property about all stack loads.

  • b3/B3Validate.cpp:
3:22 AM Changeset in webkit [229247] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.20/Source

Merge r229028 - MessagePort is not always destroyed in the right thread
https://bugs.webkit.org/show_bug.cgi?id=183053

Patch by Youenn Fablet <youenn@apple.com> on 2018-02-26
Reviewed by Chris Dumez.

Source/WebCore:

Make existingMessagePortForIdentifier take a lambda so that we hold the lock until there
is no longer a need to keep the MessagePort around.
This is very time sensitive and does not happen a lot when running WPT tests.

Update existing call sites to pass a lambda.

  • dom/MessagePort.cpp:

(WebCore::MessagePort::existingMessagePortForIdentifier):

  • dom/MessagePort.h:
  • dom/messageports/MessagePortChannelProviderImpl.cpp:

(WebCore::MessagePortChannelProviderImpl::postMessageToRemote):
(WebCore::MessagePortChannelProviderImpl::checkProcessLocalPortForActivity):

Source/WebKit:

Update code to pass a lambda to MessagePort::existingMessagePortForIdentifier.

  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:

(WebKit::WebMessagePortChannelProvider::checkProcessLocalPortForActivity):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::messagesAvailableForPort):

3:22 AM Changeset in webkit [229246] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r229004 - Fix build error with !LOG_DISABLED
https://bugs.webkit.org/show_bug.cgi?id=183049

Reviewed by Philippe Normand.

The following error message was being reported when doing a
release build with -DLOG_DISABLED=0:

../../Source/WebCore/dom/messageports/MessagePortChannel.cpp: In member function ‘void WebCore::MessagePortChannel::entanglePortWithProcess(const WebCore::MessagePortIdentifier&, WebCore::ProcessIdentifier)’:

3:22 AM Changeset in webkit [229245] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20

Merge r229027 - Unreviewed, rolling out r226745.
https://bugs.webkit.org/show_bug.cgi?id=183132

This is breaking some websites (Requested by youenn on

Reverted changeset:

"Use no-cache fetch mode when loading main documents with
location.reload()"
https://bugs.webkit.org/show_bug.cgi?id=181285
https://trac.webkit.org/changeset/226745

3:21 AM Changeset in webkit [229244] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/JSTests

Merge r228986 - Unreviewed, skip FTL tests if FTL is disabled
https://bugs.webkit.org/show_bug.cgi?id=183071

  • stress/has-indexed-property-array-storage-ftl.js:
  • stress/has-indexed-property-slow-put-array-storage-ftl.js:
3:21 AM Changeset in webkit [229243] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r228984 - [WK2] http/tests/navigation/new-window-redirect-history.html crashes
https://bugs.webkit.org/show_bug.cgi?id=127683

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-25
Reviewed by Dan Bernstein.

Tools:

m_previousTestBackForwardListItem was null for the new window.
m_previousTestBackForwardListItem is initialized only for the main
window in InjectedBundlePage::prepare.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dumpBackForwardList):
Do null-check of m_previousTestBackForwardListItem.

LayoutTests:

  • platform/ios-wk2/TestExpectations:

Unmarked http/tests/navigation/new-window-redirect-history.html.

  • platform/wk2/TestExpectations: Ditto.
3:12 AM Changeset in webkit [229242] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, fix MediaTime test
https://bugs.webkit.org/show_bug.cgi?id=183319

builtin_xxx_overflow writes overflowed data into ResultType value even if overflow happens.
This is different from the original CheckedArithmetic semantics.

  • wtf/CheckedArithmetic.h:
3:10 AM Changeset in webkit [229241] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.20/Tools

Merge r228983 - Various crashes in WebKitTestRunner, especially when system is under heavy load
https://bugs.webkit.org/show_bug.cgi?id=183109

Reviewed by Tim Horton.

WebKitTestRunner had many places where it sent messages to WebContent with a timeout,
but it didn't handle the timeout when it did occur. Nearly all of those would result
in logic errors and failing tests, and most would even result in stack corruption,
as the response handler modified local variables.

There is only one timeout scenario that we actually mean to handle in WKTR. That's
when a test freezes after it is done (e.g. an infinite loop in beforeunload) - we don't
want to blame the next test for freezing, so we silently relaunch WebContent.
Everything else is cargo cult code that never worked.

This patch addresses the crashes, and actually makes tests pass a lot more on an
overloaded system.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues): Moved m_doneResetting assignment
to where it's actually needed, for clarity.
(WTR::TestController::reattachPageToWebProcess): This function used to always hit
and ignore message timeout, as m_doneResetting is only updated by navigation callback
when the state is Resetting. This change makes it faster.
(WTR::TestController::platformResetStateToConsistentValues): Style fix.
(WTR::TestController::clearServiceWorkerRegistrations): Timing out here wasn't
handled in a meaningful manner, and would even corrupt the stack.
(WTR::TestController::clearDOMCache): Ditto.
(WTR::TestController::clearDOMCaches): Ditto.
(WTR::TestController::hasDOMCache): Ditto.
(WTR::TestController::domCacheSize): Ditto.
(WTR::TestController::isStatisticsPrevalentResource): Ditto.
(WTR::TestController::isStatisticsRegisteredAsSubFrameUnder): Ditto.
(WTR::TestController::isStatisticsRegisteredAsRedirectingTo): Ditto.
(WTR::TestController::isStatisticsHasHadUserInteraction): Ditto.
(WTR::TestController::isStatisticsGrandfathered): Ditto.
(WTR::TestController::statisticsUpdateCookiePartitioning): Ditto.
(WTR::TestController::statisticsSetShouldPartitionCookiesForHost): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStore): Ditto.
(WTR::TestController::statisticsClearInMemoryAndPersistentStoreModifiedSinceHours): Ditto.
(WTR::TestController::statisticsClearThroughWebsiteDataRemoval): Ditto.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::shortTimeout const): Made shortTimeout shorter (on a hunch).
(WTR::TestInvocation::invoke): Removed a timeout waiting for initial response. There
is never a logical reason for such a timeout, as we always have a new or responsive
WebContent process here.
(WTR::TestInvocation::dumpResults): Removed another timeout that we don't know how to
properly handle.
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle): Removed assignment to
m_errorMessage, which had no effect in this context.

  • WebKitTestRunner/TestInvocation.h: Removed no longer used code.
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::cocoaResetStateToConsistentValues): Use a named constant for
no timeout.

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest): Removed a useless timeout.
Not sure if timing out here would corrupt the stack or not, but there is no reason
to impose arbitrary limits on individual steps of a test.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): Use a named constant for
no timeout.

3:10 AM Changeset in webkit [229240] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228975 - Null-dereference of the second argument resource of DocumentLoader::scheduleSubstituteResourceLoad
https://bugs.webkit.org/show_bug.cgi?id=182920

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-24
Reviewed by Darin Adler.

A test case
imported/w3c/web-platform-tests/html/browsers/offline/appcache/workers/appcache-worker.html
always crashes due to a null-dereference if compiled and optimized
by GCC 7.2. The second argument resource of
DocumentLoader::scheduleSubstituteResourceLoad can be null if the
resource can't be found in cache. I guess GCC optimizes inline
HashMap::add based on assuming the resource never becomes null
because its type is SubstituteResource&.

This changes introduces a new method
DocumentLoader::scheduleCannotShowURLError because it looks tricky
to pass a nullptr to the second argument of
scheduleSubstituteResourceLoad.

No new tests (Covered by existing tests).

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::scheduleCannotShowURLError): Added a new method.

  • loader/DocumentLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadResource):
Call scheduleCannotShowURLError if the resource not found in the appcache.

3:10 AM Changeset in webkit [229239] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228972 - Crash under SchemeRegistry::shouldTreatURLSchemeAsLocal(WTF::String const&)
https://bugs.webkit.org/show_bug.cgi?id=183066
<rdar://problem/37804111>

Reviewed by Ryosuke Niwa.

SecurityOrigin objects are constructed on various threads. However, someone added a
shouldTreatAsPotentiallyTrustworthy() call to the SecurityOrigin constructor which
was not thread safe. This is because this function relies on SchemeRegistry::shouldTreatURLSchemeAsSecure()
and SchemeRegistry::shouldTreatURLSchemeAsLocal() which were relying on global static HashMaps without
locks.

Update SecurityOrigin to initialize m_isPotentiallyTrustworthy lazily, to avoid paying
initialization cost in the constructor. This is only queries by SecurityContext::isSecureContext().

Make SchemeRegistry::shouldTreatURLSchemeAsLocal() and SchemeRegistry::shouldTreatURLSchemeAsSecure()
thread-safe, since they are needed to initialize SecurityOrigin::m_isPotentiallyTrustworthy from
various threads.

SchemeRegistry::shouldTreatURLSchemeAsSecure() is only called from SecurityOrigin (which requires
thread-safety), and getUserMedia() which is not hot code so the extra locking there should not
be an issue.

SchemeRegistry::shouldTreatURLSchemeAsLocal() is called from SecurityOrigin (which requires thread-
safety). It is also called from isQuickLookPreviewURL(), MHTMLArchive::create(), Page::userStyleSheetLocationChanged(),
isRemoteWebArchive() and HTMLPlugInImageElement. All these are not hot code so I do not think
we need a fast path.

  • page/SecurityOrigin.cpp:

(WebCore::isLoopbackIPAddress):
(WebCore::shouldTreatAsPotentiallyTrustworthy):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress):

  • page/SecurityOrigin.h:
  • platform/SchemeRegistry.cpp:

(WebCore::localURLSchemesLock):
(WebCore::localURLSchemes):
(WebCore::secureSchemesLock):
(WebCore::secureSchemes):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):

  • platform/SchemeRegistry.h:
2:50 AM Changeset in webkit [229238] by Carlos Garcia Campos
  • 20 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r228968 - Make Number.isInteger an intrinsic
https://bugs.webkit.org/show_bug.cgi?id=183088

Reviewed by JF Bastien.

JSTests:

  • stress/number-is-integer-intrinsic.js: Added.

Source/JavaScriptCore:

When profiling the ML subtest in ARES, I noticed it was spending some
time in Number.isInteger. This patch makes that operation an intrinsic
in the DFG/FTL. It might be a speedup by 1% or so on that subtest, but
it's likely not an aggregate speedup on ARES. However, it is definitely
faster than calling into a builtin function, so we might as well have
it as an intrinsic.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileNumberIsInteger):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsInteger):

  • runtime/NumberConstructor.h:

(JSC::NumberConstructor::isIntegerImpl):

2:50 AM Changeset in webkit [229237] by Carlos Garcia Campos
  • 9 edits
    1 add in releases/WebKitGTK/webkit-2.20

Merge r228966 - WebAssembly: cache memory address / size on instance
https://bugs.webkit.org/show_bug.cgi?id=177305

Reviewed by JF Bastien.

JSTests:

  • wasm/function-tests/memory-reuse.js: Added.

(createWasmInstance):
(doCheckTrap):
(doMemoryGrow):
(doCheck):
(checkWasmInstancesWithSharedMemory):

Source/JavaScriptCore:

Cache memory address/size in wasm:Instance to avoid load wasm:Memory
object during access to memory and memory size property in JiT

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::restoreWebAssemblyGlobalState):
(JSC::Wasm::B3IRGenerator::addCurrentMemory):
(JSC::Wasm::B3IRGenerator::addCallIndirect):

  • wasm/WasmBinding.cpp:

(JSC::Wasm::wasmToWasm):

  • wasm/WasmInstance.h:

(JSC::Wasm::Instance::cachedMemory const):
(JSC::Wasm::Instance::cachedMemorySize const):
(JSC::Wasm::Instance::createWeakPtr):
(JSC::Wasm::Instance::setMemory):
(JSC::Wasm::Instance::updateCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemory):
(JSC::Wasm::Instance::offsetOfCachedMemorySize):
(JSC::Wasm::Instance::offsetOfCachedIndexingMask):
(JSC::Wasm::Instance::allocationSize):

  • wasm/WasmMemory.cpp:

(JSC::Wasm::Memory::grow):
(JSC::Wasm::Memory::registerInstance):

  • wasm/WasmMemory.h:

(JSC::Wasm::Memory::indexingMask):

  • wasm/js/JSToWasm.cpp:

(JSC::Wasm::createJSToWasmWrapper):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::evaluate):

2:49 AM Changeset in webkit [229236] by Carlos Garcia Campos
  • 15 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228954 - [RenderTreeBuilder] Make RenderTreeBuilder::* classes WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=183084
<rdar://problem/37828706>

Reviewed by Antti Koivisto.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.h:
  • rendering/updating/RenderTreeBuilderContinuation.h:
  • rendering/updating/RenderTreeBuilderFirstLetter.h:
  • rendering/updating/RenderTreeBuilderFormControls.h:
  • rendering/updating/RenderTreeBuilderFullScreen.h:
  • rendering/updating/RenderTreeBuilderInline.h:
  • rendering/updating/RenderTreeBuilderList.h:
  • rendering/updating/RenderTreeBuilderMathML.h:
  • rendering/updating/RenderTreeBuilderMultiColumn.h:
  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.h:
  • rendering/updating/RenderTreeBuilderTable.h:
  • rendering/updating/RenderTreeUpdaterGeneratedContent.h:
2:49 AM Changeset in webkit [229235] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WTF

Merge r228953 - warning: unused variable 'InitialBufferSize' in Assertions.cpp
https://bugs.webkit.org/show_bug.cgi?id=183076

Patch by Fujii Hironori <Fujii Hironori> on 2018-02-23
Reviewed by Yusuke Suzuki.

  • wtf/Assertions.cpp: Moved the definition of InitialBufferSize to inside #if.
2:49 AM Changeset in webkit [229234] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r228952 - ArgumentsEliminationPhase has a branch on GetByOffset that should be an assert
https://bugs.webkit.org/show_bug.cgi?id=182982

Reviewed by Yusuke Suzuki.

I don't know why this check was not always an assert. When we see
a GetByOffset on an eliminated allocation, that allocation *must*
be a PhantomClonedArguments. If it weren't, the GetByOffset would
have escaped it. Because this transformation happens by visiting
blocks in pre-order, and by visiting nodes in a block starting from
index zero to index block->size() - 1, we're guaranteed that eliminated
allocations get transformed before users of it, since we visit nodes
in dominator order.

  • dfg/DFGArgumentsEliminationPhase.cpp:
2:49 AM Changeset in webkit [229233] by Carlos Garcia Campos
  • 32 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228950 - [JSC] Implement $vm.ftlTrue function for FTL testing
https://bugs.webkit.org/show_bug.cgi?id=183071

Reviewed by Mark Lam.

JSTests:

  • stress/dead-fiat-value-to-int52-then-exit-not-double.js:

(foo):

  • stress/dead-fiat-value-to-int52-then-exit-not-int52.js:

(foo):

  • stress/dead-fiat-value-to-int52.js:

(foo):

  • stress/dead-osr-entry-value.js:

(foo):

  • stress/fiat-value-to-int52-then-exit-not-double.js:

(foo):

  • stress/fiat-value-to-int52-then-exit-not-int52.js:

(foo):

  • stress/fiat-value-to-int52-then-fail-to-fold.js:

(foo):

  • stress/fiat-value-to-int52-then-fold.js:

(foo):

  • stress/fiat-value-to-int52.js:

(foo):

  • stress/fold-based-on-int32-proof-mul-branch.js:

(foo):

  • stress/fold-profiled-call-to-call.js:

(foo):

  • stress/fold-to-double-constant-then-exit.js:

(foo):

  • stress/fold-to-int52-constant-then-exit.js:

(foo):

  • stress/fold-to-primitive-in-cfa.js:

(foo):

  • stress/fold-to-primitive-to-identity-in-cfa.js:

(foo):

  • stress/has-indexed-property-array-storage-ftl.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/has-indexed-property-slow-put-array-storage-ftl.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/int52-ai-add-then-filter-int32.js:

(foo):

  • stress/int52-ai-mul-and-clean-neg-zero-then-filter-int32.js:

(foo):

  • stress/int52-ai-mul-then-filter-int32.js:

(foo):

  • stress/int52-ai-neg-then-filter-int32.js:

(foo):

  • stress/int52-ai-sub-then-filter-int32.js:

(foo):

  • stress/licm-pre-header-cannot-exit-nested.js:

(foo):

  • stress/licm-pre-header-cannot-exit.js:

(foo):

  • stress/sparse-array-entry-update-144067.js:

(useMemoryToTriggerGCs):

  • stress/test-spec-misc.js:

(foo):

  • stress/tricky-array-bounds-checks.js:

(foo):

Source/JavaScriptCore:

Add $vm.ftlTrue, which becomes true if the caller is compiled in FTL.
This is useful for testing whether the caller function is compiled in FTL.

We also remove duplicate DFGTrue function in jsc.cpp. We have $vm.dfgTrue.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionFalse1):
(functionFalse2): Deleted.

  • runtime/Intrinsic.cpp:

(JSC::intrinsicName):

  • runtime/Intrinsic.h:
  • tools/JSDollarVM.cpp:

(JSC::functionFTLTrue):
(JSC::JSDollarVM::finishCreation):

2:49 AM Changeset in webkit [229232] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228949 - [RenderTreeBuilder] Move RenderFullScreen::createPlaceholder to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183027
<rdar://problem/37773058>

Reviewed by Antti Koivisto.

No change in functionality.

  • dom/Document.cpp:

(WebCore::Document::setFullScreenRenderer):

  • dom/Document.h:
  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreenPlaceholder::RenderFullScreenPlaceholder):
(WebCore::RenderFullScreenPlaceholder::isRenderFullScreenPlaceholder const):
(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(): Deleted.
(WebCore::RenderFullScreen::createPlaceholder): Deleted.

  • rendering/RenderFullScreen.h:
  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::createPlaceholderForFullScreen):

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderFullScreen.cpp:

(WebCore::RenderTreeBuilder::FullScreen::createPlaceholder):

  • rendering/updating/RenderTreeBuilderFullScreen.h:
2:48 AM Changeset in webkit [229231] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228948 - [RenderTreeBuilder] Add WARN_UNUSED_RETURN to detach()
https://bugs.webkit.org/show_bug.cgi?id=183073
<rdar://problem/37814585>

Reviewed by Antti Koivisto.

So that we don't destroy a renderer accidentally.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.h:
2:13 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
2:10 AM Changeset in webkit [229230] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228945 - [GStreamer] HTTP totalBytes query returns 0 after seeking (sometimes)
https://bugs.webkit.org/show_bug.cgi?id=183002

Reviewed by Xabier Rodriguez-Calvar.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Initialize member variables. Also no need
to set the appsrc size at that point.
(webKitWebSrcStop): There is no need to reset the size when
seeking. Size should in most cases represent the Content-Length
response attribute, even when seeking.
(webKitWebSrcStart): No need to reset the size attribute.
(webKitWebSrcQueryWithParent): Let appsrc handle DURATION queries.
(CachedResourceStreamingClient::responseReceived): Emit duration notification one time only.

2:10 AM Changeset in webkit [229229] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228944 - [GStreamer] media/video-src-blob-using-open-panel.html crashes in Debug
https://bugs.webkit.org/show_bug.cgi?id=183005

Reviewed by Xabier Rodriguez-Calvar.

Test: media/video-src-blob-using-open-panel.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::convertToInternalProtocol): Also convert blob URIs
because they're handled by our httpsrc element.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcGetProtocols): Prefix blob URIs too, for consistency purpose.

2:09 AM Changeset in webkit [229228] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228943 - [FTL] Support HasIndexedProperty for ArrayStorage and SlowPutArrayStorage
https://bugs.webkit.org/show_bug.cgi?id=182792

Reviewed by Mark Lam.

JSTests:

  • stress/has-indexed-property-array-storage.js: Added.

(shouldBe):
(test1):
(test2):

  • stress/has-indexed-property-slow-put-array-storage.js: Added.

(shouldBe):
(test1):
(test2):

Source/JavaScriptCore:

This patch adds HasIndexedProperty for ArrayStorage and SlowPutArrayStorage in FTL.
HasIndexedProperty with ArrayStorage frequently causes FTL compilation failures
in web-tooling-benchmarks.

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):

2:07 AM Changeset in webkit [229227] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228979 - Unreviewed GTK Debug build fix after r228942.

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::iconDatabaseSyncThread):
(WebKit::IconDatabase::syncThreadMainLoop):
(WebKit::IconDatabase::readFromDatabase):
(WebKit::IconDatabase::writeToDatabase):
(WebKit::IconDatabase::cleanupSyncThread):

2:06 AM Changeset in webkit [229226] by Carlos Garcia Campos
  • 76 edits in releases/WebKitGTK/webkit-2.20

Merge r228942 - Remove currentTime() / currentTimeMS()
https://bugs.webkit.org/show_bug.cgi?id=183052

Reviewed by Mark Lam.

Source/WebCore:

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::haveSuitableCachedPosition):

  • dom/DOMTimeStamp.h:

(WebCore::convertSecondsToDOMTimeStamp):

  • fileapi/File.cpp:

(WebCore::File::File):
(WebCore::File::lastModified const):

  • history/HistoryItem.cpp:

(WebCore::generateSequenceNumber):

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::defaultValueForStepUp const):

  • html/DateTimeInputType.cpp:

(WebCore::DateTimeInputType::defaultValueForStepUp const):

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::defaultValueForStepUp const):

  • html/TimeInputType.cpp:

(WebCore::TimeInputType::defaultValueForStepUp const):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::willSendWebSocketHandshakeRequest):

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

(WebCore::generateFormDataIdentifier):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clientRedirected):

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:
  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • page/History.h:
  • page/PageOverlay.cpp:

(WebCore::PageOverlay::startFadeAnimation):
(WebCore::PageOverlay::fadeAnimationTimerFired):

  • page/PageOverlay.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawNativeImage):

  • platform/ios/LegacyTileLayerPool.h:
  • platform/ios/LegacyTileLayerPool.mm:

(WebCore::LegacyTileLayerPool::LegacyTileLayerPool):
(WebCore::LegacyTileLayerPool::addLayer):
(WebCore::LegacyTileLayerPool::decayedCapacity const):
(WebCore::LegacyTileLayerPool::prune):

  • platform/ios/SystemMemoryIOS.cpp:

(WebCore::systemMemoryLevel):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • PluginProcess/WebProcessConnection.cpp:
  • Shared/WebProcessCreationParameters.h:
  • Shared/linux/WebMemorySamplerLinux.cpp:

(WebKit::WebMemorySampler::sampleWebKit const):

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit const):

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):

  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::setIconDataForIconURL):
(WebKit::IconDatabase::synchronousLoadDecisionForIconURL):
(WebKit::IconDatabase::performURLImport):

  • UIProcess/DrawingAreaProxyImpl.cpp:
  • UIProcess/Plugins/PlugInAutoStartProvider.cpp:

(WebKit::expirationTimeFromNow):
(WebKit::PlugInAutoStartProvider::addAutoStartOriginHash):
(WebKit::PlugInAutoStartProvider::autoStartOriginsTableCopy const):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTable):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsFilteringOutEntriesAddedAfterTime):
(WebKit::PlugInAutoStartProvider::setAutoStartOriginsTableWithItemsPassingTest):
(WebKit::PlugInAutoStartProvider::didReceiveUserInteraction):

  • UIProcess/Plugins/PlugInAutoStartProvider.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processDidFinishLaunching):
(WebKit::WebProcessPool::startMemorySampler):
(WebKit::WebProcessPool::setPlugInAutoStartOriginsFilteringOutEntriesAddedAfterTime):

  • UIProcess/WebProcessPool.h:
  • WebProcess/InjectedBundle/API/APIInjectedBundlePageLoaderClient.h:

(API::InjectedBundle::PageLoaderClient::willPerformClientRedirectForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:

(WebKit::InjectedBundlePageLoaderClient::willPerformClientRedirectForFrame):

  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillPerformClientRedirect):

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

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::isPlugInAutoStartOriginHash):
(WebKit::WebProcess::plugInDidStartFromOrigin):
(WebKit::WebProcess::didAddPlugInAutoStartOriginHash):
(WebKit::WebProcess::resetPlugInAutoStartOriginDefaultHashes):
(WebKit::WebProcess::resetPlugInAutoStartOriginHashes):
(WebKit::WebProcess::plugInDidReceiveUserInteraction):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:
  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

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

(WebFrameLoaderClient::dispatchWillPerformClientRedirect):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchWillPerformClientRedirect):

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebDownload.h:
  • WebDownloadCFNet.cpp:

(WebDownload::didStart):
(WebDownload::didReceiveData):
(WebDownload::didFinish):

Source/WTF:

This patch removes WTF::currentTime() and WTF::currentTimeMS().
We have fancy WallTime APIs. It has strong types like WallTime and Seconds,
and this reduces the chance of bugs mixing doubles which represent milliseconds
and seconds.

  • wtf/Condition.h:
  • wtf/CurrentTime.cpp:

(WTF::currentTime):
(WTF::WallTime::now):

  • wtf/CurrentTime.h:

(WTF::currentTimeMS): Deleted.

  • wtf/DateMath.h:

(WTF::jsCurrentTime):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):

  • wtf/ThreadingPrimitives.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::ThreadCondition::timedWait):

  • wtf/ThreadingWin.cpp:

(WTF::ThreadCondition::timedWait):
(WTF::absoluteTimeToWaitTimeoutInterval):

  • wtf/WallTime.cpp:

(WTF::WallTime::now): Deleted.

  • wtf/WallTime.h:

Tools:

  • DumpRenderTree/TestRunner.cpp:

(preciseTimeCallback):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setMockGeolocationPosition):

  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
  • WebKitTestRunner/GeolocationProviderMock.cpp:

(WTR::GeolocationProviderMock::setPosition):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::preciseTime):

1:46 AM Changeset in webkit [229225] by Carlos Garcia Campos
  • 36 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228938 - [RenderTreeBuilder] Rename insertChild() -> attach(), takeChild() -> detach() and removeAndDestroy() -> destroy()
https://bugs.webkit.org/show_bug.cgi?id=183061
<rdar://problem/37800269>

Reviewed by Ryosuke Niwa.

...and moveChildTo() -> move() (moveChildrenTo() -> moveChildren()),
removeFromParentAndDestroyCleaningUpAnonymousWrappers() -> destroyAndCleanUpAnonymousWrappers()

No change in functionality.

  • dom/Document.cpp:

(WebCore::Document::destroyRenderTree):
(WebCore::Document::setFullScreenRenderer):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderButton.cpp:

(WebCore::RenderButton::setText):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::didAttachChild):
(WebCore::RenderElement::didInsertChild): Deleted.

  • rendering/RenderElement.h:
  • rendering/RenderFullScreen.cpp:

(WebCore::RenderFullScreen::wrapNewRenderer):
(WebCore::RenderFullScreen::wrapExistingRenderer):
(WebCore::RenderFullScreen::unwrapRenderer):
(WebCore::RenderFullScreen::createPlaceholder):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::didAttachChild):
(RenderMenuList::setText):
(RenderMenuList::didInsertChild): Deleted.

  • rendering/RenderMenuList.h:
  • rendering/RenderQuote.cpp:

(WebCore::RenderQuote::updateTextRenderer):

  • rendering/RenderTextFragment.cpp:

(WebCore::RenderTextFragment::setText):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::destroy):
(WebCore::RenderTreeBuilder::attach):
(WebCore::RenderTreeBuilder::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::detach):
(WebCore::RenderTreeBuilder::attachToRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::move):
(WebCore::RenderTreeBuilder::moveAllChildren):
(WebCore::RenderTreeBuilder::moveChildren):
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::makeChildrenNonInline):
(WebCore::RenderTreeBuilder::splitAnonymousBoxesAroundChild):
(WebCore::RenderTreeBuilder::childFlowStateChangesAndAffectsParentBlock):
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
(WebCore::RenderTreeBuilder::detachFromRenderGrid):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
(WebCore::RenderTreeBuilder::attachToRenderGrid):
(WebCore::RenderTreeBuilder::removeAndDestroy): Deleted.
(WebCore::RenderTreeBuilder::insertChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::takeChild): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal): Deleted.
(WebCore::RenderTreeBuilder::moveChildTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveChildrenTo): Deleted.
(WebCore::RenderTreeBuilder::moveAllChildrenIncludingFloatsTo): Deleted.
(WebCore::RenderTreeBuilder::removeFromParentAndDestroyCleaningUpAnonymousWrappers): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderGrid): Deleted.
(WebCore::RenderTreeBuilder::takeChildFromRenderElement): Deleted.
(WebCore::RenderTreeBuilder::insertChildToRenderGrid): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::attach):
(WebCore::RenderTreeBuilder::Block::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Block::removeLeftoverAnonymousBlock):
(WebCore::RenderTreeBuilder::Block::detach):
(WebCore::RenderTreeBuilder::Block::dropAnonymousBoxChild):
(WebCore::RenderTreeBuilder::Block::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Block::insertChildIgnoringContinuation): Deleted.
(WebCore::RenderTreeBuilder::Block::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderBlock.h:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:

(WebCore::RenderTreeBuilder::BlockFlow::attach):
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloats):
(WebCore::RenderTreeBuilder::BlockFlow::insertChild): Deleted.
(WebCore::RenderTreeBuilder::BlockFlow::moveAllChildrenIncludingFloatsTo): Deleted.

  • rendering/updating/RenderTreeBuilderBlockFlow.h:
  • rendering/updating/RenderTreeBuilderContinuation.cpp:

(WebCore::RenderTreeBuilder::Continuation::cleanupOnDestroy):

  • rendering/updating/RenderTreeBuilderFirstLetter.cpp:

(WebCore::RenderTreeBuilder::FirstLetter::cleanupOnDestroy):
(WebCore::RenderTreeBuilder::FirstLetter::updateStyle):
(WebCore::RenderTreeBuilder::FirstLetter::createRenderers):

  • rendering/updating/RenderTreeBuilderFormControls.cpp:

(WebCore::RenderTreeBuilder::FormControls::attach):
(WebCore::RenderTreeBuilder::FormControls::detach):
(WebCore::RenderTreeBuilder::FormControls::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::FormControls::insertChild): Deleted.
(WebCore::RenderTreeBuilder::FormControls::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderFormControls.h:
  • rendering/updating/RenderTreeBuilderFullScreen.cpp:

(WebCore::RenderTreeBuilder::FullScreen::cleanupOnDestroy):

  • rendering/updating/RenderTreeBuilderInline.cpp:

(WebCore::RenderTreeBuilder::Inline::attach):
(WebCore::RenderTreeBuilder::Inline::insertChildToContinuation):
(WebCore::RenderTreeBuilder::Inline::attachIgnoringContinuation):
(WebCore::RenderTreeBuilder::Inline::splitFlow):
(WebCore::RenderTreeBuilder::Inline::splitInlines):
(WebCore::RenderTreeBuilder::Inline::childBecameNonInline):
(WebCore::RenderTreeBuilder::Inline::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Inline::insertChildIgnoringContinuation): Deleted.

  • rendering/updating/RenderTreeBuilderInline.h:
  • rendering/updating/RenderTreeBuilderList.cpp:

(WebCore::RenderTreeBuilder::List::updateItemMarker):

  • rendering/updating/RenderTreeBuilderMathML.cpp:

(WebCore::RenderTreeBuilder::MathML::makeFences):
(WebCore::RenderTreeBuilder::MathML::attach):
(WebCore::RenderTreeBuilder::MathML::insertChild): Deleted.

  • rendering/updating/RenderTreeBuilderMathML.h:
  • rendering/updating/RenderTreeBuilderMultiColumn.cpp:

(WebCore::RenderTreeBuilder::MultiColumn::createFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::destroyFragmentedFlow):
(WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):
(WebCore::RenderTreeBuilder::MultiColumn::handleSpannerRemoval):

  • rendering/updating/RenderTreeBuilderRuby.cpp:

(WebCore::RenderTreeBuilder::Ruby::moveInlineChildren):
(WebCore::RenderTreeBuilder::Ruby::moveBlockChildren):
(WebCore::RenderTreeBuilder::Ruby::attach):
(WebCore::RenderTreeBuilder::Ruby::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Ruby::rubyBaseSafe):
(WebCore::RenderTreeBuilder::Ruby::detach):
(WebCore::RenderTreeBuilder::Ruby::insertChild): Deleted.
(WebCore::RenderTreeBuilder::Ruby::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderRuby.h:
  • rendering/updating/RenderTreeBuilderSVG.cpp:

(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
(WebCore::RenderTreeBuilder::SVG::insertChild): Deleted.
(WebCore::RenderTreeBuilder::SVG::takeChild): Deleted.

  • rendering/updating/RenderTreeBuilderSVG.h:
  • rendering/updating/RenderTreeBuilderTable.cpp:

(WebCore::RenderTreeBuilder::Table::findOrCreateParentForChild):
(WebCore::RenderTreeBuilder::Table::attach):
(WebCore::RenderTreeBuilder::Table::collapseAndDestroyAnonymousSiblingRows):
(WebCore::RenderTreeBuilder::Table::insertChild): Deleted.

  • rendering/updating/RenderTreeBuilderTable.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::createRenderer):
(WebCore::RenderTreeUpdater::createTextRenderer):
(WebCore::RenderTreeUpdater::tearDownRenderers):
(WebCore::RenderTreeUpdater::tearDownTextRenderer):
(WebCore::RenderTreeUpdater::tearDownLeftoverPaginationRenderersIfNeeded):

  • rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:

(WebCore::createContentRenderers):

1:45 AM Changeset in webkit [229224] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228934 - ResourceRequestBase::isolatedCopy() fails to isolate copy the cachePartition
https://bugs.webkit.org/show_bug.cgi?id=183059
<rdar://problem/37800202>

Reviewed by Youenn Fablet.

Update ResourceRequestBase::setAsIsolatedCopy() to call isolatedCopy() on the cachePartition as well,
given that it is a String and it would not be safe to send it to another thread otherwise.

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

1:38 AM Changeset in webkit [229223] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.20/Source/JavaScriptCore

Merge r228932 - Refactor MacroAssembler code to improve reuse and extensibility.
https://bugs.webkit.org/show_bug.cgi?id=183054
<rdar://problem/37797337>

Reviewed by Saam Barati.

  • assembler/ARM64Assembler.h:
  • assembler/MacroAssembler.cpp:
  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::canCompact):
(JSC::MacroAssemblerARM64::computeJumpType):
(JSC::MacroAssemblerARM64::jumpSizeDelta):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::load64):
(JSC::MacroAssemblerARM64::load64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load32):
(JSC::MacroAssemblerARM64::load32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::load16SignedExtendTo32):
(JSC::MacroAssemblerARM64::load8):
(JSC::MacroAssemblerARM64::load8SignedExtendTo32):
(JSC::MacroAssemblerARM64::store64):
(JSC::MacroAssemblerARM64::store64WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store32):
(JSC::MacroAssemblerARM64::store32WithAddressOffsetPatch):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::getEffectiveAddress):
(JSC::MacroAssemblerARM64::branchDoubleNonZero):
(JSC::MacroAssemblerARM64::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerARM64::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerARM64::loadDouble):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::moveConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::moveDoubleConditionallyAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::storeDouble):
(JSC::MacroAssemblerARM64::storeFloat):
(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::jump):
(JSC::MacroAssemblerARM64::tailRecursiveCall):
(JSC::MacroAssemblerARM64::setCarry):
(JSC::MacroAssemblerARM64::reemitInitialMoveWithPatch):
(JSC::MacroAssemblerARM64::isBreakpoint):
(JSC::MacroAssemblerARM64::invert):
(JSC::MacroAssemblerARM64::readCallTarget):
(JSC::MacroAssemblerARM64::replaceWithVMHalt):
(JSC::MacroAssemblerARM64::replaceWithJump):
(JSC::MacroAssemblerARM64::maxJumpReplacementSize):
(JSC::MacroAssemblerARM64::patchableJumpSize):
(JSC::MacroAssemblerARM64::repatchCall):
(JSC::MacroAssemblerARM64::makeBranch):
(JSC::MacroAssemblerARM64::makeCompareAndBranch):
(JSC::MacroAssemblerARM64::makeTestBitAndBranch):
(JSC::MacroAssemblerARM64::ARM64Condition):
(JSC::MacroAssemblerARM64::moveWithFixedWidth):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
(JSC::MacroAssemblerARM64::tryLoadWithOffset):
(JSC::MacroAssemblerARM64::tryLoadSignedWithOffset):
(JSC::MacroAssemblerARM64::tryStoreWithOffset):
(JSC::MacroAssemblerARM64::jumpAfterFloatingPointCompare):
(JSC::MacroAssemblerARM64::linkCall):

  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerMIPS.h:
  • assembler/MacroAssemblerX86Common.h:
  • assembler/ProbeStack.h:
  • Removed a forward declaration of an obsolete class.
1:27 AM Changeset in webkit [229222] by Carlos Garcia Campos
  • 26 edits in releases/WebKitGTK/webkit-2.20

Merge r228926 - Remove sleep(double) and sleepMS(double) interfaces
https://bugs.webkit.org/show_bug.cgi?id=183038

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • bytecode/SuperSampler.cpp:

(JSC::initializeSuperSampler):

Source/WebKit:

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::createPluginAsynchronously):

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):

  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WTF:

This patch removes sleep(double) and sleepMS(double) interfaces.
We can just use sleep(Seconds) instead.

  • benchmarks/LockFairnessTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CurrentTime.cpp:

(WTF::sleep):

  • wtf/CurrentTime.h:

(WTF::sleepMS): Deleted.

  • wtf/DebugUtilities.h:
  • wtf/Seconds.cpp:

(WTF::sleep): Deleted.

  • wtf/Seconds.h:
  • wtf/StackShotProfiler.h:

Tools:

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:

(PluginTest::indicateTestFailure):

  • DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:

(EvaluteJSWithinNPP_New::NPP_New):

  • DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:

(InvokeDestroysPluginWithinNPP_New::NPP_New):

  • DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
  • TestWebKitAPI/Tests/WTF/Signals.cpp:

(TEST):

  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:

(TestWebKitAPI::testThreadGroup):

  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:

(TestWebKitAPI::Util::sleep):

1:27 AM Changeset in webkit [229221] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.20

Merge r228922 - Document.open() cancels existing provisional load but not navigation policy check
https://bugs.webkit.org/show_bug.cgi?id=183012
<rdar://problem/37755831>

Reviewed by Alex Christensen.

Source/WebCore:

Test: fast/dom/Document/open-with-pending-load-async-policy.html

  • dom/Document.cpp:

(WebCore::Document::open):
The existing code was calling FrameLoader::stopAllLoaders() when the loader's state
is FrameStateProvisional. The issue is that the FrameLoader's state only gets set
to FrameStateProvisional after the policy decision for the navigation is made.
This means that we fail to cancel a pending load if is still in the policy decision
stage, which can happen when the policy decision is made asynchronously. We now
also cancel such pending navigation policy checks as well.

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
Make sure the m_delegateIsDecidingNavigationPolicy flag gets reset inside the
lambda. Otherwise, it gets reset too early when the policy decision is made
asynchronously.

LayoutTests:

Add layout test coverage.

  • fast/dom/Document/open-with-pending-load-async-policy-expected.txt: Added.
  • fast/dom/Document/open-with-pending-load-async-policy.html: Added.
1:27 AM Changeset in webkit [229220] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228917 - including both gl3.h and gl2.h when USE_OPENGL_ES is enabled
https://bugs.webkit.org/show_bug.cgi?id=183008

Reviewed by Michael Catanzaro.

Don't include GLES3 headers as we stick to GLES2 API resources.

No new tests, no behavior change.

  • platform/graphics/GLContext.cpp:
1:27 AM Changeset in webkit [229219] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228914 - [RenderTreeBuilder] Move RenderObject::insertedInto() mutation logic to RenderTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=183022
<rdar://problem/37764326>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree):

  • rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::insertChildToRenderElementInternal):
(WebCore::RenderTreeBuilder::moveChildrenTo):
(WebCore::RenderTreeBuilder::multiColumnDescendantInserted): Deleted.

  • rendering/updating/RenderTreeBuilder.h:
1:03 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
1:03 AM Changeset in webkit [229218] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.20

Merge r228594 - Remove UTF-32 BOM parsing code
https://bugs.webkit.org/show_bug.cgi?id=182900
<rdar://problem/37238717>

Patch by Daniel Bates <dabates@apple.com> on 2018-02-16
Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Update expected results now that all sub-tests pass.

  • web-platform-tests/encoding/unsupported-encodings-expected.txt:
  • web-platform-tests/encoding/utf-32-expected.txt:

Source/WebCore:

The UTF-32 encodings were removed from the text codec registry in r224747. So,
we no longer need code to encode or decode these variants.

  • dom/TextDecoder.cpp:

(WebCore::codeUnitByteSize):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::checkForBOM):
(WebCore::TextResourceDecoder::checkForHeadCharset):

  • platform/text/TextEncoding.cpp:

(WebCore::TextEncoding::isNonByteBasedEncoding const):
(WebCore::UTF32BigEndianEncoding): Deleted.
(WebCore::UTF32LittleEndianEncoding): Deleted.

  • platform/text/TextEncoding.h:
1:03 AM Changeset in webkit [229217] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228522 - [WPE] Unify build of platform-specific files in WebKit layer
https://bugs.webkit.org/show_bug.cgi?id=182696

Reviewed by Žan Doberšek.

This is easy, because all needed changes were made in the previously-landed patch.

  • CMakeLists.txt:
  • PlatformWPE.cmake:
1:03 AM Changeset in webkit [229216] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.20/Source/WebKit

Merge r228937 - Web Inspector: REGRESSION (r228349): ImageBitmap builtin is now runtime guarded
https://bugs.webkit.org/show_bug.cgi?id=183056
<rdar://problem/37799067>

Reviewed by Joseph Pecoraro.

  • WebProcess/WebPage/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::WebInspectorUI):

1:03 AM Changeset in webkit [229215] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.20/Source/WebCore

Merge r228349 - ImageBitmapRenderingContext should be Runtime guarded
https://bugs.webkit.org/show_bug.cgi?id=182665
<rdar://problem/37411410>

Reviewed by Sam Weinig.

Add a flag to ensure the ImageBitmapRenderingContext interface is only
visible when the runtime feature is enabled.

  • bindings/js/WebCoreBuiltinNames.h:
  • html/canvas/ImageBitmapRenderingContext.idl:
1:03 AM Changeset in webkit [229214] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.20

Merge r228336 - Web Inspector: Object.shallowEqual always fails when comparing array property values
https://bugs.webkit.org/show_bug.cgi?id=182634
<rdar://problem/37374639>

Reviewed by Devin Rousso.

Source/WebInspectorUI:

Object.shallowEqual should use Array.shallowEqual when comparing property
values, since strictly comparing objects/arrays is only true if both
operands reference the same Object.

  • UserInterface/Base/Utilities.js:

(value):

LayoutTests:

  • inspector/unit-tests/object-utilities-expected.txt:
  • inspector/unit-tests/object-utilities.html:
12:45 AM WebKitGTK/2.20.x edited by Carlos Garcia Campos
(diff)
12:40 AM Changeset in webkit [229213] by Carlos Garcia Campos
  • 8 edits in trunk/WebDriverTests

Unreviewed. Update Selenium WebDriver imported tests.

  • imported/selenium/importer.json:
  • imported/selenium/py/selenium/init.py:
  • imported/selenium/py/selenium/common/exceptions.py:
  • imported/selenium/py/selenium/webdriver/init.py:
  • imported/selenium/py/selenium/webdriver/remote/webelement.py:
  • imported/selenium/py/selenium/webdriver/safari/webdriver.py:
  • imported/selenium/py/test/selenium/webdriver/common/select_class_tests.py:
12:33 AM Changeset in webkit [229212] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: clicking on a disabled option element shouldn't produce an error
https://bugs.webkit.org/show_bug.cgi?id=183284

Reviewed by Brian Burg.

This was expected by selenium, but the WebDriver spec says we should simply do nothing in those cases.

14.1 Element Click.
https://w3c.github.io/webdriver/webdriver-spec.html#element-click

Fixes: imported/w3c/webdriver/tests/element_click/select.py::test_option_disabled

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::selectOptionElement):

12:30 AM Changeset in webkit [229211] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: Also ignore NoSuchwindow errors when waiting for navigation to complete
https://bugs.webkit.org/show_bug.cgi?id=183280

Reviewed by Brian Burg.

We currently ignore NoSuchFrame, but navigation or previous command might have closed the window too.

Fixes: imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testClickingOnAButtonThatClosesAnOpenWindowDoesNotCauseTheBrowserToHang

imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py::testCanCallGetWindowHandlesAfterClosingAWindow

  • Session.cpp:

(WebDriver::Session::waitForNavigationToComplete): Ignore NoSuchWindow errors.

12:28 AM Changeset in webkit [229210] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

Automation: stale elements not detected when removed from the DOM
https://bugs.webkit.org/show_bug.cgi?id=183278

Reviewed by Brian Burg.

We detect stale elements when the page is reloaded because the maps are recreated, but if an element is removed
from the DOM for the same document we keep the nodes in the maps. We should clear stale elements before
accessing the maps.

Fixes: imported/selenium/py/test/selenium/webdriver/common/webdriverwait_tests.py::testExpectedConditionStalenessOf

  • WebProcess/Automation/WebAutomationSessionProxy.js:

(let.AutomationSessionProxy.prototype.evaluateJavaScriptFunction): Call _clearStaleNodes()
(let.AutomationSessionProxy.prototype.nodeForIdentifier): Ditto.
(let.AutomationSessionProxy.prototype._clearStaleNodes): Check if cached nodes are still in document and remove them
from the maps if they aren't.

Mar 4, 2018:

6:33 PM Changeset in webkit [229209] by Yusuke Suzuki
  • 187 edits
    1 delete in trunk

[WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively
https://bugs.webkit.org/show_bug.cgi?id=183312

Reviewed by Mark Lam.

Source/JavaScriptCore:

Remove wtf/CurrentTime.h include pragma.

  • API/tests/ExecutionTimeLimitTest.cpp:

(currentCPUTimeAsJSFunctionCallback):
(testExecutionTimeLimit):

  • bytecode/SuperSampler.cpp:
  • dfg/DFGPlan.cpp:
  • heap/BlockDirectory.cpp:
  • heap/Heap.cpp:
  • heap/IncrementalSweeper.cpp:
  • inspector/agents/InspectorConsoleAgent.cpp:
  • inspector/agents/InspectorRuntimeAgent.cpp:
  • profiler/ProfilerDatabase.cpp:
  • runtime/CodeCache.h:
  • runtime/JSDateMath.cpp:
  • runtime/TypeProfilerLog.cpp:
  • runtime/VM.cpp:
  • runtime/Watchdog.cpp:

(JSC::Watchdog::shouldTerminate):
(JSC::Watchdog::startTimer):

  • testRegExp.cpp:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

Source/WebCore:

Remove wtf/CurrentTime.h include pragma.

  • Modules/geolocation/Geolocation.cpp:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
  • Modules/speech/SpeechSynthesis.cpp:
  • contentextensions/ContentExtensionCompiler.cpp:
  • contentextensions/ContentExtensionParser.cpp:
  • dom/Document.cpp:
  • dom/Element.cpp:
  • dom/Event.cpp:
  • dom/ScriptedAnimationController.cpp:
  • dom/SimulatedClick.cpp:
  • fileapi/File.cpp:
  • fileapi/FileReader.cpp:
  • history/CachedPage.cpp:
  • html/BaseDateAndTimeInputType.cpp:
  • html/DateTimeInputType.cpp:
  • html/HTMLMediaElement.cpp:
  • html/MediaController.cpp:
  • html/MediaElementSession.cpp:
  • html/MonthInputType.cpp:
  • html/TimeInputType.cpp:
  • html/parser/HTMLParserScheduler.h:
  • inspector/InspectorCanvas.cpp:
  • loader/FrameLoader.cpp:
  • loader/LoadTiming.cpp:
  • loader/NavigationScheduler.cpp:
  • loader/ProgressTracker.cpp:
  • loader/cache/CachedCSSStyleSheet.cpp:
  • loader/cache/CachedImage.cpp:
  • loader/cache/CachedResource.cpp:
  • loader/cache/MemoryCache.cpp:
  • page/DOMTimer.cpp:
  • page/DOMWindow.cpp:
  • page/DragController.cpp:
  • page/EventHandler.cpp:
  • page/FocusController.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:
  • page/Performance.cpp:
  • page/PerformanceTiming.cpp:
  • page/animation/AnimationBase.cpp:
  • page/animation/CSSAnimationController.cpp:
  • page/mac/WheelEventDeltaFilterMac.mm:
  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
  • platform/ScrollAnimationKinetic.cpp:
  • platform/ScrollAnimationSmooth.cpp:
  • platform/ThreadTimers.cpp:
  • platform/Timer.cpp:
  • platform/audio/mac/AudioSampleDataSource.mm:
  • platform/cocoa/ScrollController.mm:
  • platform/gamepad/cocoa/GameControllerGamepad.mm:
  • platform/gamepad/mac/HIDGamepad.cpp:
  • platform/graphics/BitmapImage.cpp:
  • platform/graphics/DisplayRefreshMonitorManager.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/LayerPool.cpp:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:
  • platform/graphics/ca/win/PlatformCALayerWin.cpp:
  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
  • platform/graphics/texmap/BitmapTexturePool.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
  • platform/graphics/texmap/TextureMapper.cpp:
  • platform/graphics/texmap/TextureMapperAnimation.cpp:
  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:
  • platform/graphics/win/GraphicsLayerDirect2D.cpp:
  • platform/gtk/PlatformKeyboardEventGtk.cpp:
  • platform/gtk/ScrollAnimatorGtk.cpp:
  • platform/ios/LegacyTileCache.mm:
  • platform/ios/LegacyTileLayerPool.mm:
  • platform/ios/ScrollViewIOS.mm:
  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:
  • platform/mock/MockRealtimeMediaSource.cpp:
  • platform/mock/MockRealtimeVideoSource.cpp:
  • platform/network/CacheValidation.cpp:
  • platform/network/DNSResolveQueue.cpp:
  • platform/network/ResourceResponseBase.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:
  • platform/network/soup/ResourceHandleSoup.cpp:
  • platform/text/TextEncodingRegistry.cpp:
  • platform/text/win/LocaleWin.cpp:
  • platform/win/MainThreadSharedTimerWin.cpp:
  • platform/win/PlatformMouseEventWin.cpp:
  • rendering/RenderLayerCompositor.cpp:
  • rendering/RenderProgress.cpp:
  • svg/animation/SMILTimeContainer.cpp:
  • testing/MockGamepad.cpp:
  • workers/WorkerRunLoop.cpp:

Source/WebCore/PAL:

Remove wtf/CurrentTime.h include pragma.

  • pal/system/ClockGeneric.cpp:

Source/WebKit:

Remove wtf/CurrentTime.h include pragma.

  • NetworkProcess/NetworkResourceLoader.cpp:
  • NetworkProcess/cache/CacheStorageEngineCache.cpp:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
  • Platform/IPC/Connection.cpp:
  • Platform/unix/SharedMemoryUnix.cpp:
  • PluginProcess/WebProcessConnection.cpp:
  • Shared/ios/NativeWebTouchEventIOS.mm:
  • UIProcess/DrawingAreaProxyImpl.cpp:
  • UIProcess/ios/WKContentView.mm:
  • UIProcess/linux/MemoryPressureMonitor.cpp:
  • WebProcess/Gamepad/WebGamepad.cpp:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:
  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
  • WebProcess/WebProcess.cpp:
  • WebProcess/cocoa/WebProcessCocoa.mm:
  • WebProcess/gtk/WebProcessMainGtk.cpp:
  • WebProcess/win/WebProcessMainWin.cpp:
  • WebProcess/wpe/WebProcessMainWPE.cpp:

Source/WebKitLegacy/mac:

Remove wtf/CurrentTime.h include pragma.

  • WebView/WebFrame.mm:
  • WebView/WebPDFView.mm:

Source/WebKitLegacy/win:

Remove wtf/CurrentTime.h include pragma.

  • WebDownload.cpp:
  • WebDownloadCFNet.cpp:
  • WebDropSource.cpp:

Source/WTF:

  1. currentCPUTime to CPUTime.h. It is now defined as CPUTime::forCurrentThread.

We also removes fallback implementation for currentCPUTime since (1) that implementation
is wrong and (2) no environments we support needs this.

  1. sleep(Seconds) to Seconds.h. Since sleep(MonotonicTime) and sleep(WallTime) are defined

in MonotonicTime.h and WallTime.h, this code move is natural.

  1. Remove wtf/CurrentTime.h since nothing is defined now. But we keep CurrentTime.cpp to

consolidate various time-source implementations in one place.

  • WTF.xcodeproj/project.pbxproj:
  • benchmarks/ConditionSpeedTest.cpp:
  • benchmarks/LockFairnessTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CMakeLists.txt:
  • wtf/CPUTime.h:
  • wtf/CurrentTime.cpp:

(WTF::currentCPUTime): Deleted.
(WTF::sleep): Deleted.

  • wtf/CurrentTime.h: Removed.
  • wtf/DateMath.cpp:
  • wtf/DebugUtilities.h:
  • wtf/FastMalloc.cpp:
  • wtf/MainThread.cpp:
  • wtf/MonotonicTime.cpp:
  • wtf/ParkingLot.cpp:
  • wtf/Seconds.cpp:

(WTF::sleep):

  • wtf/Seconds.h:
  • wtf/StackShotProfiler.h:
  • wtf/Stopwatch.h:
  • wtf/ThreadingPthreads.cpp:
  • wtf/ThreadingWin.cpp:
  • wtf/cocoa/CPUTimeCocoa.mm:

(WTF::CPUTime::forCurrentThread):

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:
  • wtf/linux/MemoryPressureHandlerLinux.cpp:
  • wtf/unix/CPUTimeUnix.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/CPUTimeWin.cpp:

(WTF::CPUTime::forCurrentThread):

  • wtf/win/RunLoopWin.cpp:

Tools:

Remove wtf/CurrentTime.h include pragma.

  • DumpRenderTree/TestNetscapePlugIn/PluginTest.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/EvaluateJSWithinNPP_New.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/InvokeDestroysPluginWithinNPP_New.cpp:
  • DumpRenderTree/TestNetscapePlugIn/Tests/SlowNPPNew.cpp:
  • TestWebKitAPI/Tests/WTF/Condition.cpp:
  • TestWebKitAPI/Tests/WTF/Signals.cpp:
  • TestWebKitAPI/Tests/WTF/ThreadGroup.cpp:
  • TestWebKitAPI/Tests/WTF/WorkQueue.cpp:
  • TestWebKitAPI/Tests/WebKitCocoa/PictureInPictureDelegate.mm:
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
  • TestWebKitAPI/jsconly/PlatformUtilitiesJSCOnly.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
6:15 PM Changeset in webkit [229208] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[WTF] Use builtin_xxx_overflow for CheckedArithmetic
https://bugs.webkit.org/show_bug.cgi?id=183319

Reviewed by Darin Adler.

GCC and Clang has the builtins for arithmetic operations with overflow flags.
CheckedArithmetic operations can be done with this builtins. Since the compiler
can use overflow flags, potentially this is more efficient. CheckedArithmetic
already has TestWebKitAPI tests and we ensured the tests pass.

  • wtf/CheckedArithmetic.h:
4:44 PM Changeset in webkit [229207] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183322

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:59 PM Changeset in webkit [229206] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Automation: script evaluations via WebDriver should have a user gesture indicator
https://bugs.webkit.org/show_bug.cgi?id=183230
<rdar://problem/37959739>

Reviewed by Andy Estes.

APIs that normally require a user gesture should just work when using via WebDriver.
To support cases where tests need to simulate user actions with JavaScript, use a
fake user gesture, similar to how -[WKWebView evaluateJavaScript:] forces a user
gesture when clients evaluate JavaScript in their web view.

No new tests, this is covered by W3C tests that use the Fullscreen API.
This API does nothing if there is no user gesture; with this patch, it just works.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

12:03 PM Changeset in webkit [229205] by timothy_horton@apple.com
  • 13 edits in trunk

Make !ENABLE(DATA_DETECTION) iOS build actually succeed
https://bugs.webkit.org/show_bug.cgi?id=183283
<rdar://problem/38062148>

Reviewed by Sam Weinig.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
Guard some more code with ENABLE(DATA_DETECTION).

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
11:37 AM Changeset in webkit [229204] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Building with ONLY_ACTIVE_ARCH=NO and ARCHS=x86_64 fails
https://bugs.webkit.org/show_bug.cgi?id=183320

Reviewed by Tim Horton.

  • Configurations/PluginService.32.xcconfig: If the Apple build tool specifies RC_ARCHS=x86_64, then let the service build for x86_64, but don’t install it.
8:57 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:56 AM Changeset in webkit [229203] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[l10n] Updated Indonesian translation for WebKitGTK+
https://bugs.webkit.org/show_bug.cgi?id=183318

Patch by Andika Triwidada <atriwidada@gnome.org> on 2018-03-04
Rubber-stamped by Michael Catanzaro.

  • id.po:
3:08 AM WebKitGTK/2.20.x edited by Philippe Normand
(diff)

Mar 3, 2018:

9:19 PM Changeset in webkit [229202] by commit-queue@webkit.org
  • 5 edits in trunk

Delete incorrect version of clampTo() function from SVGToOTFFontConversion.cpp
https://bugs.webkit.org/show_bug.cgi?id=183165

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-03-03
Reviewed by Darin Adler.

Source/WebCore:

Some of the calls in SVGToOTFFontConversion.cpp were directed to the function
in MathExtras.h while the rest were directed to this local static function.
There should not be two versions with the same name while they are supposed
to do the same thing. Besides, the local version does not work correctly
if the type of the argument's max limit is less the max limit of the returned
type, e.g. char -> uint16_t.

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::clampTo): Deleted.

LayoutTests:

Re-baseline the results of these two tests since the local version of
clampTo() was not returning the expected results always.

  • platform/ios/svg/W3C-SVG-1.1/text-altglyph-01-b-expected.txt:
  • platform/ios/svg/text/text-altglyph-01-b-expected.txt:
3:27 PM Changeset in webkit [229201] by Brent Fulgham
  • 6 edits in trunk/Source/WebKit

Notify the NetworkProcess when a session is servicing an automation client
https://bugs.webkit.org/show_bug.cgi?id=183306
<rdar://problem/37835783>

Reviewed by Brian Burg.

Network loads servicing WebDriver are done through an ephemeral session. While this is great
for protecting a developer's machine from sharing state with test runs, it has the unintended
effect of blocking certain logging operations.

We do not log content in ephemeral sessions to protect user privacy. However, ephemeral sessions
generated by WebDriver should participate in logging so that proper testing (with logging) can
be done.

This patch signals the NetworkProcess when an ephemeral session (created for automation purposes)
is created, so that it can allow logging.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::destroySession): Remove controlled-by-automation entry.
(WebKit::NetworkProcess::sessionIsControlledByAutomation const): Added.
(WebKit::NetworkProcess::setSessionIsControlledByAutomation): Added.

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

(WebKit::NetworkResourceLoader::isAlwaysOnLoggingAllowed const): Checks if the relevant session
is servicing an automation client, and returns true if it is.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Signal the network process if this page is being created
for an automation client.

12:13 PM Changeset in webkit [229200] by Alan Bujtas
  • 10 edits in trunk

[RenderTreeBuilder] Move styleDidChange mutation logic to RenderTreeUpdater
https://bugs.webkit.org/show_bug.cgi?id=183273
<rdar://problem/38054892>

Reviewed by Antti Koivisto.

Source/WebCore:

Covered by existing tests.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::styleDidChange):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::styleDidChange):
(WebCore::RenderElement::noLongerAffectsParentBlock const): Deleted.

  • rendering/RenderElement.h:
  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

LayoutTests:

This is just a different repaint order.

  • fast/repaint/absolute-position-change-containing-block-expected.txt:
11:02 AM Changeset in webkit [229199] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

[GTK] POTFILES.in is out of date
https://bugs.webkit.org/show_bug.cgi?id=183313

Unreviewed, remove WebErrorsGLib.cpp after r229193

  • POTFILES.in:
2:18 AM Changeset in webkit [229198] by bshafiei@apple.com
  • 7 edits in tags/Safari-606.1.6.0.1/Source

Versioning.

1:43 AM Changeset in webkit [229197] by bshafiei@apple.com
  • 1 copy in tags/Safari-606.1.6.0.1

Tag Safari-606.1.6.0.1.

12:57 AM Changeset in webkit [229196] by yoav@yoav.ws
  • 5 edits
    3 adds in trunk

Source/WebCore:
Link headers for subresources are not being processes
https://bugs.webkit.org/show_bug.cgi?id=181789

Reviewed by Youenn Fablet.

Triggers Link header processing when the Link headers arrive on a subresource.

Test: http/tests/preload/link-header-on-subresource.html

  • loader/LinkLoader.cpp:

(WebCore::LinkLoader::loadLinksFromHeader): Change the media check conditions.

  • loader/LinkLoader.h: Add a third state for media checks.
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse): Preload links from headers for subresources.

LayoutTests:
Link headers for subresources are not being processed
https://bugs.webkit.org/show_bug.cgi?id=181789

Reviewed by Youenn Fablet.

Adds tests to make sure Link headers on subresources are being processed.

  • http/tests/preload/link-header-on-subresource-expected.txt: Added.
  • http/tests/preload/link-header-on-subresource.html: Added.
  • http/tests/preload/resources/dummy-preloads-subresource.css.php: Added.

Mar 2, 2018:

11:58 PM Changeset in webkit [229195] by Yusuke Suzuki
  • 15 edits in trunk/Source

[WTF] Remove RunLoop and RunLoop::Timer's interface using double as seconds
https://bugs.webkit.org/show_bug.cgi?id=183293

Reviewed by Alex Christensen.

Source/WebCore:

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture):

Source/WebKit:

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::scheduleUpdate):
(WebKit::CompositingRunLoop::compositionCompleted):
(WebKit::CompositingRunLoop::updateCompleted):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp:

(WebKit::ThreadedDisplayRefreshMonitor::dispatchDisplayRefreshCallback):

Source/WTF:

This patch mainly drops startRepeating(double) and startOneShot(double) interfaces.
Use startRepeating(Seconds) and startOneShot(Seconds) instead.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):

  • wtf/RunLoop.h:

(WTF::RunLoop::TimerBase::startRepeating):
(WTF::RunLoop::TimerBase::startOneShot):
(WTF::RunLoop::TimerBase::startInternal):

  • wtf/RunLoopTimer.h:
  • wtf/RunLoopTimerCF.cpp:

(WTF::RunLoopTimerBase::start):

  • wtf/cf/RunLoopCF.cpp:

(WTF::RunLoop::runForDuration):
(WTF::RunLoop::TimerBase::start):

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::TimerBase::start):

  • wtf/glib/RunLoopGLib.cpp:

(WTF::RunLoop::TimerBase::start):

  • wtf/win/MemoryPressureHandlerWin.cpp:

(WTF::MemoryPressureHandler::install):

  • wtf/win/RunLoopWin.cpp:

(WTF::RunLoop::TimerBase::start):

4:07 PM Changeset in webkit [229194] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Remove NP_GLContext since it is unsupported
https://bugs.webkit.org/show_bug.cgi?id=183305
<rdar://problem/36875555>

Reviewed by Simon Fraser.

  • plugins/npapi.h: Remove NP_GLContext and mention that

it is not supported.

4:07 PM Changeset in webkit [229193] by don.olmstead@sony.com
  • 4 edits
    1 delete in trunk/Source/WebKit

Share common WebError implementation
https://bugs.webkit.org/show_bug.cgi?id=183303

Reviewed by Ryosuke Niwa.

  • Shared/WebErrors.cpp:

(WebKit::cancelledError):
(WebKit::fileDoesNotExistError):

  • Shared/glib/WebErrorsGlib.cpp: Removed.
  • SourcesGTK.txt:
  • SourcesWPE.txt:
3:15 PM Changeset in webkit [229192] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Service worker test gardening
https://bugs.webkit.org/show_bug.cgi?id=183264
<rdar://problem/38048743>

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02

3:14 PM Changeset in webkit [229191] by Chris Dumez
  • 7 edits
    2 copies
    9 adds
    1 delete in trunk

imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html crashes with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183294
<rdar://problem/38073596>

Reviewed by Youenn Fablet.

Source/WebCore:

Drop code that was added to SubresourceLoader::willCancel() in r228852. The purpose of this code
was to make sure that SubresourceLoader::m_policyForResponseCompletionHandler always gets called,
even when the load is cancelled. However, this code is not needed (since m_policyForResponseCompletionHandler
is a CompletionHandler, an assertion will be hit if we fail to call it and we'll know). Calling
the completionHandler inside SubresourceLoader::willCancel() is too early and leads to crashes.

The completionHandler currently gets called DocumentLoader::responseReceived() via a call to
mainResourceLoader->didReceiveResponsePolicy(). Note that in r229177, we made sure that the
call to didReceiveResponsePolicy() happens *after* the call to continueAfterContentPolicy()
to maintain our non-async policy delegate behavior. However, continueAfterContentPolicy()
would end up calling willCancel() and call the completionHandler when shouldContinue was
false.

Test: http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willCancel):

LayoutTests:

Add layout test coverage.

  • http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate-expected.txt: Added.
  • http/wpt/html/browsers/history/the-location-interface/location-protocol-setter-non-broken-async-delegate.html: Added.
2:55 PM Changeset in webkit [229190] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Fix the build after r229185 and r229184

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

  • platform/ios/DeviceOrientationClientIOS.h:
  • platform/ios/DeviceOrientationClientIOS.mm:
2:13 PM Changeset in webkit [229189] by don.olmstead@sony.com
  • 1 edit
    1 add in trunk

Add clang-format configuration
https://bugs.webkit.org/show_bug.cgi?id=183302

Reviewed by Ryosuke Niwa.

  • .clang-format: Added.
2:10 PM Changeset in webkit [229188] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

LayoutTest imported/w3c/web-platform-tests/service-workers/service-worker/fetch-event-within-sw.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179248
<rdar://problem/35377756>

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Chris Dumez.

In case we go up to the initializeSize step and Caches was cleared
between the time we stated to initialize and the time we got there,
we need to make as if Caches was not initialized,
thus keeping m_isInitialized to false and m_storage to nullptr.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::initializeSize):

2:00 PM Changeset in webkit [229187] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Build fix after r229174
https://bugs.webkit.org/show_bug.cgi?id=183301

Patch by Christopher Reid <chris.reid@sony.com> on 2018-03-02
Reviewed by Alex Christensen.

Updating MemoryPressureHandler::holdOff to use Seconds instead of unsigned.

  • wtf/MemoryPressureHandler.cpp:
12:19 PM Changeset in webkit [229186] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make the LLInt probe work for ARM64.
https://bugs.webkit.org/show_bug.cgi?id=183298
<rdar://problem/38077413>

Reviewed by Filip Pizlo.

  • llint/LowLevelInterpreter.asm:
11:55 AM Changeset in webkit [229185] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebCore

Make the !ENABLE(DEVICE_ORIENTATION) iOS build succeed
https://bugs.webkit.org/show_bug.cgi?id=183296

Reviewed by Dan Bernstein.

  • platform/ios/DeviceMotionClientIOS.h:
  • platform/ios/DeviceMotionClientIOS.mm:
  • platform/ios/WebCoreMotionManager.h:
  • platform/ios/WebCoreMotionManager.mm:
11:47 AM Changeset in webkit [229184] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Make it possible to build for iOS without Celestial
https://bugs.webkit.org/show_bug.cgi?id=183295
<rdar://problem/38074468>

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::exernalDeviceDisplayNameForPlayer):

Source/WTF:

  • wtf/Platform.h:
11:17 AM Changeset in webkit [229183] by commit-queue@webkit.org
  • 12 edits in trunk/Source

Clients should register to StorageProcess with their service worker registration identifier
https://bugs.webkit.org/show_bug.cgi?id=182313
<rdar://problem/38044403>

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Chris Dumez.

Source/WebCore:

Relanding with fixing matchAll for uncontrolled clients.

No observable change of behavior in regular conditions.
When service worker process crashes, the service worker identifiers sent by the WebProcess might be wrong
and we will not be able to retrieve the registration from these identifiers.
The storage process will be able to still process correctly messages coming from the WebProcess to register clients of the registration.
Otherwise, there is a chance that WebProcess clients will not be added to the SWServerRegistration.m_clientsUsingRegistration maps.

  • dom/Document.cpp:

(WebCore::Document::setServiceWorkerConnection):

  • workers/service/SWClientConnection.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::matchAll):
(WebCore::SWServer::claim):
(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::setClientActiveWorker): Deleted.

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::activate):

Source/WebKit:

Relanding.

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::registerServiceWorkerClient):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::registerServiceWorkerClient):

  • WebProcess/Storage/WebSWClientConnection.h:
10:33 AM Changeset in webkit [229182] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Make it possible to disable WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=183281

Reviewed by Dan Bates.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _isBackground]):
(-[WKWebView _isDisplayingPDF]):
(-[WKWebView _dataForDisplayedPDF]):
(-[WKWebView _suggestedFilenameForDisplayedPDF]):

  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry init]):

  • UIProcess/ios/WKPDFView.h:
  • UIProcess/ios/WKPDFView.mm:
  • wtf/FeatureDefines.h:
10:29 AM Changeset in webkit [229181] by commit-queue@webkit.org
  • 7 edits in trunk

Loads for a Document controlled by a Service Worker should not use AppCache
https://bugs.webkit.org/show_bug.cgi?id=183148

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/appcache-ordering-main.https-expected.txt:

Source/WebCore:

Covered by updated test.

Postponing document loading through app cache after matching service worker registration.
Trying to load through app cache only if there is no service worker registration.

Disabling app cache for any load that has a service worker registration identifier.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::tryLoadingRequestFromApplicationCache):
(WebCore::DocumentLoader::tryLoadingRedirectRequestFromApplicationCache):
(WebCore::DocumentLoader::restartLoadingDueToServiceWorkerRegistrationChange):
(WebCore::DocumentLoader::scheduleSubstituteResourceLoad):
(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/DocumentLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::maybeLoadMainResource):
(WebCore::ApplicationCacheHost::maybeLoadMainResourceForRedirect):
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):

  • loader/appcache/ApplicationCacheHost.h:
9:55 AM Changeset in webkit [229180] by Yusuke Suzuki
  • 10 edits in trunk/Source

[JSC] Annotate more classes with WTF_MAKE_FAST_ALLOCATED
https://bugs.webkit.org/show_bug.cgi?id=183279

Reviewed by JF Bastien.

Source/JavaScriptCore:

  • bytecode/BytecodeIntrinsicRegistry.h:
  • ftl/FTLThunks.h:
  • heap/CodeBlockSet.h:
  • heap/GCSegmentedArray.h:
  • heap/MachineStackMarker.h:
  • heap/MarkingConstraintSet.h:

Source/WTF:

  • wtf/SimpleStats.h:
  • wtf/ThreadGroup.h:
9:52 AM Changeset in webkit [229179] by Chris Dumez
  • 3 edits
    2 adds in trunk

fast/events/before-unload-remove-itself.html crashes with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183290
<rdar://problem/38069045>

Reviewed by Alex Christensen.

Source/WebCore:

When the navigation policy happens asynchronously, it is now possible for the
Frame / FrameLoader to get destroyed between the point that policyChecker().checkNavigationPolicy()
is called and when continueLoadAfterNavigationPolicy() is called.

To address the issue, we now protect the Frame and capture it in the lambda passed
to policyChecker().checkNavigationPolicy().

Test: fast/events/before-unload-remove-itself-async-delegate.html

  • loader/FrameLoader.cpp:

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

LayoutTests:

Add layout test coverage.

  • fast/events/before-unload-remove-itself-async-delegate-expected.txt: Added.
  • fast/events/before-unload-remove-itself-async-delegate.html: Added.
9:48 AM Changeset in webkit [229178] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

WebProcessProxy should handle its completion handler at destruction time
https://bugs.webkit.org/show_bug.cgi?id=183224

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Brady Eidson.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::~WebProcessProxy):

  • UIProcess/WebProcessProxy.h:
9:41 AM Changeset in webkit [229177] by Chris Dumez
  • 15 edits
    2 adds in trunk

Converting a load to a download does not work with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183254
<rdar://problem/38035334>

Reviewed by Youenn Fablet.

Source/WebCore:

Update DocumentLoader::responseReceived() to call didReceiveResponsePolicy()
on the mainResourceLoader *after* calling continueAfterContentPolicy(),
not *before*. This makes sure that the WebResourceLoader sends the
NetworkResourceLoader::ContinueDidReceiveResponse IPC back to the Network
Process *after* the policy decision has been processed, which restores the
pre-r228852 order.

Test: fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

Tools:

Add layout test infrastructure for responding to the decidePolicyForNavigationResponse
delegate asynchronously.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::decidePolicyForResponse):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setShouldDecideResponsePolicyAfterDelay):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::shouldDecideResponsePolicyAfterDelay const):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::decidePolicyForNavigationResponse):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setShouldDecideResponsePolicyAfterDelay):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate-expected.txt: Added.
  • fast/dom/HTMLAnchorElement/anchor-file-blob-convert-to-download-async-delegate.html: Added.
9:39 AM Changeset in webkit [229176] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Some RealtimeMediaSource methods do not need to be marked as virtual
https://bugs.webkit.org/show_bug.cgi?id=183272

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Eric Carlson.

No change of behavior.

  • platform/mediastream/RealtimeMediaSource.h:
9:37 AM Changeset in webkit [229175] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Update WebContent process sandbox IOKit properties
https://bugs.webkit.org/show_bug.cgi?id=183269
<rdar://problem/37853282>

Reviewed by Eric Carlson.

  • WebProcess/com.apple.WebProcess.sb.in:
9:13 AM Changeset in webkit [229174] by Yusuke Suzuki
  • 177 edits in trunk/Source

Remove monotonicallyIncreasingTime
https://bugs.webkit.org/show_bug.cgi?id=182911

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

  • debugger/Debugger.cpp:

(JSC::Debugger::willEvaluateScript):
(JSC::Debugger::didEvaluateScript):

  • debugger/Debugger.h:
  • debugger/ScriptProfilingScope.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointActionProbe):

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::snapshot):
(Inspector::InspectorHeapAgent::didGarbageCollect):
(Inspector::InspectorHeapAgent::dispatchGarbageCollectedEvent):

  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::startTracking):
(Inspector::InspectorScriptProfilerAgent::willEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::didEvaluateScript):
(Inspector::InspectorScriptProfilerAgent::addEvent):
(Inspector::buildSamples):

  • inspector/agents/InspectorScriptProfilerAgent.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::takeSample):

  • runtime/SamplingProfiler.h:

Source/WebCore:

While generic code uses MonotonicTime, CAAnimation uses media time (CFTimeInterval).
At this boundary, we convert MonotonicTime to media time, this is the same logic to
the code before this patch.

  • Modules/gamepad/Gamepad.h:
  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::SourceBuffer):
(WebCore::SourceBuffer::monitorBufferingRate):

  • Modules/mediasource/SourceBuffer.h:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::fireEvent):

  • Modules/speech/SpeechSynthesisUtterance.h:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

  • contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::parseRuleList):

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::actionsForResourceLoad const):

  • dom/Element.cpp:

(WebCore::Element::setActive):

  • history/CachedPage.cpp:

(WebCore::CachedPage::CachedPage):
(WebCore::CachedPage::hasExpired const):

  • history/CachedPage.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::startProgressEventTimer):
(WebCore::HTMLMediaElement::progressEventTimerFired):
(WebCore::HTMLMediaElement::refreshCachedTime const):
(WebCore::HTMLMediaElement::invalidateCachedTime const):
(WebCore::HTMLMediaElement::currentMediaTime const):
(WebCore::HTMLMediaElement::startPlaybackProgressTimer):

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::mostRecentUserInteractionTime const):
(WebCore::MediaElementSession::resetPlaybackSessionState):

  • html/MediaElementSession.h:
  • html/parser/HTMLParserScheduler.cpp:

(WebCore::PumpSession::PumpSession):
(WebCore::HTMLParserScheduler::HTMLParserScheduler):

  • html/parser/HTMLParserScheduler.h:

(WebCore::HTMLParserScheduler::checkForYield):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::recordAction):
(WebCore::InspectorCanvas::finalizeFrame):

  • inspector/InspectorCanvas.h:
  • inspector/agents/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::startTracking):
(WebCore::InspectorMemoryAgent::didHandleMemoryPressure):
(WebCore::InspectorMemoryAgent::collectSample):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForTiming):
(WebCore::InspectorNetworkAgent::timestamp):
(WebCore::InspectorNetworkAgent::didFinishLoading):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::timestamp):

  • inspector/agents/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::timestamp):

  • inspector/agents/WebHeapAgent.cpp:

(WebCore::WebHeapAgent::dispatchGarbageCollectedEvent):

  • inspector/agents/WebHeapAgent.h:
  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::didDraw):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::didAccessDecodedData):

  • loader/cache/CachedResource.h:
  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::pruneLiveResourcesToSize):

  • page/EventHandler.cpp:

(WebCore::MaximumDurationTracker::MaximumDurationTracker):
(WebCore::MaximumDurationTracker::~MaximumDurationTracker):

  • page/FocusController.cpp:

(WebCore::FocusController::setFocusedElement):
(WebCore::FocusController::timeSinceFocusWasSet const):

  • page/FocusController.h:
  • page/FrameView.cpp:

(WebCore::FrameView::reset):
(WebCore::FrameView::willPaintContents):
(WebCore::FrameView::didPaintContents):

  • page/FrameView.h:
  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::freezeAtTime):
(WebCore::AnimationBase::beginAnimationUpdateTime const):

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::onAnimationStartResponse):

  • page/animation/CSSAnimationController.cpp:

(WebCore::CSSAnimationControllerPrivate::beginAnimationUpdateTime):
(WebCore::CSSAnimationControllerPrivate::receivedStartTimeResponse):
(WebCore::CSSAnimationControllerPrivate::startTimeResponse):
(WebCore::CSSAnimationController::notifyAnimationStarted):

  • page/animation/CSSAnimationController.h:
  • page/animation/CSSAnimationControllerPrivate.h:
  • page/mac/WheelEventDeltaFilterMac.h:
  • page/mac/WheelEventDeltaFilterMac.mm:

(WebCore::WheelEventDeltaFilterMac::beginFilteringDeltas):
(WebCore::WheelEventDeltaFilterMac::updateFromDelta):
(WebCore::WheelEventDeltaFilterMac::endFilteringDeltas):

  • platform/ControlStates.h:

(WebCore::ControlStates::timeSinceControlWasFocused const):
(WebCore::ControlStates::setTimeSinceControlWasFocused):

  • platform/PlatformSpeechSynthesisUtterance.h:

(WebCore::PlatformSpeechSynthesisUtterance::startTime const):
(WebCore::PlatformSpeechSynthesisUtterance::setStartTime):

  • platform/gamepad/PlatformGamepad.h:

(WebCore::PlatformGamepad::lastUpdateTime const):
(WebCore::PlatformGamepad::connectTime const):
(WebCore::PlatformGamepad::PlatformGamepad):

  • platform/gamepad/cocoa/GameControllerGamepad.mm:

(WebCore::GameControllerGamepad::setupAsExtendedGamepad):
(WebCore::GameControllerGamepad::setupAsGamepad):

  • platform/gamepad/mac/HIDGamepad.cpp:

(WebCore::HIDGamepad::HIDGamepad):
(WebCore::HIDGamepad::valueChanged):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::suspendAnimations):

  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::notifyAnimationStarted):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::LayerClient::platformCALayerAnimationStarted):
(WebCore::AVFWrapper::createImageForTimeInRect):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::addAnimation):
(WebCore::GraphicsLayerCA::pauseAnimation):
(WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
(WebCore::GraphicsLayerCA::setAnimationOnLayer):
(WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:

(WebCore::GraphicsLayerCA::LayerPropertyAnimation::LayerPropertyAnimation):
(WebCore::GraphicsLayerCA::AnimationProcessingAction::AnimationProcessingAction):

  • platform/graphics/ca/LayerPool.cpp:

(WebCore::LayerPool::LayerPool):
(WebCore::LayerPool::addLayer):
(WebCore::LayerPool::decayedCapacity const):
(WebCore::LayerPool::pruneTimerFired):

  • platform/graphics/ca/LayerPool.h:
  • platform/graphics/ca/PlatformCAAnimation.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/PlatformCALayerClient.h:

(WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::startedNewCohort):
(WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
(WebCore::TileGrid::cohortRemovalTimerFired):

  • platform/graphics/ca/TileGrid.h:

(WebCore::TileGrid::TileCohortInfo::TileCohortInfo):

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(mediaTimeToCurrentTime):
(-[WebAnimationDelegate animationDidStart:]):
(PlatformCALayerCocoa::animationStarted):

  • platform/graphics/ca/win/CACFLayerTreeHost.cpp:

(WebCore::CACFLayerTreeHost::notifyAnimationsStarted):

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::animationStarted):
(PlatformCALayerWin::layerTreeAsString const):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::decodeSample):

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):

  • platform/graphics/texmap/BitmapTexturePool.h:

(WebCore::BitmapTexturePool::Entry::markIsInUse):
(WebCore::BitmapTexturePool::Entry::canBeReleased const):
(): Deleted.

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
(WebCore::GraphicsLayerTextureMapper::addAnimation):
(WebCore::GraphicsLayerTextureMapper::pauseAnimation):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.h:
  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimation::TextureMapperAnimation):
(WebCore::TextureMapperAnimation::apply):
(WebCore::TextureMapperAnimation::pause):
(WebCore::TextureMapperAnimation::resume):
(WebCore::TextureMapperAnimation::computeTotalRunningTime):
(WebCore::TextureMapperAnimations::pause):
(WebCore::TextureMapperAnimations::suspend):

  • platform/graphics/texmap/TextureMapperAnimation.h:

(WebCore::TextureMapperAnimation::startTime const):
(WebCore::TextureMapperAnimation::pauseTime const):

  • platform/graphics/texmap/TextureMapperFPSCounter.cpp:

(WebCore::TextureMapperFPSCounter::TextureMapperFPSCounter):
(WebCore::TextureMapperFPSCounter::updateFPSAndDisplay):

  • platform/graphics/texmap/TextureMapperFPSCounter.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

(WebCore::TextureMapperPlatformLayerBuffer::markUsed):
(WebCore::TextureMapperPlatformLayerBuffer::lastUsedTime const):
(): Deleted.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::releaseUnusedBuffersTimerFired):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::addAnimation):
(WebCore::CoordinatedGraphicsLayer::pauseAnimation):
(WebCore::CoordinatedGraphicsLayer::suspendAnimations):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::sendFrame):

  • platform/mediastream/libwebrtc/LibWebRTCAudioModule.cpp:

(WebCore::LibWebRTCAudioModule::StartPlayoutOnAudioThread):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::startProducingData):
(WebCore::DisplayCaptureSourceCocoa::stopProducingData):
(WebCore::DisplayCaptureSourceCocoa::elapsedTime):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
  • platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:

(WebCore::MockRealtimeAudioSourceMac::render):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer):

  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::sampleBufferFromPixelBuffer):
(WebCore::ScreenDisplayCaptureSourceMac::frameAvailable):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::startProducingData):
(WebCore::MockRealtimeAudioSource::stopProducingData):
(WebCore::MockRealtimeAudioSource::elapsedTime):
(WebCore::MockRealtimeAudioSource::tick):
(WebCore::MockRealtimeAudioSource::delaySamples):

  • platform/mock/MockRealtimeAudioSource.h:

(WebCore::MockRealtimeAudioSource::render):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::startProducingData):
(WebCore::MockRealtimeVideoSource::stopProducingData):
(WebCore::MockRealtimeVideoSource::elapsedTime):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::delaySamples):
(WebCore::MockRealtimeVideoSource::generateFrame):

  • platform/mock/MockRealtimeVideoSource.h:
  • platform/network/DNSResolveQueue.cpp:

(WebCore::DNSResolveQueue::DNSResolveQueue):
(WebCore::DNSResolveQueue::isUsingProxy):

  • platform/network/DNSResolveQueue.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::suspendAnimations):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::paintFocusRing):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintAreaElementFocusRing):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::notifyAnimationStarted):
(WebCore::RenderLayerBacking::suspendAnimations):

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

(WebCore::RenderLayerCompositor::didPaintBacking):

  • rendering/RenderProgress.cpp:

(WebCore::RenderProgress::RenderProgress):
(WebCore::RenderProgress::animationProgress const):
(WebCore::RenderProgress::updateAnimationState):

  • rendering/RenderProgress.h:
  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::animationDurationForProgressBar const):

  • rendering/RenderTheme.h:
  • rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::animationDurationForProgressBar const):

  • rendering/RenderThemeGtk.h:
  • rendering/RenderThemeIOS.h:
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::animationDurationForProgressBar const):

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::animationDurationForProgressBar const):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::SMILTimeContainer):
(WebCore::SMILTimeContainer::elapsed const):
(WebCore::SMILTimeContainer::isActive const):
(WebCore::SMILTimeContainer::isPaused const):
(WebCore::SMILTimeContainer::isStarted const):
(WebCore::SMILTimeContainer::begin):
(WebCore::SMILTimeContainer::pause):
(WebCore::SMILTimeContainer::resume):
(WebCore::SMILTimeContainer::setElapsed):
(WebCore::SMILTimeContainer::timerFired):

  • svg/animation/SMILTimeContainer.h:
  • testing/Internals.cpp:

(WebCore::Internals::delayMediaStreamTrackSamples):

  • testing/MockGamepad.cpp:

(WebCore::MockGamepad::MockGamepad):
(WebCore::MockGamepad::updateDetails):
(WebCore::MockGamepad::setAxisValue):
(WebCore::MockGamepad::setButtonValue):

Source/WebCore/PAL:

  • pal/system/ClockGeneric.cpp:

(PAL::ClockGeneric::currentTime const):
(PAL::ClockGeneric::now const):

  • pal/system/ClockGeneric.h:

Source/WebKit:

  • NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::Cache::toRecordInformation):

  • Platform/IPC/ArgumentCoders.cpp:

(IPC::ArgumentCoder<Seconds>::encode):
(IPC::ArgumentCoder<Seconds>::decode):
(IPC::ArgumentCoder<MonotonicTime>::encode):
(IPC::ArgumentCoder<MonotonicTime>::decode):

  • Platform/IPC/ArgumentCoders.h:
  • Shared/Gamepad/GamepadData.cpp:

(WebKit::GamepadData::GamepadData):

  • Shared/Gamepad/GamepadData.h:

(WebKit::GamepadData::lastUpdateTime const):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MonotonicTime>::encode): Deleted.
(IPC::ArgumentCoder<MonotonicTime>::decode): Deleted.
(IPC::ArgumentCoder<Seconds>::encode): Deleted.
(IPC::ArgumentCoder<Seconds>::decode): Deleted.
ArgumentCoders for MonotonicTime and Seconds are now used internally.
Move them to Platform/IPC/ArgumentCoders.h.

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/API/glib/IconDatabase.cpp:

(WebKit::IconDatabase::iconDatabaseSyncThread):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingMonitor::start):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::stop):
(WebKit::DrawingAreaProxyImpl::DrawingMonitor::didDraw):

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/Gamepad/UIGamepad.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::acceleratedAnimationDidStart):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::animationDidStart):

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::acceleratedAnimationDidStart):

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

(mediaTimeToCurrentTime):
(-[WKAnimationDelegate animationDidStart:]):

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::animationStarted):
This argument beginTime is not CFTimeInverval actually. We add currentTimeToMediaTime
conversion here to fix this issue.

  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::animationDidStart):

  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::acceleratedAnimationDidStart):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::destroyRenderingResources):

Source/WebKitLegacy/win:

  • FullscreenVideoController.cpp:

(FullscreenVideoController::LayerClient::platformCALayerAnimationStarted):

  • Plugins/PluginMessageThrottlerWin.cpp:

(WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin):
(WebCore::PluginMessageThrottlerWin::appendMessage):

  • Plugins/PluginMessageThrottlerWin.h:
  • WebView.cpp:

(WebView::notifyAnimationStarted):

  • WebView.h:

Source/WTF:

This patch drops monotonicallyIncreasingTime and monotonicallyIncreasingTimeMS.
We have MonotonicTime API instead. This offers strongly typed MonotonicTime,
Seconds etc. This reduces the chance of bugs mixing doubles which represent milliseconds
and seconds.

Large part of this patch is mechanical one: replacing monotonicallyIncreasingTime with
MonotonicTime, using MonotonicTime and Seconds instead of raw doubles.

But this patch actually finds some bugs (but it is a bit difficult to show it as a test).
One is mixing media time (CACurrentMediaTime()) and MonotonicTime. Basically they are
super close because both uses mach_absolute_time(). But they would be slightly different.
So we should not mix them.

The second bug is GraphicsLayer::suspendAnimations(double). While CA ports (Apple, AppleWin,
iOS etc.) use this double as MonotonicTime, GTK and WPE use this double as Seconds (timeOffset).
This patch fixes it and now the signature becomes GraphicsLayer::suspendAnimations(MonotonicTime).

In this patch, we still uses bunch of double for Seconds. But fixing them at this patch increases
the size of this larger and larger. So some of them remains double. This should be fixed in
subsequent patches.

  • benchmarks/ConditionSpeedTest.cpp:
  • benchmarks/LockSpeedTest.cpp:
  • wtf/CurrentTime.cpp:

(WTF::MonotonicTime::now):
(WTF::monotonicallyIncreasingTime): Deleted.

  • wtf/CurrentTime.h:

(WTF::monotonicallyIncreasingTimeMS): Deleted.

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

(WTF::MonotonicTime::now): Deleted.

  • wtf/MonotonicTime.h:
  • wtf/ParkingLot.cpp:
  • wtf/Seconds.h:

(WTF::Seconds::nan):

  • wtf/Stopwatch.h:

(WTF::Stopwatch::reset):
(WTF::Stopwatch::start):
(WTF::Stopwatch::stop):
(WTF::Stopwatch::elapsedTime):
(WTF::Stopwatch::elapsedTimeSince):

  • wtf/cocoa/MemoryPressureHandlerCocoa.mm:

(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):

  • wtf/linux/MemoryPressureHandlerLinux.cpp:

(WTF::MemoryPressureHandler::EventFDPoller::EventFDPoller):
(WTF::MemoryPressureHandler::holdOff):
(WTF::MemoryPressureHandler::respondToMemoryPressure):

  • wtf/win/MemoryPressureHandlerWin.cpp:

(WTF::MemoryPressureHandler::holdOff):

8:55 AM Changeset in webkit [229173] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] whitelist missing AppleJPEG logging feature
https://bugs.webkit.org/show_bug.cgi?id=183270
<rdar://problem/37808612>

Reviewed by Alex Christensen.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:52 AM Changeset in webkit [229172] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

IOChannel::read and IOChannel::write can destroy the completion handler in the thread used to manipulate thread
https://bugs.webkit.org/show_bug.cgi?id=183261

Patch by Youenn Fablet <youenn@apple.com> on 2018-03-02
Reviewed by Antti Koivisto.

Moving the completion handler when being called so that it gets desttroyed in the thread it is called.

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::write):

2:47 AM Changeset in webkit [229171] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening

  • platform/gtk/TestExpectations: Add

imported/w3c/web-platform-tests/css/css-ui/text-overflow-022.html,
which started failing in the bots.

2:00 AM Changeset in webkit [229170] by Claudio Saavedra
  • 3 edits in trunk/LayoutTests

[GTK][WPE] Update js/dom static properties after r229112

Unreviewed gardening.

  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
  • platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt:
1:23 AM Changeset in webkit [229169] by commit-queue@webkit.org
  • 5 edits
    1 copy in trunk/Source/WebCore

Make LibWebRTCProvider port agnostic again after r215424
https://bugs.webkit.org/show_bug.cgi?id=183080

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-03-02
Reviewed by Youenn Fablet.

In the r215424 commit the webRTCAvailable function started to use a function from the DARWIN platform,
we have moved that code to the cocoa class and created a glib implementation that will be used in the future
to implement the LibWebRTCProviderGlib class.

No new tests, this is a refactor.

  • Sources.txt: Add the compilation of the new file.
  • platform/mediastream/libwebrtc/LibWebRTCProvider.cpp: Remove the webRTCAvailable function from this file.

(WebCore::LibWebRTCProvider::create): We want to use this even when LIBWEBRTC is not used.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable): Moved the code from the LibWebRTCProvider class.

  • platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable): Add the glib implementation, basically true, we are always
linking libwebrtc for the moment in these situations.

12:20 AM Changeset in webkit [229168] by mitz@apple.com
  • 4 edits in trunk/Source

Safari uses WebContent.Development when loading injected bundle embedded in its app bundle
https://bugs.webkit.org/show_bug.cgi?id=183275

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/mac/WebProcessProxyMac.mm:

(WebKit::WebProcessProxy::shouldAllowNonValidInjectedCode const): Return false if this is

a platform binary. We can also return false unconditionally when building for any shipping
major macOS release.

Source/WTF:

  • wtf/spi/cocoa/SecuritySPI.h: Declared SecTaskGetCodeSignStatus.
Note: See TracTimeline for information about the timeline view.