Timeline



Mar 23, 2018:

11:27 PM Changeset in webkit [229945] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the geolocation build
https://bugs.webkit.org/show_bug.cgi?id=183975

  • Modules/geolocation/ios/GeolocationPositionIOS.mm:

(WebCore::GeolocationPosition::GeolocationPosition):

11:26 PM Changeset in webkit [229944] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix the !HAVE(APP_LINKS) build
https://bugs.webkit.org/show_bug.cgi?id=183974

Reviewed by Dan Bernstein.

  • pal/spi/cocoa/LaunchServicesSPI.h:

This header is not very !HAVE(APP_LINKS) friendly.

10:56 PM Changeset in webkit [229943] by timothy_horton@apple.com
  • 15 edits in trunk

Fix the build with no pasteboard
https://bugs.webkit.org/show_bug.cgi?id=183973

Reviewed by Dan Bernstein.

  • .../Configurations/FeatureDefines.xcconfig:
  • WebView/WebView.mm:

(-[WebView _requestStartDataInteraction:globalPosition:]):
(-[WebView _getDataInteractionData]):
(-[WebView _dataOperationTextIndicator]):
(-[WebView _dragSourceAction]):
(-[WebView _draggedLinkTitle]):
(-[WebView _draggedLinkURL]):
(-[WebView _draggedElementBounds]):
(-[WebView _enteredDataInteraction:client:global:operation:]):
(-[WebView _updatedDataInteraction:client:global:operation:]):
(-[WebView _exitedDataInteraction:client:global:operation:]):
(-[WebView _performDataInteraction:client:global:operation:]):
(-[WebView _tryToPerformDataInteraction:client:global:operation:]):
(-[WebView _endedDataInteraction:global:]):
(-[WebView _dataInteractionCaretRect]):

  • WebView/WebViewPrivate.h:
7:30 PM Changeset in webkit [229942] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebKitLegacy and update install name
https://bugs.webkit.org/show_bug.cgi?id=183960
<rdar://problem/38812356>

Reviewed by Dan Bernstein.

  • Configurations/WebKitLegacy.xcconfig:
6:26 PM Changeset in webkit [229941] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: don't show checkboxes for invalid properties
https://bugs.webkit.org/show_bug.cgi?id=183951
<rdar://problem/38807602>

Reviewed by Matt Baker.

Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,):
(.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted.
Don't show checkboxes for invalid properties but still show them for duplicate properties.

6:17 PM Changeset in webkit [229940] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Enable unified text selection in select cases for gradual testing
https://bugs.webkit.org/show_bug.cgi?id=183967
<rdar://problem/38815328>

Reviewed by Tim Horton.

Enable in select places for a more gradual switch, as this is a big change and we want to make sure
it works before switching completely.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView useSelectionAssistantWithGranularity:]):

5:33 PM Changeset in webkit [229939] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[Extra zoom mode] Fix some localizable strings after r229878
https://bugs.webkit.org/show_bug.cgi?id=183963

Reviewed by Tim Horton.

The WEB_UI_STRING macro was incorrectly used for certain localized strings pertaining to extra zoom mode. To
correct this, make the "Done" string use WEB_UI_STRING with actual UI-facing text; since day, year and month
labels in the date picker are less generalizable to other UI, leave these as unique keys, but change them to
use WEB_UI_STRING_KEY instead.

Additionally, remove now-unused localizable strings for the text input view controller.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::formControlDoneButtonTitle):
(WebCore::datePickerDayLabelTitle):
(WebCore::datePickerMonthLabelTitle):
(WebCore::datePickerYearLabelTitle):

5:00 PM Changeset in webkit [229938] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Introduce and adopt HAVE(AUDIO_TOOLBOX_AUDIO_SESSION)
https://bugs.webkit.org/show_bug.cgi?id=183954
<rdar://problem/38808858>

Reviewed by Dan Bernstein.

  • wtf/Platform.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences setAudioSessionCategoryOverride:]):

4:49 PM Changeset in webkit [229937] by youenn@apple.com
  • 31 edits
    97 copies
    1127 adds in trunk

Update WPT tools to a1ec330
https://bugs.webkit.org/show_bug.cgi?id=183934

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/config.json:
  • resources/import-expectations.json:
  • web-platform-tests/config.default.json:
  • web-platform-tests/tools/: Refreshed.

Tools:

Update script to run WPT server according updated WPT tools.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:

(main):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(base_http_url):
(base_https_url):

4:48 PM Changeset in webkit [229936] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Resource Load Statistics: Pick up ITP debug mode flag from defaults
https://bugs.webkit.org/show_bug.cgi?id=183956
<rdar://problem/38559574>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:

(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):

4:46 PM Changeset in webkit [229935] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

NetworkStateNotifier::updateStateWithoutNotifying() is inefficient
https://bugs.webkit.org/show_bug.cgi?id=183760
<rdar://problem/37093299>

Reviewed by Ryosuke Niwa.

Update NetworkStateNotifier::updateStateWithoutNotifying() to stop calling
SCDynamicStoreCopyKeyList(). SCDynamicStoreCopyKeyList() is expensive as it
expects its key parameter to be a regular expression and it can match several
keys. It is also unnecessary in our case since we already have an exact key.
We now call the more efficient SCDynamicStoreCopyValue() instead, which is
the right thing to call when we have an exact key.

This change was suggested by the SC team.

This was tested manually as there is no easy way to write an automated test
for this.

In a follow-up, I also plan to call this code in the UIProcess (or NetworkProcess)
to avoid calling it once per WebProcess.

  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):

4:41 PM Changeset in webkit [229934] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed attempt to fix Windows build after r229926.

  • WebView.cpp:
4:37 PM Changeset in webkit [229933] by dbates@webkit.org
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r229868.

Caused media controls tests to timeout. Will investigate
offline.

Reverted changeset:

"CSS mask images should be retrieved using potentially CORS-
enabled fetch"
https://bugs.webkit.org/show_bug.cgi?id=179983
https://trac.webkit.org/changeset/229868

4:35 PM Changeset in webkit [229932] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: add WebKitAdditions hooks for WebInspectorUI
https://bugs.webkit.org/show_bug.cgi?id=183940
<rdar://problem/38796310>

Reviewed by Timothy Hatcher.

  • Scripts/combine-resources.pl:

(debugLog): Added. Leave in the logging I used to debug this.

(concatenateIncludedFilesMatchingPattern):
(stripIncludedFilesMatchingPattern):
(concatenateFiles): Deleted.
This function tried to do too many things. Split it into
two functions, one for stripping includes and one for concatenating
files referenced by includes.

Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes
containing that string are not combined when no input directory is passed
to the script.

  • Scripts/copy-user-interface-resources.pl:

WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT,
depending on the build style. Just try them in order and use the first
one that exists. WebInspectorUI files are in their own directory, so
we can assume there are files to process if that directory exists.

Copy Main.html to derived sources before doing any processing on it.
This makes all combining phases have the same --input-html argument.

(debugLog): Added. Leave in the logging I used to debug this.

(combineOrStripResourcesForWebKitAdditions):
(stripResourcesForWebKitAdditions):
(combineResourcesForWebKitAdditions):
Determine if WebKitAdditions exists and whether there are any
resources for WebInspectorUI present that need to be processed.

  • UserInterface/Main.html:

Add stub .js and .css WebKitAdditions files. We can add more later
if it makes sense but this is good enough to validate the build machinery.

4:28 PM Changeset in webkit [229931] by mark.lam@apple.com
  • 62 edits in trunk/Source/WebCore

Add pointer profiling hooks to the CSS JIT.
https://bugs.webkit.org/show_bug.cgi?id=183947
<rdar://problem/38803593>

Reviewed by JF Bastien.

No new tests needed. Covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • Added a missing application of WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION().
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSMapLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithOverrideBuiltins.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgableProperties.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSerialization.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::toJSNewlyCreated):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):

  • cssjit/SelectorCompiler.cpp:

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

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext):

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData const):
(WebCore::SelectorDataList::execute const):

3:47 PM Changeset in webkit [229930] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKitLegacy

Adopt WK_PLATFORM_NAME in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=183948
<rdar://problem/38803908>

Reviewed by Dan Bernstein.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:
  • postprocess-headers.sh:
3:41 PM Changeset in webkit [229929] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Local storage getItem() for an empty string returned UNDEFINED value.
https://bugs.webkit.org/show_bug.cgi?id=69138
<rdar://problem/13410974>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-03-23
Reviewed by Brady Eidson.

Source/WebCore:

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::getColumnBlobAsString):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: Added.

(-[LocalStorageMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/localstorage-empty-string-value.html: Added.
3:35 PM Changeset in webkit [229928] by Wenson Hsieh
  • 2 edits
    2 moves in trunk/Source/WebKit

[Extra zoom mode] Adopt list view controller UI for select menus
https://bugs.webkit.org/show_bug.cgi?id=183944
<rdar://problem/38799062>

Reviewed by Tim Horton.

Move UIProcess/WKSelectMenuListViewController.* to UIProcess/ios/forms, where it was intended to go.

  • UIProcess/ios/forms/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.h.
  • UIProcess/ios/forms/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.mm.
  • WebKit.xcodeproj/project.pbxproj:
3:16 PM Changeset in webkit [229927] by Chris Dumez
  • 21 edits in trunk

Promptly terminate service worker processes when they are no longer needed
https://bugs.webkit.org/show_bug.cgi?id=183873
<rdar://problem/38676995>

Reviewed by Youenn Fablet.

Source/WebCore:

The StorageProcess now keeps track of service worker clients for each security
origin. When there is no longer any clients for a given security origin, the
StorageProcess asks the service worker process for the given origin to terminate
and severs its connection to it.

Change is covered by API test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::markAllWorkersForOriginAsTerminated):
Pass the security origin since this is called when a service worker process
crashes. When a service worker process for origin A crashes, we only want
to mark service workers in origin A as terminated, not ALL of them.

(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsServerToContextConnectionForOrigin const):
Tweak logic so that we only relaunch a service worker process if we still
have clients for its security origin.

  • workers/service/server/SWServer.h:

(WebCore::SWServer::disableServiceWorkerProcessTerminationDelay):
Add a way to disable the service worker termination delay to facilitate
testing.

  • workers/service/server/SWServerToContextConnection.h:

Source/WebKit:

The StorageProcess now keeps track of service worker clients for each security
origin. When there is no longer any clients for a given security origin, the
StorageProcess asks the service worker process for the given origin to terminate
and severs its connection to it.

  • Shared/Storage/StorageProcessCreationParameters.h:
  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
(WebKit::WebSWServerToContextConnection::terminate):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const):
(WebKit::StorageProcess::initializeWebsiteDataStore):
(WebKit::StorageProcess::swServerForSession):
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded):
(WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::terminateProcess):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.messages.in:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
3:15 PM Changeset in webkit [229926] by beidson@apple.com
  • 41 edits
    1 copy in trunk

Go to back/forward list items after a process-swapped navigation.
<rdar://problem/38690544> and https://bugs.webkit.org/show_bug.cgi?id=183920

Reviewed by Andy Estes.

Source/WebCore:

Covered by new API test.

Most of the changes to WebCore are teaching HistoryItem navigations to know when they should
do a policy check or not.

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

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

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::setStateObject): Actually push state object changes to the UIProcess.

This was a long standing bug that made it difficult to effectively test this change.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):

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

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

  • loader/HistoryController.h:
  • loader/NavigationPolicyCheck.h:
  • page/Page.cpp:

(WebCore::Page::goToItem):

  • page/Page.h:

Source/WebKit:

This takes the initial work of "process swap a normal navigation" and extends it to
process swapping for back/forward item navigations.

  • Scripts/webkit/messages.py:

Make sure state objects are serialized to the UI Process back/forward list items, as otherwise
they will be lost in process-swap scenarios:

  • Shared/SessionState.cpp:

(WebKit::PageState::encode const):
(WebKit::PageState::decode):

  • Shared/SessionState.h:

Make a new variant of APINavigation specifically for back/forward list items.

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::Navigation::loggingURL const):

  • UIProcess/API/APINavigation.h:

(API::Navigation::create):
(API::Navigation::backForwardListItem):
(API::Navigation::backForwardFrameLoadType const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageGoToBackForwardListItem):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController goToBackForwardListItem:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView goToBackForwardListItem:]):

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::createLoadRequestNavigation):
(WebKit::WebNavigationState::createBackForwardNavigation):

  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess): Handle back/forward navigations differently than others.
(WebKit::WebPageProxy::restoreFromSessionState):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Renamed from "addBackForwardItem" for clarity
(WebKit::WebProcessProxy::addBackForwardItem): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endSwipeGesture):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toPageState):
(WebKit::toHistoryItem):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::updateBackForwardItem):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goToBackForwardItem): Combined "goBack" and "goForward" with this method,

passing the appropriate FrameLoadType around as needed to remember the specific type.

(WebKit::WebPage::goForward): Deleted.
(WebKit::WebPage::goBack): Deleted.

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

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

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

Source/WebKitLegacy/win:

  • WebView.cpp:

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

Tools:

Add a new API test that does some process-swapping navigations (including a back navigation)
and verifies the state of the engine afterwards.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONMessageHandler userContentController:didReceiveScriptMessage:]):
(-[PSONScheme initWithBytes:]):
(-[PSONScheme webView:startURLSchemeTask:]):
(log):
(function):
(TEST): Deleted.

3:07 PM Changeset in webkit [229925] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark accessibility/row-with-aria-role-in-native-table.html as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183955

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:02 PM Changeset in webkit [229924] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark some CSS animations tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183953

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:01 PM Changeset in webkit [229923] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

fix

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

Web Inspector: Styles Redesign: flashing when switching between nodes
https://bugs.webkit.org/show_bug.cgi?id=179291
<rdar://problem/35352660>

Reviewed by Matt Baker.

Flashing was happening because the layout was a two-step process:

  1. Append empty sections.
  2. Layout everything inside of the section on requestAnimationFrame.

SpreadsheetRulesStyleDetailsPanel was converted to use layout method,
so both steps happen on requestAnimationFrame.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
The removed lines from the refresh method moved to the layout method without any changes.

2:19 PM Changeset in webkit [229921] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

Lint web-platform-tests changes with the wpt linter before exporting
https://bugs.webkit.org/show_bug.cgi?id=183796

Patch by Brendan McLoughlin <brendan@bocoup.com> on 2018-03-23
Reviewed by Youenn Fablet.

  • Scripts/webkitpy/w3c/test_exporter.py:

(TestExporter.init):
(TestExporter.do_export):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockWPTLinter):
(TestExporterTest.MockWPTLinter.init):
(TestExporterTest.MockWPTLinter.lint):
(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):

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

(WPTLinter):
(WPTLinter.init):
(WPTLinter.lint):

2:18 PM Changeset in webkit [229920] by youenn@apple.com
  • 4 edits
    4 adds in trunk/Source/ThirdParty/libwebrtc

Add support for VCP encoder on MacOS and iOS
https://bugs.webkit.org/show_bug.cgi?id=183924

Reviewed by Eric Carlson.

Soft-Link VideoProcessing functions and use them in H264 encoder.
This is conditional on recent MacOS and iOS platforms.

  • Source/webrtc/sdk/WebKit/EncoderUtilities.h: Added.
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp: Added.
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createVideoToolboxEncoderFactory):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(-[RTCVideoEncoderH264 destroyCompressionSession]):

  • WebKit/0001-Using-VCP.patch: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
2:03 PM Changeset in webkit [229919] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Fix decoder key isPrevalentResource->isVeryPrevalentResource
https://bugs.webkit.org/show_bug.cgi?id=183950
<rdar://problem/38806275>

Reviewed by Brent Fulgham.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Now isVeryPrevalentResource is decoded to the correct field.

2:00 PM Changeset in webkit [229918] by Megan Gardner
  • 4 edits in trunk

Don't use the presence of a textSelectionAssistant as a proxy for if we are in content editable.
https://bugs.webkit.org/show_bug.cgi?id=183804

Reviewed by Tim Horton.

We need to stop using the presence of a textSelectionAssistant as a proxy for if we are selecting in a content editable
or not. As we are planning on switching to only using a textSelectionAssistant for selection, these checks need to
be more direct in checking what we actually need to know i.e. are we selecting in a content editable.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(hasAssistedNode):
(-[WKContentView inputView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _autofillContext]):

1:53 PM Changeset in webkit [229917] by youenn@apple.com
  • 9 edits in trunk/Source

WebProcessPool should not ask to register all clients for each service worker process creation
https://bugs.webkit.org/show_bug.cgi?id=183941

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing unit tests.
Register all Documents of a process no matter its session ID when asked to.
Make sure that whenever a WebProcess is asked to do so, any further Document will be registered
by calling setMayHaveRegisteredServiceWorkers().
This ensures that a WebProcess created before any service worker but empty at the time a service worker is created
will actually register all its future clients.

Add some assertions to ensure that a client is not registered twice.

  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::registerServiceWorkerClients):

  • workers/service/ServiceWorkerProvider.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::registerServiceWorkerClient):

Source/WebKit:

Call registerServiceWorkerClients when there is no service worker process.
Update service worker clients to register all of them no matter the session ID.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::registerServiceWorkerClients):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
1:47 PM Changeset in webkit [229916] by Wenson Hsieh
  • 4 edits
    2 moves in trunk/Source/WebKit

[Extra zoom mode] Adopt list view controller UI for select menus
https://bugs.webkit.org/show_bug.cgi?id=183944
<rdar://problem/38799062>

Reviewed by Andy Estes.

Rename WKSelectMenuViewController to WKSelectMenuListViewController, and also rename the relevant
WebKitAdditions harness files. See corresponding changes for more details.

  • UIProcess/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.h.
  • UIProcess/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.mm.
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentSelectMenuViewController:]):
(-[WKContentView dismissSelectMenuViewController:]):
(-[WKContentView selectMenu:didSelectItemAtIndex:]):
(-[WKContentView numberOfItemsInSelectMenu:]):
(-[WKContentView selectMenu:displayTextForItemAtIndex:]):
(-[WKContentView selectMenu:didCheckItemAtIndex:checked:]):
(-[WKContentView selectMenuUsesMultipleSelection:]):
(-[WKContentView selectMenu:hasSelectedOptionAtIndex:]):
(-[WKContentView _wheelChangedWithEvent:]):

Overriding wheel events and re-dispatching them is no longer needed after r229437, so we can just remove special
handling for select menus here.

(-[WKContentView didCancelSelectionInSelectMenu:]): Deleted.
(-[WKContentView selectMenuSupportsMultipleSelection:]): Deleted.
(-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): Deleted.
(-[WKContentView startingIndexForSelectMenu:]): Deleted.

The starting index for a select menu is no longer relevant when using list view controllers for input, so we can
just remove this delegate hook altogether.

  • WebKit.xcodeproj/project.pbxproj:
1:11 PM Changeset in webkit [229915] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

HTMLElement factory doesn't need to call MediaPlayer::isAvailable
https://bugs.webkit.org/show_bug.cgi?id=183946
<rdar://problem/38802687>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: media/media-disabled.html

  • dom/make_names.pl:

(printConstructorInterior):

  • page/Settings.yaml:
  • page/SettingsDefaultValues.h:

LayoutTests:

  • media/media-disabled-expected.txt: Added.
  • media/media-disabled.html: Added.
12:54 PM Changeset in webkit [229914] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

CacheStorage::Caches should clear m_caches when clearing its representation even though it is not yet initialized
https://bugs.webkit.org/show_bug.cgi?id=183945

Reviewed by Chris Dumez.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::clearMemoryRepresentation):
In case we clear Caches in the middle of the initialization, m_caches might not be empty
but m_isInitialized is not yet set to true since we are computing the Caches size.
Update the assertion and clear m_caches in that case.

12:06 PM Changeset in webkit [229913] by ddkilzer@apple.com
  • 11 edits
    1 add
    1 delete in trunk

Stop using dispatch_set_target_queue()
<https://webkit.org/b/183908>
<rdar://problem/33553533>

Reviewed by Daniel Bates.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/rtc_base/task_queue_gcd.cc: Remove use of

dispatch_set_target_queue() by changing dispatch_queue_create()
to dispatch_queue_create_with_target().

  • WebKit/0009-Remove-dispatch_set_target_queue.patch: Add patch.

Filed this to track upstreaming the change:
<https://bugs.chromium.org/p/webrtc/issues/detail?id=9055>

  • WebKit/patch-libwebrtc: Delete empty patch file.

Source/WebCore:

No new tests since no change in behavior.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::globaVideoCaptureSerialQueue): Remove use of
dispatch_set_target_queue() by changing dispatch_queue_create()
to dispatch_queue_create_with_target().

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel): Remove the call to
dispatch_set_target_queue() since this is handled in the
dispatch_io_create() call above.

Source/WTF:

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::platformInitialize): Remove !HAVE(QOS_CLASSES)
code path since it's never used now that HAVE(QOS_CLASSES) is
equivalent to PLATFORM(COCOA) in <wtf/Platform.h>.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_language): Add check for use of
dispatch_set_target_queue().
(CppChecker): Add 'runtime/dispatch_set_target_queue' category.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest): Add test.

11:55 AM Changeset in webkit [229912] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

LLInt TypeArray pointer poisoning should not pick its poison dynamically.
https://bugs.webkit.org/show_bug.cgi?id=183942
<rdar://problem/38798018>

Reviewed by JF Bastien.

  1. Move the LLInt TypedArray unpoisoning to just before the array access after all the branches.
  2. Renamed FirstArrayType to FirstTypedArrayType to match the symbol in C++ code.
  3. Remove a useless instruction in the implementation of emitX86Lea for a global label.
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/x86.rb:
11:44 AM Changeset in webkit [229911] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add more support for pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183943
<rdar://problem/38799068>

Reviewed by JF Bastien.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::linkJumpOrCall):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall):
(JSC::AbstractMacroAssembler::tagReturnAddress):
(JSC::AbstractMacroAssembler::untagReturnAddress):

11:39 AM WebKitGTK/Gardening/Calendar edited by Adrian Perez de Castro
(diff)
11:34 AM Changeset in webkit [229910] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Only enable LayoutTest fast/css/apple-system-control-colors.html on macOS.

Unreviewed test gardening.

11:32 AM Changeset in webkit [229909] by Adrian Perez de Castro
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

Removed imported/mathml-in-html5 from WPE test expectations, as the
path does not exit anymore after r229601

  • platform/wpe/TestExpectations: Removd imported/mathml-in-html5
11:20 AM Changeset in webkit [229908] by youenn@apple.com
  • 15 edits
    1 move
    3 adds in trunk/Source

Use libwebrtc ObjectiveC H264 encoder and decoder
https://bugs.webkit.org/show_bug.cgi?id=183912

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add utilities inside libwebrtc to be used by WebKit:

  • Create ObjectiveC encoder/decoder factories
  • Notify of application status to invalidate encoders/decoders when in background

Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
This allows limiting the changes made to libwebrtc codec implementations.

Minor modifications done to libwebrtc to fix compilation.
Add Block_copy/Block_release to codec callbacks.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.

(+[RTCUIApplicationStatusObserver sharedInstance]):
(+[RTCUIApplicationStatusObserver prepareForUse]):
(-[RTCUIApplicationStatusObserver setActive]):
(-[RTCUIApplicationStatusObserver setInactive]):
(-[RTCUIApplicationStatusObserver isApplicationActive]):
(webrtc::setApplicationStatus):
(webrtc::createVideoToolboxEncoderFactory):
(webrtc::createVideoToolboxDecoderFactory):
(webrtc::setH264HardwareEncoderAllowed):
(webrtc::isH264HardwareEncoderAllowed):
(webrtc::pixelBufferFromFrame):

  • Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:

(-[RTCCVPixelBuffer dealloc]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:

(-[RTCVideoDecoderH264 dealloc]):
(-[RTCVideoDecoderH264 setCallback:]):
(-[RTCVideoDecoderH264 releaseDecoder]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 dealloc]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 releaseEncoder]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No observable change of behavior.
Made use of libwebrtc WebKit utilities.
Updated RealtimeINcomingVideoSourceCocoa as it now receives ObjcVideoFrame.

  • Configurations/WebCore.xcconfig:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::~LibWebRTCProviderCocoa):
(WebCore::LibWebRTCProviderCocoa::setH264HardwareEncoderAllowed):
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
(WebCore::LibWebRTCProviderCocoa::setActive):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: Renamed from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp.

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

  • testing/Internals.cpp: Removed commented out include.
11:06 AM Changeset in webkit [229907] by youenn@apple.com
  • 5 edits
    5 adds in trunk

DocumentThreadableLoader should send credentials after redirections and preflight if fetch option credentials is include
https://bugs.webkit.org/show_bug.cgi?id=183928

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.html: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.worker.html: Added.
  • web-platform-tests/fetch/api/resources/inspect-headers.py:
  • web-platform-tests/fetch/api/resources/redirect.py:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.html

imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.worker.html

In case mode is include, keep sending credentials even after redirection with preflight.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):

11:06 AM Changeset in webkit [229906] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build after r229858

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
11:04 AM Changeset in webkit [229905] by youenn@apple.com
  • 4 edits in trunk

Allow fully whitelisted plug-ins to match non HTTP URLs
https://bugs.webkit.org/show_bug.cgi?id=183938
rdar://problem/38534312

Reviewed by Chris Dumez.

Source/WebCore:

Covered by manual testing and unit testing.

  • platform/URL.cpp:

(WebCore::URL::isMatchingDomain const):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

11:02 AM Changeset in webkit [229904] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

CacheStorage::Engine should not ref itself when hopping to a background thread
https://bugs.webkit.org/show_bug.cgi?id=183925
<rdar://problem/38580483>

Reviewed by Chris Dumez.

Add support for weak pointers to CacheStorage Engine.
Use weak pointer when hopping to background threads.
Store callbacks in CacheStorage::Engine maps to keep them being destroyed in the main thread only.
Made some callbacks CompletionHandler as a bonus.

Made sure to use just one Engine for all private sessions.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::~Engine):
(WebKit::CacheStorage::Engine::from):
(WebKit::CacheStorage::Engine::initialize):
(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):

  • NetworkProcess/cache/CacheStorageEngine.h:

(WebKit::CacheStorage::Engine::weakPtrFactory):

10:48 AM Changeset in webkit [229903] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

ActiveDOMObject should assert that they are destroyed in the thread they are created
https://bugs.webkit.org/show_bug.cgi?id=183671

Reviewed by Chris Dumez.

No change of behavior.
Moved MessagePort assertion to ActiveDOMObject.

  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::~ActiveDOMObject):

  • dom/ActiveDOMObject.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::~MessagePort):

  • dom/MessagePort.h:
10:29 AM Changeset in webkit [229902] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.7.3/Source/WebKit

Cherry-pick r229418. rdar://problem/38770923

10:16 AM Changeset in webkit [229901] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.7.3/Source

Versioning.

10:07 AM Changeset in webkit [229900] by jfbastien@apple.com
  • 2 edits in trunk/Tools

dump-class-layout is just wrong
https://bugs.webkit.org/show_bug.cgi?id=183939

Reviewed by Yusuke Suzuki.

Looks like r229291 contained a half-renamed variable in it, so it
just doesn't work.

  • Scripts/dump-class-layout:

(verify_type):
(verify_type_recursive):

9:59 AM Changeset in webkit [229899] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.7.3

New tag.

9:55 AM Changeset in webkit [229898] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Safari WebKitWebRTCAudioModule crash during <video> tag update when audio track present in MediaStream
https://bugs.webkit.org/show_bug.cgi?id=181180
<rdar://problem/36302375>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/video-update-often.html

AudioTrackPrivateMediaStreamCocoa needs to be destroyed in the main thread since it owns a Ref to its MediaStreamTrackPrivate.
We can still ref it on a background thread but we always deref it on the main thread.

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStreamCocoa::render):

LayoutTests:

  • webrtc/video-update-often-expected.txt: Added.
  • webrtc/video-update-often.html: Added.
9:44 AM Changeset in webkit [229897] by svillar@igalia.com
  • 12 edits
    3 adds in trunk

[css-grid] Fix auto repeat tracks computation with definite min sizes
https://bugs.webkit.org/show_bug.cgi?id=183933

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

The relevant test for this change is just grid-inline-auto-repeat-001.html. The other ones
were pulled in by the import. The unique change in those tests is the location of a
stylesheet. Since we're using it in the new test it seems sensible to use this same commit
to import those changes too. There is one important change in testing-utils.js which is
also required by the new test.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/support/grid.css: Added.

(.grid):
(.inline-grid):
(.firstRowFirstColumn):
(.onlyFirstRowOnlyFirstColumn):
(.firstRowSecondColumn):
(.onlyFirstRowOnlySecondColumn):
(.secondRowFirstColumn):
(.onlySecondRowOnlyFirstColumn):
(.secondRowSecondColumn):
(.onlySecondRowOnlySecondColumn):
(.endSecondRowEndSecondColumn):
(.thirdRowSecondColumn):
(.firstRowThirdColumn):
(.secondRowThirdColumn):
(.firstRowFourthColumn):
(.secondRowFourthColumn):
(.firstAutoRowSecondAutoColumn):
(.autoLastRowAutoLastColumn):
(.autoSecondRowAutoFirstColumn):
(.firstRowBothColumn):
(.secondRowBothColumn):
(.bothRowFirstColumn):
(.bothRowSecondColumn):
(.bothRowBothColumn):
(.autoRowAutoColumn):
(.firstRowAutoColumn):
(.secondRowAutoColumn):
(.thirdRowAutoColumn):
(.autoRowFirstColumn):
(.autoRowSecondColumn):
(.autoRowThirdColumn):
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.autoRowFirstColumnSpanning2):
(.autoRowSecondColumnSpanning2):
(.firstRowSpanning2AutoColumn):
(.secondRowSpanning2AutoColumn):
(.gridAutoFlowColumnSparse):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowSparse):
(.gridAutoFlowRowDense):
(.constrainedContainer):
(.unconstrainedContainer):
(.sizedToGridArea):
(.verticalRL):
(.verticalLR):
(.horizontalTB):
(.directionRTL):
(.directionLTR):

  • web-platform-tests/css/css-grid/grid-definition/support/testing-utils.js:

(checkGridTemplateRows): Convert the passed computed style to an Array in case it is just an string.

  • web-platform-tests/css/css-grid/grid-definition/support/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-definition/w3c-import.log:

Source/WebCore:

Indefinitely sized containers use the specified definite min-size (if any) as available
space in order to compute the number of auto repeat tracks to create. A bug in that code was
causing the grid to be one track larger than expected. That was only happening in the case
of the free space being a multiple of the total size of the autorepeat tracks.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount const):

9:38 AM Changeset in webkit [229896] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
8:29 AM Changeset in webkit [229895] by magomez@igalia.com
  • 23 edits in trunk/Source

[GTK][WPE] Avoid software color conversion inside BitmapTextureGL
https://bugs.webkit.org/show_bug.cgi?id=183892

Source/WebCore:

Reviewed by Žan Doberšek.

Always use RGBA format on BitmapTextureGL (when no other format is specifically requested). When
the texture is updated from BGRA content, use a flag to indicate the shader to perform a color
conversion during the painting. This way we don't need to swap the R and B components on the CPU.
Also, remove one of the lists in BitmapTexturePool as now all of them have the same format, and
remove the UpdateContentsFlag as we never need to modify the original image data.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/graphics/texmap/BitmapTexture.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::BitmapTextureGL):
(WebCore::BitmapTextureGL::didReset):
(WebCore::BitmapTextureGL::updateContents):
(WebCore::BitmapTextureGL::applyFilters):
(WebCore::swizzleBGRAToRGBA): Deleted.
(WebCore::BitmapTextureGL::updateContentsNoSwizzle): Deleted.

  • platform/graphics/texmap/BitmapTextureGL.h:

(WebCore::BitmapTextureGL::colorConvertFlags const):

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::acquireTexture):
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):

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

(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

  • platform/graphics/texmap/TextureMapperContextAttributes.cpp:

(WebCore::TextureMapperContextAttributes::get):

  • platform/graphics/texmap/TextureMapperContextAttributes.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawNumber):
(WebCore::TextureMapperGL::drawTexture):

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

(WebCore::TextureMapperLayer::paintIntoSurface):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperTile.cpp:

(WebCore::TextureMapperTile::updateContents):

  • platform/graphics/texmap/TextureMapperTile.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:

(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
(WebCore::TextureMapperTiledBackingStore::updateContents):

  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:

Source/WebKit:

Remove the UpdateContentsFlag parameter when calling BitmapTexture::updateContents().

Reviewed by Žan Doberšek.

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:

(WebKit::CoordinatedBackingStoreTile::swapBuffers):

Source/WebKitLegacy/win:

Remove the UpdateContentsFlag parameter as it's not used anymore.

Reviewed by Žan Doberšek.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::acceleratedCompositingAvailable):

6:11 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
5:41 AM Changeset in webkit [229894] by clopez@igalia.com
  • 2 edits in trunk/Source/WTF

WebProcess memory monitor thresholds should be better tuned for embedded systems.
https://bugs.webkit.org/show_bug.cgi?id=183773

Reviewed by Yusuke Suzuki.

Take into account the total system RAM for the thresholds calculation.

For systems with more than 3GB the conservative and strict thresholds remain as they are,
but for systems with less RAM the thresholds are dynamically configured as follows:

  • Conservative threshold (release non critical memory) if WebProcess using more than 33% of the total RAM.
  • Strict threshold (release all possible memory) if WebProcess using more than 50% of the total RAM.

The Kill threshold is also modified. Now it is capped at 90% of the total RAM.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillWithProcessState):
(WTF::thresholdForPolicy):
(WTF::MemoryPressureHandler::shrinkOrDie):

5:41 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
5:34 AM Changeset in webkit [229893] by Yusuke Suzuki
  • 27 edits
    5 copies in trunk/Source

[WTF] Add standard containers with FastAllocator specialization
https://bugs.webkit.org/show_bug.cgi?id=183789

Reviewed by Darin Adler.

Source/JavaScriptCore:

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

(JSC::B3::testDoubleLiteralComparison):
(JSC::B3::testFloatEqualOrUnorderedFoldingNaN):

  • dfg/DFGGraph.h:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):

  • runtime/FunctionHasExecutedCache.h:
  • runtime/TypeLocationCache.h:

Source/WebCore:

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/mediasource/SampleMap.h:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/webauthn/cbor/CBORValue.h:

It did not use FastAllocator for its container.

  • page/WheelEventTestTrigger.h:
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:
  • platform/wpe/PlatformPasteboardWPE.cpp:
  • rendering/OrderIterator.h:

Source/WTF:

Sometimes we want standard containers due to various reasons.
For example, WTF::HashMap lacks the ability to hold all the
integer keys since it uses 0 for empty value and -1 for deleted
value. However, using std::containers use std::allocator without
specialization.

This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
They are standard containers with FastAllocator specialization.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StdList.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdUnorderedMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdUnorderedSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
5:32 AM Changeset in webkit [229892] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[FTL] Fix ArrayPush(ArrayStorage)'s abstract heap
https://bugs.webkit.org/show_bug.cgi?id=182960

Reviewed by Saam Barati.

This patch fixes ArrayPush(ArrayStorage)'s abstract heap.
It should always touch ArrayStorage_vector. To unify
vector setting code for the real ArrayStorage_vector and
ScratchBuffer, we use ArrayStorage_vector.atAnyIndex() to
annotate this.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):

4:49 AM Changeset in webkit [229891] by graouts@webkit.org
  • 7 edits in trunk

[Web Animations] infinite repeat counts aren't reflected for CSS Animations
https://bugs.webkit.org/show_bug.cgi?id=183932

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

  • css-animations/test_animation-computed-timing-expected.txt:
  • css-animations/test_animation-finish-expected.txt:

Source/WebCore:

The "infinite" value for animation-repeat-count is reflected as a special value which resolves to -1. We need to check
for this special value before setting the iterations count on the AnimationEffectTimingReadOnly object.

  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):

LayoutTests:

One of the Mozilla tests now passes completely and reliably.

4:47 AM Changeset in webkit [229890] by graouts@webkit.org
  • 15 edits in trunk

[Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed
https://bugs.webkit.org/show_bug.cgi?id=183919

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

A number of tests now pass thanks to correctly canceling animations when a parent element in the hierarchy gets a
"display: none" style or if an element with animations is removed.

  • css-animations/test_animation-cancel-expected.txt:
  • css-animations/test_document-get-animations-expected.txt:
  • css-animations/test_effect-target-expected.txt:
  • css-transitions/test_animation-cancel-expected.txt:
  • css-transitions/test_effect-target-expected.txt:

Source/WebCore:

The old CSSAnimationController provided a cancelAnimations(Element&) method that allowed for animations for a given element
to be canceled when a parent element in the hierarchy gets a "display: none" style or if an element with animations is removed.
We add a similar cancelAnimationsForElement(Element&) method on AnimationTimeline and update CSSAnimationController::cancelAnimations()
call sites to use AnimationTimeline::cancelAnimationsForElement() when the flag to use Web Animations is on.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::cancelAnimationsForElement): Iterate over all animations for the provided element and call cancel() on them.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animatedStyleForRenderer): Drive-by fix while I was reviewed call sites to animationsForElement() to make
sure we don't create extra RefPtr<> objects.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on when an
element is removed.

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on when
a pseudo-element is removed.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on
for all children elements when an element gets a "display: none" style.

LayoutTests:

Three of the imported Mozilla tests now pass reliably, removing them from the list of flaky failure and timeout tests.

4:45 AM Changeset in webkit [229889] by graouts@webkit.org
  • 12 edits in trunk

[Web Animations] Animated transform styles are ignored when calling getComputedStyle()
https://bugs.webkit.org/show_bug.cgi?id=183918

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

We obtain one more PASS by correctly serializing the transform property on getComputedStyle().

  • css-animations/test_animation-cancel-expected.txt:

LayoutTests/imported/w3c:

We obtain a number of progressions by correctly serializing the transform property on getComputedStyle().

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/cancel-expected.txt:

Source/WebCore:

Strictly looking at whether the renderer has a transform is a bad idea when determining whether a
transform is applied for an element. Looking at the RenderStyle is preferable because in the case
of animations running on the compositor, such as a transform-only animation or transition, the
renderer doesn't necessarily have a transform style on it, since we don't blend properties in
software as the animation progresses. Instead, all of the blending is performed by the compositor,
and only the computed style object has the software-blended transform style on it.

We do need to account for inline renderers though as these do not support transforms.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedTransform):

LayoutTests:

We obtain a number of progressions by correctly serializing the transform property on getComputedStyle().

  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
4:42 AM Changeset in webkit [229888] by graouts@webkit.org
  • 13 edits in trunk

[Web Animations] Support "transition: all" for CSS Transitions as Web Animations
https://bugs.webkit.org/show_bug.cgi?id=183917

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions thanks to supporting "transition: all".

  • css-transitions/test_animation-finished-expected.txt:
  • css-transitions/test_csstransition-transitionproperty-expected.txt:
  • css-transitions/test_effect-target-expected.txt:
  • css-transitions/test_element-get-animations-expected.txt:
  • css-transitions/test_pseudoElement-get-animations-expected.txt:

Source/WebCore:

We now support "transition: all" CSS Transitions by iterating over all known CSS properties should the mode
of the backing animation be AnimateAll. Any property that we find to have a different value in the previous
and current style will have a backing CSSTransition object created for it. To support this, we now explicitly
provide a CSSPropertyID when creating a CSSTransition since we can no longer infer the transition property
from the backing animation, as Animation objects with mode AnimateAll report CSSPropertyInvalid as their
property.

  • animation/AnimationTimeline.cpp:

(WebCore::shouldBackingAnimationBeConsideredForCSSTransition): New method that checks whether a given backing
Animation object is suitable for consideration as a CSSTransition, where the mode must not be either AnimateNone
or AnimateUnknownProperty, and should the mode be AnimateSingleProperty, the property must not be CSSPropertyInvalid.
(WebCore::AnimationTimeline::updateCSSTransitionsForElement): We now assemble the list of previously animated
properties by looking at the m_elementToCSSTransitionByCSSPropertyID map and getting its keys. Then we compile
all backing Animation objects found in the old style that match the conditions enforced by the new method
shouldBackingAnimationBeConsideredForCSSTransition(). Then as we iterate over backing Animation objects found
in the new style, we iterate over all known CSS properties if the mode is AnimateAll, indicating that we're dealing
with a "transition: all" style. If we're dealing with a single property, we only process that single property.

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create): Expect a new CSSPropertyID parameter when creating a new CSSTransition since
we can no longer infer it from the backing Animation object.
(WebCore::CSSTransition::CSSTransition): Expect a new CSSPropertyID parameter when creating a new CSSTransition
since we can no longer infer it from the backing Animation object.
(WebCore::CSSTransition::matchesBackingAnimationAndStyles const): We can no longer use the == overloaded operator
for backing Animation objects to determine whether their respective properties match since this would compare the
"property" member of both Animation objects and when going from a "transition: all" style to one targeting a single
property, we would falsely identify mis-matching Animation objects. Instead, we pass a false flag to animationsMatch()
which indicates that we don't care about matching the transition property itself.

  • animation/CSSTransition.h: Expose a new property() accessor which returns the CSSPropertyID passed at construction.
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes): Use the new property() accessor on
CSSTransition to get at the transition property.

  • platform/animation/Animation.cpp:

(WebCore::Animation::animationsMatch const): Replace the boolean parameter, which was not in use in WebCore, to indicate
whether we should match the property-related fields. We need this in CSSTransition::matchesBackingAnimationAndStyles().

  • platform/animation/Animation.h:
2:03 AM WebKitGTK/Gardening/Calendar edited by magomez@igalia.com
(diff)
1:53 AM Changeset in webkit [229887] by zandobersek@gmail.com
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening.

Add a port-specific baseline for fast/css/apple-system-control.html.

Mark http/wpt/service-workers tests as a mix of failures and passes,
since a lot of the tests pass now that service workers were enabled, but
the passing ones are still in minority and there's additionally flaky
tests. This should improve after necessary testing SW directories are
properly specified.

In contrast, a bunch of SW-reliant tests under
imported/w3c/web-platform-tests/streams are now passing consistently.
Failure expectations for these are removed.

Failue expectations for three compositing tests are also removed after
r229804 fixed them.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/apple-system-control-colors-expected.txt: Added.
1:46 AM Changeset in webkit [229886] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for GCC 4.9 builds.

  • assembler/MacroAssemblerCodeRef.h: std::is_trivially_copyable<> isn't

supported in 4.9 libstdc++, so wrap the static assert using it in a
COMPILER_SUPPORTS() macro, and use is_trivially_copyable() builtin,
as is done in bitwise_cast() in StdLibExtras.h.

12:56 AM Changeset in webkit [229885] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Fix -Wswitch warnings after r229778
https://bugs.webkit.org/show_bug.cgi?id=183927

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Log a warning if Suspend is
received as a PolicyAction

  • UIProcess/API/glib/WebKitNavigationClient.cpp: Ignore the ProcessSwap termination reason,

which should be invisible to WebKit clients

12:49 AM Changeset in webkit [229884] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Run JSC GLib API tests in GTK+ and WPE bots.

The test runners were still considering the JSC tests as google tests, but they are now GLib tests.

  • Scripts/run-gtk-tests:

(GtkTestRunner.is_glib_test):
(GtkTestRunner.is_google_test):

  • Scripts/run-wpe-tests:

(WPETestRunner.is_glib_test):
(WPETestRunner.is_google_test):

Mar 22, 2018:

11:53 PM Changeset in webkit [229883] by timothy_horton@apple.com
  • 10 edits in trunk/Source

Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebCore
https://bugs.webkit.org/show_bug.cgi?id=183930
<rdar://problem/38782249>

Reviewed by Dan Bernstein.

Source/JavaScriptCore:

Source/WebCore:

  • Configurations/Base.xcconfig:
  • Configurations/WebCore.xcconfig:
  • Configurations/WebCoreTestSupport.xcconfig:

Source/WebCore/PAL:

  • Configurations/Base.xcconfig:
  • Configurations/CopyPALHeaders.xcconfig:
  • Configurations/PAL.xcconfig:
10:33 PM Changeset in webkit [229882] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

10:11 PM Changeset in webkit [229881] by commit-queue@webkit.org
  • 15 edits
    1 move
    3 deletes in trunk/Source

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

Some webrtc tests are timing out on iOS simulator (Requested
by youenn on #webkit).

Reverted changeset:

"Use libwebrtc ObjectiveC H264 encoder and decoder"
https://bugs.webkit.org/show_bug.cgi?id=183912
https://trac.webkit.org/changeset/229876

9:04 PM Changeset in webkit [229880] by Megan Gardner
  • 3 edits
    2 adds in trunk

Expose more system colors via CSS
https://bugs.webkit.org/show_bug.cgi?id=183764
<rdar://problem/36975898>

Reviewed by Tim Horton.

Test: fast/css/apple-system-control-colors.html

Expose Apple specific system colors via CSS.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

6:41 PM Changeset in webkit [229879] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Web table row count is incorrect when role row is added to <tr> in DOM
https://bugs.webkit.org/show_bug.cgi?id=183922

Reviewed by Chris Fleizach.

Source/WebCore:

Although the parent table for an ARIA grid row should be an ARIA table, we
should return the native table if the row is native <tr>.

Test: accessibility/row-with-aria-role-in-native-table.html

  • accessibility/AccessibilityARIAGridRow.cpp:

(WebCore::AccessibilityARIAGridRow::parentTable const):

LayoutTests:

  • accessibility/row-with-aria-role-in-native-table-expected.txt: Added.
  • accessibility/row-with-aria-role-in-native-table.html: Added.
6:37 PM Changeset in webkit [229878] by Chris Dumez
  • 6 edits in trunk/Source

Include security origin in the service worker process name
https://bugs.webkit.org/show_bug.cgi?id=183913

Reviewed by Youenn Fablet.

Source/WebCore:

Updated localizable strings.

  • English.lproj/Localizable.strings:

Source/WebKit:

Include security origin in the service worker process name to facilitate debugging. This way, we
can differentiate which service worker process is used for which origin in activity monitor.

  • Shared/ChildProcess.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::getExtraInitializationData):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::getLaunchOptions):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::initializeProcessName):

6:19 PM Changeset in webkit [229877] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, silence unused variable warning

Patch by Michael Catanzaro <Michael Catanzaro> on 2018-03-22

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

6:18 PM Changeset in webkit [229876] by youenn@apple.com
  • 15 edits
    1 move
    3 adds in trunk/Source

Use libwebrtc ObjectiveC H264 encoder and decoder
https://bugs.webkit.org/show_bug.cgi?id=183912

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add utilities inside libwebrtc to be used by WebKit:

  • Create ObjectiveC encoder/decoder factories
  • Notify of application status to invalidate encoders/decoders when in background

Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
This allows limiting the changes made to libwebrtc codec implementations.

Minor modifications done to libwebrtc to fix compilation.
Add Block_copy/Block_release to codec callbacks.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.

(+[RTCUIApplicationStatusObserver sharedInstance]):
(+[RTCUIApplicationStatusObserver prepareForUse]):
(-[RTCUIApplicationStatusObserver setActive]):
(-[RTCUIApplicationStatusObserver setInactive]):
(-[RTCUIApplicationStatusObserver isApplicationActive]):
(webrtc::setApplicationStatus):
(webrtc::createVideoToolboxEncoderFactory):
(webrtc::createVideoToolboxDecoderFactory):
(webrtc::setH264HardwareEncoderAllowed):
(webrtc::isH264HardwareEncoderAllowed):
(webrtc::pixelBufferFromFrame):

  • Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:

(-[RTCCVPixelBuffer dealloc]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:

(-[RTCVideoDecoderH264 dealloc]):
(-[RTCVideoDecoderH264 setCallback:]):
(-[RTCVideoDecoderH264 releaseDecoder]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 dealloc]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 releaseEncoder]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No observable change of behavior.
Made use of libwebrtc WebKit utilities.
Updated RealtimeINcomingVideoSourceCocoa as it now receives ObjcVideoFrame.

  • Configurations/WebCore.xcconfig:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::~LibWebRTCProviderCocoa):
(WebCore::LibWebRTCProviderCocoa::setH264HardwareEncoderAllowed):
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
(WebCore::LibWebRTCProviderCocoa::setActive):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: Renamed from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp.

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

  • testing/Internals.cpp: Removed commented out include.
6:15 PM Changeset in webkit [229875] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit

WKWebView doesn’t expose its spellCheckerDocumentTag
https://bugs.webkit.org/show_bug.cgi?id=183797
<rdar://problem/38678089>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _spellCheckerDocumentTag]): Added this getter which calls through to the WebViewImpl.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Declared _spellCheckerDocumentTag property.
6:00 PM Changeset in webkit [229874] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: this._textEditor.toggleUnexecutedCodeHighlights().then is not a function
https://bugs.webkit.org/show_bug.cgi?id=181912
<rdar://problem/36700022>

Reviewed by Matt Baker.

The uncaught exception was caused by returning false instead of a promise object.
This patch only fixes the exception. Further enhancements should be done in <https://webkit.org/b/183887>.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
(WI.SourceCodeTextEditor.prototype.toggleUnexecutedCodeHighlights):

5:18 PM Changeset in webkit [229873] by Ryan Haddad
  • 1 edit in branches/safari-605-branch/Tools/DumpRenderTree/mac/DumpRenderTreeDraggingInfo.mm

Apply patch. rdar://problem/38758039

5:00 PM Changeset in webkit [229872] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Use the same SWServer for all ephemeral sessions
https://bugs.webkit.org/show_bug.cgi?id=183921
<rdar://problem/36873075>

Reviewed by Youenn Fablet.

Use the same SWServer for all ephemeral sessions. SWServers never go away and we create
one per sessionID. When browsing doing private browsing in Safari (and other fetching
favorite icons), the sessionID is ephemeral and keeps changing. This means that we kept
constructing new SWServers that would never go away. Each SWServer has a thread so we
would eventually hit the thread limit for the storage process.

  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::swServerForSession):

4:12 PM Changeset in webkit [229871] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

3:18 PM Changeset in webkit [229870] by Michael Catanzaro
  • 4 edits in trunk/Source

Unreviewed, fix format string warnings in service worker code

On Linux x86_64, uint64_t is unsigned long, not unsigned long long.

Source/WebCore:

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
(WebCore::ServiceWorkerContainer::startScriptFetchForJob):
(WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
(WebCore::ServiceWorkerContainer::jobFailedLoadingScript):

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):

3:10 PM Changeset in webkit [229869] by dbates@webkit.org
  • 16 edits
    1 add in trunk

Expose SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest() as WebKit SPI
https://bugs.webkit.org/show_bug.cgi?id=183907
<rdar://problem/38759127>

Reviewed by Alex Christensen.

Source/WebCore:

Exports SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest() so that we can use it from WebKit.

  • platform/SchemeRegistry.h:

Source/WebKit:

Adds both modern Objective-C SPI and C SPI to allow an embedding client to register a scheme
whose content should be displayed/loaded if and only if it can be requested. Disregarding an
app that enables universal access, by using this SPI WebKit will refuse to display cross-origin
content for the registered schemes.

We need to add C SPI for embedding clients that have not transitioned to the modern Objective-
C API/SPI.

  • Shared/WebProcessCreationParameters.cpp:

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

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequest):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _registerURLSchemeAsCanDisplayOnlyIfCanRequest:]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess):
(WebKit::WebProcessPool::registerURLSchemeAsCanDisplayOnlyIfCanRequest):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::registerURLSchemeAsCanDisplayOnlyIfCanRequest const):

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

Tools:

Adds unit tests for the modern Objective-C and C SPI to ensure we do not regress it.

We use the deprecated -[WKBrowsingContextController registerSchemeForCustomProtocol:]
in both the modern Objective-C API and C API tests to share code. Once we no longer
need to support the C API we should remove the tests and transition the modern Objective-
C tests to use -[WKWebViewConfiguration setURLSchemeHandler:forURLScheme:].

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/SchemeRegistry.mm: Added.

(+[EchoURLProtocol canInitWithRequest:]):
(+[EchoURLProtocol canonicalRequestForRequest:]):
(+[EchoURLProtocol requestIsCacheEquivalent:toRequest:]):
(-[EchoURLProtocol startLoading]):
(-[EchoURLProtocol stopLoading]):
(-[WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequestLoadDelegate browsingContextController:didFailProvisionalLoadWithError:]):
(-[WKContextRegisterURLSchemeAsCanDisplayOnlyIfCanRequestLoadDelegate browsingContextControllerDidFinishLoad:]):
(TestWebKitAPI::TEST):

3:02 PM Changeset in webkit [229868] by dbates@webkit.org
  • 3 edits
    4 adds in trunk

CSS mask images should be retrieved using potentially CORS-enabled fetch
https://bugs.webkit.org/show_bug.cgi?id=179983
<rdar://problem/35678149>

Reviewed by Brent Fulgham.

Source/WebCore:

As per <https://drafts.fxtf.org/css-masking-1/#priv-sec> (Editor's Draft, 23 December 2017)
we should fetch CSS mask images using a potentially CORS-enabled fetch.

Both cross-origin CSS shape-outside images and CSS mask images may be sensitive to timing
attacks that can be used to reveal their pixel data when retrieved without regard to CORS.
For the same reason that we fetch CSS shape-outside images using a potentially CORS-enabled
fetch we should fetch CSS mask the same way. This also makes the behavior of WebKit more
closely align with the behavior in the spec.

Test: http/tests/security/css-mask-image.html

  • style/StylePendingResources.cpp: Substitute LoadPolicy::NoCORS and LoadPolicy::Anonymous for

LoadPolicy::Normal and LoadPolicy::ShapeOutside, respectively, to match the terminology used
in the HTML, CSS Shapes Module Level 1, and CSS Masking Module Level 1 specs.
(WebCore::Style::loadPendingImage): Ditto.
(WebCore::Style::loadPendingResources): Use load policy LoadPolicy::Anonymous when fetching
a mask image or shape-outside image.

LayoutTests:

Add a test to ensure we do not fetch a cross-origin CSS mask image that does
not allow CORS access.

  • http/tests/security/css-mask-image-expected.html: Added.
  • http/tests/security/css-mask-image.html: Added.
  • http/tests/security/resources/black-square.png: Added.
  • http/tests/security/resources/fail-mask.png: Added.
2:59 PM Changeset in webkit [229867] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[Simple line layout] Text with letter spacing is not positioned properly.
https://bugs.webkit.org/show_bug.cgi?id=183079
<rdar://problem/38762569>

Reviewed by Antti Koivisto.

Source/WebCore:

We need to recompute RenderText::m_canUseSimplifiedTextMeasuring when the font cascade changes
since we might not be able to use the fast path anymore.

Test: fast/text/simple-line-layout-dynamic-letter-word-spacing.html

  • rendering/RenderText.cpp:

(WebCore::RenderText::styleDidChange):

LayoutTests:

  • fast/text/simple-line-layout-dynamic-letter-word-spacing-expected.html: Added.
  • fast/text/simple-line-layout-dynamic-letter-word-spacing.html: Added.
2:56 PM Changeset in webkit [229866] by Adrian Perez de Castro
  • 6 edits in trunk

[WPE] Enable WOFF2 support
https://bugs.webkit.org/show_bug.cgi?id=178158

Reviewed by Frédéric Wang.

.:

  • Source/cmake/OptionsWPE.cmake: Add needed logic to detect the Brotli and WOFF2 libraries.

Tools:

  • wpe/jhbuild.modules: Add "brotli" and "woff2" to the JHBuild moduleset.

LayoutTests:

  • platform/wpe/TestExpectations: Unskip the fast/text/woff2.html and fast/text/woff2-totalsfntsize.html
2:52 PM Changeset in webkit [229865] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Do not export web-platform-test files generated by the wpt importer to assist the webkit test runner
https://bugs.webkit.org/show_bug.cgi?id=183916

Patch by Brendan McLoughlin <brendan@bocoup.com> on 2018-03-22
Reviewed by Youenn Fablet.

  • Scripts/webkitpy/w3c/test_exporter.py:

(TestExporter.create_branch_with_patch):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):

2:33 PM Changeset in webkit [229864] by graouts@webkit.org
  • 26 edits
    2 adds in trunk

[Web Animations] Make imported/mozilla/css-animations/test_event-dispatch.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183845

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Add test expectations for previously crashing tests, update other expectations with progressions, including
the two event dispatch tests which now pass all assertions.

  • css-animations/test_animation-finish-expected.txt:
  • css-animations/test_animation-pausing-expected.txt:
  • css-animations/test_animation-playstate-expected.txt:
  • css-animations/test_animation-ready-expected.txt:
  • css-animations/test_animation-starttime-expected.txt:
  • css-animations/test_event-dispatch-expected.txt:
  • css-animations/test_event-order-expected.txt:
  • css-animations/test_setting-effect-expected.txt: Added.
  • css-transitions/test_animation-cancel-expected.txt:
  • css-transitions/test_animation-computed-timing-expected.txt:
  • css-transitions/test_animation-currenttime-expected.txt:
  • css-transitions/test_animation-pausing-expected.txt:
  • css-transitions/test_animation-starttime-expected.txt:
  • css-transitions/test_event-dispatch-expected.txt:
  • css-transitions/test_setting-effect-expected.txt: Added.

Source/WebCore:

Finish the work to get DOM events for CSS Animations and CSS Transitions dispatching as specified.

  • animation/AnimationEffectReadOnly.cpp: Move timeEpsilon to be shared as part of WebAnimationUtilities.h since we now need it in

WebAnimation::timeToNextRequiredTick().

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForElement): We add a pre-emptive return clause when we know that the AnimationList
for previous and current styles are a match.

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::matchesBackingAnimationAndStyles const): Ensure we have a valid effect before downcasting it.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::initialize): We need to call pause() for declarative animations that aren't playing so that the animation's
playState is set correctly and the animation is not idle.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateAnimationSchedule): We no longer need to pass the current time to timeToNextRequiredTick() since the method has
been reworked to use the animation's current time, which is based on the timeline's current time.
(WebCore::DocumentTimeline::updateAnimations): Avoid creating a copy when iterating over pending hardware animations.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::stylesWouldYieldNewCSSTransitionsBlendingKeyframes const): We should never generate new blending keyframes if the
old and new styles contain the same value, since there would be no transition between two equal values, and we should only look at whether the new
style value and the recorded target value differ to determine if new blending keyframes are necessary.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextRequiredTick const): We correct our scheduling code which was shown to be broken in several of the newly-imported
Mozilla tests. Any running animation is now scheduled to invalidate again on the next tick, and we use timeEpsilon from WebAnimationUtilities.h to
correctly check if we're right at the active threshold, when we also invalidate on the next tick. If our current time is negative, in other words
when the animation has not yet started, we schedule this animation's next tick to be the negative of that value. In all other cases, no invalidation
needs to be scheduled.

  • animation/WebAnimation.h: We move updateFinishedState() to private since this method is not actually used outside of WebAnimation.cpp.
  • animation/WebAnimationUtilities.h: Move timeEpsilon to be shared as part of WebAnimationUtilities.h.

LayoutTests:

A couple of crashing tests no longer crash and a couple are now reliably passing.

2:24 PM Changeset in webkit [229863] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Add placeholder call and jump MacroAssembler emitters that take PtrTag in a register.
https://bugs.webkit.org/show_bug.cgi?id=183914
<rdar://problem/38763536>

Reviewed by Saam Barati and JF Bastien.

This is in preparation for supporting pointer profiling work.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::jump):
(JSC::MacroAssemblerARM::call):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::call):
(JSC::MacroAssemblerARM64::jump):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::jump):
(JSC::MacroAssemblerARMv7::call):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::jump):
(JSC::MacroAssemblerMIPS::call):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::call):
(JSC::MacroAssemblerX86::jump):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::jump):
(JSC::MacroAssemblerX86Common::call):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::call):
(JSC::MacroAssemblerX86_64::jump):

2:17 PM Changeset in webkit [229862] by Ross Kirsling
  • 1 edit
    1 add
    1 delete in trunk/LayoutTests

Unreviewed gardening. Update WinCairo TestExpectations and drop the unnecessary suffix.

  • platform/wincairo-win10/TestExpectations: Removed.
  • platform/wincairo/TestExpectations: Added.
2:10 PM Changeset in webkit [229861] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.2.1

Tag Safari-605.2.1.

1:54 PM Changeset in webkit [229860] by timothy_horton@apple.com
  • 19 edits in trunk

Improve readability of WebCore's OTHER_LDFLAGS
https://bugs.webkit.org/show_bug.cgi?id=183909
<rdar://problem/38760992>

Reviewed by Dan Bernstein.

  • .../Configurations/Base.xcconfig:
  • .../Configurations/FeatureDefines.xcconfig:
  • WebCore/Configurations/WebCore.xcconfig:
12:17 PM Changeset in webkit [229859] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch

Apply patch. rdar://problem/38758039

11:37 AM Changeset in webkit [229858] by timothy_horton@apple.com
  • 13 edits in trunk/Source

Adopt USE(OPENGL[_ES]) in more places
https://bugs.webkit.org/show_bug.cgi?id=183882
<rdar://problem/37912195>

Reviewed by Dan Bernstein.

Source/WebCore:

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::hasMuxableGPU):
(WebCore::GraphicsContext3DManager::updateHighPerformanceState):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
(WebCore::GraphicsContext3D::makeContextCurrent):
(WebCore::GraphicsContext3D::checkGPUStatus):
(WebCore::GraphicsContext3D::texImageIOSurface2D):

  • platform/graphics/cocoa/WebGLLayer.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):

  • platform/graphics/ios/GraphicsContext3DIOS.h:
  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::blitFramebuffer):
(WebCore::Extensions3DOpenGL::createVertexArrayOES):
(WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
(WebCore::Extensions3DOpenGL::isVertexArrayOES):
(WebCore::Extensions3DOpenGL::bindVertexArrayOES):

  • platform/graphics/opengl/Extensions3DOpenGL.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::resolveMultisamplingIfNecessary):
(WebCore::GraphicsContext3D::renderbufferStorage):
(WebCore::GraphicsContext3D::getIntegerv):
(WebCore::GraphicsContext3D::texImage2D):
(WebCore::GraphicsContext3D::depthRange):
(WebCore::GraphicsContext3D::clearDepth):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
Make it a bit more clear which code is platform-dependent and which code is GL/GLES-dependent.

Source/WTF:

  • wtf/Platform.h:
11:07 AM Changeset in webkit [229857] by zandobersek@gmail.com
  • 12 edits in trunk/Source

[TexMap] Make TextureMapperContextAttributes thread-specific
https://bugs.webkit.org/show_bug.cgi?id=183895

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Store the TextureMapperContextAttributes in a thread-specific manner.
The TextureMapperContextAttributes::get() method is now used to retrieve
a reference to that thread-specific object. If it's not been initialized
yet, then the current GL context is used for the initialization, as it
used to be done in the now-removed initialize() method.

TextureMapperPlatformLayerBuffer::clone() method now doesn't need to
be passed a TextureMapperGL object, since the texture can be created
directly by calling BitmapTextureGL::create(), passing the
TextureMapperContextAttributes object that's retrieved from the
thread-specific storage. This further simplifies the
TextureMapperPlatformLayerProxy::Compositor interface, removing the
texmapGL() getter from it.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):

  • platform/graphics/texmap/TextureMapperContextAttributes.cpp:

(WebCore::threadSpecificAttributes):
(WebCore::TextureMapperContextAttributes::get):
(WebCore::TextureMapperContextAttributes::initialize): Deleted.

  • platform/graphics/texmap/TextureMapperContextAttributes.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::clone):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:
  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::dropCurrentBufferWhilePreservingTexture):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:

Source/WebKit:

CoordinatedGraphicsScene, as an implementor of the
TextureMapperPlatformLayerProxy::Compositor interface, doesn't have to
implement the texmapGL() method anymore.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::texmapGL): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
11:03 AM Changeset in webkit [229856] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Thumb: Do not decorate bottom bit twice
https://bugs.webkit.org/show_bug.cgi?id=183906

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

Use MacroAssemblerCodePtr::createFromExecutableAddress instead of
MacroAssemblerCodePtr(void*) to avoid decorating the pointer twice as
a thumb pointer.

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

10:07 AM Changeset in webkit [229855] by Yusuke Suzuki
  • 3 edits
    3 adds in trunk

[JSC] Clear MustGenerate for ToString(Number) converted from NumberToStringWithRadix
https://bugs.webkit.org/show_bug.cgi?id=183559

Reviewed by Mark Lam.

JSTests:

  • stress/double-to-string-in-loop-removed.js: Added.

(test):

  • stress/int32-to-string-in-loop-removed.js: Added.

(test):

  • stress/int52-to-string-in-loop-removed.js: Added.

(test):

Source/JavaScriptCore:

When converting NumberToStringWithRadix to ToString(Int52/Int32/Double), we forget
to clear NodeMustGenerate for this ToString. It should be since it does not have
any user-observable side effect. This patch clears NodeMustGenerate.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

8:58 AM Changeset in webkit [229854] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] List up all candidates in DFGCapabilities and FTLCapabilities
https://bugs.webkit.org/show_bug.cgi?id=183897

Reviewed by Mark Lam.

We should not use default: clause here since it accidentally catches
the opcode and DFG nodes which should be optimized. For example,
op_super_sampler_begin and op_super_sampler_end are not listed while
they have DFG and FTL backend.

This patch lists up all candiates in DFGCapabilities and FTLCapabilities.
And we also clean up unnecessary checks in FTLCapabilities. Since we
already handles all the possible array types for these nodes (which can
be checked in DFG's code), we do not need to check array types.

We also fix FTLLowerDFGToB3' PutByVal code to use modeForPut.

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):

8:46 AM Changeset in webkit [229853] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Unreviewed gardening.

Unskipping imported/blink/svg/css/path-layout-crash.html (should have been unskipped with r229782).

8:40 AM Changeset in webkit [229852] by Yusuke Suzuki
  • 14 edits in trunk/Source/JavaScriptCore

[JSC] Drop op_put_by_index
https://bugs.webkit.org/show_bug.cgi?id=183899

Reviewed by Mark Lam.

This patch drops op_put_by_index.

  1. This functionality can be just covered by direct put_by_val.
  2. put_by_index is not well optimized. It is just calling a C

function. And it does not have DFG handling.

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::dumpBytecode):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPutByIndex): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayNode::emitBytecode):
(JSC::ArrayPatternNode::emitDirectBinding):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_index): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_put_by_index): Deleted.

  • llint/LLIntSlowPaths.cpp:
  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
8:26 AM Changeset in webkit [229851] by magomez@igalia.com
  • 4 edits
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening after r229847.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/loading/simple-subframe-expected.txt:
  • platform/gtk/http/tests/navigation/redirect-to-fragment2-expected.txt: Added.
  • platform/gtk/js/dom/dom-static-property-for-in-iteration-expected.txt:
8:12 AM Changeset in webkit [229850] by msaboff@apple.com
  • 3 edits
    1 add in trunk

Race Condition in arrayProtoFuncReverse() causes wrong results or crash
https://bugs.webkit.org/show_bug.cgi?id=183901

Reviewed by Keith Miller.

JSTests:

New test.

  • stress/array-reverse-doesnt-clobber.js: Added.

(testArrayReverse):
(createArrayOfArrays):
(createArrayStorage):

Source/JavaScriptCore:

Added write barriers to ensure the reversed contents are properly marked.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncReverse):

7:54 AM Changeset in webkit [229849] by Alan Bujtas
  • 4 edits in trunk

SVG root is skipped while marking percentage height descendants dirty.
https://bugs.webkit.org/show_bug.cgi?id=183877

Reviewed by Antti Koivisto.

Source/WebCore:

Calling continingBlock() to get to the correct container works as long as the ancestor inline element
renderers are wrapped in anonymous blocks (continuation for example).

While the SVG root renderer is an inline renderer, it is not wrapped or normalized in any way,
so containingBlock() will elegantly skip it and return an SVG root ancestor.
dirtyForLayoutFromPercentageHeightDescendants calls containingBlock() to walk up
on the ancestor chain to mark elements dirty. This fails when there's an SVG subtree in the block chain.
This patch marks the SVG subtree chain dirty to ensure that layout will get to all the dirty leaf renderers
(note that the SVG subtree is supposed to have only statically positioned elements so parent == containing block).

Covered by existing tests.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):

LayoutTests:

6:51 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
6:48 AM Changeset in webkit [229848] by Adrian Perez de Castro
  • 2 edits in trunk/Source/WebCore

[WPE][GTK] Build failure when ENABLE_VIDEO, ENABLE_WEB_AUDIO and ENABLE_XSLT are disabled
https://bugs.webkit.org/show_bug.cgi?id=183896

Reviewed by Yusuke Suzuki.

No new tests needed.

  • bindings/js/JSWebAnimationCustom.cpp: Add missing #include of Document.h
4:31 AM Changeset in webkit [229847] by fred.wang@free.fr
  • 8 edits
    3 adds
    2 deletes in trunk/LayoutTests

[MathML] Import WPT test to replace mathml/opentype/large-operators-italic-correction.html
https://bugs.webkit.org/show_bug.cgi?id=183891

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-22
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

Import WPT test added in https://github.com/w3c/web-platform-tests/pull/9993.

  • web-platform-tests/fonts/math/largeop-displayoperatorminheight2000-2AFF-italiccorrection3000.woff: Added.
  • web-platform-tests/fonts/math/w3c-import.log:
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2-expected.txt: Added.
  • web-platform-tests/mathml/presentation-markup/scripts/subsup-parameters-2.html: Added.
  • web-platform-tests/mathml/presentation-markup/scripts/w3c-import.log:
  • web-platform-tests/mathml/tools/largeop.py:

LayoutTests:

Remove large-operators-italic-correction.html. Italic correction is tested more completely by
a new WPT test that does not require Latin Modern Math to be installed on the try bots.

  • mathml/opentype/large-operators-italic-correction-expected.txt: Removed.
  • mathml/opentype/large-operators-italic-correction.html: Removed.
  • platform/ios/TestExpectations: Remove test expectation.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.

Mar 21, 2018:

11:48 PM Changeset in webkit [229846] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebKit

Unreviewed, update comment added in r229801.

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-21

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::didFindString): Remove "On Mobile" and mention bug 183889.

9:35 PM Changeset in webkit [229845] by Brent Fulgham
  • 3 edits
    2 adds in trunk/Source/WTF

Create an assertion mechanism to ensure proper WebCore use in each WebKit Process
https://bugs.webkit.org/show_bug.cgi?id=183806
<rdar://problem/38694251>

Reviewed by Ryosuke Niwa.

Part of our security improvements involve better isolation between the different WebKit
processes (UIProcess, WebContent, Networking, Storage, etc.).

We need an assertion language we can use to protect certain critical APIs and code paths
against accidental misuse.

This patch adds a new enum type meant to represent different categories of program logic
that we do not want used in the wrong process.

This first patch just creates these types and makes them available. New assertions using
these values will be added as we complete our work ensuring proper process isolation.

In a method we want to protect, we can add an assertion describing the process privileges
needed to execute the code. For example, for cookie access we might use this:

ASSERT(hasProcessPrivilege(ProcessPrivilege::CanAccessRawCookies);

At the launch of the UIProcess we would use this method to ensure all privileges are available:

setProcessPrivileges(allPrivileges());

In the network process, during platform initialization, we would use something like this:

setProcessPrivileges({ ProcessPrivilege::CanAccessRawCookies, ProcessPrivilege::CanAccessCredentials });

In the WebContent process, we would not set any privileges. We could just leave it as the
default initialization, or use this:

setProcessPrivileges({ });

Later, when we attempt to execute the initial code, we would expect an assertion for the
WebContent process, while Network and UIProcess pass the assertion.

  • WTF.xcodeproj/project.pbxproj: Add new files.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/ProcessPrivilege.cpp: Added.

(WTF::processPrivileges):
(WTF::setProcessPrivileges):
(WTF::hasProcessPrivilege):

  • wtf/ProcessPrivilege.h: Added.
9:20 PM Changeset in webkit [229844] by Fujii Hironori
  • 2 edits in trunk/Tools

Unreviewed. Marked myself as a committer.

  • Scripts/webkitpy/common/config/contributors.json:
8:14 PM Changeset in webkit [229843] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r229828): WebKit.NoHistoryItemScrollToFragment API test is failing on iOS
https://bugs.webkit.org/show_bug.cgi?id=183886

Reviewed by Wenson Hsieh.

Since r229828, the FrameLoader needs to call FrameLoaderClient::didDecidePolicyForNavigationAction()
whenever a navigation policy decision is made. I added such a call r229828 to
FrameLoader::continueLoadAfterNavigationPolicy() but forgot to add one to
FrameLoader::continueFragmentScrollAfterNavigationPolicy(), which is the equivalent
for fragment navigations.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):

7:15 PM Changeset in webkit [229842] by fpizlo@apple.com
  • 17 edits
    1 add in trunk

ScopedArguments should do poisoning and index masking
https://bugs.webkit.org/show_bug.cgi?id=183863

Reviewed by Mark Lam.

JSTests:

Adds another stress test of scoped arguments.

  • stress/scoped-arguments-test.js: Added.

(foo):

Source/JavaScriptCore:

This outlines the ScopedArguments overflow storage and adds poisoning.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateWithGuard):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileGetArrayLength):

  • ftl/FTLAbstractHeapRepository.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitScopedArgumentsGetByVal):

  • runtime/JSCPoison.h:
  • runtime/ScopedArguments.cpp:

(JSC::ScopedArguments::ScopedArguments):
(JSC::ScopedArguments::createUninitialized):
(JSC::ScopedArguments::visitChildren):

  • runtime/ScopedArguments.h:
6:49 PM Changeset in webkit [229841] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r229831): ProcessSwap.Basic API test is crashing
https://bugs.webkit.org/show_bug.cgi?id=183884

Reviewed by Brady Eidson.

This code should only be called for navigation policy decisions.
It used to work without this check because of an early return, which
was dropped in r229831.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):

6:47 PM Changeset in webkit [229840] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Regression(r229831): fast/loader/javascript-url-iframe-remove-on-navigate-async-delegate.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=183885

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

6:24 PM Changeset in webkit [229839] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Tools

Unreviewed, make the email address of Yoshiaki Jitsukawa all lower case.

  • Scripts/webkitpy/common/config/contributors.json:
5:59 PM Changeset in webkit [229838] by yoshiaki.jitsukawa@sony.com
  • 2 edits in trunk/Tools

Unreviewed, add myself as a WebKit committer.

  • Scripts/webkitpy/common/config/contributors.json:
5:22 PM Changeset in webkit [229837] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit

[Extra zoom mode] Add new SPI hooks for clients to vend an input session context view
https://bugs.webkit.org/show_bug.cgi?id=183866
<rdar://problem/38692256>

Reviewed by Tim Horton.

Add new SPI hooks to _WKInputDelegate allowing internal clients to provide a view that gives additional context
when editing form controls, on top of the default label or placeholder text displayed by WebKit. The height
delegate is invoked first, giving the client an opportunity to lay out the context view to fit the given size;
the actual view is then queried.

If the view changes, clients may tell WebKit to reload the context view via SPI on WKFormInputSession; this call
to reload is plumbed through to the currently presented list view controller (at the moment, this is only the
text input list view controller).

  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/API/Cocoa/_WKInputDelegate.h:

Add the new SPI hooks, described above.

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

(-[WKFormInputSession reloadFocusedElementContextView]):

Plumb the context view reload hook through WKContentView to WKTextInputListViewController.

(-[WKContentView setupInteraction]):
(-[WKContentView _stopAssistingNode]):
(-[WKContentView reloadContextViewForPresentedListViewController]):
(-[WKContentView focusedFormControllerDidUpdateSuggestions:]):

Slight tweak to only reload text suggestions if we are not blurring the focused element. Without this extra
condition, the list view controller's inner table view would get reloaded when the form input session's text
suggestions are set to nil when the list view controller is dismissed, causing a visible stutter in the
dismissal animation of view controller.

5:05 PM Changeset in webkit [229836] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/scrolling/latching/scroll-div-no-latching.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183879

Unreviewed test gardening.

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

Mark inspector/console/messageAdded-from-named-evaluations.html as slow.
https://bugs.webkit.org/show_bug.cgi?id=183880

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:58 PM Changeset in webkit [229834] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/seek-backward-support/seek-backward-support.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183869

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:27 PM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
4:11 PM Changeset in webkit [229833] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WebKitTestRunner crashed in com.apple.WebKit: WebKit::WebProcessPool::terminateServiceWorkerProcesses
https://bugs.webkit.org/show_bug.cgi?id=183875

Reviewed by Brent Fulgham.

Protect |this| while we're iterating over m_serviceWorkerProcesses and terminating
each service worker process. It is possible for the WebProcess pool to get destroyed
as a result of terminating a service worker process.

This change is covered by layout tests that are currently crashing on the ASAN bots.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::terminateServiceWorkerProcesses):

3:37 PM Changeset in webkit [229832] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit

Fix typo in inactive media stream timeout default value
https://bugs.webkit.org/show_bug.cgi?id=183872
<rdar://problem/38723903>

Reviewed by Jer Noble.

  • Shared/WebPreferences.yaml: Fix typo.
  • Shared/WebPreferencesDefaultValues.h: Ditto.
3:28 PM Changeset in webkit [229831] by Chris Dumez
  • 12 edits
    29 copies
    1 move
    74 adds in trunk

Make policy decisions asynchronous
https://bugs.webkit.org/show_bug.cgi?id=180568
<rdar://problem/37131297>

Reviewed by Alex Christensen.

Source/WebKit:

Get rid of synchronous IPC and synchronous code paths for policy delegates.
Policy decisions are now all made asynchronously and rely on asynchronous
IPC.

This code change is based on work by Alex Christensen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

LayoutTests:

Rebaseline tests for WebKit2. The issue is that some tests dump policy delegate calls
and things now happen in a slightly different order now that those delegates are
asynchronous.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
  • platform/ios/http/tests/loading/simple-subframe-expected.txt:
  • platform/mac-wk2/http/tests/loading/simple-subframe-expected.txt: Copied from LayoutTests/platform/ios/http/tests/loading/simple-subframe-expected.txt.
  • platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
  • platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/subframe-removes-itself-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
  • platform/wk2/http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
  • platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/bad-server-subframe-expected.txt: Added.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
  • platform/wk2/http/tests/loading/slow-parsing-subframe-expected.txt: Added.
  • platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
  • platform/wk2/http/tests/misc/window-dot-stop-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/inspector/page/frameScheduledNavigation-expected.txt: Added.
  • platform/wk2/loader/go-back-cached-main-resource-expected.txt: Added.
  • platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/webarchive/loading/test-loading-archive-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/webarchive/loading/video-in-webarchive-expected.txt: Renamed from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
3:22 PM Changeset in webkit [229830] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

Disconnect the SVGPathSegList items from their SVGPathElement before rebuilding a new list
https://bugs.webkit.org/show_bug.cgi?id=183723
<rdar://problem/38517871>

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

Source/WebCore:

When setting the "d" attribute directly on a path, we rebuild the list
of path segments held for creating the property tear off. The old path
segments need to get disconnected from the path element. We already do
that when a path segment is replaced or removed.

Test: svg/dom/reuse-pathseg-after-changing-d.html

  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::svgAttributeChanged):

  • svg/SVGPathSegList.cpp:

(WebCore::SVGPathSegList::clear): SVGPathSegListValues::clearContextAndRoles()
will now be called from SVGPathSegListValues::clear() via SVGListProperty::clearValues().
(WebCore::SVGPathSegList::replaceItem):
(WebCore::SVGPathSegList::removeItem):
(WebCore::SVGPathSegList::clearContextAndRoles): Deleted.

  • svg/SVGPathSegList.h: SVGPathSegListValues::clearContextAndRoles() will

now be called from SVGPathSegListValues::clear() via SVGListProperty::initializeValues().

  • svg/SVGPathSegListValues.cpp:

(WebCore::SVGPathSegListValues::clearItemContextAndRole):
(WebCore::SVGPathSegListValues::clearContextAndRoles):

  • svg/SVGPathSegListValues.h:

(WebCore::SVGPathSegListValues::operator=):
(WebCore::SVGPathSegListValues::clear):

LayoutTests:

  • svg/dom/reuse-pathseg-after-changing-d-expected.txt: Added.
  • svg/dom/reuse-pathseg-after-changing-d.html: Added.
2:49 PM Changeset in webkit [229829] by graouts@webkit.org
  • 14 edits in trunk

[Web Animations] Ensure animationcancel and transitioncancel events are dispatched
https://bugs.webkit.org/show_bug.cgi?id=183864

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

  • css-animations/test_animation-cancel-expected.txt:
  • css-animations/test_animation-currenttime-expected.txt:
  • css-animations/test_animation-finished-expected.txt:
  • css-animations/test_animation-reverse-expected.txt:
  • css-transitions/test_animation-cancel-expected.txt:
  • css-transitions/test_animation-pausing-expected.txt:
  • css-transitions/test_animation-ready-expected.txt:

Source/WebCore:

In order to correctly dispatch animationcancel and transitioncancel events, we must call cancel() on CSSAnimation and CSSTransitions
objects that are removed while in a play or pause phase. Additionally, we cancel declarative animations that are moving from a valid
to a null timeline. Finally, when cancel() is called on a declarative animation, we record the timestamp and manually call
invalidateDOMEvents() passing that timestamp in to ensure that the right phase change is recorded and results in the queuing of
animationcancel and transitioncancel events.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::updateCSSAnimationsForElement): Make sure we cancel all recorded CSS Animations when we newly get a
"display: none" style. We also call the new cancelOrRemoveDeclarativeAnimation() method, instead of removing animations outright,
for all animations that previously existed but are no longer listed in the current style.
(WebCore::AnimationTimeline::updateCSSTransitionsForElement): Like in updateCSSAnimationsForElement(), we cancel all recorded CSS
Transitions when we newly get a "display: none" style. We now use the refactored removeDeclarativeAnimation() method to remove an
a transition for a property that was already transitioned in the previous style but has a new backing Animation object. Finally,
like in updateCSSAnimationsForElement(), we call the new cancelOrRemoveDeclarativeAnimation() method, instead of removing transitions
outright, for all transitions that previously existed but are no longer listed in the current style.
(WebCore::AnimationTimeline::removeDeclarativeAnimation): Refactor code into this new method to remove a declarative animation.
(WebCore::AnimationTimeline::cancelOrRemoveDeclarativeAnimation): Cancels a DeclarativeAnimation if it's active or removes it right away.

  • animation/AnimationTimeline.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::setTimeline): If we're moving from a valid timeline to a null timeline, call cancel() on this animation
such that an animationcancel or transitioncancel event can be dispatched.
(WebCore::DeclarativeAnimation::cancel): Cancelations require the computation of the time at which a declarative animation was canceled,
so we record the animation's active time as it's canceled and manually call invalidateDOMEvents() with that time after the general cancel()
code has run.
(WebCore::DeclarativeAnimation::invalidateDOMEvents): Accept an explicit timestamp for cancel events.

  • animation/DeclarativeAnimation.h:
  • animation/WebAnimation.h:
2:19 PM Changeset in webkit [229828] by Chris Dumez
  • 10 edits in trunk

ScrollViewInsetTests.RestoreInitialContentOffsetAfterCrash API test is failing with async delegates
https://bugs.webkit.org/show_bug.cgi?id=183787

Reviewed by Wenson Hsieh.

Source/WebCore:

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

  • loader/FrameLoaderClient.h:

Source/WebKit:

Without asynchronous policy delegates, when the client requests a navigation, we would:

  1. Do a synchronous navigation policy check
  2. If the client allows the navigation, start the provisional load

Starting the provisional load would freeze the layer tree until first meaningful
layout via WebFrameLoaderClient::provisionalLoadStarted() -> WebPage::didStartPageTransition().

When constructing a WebView and then requesting a load right away. This would make sure
we do not commit a layer tree for the initial about:blank page because the layer tree
would be frozen until we have something meaningful to show for the following load.

However, with asynchronous policy delegates, we are able to do a layer tree commit
during the asynchronous navigation policy check because the layer tree is not frozen
yet (provisional load has not started) and the process is not stuck on synchronous
IPC. When constructing a WebView and then requesting a load right away, this would
allow a layer tree commit for about:blank to happen before we've even started the
load. This would cause some API tests to fail on iOS.

To address the issue, we try and maintain pre-existing behavior by freezing the
layer tree during navigation policy decision.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
(WebKit::WebFrameLoaderClient::didDecidePolicyForNavigationAction):

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

(WebKit::WebPage::didStartNavigationPolicyCheck):
(WebKit::WebPage::didCompleteNavigationPolicyCheck):

  • WebProcess/WebPage/WebPage.h:

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/ios/ScrollViewInsetTests.mm:

(-[AsyncPolicyDelegateForInsetTest webView:didFinishNavigation:]):
(-[AsyncPolicyDelegateForInsetTest webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[AsyncPolicyDelegateForInsetTest webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[AsyncPolicyDelegateForInsetTest webViewWebContentProcessDidTerminate:]):
(TestWebKitAPI::TEST):

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

Skip imported/w3c/web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html.
https://bugs.webkit.org/show_bug.cgi?id=182176

Unreviewed test gardening.

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

Skip http/tests/resourceLoadStatistics/prevalent-resource-unhandled-keydown.html.
https://bugs.webkit.org/show_bug.cgi?id=183093

Unreviewed test gardening.

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

Mark media/track/track-css-matching-timestamps.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183220

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:13 PM Changeset in webkit [229824] by eric.carlson@apple.com
  • 8 edits
    1 copy
    2 moves in trunk/Source/WebCore

Clean up platform VideoFullscreenLayerManager
https://bugs.webkit.org/show_bug.cgi?id=183859
<rdar://problem/38715419>

Reviewed by Jer Noble.

No new tests, no functional change.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/VideoFullscreenLayerManager.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h.

(WebCore::VideoFullscreenLayerManager::~VideoFullscreenLayerManager):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):
(WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::destroyLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenFrame):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::requiresTextTrackRepresentation const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer const):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenFrame):

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h.
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm: Renamed from Source/WebCore/platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm.

(-[WebVideoContainerLayer setBounds:]):
(-[WebVideoContainerLayer setPosition:]):
(WebCore::VideoFullscreenLayerManagerObjC::VideoFullscreenLayerManagerObjC):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenLayer):
(WebCore::VideoFullscreenLayerManagerObjC::setVideoFullscreenFrame):
(WebCore::VideoFullscreenLayerManagerObjC::didDestroyVideoLayer):
(WebCore::VideoFullscreenLayerManagerObjC::requiresTextTrackRepresentation const):
(WebCore::VideoFullscreenLayerManagerObjC::syncTextTrackBounds):
(WebCore::VideoFullscreenLayerManagerObjC::setTextTrackRepresentation):

2:10 PM Changeset in webkit [229823] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

Allow the WebContent process to read ViewBridge preferences
https://bugs.webkit.org/show_bug.cgi?id=183862
<rdar://problem/38459456>

Reviewed by Eric Carlson.

  • WebProcess/com.apple.WebProcess.sb.in:
2:07 PM Changeset in webkit [229822] by jer.noble@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (r226059?): [macOS WK2] Layout Test fast/mediastream/MediaStream-MediaElement-setObject-null.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=181069
<rdar://problem/36188221>

Reviewed by Youenn Fablet.

Pass the function into the play() promise handler rather than calling it immediately.

  • fast/mediastream/MediaStream-MediaElement-setObject-null.html:
  • platform/mac-wk2/TestExpectations:
2:01 PM Changeset in webkit [229821] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 52

Added a tag for Safari Technology Preview release 52.

1:21 PM Changeset in webkit [229820] by jmarcell@apple.com
  • 20 edits
    14 adds in branches/safari-605-branch

Cherry-pick r229297. rdar://problem/38682578

1:21 PM Changeset in webkit [229819] by jmarcell@apple.com
  • 5 edits
    3 adds in branches/safari-605-branch

Cherry-pick r229585. rdar://problem/38681880

12:41 PM Changeset in webkit [229818] by graouts@webkit.org
  • 18 edits in trunk

[Web Animations] Dispatch DOM events for CSS Transitions and CSS Animations implemented as Web Animations
https://bugs.webkit.org/show_bug.cgi?id=183781

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Some of the Mozilla tests no longer time out and partially pass, marking the progression.

  • css-animations/test_animation-starttime-expected.txt:
  • css-animations/test_element-get-animations-expected.txt:

Source/WebCore:

Now that we've implemented CSS Animations and CSS Transitions as Web Animations (webkit.org/b/183504) we can dispatch DOM events
for targets of DeclarativeAnimation objects. To do that, we add a new invalidateDOMEvents() method on DeclarativeAnimations which
is called when the timer scheduled after the timing model has been invalidated fires in DocumentTimeline::performInvalidationTask().
When we check for DOM events to dispatch, we look at the last recorded phase and iteration and determine whether the state of the
animation has changed. We use a GenericEventQueue to enqueue the events such that they are dispatched asynchronously at a moment
when it is safe to evaluate script.

  • animation/AnimationEffectReadOnly.h: Make currentIteration() public since we now need it in DeclarativeAnimation::invalidateDOMEvents().
  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::create): Pass the animation target to the constructor instead of its document.
(WebCore::CSSAnimation::CSSAnimation): Pass the animation target to the superclass instead of its document.

  • animation/CSSAnimation.h:
  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create): Pass the animation target to the constructor instead of its document.
(WebCore::CSSTransition::CSSTransition): Pass the animation target to the superclass instead of its document.

  • animation/CSSTransition.h:
  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::DeclarativeAnimation): Expect an Element instead of a Document and use that element as the target of the
GenericEventQueue that we initialize. We also register this element as our m_target.
(WebCore::DeclarativeAnimation::~DeclarativeAnimation): Close the GenericEventQueue member upon destruction.
(WebCore::DeclarativeAnimation::initialize): We need to call pause() for declarative animations that aren't playing so that the animation's
playState is set correctly and the animation is not idle.
(WebCore::DeclarativeAnimation::phaseWithoutEffect const): Because we may need to get an animation's current phase in invalidateDOMEvents()
after an animation's effect has been removed, we provide an alternate way to compute the phase just by looking at the animation's current time.
(WebCore::DeclarativeAnimation::invalidateDOMEvents): Based on the previous and current pending state, iteration and phase, we enqueue animation
and transition DOM events as specified by the CSS Animations Level 2 and CSS Transitions Level 2 specifications.
(WebCore::DeclarativeAnimation::enqueueDOMEvent): Enqueue an event on the GenericEventQueue based on the animation type.

  • animation/DeclarativeAnimation.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::performInvalidationTask): We call invalidateDOMEvents() on all declarative animations registered with this timeline
now that the timing model has been invalidated.

  • dom/EventNames.h: Add the names of newly-implemented events (animationcancel, transitioncancel, transitionrun and transitionstart).
  • dom/GlobalEventHandlers.idl: Add new attribute-based event handlers for the newly-implemented events.
  • html/HTMLAttributeNames.in: Add new attribute-based event handlers for the newly-implemented events.
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::createEventHandlerNameMap): Add new attribute-based event handlers for the newly-implemented events.

LayoutTests:

New attribute-based event handlers are now exposed, update the expectations for those.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
12:33 PM Changeset in webkit [229817] by mark.lam@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Refactor the PtrTag list as a macro so that we can auto-generate code that enumerates each PtrTag.
https://bugs.webkit.org/show_bug.cgi?id=183861
<rdar://problem/38716822>

Reviewed by Filip Pizlo.

Also added ptrTagName() to aid debugging. ptrTagName() is implemented using this
new PtrTag macro list.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • runtime/PtrTag.cpp: Added.

(JSC::ptrTagName):

  • runtime/PtrTag.h:
11:44 AM Changeset in webkit [229816] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Add support for an overridable byline in blog posts
https://bugs.webkit.org/show_bug.cgi?id=183799

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/functions.php:
11:23 AM Changeset in webkit [229815] by mark.lam@apple.com
  • 18 edits in trunk/Source/JavaScriptCore

Use CodeBlock::instructions()[] and CodeBlock::bytecodeOffset() instead of doing own pointer math.
https://bugs.webkit.org/show_bug.cgi?id=183857
<rdar://problem/38712184>

Reviewed by JF Bastien.

We should avoid doing pointer math with CodeBlock::instructions().begin().
Instead, we should use the operator[] that comes with CodeBlock::instructions()
for computing an Instruction*, and use CodeBlock::bytecodeOffset() for computing
the bytecode offset of a given Instruction*. These methods will do assertions
which helps catch bugs sooner, plus they are more descriptive of the operation
we're trying to do.

  • bytecode/BytecodeKills.h:

(JSC::BytecodeKills::operandIsKilled const):
(JSC::BytecodeKills::forEachOperandKilledAt const):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromLLInt):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::arithProfileForBytecodeOffset):
(JSC::CodeBlock::bytecodeOffsetFromCallSiteIndex):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFromLLInt):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::callSiteBitsAsBytecodeOffset const):
(JSC::CallFrame::currentVPC const):
(JSC::CallFrame::setCurrentVPC):

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::updateTopCallFrame):
(JSC::JIT::copiedInstruction):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

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

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::call):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_trace_operand):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setupGetByIdPrototypeCache): Deleted.
(JSC::LLInt::getByVal): Deleted.
(JSC::LLInt::handleHostCall): Deleted.
(JSC::LLInt::setUpCall): Deleted.
(JSC::LLInt::genericCall): Deleted.
(JSC::LLInt::varargsSetup): Deleted.
(JSC::LLInt::llint_throw_stack_overflow_error): Deleted.
(JSC::LLInt::llint_stack_check_at_vm_entry): Deleted.
(JSC::LLInt::llint_write_barrier_slow): Deleted.
(JSC::LLInt::llint_crash): Deleted.

  • runtime/SamplingProfiler.cpp:

(JSC::tryGetBytecodeIndex):

11:10 AM Changeset in webkit [229814] by Ryan Haddad
  • 3 edits
    2 copies in branches/safari-605-branch/LayoutTests

Work towards rdar://problem/38714892.

Unreviewed test gardening.

  • platform/mac-sierra/fast/forms/input-table-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-table-expected.txt.
  • platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
10:55 AM Changeset in webkit [229813] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKitLegacy/mac

Revert r229414. rdar://problem/38651634

10:52 AM Changeset in webkit [229812] by pvollan@apple.com
  • 3 edits in trunk/Source/WebCore

Compile error when not using IOSurface canvas backing store.
https://bugs.webkit.org/show_bug.cgi?id=183855

Reviewed by Brent Fulgham.

The method IOSurface::createFromImageBuffer is only referenced when IOSurface
is used as canvas backing store.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:
10:48 AM Changeset in webkit [229811] by Chris Dumez
  • 2 edits in trunk/Tools

Fix DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop to use synchronouslyLoadTestPageNamed
https://bugs.webkit.org/show_bug.cgi?id=183858

Reviewed by Wenson Hsieh.

Fix DataInteractionTests.InjectedBundleAllowPerformTwoStepDrop to use synchronouslyLoadTestPageNamed
instead of loadTestPageNamed because injecting script.

  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

10:38 AM Changeset in webkit [229810] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

btjs should print the bytecode offset in the stack trace for JS frames
https://bugs.webkit.org/show_bug.cgi?id=183856

Reviewed by Filip Pizlo.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::bytecodeOffset):
(JSC::CallFrame::dump):

10:33 AM Changeset in webkit [229809] by graouts@webkit.org
  • 3 edits
    72 adds in trunk/LayoutTests

[Web Animations] Import CSS Animations and CSS Transitions as Web Animations tests from Mozilla
https://bugs.webkit.org/show_bug.cgi?id=183851

Reviewed by Jon Lee.

LayoutTests/imported/mozilla:

Import a series of tests created by Mozilla contributors for CSS Animations and CSS Transitions as Web Animations.

  • css-animations/test_animation-cancel-expected.txt: Added.
  • css-animations/test_animation-cancel.html: Added.
  • css-animations/test_animation-computed-timing-expected.txt: Added.
  • css-animations/test_animation-computed-timing.html: Added.
  • css-animations/test_animation-currenttime-expected.txt: Added.
  • css-animations/test_animation-currenttime.html: Added.
  • css-animations/test_animation-finish-expected.txt: Added.
  • css-animations/test_animation-finish.html: Added.
  • css-animations/test_animation-finished-expected.txt: Added.
  • css-animations/test_animation-finished.html: Added.
  • css-animations/test_animation-id-expected.txt: Added.
  • css-animations/test_animation-id.html: Added.
  • css-animations/test_animation-pausing-expected.txt: Added.
  • css-animations/test_animation-pausing.html: Added.
  • css-animations/test_animation-playstate-expected.txt: Added.
  • css-animations/test_animation-playstate.html: Added.
  • css-animations/test_animation-ready-expected.txt: Added.
  • css-animations/test_animation-ready.html: Added.
  • css-animations/test_animation-reverse-expected.txt: Added.
  • css-animations/test_animation-reverse.html: Added.
  • css-animations/test_animation-starttime-expected.txt: Added.
  • css-animations/test_animation-starttime.html: Added.
  • css-animations/test_animations-dynamic-changes-expected.txt: Added.
  • css-animations/test_animations-dynamic-changes.html: Added.
  • css-animations/test_cssanimation-animationname-expected.txt: Added.
  • css-animations/test_cssanimation-animationname.html: Added.
  • css-animations/test_document-get-animations-expected.txt: Added.
  • css-animations/test_document-get-animations.html: Added.
  • css-animations/test_effect-target-expected.txt: Added.
  • css-animations/test_effect-target.html: Added.
  • css-animations/test_element-get-animations-expected.txt: Added.
  • css-animations/test_element-get-animations.html: Added.
  • css-animations/test_event-dispatch-expected.txt: Added.
  • css-animations/test_event-dispatch.html: Added.
  • css-animations/test_event-order-expected.txt: Added.
  • css-animations/test_event-order.html: Added.
  • css-animations/test_keyframeeffect-getkeyframes.html: Added.
  • css-animations/test_pseudoElement-get-animations-expected.txt: Added.
  • css-animations/test_pseudoElement-get-animations.html: Added.
  • css-animations/test_setting-effect.html: Added.
  • css-transitions/test_animation-cancel-expected.txt: Added.
  • css-transitions/test_animation-cancel.html: Added.
  • css-transitions/test_animation-computed-timing-expected.txt: Added.
  • css-transitions/test_animation-computed-timing.html: Added.
  • css-transitions/test_animation-currenttime-expected.txt: Added.
  • css-transitions/test_animation-currenttime.html: Added.
  • css-transitions/test_animation-finished-expected.txt: Added.
  • css-transitions/test_animation-finished.html: Added.
  • css-transitions/test_animation-pausing-expected.txt: Added.
  • css-transitions/test_animation-pausing.html: Added.
  • css-transitions/test_animation-ready-expected.txt: Added.
  • css-transitions/test_animation-ready.html: Added.
  • css-transitions/test_animation-starttime-expected.txt: Added.
  • css-transitions/test_animation-starttime.html: Added.
  • css-transitions/test_csstransition-transitionproperty-expected.txt: Added.
  • css-transitions/test_csstransition-transitionproperty.html: Added.
  • css-transitions/test_document-get-animations-expected.txt: Added.
  • css-transitions/test_document-get-animations.html: Added.
  • css-transitions/test_effect-target-expected.txt: Added.
  • css-transitions/test_effect-target.html: Added.
  • css-transitions/test_element-get-animations-expected.txt: Added.
  • css-transitions/test_element-get-animations.html: Added.
  • css-transitions/test_event-dispatch-expected.txt: Added.
  • css-transitions/test_event-dispatch.html: Added.
  • css-transitions/test_keyframeeffect-getkeyframes-expected.txt: Added.
  • css-transitions/test_keyframeeffect-getkeyframes.html: Added.
  • css-transitions/test_pseudoElement-get-animations-expected.txt: Added.
  • css-transitions/test_pseudoElement-get-animations.html: Added.
  • css-transitions/test_setting-effect.html: Added.
  • resources/testcommon.js: Added.

LayoutTests:

Mark all imported tests as flaky failures or timeouts while we work on making them pass reliably.
Each test has a dedicated bug tracking progress.

9:58 AM WebKitGTK/Gardening/Calendar edited by Ms2ger@igalia.com
(diff)
9:32 AM Changeset in webkit [229808] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore/PAL

Remove temporary build fix now that underlying issue is resolved
https://bugs.webkit.org/show_bug.cgi?id=183854
<rdar://problem/37198715>

Reviewed by Eric Carlson.

The build environment issues that forced us to disable this setting
have been corrected, so this should be turned on for all builds.

  • pal/spi/cf/CFNetworkSPI.h:
9:32 AM Changeset in webkit [229807] by Alan Bujtas
  • 7 edits
    1 add in trunk/Tools

[LayoutReloaded] Enable formatting state for InlineFormattingContext
https://bugs.webkit.org/show_bug.cgi?id=183853

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext.prototype._contentHeight):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._createNewLine):

  • LayoutReloaded/LayoutState.js:

(LayoutState.prototype.formattingState):

  • LayoutReloaded/README.md:
  • LayoutReloaded/Utils.js:

(Utils._dumpTree):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/simple-inline-text.html: Added.
7:44 AM Changeset in webkit [229806] by Alan Bujtas
  • 3 edits in trunk/Tools

[LayoutReloaded] Move inline lines to InlineFormattingState.
https://bugs.webkit.org/show_bug.cgi?id=183814

Reviewed by Antti Koivisto.

InlineFormattingContext is not supposed to hold state.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype._commitLine):
(InlineFormattingContext.prototype._createNewLine):
(InlineFormattingContext.prototype.lines): Deleted.
(InlineFormattingContext.prototype._initializeLine): Deleted.

  • LayoutReloaded/FormattingState/InlineFormattingState.js:

(InlineFormattingState):
(InlineFormattingState.prototype.lines):
(InlineFormattingState.prototype.appendLine):

7:37 AM Changeset in webkit [229805] by Ms2ger@igalia.com
  • 2 edits in trunk/Tools

[WPE] Disable most of TestWebKitFaviconDatabase.
https://bugs.webkit.org/show_bug.cgi?id=183813

Unreviewed test gardening.

The relevant APIs were mostly removed in r223953, making this test
time out consistently.

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitFaviconDatabase.cpp:
7:16 AM Changeset in webkit [229804] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebCore

[CoordGraphics] Track dirty rects that need update in CoordinatedGraphicsLayer
https://bugs.webkit.org/show_bug.cgi?id=175376

Reviewed by Carlos Garcia Campos.

Follow the GraphicsLayerCA class and track rectangles in need of display
in a Vector object. In case the whole layer needs updating, it's marked
separately, and further rects are ignored.

During layer flush, all the rects are used to invalidate the backing
store, or a single layer-sized rect is used in case the whole layer has
to be updated. We can also bail early from updateContentBuffers() if
there are no dirty rects recorded and there's no pending visible rect
adjustment.

At the end of updateContentBuffers() we now test for an existing
previous backing store before inquiring the backing store if the visible
area is already covered, enabling deletion of this backing store.

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

(WebCore::CoordinatedGraphicsLayer::setNeedsDisplay):
(WebCore::CoordinatedGraphicsLayer::setNeedsDisplayInRect):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffers):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
5:37 AM Changeset in webkit [229803] by clopez@igalia.com
  • 2 edits in trunk/Source/WebCore

[WPE] Build failure with ENABLE_VIDEO=OFF when GStreamer is not available
https://bugs.webkit.org/show_bug.cgi?id=183811

Reviewed by Philippe Normand.

Add build guards for USE_GSTREAMER.

No new tests, it is a build fix.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
3:32 AM Changeset in webkit [229802] by Ms2ger@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Mark fast/forms/file/entries-api/webkitdirectory-open-panel.html as passing.
https://bugs.webkit.org/show_bug.cgi?id=176024

Unreviewed test gardening.

It has been passing since the test was changed not to rely on the order
of files in the list in r229642.

  • platform/gtk/TestExpectations:
2:46 AM Changeset in webkit [229801] by fred.wang@free.fr
  • 5 edits in trunk

[iOS] Text highlighted by the Find UI overlaps with NBC news header on google.com
https://bugs.webkit.org/show_bug.cgi?id=183658

Patch by Frederic Wang <fwang@igalia.com> on 2018-03-21
Reviewed by Tim Horton.

Source/WebKit:

On Mobile, many sites have overlay headers or footers that may overlap with the highlighted
text inside a scrollable overflow node. To workaround that issue, this commit changes the
behavior so that the text is revealed at the center of the overflow node.

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindController::didFindString): Use alignCenterAlways instead of alignToEdgeIfNeeded.

LayoutTests:

Improve the test added in r224284, so that we test when a result is revealed at
the center of the overflow node.

  • platform/ios/fast/scrolling/find-text-in-overflow-node.html: Put some content after

'match 4' so that the overflow node can scroll and make the text appear at the center.
Perform more accurate testing of the scrollTop of the overflow node.

  • platform/ios/fast/scrolling/find-text-in-overflow-node-expected.txt: Update expectation.
1:53 AM Changeset in webkit [229800] by Carlos Garcia Campos
  • 6 edits in trunk/Source/JavaScriptCore

Unreviewed. Fix GTK and WPE debug build after r229798.

Fix a typo in an ASSERT. Also convert several RELEASE_ASSERT to ASSERT that I forgot to do before landing.

  • API/glib/JSCCallbackFunction.cpp:

(JSC::JSCCallbackFunction::JSCCallbackFunction):

  • API/glib/JSCContext.cpp:

(jscContextSetVirtualMachine):
(jscContextGetJSContext):
(wrapperMap):
(jscContextHandleExceptionIfNeeded):

  • API/glib/JSCValue.cpp:

(jscValueCallFunction):

  • API/glib/JSCVirtualMachine.cpp:

(addWrapper):
(removeWrapper):
(jscVirtualMachineSetContextGroup):
(jscVirtualMachineAddContext):
(jscVirtualMachineRemoveContext):

  • API/glib/JSCWrapperMap.cpp:

(JSC::WrapperMap::gobjectWrapper):
(JSC::WrapperMap::unwrap):
(JSC::WrapperMap::registerClass):
(JSC::WrapperMap::createJSWrappper):
(JSC::WrapperMap::wrappedObject const):

1:44 AM Changeset in webkit [229799] by Carlos Garcia Campos
  • 42 edits in trunk

[GTK][WPE] JSC bindings not introspectable
https://bugs.webkit.org/show_bug.cgi?id=136989

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

Make it possible to include individual headers when building WebKit layer.

  • API/glib/JSCAutocleanups.h:
  • API/glib/JSCClass.h:
  • API/glib/JSCContext.h:
  • API/glib/JSCException.h:
  • API/glib/JSCValue.h:
  • API/glib/JSCVersion.h.in:
  • API/glib/JSCVirtualMachine.h:

Source/WebKit:

Deprecate the functions that are not introspectable due to JSC C API in GTK+ port and remove them in WPE
port. Add alternative functions using the new JSC GLib API. We no longer need to keep a global context attached
to every view. We can simply create a temporary global context on demand and release it after 1 second. This
also allows us to remove WebPageProxy::javascriptGlobalContext() and all the related code.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • UIProcess/API/glib/WebKitJavascriptResult.cpp:

(_WebKitJavascriptResult::_WebKitJavascriptResult):
(webkitJavascriptResultCreate):
(webkit_javascript_result_get_global_context):
(webkit_javascript_result_get_value):
(webkit_javascript_result_get_js_value):

  • UIProcess/API/glib/WebKitJavascriptResultPrivate.h:

(SharedJavascriptContext::singleton):
(SharedJavascriptContext::SharedJavascriptContext):
(SharedJavascriptContext::getOrCreateContext):
(SharedJavascriptContext::releaseContext):

  • UIProcess/API/glib/WebKitUserContentManager.cpp:
  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_get_javascript_global_context):
(webkitWebViewRunJavaScriptCallback):

  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitJavascriptResult.h:
  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • UIProcess/API/wpe/APIViewClient.h:

(API::ViewClient::handleDownloadRequest):

  • UIProcess/API/wpe/PageClientImpl.cpp:
  • UIProcess/API/wpe/PageClientImpl.h:
  • UIProcess/API/wpe/WPEView.cpp:
  • UIProcess/API/wpe/WPEView.h:
  • UIProcess/API/wpe/WebKitJavascriptResult.h:
  • UIProcess/API/wpe/WebKitWebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • UIProcess/wpe/WebPageProxyWPE.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

(webkit_frame_get_js_context):
(webkit_frame_get_js_context_for_script_world):

  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitFrame.h:

Tools:

Use the new API instead of the deprecated one.

  • MiniBrowser/gtk/main.c:

(aboutDataScriptMessageReceivedCallback):

  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:

(WebKitFrameTest::testJavaScriptContext):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:

(testWebViewRunJavaScript):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(consoleMessageSentCallback):
(echoCallback):
(windowObjectCleared):
(methodCallCallback):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:

(runTest):
(webProcessTestRunnerFinalize):
(windowObjectClearedCallback):

  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp:

(WebViewTest::javascriptResultToCString):
(WebViewTest::javascriptResultToNumber):
(WebViewTest::javascriptResultToBoolean):
(WebViewTest::javascriptResultIsNull):
(WebViewTest::javascriptResultIsUndefined):

1:42 AM Changeset in webkit [229798] by Carlos Garcia Campos
  • 21 edits
    1 copy
    34 adds
    1 delete in trunk

[GTK][WPE] Initial implementation of JavaScriptCore glib bindings
https://bugs.webkit.org/show_bug.cgi?id=164061

Reviewed by Michael Catanzaro.

.:

Set global variables used by the makefiles.

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/JavaScriptCore:

Add initial GLib API for JavaScriptCore.

  • API/JSAPIWrapperObject.h:
  • API/glib/JSAPIWrapperObjectGLib.cpp: Added.

(jsAPIWrapperObjectHandleOwner):
(JSAPIWrapperObjectHandleOwner::finalize):
(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
(JSC::JSCallbackObject<JSAPIWrapperObject>::createStructure):
(JSC::JSAPIWrapperObject::JSAPIWrapperObject):
(JSC::JSAPIWrapperObject::finishCreation):
(JSC::JSAPIWrapperObject::setWrappedObject):
(JSC::JSAPIWrapperObject::visitChildren):

  • API/glib/JSCAutocleanups.h: Added.
  • API/glib/JSCCallbackFunction.cpp: Added.

(JSC::callAsFunction):
(JSC::callAsConstructor):
(JSC::JSCCallbackFunction::create):
(JSC::JSCCallbackFunction::JSCCallbackFunction):
(JSC::JSCCallbackFunction::call):
(JSC::JSCCallbackFunction::construct):
(JSC::JSCCallbackFunction::destroy):

  • API/glib/JSCCallbackFunction.h: Added.

(JSC::JSCCallbackFunction::createStructure):
(JSC::JSCCallbackFunction::functionCallback):
(JSC::JSCCallbackFunction::constructCallback):

  • API/glib/JSCClass.cpp: Added.

(jscClassGetProperty):
(jscClassSetProperty):
(jscClassDispose):
(jscClassConstructed):
(jsc_class_class_init):
(jscClassCreate):
(jscClassGetJSClass):
(jscClassGetOrCreateJSWrapper):
(jscClassInvalidate):
(jsc_class_get_name):
(jsc_class_get_parent):
(jsc_class_add_constructor):
(jsc_class_add_method):
(jsc_class_add_property):

  • API/glib/JSCClass.h: Added.
  • API/glib/JSCClassPrivate.h: Added.
  • API/glib/JSCContext.cpp: Added.

(ExceptionHandler::ExceptionHandler):
(ExceptionHandler::~ExceptionHandler):
(jscContextSetVirtualMachine):
(jscContextGetProperty):
(jscContextSetProperty):
(jscContextConstructed):
(jscContextDispose):
(jsc_context_class_init):
(jscContextGetOrCreate):
(jscContextGetJSContext):
(wrapperMap):
(jscContextGetOrCreateValue):
(jscContextValueDestroyed):
(jscContextGetJSWrapper):
(jscContextGetOrCreateJSWrapper):
(jscContextWrappedObject):
(jscContextPushCallback):
(jscContextPopCallback):
(jscContextGArrayToJSArray):
(jscContextJSArrayToGArray):
(jscContextGValueToJSValue):
(jscContextJSValueToGValue):
(jsc_context_new):
(jsc_context_new_with_virtual_machine):
(jsc_context_get_virtual_machine):
(jsc_context_get_exception):
(jsc_context_throw):
(jsc_context_throw_exception):
(jsc_context_push_exception_handler):
(jsc_context_pop_exception_handler):
(jscContextHandleExceptionIfNeeded):
(jsc_context_get_current):
(jsc_context_evaluate):
(jsc_context_evaluate_with_source_uri):
(jsc_context_set_value):
(jsc_context_get_value):
(jsc_context_register_class):

  • API/glib/JSCContext.h: Added.
  • API/glib/JSCContextPrivate.h: Added.
  • API/glib/JSCDefines.h: Copied from Source/JavaScriptCore/API/JSAPIWrapperObject.h.
  • API/glib/JSCException.cpp: Added.

(jscExceptionDispose):
(jsc_exception_class_init):
(jscExceptionCreate):
(jscExceptionGetJSValue):
(jscExceptionEnsureProperties):
(jsc_exception_new):
(jsc_exception_get_message):
(jsc_exception_get_line_number):
(jsc_exception_get_source_uri):

  • API/glib/JSCException.h: Added.
  • API/glib/JSCExceptionPrivate.h: Added.
  • API/glib/JSCGLibWrapperObject.h: Added.

(JSC::JSCGLibWrapperObject::JSCGLibWrapperObject):
(JSC::JSCGLibWrapperObject::~JSCGLibWrapperObject):
(JSC::JSCGLibWrapperObject::object const):

  • API/glib/JSCValue.cpp: Added.

(jscValueGetProperty):
(jscValueSetProperty):
(jscValueDispose):
(jsc_value_class_init):
(jscValueGetJSValue):
(jscValueCreate):
(jsc_value_get_context):
(jsc_value_new_undefined):
(jsc_value_is_undefined):
(jsc_value_new_null):
(jsc_value_is_null):
(jsc_value_new_number):
(jsc_value_is_number):
(jsc_value_to_double):
(jsc_value_to_int32):
(jsc_value_new_boolean):
(jsc_value_is_boolean):
(jsc_value_to_boolean):
(jsc_value_new_string):
(jsc_value_is_string):
(jsc_value_to_string):
(jsc_value_new_array):
(jsc_value_new_array_from_garray):
(jsc_value_is_array):
(jsc_value_new_object):
(jsc_value_is_object):
(jsc_value_object_is_instance_of):
(jsc_value_object_set_property):
(jsc_value_object_get_property):
(jsc_value_object_set_property_at_index):
(jsc_value_object_get_property_at_index):
(jscValueCallFunction):
(jsc_value_object_invoke_method):
(jsc_value_object_define_property_data):
(jsc_value_object_define_property_accessor):
(jsc_value_new_function):
(jsc_value_is_function):
(jsc_value_function_call):
(jsc_value_is_constructor):
(jsc_value_constructor_call):

  • API/glib/JSCValue.h: Added.
  • API/glib/JSCValuePrivate.h: Added.
  • API/glib/JSCVersion.cpp: Added.

(jsc_get_major_version):
(jsc_get_minor_version):
(jsc_get_micro_version):

  • API/glib/JSCVersion.h.in: Added.
  • API/glib/JSCVirtualMachine.cpp: Added.

(addWrapper):
(removeWrapper):
(jscVirtualMachineSetContextGroup):
(jscVirtualMachineEnsureContextGroup):
(jscVirtualMachineDispose):
(jsc_virtual_machine_class_init):
(jscVirtualMachineGetOrCreate):
(jscVirtualMachineGetContextGroup):
(jscVirtualMachineAddContext):
(jscVirtualMachineRemoveContext):
(jscVirtualMachineGetContext):
(jsc_virtual_machine_new):

  • API/glib/JSCVirtualMachine.h: Added.
  • API/glib/JSCVirtualMachinePrivate.h: Added.
  • API/glib/JSCWrapperMap.cpp: Added.

(JSC::WrapperMap::WrapperMap):
(JSC::WrapperMap::~WrapperMap):
(JSC::WrapperMap::gobjectWrapper):
(JSC::WrapperMap::unwrap):
(JSC::WrapperMap::registerClass):
(JSC::WrapperMap::createJSWrappper):
(JSC::WrapperMap::jsWrapper const):
(JSC::WrapperMap::wrappedObject const):

  • API/glib/JSCWrapperMap.h: Added.
  • API/glib/docs/jsc-glib-4.0-sections.txt: Added.
  • API/glib/docs/jsc-glib-4.0.types: Added.
  • API/glib/docs/jsc-glib-docs.sgml: Added.
  • API/glib/jsc.h: Added.
  • CMakeLists.txt:
  • GLib.cmake: Added.
  • JavaScriptCore.gir.in: Removed.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • heap/Heap.cpp:

(JSC::Heap::releaseDelayedReleasedObjects):

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::releaseSoon):

  • javascriptcoregtk.pc.in:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):
(JSC::JSGlobalObject::setWrapperMap):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::glibCallbackFunctionStructure const):
(JSC::JSGlobalObject::glibWrapperObjectStructure const):
(JSC::JSGlobalObject::wrapperMap const):

Source/WebKit:

Set decorator and deprecation_guard options in API docs config files, since they are no longer common to all
libraries.

  • PlatformGTK.cmake:

Tools:

Add unit tests for the new API and generate the API documentation with generate-gtkdoc.

  • Scripts/webkitpy/style/checker.py: Ignore some style errors in public GLib API headers.
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWPE.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp: Added.

(LeakChecker::~LeakChecker):
(LeakChecker::watch):
(ExceptionHandler::ExceptionHandler):
(ExceptionHandler::~ExceptionHandler):
(ExceptionHandler::push):
(ExceptionHandler::pop):
(jscContextGarbageCollect):
(testJSCBasic):
(testJSCTypes):
(foo):
(callback):
(doubleAndSetInResult):
(sumFunction):
(testJSCFunction):
(testJSCObject):
(fooCreate):
(fooCreateWithFoo):
(fooFree):
(setFoo):
(getFoo):
(setSibling):
(getSibling):
(multiplyFoo):
(getMultiplyFoo):
(getMultiplyFooAsync):
(bazCreate):
(testJSCClass):
(barCreate):
(barFree):
(setBar):
(getBar):
(testJSCPrototypes):
(createError):
(testJSCExceptions):
(testJSCPromises):
(fooFreeAndLog):
(testJSCGarbageCollector):
(testsJSCVirtualMachine):
(testsJSCAutocleanups):
(main):

  • gtk/generate-gtkdoc:

(get_generator_for_config):

12:25 AM Changeset in webkit [229797] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Windows 64-bit build fix after r229767
https://bugs.webkit.org/show_bug.cgi?id=183810

Patch by Christopher Reid <chris.reid@sony.com> on 2018-03-21
Reviewed by Mark Lam.

Removing an extra parameter in the call to m_assember::call.

  • assembler/MacroAssemblerX86_64.h:
12:17 AM Changeset in webkit [229796] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] Draw Cairo patterns with cairo_paint_with_alpha()
https://bugs.webkit.org/show_bug.cgi?id=183774

Reviewed by Carlos Garcia Campos.

In the drawPatternToCairoContext() helper in CairoOperations.cpp source
file, always clip the painting region to the specified rectangle and
then use cairo_paint_with_alpha() to paint the passed-in pattern object,
not relaying rasterization to cairo_fill() when using opaque alpha. We
still clamp the alpha value to the 0.0 - 1.0 range.

No new tests -- no change in behavior.

  • platform/graphics/cairo/CairoOperations.cpp:

(WebCore::Cairo::drawPatternToCairoContext):

12:16 AM Changeset in webkit [229795] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebKit

[CoordGraphics] Simplify CoordinatedGraphicsScene activation
https://bugs.webkit.org/show_bug.cgi?id=183772

Reviewed by Carlos Garcia Campos.

Simplify CoordinatedGraphicsScene::setActive() into a simple setter of
the m_isActive member variable. We don't have to call renderNextFrame()
anymore as that was only necessary to unblock CoordinatedLayerTreeHost,
but that can be avoided if m_isWaitingForRenderer in that class is
initialized to false.

CoordinatedGraphicsSceneClient::renderNextFrame() virtual method and its
ThreadedCompositor implementation are removed. renderNextFrame() in the
CoordinatedGraphicsScene class can also be removed, along with the
unused dispatchOnMainThread() and dispatchOnClientRunLoop() methods and
the associated m_clientRunLoop member variable.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread): Deleted.
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop): Deleted.
(WebKit::CoordinatedGraphicsScene::renderNextFrame): Deleted.
(WebKit::CoordinatedGraphicsScene::setActive): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:

(WebKit::CoordinatedGraphicsSceneClient::~CoordinatedGraphicsSceneClient):
(WebKit::CoordinatedGraphicsScene::setActive):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::m_displayRefreshMonitor):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::renderNextFrame): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
12:16 AM Changeset in webkit [229794] by zandobersek@gmail.com
  • 7 edits in trunk/Source

[TexMap] Have TextureMapperLayer::applyAnimationsRecursively() return running animation status
https://bugs.webkit.org/show_bug.cgi?id=183771

Reviewed by Carlos Garcia Campos.

Source/WebCore:

TextureMapperLayer::applyAnimationsRecursively() should return true when
the TextureMapperLayer tree has currently-running animations that
require continuous scene update.

TextureMapperAnimation::ApplicationResult gains the hasRunningAnimation
member that's set to true if any of the applied animations are still in
playing state. That information is then returned in syncAnimations(),
and the result is accumulated in the top applyAnimationsRecursively()
call and returned there to the caller.

No new tests -- no change in behavior.

  • platform/graphics/texmap/TextureMapperAnimation.cpp:

(WebCore::TextureMapperAnimation::apply):

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

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

  • platform/graphics/texmap/TextureMapperLayer.h:

Source/WebKit:

In CoordinatedGraphicsScene::paintToCurrentGLContext(), retrieve
information about any running animation in the scene via the
TextureMapperLayer::applyAnimationsRecursively() call. Use that boolean
value at the end up the method, instead of again traversing the
TextureMapperLayer tree to determine whether any running animations are
present.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

12:15 AM Changeset in webkit [229793] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Use-after-move in SWContextManager::terminateWorker() with Linux x86_64 calling convention
https://bugs.webkit.org/show_bug.cgi?id=183783

Reviewed by Chris Dumez.

In SWContextManager::terminateWorker(), some calling conventions can
end up moving the ServiceWorkerThreadProxy RefPtr into the lambda struct
before that proxy's thread (on which the lambda is bound to execute) is
retrieved.

Avoid this by taking a reference to the thread in a separate earlier
expression, before the RefPtr is moved into the lambda in the following
one.

  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::terminateWorker):

12:08 AM Changeset in webkit [229792] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build

  • platform/network/cf/FormDataStreamCFNet.cpp:

Mar 20, 2018:

11:44 PM Changeset in webkit [229791] by mitz@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Xcode] JSVALUE_MODEL is unused
https://bugs.webkit.org/show_bug.cgi?id=183809

Reviewed by Tim Horton.

  • Configurations/JavaScriptCore.xcconfig: Removed the unused definition.
11:26 PM Changeset in webkit [229790] by timothy_horton@apple.com
  • 15 edits in trunk/Source

Introduce HAVE_MEDIA_PLAYER and HAVE_CORE_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=183803
<rdar://problem/38690487>

Reviewed by Sam Weinig.

Source/WebCore:

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::configureWireLessTargetMonitoring):
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo):
(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper dealloc]):
(-[WebMediaSessionHelper hasWirelessTargetsAvailable]):

  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):

  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:

(WebCore::MediaSampleAVFObjC::getRGBAImageData const):

  • platform/graphics/cv/PixelBufferConformerCV.cpp:
  • platform/graphics/cv/PixelBufferConformerCV.h:
  • platform/graphics/cv/TextureCacheCV.h:
  • platform/graphics/cv/TextureCacheCV.mm:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:
  • platform/graphics/cv/VideoTextureCopierCV.h:

Make it possible to disable our dependency on MediaPlayer and CoreVideo.

Source/WTF:

  • wtf/Platform.h:
11:26 PM Changeset in webkit [229789] by timothy_horton@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update the install name for JavaScriptCore when built with WK_ALTERNATE_FRAMEWORKS_DIR
https://bugs.webkit.org/show_bug.cgi?id=183808
<rdar://problem/38692079>

Reviewed by Dan Bernstein.

  • Configurations/JavaScriptCore.xcconfig:
10:17 PM Changeset in webkit [229788] by timothy_horton@apple.com
  • 12 edits in trunk

Enable the minimal simulator feature flag when appropriate
https://bugs.webkit.org/show_bug.cgi?id=183807

Reviewed by Dan Bernstein.

  • .../Configurations/FeatureDefines.xcconfig:
9:47 PM Changeset in webkit [229787] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: Loses focus when editing a property while page is being loaded
https://bugs.webkit.org/show_bug.cgi?id=182619
<rdar://problem/37363185>

Reviewed by Matt Baker.

Adding or removing a stylesheet causes SpreadsheetRulesStyleDetailsPanel to refresh, triggering a layout
of all SpreadsheetCSSStyleDeclarationSection child views. This resets the focus, selection, and
auto-completion state.

This patch prevents SpreadsheetCSSStyleDeclarationSection from performing a layout when a property is being edited.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
Allow re-layout after creating a blank CSS property and pasting CSS code.

  • _pendingAddBlankPropertyIndexOffset is a number after pasting CSS rules.
  • _propertyPendingStartEditing is a property model after creating a new property.
9:42 PM Changeset in webkit [229786] by Alan Bujtas
  • 15 edits
    1 move in trunk/Tools

[LayoutReloaded] Disconnect Display.Box from Layout.Box
https://bugs.webkit.org/show_bug.cgi?id=183805

Reviewed by Antti Koivisto.

Display.Box is only accessed through the FormattingState.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext):
(BlockFormattingContext.prototype.layout):
(BlockFormattingContext.prototype._placeInFlowPositionedChildren):
(BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
(BlockFormattingContext.prototype._adjustBottomWithFIXME):
(BlockFormattingContext.prototype._computeOutOfFlowPosition):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):
(FormattingContext.prototype.formattingRoot):
(FormattingContext.prototype.formattingState):
(FormattingContext.prototype.layoutState):
(FormattingContext.prototype._toAbsolutePosition):
(FormattingContext.prototype._toRootAbsolutePosition):
(FormattingContext.prototype._addToLayoutQueue):
(FormattingContext.prototype.displayBox):
(FormattingContext.prototype._outOfFlowDescendants):
(FormattingContext.prototype.rootContainer): Deleted.
(FormattingContext.prototype.layoutContext): Deleted.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._initializeLine):

  • LayoutReloaded/FormattingState/BlockFormattingState.js:

(BlockFormattingState):

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState):
(FormattingState.prototype.formattingRoot):
(FormattingState.prototype.layoutState):
(FormattingState.prototype.createDisplayBox):
(FormattingState.prototype.displayBoxMap):
(FormattingState.prototype.displayBox):
(FormattingState.prototype.layoutContext): Deleted.

  • LayoutReloaded/FormattingState/InlineFormattingState.js:

(InlineFormattingState):

  • LayoutReloaded/Layout.js:

(layout):

  • LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
  • LayoutReloaded/LayoutState.js: Renamed from Tools/LayoutReloaded/LayoutContext.js.

(LayoutState):
(LayoutState.prototype.layout):
(LayoutState.prototype._createFormattingState):
(LayoutState.prototype.formattingStates):
(LayoutState.prototype.initialDisplayBox):

  • LayoutReloaded/LayoutTree/Box.js:

(Layout.Box.prototype.isOutOfFlowPositioned):
(Layout.Box.prototype.containingBlock):
(Layout.Box.prototype.setDisplayBox): Deleted.
(Layout.Box.prototype.displayBox): Deleted.

  • LayoutReloaded/Utils.js:

(Utils.layoutTreeDump):
(Utils._findDisplayBox):
(Utils._dumpBox):
(Utils._dumpTree):

  • LayoutReloaded/misc/headers/BlockFormattingContext.h:
  • LayoutReloaded/misc/headers/FormattingContext.h:
  • LayoutReloaded/misc/headers/LayoutContext.h:
  • LayoutReloaded/test/index.html:
8:40 PM Changeset in webkit [229785] by webkit@devinrousso.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Session dividers are not added when Console tab is not visible
https://bugs.webkit.org/show_bug.cgi?id=168622

Reviewed by Matt Baker.

Restructure _pendingMessages to be a Map [ConsoleSession, ConsoleMessageView]. Instead
of rendering to the _currentConsoleGroup, we now render to the saved ConsoleSession.
Also ensure that _pendingMessages is cleared when navigating and "Preserve Log" is off.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WI.JavaScriptLogViewController):
(WI.JavaScriptLogViewController.prototype.startNewSession):
(WI.JavaScriptLogViewController.prototype.consolePromptHistoryDidChange):
(WI.JavaScriptLogViewController.prototype._appendConsoleMessageView):
(WI.JavaScriptLogViewController.prototype.renderPendingMessages):
(WI.JavaScriptLogViewController.prototype.get prompt): Deleted.
(WI.JavaScriptLogViewController.prototype.get currentConsoleGroup): Deleted.

7:52 PM Changeset in webkit [229784] by rniwa@webkit.org
  • 9 edits in trunk

Expose content attributes on _WKLinkIconParameters
https://bugs.webkit.org/show_bug.cgi?id=183768

Reviewed by Alex Christensen.

Source/WebCore:

Collect a vector of content attributes upon finding touch and fav-icons in order to expose it in a WebKit API.

Tests: IconLoading.DefaultFavicon

  • html/LinkIconCollector.cpp:

(WebCore::LinkIconCollector::iconsOfTypes): Collect attributes.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startIconLoading): Use an empty vector for /favicon.ico.

  • platform/LinkIcon.h:

(WebCore::LinkIcon::encode const): Encode the vector of content attributes.
(WebCore::LinkIcon::decode): Ditto for decoding.

Source/WebKit:

Added _WKLinkIconParameters.attributes to expose content attributes of a link element
which defined a favicon, touch icon, or pre-compressed touch icon.

  • UIProcess/API/Cocoa/_WKLinkIconParameters.h:

(_WKLinkIconParameters.attributes): Added.

  • UIProcess/API/Cocoa/_WKLinkIconParameters.mm:

(_WKLinkIconParameters._attributes): Added.
(-[_WKLinkIconParameters _initWithLinkIcon:]): Convert the hash map from WebCore to a NSDictionary.
(-[_WKLinkIconParameters attributes]): Added.

Tools:

Expanded the basic test case for _WKLinkIconParameters's properties including newly added "attributes".

  • TestWebKitAPI/Tests/WebKitCocoa/IconLoadingDelegate.mm:

(IconLoading.DefaultFavicon):

7:28 PM Changeset in webkit [229783] by Wenson Hsieh
  • 8 edits in trunk

Add AssistedNodeInformation plumbing for form control placeholder text and label text
https://bugs.webkit.org/show_bug.cgi?id=183802
<rdar://problem/38686273>

Reviewed by Tim Horton.

Source/WebKit:

Surfaces some additional information about the currently focused element to the input delegate in the UI process.
See comments below for more details.

Test: WebKit.FocusedElementInfo

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):

  • Shared/AssistedNodeInformation.h:

Add placeholder and label to AssistedNodeInformation, which capture the value of the placeholder attribute
and the text of the first associated label element for the focused form control. Also add boilerplate encoder/
decoder support for these members.

  • UIProcess/API/Cocoa/_WKFocusedElementInfo.h:

Augment _WKFocusedElementInfo to include placeholder and label.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFocusedElementInfo initWithAssistedNodeInformation:isUserInitiated:userObject:]):
(-[WKFocusedElementInfo label]):
(-[WKFocusedElementInfo placeholder]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

For input elements and textareas, set the placeholder to the value of the placeholder attribute. For all
elements with associated labels, grab the inner text of the first label that is not empty, ignoring all labels
that are display: none (i.e. not being rendered).

Tools:

Adds a new API test to exercise new placeholder and label SPI on _WKFocusedFormElement.

  • TestWebKitAPI/Tests/WebKitCocoa/_WKInputDelegate.mm:

(-[InputDelegate _webView:focusShouldStartInputSession:]):
(-[InputDelegate shouldStartInputSessionHandler]):
(-[InputDelegate setShouldStartInputSessionHandler:]):
(TEST):
(-[FormSubmissionDelegate webView:startURLSchemeTask:]): Deleted.
(-[FormSubmissionDelegate webView:stopURLSchemeTask:]): Deleted.
(-[FormSubmissionDelegate _webView:willSubmitFormValues:userObject:submissionHandler:]): Deleted.

6:31 PM Changeset in webkit [229782] by Alan Bujtas
  • 5 edits
    2 adds in trunk

RenderTreeNeedsLayoutChecker fails with absolutely positioned svg and <use>
https://bugs.webkit.org/show_bug.cgi?id=183718

Reviewed by Antti Koivisto.

Source/WebCore:

This patch ensures after resolving the style for an SVG element with a corresponding element (<use>),
we adjust this style for the cloned SVG element too.

Test: svg/in-html/path-with-absolute-positioned-svg-and-use-crash.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustSVGElementStyle):
(WebCore::StyleResolver::adjustRenderStyle):

  • css/StyleResolver.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::resolveCustomStyle):

LayoutTests:

  • svg/in-html/path-with-absolute-positioned-svg-and-use-crash-expected.txt: Added.
  • svg/in-html/path-with-absolute-positioned-svg-and-use-crash.html: Added.
6:09 PM Changeset in webkit [229781] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[WinCairo] Fix to run-webkit-httpd from native Windows.
https://bugs.webkit.org/show_bug.cgi?id=183605

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-03-20
Reviewed by Daniel Bates.

This fix is to run Apache HTTP server from native Windows. The environment is different
from cygwin, which is used for AppleWin, in following points:

  • A temporary file behaves differently. It cannot reopen by anybody when indicated as delete on close. To solve this situation, filesystem.mkdtemp() is used instead.
  • It's not unix so that tail command is not available. Replaced with python equivalent function.
  • Scripts/webkitpy/common/system/filesystem.py:

(FileSystem.mkdtemp.TemporaryDirectory.init):
(FileSystem.mkdtemp.TemporaryDirectory.exit): The existing contents would be deleted.
(FileSystem.mkdtemp):

  • Scripts/webkitpy/layout_tests/servers/run_webkit_httpd.py:

(parse_args):
(run_server):
(run_server_with_log_file):
(follow_file):

5:36 PM Changeset in webkit [229780] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/appcache/abort-cache-onprogress.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183684

Unreviewed test gardening.

5:36 PM Changeset in webkit [229779] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/wpt/webrtc/third-party-frame-ice-candidate-filtering.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=183801

Unreviewed test gardening.

  • platform/wk2/TestExpectations:
5:05 PM Changeset in webkit [229778] by beidson@apple.com
  • 35 edits
    1 add in trunk

First piece of process swapping on navigation.
https://bugs.webkit.org/show_bug.cgi?id=183665

Reviewed by Andy Estes.

Source/WebCore:

Covered by API test(s)

This patch:

  • A new PolicyAction::Suspend for future use in this feature
  • Makes sure that loads triggered as part of a process swap do *not* re-consult the policy delegate
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::setShouldCheckNavigationPolicy):
(WebCore::FrameLoadRequest::shouldCheckNavigationPolicy const):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithDocumentLoader):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h: Add a new Policy type "Suspend" to be used in the future by the process-swap-on-navigation mechanism.
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):

Source/WebKit:

This patch adds the first pieces of the following feature:
"When a navigation originating inside a WKWebView goes to a different origin,

swap to a new WebProcess for that navigation"

There are significant bugs to be resolved and significant optimizations to be made.
Which is why the feature is disabled by default.

Besides the core logic implementing the feature, this patch does a lot of related
work such as:

  • Removing some now-invalid ASSERTs
  • Adding some ASSERTs
  • Update various switch states to handle the new "Suspend" policy and "NavigationSwap" process termination reason
  • NetworkProcess/NetworkDataTaskBlob.cpp:

(WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:

(WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionResponseDisposition):

  • Platform/Logging.h:
  • Shared/LoadParameters.cpp:

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

  • Shared/LoadParameters.h:
  • Shared/ProcessTerminationReason.h: Add "NavigationSwap" as a process termination reason.
  • UIProcess/API/APINavigation.h:
  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/C/WKAPICast.h:

(WebKit::toAPI):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::wkProcessTerminationReason):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::WebFramePolicyListenerProxy):

  • UIProcess/WebFramePolicyListenerProxy.h:

(WebKit::WebFramePolicyListenerProxy::create):
(WebKit::WebFramePolicyListenerProxy::policyListenerType const):

  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):
(WebKit::WebFrameProxy::activePolicyListenerProxy):

  • UIProcess/WebFrameProxy.h:
  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::navigation):
(WebKit::WebNavigationState::takeNavigation):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::attachToProcessForNavigation): Pretend that the existing process

terminated using the new "NavigationSwap" reason, then manually start the next load.

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadRequestWithNavigation):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::processDidTerminate):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::resetStateAfterProcessExited):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::processForNavigation): Determine which process should be used

for a proposed navigation, creating a new one if necessary.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::SessionStorageNamespace::setAllowedConnection):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):

Tools:

Expose the "swaps processes on navigation" setting in MiniBrowser UI for testing:

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

  • MiniBrowser/mac/SettingsController.h:
  • MiniBrowser/mac/SettingsController.m:

(-[SettingsController _populateMenu]):
(-[SettingsController validateMenuItem:]):
(-[SettingsController processSwapOnNavigationEnabled]):
(-[SettingsController toggleProcessSwapOnNavigation:]):

Makes sure the current behavior is tested:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Added.

(-[PSONNavigationDelegate webView:didFinishNavigation:]):
(-[PSONScheme webView:startURLSchemeTask:]):
(-[PSONScheme webView:stopURLSchemeTask:]):
(TEST):

4:10 PM Changeset in webkit [229777] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.10

Tag Safari-606.1.10.

3:54 PM Changeset in webkit [229776] by Chris Dumez
  • 6 edits in trunk

QuickLook.NavigationDelegate API test is failing on iOS with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183791

Reviewed by Alex Christensen.

Source/WebCore:

Update PreviewLoader to not send data (or call finishFinishLoading) until
the resource response has been processed.

  • loader/ios/PreviewLoader.mm:

(-[WebPreviewLoader _sendDidReceiveResponseIfNecessary]):
(-[WebPreviewLoader connection:didReceiveData:lengthReceived:]):
(-[WebPreviewLoader connectionDidFinishLoading:]):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/QuickLook.mm:

(-[QuickLookAsyncNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]):
(-[QuickLookAsyncNavigationDelegate _webView:didStartLoadForQuickLookDocumentInMainFrameWithFileName:uti:]):
(-[QuickLookAsyncNavigationDelegate _webView:didFinishLoadForQuickLookDocumentInMainFrame:]):
(-[QuickLookAsyncNavigationDelegate webView:didFinishNavigation:]):
(TEST):

2:59 PM Changeset in webkit [229775] by sbarati@apple.com
  • 3 edits
    1 add in trunk

We need to do proper bookkeeping of exitOK when inserting constants when sinking NewArrayBuffer
https://bugs.webkit.org/show_bug.cgi?id=183795
<rdar://problem/38298694>

Reviewed by JF Bastien.

JSTests:

  • stress/sink-phantom-new-array-buffer-exit-ok.js: Added.

(foo):
(bar):

Source/JavaScriptCore:

We were just assuming that the constants we were inserting were
always exitOK=true. However, this breaks validation. The exitOK
we emit for the constants in the NewArrayBuffer should respect
the current exit state of the IR we've emitted. This is just IR
bookkeeping since JSConstant is a non-exiting node.

  • dfg/DFGArgumentsEliminationPhase.cpp:
2:53 PM Changeset in webkit [229774] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

ServiceWorkerClientFetch::didReceiveData should check for m_encodedDataLength
https://bugs.webkit.org/show_bug.cgi?id=183668

Reviewed by Chris Dumez.

Crash happens when releasing a RefPtr<SharedBuffer> buffer that is null.
It happens because ServiceWorkerClientFetch can call m_loader->didReceiveBuffer at two different places.
Either when receiving an IPC call or as part of completion handler for the response validation check.
At each call site, we release the buffer to pass it to the loader and we set m_encodedLength to zero.
The fix is to add the m_encodedLength check like done in the case of response validation check completion handler.

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::didReceiveData):

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

Expose aggressiveTileRetentionEnabled in WKPreferences SPI to match C SPI
https://bugs.webkit.org/show_bug.cgi?id=183790

Reviewed by Alex Christensen.

Expose this property on macOS only.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setAggressiveTileRetentionEnabled:]):
(-[WKPreferences _aggressiveTileRetentionEnabled]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
1:37 PM Changeset in webkit [229772] by guijemont@igalia.com
  • 6 edits in trunk/Source/JavaScriptCore

MIPS+Armv7 builds are broken since r229391
https://bugs.webkit.org/show_bug.cgi?id=183474

Reviewed by Yusuke Suzuki.

Add missing armv7 and mips operations and fix arguments to a call to
operationGetByValCell. This should fix compilation on MIPS and Armv7
(though it does not implement the missing setupArguments stuff in
CCallHelpers).

  • assembler/MacroAssembler.h:
  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::swap):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::swap):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • jit/FPRInfo.h:
1:29 PM Changeset in webkit [229771] by commit-queue@webkit.org
  • 4 edits in trunk

[Web Animations] Update the timing model when pending tasks schedule changes
https://bugs.webkit.org/show_bug.cgi?id=183785

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

LayoutTests/imported/w3c:

Record a progression now that we correctly invalidate effects as their pending play
or pause task schedule changes. Setting an animation's effect resets pending tasks.

  • web-platform-tests/web-animations/interfaces/Animation/effect-expected.txt:

Source/WebCore:

Changing the time at which a pending play or pause task is scheduled changes the pending
state of the animation and thus should notify that the timing model has changed and invalidate
the effect.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::setTimeToRunPendingPlayTask):
(WebCore::WebAnimation::setTimeToRunPendingPauseTask):
(WebCore::WebAnimation::updatePendingTasks):

1:26 PM Changeset in webkit [229770] by BJ Burg
  • 2 edits in trunk/Source/WTF

SLEEP_THREAD_FOR_DEBUGGER should not use fancy number literals
https://bugs.webkit.org/show_bug.cgi?id=183792

Reviewed by Timothy Hatcher.

  • wtf/DebugUtilities.h: Remove the '_s' since this won't

compile when included by files compiled as Objective-C++.

11:25 AM Changeset in webkit [229769] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.7.2/Source/WTF

Cherry-pick r229301. rdar://problem/38422294

11:18 AM Changeset in webkit [229768] by timothy_horton@apple.com
  • 26 edits in trunk

Add and adopt WK_PLATFORM_NAME and adjust default feature defines
https://bugs.webkit.org/show_bug.cgi?id=183758
<rdar://problem/38017644>

Reviewed by Dan Bernstein.

  • .../Configurations/Base.xcconfig:
  • .../Configurations/FeatureDefines.xcconfig:
  • WebCore.xcodeproj/project.pbxproj:
  • wtf/FeatureDefines.h:
11:10 AM Changeset in webkit [229767] by mark.lam@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

Improve FunctionPtr and use it in the JIT CallRecord.
https://bugs.webkit.org/show_bug.cgi?id=183756
<rdar://problem/38641335>

Reviewed by JF Bastien.

  1. FunctionPtr hold a C/C++ function pointer by default. Change its default PtrTag to reflect that.
  1. Delete the FunctionPtr::value() method. It is effectively a duplicate of executableAddress().
  1. Fix the FunctionPtr constructor that takes arbitrary pointers to be able to take "any" pointer. "any" in this case means that the pointer may not be typed as a C/C++ function to the C++ compiler (due to upstream casting or usage of void* as a storage type), but it is still expected to be pointing to a C/C++ function.
  1. Added a FunctionPtr constructor that takes another FunctionPtr. This is a convenience constructor that lets us retag the underlying pointer. The other FunctionPtr is still expected to point to a C/C++ function.
  1. Added PtrTag assertion placeholder functions to be implemented later.
  1. Change the JIT CallRecord to embed a FunctionPtr callee instead of a void* to pointer. This improves type safety, and assists in getting pointer tagging right later.
  1. Added versions of JIT callOperations methods that will take a PtrTag. This is preparation for more more pointer tagging work later.
  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::linkCall):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::linkCall):

  • assembler/MacroAssemblerCodeRef.h:

(JSC::FunctionPtr::FunctionPtr):
(JSC::FunctionPtr::operator bool const):
(JSC::FunctionPtr::operator! const):
(JSC::ReturnAddressPtr::ReturnAddressPtr):
(JSC::MacroAssemblerCodePtr::retagged const):
(JSC::MacroAssemblerCodeRef::retaggedCode const):
(JSC::FunctionPtr::value const): Deleted.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::linkCall):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::linkCall):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::callWithSlowPathReturnType):
(JSC::MacroAssemblerX86_64::linkCall):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::makeCall):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • ftl/FTLThunks.cpp:

(JSC::FTL::osrExitGenerationThunkGenerator):
(JSC::FTL::lazySlowPathGenerationThunkGenerator):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/JIT.cpp:

(JSC::JIT::link):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:

(JSC::CallRecord::CallRecord):
(JSC::JIT::appendCall):
(JSC::JIT::appendCallWithSlowPathReturnType):
(JSC::JIT::callOperation):
(JSC::JIT::callOperationWithProfile):
(JSC::JIT::callOperationWithResult):
(JSC::JIT::callOperationNoExceptionCheck):
(JSC::JIT::callOperationWithCallFrameRollbackOnException):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):

  • jit/JITInlines.h:

(JSC::JIT::emitNakedCall):
(JSC::JIT::emitNakedTailCall):
(JSC::JIT::appendCallWithExceptionCheck):
(JSC::JIT::appendCallWithExceptionCheckAndSlowPathReturnType):
(JSC::JIT::appendCallWithCallFrameRollbackOnException):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResult):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_put_by_val):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::JITSlowPathCall):
(JSC::JITSlowPathCall::call):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • runtime/PtrTag.h:

(JSC::nextPtrTagID):
(JSC::assertIsCFunctionPtr):
(JSC::assertIsNullOrCFunctionPtr):
(JSC::assertIsNotTagged):
(JSC::assertIsTagged):
(JSC::assertIsNullOrTagged):
(JSC::assertIsTaggedWith):
(JSC::assertIsNullOrTaggedWith):
(JSC::uniquePtrTagID): Deleted.

10:53 AM Changeset in webkit [229766] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[MIPS] Optimize generated JIT code for loads/stores
https://bugs.webkit.org/show_bug.cgi?id=183243

Patch by Stanislav Ocovaj <stanislav.ocovaj@rt-rk.com> on 2018-03-20
Reviewed by Yusuke Suzuki.

JIT generates three MIPS instructions for a load/store from/to an absolute address:

lui adrTmpReg, address >> 16
ori adrTmpReg, address & 0xffff
lw dataReg, 0(adrTmpReg)

Since load/store instructions on MIPS have a 16-bit offset, lower 16 bits of the address can
be encoded into the load/store and ori instruction can be removed:

lui adrTmpReg, (address + 0x8000) >> 16
lw dataReg, (address & 0xffff)(adrTmpReg)

Also, in loads/stores with BaseIndex address, the left shift can be omitted if address.scale is 0.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::add32):
(JSC::MacroAssemblerMIPS::add64):
(JSC::MacroAssemblerMIPS::or32):
(JSC::MacroAssemblerMIPS::sub32):
(JSC::MacroAssemblerMIPS::convertibleLoadPtr):
(JSC::MacroAssemblerMIPS::load8):
(JSC::MacroAssemblerMIPS::load8SignedExtendTo32):
(JSC::MacroAssemblerMIPS::load32):
(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::store32):
(JSC::MacroAssemblerMIPS::branchTest8):
(JSC::MacroAssemblerMIPS::branchAdd32):
(JSC::MacroAssemblerMIPS::loadDouble):
(JSC::MacroAssemblerMIPS::storeDouble):

10:10 AM Changeset in webkit [229765] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.7.2/Source

Versioning.

10:08 AM Changeset in webkit [229764] by Chris Dumez
  • 13 edits
    1 copy
    39 deletes in trunk

Unreviewed, rolling out r229726 and r229763.

Caused some API test failures on iOS

Reverted changesets:

"Make policy decisions asynchronous"
https://bugs.webkit.org/show_bug.cgi?id=180568
https://trac.webkit.org/changeset/229726

"Rebaseline three webarchive tests for WK2 after r229726."
https://bugs.webkit.org/show_bug.cgi?id=180568
https://trac.webkit.org/changeset/229763

9:52 AM Changeset in webkit [229763] by Ryan Haddad
  • 1 edit
    3 adds in trunk/LayoutTests

Rebaseline three webarchive tests for WK2 after r229726.
https://bugs.webkit.org/show_bug.cgi?id=180568

Unreviewed test gardening.

  • platform/wk2/webarchive/loading/missing-data-expected.txt: Added.
  • platform/wk2/webarchive/loading/object-expected.txt: Added.
  • platform/wk2/webarchive/loading/test-loading-archive-subresource-null-mimetype-expected.txt: Added.
9:25 AM Changeset in webkit [229762] by Ryan Haddad
  • 4 edits in trunk/LayoutTests

Rebaseline three forms tests after r229730.

Unreviewed test gardening.

  • platform/mac/fast/forms/basic-selects-expected.txt:
  • platform/mac/fast/forms/disabled-select-change-index-expected.txt:
  • platform/mac/fast/forms/select-disabled-appearance-expected.txt:
9:25 AM Changeset in webkit [229761] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Rebaseline a test after the case of the 'Strong Password' localized string was changed in r229724.

Unreviewed test gardening.

  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
9:25 AM Changeset in webkit [229760] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip http/tests/storageAccess/grant-storage-access-under-opener.html on iOS debug.
https://bugs.webkit.org/show_bug.cgi?id=183714

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
9:18 AM Changeset in webkit [229759] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.7.2

New tag.

9:14 AM Changeset in webkit [229758] by Alan Bujtas
  • 5 edits in trunk/Tools

[LayoutReloaded] Move Display.Box handling from FormattingContext to FormattingState
https://bugs.webkit.org/show_bug.cgi?id=183779

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext.prototype._computeStaticPosition):
(BlockFormattingContext.prototype._computeOutOfFlowWidth):
(BlockFormattingContext.prototype._computeFloatingWidth):
(BlockFormattingContext.prototype._computeInFlowWidth):
(BlockFormattingContext.prototype._computeOutOfFlowHeight):
(BlockFormattingContext.prototype._computeFloatingHeight):
(BlockFormattingContext.prototype._computeInFlowHeight):
(BlockFormattingContext.prototype._horizontalConstraint):
(BlockFormattingContext.prototype._contentHeight):
(BlockFormattingContext.prototype._adjustBottomWithFIXME):
(BlockFormattingContext.prototype._computeInFlowPositionedPosition):
(BlockFormattingContext.prototype._computeOutOfFlowPosition):

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext.prototype.computePosition):
(FloatingContext.prototype._positionForClear):
(FloatingContext.prototype._computePositionToAvoidIntrudingFloats):
(FloatingContext.prototype._availableSpace):
(FloatingContext.prototype._adjustedFloatingPosition):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):
(FormattingContext.prototype.absoluteMarginBox):
(FormattingContext.prototype.absoluteBorderBox):
(FormattingContext.prototype.absolutePaddingBox):
(FormattingContext.prototype.absoluteContentBox):
(FormattingContext.prototype._toAbsolutePosition):
(FormattingContext.prototype._toRootAbsolutePosition):
(FormattingContext.prototype._addToLayoutQueue):
(FormattingContext.prototype.displayBox):
(FormattingContext.prototype._createDisplayBox): Deleted.
(FormattingContext.prototype.toDisplayBox): Deleted.
(FormattingContext.prototype.toLayoutBox): Deleted.

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState):
(FormattingState.prototype.createDisplayBox):
(FormattingState.prototype.displayBox):

8:34 AM Changeset in webkit [229757] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Grant IOKit preference access for the Home button
https://bugs.webkit.org/show_bug.cgi?id=183754
<rdar://problem/38179704>

Reviewed by Eric Carlson.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:21 AM Changeset in webkit [229756] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/WebCore

Apply patch. rdar://problem/38651613

8:21 AM Changeset in webkit [229755] by jmarcell@apple.com
  • 1 edit
    4 adds in branches/safari-605-branch/LayoutTests

Cherry-pick r229733. rdar://problem/38651613

8:21 AM Changeset in webkit [229754] by jmarcell@apple.com
  • 1 edit
    4 adds in branches/safari-605-branch/LayoutTests

Cherry-pick r229691. rdar://problem/38651615

8:21 AM Changeset in webkit [229753] by jmarcell@apple.com
  • 8 edits in branches/safari-605-branch/Source

Cherry-pick r229643. rdar://problem/38651639

8:21 AM Changeset in webkit [229752] by jmarcell@apple.com
  • 3 edits
    3 adds in branches/safari-605-branch

Cherry-pick r229614. rdar://problem/38651603

8:21 AM Changeset in webkit [229751] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-605-branch

Cherry-pick r229505. rdar://problem/38651624

8:21 AM Changeset in webkit [229750] by jmarcell@apple.com
  • 3 edits
    4 adds in branches/safari-605-branch

Cherry-pick r229483. rdar://problem/38651620

8:21 AM Changeset in webkit [229749] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebKitLegacy/mac

Cherry-pick r229414. rdar://problem/38651634

8:21 AM Changeset in webkit [229748] by jmarcell@apple.com
  • 3 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r229366. rdar://problem/38651632

8:21 AM Changeset in webkit [229747] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/JavaScriptCore

Cherry-pick r229109. rdar://problem/38651610

8:12 AM Changeset in webkit [229746] by Alan Bujtas
  • 7 edits
    3 copies
    1 add in trunk/Tools

[LayoutReloaded] Introduce FormattingState (Block/Inline/etc)
https://bugs.webkit.org/show_bug.cgi?id=183777

Reviewed by Antti Koivisto.

This is in preparation for moving out states from the formatting contexts.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):
(FormattingContext.prototype.layoutState):
(FormattingContext.prototype.layoutContext):
(FormattingContext.prototype.layout):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):

  • LayoutReloaded/FormattingState/BlockFormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.

(BlockFormattingState):

  • LayoutReloaded/FormattingState/FormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.

(FormattingState):
(FormattingState.prototype.formattingContext):
(FormattingState.prototype.layoutContext):
(FormattingState.prototype._setFormattingContext):

  • LayoutReloaded/FormattingState/InlineFormattingState.js: Copied from Tools/LayoutReloaded/LayoutContext.js.

(InlineFormattingState):

  • LayoutReloaded/LayoutContext.js:

(LayoutContext):
(LayoutContext.prototype.layout):
(LayoutContext.prototype._createFormattingState):
(LayoutContext.prototype._createFormattingContext): Deleted.

  • LayoutReloaded/LayoutReloaded.xcworkspace/contents.xcworkspacedata:
  • LayoutReloaded/test/index.html:
7:36 AM Changeset in webkit [229745] by Wenson Hsieh
  • 4 edits
    2 copies
    2 moves in trunk/Source/WebKit

[Extra zoom mode] Adopt updated input view controller machinery for text input
https://bugs.webkit.org/show_bug.cgi?id=183765
<rdar://problem/36926269>

Reviewed by Tim Horton.

Adopt new classes for extra zoomed text inputs. Massage WKTextInputViewController into WKTextInputListView-
Controller and introduce WKFormControlListViewController, the eventual replacement for the base class
WKTextFormControlViewController that will act as the base class of all list-view-controller-based input UI in
extra zoom mode.

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

(-[WKContentView presentTextInputViewController:]):
(-[WKContentView dismissTextInputViewController:]):
(-[WKContentView focusedFormControllerDidUpdateSuggestions:]):
(-[WKContentView _wheelChangedWithEvent:]):

  • UIProcess/ios/forms/WKFormControlListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h.
  • UIProcess/ios/forms/WKFormControlListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.mm.
  • UIProcess/ios/forms/WKTextInputListViewController.h: Copied from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h.
  • UIProcess/ios/forms/WKTextInputListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKTextInputViewController.h.
  • WebKit.xcodeproj/project.pbxproj:
1:22 AM Changeset in webkit [229744] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't add a new class by editing class attribute in DOM outline
https://bugs.webkit.org/show_bug.cgi?id=180890

Reviewed by Ryosuke Niwa.

Typing "my-foo my-bar" creates a single "my-foo\xA0my-bar" class name because
contentEditable-based attribute editor sometimes inserts non-breaking space characters (\xA0).

Replace all non-breaking space characters with the regular space characters when
commiting attribute change.

  • UserInterface/Views/DOMTreeElement.js:
12:58 AM Changeset in webkit [229743] by Yusuke Suzuki
  • 7 edits
    4 adds in trunk

[DFG][FTL] Add vectorLengthHint for NewArray
https://bugs.webkit.org/show_bug.cgi?id=183694

Reviewed by Saam Barati.

JSTests:

  • stress/vector-length-hint-array-constructor.js: Added.

(shouldBe):
(test):

  • stress/vector-length-hint-new-array.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

While the following code is a common, it is not so efficient.

var array = [];
for (...) {

...
array.push(...);

}

The array is always allocated with 0 vector length. And it is eventually grown.

We have ArrayAllocationProfile, and it tells us that the vector length hint for
the allocated arrays. This hint is already used for NewArrayBuffer. This patch
extends this support for NewArray DFG node.

This patch improves Kraken/stanford-crypto-aes 4%.

baseline patched

stanford-crypto-aes 64.069+-1.352 61.589+-1.274 might be 1.0403x faster

NewArray can be optimized.

baseline patched

vector-length-hint-new-array 21.8157+-0.0882 13.1764+-0.0942 definitely 1.6557x faster
vector-length-hint-array-constructor 21.9076+-0.0987 ? 22.1168+-0.4814 ?

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasVectorLengthHint):
(JSC::DFG::Node::vectorLengthHint):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):

12:12 AM Changeset in webkit [229742] by Yusuke Suzuki
  • 7 edits
    2 adds in trunk

[DFG][FTL] Make ArraySlice(0) code tight
https://bugs.webkit.org/show_bug.cgi?id=183590

Reviewed by Saam Barati.

JSTests:

  • stress/array-slice-with-zero.js: Added.

(shouldBe):
(test):
(test2):

  • stress/array-slice-zero-args.js: Added.

(shouldBe):
(test):

Source/JavaScriptCore:

This patch tightens ArraySlice code, in particular, startIndex = 0 case.

  1. We support array.slice() call. This is a well-used way to clone array.

For example, underscore.js uses this technique.

  1. We remove several checks if the given index value is a proven constant.
  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitPopulateSliceIndex):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
We can skip some of checks if the given value is a proven constant.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArraySlice):
Change below to belowOrEqual. It does not change meaning in the code. But it allows us
to fold BelowEqual(0, x) to true.

Mar 19, 2018:

11:26 PM Changeset in webkit [229741] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Apply some SDK checks in LocalDefaultSystemAppearance
https://bugs.webkit.org/show_bug.cgi?id=183767
<rdar://problem/38649611>

Reviewed by Zalan Bujtas.

  • platform/mac/LocalDefaultSystemAppearance.h:
  • platform/mac/LocalDefaultSystemAppearance.mm:

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

10:34 PM Changeset in webkit [229740] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Drop s_exceptionInstructions static initializer
https://bugs.webkit.org/show_bug.cgi?id=183732

Reviewed by Darin Adler.

Make Instruction constructor constexpr to drop the static constructor
of LLInt::Data::s_exceptionInstructions.

  • bytecode/Instruction.h:

(JSC::Instruction::Instruction):

10:02 PM Changeset in webkit [229739] by Alan Bujtas
  • 8 edits in trunk/Tools

[LayoutReloaded] Layout.Box should not create the formatting context.
https://bugs.webkit.org/show_bug.cgi?id=183766

Reviewed by Antti Koivisto.

Since the formattingContext's lifetime is tied to the layout, the LayoutContext
should construct it instead.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext):
(BlockFormattingContext.prototype.layout):
(BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
(BlockFormattingContext.prototype._contentHeight):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext):
(FormattingContext.prototype.layoutContext):
(FormattingContext.prototype.toDisplayBox):
(FormattingContext.prototype._outOfFlowDescendants):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):

  • LayoutReloaded/Layout.js:

(layout):

  • LayoutReloaded/LayoutContext.js:

(LayoutContext.prototype.layout):
(LayoutContext.prototype._createFormattingContext):
(LayoutContext):
(LayoutContext.prototype.layoutFormattingContext): Deleted.

  • LayoutReloaded/LayoutTree/Box.js:

(Layout.Box):
(Layout.Box.prototype.establishedFormattingContext): Deleted.

  • LayoutReloaded/misc/headers/Box.h:
8:26 PM Changeset in webkit [229738] by mitz@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Investigate why cpu_indicator_init is used
https://bugs.webkit.org/show_bug.cgi?id=183736

Reviewed by Tim Horton.

cpu_indicator_init, which is a global initializer, was included in JavaScriptCore because
we were passing the -all_load option to the linker, causing it to bring in all members of
every static library being linked in, including the compiler runtime library. We only need
to load all members of WTF. The linker option for doing that is -force_load, and it requires
a path to the library. To support building against libWTF.a built locally as well as against
the copy that is in the SDK, we add a script build phase that palces a symbolic link to the
appropriate libWTF.a under the DerivedSources directory, and pass the path to that symlink
to the linker. Also, while cleaning up linker flags, make OTHER_LDFLAGS_HIDE_SYMBOLS less
verbose by eliminating every other -Wl, remove redundant -lobjc (libobjc is already listed
in the Link Binary With Libraries build phase), remove long-unsupported -Y,3, and stop
reexporting libobjc.

  • Configurations/JavaScriptCore.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
7:49 PM Changeset in webkit [229737] by Megan Gardner
  • 4 edits in trunk/Source

Clear style colors when setting default appearance
https://bugs.webkit.org/show_bug.cgi?id=183759

Reviewed by Tim Horton.

Colors are cached and need to be cleared and recalculated.
Source/WebKit:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setDefaultAppearance):

Source/WebKitLegacy/mac:

Refactor to do all style recalcs together.

  • WebView/WebView.mm:

(-[WebView _setDefaultAppearanceAndClearStyle]):
(-[WebView _setUseSystemAppearance:]):
(-[WebView effectiveAppearanceDidChange]):

7:34 PM Changeset in webkit [229736] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

WKWebView.ClearAppCache is a flaky API test failure on High Sierra.
https://bugs.webkit.org/show_bug.cgi?id=181546
<rdar://problem/36444327>

Reviewed by Ryosuke Niwa.

in LocalStorageDatabaseTracker::deleteDatabasesModifiedSince(), add origin
to originIdentifiersToDelete if we cannot determine the last modification
time of the database file. This likely means the database file does not
exist. However, we still needs to make sure the origin gets removed from
the origins database and there may be *.wal / *.shm variants of the database
that are still on disk and need to be deleted.

  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::deleteDatabasesModifiedSince):

7:31 PM Changeset in webkit [229735] by Chris Dumez
  • 30 edits in trunk

Have one service worker process per security origin
https://bugs.webkit.org/show_bug.cgi?id=183600
<rdar://problem/35280128>

Reviewed by Brady Eidson.

Source/WebCore:

Split service workers from different origins into their own processes
for security reasons.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistrationFromStore):
(WebCore::SWServer::clear):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::serverToContextConnectionCreated):
(WebCore::SWServer::installContextData):
(WebCore::SWServer::runServiceWorkerIfNecessary):
(WebCore::SWServer::markAllWorkersAsTerminated):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::~SWServerToContextConnection):
(WebCore::SWServerToContextConnection::connectionForOrigin):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::origin):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::SWServerWorker):
(WebCore::SWServerWorker::securityOrigin const):
(WebCore::SWServerWorker::contextConnection):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Split service workers from different origins into their own processes
for security reasons.

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::connectionToContextProcessFromIPCConnection):
(WebKit::StorageProcess::didClose):
(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const):
(WebKit::StorageProcess::didReceiveMessage):
(WebKit::StorageProcess::createStorageToWebProcessConnection):
(WebKit::StorageProcess::serverToContextConnectionForOrigin):
(WebKit::StorageProcess::createServerToContextConnection):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didClose):

  • StorageProcess/StorageToWebProcessConnection.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextTerminateServiceWorkerProcess):

  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _terminateServiceWorkerProcesses]):
(-[WKProcessPool _webPageContentProcessCount]):
(-[WKProcessPool _serviceWorkerProcessCount]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::create):
(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):

  • UIProcess/ServiceWorkerProcessProxy.h:

(isType):

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getStorageProcessConnection):
(WebKit::StorageProcessProxy::didFinishLaunching):
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess):
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession):

  • UIProcess/Storage/StorageProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::getStorageProcessConnection):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit):
(WebKit::WebProcessPool::createWebPage):
(WebKit::WebProcessPool::updateServiceWorkerUserAgent):
(WebKit::WebProcessPool::mayHaveRegisteredServiceWorkers):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::terminateServiceWorkerProcesses):
(WebKit::WebProcessPool::updateProcessAssertions):
(WebKit::WebProcessPool::serviceWorkerProcessProxyFromPageID const):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getStorageProcessConnection):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
7:30 PM Changeset in webkit [229734] by Alan Bujtas
  • 5 edits in trunk/Tools

[LayoutReloaded] Remove border/padding/contentBox() functions from Layout.Box
https://bugs.webkit.org/show_bug.cgi?id=183761

Reviewed by Antti Koivisto.

Display.Box has them.

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext.prototype._computeOutOfFlowWidth):
(BlockFormattingContext.prototype._computeOutOfFlowHeight):
(BlockFormattingContext.prototype._horizontalConstraint):
(BlockFormattingContext.prototype._contentHeight):
(BlockFormattingContext.prototype._adjustBottomWithFIXME):
(BlockFormattingContext.prototype._computeOutOfFlowPosition):

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext.prototype._availableSpace):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext.prototype.absoluteBorderBox):
(FormattingContext.prototype.absolutePaddingBox):
(FormattingContext.prototype.absoluteContentBox):

  • LayoutReloaded/LayoutTree/Box.js:

(Layout.Box.prototype.isDescendantOf):
(Layout.Box):
(Layout.Box.prototype.borderBox): Deleted.
(Layout.Box.prototype.paddingBox): Deleted.
(Layout.Box.prototype.contentBox): Deleted.

7:27 PM Changeset in webkit [229733] by beidson@apple.com
  • 1 edit
    4 adds in trunk/LayoutTests

Add a layout test verifying AppCache resource fetches have the document's cookie in place.
https://bugs.webkit.org/show_bug.cgi?id=183757

Reviewed by Alex Christensen.

  • http/tests/appcache/document-cookie-expected.txt: Added.
  • http/tests/appcache/document-cookie.php: Added.
  • http/tests/appcache/resources/cookie-protected-script.php: Added.
  • http/tests/appcache/resources/document-cookie.manifest: Added.
6:56 PM Changeset in webkit [229732] by jmarcell@apple.com
  • 6 edits
    1 add in tags/Safari-606.1.9.4

Cherry-pick r229641. rdar://problem/38421894

6:56 PM Changeset in webkit [229731] by jmarcell@apple.com
  • 3 edits in tags/Safari-606.1.9.4/Source/WebKit

Cherry-pick r229575. rdar://problem/38535115

6:21 PM Changeset in webkit [229730] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Have select element respect current appearance
https://bugs.webkit.org/show_bug.cgi?id=183753

Reviewed by Tim Horton.

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

Have the menu lists/select elements follow the system colors.

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::adjustMenuListStyle const):

6:08 PM Changeset in webkit [229729] by n_wang@apple.com
  • 2 edits in trunk/Source/WebCore

AX: embedded attachments do not work correctly with text marker APIs on macOS
https://bugs.webkit.org/show_bug.cgi?id=183751

Reviewed by Chris Fleizach.

In WebKit1, embedded attachments are not working well with text marker APIs.
We should use the corresponding attachment view in the following cases:

  1. Hit testing on an attachment object.
  2. Getting the attachment object at a text marker position.
  3. Asking for the associated element with NSAccessibilityAttachmentTextAttribute.

Not able to construct a layout test because it relies on embedded attachments.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXAttributeStringSetElement):
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

5:20 PM Changeset in webkit [229728] by aakash_jain@apple.com
  • 7 edits in trunk/Websites/perf.webkit.org

Update Perf buildbot syncing scripts for Buildbot 0.9
https://bugs.webkit.org/show_bug.cgi?id=175969

Reviewed by Ryosuke Niwa.

  • tools/js/buildbot-triggerable.js:

(BuildbotTriggerable.prototype.initSyncers): Switch from Deprecated version to new version of getBuilderNameToIDMap.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer.prototype.scheduleRequestInGroupIfAvailable): Switch from Deprecated version to new version of scheduleRequest.
(BuildbotSyncer.prototype.pullBuildbot): Switch from Deprecated version to new version of pathForPendingBuilds, _pullRecentBuilds
and BuildbotBuildEntry. Parse the pending build-requests data in Buildbot 0.9 format.

  • unit-tests/buildbot-syncer-tests.js: Updated as per Buildbot 0.9 code.
  • server-tests/tools-sync-buildbot-integration-tests.js: Ditto.
  • server-tests/tools-buildbot-triggerable-tests.js: Ditto.
  • server-tests/resources/mock-data.js: Ditto.

(MockData.pendingBuildsUrl): Method to construct pendingBuildsUrl in Buildbot 0.9 format.
(MockData.recentBuildsUrl): Ditto for recent builds url.
(MockData.statusUrl): Ditto for status url.
(MockData.builderIDForName): Method to get builder ID from builder name.

4:15 PM Changeset in webkit [229727] by jiewen_tan@apple.com
  • 13 edits in trunk

Unreviewed, another quick fix for r229699

Restricts ENABLE_WEB_AUTHN to only macOS and iOS.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
  • TestWebKitAPI/Tests/ios/LocalAuthenticator.mm:
4:12 PM Changeset in webkit [229726] by Chris Dumez
  • 12 edits
    27 copies
    1 move
    73 adds in trunk

Make policy decisions asynchronous
https://bugs.webkit.org/show_bug.cgi?id=180568
<rdar://problem/37131297>

Reviewed by Alex Christensen.

Source/WebKit:

Get rid of synchronous IPC and synchronous code paths for policy delegates.
Policy decisions are now all made asynchronously and rely on asynchronous
IPC.

This code change is based on work by Alex Christensen.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

LayoutTests:

Rebaseline tests for WebKit2. The issue is that some tests dump policy delegate calls
and things now happen in a slightly different order now that those delegates are
asynchronous.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt:
  • platform/ios/http/tests/loading/simple-subframe-expected.txt:
  • platform/mac-wk2/http/tests/loading/simple-subframe-expected.txt: Copied from LayoutTests/platform/ios/http/tests/loading/simple-subframe-expected.txt.
  • platform/wk2/fast/loader/fragment-navigation-base-blank-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/fast/loader/iframe-meta-refresh-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/iframe-set-location-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
  • platform/wk2/fast/loader/refresh-iframe-base-blank-expected.txt: Copied from LayoutTests/platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt.
  • platform/wk2/fast/loader/subframe-removes-itself-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/contentdispositionattachmentsandbox/cross-origin-frames-disabled-expected.txt: Added.
  • platform/wk2/http/tests/contentextensions/block-everything-unless-domain-expected.txt: Added.
  • platform/wk2/http/tests/loading/authentication-after-redirect-stores-wrong-credentials/authentication-after-redirect-stores-wrong-credentials-expected.txt:
  • platform/wk2/http/tests/loading/bad-server-subframe-expected.txt: Added.
  • platform/wk2/http/tests/loading/basic-auth-load-URL-with-consecutive-slashes-expected.txt:
  • platform/wk2/http/tests/loading/redirect-with-no-location-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/loading/server-redirect-for-provisional-load-caching-expected.txt: Added.
  • platform/wk2/http/tests/loading/slow-parsing-subframe-expected.txt: Added.
  • platform/wk2/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt: Added.
  • platform/wk2/http/tests/misc/window-dot-stop-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-preserves-fragment-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-to-fragment-expected.txt: Added.
  • platform/wk2/http/tests/navigation/redirect-to-invalid-url-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-in-body-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-ignore-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-conflict-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-multiple-headers-sameorigin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
  • platform/wk2/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
  • platform/wk2/http/tests/security/blocked-on-redirect-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-javascript-url-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-xslt-document-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-plugin-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-iframe-with-inherited-policy-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-script-in-main-frame-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-main-frame-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-asynchronous-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-xhr-synchronous-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/secure-image-after-upgrade-redirect-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/http-0.9/iframe-blocked-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/about-blank-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/data-url-iframe-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/data-url-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/empty-url-plugin-in-frame-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-css-with-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-executable-css-with-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-form-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/insecure-form-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/insecure-image-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/mixedContent/javascript-url-form-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-http-to-https-script-in-iframe-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-iframe-in-main-frame-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-block-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-image-secure-cookies-expected.txt: Added.
  • platform/wk2/http/tests/security/mixedContent/redirect-https-to-http-script-in-iframe-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/http/tests/security/xssAuditor/script-tag-with-callbacks-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/inspector/page/frameScheduledNavigation-expected.txt: Added.
  • platform/wk2/loader/go-back-cached-main-resource-expected.txt: Added.
  • platform/wk2/webarchive/loading/mainresource-null-mimetype-crash-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/webarchive/loading/test-loading-archive-expected.txt: Copied from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
  • platform/wk2/webarchive/loading/video-in-webarchive-expected.txt: Renamed from LayoutTests/platform/mac/webarchive/loading/mainresource-null-mimetype-crash-expected.txt.
3:58 PM Changeset in webkit [229725] by Alan Bujtas
  • 6 edits in trunk/Tools

[LayoutReloaded] Move statically positioned absolute box positioning to _computeOutOfFlowPosition
https://bugs.webkit.org/show_bug.cgi?id=183750

Reviewed by Antti Koivisto.

  • LayoutReloaded/DisplayTree/Box.js:

(Display.Box.prototype.setTop):
(Display.Box.prototype.paddingBox):
(Display.Box.prototype.contentBox):
(Display.Box):

  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:

(BlockFormattingContext.prototype._computeStaticPosition):
(BlockFormattingContext.prototype._layoutOutOfFlowDescendants):
(BlockFormattingContext.prototype._computeOutOfFlowPosition):

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext.prototype.absoluteMarginBox):
(FormattingContext.prototype.absoluteBorderBox):
(FormattingContext.prototype.absolutePaddingBox):
(FormattingContext.prototype.absoluteContentBox):
(FormattingContext.prototype._toAbsolutePosition):
(FormattingContext.prototype._toRootAbsolutePosition):
(FormattingContext.prototype.toDisplayBox):

  • LayoutReloaded/LayoutTree/InitialBlockContainer.js:

(Layout.InitialBlockContainer.prototype.establishesBlockFormattingContext):
(Layout.InitialBlockContainer):
(Layout.InitialBlockContainer.prototype.paddingBox): Deleted.
(Layout.InitialBlockContainer.prototype.contentBox): Deleted.

  • LayoutReloaded/Utils.js:

(Utils.isStaticallyPositioned):

3:47 PM Changeset in webkit [229724] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Fix case of Strong Password localized string

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::autoFillStrongPasswordLabel):

3:31 PM Changeset in webkit [229723] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.9.3.1/Source

Versioning.

3:30 PM Changeset in webkit [229722] by Chris Dumez
  • 7 edits
    2 adds in trunk

WebKit.WebsitePoliciesAutoplayQuirks API test times out with async policy delegates
https://bugs.webkit.org/show_bug.cgi?id=183702
<rdar://problem/38566060>

Reviewed by Alex Christensen.

Source/WebCore:

The issue is that the test calls loadHTMLString then loadRequest right after, without
waiting for the first load to complete first. loadHTMLString is special as it relies
on substitute data and which schedules a timer to commit the data. When doing the
navigation policy check for the following loadRequest(), the substitute data timer
would fire and commit its data and load. This would in turn cancel the pending
navigation policy check for the loadRequest().

With sync policy delegates, this is not an issue because we take care of stopping
all loaders when receiving the policy decision, which happens synchronously. However,
when the policy decision happens asynchronously, the pending substitute data load
does not get cancelled in time and it gets committed.

To address the issue, we now cancel any pending provisional load before doing the
navigation policy check.

Test: fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clearProvisionalLoadForPolicyCheck):

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

(WebCore::PolicyChecker::checkNavigationPolicy):
Cancel any pending provisional load before starting the navigation policy check. This call
needs to be here rather than in the call site of policyChecker().checkNavigationPolicy()
because there is code in PolicyChecker::checkNavigationPolicy() which relies on
FrameLoader::activeDocumentLoader().
Also, we only cancel the provisional load if there is a policy document loader. In some
rare cases (when we receive a redirect after navigation policy has been decided for the
initial request), the provisional document loader needs to receive navigation policy
decisions so we cannot clear the provisional document loader in such case.

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[AsyncAutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[AsyncAutoplayPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[AsyncAutoplayPoliciesDelegate _webView:handleAutoplayEvent:withFlags:]):
(TEST):

LayoutTests:

Add variant of fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash.html with async navigation
delegate since the previous iteration of this patch broke this test case.

  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate-expected.txt: Added.
  • fast/loader/inner-iframe-loads-data-url-into-parent-on-unload-crash-async-delegate.html: Added.
3:05 PM Changeset in webkit [229721] by clopez@igalia.com
  • 3 edits in trunk/Source/ThirdParty/ANGLE

REGRESSION(r225340): WPE port should not be getting EGL X11 types on ANGLE
https://bugs.webkit.org/show_bug.cgi?id=183749

Reviewed by Alex Christensen.

Add back the USE_WPE ifdef.

  • changes.diff:
  • include/EGL/eglplatform.h:
2:46 PM Changeset in webkit [229720] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.9.3.1

New tag.

2:27 PM Changeset in webkit [229719] by jmarcell@apple.com
  • 6 edits in tags/Safari-606.1.9.4/Source/WebKit

Cherry-pick r229684. rdar://problem/38516584

2:27 PM Changeset in webkit [229718] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.9.4/Source

Cherry-pick r229679. rdar://problem/38385900

2:27 PM Changeset in webkit [229717] by jmarcell@apple.com
  • 28 edits
    2 copies in tags/Safari-606.1.9.4/Source

Cherry-pick r229654. rdar://problem/38382934

2:27 PM Changeset in webkit [229716] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.9.4/Source

Versioning.

2:22 PM Changeset in webkit [229715] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: clean up WKWebView configuration code
https://bugs.webkit.org/show_bug.cgi?id=183747
<rdar://problem/38629343>

Reviewed by Timothy Hatcher.

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webView]): Always use system
appearance for Inspector's web content.

2:22 PM Changeset in webkit [229714] by eric.carlson@apple.com
  • 18 edits in trunk/Source

[Extra zoom mode] Require fullscreen for video playback
https://bugs.webkit.org/show_bug.cgi?id=183742
<rdar://problem/38235862>

Reviewed by Jer Noble.

Source/WebCore:

  • Modules/modern-media-controls/media/playback-support.js:

(PlaybackSupport.prototype.syncControl): Always show the play button.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlayState): Return immediately if playback requires fullscreen
(WebCore::HTMLMediaElement::didBecomeFullscreenElement): Call updatePlayState in case
playback is pending.

  • html/HTMLMediaElement.h:
  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::presentingViewController): New.
(WebCore::VideoFullscreenModel::createVideoFullscreenViewController): New.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenMode):

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::seekableRangesChanged):

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm: Wrap AVPlayerLayerView so we can change its

behavior.
(WebAVPlayerLayerView_playerLayer):
(WebAVPlayerLayerView_videoView):
(allocWebAVPlayerLayerViewInstance):
(-[WebAVPlayerViewController initWithFullscreenInterface:]):
(-[WebAVPlayerViewController playerViewControllerShouldHandleDoneButtonTap:]):
(-[WebAVPlayerViewController enterFullScreenAnimated:completionHandler:]):
(-[WebAVPlayerViewController exitFullScreenAnimated:completionHandler:]):
(-[WebAVPlayerViewController NO_RETURN_DUE_TO_ASSERT]):
(-[WebAVPlayerViewController isPictureInPicturePossible]):
(-[WebAVPlayerViewController isPictureInPictureActive]):
(-[WebAVPlayerViewController isPictureInPictureSuspended]):
(-[WebAVPlayerViewController pictureInPictureActive]):
(-[WebAVPlayerViewController pictureInPictureWasStartedWhenEnteringBackground]):
(-[WebAVPlayerViewController view]):
(-[WebAVPlayerViewController showsPlaybackControls]):
(-[WebAVPlayerViewController setShowsPlaybackControls:]):
(-[WebAVPlayerViewController setAllowsPictureInPicturePlayback:]):
(-[WebAVPlayerViewController setDelegate:]):
(-[WebAVPlayerViewController setPlayerController:]):
(-[WebAVPlayerViewController avPlayerViewController]):
(-[WebAVPlayerViewController removeFromParentViewController]):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(fallbackViewController):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(WebCore::supportsPictureInPicture):

Source/WebCore/PAL:

  • pal/spi/cocoa/AVKitSPI.h:

Source/WebKit:

  • UIProcess/Cocoa/VideoFullscreenManagerProxy.h:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:

(-[WKVideoFullScreenViewController initWithAVPlayerViewController:]):
(-[WKVideoFullScreenViewController viewDidLoad]):
(-[WKVideoFullScreenViewController prefersStatusBarHidden]):
(WebKit::VideoFullscreenModelContext::presentingViewController):
(WebKit::VideoFullscreenModelContext::createVideoFullscreenViewController):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenManager::didEnterFullscreen):

Source/WTF:

  • wtf/Platform.h:
2:16 PM Changeset in webkit [229713] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.9.4

New tag.

2:12 PM Changeset in webkit [229712] by dbates@webkit.org
  • 4 edits in trunk

test-webkitpy no longer runs WebKit2 tests
https://bugs.webkit.org/show_bug.cgi?id=183724

Reviewed by Alexey Proskuryakov.

Source/WebKit:

Fixes an issue where Python emits errors "global name reset_results is not defined" when
running tests in messages_unittest.py using test-webkitpy.

Currently messages_unittest.py conditionally defines the global variable reset_results
when run as the main program (i.e. name == "main"). When messages_unittest.py is
imported as a module as test-webkitpy does then it is not considered the main program
;=> the top-level script environment is not main ;=> we do not define the global
variable reset_results. Instead we should unconditionally define the global variable
reset_results.

  • Scripts/webkit/messages_unittest.py:

Tools:

The WebKit2 tests have seen been moved from Source/WebKit2/Scripts/webkit2 to Source/WebKit/Scripts/webkit.

  • Scripts/webkitpy/test/main.py:

(main):

1:49 PM Changeset in webkit [229711] by dbates@webkit.org
  • 3 edits in trunk/Tools

Make run-webkit-app work for non-GUI apps
https://bugs.webkit.org/show_bug.cgi?id=183701

Reviewed by Lucas Forschler.

Launch the app directly if it is an executable file. Otherwise, assume it is an app bundle
and launch it using open(1) as we currently do.

Note that open(1) is meant for launching GUI apps. Standard output and standard error are
not sent to the tty when using open(1) to launch a non-GUI app.

  • Scripts/run-webkit-app: We make the assumption that
  • Scripts/webkitdirs.pm:
    • Define and export constant DO_NOT_USE_OPEN_COMMAND.
1:43 PM Changeset in webkit [229710] by dbates@webkit.org
  • 2 edits in trunk/Tools

run-webkit-app -g does not work
https://bugs.webkit.org/show_bug.cgi?id=183699

Reviewed by Lucas Forschler.

Check for the optional command line argument -g/--guard-malloc before taking the
first argument passed to be the path to the app to run.

  • Scripts/run-webkit-app:
1:22 PM Changeset in webkit [229709] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

FunctionPtr should be passed by value.
https://bugs.webkit.org/show_bug.cgi?id=183746
<rdar://problem/38625311>

Reviewed by JF Bastien.

It's meant to be an encapsulation of a C/C++ function pointer. There are cases
where we use it to pass JIT compiled code (e.g. the VM thunks/stubs), but they are
treated as if they are C/C++ functions.

Regardless, there's no need to pass it by reference.

  • assembler/MacroAssemblerCodeRef.h:
  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::appendCall):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::appendCall):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnException):
(JSC::DFG::SpeculativeJIT::appendCallWithCallFrameRollbackOnExceptionSetResult):
(JSC::DFG::SpeculativeJIT::appendCallSetResult):

  • jit/JIT.h:

(JSC::JIT::appendCall):
(JSC::JIT::appendCallWithSlowPathReturnType):

  • jit/JITInlines.h:

(JSC::JIT::appendCallWithExceptionCheck):
(JSC::JIT::appendCallWithExceptionCheckAndSlowPathReturnType):
(JSC::JIT::appendCallWithCallFrameRollbackOnException):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResult):
(JSC::JIT::appendCallWithExceptionCheckSetJSValueResultWithProfile):

1:06 PM Changeset in webkit [229708] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed, a quick fix for r229699

  • pal/spi/cocoa/DeviceIdentitySPI.h:
11:04 AM Changeset in webkit [229707] by pvollan@apple.com
  • 14 edits
    3 adds in trunk/Source

When the WebContent process is blocked from accessing the WindowServer, the call CVDisplayLinkCreateWithCGDisplay will fail.
https://bugs.webkit.org/show_bug.cgi?id=183604
<rdar://problem/38305109>

Reviewed by Brent Fulgham.

Source/WebCore:

The call to CVDisplayLinkCreateWithCGDisplay can instead be made in the UIProcess. Notify the WebContent process
about display updates by sending a message from the UIProcess on each screen update. This patch adds an extra
IPC step when notifying the WebContent process about display updates. However, the MotionMark benchmark shows no
performance regression when running it with this patch. A possible explanation for this is that the high priority
display link thread is now running in the UIProcess instead of the WebContent process, which means there will be
more available CPU resources for the WebContent process. A run loop observer is added to make sure that only one
display callback (for each display observer) is executed in a single iteration of the run loop. This will make
sure we are not filling the IPC message queue with unhandled display link messages.

No new tests, covered by existing tests.

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::displayLinkFired):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::displayWasUpdated):

  • platform/graphics/DisplayRefreshMonitorManager.h:
  • platform/graphics/mac/DisplayRefreshMonitorMac.h:

Source/WebKit:

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/DisplayLink.cpp: Added.

(WebKit::DisplayLink::DisplayLink):
(WebKit::DisplayLink::~DisplayLink):
(WebKit::DisplayLink::displayLinkCallback):

  • UIProcess/mac/DisplayLink.h: Added.
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::startDisplayRefreshMonitor):
(WebKit::WebPageProxy::stopDisplayRefreshMonitor):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::createDisplayRefreshMonitor):

  • WebProcess/WebPage/DrawingArea.h:
  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp: Added.

(WebKit::DisplayRefreshMonitorMac::create):
(WebKit::DisplayRefreshMonitorMac::DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::~DisplayRefreshMonitorMac):
(WebKit::DisplayRefreshMonitorMac::requestRefreshCallback):
(WebKit::DisplayRefreshMonitorMac::displayLinkFired):
(WebKit::DrawingArea::screenWasRefreshed):
(WebKit::DrawingArea::createDisplayRefreshMonitor):

10:29 AM Changeset in webkit [229706] by Megan Gardner
  • 2 edits in trunk/Source/WebCore

Ensure local appearance actually mirrors the app's appearance
https://bugs.webkit.org/show_bug.cgi?id=183743

Reviewed by Tim Horton.

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

Current appearance isn't always accurate by default and needs to be set manually.

  • platform/mac/LocalDefaultSystemAppearance.mm:

(WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):

1:40 AM Changeset in webkit [229705] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed GCC 4.9 build-fix after r229672.

  • platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::createCommand): Don't depend on implicit conversion of the
returning std::unique_ptr<> object, and instead only wrap the
heap-allocated PaintingOperation-derived in a std::unique_ptr<> at the
point of return.

Note: See TracTimeline for information about the timeline view.