Timeline



Nov 9, 2017:

11:27 PM Changeset in webkit [224668] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebDriver

WebDriver: WebDriverService::matchCapabilities should follow the spec
https://bugs.webkit.org/show_bug.cgi?id=179371

Reviewed by Brian Burg.

The returned object should contain all the entries mentioned in the spec, not only the ones already present in
the passed in capabilities object.

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-matching-capabilities

  • WebDriverService.cpp:

(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::processCapabilities const):

  • WebDriverService.h:
11:25 PM Changeset in webkit [224667] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebDriver

WebDriver: capabilities with null value shouldn't be added to the validated capabilities object
https://bugs.webkit.org/show_bug.cgi?id=179369

Reviewed by Brian Burg.

"4. If deserialized is not null, set a property on result with name name and value deserialized."

7.2 Processing Capabilities
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-validate-capabilities

Fixes: imported/w3c/webdriver/tests/sessions/new_session/create_firstMatch.py::test_valid[platformName-None]

  • WebDriverService.cpp:

(WebDriver::WebDriverService::validatedCapabilities const):

11:21 PM Changeset in webkit [224666] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

[Xcode] An extra copy of FileSizeFormatter.h is installed in /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=179525

Reviewed by Wenson Hsieh.

  • PAL.xcodeproj/project.pbxproj: Demoted FileSizeFormatter.h to a project header in the PAL target. The Copy PAL Headers target takes care of installing this header under /usr/local/include/pal.
11:03 PM Changeset in webkit [224665] by Chris Dumez
  • 8 edits in trunk/Source

Unreviewed, rolling out r224661.

Broke build on several internal Mac/iOS bots

Reverted changeset:

"Ignore HSTS for partitioned, cross-origin subresource
requests"
https://bugs.webkit.org/show_bug.cgi?id=178993
https://trac.webkit.org/changeset/224661

10:26 PM Changeset in webkit [224664] by Chris Dumez
  • 24 edits
    2 adds in trunk

ServiceWorkerRegistration objects may get recycled for different SWServerRegistration objects
https://bugs.webkit.org/show_bug.cgi?id=179517

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:

The test fails differently. The failure is expected here since we do not implement the
"Try Clear Registration" algorithm. As a result, we do not support resurrecting a
registration with the 'uninstalling' flag set. We always clear uninstalling registrations
on server side for now.

  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:

Same reason as above. The second checks calls unregister() for a registration that is "in use"
as expects it to get resurrected when calling register() again. We currently always clear
registrations that are unregistered on server side.

Source/WebCore:

ServiceWorkerRegistration objects could get recycled for different SWServerRegistration objects, leading to
flakiness in the tests. We uses ServiceWorkerRegistrationKey as key in the m_registration map on WebProcess
side. The lifetime of the ServiceWorkerRegistration objects is tied to the lifetime of their JS wrapper.
When a test does a registration for a given scope, then unregisters, then registers again for the same scope,
we would end up creating a new SWServerRegistration object on server side, but possibly reuse the same
ServiceWorkerRegistration object on WebProcess side, if its wrapper has not yet been garbage collected.
This is because the registrations have the same ServiceWorkerRegistrationKey in this case.

To address the issue, we now use the ServiceWorkerRegistrationIdentifier as key in the m_registration
hash map. A SWServerRegistration has a unique ServiceWorkerRegistrationIdentifier on server side.
All its clients ServiceWorkerRegistration also use the same ServiceWorkerRegistrationIdentifier.

Test: http/tests/workers/service/basic-unregister-then-register-again-no-reuse.html

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::scheduleTaskToUpdateRegistrationState):
(WebCore::ServiceWorkerContainer::scheduleTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/ServiceWorkerRegistrationData.h:

(WebCore::ServiceWorkerRegistrationData::decode):

  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::fireUpdateFoundEvent):

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

(WebCore::SWServer::Connection::addServiceWorkerRegistrationInServer):
(WebCore::SWServer::Connection::removeServiceWorkerRegistrationInServer):
(WebCore::SWServer::resolveRegistrationJob):
(WebCore::SWServer::addClientServiceWorkerRegistration):
(WebCore::SWServer::removeClientServiceWorkerRegistration):

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

(WebCore::generateServiceWorkerRegistrationIdentifier):
(WebCore::SWServerRegistration::SWServerRegistration):
(WebCore::SWServerRegistration::updateRegistrationState):
(WebCore::SWServerRegistration::fireUpdateFoundEvent):
(WebCore::SWServerRegistration::forEachConnection):
(WebCore::SWServerRegistration::addClientServiceWorkerRegistration):
(WebCore::SWServerRegistration::removeClientServiceWorkerRegistration):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::identifier const):

Source/WebKit:

  • Scripts/webkit/messages.py:

(forward_declarations_and_headers):

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::updateRegistrationStateInClient):
(WebKit::WebSWServerConnection::fireUpdateFoundEvent):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::addServiceWorkerRegistrationInServer):
(WebKit::WebSWClientConnection::removeServiceWorkerRegistrationInServer):

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

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/basic-unregister-then-register-again-no-reuse-expected.txt: Added.
  • http/tests/workers/service/basic-unregister-then-register-again-no-reuse.html: Added.
10:06 PM Changeset in webkit [224663] by Chris Dumez
  • 14 edits in trunk/LayoutTests

LayoutTests/imported/w3c:
Unreviewed, ebaseline flaky / skipped service worker tests
https://bugs.webkit.org/show_bug.cgi?id=179521

Rebaseline skipped / flaky service worker tests to get better estimates of our pass rate.

  • web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/foreign-fetch-basics.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-foreign-fetch-errors.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-controller.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-bytecheck.https-expected.txt:

LayoutTests:
Unreviewed, rebaseline flaky / skipped service worker tests
https://bugs.webkit.org/show_bug.cgi?id=179521

Unskip a test that is no longer timing out.

9:28 PM Changeset in webkit [224662] by Yusuke Suzuki
  • 4 edits
    6 adds in trunk

[JSC] Retry module fetching if previous request fails
https://bugs.webkit.org/show_bug.cgi?id=178168

Reviewed by Saam Barati.

Source/JavaScriptCore:

According to the latest spec, the failed fetching operation can be retried if it is requested again.
For example,

<script type="module" integrity="shaXXX-bad" src="./A.js"></script>
<script type="module" integrity="shaXXX-correct" src="./A.js"></script>

When performing the first module fetching, integrity check fails, and the load of this module becomes failed.
But when loading the second module, we do not use the cached failure result in the first module loading.
We retry fetching for "./A.js". In this case, we have a correct integrity and module fetching succeeds.
This is specified in whatwg/HTML[1]. If the fetching fails, we do not cache it.

Interestingly, fetching result and instantiation result will be cached if they succeeds. This is because we would
like to cache modules based on their URLs. As a result,

<script type="module" integrity="shaXXX-correct" src="./A.js"></script>
<script type="module" integrity="shaXXX-bad" src="./A.js"></script>

In the above case, the first loading succeeds. And the second loading also succeeds since the succeeded fetching and
instantiation are cached in the module pipeline.

This patch implements the above semantics. Previously, our module pipeline always caches the result. If the fetching
failed, all the subsequent fetching for the same URL fails even if we have different integrity values. We retry fetching
if the previous one fails. As an overview of our change,

  1. Fetching result should be cached only if it succeeds. Two or more on-the-fly fetching requests to the same URLs should be unified. But if currently executing one fails, other attempts should retry fetching.
  1. Instantiation should be cached if fetching succeeds.
  1. Satisfying should be cached if it succeeds.

[1]: https://html.spec.whatwg.org/#fetch-a-single-module-script

  • builtins/ModuleLoaderPrototype.js:

(requestFetch):
(requestInstantiate):
(requestSatisfy):
(link):
(loadModule):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

LayoutTests:

  • js/dom/modules/module-fetch-failure-not-cached-expected.txt: Added.
  • js/dom/modules/module-fetch-failure-not-cached.html: Added.
  • js/dom/modules/module-integrity-bad-value-success-with-cache-expected.txt: Added.
  • js/dom/modules/module-integrity-bad-value-success-with-cache.html: Added.
  • js/dom/modules/script-tests/module-fetch-failure-not-cached.js: Added.
  • js/dom/modules/script-tests/module-integrity-bad-value-success-with-cache.js: Added.
7:21 PM Changeset in webkit [224661] by Brent Fulgham
  • 8 edits in trunk/Source

Ignore HSTS for partitioned, cross-origin subresource requests
https://bugs.webkit.org/show_bug.cgi?id=178993
<rdar://problem/34962462>

Patch by John Wilander <wilander@apple.com> on 2017-11-09
Reviewed by Brent Fulgham.

Source/WebCore:

No new tests. HSTS is not supported in layout tests.
Tested manually.

  • platform/network/mac/WebCoreURLResponse.mm:

(WebCore::synthesizeRedirectResponseIfNecessary):

Source/WebCore/PAL:

  • pal/spi/cf/CFNetworkSPI.h:

Added

  • (BOOL)_schemeWasUpgradedDueToDynamicHSTS
  • (BOOL)_preventHSTSStorage
  • (BOOL)_ignoreHSTS
  • (void)_setPreventHSTSStorage:(BOOL)preventHSTSStorage
  • (void)_setIgnoreHSTS:(BOOL)ignoreHSTS

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(downgradeRequest):

Convenience function to downgrade a request if
CFNetwork as already upgraded it during
canonicalization. This allows the rest of
WebKit's processing to function, such as UIR
and mixed content blocking.

(updateIgnoreStrictTransportSecuritySettingIfNecessary):

Adds and removed the ignore request accordingly.

(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):

Now asks CFNetwork to ignore HSTS on resource loads we
partition cookies for.

(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):

Now asks CFNetwork to ignore HSTS on resource loads we
partition cookies for.

Source/WTF:

  • wtf/Platform.h:

Added HAVE_CFNETWORK_IGNORE_HSTS.

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

Mark multiple service worker tests as flaky.

Unreviewed test gardening.

5:50 PM Changeset in webkit [224659] by Ryan Haddad
  • 20 edits
    8 copies
    13 adds in trunk/LayoutTests

[iOS] Rebaseline and re-enable editing/deleting tests
https://bugs.webkit.org/show_bug.cgi?id=179119

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/editing/deleting/collapse-whitespace-3587601-fix-expected.txt: Added.
  • platform/ios/editing/deleting/delete-3608445-fix-expected.txt: Added.
  • platform/ios/editing/deleting/delete-3800834-fix-expected.txt: Added.
  • platform/ios/editing/deleting/delete-after-span-ws-001-expected.txt: Added.
  • platform/ios/editing/deleting/delete-after-span-ws-002-expected.txt: Added.
  • platform/ios/editing/deleting/delete-after-span-ws-003-expected.txt: Added.
  • platform/ios/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
  • platform/ios/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
  • platform/ios/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
  • platform/ios/editing/deleting/delete-at-start-or-end-expected.txt: Added.
  • platform/ios/editing/deleting/delete-block-contents-001-expected.txt: Added.
  • platform/ios/editing/deleting/delete-block-contents-002-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-br-010-expected.txt.
  • platform/ios/editing/deleting/delete-block-merge-contents-005-expected.txt:
  • platform/ios/editing/deleting/delete-block-merge-contents-006-expected.txt:
  • platform/ios/editing/deleting/delete-block-merge-contents-007-expected.txt:
  • platform/ios/editing/deleting/delete-block-merge-contents-008-expected.txt:
  • platform/ios/editing/deleting/delete-block-merge-contents-023-expected.txt:
  • platform/ios/editing/deleting/delete-block-merge-contents-024-expected.txt:
  • platform/ios/editing/deleting/delete-br-002-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-to-select-table-expected.txt.
  • platform/ios/editing/deleting/delete-br-004-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-to-select-table-expected.txt.
  • platform/ios/editing/deleting/delete-br-005-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-to-select-table-expected.txt.
  • platform/ios/editing/deleting/delete-br-006-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-to-select-table-expected.txt.
  • platform/ios/editing/deleting/delete-br-008-expected.txt:
  • platform/ios/editing/deleting/delete-br-009-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-br-008-expected.txt.
  • platform/ios/editing/deleting/delete-br-010-expected.txt:
  • platform/ios/editing/deleting/delete-image-004-expected.txt: Added.
  • platform/ios/editing/deleting/delete-leading-ws-001-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-br-010-expected.txt.
  • platform/ios/editing/deleting/delete-line-011-expected.txt: Copied from LayoutTests/platform/ios/editing/deleting/delete-to-select-table-expected.txt.
  • platform/ios/editing/deleting/delete-line-015-expected.txt:
  • platform/ios/editing/deleting/delete-line-016-expected.txt:
  • platform/ios/editing/deleting/delete-line-017-expected.txt:
  • platform/ios/editing/deleting/delete-line-end-ws-001-expected.txt: Added.
  • platform/ios/editing/deleting/delete-line-end-ws-002-expected.txt: Added.
  • platform/ios/editing/deleting/delete-tab-001-expected.txt: Added.
  • platform/ios/editing/deleting/delete-tab-004-expected.txt: Added.
  • platform/ios/editing/deleting/delete-to-select-table-expected.txt:
  • platform/ios/editing/deleting/merge-no-br-expected.txt:
  • platform/ios/editing/deleting/table-cells-expected.txt:
5:48 PM Changeset in webkit [224658] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Unify version parsing code
https://bugs.webkit.org/show_bug.cgi?id=179426
<rdar://problem/35415191>

Unreviewed fix to r224657.

  • Scripts/webkitpy/common/version.py:

(Version.init): Check if an object is iterable.

4:58 PM Changeset in webkit [224657] by Jonathan Bedard
  • 8 edits
    2 adds in trunk/Tools

webkitpy: Unify version parsing code
https://bugs.webkit.org/show_bug.cgi?id=179426
<rdar://problem/35415191>

Reviewed by David Kilzer.

webkitpy needs to parse version strings or version lists frequently. Rather than
duplicate this code each time it's needed, unify it in a Version class.

  • Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo.init): Convert mac version string to version object and
use _win_version instead of _win_version_tuple.
(PlatformInfo.xcode_sdk_version): Convert SDK version string to Version object
before returning it.
(PlatformInfo.xcode_version): Return Version object instead of version string.
(PlatformInfo._determine_mac_version): Accept Version object instead of string,
eliminate parsing.
(PlatformInfo._determine_win_version): Accept Version object instead of tuple.
(PlatformInfo._win_version): Return Version object instead of tuple, have Version
object own version string parsing.
(PlatformInfo._win_version_tuple): Renamed to _win_version().
(PlatformInfo._win_version_tuple_from_cmd): Deleted.

  • Scripts/webkitpy/common/system/platforminfo_mock.py:

(MockPlatformInfo.xcode_sdk_version): Return Version object instead of string.
(MockPlatformInfo.xcode_version): Dittio.

  • Scripts/webkitpy/common/version.py: Added.

(Version): Version object.
(Version.init): Initialize the Version object with a string, integer,
tuple of integers, list of integers or another Version object.
(Version.len): Return 5 so that the Version object can be treated as
a list or tuple.
(Version.getitem): Get item in Version object by index or string.
(Version.setitem): Set item in Version object by index or string.
(Version.str): Convert version to printable string, omitting trailing 0's.
(Version.cmp): Compare two version strings, major taking precedence over
minor, minor taking precedence over build.

  • Scripts/webkitpy/common/version_unittest.py: Added.

(VersionTestCase): Test behavior of Version object.

  • Scripts/webkitpy/port/ios.py:

(IOSPort.default_baseline_search_path): ios_version now returns a Version object.
(IOSPort._is_valid_ios_version): Deleted.
(IOSPort.get_option): Deleted.

  • Scripts/webkitpy/port/ios_device.py:

(IOSDevicePort.determine_full_port_name): Use Version object instead of owning parsing.
(IOSDevicePort.ios_version): Return Version object instead of string.

  • Scripts/webkitpy/port/ios_simulator.py:

(IOSSimulatorPort.simulator_runtime): Use from_version instead of from_version_string.
(IOSSimulatorPort.ios_version): Return Version object instead of string.
(IOSSimulatorPort.use_multiple_simulator_apps): Use Version object instead of string.

  • Scripts/webkitpy/xcode/simulator.py:

(Runtime.from_version): Accept Version object instead of string.
(Runtime.from_version_string): Replaced by from_version.
(Runtime.repr): When printing, a runtime's version will be a Version object instead
of a tuple.
(Simulator._parse_runtimes): Use Version object instead of tuple.
(Simulator._parse_devices): Ditto.

  • Scripts/webkitpy/xcode/simulator_unittest.py: Use Version object instead of tuples.
4:48 PM Changeset in webkit [224656] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WinCairo] Cannot find ImageDiff executable
https://bugs.webkit.org/show_bug.cgi?id=179508

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-11-09
Reviewed by Per Arne Vollan.

  • Scripts/webkitpy/port/win.py:

(WinPort.is_cygwin):
(WinPort._path_to_image_diff):
(WinPort.find_system_pid):

4:41 PM Changeset in webkit [224655] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/modern-media-controls/media-controller/media-controller-auto-hide-mouse-enter-and-mouse-leave.html as a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=169876

Unreviewed test gardening.

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

Skip slow encoding WPT LayoutTests.

Unreviewed test gardening.

4:31 PM Changeset in webkit [224653] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove explicit pop from LayoutState
https://bugs.webkit.org/show_bug.cgi?id=179509
<rdar://problem/35454323>

Reviewed by Antti Koivisto.

Both relayoutForPagination()/relayoutToAvoidWidows() call layout recursively which requires
manual layout state pop. This patch addresses this issue by constructing a new LayoutState object
for the positioned descendants.

Covered by existing tests.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::pop): Deleted.

  • rendering/LayoutState.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::relayoutToAvoidWidows):
(WebCore::RenderBlockFlow::relayoutForPagination):

  • rendering/RenderBlockFlow.h:
3:45 PM Changeset in webkit [224652] by Chris Dumez
  • 32 edits in trunk

Implement real post 'install' event steps of the Install algorithm (steps 14+)
https://bugs.webkit.org/show_bug.cgi?id=179401

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline a test that is now failing later (progression).

  • web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt:

Source/WebCore:

Implement step 14+ of Install algorithm, as per:

  • dom/Microtasks.h:
  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::scheduleTaskToUpdateState):

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleTaskToUpdateRegistrationState):
(WebCore::ServiceWorkerContainer::jobFailedWithException):
(WebCore::ServiceWorkerContainer::scheduleTaskToFireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::resolvedWithRegistration):

  • workers/service/ServiceWorkerJob.h:
  • workers/service/ServiceWorkerJobClient.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):

  • workers/service/ServiceWorkerTypes.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::registrationJobResolvedInServer):
(WebCore::SWClientConnection::forEachContainer):
(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::updateWorkerState):
(WebCore::SWClientConnection::fireUpdateFoundEvent):

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

(WebCore::SWServer::Connection::didResolveRegistrationPromise):
(WebCore::SWServer::resolveRegistrationJob):
(WebCore::SWServer::didResolveRegistrationPromise):

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

(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::didResolveRegistrationPromise):
(WebCore::SWServerJobQueue::didFinishInstall):
(WebCore::SWServerJobQueue::runRegisterJob):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:
  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::installingWorker const):
(WebCore::SWServerRegistration::waitingWorker const):
(WebCore::SWServerRegistration::activeWorker const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::terminate):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Implement step 14+ of Install algorithm, as per:

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebCoreArgumentCoders.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::resolveRegistrationJobInClient):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::didResolveRegistrationPromise):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
3:40 PM Changeset in webkit [224651] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: clicking on inline swatches and property checkboxes should not add a new property
https://bugs.webkit.org/show_bug.cgi?id=179507
<rdar://problem/35452204>

Reviewed by Brian Burg.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
Don't add new properties when clicking on selector fields, source links, and property checkboxes.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._update):
It is safe to replace "change" event with "click" since it fires even when pressing Space key when the checkbox is focused.

3:35 PM Changeset in webkit [224650] by d_russell@apple.com
  • 9 edits
    6 adds in trunk

Bug 179068 - AX: search predicate returns containing group for plain text instead of text element
https://bugs.webkit.org/show_bug.cgi?id=179068

Reviewed by Darin Adler

Implement a check in AccessibilityRenderObject::hasPlainText(), AccessibilityObject::canHavePlainText(), to confirm the element is capable of providing text.

Source/WebCore:

Tests: accessibility/mac/search-predicate-plaintext.html

accessibility/mac/search-predicate-visible-button.html
accessibility/mac/search-predicate-visited-links.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::text const):
(WebCore::AccessibilityNodeObject::stringValue const):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isARIAStaticText const):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue const):
(WebCore::AccessibilityRenderObject::canHavePlainText const):
(WebCore::AccessibilityRenderObject::hasPlainText const):

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

  • accessibility/mac/search-predicate-expected.txt:
  • accessibility/mac/search-predicate-plaintext-expected.txt: Added.
  • accessibility/mac/search-predicate-plaintext.html: Added.
  • accessibility/mac/search-predicate-visible-button-expected.txt: Added.
  • accessibility/mac/search-predicate-visible-button.html: Added.
  • accessibility/mac/search-predicate-visited-links-expected.txt: Added.
  • accessibility/mac/search-predicate-visited-links.html: Added.
  • accessibility/mac/search-predicate.html:
  • platform/mac-wk2/TestExpectations:
3:26 PM Changeset in webkit [224649] by Wenson Hsieh
  • 7 edits
    2 adds in trunk

Inserting an image, selecting, underlining, and then deleting leaves the typing style with both "-webkit-text-decorations-in-effect" and "text-decoration"
https://bugs.webkit.org/show_bug.cgi?id=179431

Reviewed by Ryosuke Niwa.

Source/WebCore:

When inserting an image element, selecting it, underlining the selection, deleting, and then inserting text, we
crash on a debug assert. This codepath was exercised by an API test added in <https://trac.webkit.org/r224512>.
This assertion happens due to the following sequence of events:

  1. DeleteSelectionCommand::saveTypingStyleState computes a typing style.
  2. In doing so, it calls into EditingStyle::init, which observes that "-webkit-text-decorations-in-effect" is present and appends "text-decoration" with an identical CSS value to the EditingStyle's mutable style properties.
  3. DeleteSelectionCommand::calculateTypingStyleAfterDelete sets the current selection's typing style to the above typing style.
  4. Later on, when we try to insert text, we compute the StyleChange using the above typing style, which calls into reconcileTextDecorationProperties.
  5. reconcileTextDecorationProperties debug asserts that "-webkit-text-decorations-in-effect" and "text-decoration" don't coexist on the EditingStyle's (i.e. the typing style's) mutable properties; since (2) added both properties, this assertion fires.

It appears that step (2) shouldn't be adding "text-decoration" in addition to EditingStyle's mutable style
properties, since doing so would violate the requirements of reconcileTextDecorationProperties. As such, we can
tweak EditingStyle::init to *replace* the "-webkit-text-decorations-in-effect" property with "text-decoration"
instead; this matches the behavior of reconcileTextDecorationProperties, and ensures that we only have the
"text-decorations" property when we try to insert text in step (4).

Test: editing/execCommand/underline-selection-containing-image.html

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::init):

LayoutTests:

Adds a new layout test to fix a debug assertion. See WebCore/ChangeLog for more details. Additionally
rebaselines a few existing tests that serialize markup strings to include text-decoration: none;.

  • editing/execCommand/underline-selection-containing-image-expected.txt: Added.
  • editing/execCommand/underline-selection-containing-image.html: Added.
  • editing/pasteboard/data-transfer-get-data-on-drop-rich-text-expected.txt:
  • fast/events/before-input-events-prevent-drag-and-drop-expected.txt:
  • fast/events/input-events-paste-rich-datatransfer-expected.txt:
  • fast/events/ondrop-text-html-expected.txt:
3:12 PM Changeset in webkit [224648] by webkit@devinrousso.com
  • 16 edits
    2 adds in trunk

Web Inspector: support undo/redo of insertAdjacentHTML
https://bugs.webkit.org/show_bug.cgi?id=179283

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add insertAdjacentHTML command that executes an undoable version of insertAdjacentHTML
on the given node.

Source/WebCore:

Test: inspector/dom/insertAdjacentHTML.html

Create another version of Element::insertAdjacentHTML that keeps track of the nodes that are
added. This is necessary because the children of a DocumentFragment are removed when it is
added to a ContainerNode. In this way, it is possible to remove those nodes during an undo.

  • dom/Element.h:
  • dom/Element.cpp:

(WebCore::Element::insertAdjacentHTML):

  • inspector/DOMEditor.h:
  • inspector/DOMEditor.cpp:

(WebCore::DOMEditor::insertAdjacentHTML):
Drive-by fix: sort functions and class declarations.

  • inspector/agents/InspectorDOMAgent.h:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::insertAdjacentHTML):

Source/WebInspectorUI:

  • UserInterface/Models/DOMNode.js:

(WI.DOMNode.prototype.insertAdjacentHTML):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._startEditingAsHTML):
Drive-by: only attempt to update the cursor if an initialValue is supplied.

LayoutTests:

  • inspector/dom/insertAdjacentHTML-expected.txt: Added.
  • inspector/dom/insertAdjacentHTML.html: Added.
2:13 PM Changeset in webkit [224647] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WinCairo EWS] svn-apply: 'cp' is not recognized as an internal or external command
https://bugs.webkit.org/show_bug.cgi?id=179469

Patch by Fujii Hironori <Fujii Hironori> on 2017-11-09
Reviewed by Per Arne Vollan.

WinCairo EWS bots haven't installed Cygwin.

  • Scripts/svn-apply:

(scmCopy): Use 'copy' function instead of 'cp' command.

2:03 PM Changeset in webkit [224646] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove redundant LayoutState c'tor
https://bugs.webkit.org/show_bug.cgi?id=179505
<rdar://problem/35450650>

Reviewed by Antti Koivisto.

No change in functionality.

  • rendering/LayoutState.cpp:
  • rendering/LayoutState.h:
1:09 PM Changeset in webkit [224645] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

FetchResponse should set the mime type of its internal ResourceResponse
https://bugs.webkit.org/show_bug.cgi?id=179487

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-09
Reviewed by Chris Dumez.

No observable change.
Setting the mime type of the response as navigation loads use that field.
This will be used for navigation loads served by service worker.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::create):

12:58 PM Changeset in webkit [224644] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ServiceWorker ResourceResponse should not assert in platformCertificateInfo()
https://bugs.webkit.org/show_bug.cgi?id=179486

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-09
Reviewed by Chris Dumez.

No change of behavior.
In case a Response is returned by Service Worker, there may be no related internal response.
In that case, platformCertificateInfo is returning an empty CertificateInfo.

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::platformCertificateInfo const):

12:56 PM Changeset in webkit [224643] by clopez@igalia.com
  • 2 edits in trunk/Tools

[WPE] Update dyz (WPE MiniBrowser)
https://bugs.webkit.org/show_bug.cgi?id=179492

Reviewed by Michael Catanzaro.

Update it to the last version as of today.
This version not longer uses the C API.

  • wpe/jhbuild.modules:
12:56 PM Changeset in webkit [224642] by Michael Catanzaro
  • 2 edits
    1 add in trunk

[WPE] Use linker script to control exported symbols
https://bugs.webkit.org/show_bug.cgi?id=179358

Reviewed by Carlos Alberto Lopez Perez.

The C API is being inadvertently exported because it's marked as WEBKIT_EXPORT in the header
files. But of course it should only be exported in DEVELOPER_MODE, where it's needed for
WebKitTestRunner. Use (almost) the same linker version script as GTK to fix this. It's
slightly different because WPE does not have WebKitPluginProcess.

This also reduces binary size of libWPEWebKit.so in debug mode from 615 MB down to 497 MB.
(Haven't checked release mode.)

  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/wpesymbols.filter: Added.
12:22 PM Changeset in webkit [224641] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove conditional push from RenderTableSection::calcRowLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=179493
<rdar://problem/35446631>

Reviewed by Antti Koivisto.

Pushing layout states is cheap and we do it for every container anyway.

Covered by existing tests.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateMaintainer::push): Deleted.

  • rendering/LayoutState.h:

(WebCore::LayoutStateMaintainer::didPush const): Deleted.

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):

11:30 AM Changeset in webkit [224640] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Clean out unused selection items from UIKitSPI
https://bugs.webkit.org/show_bug.cgi?id=179459

Reviewed by Tim Horton.

Many of these should have been removed from previous commits, but they were missed.
None of these enums or methods are being used by WebKit anymore, and removing them will keep things
clean and allow UIKit to remove things that are not used at all by anyone anymore.

  • Platform/spi/ios/UIKitSPI.h:
11:13 AM Changeset in webkit [224639] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

CachedResourceLoader::requestRawResource should not assert when destination is set in the context of a service worker
https://bugs.webkit.org/show_bug.cgi?id=179491

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-09
Reviewed by Chris Dumez.

No change of behavior.
requestRawResource on web page should have the destination set as the empty string as per fetch spec.
In the context of a service worker, requestRawResource may be used with any destination.
Updating assertion accordingly.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestRawResource):

11:00 AM Changeset in webkit [224638] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ResourceErrorBase::setType should not ASSERT if it is a no op
https://bugs.webkit.org/show_bug.cgi?id=179490

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-09
Reviewed by Chris Dumez.

No change of behavior.

  • platform/network/ResourceErrorBase.cpp:

(WebCore::ResourceErrorBase::setType):

10:50 AM Changeset in webkit [224637] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove renderer data members from state maintainers.
https://bugs.webkit.org/show_bug.cgi?id=179483
<rdar://problem/35442548>

Reviewed by Darin Adler.

Although layout is not supposed to mutate the tree anymore, it's safer to use LayoutContext instead.

No change in functionality.

  • page/LayoutContext.cpp:
  • page/LayoutContext.h:
  • rendering/LayoutState.cpp:

(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:
10:37 AM Changeset in webkit [224636] by mjs@apple.com
  • 5 edits
    3 adds in trunk

Remove support for iOS-only softbank-sjis encoding if possible
https://bugs.webkit.org/show_bug.cgi?id=179416

Reviewed by Darin Adler.

Source/WebCore:

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::registerEncodingNames): Remove support for softbank-sjis
codec, because by code inspection it couldn't have possibly worked.
(WebCore::TextCodecICU::registerCodecs): Ditto.

LayoutTests:

  • fast/encoding/charset-softbank-sjis.html: Added. Test that <meta charset>

declaration for softbank-sjis is ignored.

  • fast/encoding/charset-softbank-sjis-expected.txt: Added.
  • fast/encoding/resources/softbank-sjis-iframe.html: Added. Helper for above test.
  • fast/encoding/legacy-ios-encodings.html: Add a case for softbank-sjis.
  • fast/encoding/legacy-ios-encodings-expected.txt: Result for above.
10:33 AM Changeset in webkit [224635] by commit-queue@webkit.org
  • 28 edits in trunk

Use enum classes within FileSystem
https://bugs.webkit.org/show_bug.cgi?id=175172

Patch by Christopher Reid <chris.reid@sony.com> on 2017-11-09
Reviewed by Darin Adler.

Source/WebCore:

No new tests, no change in behavior.

Further cleanup to FileSystem's enum classes.
Shortening FileSystem's enum names now that they are enum classes.
Adding OptionSet<FileLockMode> to functions using the FileLockMode enum.

  • Modules/webdatabase/OriginLock.cpp:
  • loader/appcache/ApplicationCacheStorage.cpp:
  • platform/FileHandle.h:
  • platform/FileStream.cpp:
  • platform/FileSystem.cpp:
  • platform/FileSystem.h:
  • platform/cocoa/FileMonitorCocoa.mm:
  • platform/glib/FileSystemGlib.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:
  • platform/network/curl/CurlCacheManager.cpp:
  • platform/posix/FileSystemPOSIX.cpp:
  • platform/win/FileSystemWin.cpp:
  • rendering/RenderThemeWin.cpp:

Source/WebKit:

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp:
  • Shared/WebMemorySampler.cpp:
  • UIProcess/API/APIContentRuleListStore.cpp:
  • UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:

Source/WebKitLegacy/win:

  • Plugins/PluginDatabase.cpp:

Tools:

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
10:32 AM Changeset in webkit [224634] by commit-queue@webkit.org
  • 34 edits
    1 copy
    1 move
    2 adds in trunk/Source

Web Inspector: Make domain availability a list of types instead of a single type
https://bugs.webkit.org/show_bug.cgi?id=179457

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-09
Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/scripts/codegen/generate_js_backend_commands.py:

(JSBackendCommandsGenerator.generate_domain):
Update output of InspectorBackend.activateDomain to include the list.

  • inspector/scripts/codegen/models.py:

(Protocol.parse_domain):
Parse availability as a list and include a new supported value of "service-worker".

  • inspector/protocol/ApplicationCache.json:
  • inspector/protocol/CSS.json:
  • inspector/protocol/Canvas.json:
  • inspector/protocol/DOM.json:
  • inspector/protocol/DOMDebugger.json:
  • inspector/protocol/DOMStorage.json:
  • inspector/protocol/Database.json:
  • inspector/protocol/IndexedDB.json:
  • inspector/protocol/LayerTree.json:
  • inspector/protocol/Memory.json:
  • inspector/protocol/Network.json:
  • inspector/protocol/Page.json:
  • inspector/protocol/Timeline.json:
  • inspector/protocol/Worker.json:

Update availability to be a list.

  • inspector/scripts/tests/generic/domain-availability.json:
  • inspector/scripts/tests/generic/expected/domain-availability.json-result:
  • inspector/scripts/tests/generic/expected/fail-on-domain-availability-type.json-error: Added.
  • inspector/scripts/tests/generic/expected/fail-on-domain-availability-value.json-error: Added.
  • inspector/scripts/tests/generic/expected/fail-on-domain-availability.json-error:
  • inspector/scripts/tests/generic/fail-on-domain-availability-type.json: Copied from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json.
  • inspector/scripts/tests/generic/fail-on-domain-availability-value.json: Renamed from Source/JavaScriptCore/inspector/scripts/tests/generic/fail-on-domain-availability.json.

Update tests to include a test for the type and an invalid value.

Source/WebInspectorUI:

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype.activateDomain):
The second value changed to be an optional list. Check if the active
debuggable type is in the list or not.

  • UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
  • UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
  • Versions/Inspector-iOS-10.0.json:
  • Versions/Inspector-iOS-10.3.json:
  • Versions/Inspector-iOS-11.0.json:
  • Versions/Inspector-iOS-8.0.json:
  • Versions/Inspector-iOS-9.0.json:
  • Versions/Inspector-iOS-9.3.json:

Since this is a change to how we generate the frontend resource,
update the legacy versioned backends and regenerate their resource.

10:24 AM Changeset in webkit [224633] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

ServiceWorkerClientFetch should create not null ResourceError
https://bugs.webkit.org/show_bug.cgi?id=179485

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-09
Reviewed by Darin Adler.

  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:

(WebKit::ServiceWorkerClientFetch::didReceiveResponse):

10:21 AM Changeset in webkit [224632] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

[LayoutState cleanup] LayouState::m_lineGrid should be a weak pointer
https://bugs.webkit.org/show_bug.cgi?id=179484
<rdar://problem/35442725>

Reviewed by Darin Adler.

Covered by existing tests.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::propagateLineGridInfo):
(WebCore::LayoutState::establishLineGrid):

  • rendering/LayoutState.h:

(WebCore::LayoutState::lineGrid const):

9:36 AM Changeset in webkit [224631] by Brent Fulgham
  • 3 edits in trunk/Tools

Test fix after r224609
https://bugs.webkit.org/show_bug.cgi?id=178565
<rdar://problem/11115901>

Unreviewed test fix after r224609.

Correct two test cases that attempt to push local file URLs in violation of our
same origin policies. The fix is to grant universal file access, as we do for similar
LayoutTests.

  • TestWebKitAPI/Tests/WebKit/EphemeralSessionPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/PrivateBrowsingPushStateNoHistoryCallback.cpp:

(TestWebKitAPI::TEST):

9:27 AM BuildingGtk edited by Michael Catanzaro
(diff)
9:26 AM BuildingGtk edited by Michael Catanzaro
(diff)
9:24 AM BuildingGtk edited by Michael Catanzaro
(diff)
9:20 AM Changeset in webkit [224630] by aestes@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS] Adopt UIPreviewDataAttachmentListIsContentManaged
https://bugs.webkit.org/show_bug.cgi?id=179458
<rdar://problem/35034691>

Reviewed by Dan Bernstein.

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

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):

9:11 AM Changeset in webkit [224629] by pvollan@apple.com
  • 3 edits
    26 adds in trunk/Source/WebKitLegacy

[Win] Add WebKitQuartzCoreAdditions library.
https://bugs.webkit.org/show_bug.cgi?id=179331

Reviewed by Alex Christensen.

Source/WebKitLegacy:

This library should be added to the OpenSource repository.

  • CMakeLists.txt:

Source/WebKitLegacy/win:

  • WebKitQuartzCoreAdditions: Added.
  • WebKitQuartzCoreAdditions/API: Added.
  • WebKitQuartzCoreAdditions/API/WKCACFImage.cpp: Added.

(toImage):
(WKCACFImageGetWidth):
(WKCACFImageGetHeight):
(WKCACFImageCopyFileMapping):
(WKCACFImageCreateWithImage):
(WKCACFImageFinalize):
(WKCACFImageCopyFormattingDescription):
(WKCACFImageCopyDebugDescription):
(WKCACFImageGetTypeID):

  • WebKitQuartzCoreAdditions/API/WKCACFImage.h: Added.
  • WebKitQuartzCoreAdditions/API/WKCACFImageInternal.h: Added.
  • WebKitQuartzCoreAdditions/API/WKCACFView.cpp: Added.

(toView):
(toImpl):
(WKCACFViewCreate):
(WKCACFViewSetLayer):
(WKCACFViewUpdate):
(WKCACFViewFlushContext):
(WKCACFViewInvalidateRects):
(WKCACFViewCanDraw):
(WKCACFViewDraw):
(WKCACFViewCopyDrawnImage):
(WKCACFViewDrawIntoDC):
(contextDidChangeCallback):
(WKCACFViewSetContextDidChangeCallback):
(WKCACFViewGetLastCommitTime):
(WKCACFViewSetContextUserData):
(WKCACFViewGetContext):
(WKCACFViewFinalize):
(WKCACFViewCopyFormattingDescription):
(WKCACFViewCopyDebugDescription):
(WKCACFViewGetTypeID):
(WKCACFViewSetShouldInvertColors):
(WKCACFViewGetD3DDevice9):

  • WebKitQuartzCoreAdditions/API/WKCACFView.h: Added.
  • WebKitQuartzCoreAdditions/API/WKCACFViewPrivate.h: Added.
  • WebKitQuartzCoreAdditions/API/WebKitQuartzCoreAdditions.cpp: Added.

(WKQCA::dllInstance):
(DllMain):
(WKCACFShutDown):

  • WebKitQuartzCoreAdditions/API/WebKitQuartzCoreAdditionsBase.h: Added.
  • WebKitQuartzCoreAdditions/CAD3DRenderer.cpp: Added.

(WKQCA::D3DPostProcessingContext::D3DPostProcessingContext):
(WKQCA::d3d):
(WKQCA::initialPresentationParameters):
(WKQCA::CAD3DRenderer::shared):
(WKQCA::CAD3DRenderer::CAD3DRenderer):
(WKQCA::CAD3DRenderer::swapChain):
(WKQCA::CAD3DRenderer::createD3DPostProcessingContext):
(WKQCA::hardwareCapabilitiesIndicateCoreAnimationSupport):
(WKQCA::CAD3DRenderer::initialize):
(WKQCA::D3DMatrixOrthoOffCenterRH):
(WKQCA::prepareDevice):
(WKQCA::updateBounds):
(WKQCA::CAD3DRenderer::renderAndPresent):
(WKQCA::CAD3DRenderer::renderToImage):
(WKQCA::CAD3DRenderer::setDeviceIsLost):
(WKQCA::CAD3DRenderer::renderInternal):
(WKQCA::CAD3DRenderer::postProcess):
(WKQCA::CAD3DRenderer::resetD3DDevice):
(WKQCA::CAD3DRenderer::createShaderIfNeeded):
(WKQCA::CAD3DRenderer::release):

  • WebKitQuartzCoreAdditions/CAD3DRenderer.h: Added.

(WKQCA::D3DPostProcessingContext::sceneTexture const):
(WKQCA::D3DPostProcessingContext::overlayQuad const):
(WKQCA::CAD3DRenderer::d3dDevice9 const):

  • WebKitQuartzCoreAdditions/CAView.cpp: Added.

(WKQCA::CAView::Handle::create):
(WKQCA::CAView::Handle::~Handle):
(WKQCA::CAView::Handle::mutex):
(WKQCA::CAView::Handle::view const):
(WKQCA::CAView::Handle::clear):
(WKQCA::CAView::Handle::Handle):
(WKQCA::globalStateMutex):
(WKQCA::registerMessageWindowClass):
(WKQCA::createMessageWindow):
(WKQCA::CAView::releaseAllD3DResources):
(WKQCA::CAView::CAView):
(WKQCA::CAView::~CAView):
(WKQCA::CAView::create):
(WKQCA::CAView::setContextDidChangeCallback):
(WKQCA::CAView::setLayer):
(WKQCA::CAView::update):
(WKQCA::CAView::invalidateRects):
(WKQCA::CAView::drawToWindow):
(WKQCA::CAView::drawToWindowInternal):
(WKQCA::CAView::drawToImage):
(WKQCA::CAView::willDraw):
(WKQCA::CAView::didDraw):
(WKQCA::CAView::drawIntoDC):
(WKQCA::CAView::setShouldInvertColors):
(WKQCA::CAView::scheduleNextDraw):
(WKQCA::CAView::displayLinkReachedCAMediaTime):
(WKQCA::CAView::contextDidChangeCallback):
(WKQCA::CAView::contextDidChange):
(WKQCA::CAView::updateSoon):
(WKQCA::CAView::updateViewsNow):
(WKQCA::CAView::d3dDevice9):

  • WebKitQuartzCoreAdditions/CAView.h: Added.

(WKQCA::CAView::context const):
(WKQCA::CAView::canDraw const):
(WKQCA::CAView::ContextDidChangeCallback::ContextDidChangeCallback):

  • WebKitQuartzCoreAdditions/CMakeLists.txt: Added.
  • WebKitQuartzCoreAdditions/CVDisplayLink.cpp: Added.

(WKQCA::CVDisplayLink::CVDisplayLink):
(WKQCA::CVDisplayLink::~CVDisplayLink):
(WKQCA::CVDisplayLink::create):
(WKQCA::CVDisplayLink::start):
(WKQCA::CVDisplayLink::stop):
(WKQCA::CVDisplayLink::setPaused):
(WKQCA::CVDisplayLink::runIOThread):

  • WebKitQuartzCoreAdditions/CVDisplayLink.h: Added.
  • WebKitQuartzCoreAdditions/CVDisplayLinkClient.h: Added.

(WKQCA::CVDisplayLinkClient::~CVDisplayLinkClient):

  • WebKitQuartzCoreAdditions/Image.cpp: Added.

(WKQCA::numBytesForSize):
(WKQCA::Image::create):
(WKQCA::Image::Image):
(WKQCA::Image::~Image):
(WKQCA::bitmapInfo):
(WKQCA::Image::createDIB const):
(WKQCA::Image::copyFileMapping):

  • WebKitQuartzCoreAdditions/Image.h: Added.

(WKQCA::Image::size const):

  • WebKitQuartzCoreAdditions/ImageConversion.cpp: Added.

(WKQCA::getBackBufferRectAsRenderTarget):
(WKQCA::getSystemMemoryCopy):
(WKQCA::copyRectToBitmap):
(WKQCA::getImageCopy):
(WKQCA::getBackBufferRectAsImage):

  • WebKitQuartzCoreAdditions/ImageConversion.h: Added.
  • WebKitQuartzCoreAdditions/InvertColorPS.hlsl: Added.
  • WebKitQuartzCoreAdditions/WebKitQuartzCoreAdditionsInternal.h: Added.
  • WebKitQuartzCoreAdditions/WebKitQuartzCoreAdditionsPrefix.cpp: Added.
  • WebKitQuartzCoreAdditions/WebKitQuartzCoreAdditionsPrefix.h: Added.
8:18 AM Changeset in webkit [224628] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, remove Dan from the soup network watchlist

Per his request. It's not Hotel California; we should probably let him leave.

  • Scripts/webkitpy/common/config/watchlist:
7:22 AM Changeset in webkit [224627] by matthew_hanson@apple.com
  • 2 edits in tags/Safari-605.1.13/Source/WebCore

Cherry-pick r224604. rdar://problem/35421652

7:16 AM Changeset in webkit [224626] by Yusuke Suzuki
  • 12 edits in trunk/Source/JavaScriptCore

[JSC][JIT] Clean up SlowPathCall stubs
https://bugs.webkit.org/show_bug.cgi?id=179247

Reviewed by Saam Barati.

We have bunch of duplicate functions that just call a slow path function.
This patch cleans up the above duplication.

  • jit/JIT.cpp:

(JSC::JIT::emitSlowCaseCall):
(JSC::JIT::privateCompileSlowCases):

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

(JSC::JIT::emitSlow_op_unsigned): Deleted.
(JSC::JIT::emitSlow_op_inc): Deleted.
(JSC::JIT::emitSlow_op_dec): Deleted.
(JSC::JIT::emitSlow_op_bitand): Deleted.
(JSC::JIT::emitSlow_op_bitor): Deleted.
(JSC::JIT::emitSlow_op_bitxor): Deleted.
(JSC::JIT::emitSlow_op_lshift): Deleted.
(JSC::JIT::emitSlow_op_rshift): Deleted.
(JSC::JIT::emitSlow_op_urshift): Deleted.
(JSC::JIT::emitSlow_op_div): Deleted.

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emitSlow_op_unsigned): Deleted.
(JSC::JIT::emitSlow_op_inc): Deleted.
(JSC::JIT::emitSlow_op_dec): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_create_this): Deleted.
(JSC::JIT::emitSlow_op_check_tdz): Deleted.
(JSC::JIT::emitSlow_op_to_this): Deleted.
(JSC::JIT::emitSlow_op_to_primitive): Deleted.
(JSC::JIT::emitSlow_op_not): Deleted.
(JSC::JIT::emitSlow_op_stricteq): Deleted.
(JSC::JIT::emitSlow_op_nstricteq): Deleted.
(JSC::JIT::emitSlow_op_to_number): Deleted.
(JSC::JIT::emitSlow_op_to_string): Deleted.
(JSC::JIT::emitSlow_op_to_object): Deleted.
(JSC::JIT::emitSlow_op_get_direct_pname): Deleted.
(JSC::JIT::emitSlow_op_has_structure_property): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_to_primitive): Deleted.
(JSC::JIT::emitSlow_op_not): Deleted.
(JSC::JIT::emitSlow_op_stricteq): Deleted.
(JSC::JIT::emitSlow_op_nstricteq): Deleted.
(JSC::JIT::emitSlow_op_to_number): Deleted.
(JSC::JIT::emitSlow_op_to_string): Deleted.
(JSC::JIT::emitSlow_op_to_object): Deleted.
(JSC::JIT::emitSlow_op_create_this): Deleted.
(JSC::JIT::emitSlow_op_to_this): Deleted.
(JSC::JIT::emitSlow_op_check_tdz): Deleted.
(JSC::JIT::emitSlow_op_get_direct_pname): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitSlow_op_resolve_scope): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope): Deleted.

  • jit/SlowPathCall.h:

(JSC::JITSlowPathCall::JITSlowPathCall):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
7:08 AM Changeset in webkit [224625] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LayoutState cleanup] Add pagination parameter to subtree LayoutState
https://bugs.webkit.org/show_bug.cgi?id=179465
<rdar://problem/35434096>

Reviewed by Antti Koivisto.

It enables us to remove the last setters from LayoutState.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::layoutDeltaMatches const):
(WebCore::LayoutState::layoutDeltaMatches): Deleted.

  • rendering/LayoutState.h:

(WebCore::LayoutState::isPaginated const):
(WebCore::LayoutState::setIsPaginated): Deleted.
(WebCore::LayoutState::setPageLogicalHeight): Deleted.

4:54 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
4:53 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
4:36 AM Changeset in webkit [224624] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Gardening 09 nov
https://bugs.webkit.org/show_bug.cgi?id=179472

Unreviewed GTK gardening

  • platform/gtk/TestExpectations:
2:24 AM WebKitGTK/Gardening/Calendar edited by Adrian Perez de Castro
(diff)
1:02 AM Changeset in webkit [224623] by guijemont@igalia.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC][MIPS] Use fcsr to check the validity of the result of trunc.w.d
https://bugs.webkit.org/show_bug.cgi?id=179446

Reviewed by Žan Doberšek.

The trunc.w.d mips instruction should give a 0x7fffffff result when
the source value is Infinity, NaN, or rounds to an integer outside the
range -231 to 231 -1. This is what branchTruncateDoubleToInt32() and
branchTruncateDoubleToUInt32() have been relying on. It turns out that
this assumption is not true on some CPUs, including on the ci20 on
which we run the testbot (we get 0x80000000 instead). We should the
invalid operation cause bit instead to check whether the source value
could be properly truncated. This requires the addition of the cfc1
instruction, as well as the special registers that can be used with it
(control registers of CP1).

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::firstSPRegister):
(JSC::MIPSAssembler::lastSPRegister):
(JSC::MIPSAssembler::numberOfSPRegisters):
(JSC::MIPSAssembler::sprName):
Added control registers of CP1.
(JSC::MIPSAssembler::cfc1):
Added.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchOnTruncateResult):
(JSC::MacroAssemblerMIPS::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerMIPS::branchTruncateDoubleToUint32):
Use fcsr to check if the value could be properly truncated.

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

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

Patch by Alicia Boya García <aboya@igalia.com> on 2017-11-09
Reviewed by Michael Catanzaro.

  • platform/gtk/TestExpectations:
12:12 AM Changeset in webkit [224621] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r224566): [GTK][WPE] Many inspector tests are failing after r224566
https://bugs.webkit.org/show_bug.cgi?id=179419

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-11-09
Reviewed by Carlos Alberto Lopez Perez.

All of them fail with the following error:

Uncaught exception in Inspector page: ReferenceError: Can't find variable: CodeMirror [TestCombined.js:36658:15]

This is because Test.html, even when combined, is trying to load CodeMirror from External/CodeMirror, but
CodeMirror was already combined for Main.html. We need to also combine CodeMirror for Test.html.

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

Nov 8, 2017:

11:59 PM Changeset in webkit [224620] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

AVSampleBufferGenerator leaks seen on leaks bot
https://bugs.webkit.org/show_bug.cgi?id=179464

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-08
Reviewed by Jer Noble.

  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:

(WebCore::ImageDecoderAVFObjC::readSampleMetadata):
(WebCore::ImageDecoderAVFObjC::createFrameImageAtIndex):
Adopt the allocation into our RetainPtr.

10:05 PM Changeset in webkit [224619] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Include a more complete block signature in public headers to avoid potential -Wstrict-prototypes warnings
https://bugs.webkit.org/show_bug.cgi?id=179466

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-08
Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKHTTPCookieStore.h:
  • UIProcess/API/Cocoa/WKHTTPCookieStore.mm:

(-[WKHTTPCookieStore setCookie:completionHandler:]):
(-[WKHTTPCookieStore deleteCookie:completionHandler:]):

9:35 PM Changeset in webkit [224618] by Simon Fraser
  • 3 edits
    2 adds in trunk

Content not painted when scrolling an overflow node inside an iframe
https://bugs.webkit.org/show_bug.cgi?id=179315
rdar://problem/35364166

Reviewed by Tim Horton.

Source/WebCore:

When scrolling overflow:scroll, we need to check for overlap updates just as we do
for page scrolls.

Test: compositing/ios/overflow-scroll-update-overlap.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateCompositingLayers):

LayoutTests:

  • compositing/ios/overflow-scroll-update-overlap-expected.html: Added.
  • compositing/ios/overflow-scroll-update-overlap.html: Added.
9:27 PM Changeset in webkit [224617] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Cordova: elements with tag position:fixed disappears (flickering) when a long content is scrolling and appears again when the scroll is finished.
https://bugs.webkit.org/show_bug.cgi?id=178066

Reviewed by Tim Horton.

In UIWebView, we were failing to call setIsViewportConstrained() on layers for position:fixed,
causing us to detach their backing store sometimes on page scrolling.

Fix by hoisting the call to RenderLayerBacking::setIsScrollCoordinatedWithViewportConstrainedRole()
up the stack into code that runs for both UIWebView and WKWebView. This required moving some of
the sanity check code up out of updateScrollCoordinatedLayer() into the caller.

Not testable because the bug only manifested in UIWebView.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::canCoordinateScrollingForLayer):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

8:57 PM Changeset in webkit [224616] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LayoutState cleanup] Move RenderMultiColumnFlow::computeLineGridPaginationOrigin to LayoutState
https://bugs.webkit.org/show_bug.cgi?id=179462

Reviewed by Antti Koivisto.

This is in preparation for having no setters on LayoutState.
Having all the related functions (pagination/line-grid) in one place also helps with moving
them to a more appropriate place later.

No change in functionality.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::computePaginationInformation):
(WebCore::LayoutState::computeLineGridPaginationOrigin):
(WebCore::LayoutState::establishLineGrid):

  • rendering/LayoutState.h:

(WebCore::LayoutState::setLineGridPaginationOrigin): Deleted.
(WebCore::LayoutState::currentRenderFragmentedFlow const): Deleted.
(WebCore::LayoutState::setCurrentRenderFragmentedFlow): Deleted.

  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::computeLineGridPaginationOrigin const): Deleted.

7:55 PM Changeset in webkit [224615] by jiewen_tan@apple.com
  • 60 edits in trunk/Source/WebCore

Replace some stack raw pointers with RefPtrs within WebCore/svg
https://bugs.webkit.org/show_bug.cgi?id=179314
<rdar://problem/34842204>

Reviewed by Ryosuke Niwa.

Besides replacing pointers directly, some of the methods are changed to return
RefPtrs as well.

No changes in behaviors.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement const):

  • dom/EventPath.h:

(WebCore::EventPath::eventTargetRespectingTargetRules):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::hasValidGlyphElements const):

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::hasValidAttributeType):
(WebCore::SVGAnimateElementBase::calculateAnimatedValue):
(WebCore::SVGAnimateElementBase::calculateFromAndToValues):
(WebCore::SVGAnimateElementBase::calculateFromAndByValues):
(WebCore::SVGAnimateElementBase::resetAnimatedType):
(WebCore::SVGAnimateElementBase::applyResultsToTarget):
(WebCore::SVGAnimateElementBase::calculateDistance):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::hasValidAttributeType):
(WebCore::SVGAnimateMotionElement::updateAnimationPath):
(WebCore::SVGAnimateMotionElement::resetAnimatedType):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
(WebCore::SVGAnimateMotionElement::applyResultsToTarget):

  • svg/SVGAnimateTransformElement.cpp:

(WebCore::SVGAnimateTransformElement::hasValidAttributeType):

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::adjustForInheritance):
(WebCore::SVGAnimationElement::determinePropertyValueTypes):

  • svg/SVGDocument.cpp:

(WebCore::SVGDocument::rootElement):
(WebCore::SVGDocument::zoomAndPanEnabled const):
(WebCore::SVGDocument::startPan):
(WebCore::SVGDocument::updatePan const):

  • svg/SVGDocument.h:
  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemovalMap):

  • svg/SVGDocumentExtensions.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::~SVGElement):
(WebCore::SVGElement::correspondingUseElement const):
(WebCore::SVGElement::setCorrespondingElement):
(WebCore::SVGElement::resolveCustomStyle):
(WebCore::SVGElement::computedStyle):
(WebCore::SVGElement::buildPendingResourcesIfNeeded):
(WebCore::SVGElement::updateRelativeLengthsInformation):
(WebCore::SVGElement::invalidateInstances):

  • svg/SVGElement.h:
  • svg/SVGFEBlendElement.cpp:

(WebCore::SVGFEBlendElement::build):

  • svg/SVGFEColorMatrixElement.cpp:

(WebCore::SVGFEColorMatrixElement::build):

  • svg/SVGFEComponentTransferElement.cpp:

(WebCore::SVGFEComponentTransferElement::build):

  • svg/SVGFECompositeElement.cpp:

(WebCore::SVGFECompositeElement::build):

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::build):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::build):

  • svg/SVGFEDisplacementMapElement.cpp:

(WebCore::SVGFEDisplacementMapElement::build):

  • svg/SVGFEDropShadowElement.cpp:

(WebCore::SVGFEDropShadowElement::build):

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::build):

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::buildPendingResource):
(WebCore::SVGFEImageElement::notifyFinished):

  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::findLightSource):
(WebCore::SVGFELightElement::svgAttributeChanged):
(WebCore::SVGFELightElement::childrenChanged):

  • svg/SVGFEMergeElement.cpp:

(WebCore::SVGFEMergeElement::build):

  • svg/SVGFEMorphologyElement.cpp:

(WebCore::SVGFEMorphologyElement::build):

  • svg/SVGFEOffsetElement.cpp:

(WebCore::SVGFEOffsetElement::build):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::build):

  • svg/SVGFETileElement.cpp:

(WebCore::SVGFETileElement::build):

  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::invalidateFilterPrimitiveParent):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::rebuildFontFace):

  • svg/SVGFontFaceFormatElement.cpp:

(WebCore::SVGFontFaceFormatElement::childrenChanged):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::childrenChanged):

  • svg/SVGForeignObjectElement.cpp:

(WebCore::SVGForeignObjectElement::rendererIsNeeded):

  • svg/SVGLengthContext.cpp:

(WebCore::SVGLengthContext::determineViewport const):

  • svg/SVGLinearGradientElement.cpp:

(WebCore::SVGLinearGradientElement::collectGradientAttributes):

  • svg/SVGMPathElement.cpp:

(WebCore::SVGMPathElement::buildPendingResource):
(WebCore::SVGMPathElement::pathElement):

  • svg/SVGMPathElement.h:
  • svg/SVGRadialGradientElement.cpp:

(WebCore::SVGRadialGradientElement::collectGradientAttributes):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::frameForCurrentScale const):
(WebCore::SVGSVGElement::currentScale const):
(WebCore::SVGSVGElement::setCurrentScale):
(WebCore::SVGSVGElement::deselectAll):
(WebCore::SVGSVGElement::localCoordinateSpaceTransform const):
(WebCore::SVGSVGElement::scrollToAnchor):
(WebCore::SVGSVGElement::getElementById):

  • svg/SVGSVGElement.h:
  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::setDisabled):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::detachTarget):

  • svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::elementFromRenderer):

  • svg/SVGTextPathElement.cpp:

(WebCore::SVGTextPathElement::buildPendingResource):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::transferSizeAttributesToTargetClone const):
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::targetClone const):
(WebCore::SVGUseElement::toClipPath):
(WebCore::SVGUseElement::rendererClipChild const):
(WebCore::SVGUseElement::findTarget const):
(WebCore::SVGUseElement::invalidateDependentShadowTrees):
(WebCore::SVGUseElement::selfHasRelativeLengths const):

  • svg/SVGUseElement.h:
  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::buildPendingResource):
(WebCore::SVGSMILElement::insertedIntoAncestor):
(WebCore::SVGSMILElement::connectConditions):
(WebCore::SVGSMILElement::disconnectConditions):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::rootElement const):
(WebCore::SVGImage::hasSingleSecurityOrigin const):
(WebCore::SVGImage::setContainerSize):
(WebCore::SVGImage::containerSize const):
(WebCore::SVGImage::draw):
(WebCore::SVGImage::embeddedContentBox const):
(WebCore::SVGImage::hasRelativeWidth const):
(WebCore::SVGImage::hasRelativeHeight const):
(WebCore::SVGImage::computeIntrinsicDimensions):
(WebCore::SVGImage::startAnimation):
(WebCore::SVGImage::stopAnimation):
(WebCore::SVGImage::isAnimating const):
(WebCore::SVGImage::reportApproximateMemoryCost const):

  • svg/graphics/SVGImage.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

  • svg/graphics/filters/SVGFilterBuilder.cpp:

(WebCore::SVGFilterBuilder::getEffectById const):

  • svg/graphics/filters/SVGFilterBuilder.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
  • svg/properties/SVGListPropertyTearOff.h:
5:47 PM Changeset in webkit [224614] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/w3c/web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=179452

Unreviewed test gardening.

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

Mark http/tests/workers/service/registration-task-queue-scheduling-1.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=179342

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:32 PM Changeset in webkit [224612] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

[LayoutState cleanup] LayoutContext should own the stack of LayoutState objects
https://bugs.webkit.org/show_bug.cgi?id=179408
<rdar://problem/35423075>

Reviewed by Antti Koivisto.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::layoutState const):
(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::LayoutContext::popLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::isPaintOffsetCacheEnabled const):
(WebCore::LayoutContext::layoutState const): Deleted.

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeOffsets):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutState::computePaginationInformation):
(WebCore::LayoutState::propagateLineGridInfo):
(WebCore::LayoutState::establishLineGrid):
(WebCore::LayoutState::clearPaginationInformation): Deleted.

  • rendering/LayoutState.h:

(WebCore::LayoutState::setIsPaginated):

5:13 PM Changeset in webkit [224611] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

ServiceWorkerRegistration::updateStateFromServer fix! (Don't always create a new ServiceWorker every time).
https://bugs.webkit.org/show_bug.cgi?id=179456

Reviewed by Chris Dumez.

No new tests (No behavior change yet).

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::updateStateFromServer): Re-use a previous worker instead of always creating a new one.

4:53 PM Changeset in webkit [224610] by don.olmstead@sony.com
  • 1 edit
    1 add in trunk/Tools

Add Windows powershell EWS script
https://bugs.webkit.org/show_bug.cgi?id=179453

Reviewed by Brent Fulgham.

  • EWSTools/Start-Queue.ps1: Added.
4:46 PM Changeset in webkit [224609] by Brent Fulgham
  • 3 edits
    3 adds in trunk

XMLHttpRequest should not treat file URLs as same origin
https://bugs.webkit.org/show_bug.cgi?id=178565
<rdar://problem/11115901>

Reviewed by Daniel Bates.

Source/WebCore:

Based on a Blink patch by <jannhorn@googlemail.com>.
https://chromium.googlesource.com/chromium/src/+/c362e001551abc2bea392773f32eaf043d8bc29f

Test: security/cannot-read-self-from-file.html

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::passesFileCheck const): Do not treat file as same-origin.

LayoutTests:

  • security/cannot-read-self-from-file-expected.txt: Added.
  • security/cannot-read-self-from-file.html: Added.
  • security/resources/cannot-read-self-from-file.html: Added.
4:45 PM Changeset in webkit [224608] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit

Make WKFullScreenWidnowController more robust against modification by the embedding app.
https://bugs.webkit.org/show_bug.cgi?id=179413
rdar://problem/35408061

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-08
Reviewed by Darin Adler.

Present fullscreen UViewController in a separate UIWindow to prevent interaction with the embedding app's
UIViewController hierarchy.

Immediately tear down the fullscreen interface if the embedding app removes the WKWebView from the fullscreen window.
This prevents the fullscreen interface from getting into an invalid state.

Preserve scrollView.zoomScale because it is not effectively preserved by the more indirect _viewScale.

Use a custom root view controller to allow hiding of the status bar.

Remove the no-longer-necessary dispatch_after calls during enter and exit fullscreen.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView removeFromSuperview]):

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

(WebKit::WKWebViewState::applyTo):
(WebKit::WKWebViewState::store):
(-[_WKFullScreenViewController loadView]):
(-[_WKFullscreenRootViewController prefersStatusBarHidden]):
(-[WKFullScreenWindowController enterFullScreen]):
(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):
(-[WKFullScreenWindowController completedExitFullScreen]):
(-[WKFullScreenWindowController exitFullscreenImmediately]):
(-[WKFullScreenWindowController close]):
(-[WKFullScreenWindowController webViewDidRemoveFromSuperviewWhileInFullscreen]):
(-[_WKFullScreenViewController viewDidDisappear:]): Deleted.

4:43 PM Changeset in webkit [224607] by commit-queue@webkit.org
  • 13 edits in trunk

HTMLMediaElement should not use element fullscreen on iOS
https://bugs.webkit.org/show_bug.cgi?id=179418
rdar://problem/35409277

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-08
Reviewed by Eric Carlson.

Add ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN to determine if HTMLMediaElement should use element full screen or not.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::enterFullscreen):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
4:36 PM Changeset in webkit [224606] by Joseph Pecoraro
  • 19 edits
    4 adds in trunk

Web Inspector: Show Internal properties of PaymentRequest in Web Inspector Console
https://bugs.webkit.org/show_bug.cgi?id=179276

Reviewed by Andy Estes.

Source/JavaScriptCore:

  • inspector/InjectedScriptHost.h:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):
Call through to virtual implementation so that WebCore can provide custom
internal properties for Web / DOM objects.

Source/WebCore:

Test: http/tests/inspector/runtime/internal-properties-payment-request.https.html

  • Modules/paymentrequest/PaymentRequest.h:

Expose access to internal state.

  • inspector/WebInjectedScriptHost.h:
  • inspector/WebInjectedScriptHost.cpp:

(WebCore::constructInternalProperty):
(WebCore::WebInjectedScriptHost::getInternalProperties):
Provide internal properties for a PaymentRequest.

  • testing/Internals.cpp:

(WebCore::Internals::withUserGesture):

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

Provide a simple way to run code inside of a user gesture.

Source/WebInspectorUI:

  • UserInterface/Test.html:
  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.evaluateInPage):

  • UserInterface/Test/TestUtilities.js: Added.

(promisify):
Make async tests a little easier to work with by providing promises
in some cases that would normally take a callback.

LayoutTests:

Pass test on platforms that support Payment Requests.

  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt: Added.
  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html: Added.

Test for internal properties on PaymentRequest instances.

  • resources/ui-helper.js:

(window.UIHelper.withUserGesture):
Provide an easier way to simulate work inside of a user gesture.

4:25 PM Changeset in webkit [224605] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark many service worker tests as flaky on iOS.
https://bugs.webkit.org/show_bug.cgi?id=179454

Unreviewed test gardening.

  • platform/ios/TestExpectations:
3:54 PM Changeset in webkit [224604] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r224534): Crash inside Document::updateStyleIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=179442

Reviewed by Simon Fraser.

Disable the assertion when the web thread is used.

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded):
(WebCore::Document::updateLayout):

3:38 PM Changeset in webkit [224603] by sbarati@apple.com
  • 6 edits
    1 add in trunk

A JSFunction's ObjectAllocationProfile should watch the poly prototype watchpoint so it can clear its object allocation profile
https://bugs.webkit.org/show_bug.cgi?id=177792

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/poly-proto-clear-js-function-allocation-profile.js: Added.

(assert):
(foo.Foo.prototype.ensureX):
(foo.Foo):
(foo):
(access):

Source/JavaScriptCore:

Before this patch, if a JSFunction's rare data initialized its allocation profile
before its backing Executable's poly proto watchpoint was invalidated, that
JSFunction would continue to allocate non-poly proto objects until its allocation
profile was cleared (which essentially never happens in practice). This patch
improves on this pathology. A JSFunction's rare data will now watch the poly
proto watchpoint if it's still valid and clear its allocation profile when we
detect that we should go poly proto.

  • bytecode/ObjectAllocationProfile.h:
  • bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfile::initializeProfile):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::initializeObjectAllocationProfile):
(JSC::FunctionRareData::AllocationProfileClearingWatchpoint::fireInternal):

  • runtime/FunctionRareData.h:

(JSC::FunctionRareData::hasAllocationProfileClearingWatchpoint const):
(JSC::FunctionRareData::createAllocationProfileClearingWatchpoint):
(JSC::FunctionRareData::AllocationProfileClearingWatchpoint::AllocationProfileClearingWatchpoint):

3:22 PM Changeset in webkit [224602] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
Added mime type check to the picture source preloader to avoid downloading incompatible resources.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-08
Reviewed by Alex Christensen.

Test: http/tests/loading/preload-picture-type.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): include type match state when selecting candidate imgs
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): added type attribute evaluation and matching

LayoutTests:
Add tests to ensure that <source> tags are only preloaded when the type
attribute matches.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-08
Reviewed by Alex Christensen.

The actual execution of the test is a bit racy because of the need to refresh
the browser to change the DPR. Should also move the other testHad to move the tests to /preload (instead of tests/loading with the other
picture tests) to avoid the logging from

  • http/tests/preload/picture-type-expected.txt: Added.
  • http/tests/preload/picture-type.html: Added.
3:15 PM Changeset in webkit [224601] by beidson@apple.com
  • 5 edits in trunk

Some SW Container and Registration tweaks.
https://bugs.webkit.org/show_bug.cgi?id=179450

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt:

Source/WebCore:

No new tests (Progression in an existing test).

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):

3:13 PM Changeset in webkit [224600] by Antti Koivisto
  • 11 edits in trunk/Source

Move inlineElementContinuation function to RenderBoxModelObject and rename to inlineContinuation
https://bugs.webkit.org/show_bug.cgi?id=179437

Reviewed by Zalan Bujtas.

Unify RenderInline::inlineElementContinuation and RenderBlock::inlineElementContinuation.
It is simply a function to find the next RenderInline in the continuation chain.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::lastChildConsideringContinuation):
(WebCore::startOfContinuations):
(WebCore::endOfContinuations):
(WebCore::childBeforeConsideringContinuations):
(WebCore::AccessibilityRenderObject::nextSibling const):
(WebCore::nextContinuation):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::absoluteRects const):
(WebCore::RenderBlock::addFocusRingRects):
(WebCore::RenderBlock::inlineElementContinuation const): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::accumulateInFlowPositionOffsets):
(WebCore::RenderBoxModelObject::inlineContinuation const):

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):
(WebCore::RenderInline::styleDidChange):
(WebCore::nextContinuation):
(WebCore::RenderInline::positionForPoint):
(WebCore::RenderInline::inlineElementContinuation const): Deleted.

  • rendering/RenderInline.h:
  • rendering/line/LineInlineHeaders.h:

(WebCore::hasInlineDirectionBordersPaddingOrMargin):

3:11 PM Changeset in webkit [224599] by Ryan Haddad
  • 2 edits in trunk/JSTests

Mark test262.yaml/test262/test/language/statements/try/tco-catch.js as passing.
https://bugs.webkit.org/show_bug.cgi?id=178592

Unreviewed test gardening.

  • test262.yaml:
3:07 PM Changeset in webkit [224598] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-605.1.13

Tag Safari-605.1.13.

2:50 PM Changeset in webkit [224597] by timothy_horton@apple.com
  • 4 edits in trunk

[ios-simulator] API test WebKit.BundleParameters is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=178363
<rdar://problem/35043144>

Reviewed by Brent Fulgham.

  • wtf/RefCounter.h:

(WTF::RefCounter<T>::Count::deref):
(WTF::RefCounter<T>::Count::refCounterWasDeleted):
(WTF::RefCounter<T>::~RefCounter):
If a RefCounter::Count is deref()'d and drops its RefCounter's value to
zero, and the RefCounter is deleted in that valueDidChangeCallback, it
will delete the Counter that is in the middle of deref(). Keep track
of whether we're inside the callback and defer the deletion until
the end of deref().

  • TestWebKitAPI/Tests/WTF/RefCounter.cpp:

(TestWebKitAPI::TEST):
Add a test.

2:49 PM WebKitGTK/Gardening/Calendar edited by aboya@igalia.com
(diff)
2:01 PM Changeset in webkit [224596] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: Eliminate unnecessary hash lookups with NetworkResourceData
https://bugs.webkit.org/show_bug.cgi?id=179361

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-08
Reviewed by Brian Burg.

  • inspector/NetworkResourcesData.h:

(WebCore::NetworkResourcesData::ResourceData::setURL):
(WebCore::NetworkResourcesData::ResourceData::setUrl): Deleted.
Drive-by fix the name setUrl to setURL.

  • inspector/NetworkResourcesData.h:

Store unique_ptrs in the HashMap.

  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::resourceCreated):
(WebCore::NetworkResourcesData::responseReceived):
Create new versions of methods that combine two operations.

(WebCore::NetworkResourcesData::removeCachedResource):
(WebCore::NetworkResourcesData::clear):
(WebCore::NetworkResourcesData::ensureNoDataForRequestId):
Handle unique_ptrs in the HashMap.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::frameIdentifier):
(WebCore::InspectorNetworkAgent::willSendRequest):
(WebCore::InspectorNetworkAgent::didReceiveResponse):
(WebCore::InspectorNetworkAgent::didFailLoading):
Use the new version of operations to avoid multiple lookups.

1:48 PM Changeset in webkit [224595] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: fix incorrect curly quote orientation in a UIString
https://bugs.webkit.org/show_bug.cgi?id=179353
<rdar://problem/35368697>

Reviewed by Joseph Pecoraro.

I didn't see any other instances of this mistake in our localized strings.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/ResourceTimelineDataGridNode.js:

Fix it.

1:26 PM Changeset in webkit [224594] by keith_miller@apple.com
  • 28 edits
    1 add in trunk/Source/JavaScriptCore

Add super sampler begin and end bytecodes.
https://bugs.webkit.org/show_bug.cgi?id=179376

Reviewed by Filip Pizlo.

This patch adds a way to measure a narrow range of bytecodes for
performance. This is done using the same infrastructure as the
super sampler. I also added a class that helps do the bytecode
checking with RAII. One problem with the current way this is done
is that we don't handle decrementing early exits, either from
branches or exceptions. So, when using this API users need to
ensure that there are no early exits or that those exits don't
occur on the measure code.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/BytecodeDumper.cpp:

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

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

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

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitSuperSamplerBegin):
(JSC::BytecodeGenerator::emitSuperSamplerEnd):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/SuperSamplerBytecodeScope.h: Added.

(JSC::SuperSamplerBytecodeScope::SuperSamplerBytecodeScope):
(JSC::SuperSamplerBytecodeScope::~SuperSamplerBytecodeScope):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGClobbersExitState.cpp:

(JSC::DFG::clobbersExitState):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileSuperSamplerBegin):
(JSC::FTL::DFG::LowerDFGToB3::compileSuperSamplerEnd):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

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

(JSC::JIT::emit_op_super_sampler_begin):
(JSC::JIT::emit_op_super_sampler_end):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
1:10 PM Changeset in webkit [224593] by Wenson Hsieh
  • 21 edits in trunk

[Attachment Support] Implement delegate hooks for attachment element insertion and removal
https://bugs.webkit.org/show_bug.cgi?id=179016
<rdar://problem/35250890>

Reviewed by Tim Horton.

Source/WebCore:

Relanding this patch with a tweaked API test. WKAttachmentTests.AttachmentUpdatesWhenChangingFontStyles, in its
original form, hit a debug assertion and exposed an existing bug related to EditingStyles and text decoration.
After some investigation, this debug assertion is unrelated to the attachment logic introduced here; see
<https://bugs.webkit.org/show_bug.cgi?id=179431> for additional analysis, and several proposed fixes.

  • editing/Editor.cpp:

(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::editorUIUpdateTimerFired):
(WebCore::Editor::scheduleEditorUIUpdate):
(WebCore::Editor::didInsertAttachmentElement):
(WebCore::Editor::didRemoveAttachmentElement):
(WebCore::Editor::notifyClientOfAttachmentUpdates):
(WebCore::Editor::insertAttachmentFromFile):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::HTMLAttachmentElement):
(WebCore::HTMLAttachmentElement::insertedIntoAncestor):
(WebCore::HTMLAttachmentElement::removedFromAncestor):
(WebCore::HTMLAttachmentElement::uniqueIdentifier const):
(WebCore::HTMLAttachmentElement::setUniqueIdentifier):

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttributeNames.in:
  • page/EditorClient.h:

(WebCore::EditorClient::didInsertAttachment):
(WebCore::EditorClient::didRemoveAttachment):

Source/WebKit:

See WebCore/ChangeLog for more details.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didInsertAttachment:]):
(-[WKWebView _didRemoveAttachment:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::didInsertAttachment):
(WebKit::PageClientImplCocoa::didRemoveAttachment):

  • UIProcess/PageClient.h:

(WebKit::PageClient::didInsertAttachment):
(WebKit::PageClient::didRemoveAttachment):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didInsertAttachment):
(WebKit::WebPageProxy::didRemoveAttachment):

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

(WebKit::WebEditorClient::didInsertAttachment):
(WebKit::WebEditorClient::didRemoveAttachment):

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Tools:

See WebCore/ChangeLog for more details.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(-[AttachmentUpdateObserver init]):
(-[AttachmentUpdateObserver inserted]):
(-[AttachmentUpdateObserver removed]):
(-[AttachmentUpdateObserver _webView:didInsertAttachment:]):
(-[AttachmentUpdateObserver _webView:didRemoveAttachment:]):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::~ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::observer const):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates):
(-[TestWKWebView _synchronouslyExecuteEditCommand:argument:]):
(-[TestWKWebView expectUpdatesAfterCommand:withArgument:expectedRemovals:expectedInsertions:]):
(TestWebKitAPI::TEST):

12:42 PM Changeset in webkit [224592] by rmorisset@apple.com
  • 9 edits
    1 add in trunk

Turn recursive tail calls into loops
https://bugs.webkit.org/show_bug.cgi?id=176601

Reviewed by Saam Barati.

Relanding after https://bugs.webkit.org/show_bug.cgi?id=178834.

JSTests:

Add some simple test that computes factorial in several ways, and other trivial computations.
They all tests the case where foo calls bar (in an inlineable way) that then does a tail call.
Depending on the nature of both calls, it is possible or not to turn the tail call into a loop.
I have no clear way of checking that the call was indeed transformed, but I can check that the code computes the right result
(which it doesn't if that tail call is transformed into a loop in the unsound cases).

  • stress/inline-call-to-recursive-tail-call.js: Added.

(factorial.aux):
(factorial):
(factorial2.aux2):
(factorial2.id):
(factorial2):
(factorial3.aux3):
(factorial3):
(aux4):
(factorial4):
(foo):
(auxBar):
(bar):
(test):

Source/JavaScriptCore:

We want to turn recursive tail calls into loops early in the pipeline, so that the loops can then be optimized.
One difficulty is that we need to split the entry block of the function we are jumping to in order to have somewhere to jump to.
Worse: it is not necessarily the first block of the codeBlock, because of inlining! So we must do the splitting in the DFGByteCodeParser, at the same time as inlining.
We do this part through modifying the computation of the jump targets.
Importantly, we only do this splitting for functions that have tail calls.
It is the only case where the optimisation is sound, and doing the splitting unconditionnaly destroys performance on Octane/raytrace.

We must then do the actual transformation also in DFGByteCodeParser, to avoid code motion moving code out of the body of what will become a loop.
The transformation is entirely contained in handleRecursiveTailCall, which is hooked to the inlining machinery.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasTailCalls const):

  • bytecode/PreciseJumpTargets.cpp:

(JSC::getJumpTargetsForBytecodeOffset):
(JSC::computePreciseJumpTargetsInternal):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::hasTailCalls const):
(JSC::UnlinkedCodeBlock::setHasTailCalls):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEnter):
(JSC::BytecodeGenerator::emitCallInTailPosition):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::allocateTargetableBlock):
(JSC::DFG::ByteCodeParser::makeBlockTargetable):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleRecursiveTailCall):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::parse):

12:02 PM Changeset in webkit [224591] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Simplify ServiceWorkerContainer::jobResolvedWithRegistration()
https://bugs.webkit.org/show_bug.cgi?id=179429

Reviewed by Brady Eidson.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

12:02 PM Changeset in webkit [224590] by Chris Dumez
  • 5 edits in trunk

[Service Workers] Make sure SWServerRegistration update functions always message back the connection that scheduled the job
https://bugs.webkit.org/show_bug.cgi?id=179428

Reviewed by Brady Eidson.

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::didFinishInstall):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::updateRegistrationState):
(WebCore::SWServerRegistration::updateWorkerState):
(WebCore::SWServerRegistration::fireUpdateFoundEvent):
(WebCore::SWServerRegistration::firePostInstallEvents):
(WebCore::SWServerRegistration::forEachConnection):

  • workers/service/server/SWServerRegistration.h:
11:35 AM Changeset in webkit [224589] by mjs@apple.com
  • 3 edits
    2 adds in trunk

iOS supports some text encodings supposedly due to lack of TEC that aren't supported by the TEC decoder on macOS
https://bugs.webkit.org/show_bug.cgi?id=179309

Reviewed by Darin Adler.

Source/WebCore:

Test: fast/encoding/legacy-ios-encodings.html

  • platform/text/TextCodecICU.cpp:

(WebCore::TextCodecICU::registerEncodingNames): Remove most iOS-specific adding of names, leaving only softbank-sjis.
Most were either redundant or unnecessary.
(WebCore::TextCodecICU::registerCodecs): ditto

LayoutTests:

  • fast/encoding/legacy-ios-encodings-expected.txt: Added.
  • fast/encoding/legacy-ios-encodings.html: Added. Check that we don't support some old iOS-only encoding names

and check for some nonstandard encoding names that we do support (for now).

11:30 AM Changeset in webkit [224588] by Michael Catanzaro
  • 2 edits in trunk/Source/bmalloc

Gigacage.cpp:44:46: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]
https://bugs.webkit.org/show_bug.cgi?id=179427

Reviewed by Saam Barati.

Tweak the conditional to suppress the warning.

  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):

11:08 AM Changeset in webkit [224587] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Attempting to unbork the WinCairo bot after r224578.

  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:

Add a missing semicolon after the deafult initialization of a member
variable in the GraphicsContextPlatformPrivate class.

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

Web Inspector: Remove unused Page.ScriptIdentifier protocol type
https://bugs.webkit.org/show_bug.cgi?id=179407

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-08
Reviewed by Matt Baker.

Source/JavaScriptCore:

  • inspector/protocol/Page.json:

Remove unused protocol type.

Source/WebInspectorUI:

  • Versions/Inspector-iOS-10.0.json:
  • Versions/Inspector-iOS-10.3.json:
  • Versions/Inspector-iOS-11.0.json:
  • Versions/Inspector-iOS-7.0.json:
  • Versions/Inspector-iOS-8.0.json:
  • Versions/Inspector-iOS-9.0.json:
  • Versions/Inspector-iOS-9.3.json:

Remove unused protocol type.

9:44 AM Changeset in webkit [224585] by mjs@apple.com
  • 5 edits
    12 adds in trunk/LayoutTests

Switch encoding WPT test suite to updating via import-w3c-tests
https://bugs.webkit.org/show_bug.cgi?id=179412

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/import-expectations.json: Import encoding tests instead of skipping.
  • web-platform-tests/encoding/eof-utf-8-one-expected.html: Added.
  • web-platform-tests/encoding/eof-utf-8-three-expected.html: Added.
  • web-platform-tests/encoding/eof-utf-8-two-expected.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/w3c-import.log: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/w3c-import.log: Added.
  • web-platform-tests/encoding/resources/w3c-import.log: Added.
  • web-platform-tests/encoding/textdecoder-copy.any-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-copy.any.html: Added.
  • web-platform-tests/encoding/textdecoder-copy.any.worker-expected.txt: Added.
  • web-platform-tests/encoding/textdecoder-copy.any.worker.html: Added.
  • web-platform-tests/encoding/textdecoder-labels-expected.txt.rej: Added.
  • web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt.rej: Added.
  • web-platform-tests/encoding/w3c-import.log: Added.

LayoutTests:

  • TestExpectations: Remove mention of slow encoding tests here...
  • tests-options.json: ...because they are now recorded here.
9:26 AM Changeset in webkit [224584] by Chris Dumez
  • 19 edits
    9 adds in trunk

[Service Workers] Support waitUntil() on the 'install' event
https://bugs.webkit.org/show_bug.cgi?id=179396

Reviewed by Brady Eidson.

LayoutTests/imported/w3c:

Rebaseline a few WPT tests.

  • web-platform-tests/service-workers/service-worker/oninstall-script-error.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https-expected.txt:

Source/WebCore:

Support waitUntil() on the 'install' event:

Tests: http/tests/workers/service/basic-install-event-waitUntil-multiple-promises.html

http/tests/workers/service/basic-install-event-waitUntil-reject.html
http/tests/workers/service/basic-install-event-waitUntil-resolve.html

  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:
  • workers/service/ExtendableEvent.cpp:

(WebCore::ExtendableEvent::waitUntil):
(WebCore::ExtendableEvent::addExtendLifetimePromise):
(WebCore::ExtendableEvent::whenAllExtendLifetimePromisesAreSettled):

  • workers/service/ExtendableEvent.h:

(WebCore::ExtendableEvent::pendingPromiseCount const):

  • workers/service/FetchEvent.cpp:

(WebCore::FetchEvent::respondWith):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::fireInstallEvent):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::didFinishInstall):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::firePostInstallEvents):

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/basic-install-event-waitUntil-multiple-promises-expected.txt: Added.
  • http/tests/workers/service/basic-install-event-waitUntil-multiple-promises.html: Added.
  • http/tests/workers/service/basic-install-event-waitUntil-reject-expected.txt: Added.
  • http/tests/workers/service/basic-install-event-waitUntil-reject.html: Added.
  • http/tests/workers/service/basic-install-event-waitUntil-resolve-expected.txt: Added.
  • http/tests/workers/service/basic-install-event-waitUntil-resolve.html: Added.
  • http/tests/workers/service/resources/basic-install-event-waitUntil-multiple-promises-worker.js: Added.

(event.i.event.waitUntil.new.Promise):

  • http/tests/workers/service/resources/basic-install-event-waitUntil-reject-worker.js: Added.

(event.event.waitUntil.new.Promise):

  • http/tests/workers/service/resources/basic-install-event-waitUntil-resolve-worker.js: Added.

(event.event.waitUntil.new.Promise):

  • http/wpt/service-workers/extendableEvent.https-expected.txt:
  • http/wpt/service-workers/extendableEvent.https.html:
8:39 AM Changeset in webkit [224583] by Antti Koivisto
  • 7 edits in trunk/Source/WebCore

Remove Element::isInlineElementContinuation
https://bugs.webkit.org/show_bug.cgi?id=179425

Reviewed by Zalan Bujtas.

It is really just isInline+isContinuation test and most callers know it is an inline already.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::firstChildConsideringContinuation):
(WebCore::startOfContinuations):
(WebCore::firstChildIsInlineContinuation):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
(WebCore::InlineFlowBox::paint):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::addContinuationWithOutline):

  • rendering/RenderElement.h:

(WebCore::RenderElement::setIsContinuation):
(WebCore::RenderElement::isElementContinuation const): Deleted.
(WebCore::RenderElement::isInlineElementContinuation const): Deleted.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::willBeDestroyed):
(WebCore::RenderInline::updateHitTestResult):

  • rendering/line/LineInlineHeaders.h:

(WebCore::hasInlineDirectionBordersPaddingOrMargin):

8:11 AM Changeset in webkit [224582] by hyatt@apple.com
  • 8 edits
    2 adds in trunk

[Experiment] Implement code to detect high frequency painting
https://bugs.webkit.org/show_bug.cgi?id=179118
Source/WebCore:

<rdar://problem/35347068>

Reviewed by Simon Fraser.

This patch implements a model for detecting that objects whose
graphics resources we want to cache (like glyphs or paths) are painting
frequently enough that it's worth taking the memory hit to cache them.

Paint frequency detection is done at the self-painting RenderLayer level, since
a lower level of granularity (e.g., per-RenderObject) would be too memory-intensive.

  • rendering/PaintInfo.h:

(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::enclosingSelfPaintingLayer):
Add the enclosing self-painting layer that is currently painting to the PaintInfo
so that objects that have cachaeble graphics resources can notify the layer when
they actually paint them.

  • rendering/RenderLayer.cpp:

(WebCore::PaintFrequencyInfo::PaintFrequencyInfo):
(WebCore::PaintFrequencyInfo::paintingFrequently const):
(WebCore::PaintFrequencyInfo::updatePaintFrequency):
(WebCore::PaintFrequencyInfo::paintingCacheableResource):
RenderLayers have a pointer to PaintFrequencyInfo that is allocated once you've
painted cachaeble resources.

(WebCore::RenderLayer::paintLayerContents):
(WebCore::RenderLayer::paintBackgroundForFragments):
(WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
(WebCore::RenderLayer::paintOutlineForFragments):
(WebCore::RenderLayer::paintMaskForFragments):
(WebCore::RenderLayer::paintChildClippingMaskForFragments):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:

Patch to pass the layer with the PaintInfo.

  • testing/Internals.cpp:

(WebCore::Internals::isPaintingFrequently):
(WebCore::Internals::incrementFrequentPaintCounter):

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

Test methods for making layout tests to ensure we go into the mode properly.

LayoutTests:

Reviewed by Simon Fraser.

  • fast/block/block-move-frequent-paint-expected.txt: Added.
  • fast/block/block-move-frequent-paint.html: Added.
8:00 AM Changeset in webkit [224581] by Ms2ger@igalia.com
  • 37 edits
    14 adds in trunk/LayoutTests

Update XMLHttpRequest tests.
https://bugs.webkit.org/show_bug.cgi?id=179421

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • resources/import-expectations.json: enabled some more tests
  • web-platform-tests/XMLHttpRequest/abort-during-done.htm:
  • web-platform-tests/XMLHttpRequest/abort-during-headers-received.htm:
  • web-platform-tests/XMLHttpRequest/abort-during-loading.htm:
  • web-platform-tests/XMLHttpRequest/open-after-abort.htm:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-2-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-2.htm:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-3-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-3.htm:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-4.htm:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-6.htm:
  • web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-redirected-worker-origin.htm:
  • web-platform-tests/XMLHttpRequest/open-url-worker-origin-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/open-url-worker-origin.htm: Added.
  • web-platform-tests/XMLHttpRequest/overridemimetype-open-state-force-xml.htm:
  • web-platform-tests/XMLHttpRequest/resources/workerxhr-origin-referrer.js:
  • web-platform-tests/XMLHttpRequest/resources/workerxhr-simple.js:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-timeout-simple.js:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-timeout-synconmain.js:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-timeout-synconworker.js:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-timeout-twice.js:
  • web-platform-tests/XMLHttpRequest/resources/xmlhttprequest-timeout.js:
  • web-platform-tests/XMLHttpRequest/responsedocument-decoding.htm:
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-cors-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-cors.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-repeat-no-args.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-basic.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-authentication-competing-names-passwords.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-entity-body-basic-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-entity-body-basic.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-entity-body-document.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head-async.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-get-head.htm:
  • web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-network-error-async-events.sub.htm: Added.
  • web-platform-tests/XMLHttpRequest/send-redirect-infinite.htm:
  • web-platform-tests/XMLHttpRequest/send-redirect-no-location.htm:
  • web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm:
  • web-platform-tests/XMLHttpRequest/setrequestheader-after-send.htm:
  • web-platform-tests/XMLHttpRequest/setrequestheader-before-open.htm:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-reused.html:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-unsent.htm:

LayoutTests:

7:53 AM Changeset in webkit [224580] by Michael Catanzaro
  • 2 edits in trunk

[WPE] Turn on ENABLE_INDEXED_DATABASE_IN_WORKERS
https://bugs.webkit.org/show_bug.cgi?id=179094

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/OptionsWPE.cmake:
7:02 AM Changeset in webkit [224579] by Alan Bujtas
  • 8 edits in trunk/Source/WebCore

[LayoutState cleanup] Make public data members private.
https://bugs.webkit.org/show_bug.cgi?id=179409
<rdar://problem/35406184>

Reviewed by Sam Weinig.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::addLayoutDelta):
(WebCore::LayoutState::layoutDeltaMatches):

  • rendering/LayoutState.h:

(WebCore::LayoutState::setIsPaginated):
(WebCore::LayoutState::setPageLogicalHeight):
(WebCore::LayoutState::paintOffset const):
(WebCore::LayoutState::renderer const):
(WebCore::LayoutState::clipRect const):
(WebCore::LayoutState::isClipped const):
(WebCore::LayoutState::layoutDelta const):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::pageLogicalTopForOffset const):
(WebCore::RenderBlockFlow::pageLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::pageRemainingLogicalHeightForOffset const):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::computeRectForRepaint const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

5:55 AM Changeset in webkit [224578] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[Cairo] Improve PlatformContextCairo lifetime management in GraphicsContextPlatformPrivate
https://bugs.webkit.org/show_bug.cgi?id=179424

Reviewed by Carlos Garcia Campos.

When the PlatformContextCairo object is owned by GraphicsContextPlatformPrivate,
the latter should hold it in a std::unique_ptr<>. When PlatformContextCairo is
not owned, the std::unique_ptr<> should remain null, and the PlatformContextCairo
reference should point to the externally-managed object.

A new GraphicsContextPlatformPrivate constructor accepts a std::unique_ptr<> that
manages a PlatformContextCairo object and moves it into the member variable, tying
lifetime of that PlatformContextCairo object to the private object.

This enables dropping the GraphicsContextPlatformPrivateToplevel class, and the
virtual table is no longer required. Small cleanups to the remaining class are
also performed.

No new tests -- no changes in behavior.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::GraphicsContext):
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::platformContext const):

  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContextPlatformPrivate::save):
(WebCore::GraphicsContextPlatformPrivate::restore):
(WebCore::GraphicsContextPlatformPrivate::flush):
(WebCore::GraphicsContextPlatformPrivate::clip):
(WebCore::GraphicsContextPlatformPrivate::scale):
(WebCore::GraphicsContextPlatformPrivate::rotate):
(WebCore::GraphicsContextPlatformPrivate::translate):
(WebCore::GraphicsContextPlatformPrivate::concatCTM):
(WebCore::GraphicsContextPlatformPrivate::setCTM):
(WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate): Deleted.
(WebCore::GraphicsContextPlatformPrivateToplevel::GraphicsContextPlatformPrivateToplevel): Deleted.
(WebCore::GraphicsContextPlatformPrivateToplevel::~GraphicsContextPlatformPrivateToplevel): Deleted.

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::GraphicsContext::platformInit):

5:37 AM Changeset in webkit [224577] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

[Cairo] Move transparency layers Vector to PlatformContextCairo
https://bugs.webkit.org/show_bug.cgi?id=179420

Reviewed by Carlos Garcia Campos.

Move the Vector of transparency layer float values from the
GraphicsContextPlatformPrivate class to PlatformContextCairo.
It fits better there since it's a platform-specific context
state, just like e.g. the ShadowBlur member.

No new tests -- no change in behavior.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::beginPlatformTransparencyLayer):
(WebCore::GraphicsContext::endPlatformTransparencyLayer):

  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
  • platform/graphics/cairo/PlatformContextCairo.h:

(WebCore::PlatformContextCairo::layers):

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore::drawBitmapToContext):
(WebCore::GraphicsContext::releaseWindowsContext):
(WebCore::GraphicsContext::drawWindowsBitmap):

5:02 AM Changeset in webkit [224576] by Carlos Garcia Campos
  • 24 edits in trunk

Web Inspector: use JSON::{Array,Object,Value} instead of Inspector{Array,Object,Value}
https://bugs.webkit.org/show_bug.cgi?id=173619

Source/JavaScriptCore:

Reviewed by Alex Christensen and Brian Burg.

Eventually all classes used for our JSON-RPC message passing should be outside
of the Inspector namespace since the protocol is used outside of Inspector code.
This will also allow us to unify the primitive JSON types with parameteric types
like Inspector::Protocol::Array<T> and other protocol-related types which don't
need to be in the Inspector namespace.

Start this refactoring off by making JSON::Value a typedef for InspectorValue. In following
patches, other clients will move to use JSON::Value and friends. When all uses are
changed, the actual implementation will be renamed. This patch just focuses on the typedef
and making changes in generated protocol code.

Original patch by Brian Burg, rebased and updated by me.

  • inspector/InspectorValues.cpp:
  • inspector/InspectorValues.h:
  • inspector/scripts/codegen/cpp_generator.py:

(CppGenerator.cpp_protocol_type_for_type):
(CppGenerator.cpp_type_for_unchecked_formal_in_parameter):
(CppGenerator.cpp_type_for_type_with_name):
(CppGenerator.cpp_type_for_stack_in_parameter):

  • inspector/scripts/codegen/cpp_generator_templates.py:

(void):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(_generate_class_for_object_declaration):
(_generate_forward_declarations_for_binding_traits):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration):
(CppProtocolTypesImplementationGenerator._generate_assertion_for_enum):

  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/generic/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/generic/expected/domain-availability.json-result:
  • inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/generic/expected/enum-values.json-result:
  • inspector/scripts/tests/generic/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/generic/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/generic/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/generic/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/generic/expected/type-with-open-parameters.json-result:
  • inspector/scripts/tests/generic/expected/worker-supported-domains.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:

Tools:

Reviewed by Brian Burg.

Update InspectorValue unit tests to use JSON namespace and add more basic tests to cover all the API.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/JavaScriptCore/InspectorValue.cpp:

(TestWebKitAPI::TEST):

4:55 AM Changeset in webkit [224575] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

REGRESSION(r223773): [GTK] WebKitWebInspector bring-to-front signal is emitted right after open-window
https://bugs.webkit.org/show_bug.cgi?id=179365

Reviewed by Michael Catanzaro.

In the GTK+ API, open-window already implies presenting the window to bring it to the front, so it's not
expected that bring-to-front is emitted on open. This is happening since r223773 that moved common code from
platform specific inspector files to the main file, but in the case of open the mac implementation was not
exactly the same as the GTK+ one. This broke /webkit2/WebKitWebInspector/default and
/webkit2/WebKitWebInspector/manual-attach-detach.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::open): Set m_isOpening for the scope of the function.

  • UIProcess/WebInspectorProxy.h: Add m_isOpening.
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformBringToFront): Return early if m_isOpening is true.

1:49 AM Changeset in webkit [224574] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Disable implicit animations when adding or removing text track representation layers.
https://bugs.webkit.org/show_bug.cgi?id=179406
rdar://problem/34369835

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-08
Reviewed by Simon Fraser.

No new tests because this has no effect on the DOM.

This change prevents implicit animations when the text track layer is added or removed from
the video layer.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::syncTextTrackBounds):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setTextTrackRepresentation):

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm:

(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer):

12:47 AM Changeset in webkit [224573] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/Source/WebCore

Merge r221724 - [GTK] Bring back line height rounding when computing font metrics
https://bugs.webkit.org/show_bug.cgi?id=176497

Reviewed by Žan Doberšek.

In r221670 we changed the way we get the metrics to avoid rounding that was causing a negative line gap to be
computed. Since the font metrics value is indeed a float value, we also removed the rounding when setting the
line height. However, this caused some test failures because now we report non integer line heights.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::Font::platformInit):

12:47 AM Changeset in webkit [224572] by Carlos Garcia Campos
  • 4 edits
    1 delete in releases/WebKitGTK/webkit-2.18

Merge r221670 - [GTK] Bump freetype version to 2.8.0
https://bugs.webkit.org/show_bug.cgi?id=176351

Source/WebCore:

Patch by Dominik Röttsches <dominik.rottsches@intel.com> on 2017-09-06
Reviewed by Carlos Alberto Lopez Perez.

Retrieving line spacing info without metrics hinting - FreeType's metric hinting
uses rounding which results in the sum of ascent and descent being larger
than the line height. To work around this without globally disabling font metrics
hinting, I am temporarily creating a new cairo scaled font with metrics hinting
off and retrieving the height values from this one.

  • platform/graphics/freetype/SimpleFontDataFreeType.cpp:

(WebCore::scaledFontWithoutMetricsHinting): New function to clone the existing font, only with metrics hinting
disabled.
(WebCore::Font::platformInit): Get height info from non-metrics hinted font, disable rounding for linespacing.

Tools:

Reviewed by Carlos Alberto Lopez Perez.

Remove the patch we were using since it was reverted upstream.

  • gtk/jhbuild.modules:
  • gtk/patches/freetype6-2.4.11-truetype-font-height-fix.patch: Removed.
12:30 AM Changeset in webkit [224571] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.18

Merge r222008 - Switch multicolumn's spanner map from raw over to weak pointers.
https://bugs.webkit.org/show_bug.cgi?id=176367
<rdar://problem/34254896>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/multicol/spanner-crash-when-adding-summary.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
(WebCore::RenderMultiColumnFlowThread::handleSpannerRemoval):

  • rendering/RenderMultiColumnFlowThread.h:
  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::firstRendererInFlowThread const):
(WebCore::RenderMultiColumnSet::lastRendererInFlowThread const):

  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:

(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):

  • rendering/RenderMultiColumnSpannerPlaceholder.h:

LayoutTests:

  • fast/multicol/spanner-crash-when-adding-summary-expected.txt: Added.
  • fast/multicol/spanner-crash-when-adding-summary.html: Added.
12:26 AM Changeset in webkit [224570] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.18/LayoutTests

Merge r221991 - Rebaseline http/tests/loading/state-object-security-exception.html after r221978.
https://bugs.webkit.org/show_bug.cgi?id=176730

Unreviewed test gardening.

  • http/tests/loading/state-object-security-exception-expected.txt:
12:25 AM Changeset in webkit [224569] by Carlos Garcia Campos
  • 6 edits
    3 adds in releases/WebKitGTK/webkit-2.18

Merge r221978 - Make history.pushState()/replaceState() more closely aligned to the HTML standard
https://bugs.webkit.org/show_bug.cgi?id=176730
<rdar://problem/33839265>

Reviewed by Alex Christensen.

Source/WebCore:

Update history.pushState()/replaceState() to more closely align with the algorithm
specified in <https://html.spec.whatwg.org/multipage/history.html#dom-history-pushstate-2> (9 September 2017).

Test: http/tests/security/history-pushState-replaceState-from-sandboxed-iframe.html

  • page/History.cpp:

(WebCore::History::stateObjectAdded):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::extractInnerURL): Use URL constructor that takes a base URL as opposed
to using the special ParsedURLString-variant because the latter can only be used to parse a string
returned from URL::string(). And the extracted inner URL does not meet this criterion. Using the
ParsedURLString-variant of the URL constructor with a string that is not the result of URL::string()
will cause an assertion failure in a debug build.

LayoutTests:

  • http/tests/security/history-pushState-replaceState-from-sandboxed-iframe-expected.txt: Added.
  • http/tests/security/history-pushState-replaceState-from-sandboxed-iframe.html: Added.
  • http/tests/security/history-username-password-expected.txt:
  • http/tests/security/history-username-password.html:
  • http/tests/security/resources/history-pushState-replaceState-from-sandboxed-iframe.html: Added.
12:22 AM Changeset in webkit [224568] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.18

Merge r221711 - constructGenericTypedArrayViewWithArguments() is missing an exception check.
https://bugs.webkit.org/show_bug.cgi?id=176485
<rdar://problem/33898874>

Reviewed by Keith Miller.

JSTests:

  • stress/regress-176485.js: Added.

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewWithArguments):

Nov 7, 2017:

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

REGRESSION(r224179): [GTK] Several WebViewEditor tests are failing since r224179
https://bugs.webkit.org/show_bug.cgi?id=179366

Reviewed by Michael Catanzaro.

Source/WebKit:

In r224179, webkit_web_view_can_execute_editing_command() was optimized to use the sync path for commands
supported by the WebViewEditorState, but the state requires a redraw to be up to date. We can't know if
WebViewEditorState is in sync, when webkit_web_view_can_execute_editing_command() is called, so we always need
to ask the web process.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_can_execute_editing_command):

Tools:

Use always a toplevel window for WebViewEditor tests instead of creating and destroying one only to flush editor
state.

  • TestWebKitAPI/Tests/WebKitGtk/TestWebViewEditor.cpp:
11:23 PM Changeset in webkit [224566] by Carlos Garcia Campos
  • 6 edits
    1 move
    2 adds
    1 delete in trunk

[GTK][WPE] Build inspector resources using copy-user-interface-resources.pl script
https://bugs.webkit.org/show_bug.cgi?id=179317

Reviewed by Michael Catanzaro.

Source/WebKit:

This is the script used by Apple and it has several advantages:

  • It allows to combine and minify most of the js and css files, which improves performance and binary size.
  • It removes the debug resources and assertions in production builds.
  • It allows to remove the test resources in production builds.

The patch also moves the common cmake code to generate the resources to a new file InspectorGResources.cmake included
by GTK+ and WPE platform cmake files.

  • InspectorGResources.cmake: Added.
  • PlatformGTK.cmake:
  • PlatformWPE.cmake:

Tools:

Move generate-inspector-gresource-manifest.py to glib dir to be shared by GTK+ and WPE ports and update it to
receive an input directory instead of a list of patterns.
File::Copy::Recursive is required by copy-user-interface-resources.pl, so make sure it's installed.

  • glib/generate-inspector-gresource-manifest.py: Renamed from Tools/gtk/generate-inspector-gresource-manifest.py.

(get_filenames):
(get_filenames.should_ignore_resource):

  • gtk/install-dependencies:
  • wpe/generate-inspector-gresource-manifest.py: Removed.
  • wpe/install-dependencies:
11:10 PM Changeset in webkit [224565] by mjs@apple.com
  • 6 edits in trunk/Source

Get rid of unsightly hex numbers from unified build object files
https://bugs.webkit.org/show_bug.cgi?id=179410

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj: Rename UnifiedSource*.mm to UnifiedSource*-mm.mm for more readable build output.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj: Rename UnifiedSource*.mm to UnifiedSource*-mm.mm for more readable build output.

Source/WTF:

  • Scripts/generate-unified-source-bundles.rb: For extensions other than "cpp", also include

the extension in the base name of the file, to avoid ugly Xcode-generated object file names.

10:29 PM Changeset in webkit [224564] by sbarati@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Only cage double butterfly accesses
https://bugs.webkit.org/show_bug.cgi?id=179202

Reviewed by Mark Lam.

This patch removes caging from all butterfly accesses except double loads/stores.
This is a performance vs security tradeoff. Double loads/stores are the only butterfly
loads/stores that can write arbitrary bit patterns, so we choose to keep them safe
by caging. The other load/stores we are no longer caging to get back performance on
various benchmarks.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):

  • dfg/DFGFixedButterflyAccessUncagingPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileSpread):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitContiguousLoad):
(JSC::JIT::emitArrayStorageLoad):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):

  • llint/LowLevelInterpreter64.asm:
  • runtime/AuxiliaryBarrier.h:

(JSC::AuxiliaryBarrier::operator-> const):

  • runtime/Butterfly.h:

(JSC::Butterfly::caged):
(JSC::Butterfly::contiguousDouble):

  • runtime/JSArray.cpp:

(JSC::JSArray::setLength):
(JSC::JSArray::pop):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithAnyIndexingType):
(JSC::JSArray::fillArgList):
(JSC::JSArray::copyToArguments):

  • runtime/JSArrayInlines.h:

(JSC::JSArray::pushInline):

  • runtime/JSObject.cpp:

(JSC::JSObject::heapSnapshot):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::allocateMoreOutOfLineStorage):

  • runtime/JSObject.h:

(JSC::JSObject::canGetIndexQuickly):
(JSC::JSObject::getIndexQuickly):
(JSC::JSObject::tryGetIndexQuickly const):
(JSC::JSObject::canSetIndexQuickly):
(JSC::JSObject::butterfly const):
(JSC::JSObject::butterfly):

9:41 PM Changeset in webkit [224563] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Remove RenderBlock::isAnonymousBlockContinuation()
https://bugs.webkit.org/show_bug.cgi?id=179403

Non-anonymous blocks don't have continuations so this is the same as simply calling continuation().

Some of these are also really isContinuation() tests. This ends up being the same as calling
continuation() as block continuations always have next continuation too. This patch uses
isContinuation() where appropriate.

Reviewed by Zalan Bujtas.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeForHitTest const):
(WebCore::RenderBlock::absoluteRects const):
(WebCore::RenderBlock::absoluteQuads const):
(WebCore::RenderBlock::rectWithOutlineForRepaint const):
(WebCore::RenderBlock::hoverAncestor const):
(WebCore::RenderBlock::outlineStyleForRepaint const):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::isAnonymousBlockContinuation const): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::propagateStyleToAnonymousChildren):

  • rendering/RenderInline.cpp:

(WebCore::updateStyleOfAnonymousBlockContinuations):

5:30 PM Changeset in webkit [224562] by fpizlo@apple.com
  • 3 edits in trunk/Source/WTF

Disable isoheaps on iOS

Reviewed by Ryosuke Niwa.

  • wtf/IsoMalloc.h:
5:02 PM Changeset in webkit [224561] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

There is no such thing as block element continuation
https://bugs.webkit.org/show_bug.cgi?id=179400

Reviewed by Zalan Bujtas.

There are no non-anonymous block continuations. This is dead code.

  • rendering/RenderBlock.cpp:

(WebCore::borderOrPaddingLogicalWidthChanged):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::blockElementContinuation const): Deleted.

This would always return null.

  • rendering/RenderBlock.h:
4:30 PM Changeset in webkit [224560] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

Fix webkitpy tests after rev 224549.

Unreviewed build fix.

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

(WinCairoPort.run_webkit_tests_command):

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

(DeprecatedPortTest.test_wincairo_port):

4:29 PM Changeset in webkit [224559] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

[LayoutState cleanup] Rename enable/disableLayoutState
https://bugs.webkit.org/show_bug.cgi?id=179399
<rdar://problem/35400245>

Reviewed by Antti Koivisto.

It only enables/disables paint offset caching.

No change in functionality.

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::isPaintOffsetCacheEnabled const):
(WebCore::LayoutContext::disablePaintOffsetCache):
(WebCore::LayoutContext::enablePaintOffsetCache):
(WebCore::LayoutContext::layoutStateEnabled const): Deleted.
(WebCore::LayoutContext::disableLayoutState): Deleted.
(WebCore::LayoutContext::enableLayoutState): Deleted.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::shouldDisablePaintOffsetCacheForSubtree):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::shouldDisableLayoutStateForSubtree): Deleted.

  • rendering/LayoutState.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::computeRectForRepaint const):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

4:01 PM Changeset in webkit [224558] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Add downcast support for FullscreenClient.
https://bugs.webkit.org/show_bug.cgi?id=178824

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-07
Reviewed by Simon Fraser.

Add SPECIALIZE_TYPE_TRAITS macros for API::FullscreenClient and WebKit::Fullscreen client so
downcasts can be done safely.

  • UIProcess/API/APIFullscreenClient.h:

(API::FullscreenClient::isType const):

  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

(WKPageSetFullscreenDelegate):
(WKPageGetFullscreenDelegate):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setFullscreenDelegate:]):
(-[WKWebView _fullscreenDelegate]):

  • UIProcess/Cocoa/FullscreenClient.h:

(isType):

  • UIProcess/Cocoa/FullscreenClient.mm:
3:53 PM Changeset in webkit [224557] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

3:50 PM Changeset in webkit [224556] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.3

Tag Safari-604.4.7.0.3.

3:31 PM Changeset in webkit [224555] by sbarati@apple.com
  • 2 edits in trunk/Source/bmalloc

We should PROT_NONE the Gigacage runway so OOB accesses crash
https://bugs.webkit.org/show_bug.cgi?id=179392

Reviewed by Mark Lam.

If we assume that an attacker will exploit JSC and cause OOB accesses,
we should make OOB accesses in the Gigacage runway crash.

  • bmalloc/Gigacage.cpp:

(Gigacage::ensureGigacage):

3:21 PM Changeset in webkit [224554] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update TestExpectations for slow WPT encoding LayoutTests.

Unreviewed test gardening.

Mark some of the tests as slow on Debug and skip those that time out even though they are already marked as slow.

3:06 PM Changeset in webkit [224553] by beidson@apple.com
  • 34 edits in trunk

Implement "UpdateWorkerState" and use it
https://bugs.webkit.org/show_bug.cgi?id=179318

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:

Source/WebCore:

No new tests (Existing tests and changes there-to).

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::allWorkers):
(WebCore::ServiceWorker::mutableAllWorkers):
(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::~ServiceWorker):
(WebCore::ServiceWorker::updateWorkerState):
(WebCore::ServiceWorker::setState): Deleted.

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::updateRegistrationState):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::~ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::updateStateFromServer):

  • workers/service/ServiceWorkerRegistrationData.cpp:

(WebCore::ServiceWorkerRegistrationData::isolatedCopy const):

  • workers/service/ServiceWorkerRegistrationData.h:

(WebCore::ServiceWorkerRegistrationData::encode const):
(WebCore::ServiceWorkerRegistrationData::decode):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::loggingString const):

  • workers/service/ServiceWorkerRegistrationKey.h:
  • workers/service/ServiceWorkerTypes.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::registerServiceWorkerThreadForInstall):
(WebCore::SWContextManager::registerServiceWorkerThreadForUpdate): Deleted.

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::updateRegistrationState):
(WebCore::SWClientConnection::updateWorkerState):

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

(WebCore::SWServer::updateWorker):

  • workers/service/server/SWServer.h:

(WebCore::SWServer::workerByID const):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::tryClearRegistration):

  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::updateRegistrationState):
(WebCore::SWServerRegistration::updateWorkerState):
(WebCore::SWServerRegistration::data const):

  • workers/service/server/SWServerRegistration.h:

(WebCore::SWServerRegistration::setActiveServiceWorkerIdentifier): Deleted.

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::state const):
(WebCore::SWServerWorker::setState):

Source/WebKit:

  • Scripts/webkit/messages.py:

(headers_for_type):

  • Shared/WebCoreArgumentCoders.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::updateWorkerStateInClient):
(WebKit::WebSWServerConnection::installServiceWorkerContext):
(WebKit::WebSWServerConnection::setContextConnection):
(WebKit::WebSWServerConnection::updateServiceWorkerContext): Deleted.

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::installServiceWorker):
(WebKit::WebSWContextManagerConnection::updateServiceWorker): Deleted.

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

Source/WTF:

  • wtf/ObjectIdentifier.h:

(WTF::ObjectIdentifier::loggingString const):

3:04 PM Changeset in webkit [224552] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Enable webkitpy EWS bubbles
https://bugs.webkit.org/show_bug.cgi?id=178539

Reviewed by Alexey Proskuryakov.

  • QueueStatusServer/config/queues.py: Added webkitpy EWS.
2:57 PM Changeset in webkit [224551] by Dewei Zhu
  • 3 edits in trunk/Websites/perf.webkit.org

Add platform argument for syncing script.
https://bugs.webkit.org/show_bug.cgi?id=179162

Reviewed by Ryosuke Niwa.

Syncing script should pass platform name to buildbot if platform argument is specified in configuration.

  • server-tests/tools-sync-buildbot-integration-tests.js:

(return.createTriggerable.configWithPlatformName.then): Added unit test for platform argument.

  • tools/js/buildbot-syncer.js:

(BuildbotSyncer): Add '_platformPropertyName' property.
(BuildbotSyncer.prototype.scheduleRequest): Add '_platformPropertyName' to build property if specified.
(BuildbotSyncer._loadConfig): Read '_plaformPropertyName' from config.

2:52 PM Changeset in webkit [224550] by mark.lam@apple.com
  • 12 edits in trunk/Source/JavaScriptCore

Introduce a default RegisterSet constructor so that we can use { } notation.
https://bugs.webkit.org/show_bug.cgi?id=179389

Reviewed by Saam Barati.

I also replaced uses of "RegisterSet()" with "{ }" where the use of "RegisterSet()"
does not add any code documentation value.

  • b3/air/AirAllocateRegistersAndStackByLinearScan.cpp:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::setRegsInPriorityOrder):

  • b3/air/AirPrintSpecial.cpp:

(JSC::B3::Air::PrintSpecial::extraEarlyClobberedRegs):
(JSC::B3::Air::PrintSpecial::extraClobberedRegs):

  • b3/air/testair.cpp:
  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
(JSC::AccessGenerationState::restoreLiveRegistersFromStackForCall):

  • dfg/DFGJITCode.cpp:

(JSC::DFG::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • jit/JITCode.cpp:

(JSC::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::reservedHardwareRegisters):
(JSC::RegisterSet::runtimeRegisters):
(JSC::RegisterSet::macroScratchRegisters):

  • jit/RegisterSet.h:

(JSC::RegisterSet::RegisterSet):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitTierUpCheck):

2:38 PM Changeset in webkit [224549] by don.olmstead@sony.com
  • 7 edits in trunk/Tools

Add a WinCairo EWS queue
https://bugs.webkit.org/show_bug.cgi?id=179390

Reviewed by Lucas Forschler.

  • QueueStatusServer/config/queues.py:
  • QueueStatusServer/model/queues.py:
  • Scripts/webkitpy/common/config/ews.json:
  • Scripts/webkitpy/common/config/ports.py:
  • Scripts/webkitpy/common/config/ports_unittest.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:
2:33 PM Changeset in webkit [224548] by aakash_jain@apple.com
  • 6 edits in trunk/Tools

fix check-webkit-style errors in webkitpy about not having two spaces before inline comment
https://bugs.webkit.org/show_bug.cgi?id=171506

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SCMTest._shared_test_reverse_diff): Added two spaces before inline comment.
(test_create_patch_is_full_patch): Ditto.

  • Scripts/webkitpy/common/thread/messagepump.py:

(MessagePump): Ditto.

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

(Lighttpd._prepare_config): Ditto.

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

(OrderOfIncludesTest.test_check_preprocessor_in_include_section): Ditto.

2:30 PM Changeset in webkit [224547] by aakash_jain@apple.com
  • 10 edits
    1 copy
    2 moves in trunk/Tools

Add support for webkitpy tests EWS
https://bugs.webkit.org/show_bug.cgi?id=178480

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/common/config/ews.json: Added webkitpy EWS.
  • Scripts/webkitpy/common/net/generictestresults.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults.py.
  • Scripts/webkitpy/common/net/generictestresults_unittest.py: Renamed from Scripts/webkitpy/common/net/bindingstestresults_unittest.py.
  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTask._test_patch): Do not retry webkitpy test since they are not flaky.

  • Scripts/webkitpy/tool/bot/bindingstestresultsreader.py: Updated import for BindingsTestResult.
  • Scripts/webkitpy/tool/bot/retrylogic_unittest.py: Ditto.
  • Scripts/webkitpy/tool/bot/webkitpytestresultsreader.py: Copied from Scripts/webkitpy/tool/bot/bindingstestresultsreader.py.
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:

(AbstractEarlyWarningSystem.begin_work_queue): Added webkitpy test result reader.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py: Updated unit-tests.
  • Scripts/webkitpy/tool/steps/checkpatchrelevance.py: Run webkitpy EWS only for relevant changes.
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.run): Run webkitpy tests when --group=webkitpy is passed.
(RunTests._run_webkitpy_tests): Method to invoke webkitpy tests.

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(test_runtests_webkitpy): Added unit-test.

1:36 PM Changeset in webkit [224546] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

[LayoutState cleanup] Remove explicit LayoutStateMaintainer::pop calls.
https://bugs.webkit.org/show_bug.cgi?id=179380
<rdar://problem/35392161>

Reviewed by Antti Koivisto.

Besides the pagination related explicit pops (FIXME), all LayoutStateMaintainer pops are
now in LayoutStateMaintainer's d'tor.

Covered by existing tests.

  • rendering/LayoutState.cpp:

(WebCore::LayoutStateMaintainer::~LayoutStateMaintainer):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::simplifiedLayout):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layout):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::layout):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::layoutShadowControls):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::layout):

  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):

1:19 PM Changeset in webkit [224545] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

Add SPI function pointers qualifiers for CPU(ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=179383

Reviewed by Mark Lam.

For ARM64E, use the appropriate SPI qualifiers for helper function pointers.

  • wtf/BlockPtr.h:

(WTF::BlockPtr<R):

12:52 PM Changeset in webkit [224544] by Ryan Haddad
  • 21 edits in trunk

Unreviewed, rolling out r224512 and r224521.
https://bugs.webkit.org/show_bug.cgi?id=179388

An API test added with this change is failing an assertion on
the bots. (Requested by ryanhaddad on #webkit).

Reverted changesets:

"[Attachment Support] Implement delegate hooks for attachment
element insertion and removal"
https://bugs.webkit.org/show_bug.cgi?id=179016
https://trac.webkit.org/changeset/224512

"Remove stray logging from a newly added API test"
https://trac.webkit.org/changeset/224521

Patch by Commit Queue <commit-queue@webkit.org> on 2017-11-07

12:17 PM Changeset in webkit [224543] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

<video> does not respect pointer-events
https://bugs.webkit.org/show_bug.cgi?id=179378
<rdar://problem/34687668>

Patch by Antoine Quint <Antoine Quint> on 2017-11-07
Reviewed by Simon Fraser.

Source/WebCore:

We now honor the "pointer-events" property value set on the <video> element by setting it to "inherit"
on the media controls shadow root container.

Test: media/modern-media-controls/css/pointer-events-none.html

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):

LayoutTests:

Add a new test that checks that settings "pointer-events: none" on the <video> element
correctly reflects that same value on the media controls shadow root container.

  • media/modern-media-controls/css/pointer-events-none-expected.txt: Added.
  • media/modern-media-controls/css/pointer-events-none.html: Added.
  • platform/ios/TestExpectations:
12:11 PM Changeset in webkit [224542] by Chris Dumez
  • 30 edits
    3 adds in trunk

[Service Workers] Add support for "install" event
https://bugs.webkit.org/show_bug.cgi?id=179338

Reviewed by Youenn Fablet.

Source/WebCore:

Add support for "install" event as per:

For now, install always succeeds as our support for ExtendableEvent.waitUntil() is
still incomplete.

Test: http/tests/workers/service/basic-install-event.html

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::firePostInstallEvents):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::fireInstallEvent):

  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::fireInstallEvent):

  • workers/service/context/ServiceWorkerThread.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::firePostInstallEvents):

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

(WebCore::SWServer::Connection::didFinishInstall):
(WebCore::SWServer::didFinishInstall):
(WebCore::SWServer::fireInstallEvent):

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

(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):
(WebCore::SWServerJobQueue::didFinishInstall):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::firePostInstallEvents):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::firePostInstallEvents):
(WebKit::WebSWServerConnection::fireInstallEvent):

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

(WebKit::StorageProcess::didFinishServiceWorkerInstall):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::fireInstallEvent):
(WebKit::WebSWContextManagerConnection::didFinishInstall):

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

LayoutTests:

Add layout test coverage.

  • http/tests/workers/service/basic-install-event-expected.txt: Added.
  • http/tests/workers/service/basic-install-event.html: Added.
  • http/tests/workers/service/resources/basic-install-event-worker.js: Added.
  • http/tests/workers/service/resources/sw-test-pre.js:

(waitForState):

12:02 PM Changeset in webkit [224541] by Ryan Haddad
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r224498.

The LayoutTest for this change is flaky and affecting EWS
results.

Reverted changeset:

"Add tests to ensure that <source> tags are only preloaded
when the type"
https://bugs.webkit.org/show_bug.cgi?id=179231
https://trac.webkit.org/changeset/224498

12:01 PM Changeset in webkit [224540] by Joseph Pecoraro
  • 2 edits in trunk/Source/WebCore

Web Inspector: Add some fast returns in cases where we only call through to a NetworkAgent
https://bugs.webkit.org/show_bug.cgi?id=179359

Reviewed by Devin Rousso.

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::willSendRequest):
(WebCore::InspectorInstrumentation::willSendRequestOfType):
(WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCache):
(WebCore::InspectorInstrumentation::didReceiveThreadableLoaderResponse):
(WebCore::InspectorInstrumentation::didReceiveData):
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
(WebCore::InspectorInstrumentation::willLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::didLoadXHRSynchronously):
(WebCore::InspectorInstrumentation::scriptImported):
(WebCore::InspectorInstrumentation::didReceiveScriptResponse):
Fast return if no frontend in cases that only call into NetworkAgent
because the NetworkAgent is only available if there is a frontend.

11:33 AM Changeset in webkit [224539] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

AccessCase::generateImpl() should exclude the result register when restoring registers after a call.
https://bugs.webkit.org/show_bug.cgi?id=179355
<rdar://problem/35263053>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-179355.js: Added.

Source/JavaScriptCore:

In the Transition case in AccessCase::generateImpl(), we were restoring registers
using restoreLiveRegistersFromStackForCall() without excluding the scratchGPR
where we previously stashed the reallocated butterfly. If the generated code is
under heavy register pressure, scratchGPR could have been from the set of preserved
registers, and hence, would be restored by restoreLiveRegistersFromStackForCall().
As a result, the restoration would trash the butterfly result we stored there.
This patch fixes the issue by excluding the scratchGPR in the restoration.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

11:29 AM Changeset in webkit [224538] by Chris Dumez
  • 2 edits in trunk/LayoutTests

LayoutTest http/tests/security/cross-frame-access-put.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=179195

Reviewed by Ryosuke Niwa.

Fix flaky test by calling the testRunner functions as early as possible, not in
the onload event handler.

  • http/tests/security/cross-frame-access-put.html:
11:21 AM Changeset in webkit [224537] by fpizlo@apple.com
  • 238 edits
    49 adds in trunk/Source

bmalloc should support strictly type-segregated isolated heaps
https://bugs.webkit.org/show_bug.cgi?id=178108

Reviewed by Saam Barati, Simon Fraser, and Ryosuke Niwa.
Source/bmalloc:


This introduces a new allocation API in bmalloc called IsoHeap. An IsoHeap is templatized by
type and created in static storage. When unused, it takes only a few words. When you do use
it, each IsoHeap gets a bag of virtual pages unique to it. This prevents use-after-free bugs
in one IsoHeap from affecting any other memory. At worst, two pointers of the same type will
point to the same object even though they should not have.

IsoHeaps allocate using a first-fit discipline that combines ideas from bmalloc and Riptide
(the JSC GC):

Like Riptide, it uses a bump'n'pop allocator. What Riptide calls blocks, IsoHeaps calls
pages. Pages are collected into directories. Directories track pages using bitvectors, so
that it's easy to quickly find a completely free page or one that has at least one free
object. I think that the bump'n'pop allocator is as fast as the bmalloc Immix-style (page and
line) allocator, but is better at allocating in holes. It's guaranteed to follow a first-fit
discipline. However, the real reason why I wrote it that was is that this is what I'm more
familiar with. This is a part of the design I want to revisit (bug 179278).

Like bmalloc, it uses a deallocation log. This means that the internal IsoHeap data
structures can be locked with a coarse-grained lock, since the deallocator only grabs it when
flushing the log. Similarly, the allocator only grabs it when refilling the bump'n'pop
FreeList.

This adds a unit test for IsoHeaps. In this change, IsoHeaps are adopted only by WebCore's
RenderObject.

Note that despite the use of GC concepts, it's not a goal to make this code directly sharable
with GC. The GC will probably have to do isolated heaps its own way (likely a special
Subspace or something like that).

  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/Algorithm.h:

(bmalloc::findBitInWord):

  • bmalloc/AllIsoHeaps.cpp: Added.

(bmalloc::AllIsoHeaps::AllIsoHeaps):
(bmalloc::AllIsoHeaps::add):
(bmalloc::AllIsoHeaps::head):

  • bmalloc/AllIsoHeaps.h: Added.
  • bmalloc/AllIsoHeapsInlines.h: Added.

(bmalloc::AllIsoHeaps::forEach):

  • bmalloc/BMalloced.h: Added.
  • bmalloc/Bits.h: Added.

(bmalloc::bitsArrayLength):
(bmalloc::BitsWordView::BitsWordView):
(bmalloc::BitsWordView::numBits const):
(bmalloc::BitsWordView::word const):
(bmalloc::BitsWordOwner::BitsWordOwner):
(bmalloc::BitsWordOwner::view const):
(bmalloc::BitsWordOwner::operator=):
(bmalloc::BitsWordOwner::setAll):
(bmalloc::BitsWordOwner::clearAll):
(bmalloc::BitsWordOwner::set):
(bmalloc::BitsWordOwner::numBits const):
(bmalloc::BitsWordOwner::arrayLength const):
(bmalloc::BitsWordOwner::word const):
(bmalloc::BitsWordOwner::word):
(bmalloc::BitsWordOwner::words const):
(bmalloc::BitsWordOwner::words):
(bmalloc::BitsAndWords::BitsAndWords):
(bmalloc::BitsAndWords::view const):
(bmalloc::BitsAndWords::numBits const):
(bmalloc::BitsAndWords::word const):
(bmalloc::BitsOrWords::BitsOrWords):
(bmalloc::BitsOrWords::view const):
(bmalloc::BitsOrWords::numBits const):
(bmalloc::BitsOrWords::word const):
(bmalloc::BitsNotWords::BitsNotWords):
(bmalloc::BitsNotWords::view const):
(bmalloc::BitsNotWords::numBits const):
(bmalloc::BitsNotWords::word const):
(bmalloc::BitsImpl::BitsImpl):
(bmalloc::BitsImpl::numBits const):
(bmalloc::BitsImpl::size const):
(bmalloc::BitsImpl::arrayLength const):
(bmalloc::BitsImpl::operator== const):
(bmalloc::BitsImpl::operator!= const):
(bmalloc::BitsImpl::at const):
(bmalloc::BitsImpl::operator[] const):
(bmalloc::BitsImpl::isEmpty const):
(bmalloc::BitsImpl::operator& const):
(bmalloc::BitsImpl::operator| const):
(bmalloc::BitsImpl::operator~ const):
(bmalloc::BitsImpl::forEachSetBit const):
(bmalloc::BitsImpl::forEachClearBit const):
(bmalloc::BitsImpl::forEachBit const):
(bmalloc::BitsImpl::findBit const):
(bmalloc::BitsImpl::findSetBit const):
(bmalloc::BitsImpl::findClearBit const):
(bmalloc::BitsImpl::wordView const):
(bmalloc::BitsImpl::atImpl const):
(bmalloc::Bits::Bits):
(bmalloc::Bits::operator=):
(bmalloc::Bits::resize):
(bmalloc::Bits::setAll):
(bmalloc::Bits::clearAll):
(bmalloc::Bits::setAndCheck):
(bmalloc::Bits::operator|=):
(bmalloc::Bits::operator&=):
(bmalloc::Bits::at const):
(bmalloc::Bits::operator[] const):
(bmalloc::Bits::BitReference::BitReference):
(bmalloc::Bits::BitReference::operator bool const):
(bmalloc::Bits::BitReference::operator=):
(bmalloc::Bits::at):
(bmalloc::Bits::operator[]):

  • bmalloc/CryptoRandom.cpp: Replaced with Source/bmalloc/bmalloc/CryptoRandom.cpp.

(bmalloc::cryptoRandom):

  • bmalloc/CryptoRandom.h: Replaced with Source/bmalloc/bmalloc/CryptoRandom.h.
  • bmalloc/DeferredDecommit.h: Added.
  • bmalloc/DeferredDecommitInlines.h: Added.

(bmalloc::DeferredDecommit::DeferredDecommit):

  • bmalloc/DeferredTrigger.h: Added.

(bmalloc::DeferredTrigger::DeferredTrigger):

  • bmalloc/DeferredTriggerInlines.h: Added.

(bmalloc::DeferredTrigger<trigger>::didBecome):
(bmalloc::DeferredTrigger<trigger>::handleDeferral):

  • bmalloc/EligibilityResult.h: Added.

(bmalloc::EligibilityResult::EligibilityResult):

  • bmalloc/EligibilityResultInlines.h: Added.

(bmalloc::EligibilityResult<Config>::EligibilityResult):

  • bmalloc/FixedVector.h:
  • bmalloc/FreeList.cpp: Added.

(bmalloc::FreeList::FreeList):
(bmalloc::FreeList::~FreeList):
(bmalloc::FreeList::clear):
(bmalloc::FreeList::initializeList):
(bmalloc::FreeList::initializeBump):
(bmalloc::FreeList::contains const):

  • bmalloc/FreeList.h: Added.

(bmalloc::FreeCell::scramble):
(bmalloc::FreeCell::descramble):
(bmalloc::FreeCell::setNext):
(bmalloc::FreeCell::next const):
(bmalloc::FreeList::allocationWillFail const):
(bmalloc::FreeList::allocationWillSucceed const):
(bmalloc::FreeList::originalSize const):
(bmalloc::FreeList::head const):

  • bmalloc/FreeListInlines.h: Added.

(bmalloc::FreeList::allocate):
(bmalloc::FreeList::forEach const):

  • bmalloc/IsoAllocator.h: Added.
  • bmalloc/IsoAllocatorInlines.h: Added.

(bmalloc::IsoAllocator<Config>::IsoAllocator):
(bmalloc::IsoAllocator<Config>::~IsoAllocator):
(bmalloc::IsoAllocator<Config>::allocate):
(bmalloc::IsoAllocator<Config>::allocateSlow):
(bmalloc::IsoAllocator<Config>::scavenge):

  • bmalloc/IsoConfig.h: Added.
  • bmalloc/IsoDeallocator.h: Added.
  • bmalloc/IsoDeallocatorInlines.h: Added.

(bmalloc::IsoDeallocator<Config>::IsoDeallocator):
(bmalloc::IsoDeallocator<Config>::~IsoDeallocator):
(bmalloc::IsoDeallocator<Config>::deallocate):
(bmalloc::IsoDeallocator<Config>::scavenge):

  • bmalloc/IsoDirectory.h: Added.

(bmalloc::IsoDirectoryBaseBase::IsoDirectoryBaseBase):
(bmalloc::IsoDirectoryBaseBase::~IsoDirectoryBaseBase):
(bmalloc::IsoDirectoryBase::heap):

  • bmalloc/IsoDirectoryInlines.h: Added.

(bmalloc::IsoDirectoryBase<Config>::IsoDirectoryBase):
(bmalloc::passedNumPages>::IsoDirectory):
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):
(bmalloc::passedNumPages>::didDecommit):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::forEachCommittedPage):

  • bmalloc/IsoDirectoryPage.h: Added.

(bmalloc::IsoDirectoryPage::index const):

  • bmalloc/IsoDirectoryPageInlines.h: Added.

(bmalloc::IsoDirectoryPage<Config>::IsoDirectoryPage):
(bmalloc::IsoDirectoryPage<Config>::pageFor):

  • bmalloc/IsoHeap.h: Added.

(bmalloc::api::IsoHeap::allocatorOffset):
(bmalloc::api::IsoHeap::setAllocatorOffset):
(bmalloc::api::IsoHeap::deallocatorOffset):
(bmalloc::api::IsoHeap::setDeallocatorOffset):

  • bmalloc/IsoHeapImpl.cpp: Added.

(bmalloc::IsoHeapImplBase::IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::~IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::scavengeNow):
(bmalloc::IsoHeapImplBase::finishScavenging):

  • bmalloc/IsoHeapImpl.h: Added.
  • bmalloc/IsoHeapImplInlines.h: Added.

(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):
(bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
(bmalloc::IsoHeapImpl<Config>::didBecomeEligible):
(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::allocatorOffset):
(bmalloc::IsoHeapImpl<Config>::deallocatorOffset):
(bmalloc::IsoHeapImpl<Config>::numLiveObjects):
(bmalloc::IsoHeapImpl<Config>::numCommittedPages):
(bmalloc::IsoHeapImpl<Config>::forEachDirectory):
(bmalloc::IsoHeapImpl<Config>::forEachCommittedPage):
(bmalloc::IsoHeapImpl<Config>::forEachLiveObject):

  • bmalloc/IsoHeapInlines.h: Added.

(bmalloc::api::IsoHeap<Type>::allocate):
(bmalloc::api::IsoHeap<Type>::tryAllocate):
(bmalloc::api::IsoHeap<Type>::deallocate):
(bmalloc::api::IsoHeap<Type>::scavenge):
(bmalloc::api::IsoHeap<Type>::isInitialized):
(bmalloc::api::IsoHeap<Type>::impl):

  • bmalloc/IsoPage.h: Added.

(bmalloc::IsoPage::index const):
(bmalloc::IsoPage::directory):
(bmalloc::IsoPage::isInUseForAllocation const):
(bmalloc::IsoPage::indexOfFirstObject):

  • bmalloc/IsoPageInlines.h: Added.

(bmalloc::IsoPage<Config>::tryCreate):
(bmalloc::IsoPage<Config>::IsoPage):
(bmalloc::IsoPage<Config>::free):
(bmalloc::IsoPage<Config>::startAllocating):
(bmalloc::IsoPage<Config>::stopAllocating):
(bmalloc::IsoPage<Config>::forEachLiveObject):

  • bmalloc/IsoPageTrigger.h: Added.
  • bmalloc/IsoTLS.cpp: Added.

(bmalloc::IsoTLS::scavenge):
(bmalloc::IsoTLS::IsoTLS):
(bmalloc::IsoTLS::ensureEntries):
(bmalloc::IsoTLS::destructor):
(bmalloc::IsoTLS::sizeForCapacity):
(bmalloc::IsoTLS::capacityForSize):
(bmalloc::IsoTLS::size):
(bmalloc::IsoTLS::forEachEntry):

  • bmalloc/IsoTLS.h: Added.
  • bmalloc/IsoTLSAllocatorEntry.h: Added.
  • bmalloc/IsoTLSAllocatorEntryInlines.h: Added.

(bmalloc::IsoTLSAllocatorEntry<Config>::IsoTLSAllocatorEntry):
(bmalloc::IsoTLSAllocatorEntry<Config>::~IsoTLSAllocatorEntry):
(bmalloc::IsoTLSAllocatorEntry<Config>::construct):

  • bmalloc/IsoTLSDeallocatorEntry.h: Added.
  • bmalloc/IsoTLSDeallocatorEntryInlines.h: Added.

(bmalloc::IsoTLSDeallocatorEntry<Config>::IsoTLSDeallocatorEntry):
(bmalloc::IsoTLSDeallocatorEntry<Config>::~IsoTLSDeallocatorEntry):
(bmalloc::IsoTLSDeallocatorEntry<Config>::construct):

  • bmalloc/IsoTLSEntry.cpp: Added.

(bmalloc::IsoTLSEntry::IsoTLSEntry):
(bmalloc::IsoTLSEntry::~IsoTLSEntry):

  • bmalloc/IsoTLSEntry.h: Added.

(bmalloc::IsoTLSEntry::offset const):
(bmalloc::IsoTLSEntry::alignment const):
(bmalloc::IsoTLSEntry::size const):
(bmalloc::IsoTLSEntry::extent const):

  • bmalloc/IsoTLSEntryInlines.h: Added.

(bmalloc::IsoTLSEntry::walkUpToInclusive):
(bmalloc::DefaultIsoTLSEntry<EntryType>::DefaultIsoTLSEntry):
(bmalloc::DefaultIsoTLSEntry<EntryType>::~DefaultIsoTLSEntry):
(bmalloc::DefaultIsoTLSEntry<EntryType>::move):
(bmalloc::DefaultIsoTLSEntry<EntryType>::destruct):
(bmalloc::DefaultIsoTLSEntry<EntryType>::scavenge):

  • bmalloc/IsoTLSInlines.h: Added.

(bmalloc::IsoTLS::allocate):
(bmalloc::IsoTLS::deallocate):
(bmalloc::IsoTLS::scavenge):
(bmalloc::IsoTLS::allocator):
(bmalloc::IsoTLS::deallocator):
(bmalloc::IsoTLS::get):
(bmalloc::IsoTLS::set):
(bmalloc::IsoTLS::ensureHeap):
(bmalloc::IsoTLS::ensureHeapAndEntries):

  • bmalloc/IsoTLSLayout.cpp: Added.

(bmalloc::IsoTLSLayout::IsoTLSLayout):
(bmalloc::IsoTLSLayout::add):

  • bmalloc/IsoTLSLayout.h: Added.

(bmalloc::IsoTLSLayout::head const):

  • bmalloc/PerHeapKind.h:
  • bmalloc/PerProcess.h:

(bmalloc::PerProcess<T>::getFastCase):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::scavenge):

  • bmalloc/Scavenger.h:
  • bmalloc/bmalloc.h:

(bmalloc::api::scavengeThisThread):

  • test: Added.
  • test/testbmalloc.cpp: Added.

(hiddenTruthBecauseNoReturnIsStupid):
(usage):
(assertEmptyPointerSet):
(assertHasObjects):
(assertHasOnlyObjects):
(assertClean):
(testIsoSimple):
(testIsoSimpleScavengeBeforeDealloc):
(testIsoFlipFlopFragmentedPages):
(testIsoFlipFlopFragmentedPagesScavengeInMiddle):
(BisoMalloced::BisoMalloced):
(testBisoMalloced):
(BisoMallocedInline::BisoMallocedInline):
(testBisoMallocedInline):
(run):
(main):

Source/WebCore:

No new tests because no new change in behavior. Though, the bmalloc change has a unit test.

Adopting IsoHeap means dropping in macros in both the .h and .cpp file of each class that we
opt in. It's not pretty, but it helps ensure speedy allocation since it means that we never
have to do any kind of switch or dynamic lookup to find the right allocator for a type.

This change is perf-neutral on MotionMark, PLT3, and membuster.

  • Sources.txt:
  • html/shadow/SliderThumbElement.cpp:
  • html/shadow/SliderThumbElement.h:
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:
  • html/shadow/mac/ImageControlsRootElementMac.cpp:
  • rendering/RenderAttachment.cpp:
  • rendering/RenderAttachment.h:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlock.h:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBlockFlow.h:
  • rendering/RenderBox.cpp:
  • rendering/RenderBox.h:
  • rendering/RenderBoxModelObject.cpp:
  • rendering/RenderBoxModelObject.h:
  • rendering/RenderButton.cpp:
  • rendering/RenderButton.h:
  • rendering/RenderCombineText.cpp:
  • rendering/RenderCombineText.h:
  • rendering/RenderCounter.cpp:
  • rendering/RenderCounter.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:
  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.cpp:
  • rendering/RenderDetailsMarker.h:
  • rendering/RenderElement.cpp:
  • rendering/RenderElement.h:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderFileUploadControl.cpp:
  • rendering/RenderFileUploadControl.h:
  • rendering/RenderFlexibleBox.cpp:
  • rendering/RenderFlexibleBox.h:
  • rendering/RenderFragmentContainer.cpp:
  • rendering/RenderFragmentContainer.h:
  • rendering/RenderFragmentContainerSet.cpp:
  • rendering/RenderFragmentContainerSet.h:
  • rendering/RenderFragmentedFlow.cpp:
  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderFrameBase.cpp:
  • rendering/RenderFrameBase.h:
  • rendering/RenderFrameSet.cpp:
  • rendering/RenderFrameSet.h:
  • rendering/RenderFullScreen.cpp:
  • rendering/RenderFullScreen.h:
  • rendering/RenderGrid.cpp:
  • rendering/RenderGrid.h:
  • rendering/RenderHTMLCanvas.cpp:
  • rendering/RenderHTMLCanvas.h:
  • rendering/RenderImage.cpp:
  • rendering/RenderImage.h:
  • rendering/RenderImageResourceStyleImage.cpp:
  • rendering/RenderImageResourceStyleImage.h:
  • rendering/RenderInline.cpp:
  • rendering/RenderInline.h:
  • rendering/RenderLayerModelObject.cpp:
  • rendering/RenderLayerModelObject.h:
  • rendering/RenderLineBreak.cpp:
  • rendering/RenderLineBreak.h:
  • rendering/RenderListBox.cpp:
  • rendering/RenderListBox.h:
  • rendering/RenderListItem.cpp:
  • rendering/RenderListItem.h:
  • rendering/RenderListMarker.cpp:
  • rendering/RenderListMarker.h:
  • rendering/RenderMedia.cpp:
  • rendering/RenderMedia.h:
  • rendering/RenderMediaControlElements.cpp:
  • rendering/RenderMediaControlElements.h:
  • rendering/RenderMenuList.cpp:
  • rendering/RenderMenuList.h:
  • rendering/RenderMeter.cpp:
  • rendering/RenderMeter.h:
  • rendering/RenderMultiColumnFlow.cpp:
  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderMultiColumnSet.cpp:
  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:
  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderObject.cpp:
  • rendering/RenderObject.h:
  • rendering/RenderProgress.cpp:
  • rendering/RenderProgress.h:
  • rendering/RenderQuote.cpp:
  • rendering/RenderQuote.h:
  • rendering/RenderReplaced.cpp:
  • rendering/RenderReplaced.h:
  • rendering/RenderReplica.cpp:
  • rendering/RenderReplica.h:
  • rendering/RenderRuby.cpp:
  • rendering/RenderRuby.h:
  • rendering/RenderRubyBase.cpp:
  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.cpp:
  • rendering/RenderRubyRun.h:
  • rendering/RenderRubyText.cpp:
  • rendering/RenderRubyText.h:
  • rendering/RenderScrollbarPart.cpp:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderSearchField.cpp:
  • rendering/RenderSearchField.h:
  • rendering/RenderSlider.cpp:
  • rendering/RenderSlider.h:
  • rendering/RenderTable.cpp:
  • rendering/RenderTable.h:
  • rendering/RenderTableCaption.cpp:
  • rendering/RenderTableCaption.h:
  • rendering/RenderTableCell.cpp:
  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.cpp:
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp:
  • rendering/RenderTableSection.h:
  • rendering/RenderText.cpp:
  • rendering/RenderText.h:
  • rendering/RenderTextControl.cpp:
  • rendering/RenderTextControl.h:
  • rendering/RenderTextControlMultiLine.cpp:
  • rendering/RenderTextControlMultiLine.h:
  • rendering/RenderTextControlSingleLine.cpp:
  • rendering/RenderTextControlSingleLine.h:
  • rendering/RenderTextFragment.cpp:
  • rendering/RenderTextFragment.h:
  • rendering/RenderVTTCue.cpp:
  • rendering/RenderVTTCue.h:
  • rendering/RenderVideo.cpp:
  • rendering/RenderVideo.h:
  • rendering/RenderView.cpp:
  • rendering/RenderView.h:
  • rendering/RenderWidget.cpp:
  • rendering/RenderWidget.h:
  • rendering/mathml/RenderMathMLBlock.cpp:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.cpp:
  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFencedOperator.cpp:
  • rendering/mathml/RenderMathMLFencedOperator.h:
  • rendering/mathml/RenderMathMLFraction.cpp:
  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.cpp:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.cpp:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.cpp:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLPadded.cpp:
  • rendering/mathml/RenderMathMLPadded.h:
  • rendering/mathml/RenderMathMLRoot.cpp:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.cpp:
  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.cpp:
  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.cpp:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.cpp:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:
  • rendering/mathml/RenderMathMLUnderOver.h:
  • rendering/svg/RenderSVGBlock.cpp:
  • rendering/svg/RenderSVGBlock.h:
  • rendering/svg/RenderSVGContainer.cpp:
  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGEllipse.cpp:
  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGForeignObject.cpp:
  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGGradientStop.cpp:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGHiddenContainer.cpp:
  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGImage.cpp:
  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGInline.cpp:
  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGInlineText.cpp:
  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/RenderSVGModelObject.cpp:
  • rendering/svg/RenderSVGModelObject.h:
  • rendering/svg/RenderSVGPath.cpp:
  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.cpp:
  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:
  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceContainer.cpp:
  • rendering/svg/RenderSVGResourceContainer.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:
  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
  • rendering/svg/RenderSVGResourceFilterPrimitive.h:
  • rendering/svg/RenderSVGResourceGradient.cpp:
  • rendering/svg/RenderSVGResourceGradient.h:
  • rendering/svg/RenderSVGResourceLinearGradient.cpp:
  • rendering/svg/RenderSVGResourceLinearGradient.h:
  • rendering/svg/RenderSVGResourceMarker.cpp:
  • rendering/svg/RenderSVGResourceMarker.h:
  • rendering/svg/RenderSVGResourceMasker.cpp:
  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp:
  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/RenderSVGResourceRadialGradient.cpp:
  • rendering/svg/RenderSVGResourceRadialGradient.h:
  • rendering/svg/RenderSVGRoot.cpp:
  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.cpp:
  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTSpan.cpp: Added.
  • rendering/svg/RenderSVGTSpan.h:
  • rendering/svg/RenderSVGText.cpp:
  • rendering/svg/RenderSVGText.h:
  • rendering/svg/RenderSVGTextPath.cpp:
  • rendering/svg/RenderSVGTextPath.h:
  • rendering/svg/RenderSVGTransformableContainer.cpp:
  • rendering/svg/RenderSVGTransformableContainer.h:
  • rendering/svg/RenderSVGViewportContainer.cpp:
  • rendering/svg/RenderSVGViewportContainer.h:

Source/WTF:


This just adds an easy way of using the bmalloc IsoHeap API in WebKit. If bmalloc is not
enabled, these macros will just make the object FastMalloced.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/FastTLS.h:
  • wtf/IsoMalloc.h: Added.
  • wtf/IsoMallocInlines.h: Added.
10:29 AM Changeset in webkit [224536] by mjs@apple.com
  • 21 edits
    288 adds in trunk/LayoutTests

Update WPT encoding test suite to the latest version.
https://bugs.webkit.org/show_bug.cgi?id=179312

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • resources/resource-files.json: Mark HTML files that aren't tests

but which are not in resources/ directories.

The remaining changes are updates from upstream.

  • web-platform-tests/encoding/OWNERS:
  • web-platform-tests/encoding/api-invalid-label-expected.txt:
  • web-platform-tests/encoding/api-invalid-label.html:
  • web-platform-tests/encoding/api-replacement-encodings-expected.txt:
  • web-platform-tests/encoding/api-replacement-encodings.html:
  • web-platform-tests/encoding/eof-shift_jis-ref.html: Added.
  • web-platform-tests/encoding/eof-shift_jis.html: Added.
  • web-platform-tests/encoding/eof-utf-8-one-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-one.html: Added.
  • web-platform-tests/encoding/eof-utf-8-three-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-three.html: Added.
  • web-platform-tests/encoding/eof-utf-8-two-ref.html: Added.
  • web-platform-tests/encoding/eof-utf-8-two.html: Added.
  • web-platform-tests/encoding/idlharness.html:
  • web-platform-tests/encoding/iso-2022-jp-decoder-expected.txt:
  • web-platform-tests/encoding/iso-2022-jp-decoder.html:
  • web-platform-tests/encoding/legacy-mb-japanese: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/jis0208_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-csshiftjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms932.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-ms_kanji.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-shift-jis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-windows-31j.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form-x-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-csshiftjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-csshiftjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms932.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms932.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms_kanji.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-ms_kanji.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-shift-jis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-shift-jis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-windows-31j.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-windows-31j.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-x-sjis.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars-x-sjis.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-japanese/shift_jis/sjis_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-cseuckr.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-csksc56011987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-iso-ir-149.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-korean.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ks_c_5601-1989.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-ksc_5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form-windows-949.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-cseuckr.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-cseuckr.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-csksc56011987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-csksc56011987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-iso-ir-149.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-iso-ir-149.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-korean.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-korean.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1987.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1987.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1989.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ks_c_5601-1989.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc_5601.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-ksc_5601.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-windows-949.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars-windows-949.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-korean/euc-kr/euckr_index.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-extra.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decode.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-decoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-enc-ascii.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-big5-hkscs.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-cn-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-csbig5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBa.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-extBb.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-errors-pua.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form-x-x-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-form.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-han.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-hangul.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-errors-misc.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href-expected.txt: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encode-href.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5-encoder.js: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-big5-hkscs.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-big5-hkscs.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-cn-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-cn-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-csbig5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-csbig5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-x-x-big5.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars-x-x-big5.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars_extra.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_chars_extra.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_errors.html: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_errors.html.headers: Added.
  • web-platform-tests/encoding/legacy-mb-tchinese/big5/big5_index.js: Added.
  • web-platform-tests/encoding/reftest.list: Added.
  • web-platform-tests/encoding/replacement-encodings-expected.txt: Added.
  • web-platform-tests/encoding/replacement-encodings.html: Added.
  • web-platform-tests/encoding/resources/decoding-helpers.js: Added.
  • web-platform-tests/encoding/resources/encodings.js:
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-bom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-big-endian-nobom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-bom.xml: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.html: Added.
  • web-platform-tests/encoding/resources/utf-32-little-endian-nobom.xml: Added.
  • web-platform-tests/encoding/single-byte-decoder-expected.txt:
  • web-platform-tests/encoding/single-byte-decoder.html:
  • web-platform-tests/encoding/textdecoder-copy.any.js: Added.
  • web-platform-tests/encoding/textdecoder-fatal-single-byte-expected.txt:
  • web-platform-tests/encoding/textdecoder-fatal-single-byte.html:
  • web-platform-tests/encoding/textdecoder-labels-expected.txt:
  • web-platform-tests/encoding/textdecoder-labels.html:
  • web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt:
  • web-platform-tests/encoding/textencoder-constructor-non-utf.html:
  • web-platform-tests/encoding/unsupported-encodings-expected.txt: Added.
  • web-platform-tests/encoding/unsupported-encodings.html: Added.
  • web-platform-tests/encoding/utf-32-expected.txt: Added.
  • web-platform-tests/encoding/utf-32.html: Added.

LayoutTests:

globally or on debug builds) based on what times out in EWS.

10:10 AM Changeset in webkit [224535] by Antti Koivisto
  • 6 edits
    3 adds in trunk

Dynamic media queries don't update in shadow tree stylesheets
https://bugs.webkit.org/show_bug.cgi?id=179324

Reviewed by Ryosuke Niwa.

Source/WebCore:

Viewport and accessibility queries should work dynamically also in shadow trees.

Test: fast/shadow-dom/media-query-in-shadow-style.html

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::updateStyleForLayout):

  • page/Page.cpp:

(WebCore::Page::accessibilitySettingsDidChange):

Evaluate media query list (JS API) unconditionally as it is independent from style queries.
Remove some logging.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::evaluateMediaQueriesForViewportChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange):

Factor into functions in style scope.

(WebCore::Style::Scope::evaluateMediaQueries):

Evaluate queries in all shadow trees too.

  • style/StyleScope.h:

LayoutTests:

  • fast/shadow-dom/media-query-in-shadow-style-expected.html: Added.
  • fast/shadow-dom/media-query-in-shadow-style.html: Added.
  • fast/shadow-dom/resources/media-query-in-shadow-style-frame.html: Added.
9:41 AM Changeset in webkit [224534] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

Release-assert NoEventDispatchAssertion in canExecute, updateLayout, and updateStyle
https://bugs.webkit.org/show_bug.cgi?id=179281
<rdar://problem/35008993>

Reviewed by Antti Koivisto.

Surgically enable NoEventDispatchAssertion::InMainThread::isEventAllowed() in release builds to prevent
against insecure execution of author scripts.

No new tests since there should be no behavioral changes (other than preventing potential security bugs
from being exploited).

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::canExecuteScripts): Use the release assert here. This function is consulted
whenever author scripts are executed in event handler, script element, etc... in the main thread so
enabling the release assert here should basically prevent all unwanted script executions protected by
NoEventDispatchAssertion.

  • dom/ContainerNode.cpp:

(NoEventDispatchAssertion::s_count): Now always compiled.

  • dom/Document.cpp:

(WebCore::Document::updateStyleIfNeeded): Use the release assert here. This assertion would prevent
unwanted style updating. This part of the change can be reverted if it turns out to be too crashy since
just updating the style would not directly introduce a security vulnerability.
(WebCore::Document::updateLayout): Ditto for updating the layout.

  • dom/NoEventDispatchAssertion.h:

(WebCore::NoEventDispatchAssertion::NoEventDispatchAssertion): Enabled this in release builds.
(WebCore::NoEventDispatchAssertion::~NoEventDispatchAssertion): Ditto.
(WebCore::NoEventDispatchAssertion::isEventAllowedInMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::InMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::~InMainThread): Ditto.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventDispatchAllowedInSubtree): We still don't enable
this assertion because this check requires O(n) operation. Added a comment to that end.
(WebCore::NoEventDispatchAssertion::InMainThread::isEventAllowed): Enabled this in release builds.
(WebCore::NoEventDispatchAssertion::DisableAssertionsInScope): Ditto.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::executeClassicScript): Use the release assert here. This is the function used by
the HTML parser to run scripts via HTMLScriptRunner::executePendingScriptAndDispatchEvent. Having a release
assertion here should prevent the rest of the unwanted script executions in the HTML parser not caught by
canExecuteScripts.

8:28 AM Changeset in webkit [224533] by Adrian Perez de Castro
  • 3 edits in trunk/Source/WebCore

[WPE][GTK] Building with ENABLE_VIDEO=OFF fails to find AudioTrack.idl
https://bugs.webkit.org/show_bug.cgi?id=179372

Reviewed by Michael Catanzaro.

Arrange MSE extensions defined in {Audio,Text,Video}TrackMediaSource.idl to be
only used for building when both ENABLE_VIDEO_TRACK and ENABLE_MEDIA_SOURCE are
enabled.

No new tests needed.

  • CMakeLists.txt: Add conditional for ENABLE_MEDIA_SOURCE and move the addition

of the IDL files to the build there.

  • Sources.txt: Conversely, source unification should skip sources derived from

the IDL files when ENABLE_MEDIA_SOURCE disabled, so add guards as well.

8:25 AM Changeset in webkit [224532] by commit-queue@webkit.org
  • 11 edits in trunk

Support the case of fetch events that are not responded
https://bugs.webkit.org/show_bug.cgi?id=179336

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-07
Reviewed by Chris Dumez.

Source/WebCore:

Covered by updated test.

Implementing https://w3c.github.io/ServiceWorker/#on-fetch-request-algorithm step 19.
Making FetchEvent cancellable.

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

(WebCore::ServiceWorkerFetch::dispatchFetchEvent):

  • workers/service/context/ServiceWorkerFetch.h:

Source/WebKit:

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didNotHandle):

  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:

LayoutTests:

  • http/tests/workers/service/basic-fetch.https-expected.txt:
  • http/tests/workers/service/resources/basic-fetch-worker.js:

(event.event.request.url.indexOf):

  • http/tests/workers/service/resources/basic-fetch.js:

(async.test):

6:59 AM Changeset in webkit [224531] by Michael Catanzaro
  • 2 edits in trunk

[WPE] Turn on ENABLE_MEDIA_SOURCE
https://bugs.webkit.org/show_bug.cgi?id=179093

Reviewed by Carlos Alberto Lopez Perez.

  • Source/cmake/OptionsWPE.cmake:
1:32 AM Changeset in webkit [224530] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: Create inspector agents lazily
https://bugs.webkit.org/show_bug.cgi?id=179360

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-07
Reviewed by Sam Weinig.

  • inspector/CommandLineAPIHost.h:

Modernize style.

  • inspector/InspectorController.h:
  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::pageAgentContext):
(WebCore::InspectorController::createLazyAgents):
(WebCore::InspectorController::connectFrontend):
Move many of the agent construction to happen lazily. These
agent's aren't needed until an inspector connects, so defer
creation until an inspector connects.

Nov 6, 2017:

8:09 PM Changeset in webkit [224529] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[LayoutState cleanup] Move m_layoutState from RenderView to LayoutContext
https://bugs.webkit.org/show_bug.cgi?id=179282
<rdar://problem/35348653>

Reviewed by Antti Koivisto.

LayoutContext now owns the top level LayoutState object.
It makes RenderView behave like any other renderer by constructing a LayoutStateMaintainer on the stack.
This is mostly moving code from RenderView.h/.cpp to LayoutContext.h/.cpp and fixing the callsites.
(While view().frameView().layoutContext().layoutState() is a bit lengthy, it's
temporary only, since LayoutState is planned to be an argument of the layout() method.

Covered by existing test.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::LayoutContext::popLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::layoutState const):
(WebCore::LayoutContext::layoutStateEnabled const):
(WebCore::LayoutContext::disableLayoutState):
(WebCore::LayoutContext::enableLayoutState):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::setLogicalLeftForChild):
(WebCore::RenderBlock::setLogicalTopForChild):
(WebCore::RenderBlock::layoutPositionedObject):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBlock::adjustLogicalLeftOffsetForLine const):
(WebCore::RenderBlock::adjustLogicalRightOffsetForLine const):
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChildren):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMarginsWithChildInfo):
(WebCore::RenderBlockFlow::estimateLogicalTopPosition):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::hasNextPage const):
(WebCore::RenderBlockFlow::pageLogicalTopForOffset const):
(WebCore::RenderBlockFlow::pageLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::pageRemainingLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::outlineBoundsForRepaint const):
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::clippedOverflowRectForRepaint const):
(WebCore::RenderBox::computeRectForRepaint const):
(WebCore::RenderBox::offsetFromLogicalTopOfFirstPage const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::layoutChildIfNeededApplyingDelta):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::takeChildInternal):

  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::repaintRectangleInFragments const):

  • rendering/RenderGrid.cpp:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::layout):
(WebCore::RenderTextTrackContainerElement::layout):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintRectangle const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRectForRepaint const):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRectForRepaint const):
(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::setLogicalPositionForCell const):

  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):
(WebCore::RenderView::layoutContent): Deleted.
(WebCore::RenderView::checkLayoutState): Deleted.
(WebCore::RenderView::initializeLayoutState): Deleted.
(WebCore::RenderView::pushLayoutState): Deleted.
(WebCore::RenderView::pushLayoutStateForPaginationIfNeeded): Deleted.

  • rendering/RenderView.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSnapAdjustment const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • style/RenderTreeUpdaterFirstLetter.cpp:

(WebCore::RenderTreeUpdater::FirstLetter::update):

  • style/RenderTreeUpdaterListItem.cpp:

(WebCore::RenderTreeUpdater::ListItem::updateMarker):

7:25 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:22 PM Changeset in webkit [224528] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • platform/gtk/TestExpectations:
6:28 PM Changeset in webkit [224527] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[CG] Adopt CGContextDrawPathDirect()
https://bugs.webkit.org/show_bug.cgi?id=179339
<rdar://problem/26283575>

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

Source/WebCore:

Adopt this function on macOS >= 10.12 and iOS >= 10.0. Instead of clearing
the current path and creating a new one by calling CGContextBeginPath()
and then adding a CGPath by calling CGContextAddPath() and then calling
one of the drawing path functions, we just call CGContextDrawPathDirect().

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawPath):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath): Don't call CGContextBeginPath()
and CGContextAddPath() for the drawing CGContext in the case of gradient
shadow because we add the CGPath to the layerContext and at the end we
draw this CGLayer into the drawing context.

Source/WebCore/PAL:

Add CGContextDrawPathDirect() as a new CoreGraphics SPI.

  • pal/spi/cg/CoreGraphicsSPI.h:
5:27 PM Changeset in webkit [224526] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.0.2

Tag Safari-604.4.7.0.2.

5:26 PM Changeset in webkit [224525] by jmarcell@apple.com
  • 1 delete in tags/Safari-604.4.7.0.2

Deleting tag.

5:21 PM Changeset in webkit [224524] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.0-branch/Source

Versioning.

5:19 PM Changeset in webkit [224523] by Nikita Vasilyev
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: Display warnings
https://bugs.webkit.org/show_bug.cgi?id=179215

Reviewed by Brian Burg.

Display warning icons on the right of the property.

For now, the warning icons have only three title messages:

  • Invalid property name;
  • Invalid property value;
  • Duplicate property.
  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor .property):
(.spreadsheet-style-declaration-editor .property-toggle):
(.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .value):
(.spreadsheet-style-declaration-editor .property.has-warning):
(.spreadsheet-style-declaration-editor .property .warning):
Draw the warning arrow and icon using only one HTML element.
Don't set "top" property so the element remains vertically where it would be if it had "position: static".

(.spreadsheet-style-declaration-editor .property.has-warning .warning):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
(WI.SpreadsheetCSSStyleDeclarationEditor):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration :matches(.header, .header-media)):
(.spreadsheet-css-declaration .close-brace):
Make properties span the entire width of the styles sidebar. Unsupported properties have yellow
background. There should be no gaps between the property element and sidebar left and right edges.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty):
(WI.SpreadsheetStyleProperty.prototype.updateStatus):
(WI.SpreadsheetStyleProperty.prototype._update):
(WI.SpreadsheetStyleProperty.prototype.updateClassNames): Deleted.
Rename updateClassNames to updateStatus since it modifies title attribute of the warning element.

4:55 PM Changeset in webkit [224522] by achristensen@apple.com
  • 21 edits in trunk/Source

Make ResourceLoader::willSendRequestInternal asynchronous
https://bugs.webkit.org/show_bug.cgi?id=179251

Reviewed by Andy Estes.

Source/WebCore:

ResourceLoader::willSendRequestInternal is used for redirects, which need to be asynchronous, and for the initial request.
Making it asynchronous requires making load initialization asynchronous, too.

No change in behavior. This will allow us to make more things asynchronous.

  • loader/LoaderStrategy.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::create):
(WebCore::NetscapePlugInStreamLoader::init):
(WebCore::NetscapePlugInStreamLoader::willSendRequest):

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::init):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::willSendRequest):
(WebCore::ResourceLoader::willSendRequestAsync):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::startLoading):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::create):
(WebCore::SubresourceLoader::startLoading):
(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/SubresourceLoader.h:
  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
Calling autorelease from a non-main thread was causing crashes. This is because we need to set up an autorelease pool on that thread, which we have not done. See:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc/uid/20000047-1041876
I replaced the calls to RetainPtr::autorelease with RetainPtr::get. This causes us to keep the NSURLRequest and NSURLResponse alive as long as the request is being
responded to in WebKitLegacy and in El Capitan. Given the number of ResourceRequest and ResourceResponse copies we store, this shouldn't be a problem memory-wise.
This will all go away once NSURLSession is used for loading in WebKitLegacy, and this is a large step towards that.

Source/WebKit:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::schedulePluginStreamLoad):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::Stream::start):

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResource):
(WebResourceLoadScheduler::schedulePluginStreamLoad):

  • WebCoreSupport/WebResourceLoadScheduler.h:

Source/WebKitLegacy/mac:

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::start):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::start):

4:55 PM Changeset in webkit [224521] by Wenson Hsieh
  • 2 edits in trunk/Tools

Remove stray logging from a newly added API test

This was only for debugging purposes, and should have been removed before landing.

Rubber-stamped by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

4:52 PM Changeset in webkit [224520] by Ross Kirsling
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Two little Layers tab fixes
https://bugs.webkit.org/show_bug.cgi?id=179273

Reviewed by Devin Rousso.

  • UserInterface/Views/LayerDetailsSidebarPanel.js:

(WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
Even when we suppress refire of the selected event, we still want a popover.

  • UserInterface/Views/Layers3DContentView.js:

(WI.Layers3DContentView):
(WI.Layers3DContentView.prototype.shown):
(WI.Layers3DContentView.prototype.hidden):
(WI.Layers3DContentView.prototype.closed):
(WI.Layers3DContentView.prototype._layerTreeDidChange):
Opening WI directly to the Layers tab wasn't fetching layers right away. Let's fetch on every shown() and
prune the hacky logic we were previously using -- it's overkill anyway, now that we're tracking mutations.

4:49 PM Changeset in webkit [224519] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.10-branch/Source

Versioning.

4:48 PM Changeset in webkit [224518] by Jonathan Bedard
  • 2 edits in trunk/Tools

Only build ImageDiff for mac
https://bugs.webkit.org/show_bug.cgi?id=179349
<rdar://problem/35376237>

Reviewed by Tim Horton.

  • ImageDiff/Makefile:
4:45 PM Changeset in webkit [224517] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, fix the internal build after updating to a newer SDK

There shouldn't be any need to include and implement these method stubs anymore,
even when building against the shipping iOS 11 SDK.

  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[MockDropSession session]): Deleted.

4:42 PM Changeset in webkit [224516] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.1-branch/Source

Versioning.

3:38 PM Changeset in webkit [224515] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.10.3

Tag Safari-604.4.7.10.3.

3:35 PM Changeset in webkit [224514] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.4.7.1.3

Tag Safari-604.4.7.1.3.

2:18 PM Changeset in webkit [224513] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.10-branch/Source

Versioning.

1:46 PM Changeset in webkit [224512] by Wenson Hsieh
  • 21 edits in trunk

[Attachment Support] Implement delegate hooks for attachment element insertion and removal
https://bugs.webkit.org/show_bug.cgi?id=179016
<rdar://problem/35250890>

Reviewed by Tim Horton.

Source/WebCore:

Implements a mechanism for notifying WebKit2 clients when attachment elements are inserted into or removed from
the document. See per-change comments below for more details.

API tests: WKAttachmentTests.AttachmentElementInsertion

WKAttachmentTests.AttachmentUpdatesWhenInsertingAndDeletingNewline
WKAttachmentTests.AttachmentUpdatesWhenUndoingAndRedoing
WKAttachmentTests.AttachmentUpdatesWhenChangingFontStyles
WKAttachmentTests.AttachmentUpdatesWhenInsertingLists
WKAttachmentTests.AttachmentUpdatesWhenInsertingRichMarkup

  • editing/Editor.cpp:

(WebCore::Editor::respondToChangedSelection):
(WebCore::Editor::editorUIUpdateTimerFired):

Additionally notify the client of any attachment updates.

(WebCore::Editor::scheduleEditorUIUpdate):

Add a new helper that starts the editor UI update timer with 0 delay, and use it everywhere we schedule an
editor UI update.

(WebCore::Editor::didInsertAttachmentElement):
(WebCore::Editor::didRemoveAttachmentElement):

Maintain two sets of attachment element identifiers -- the first one tracking insertions, and the second one
tracking removals. When an attachment element is inserted, we first check to see if that attachment element has
just been removed; if so, we don't add it to the inserted identifiers set, but instead remove it from the set of
removed identifiers. We perform a similar check in the opposite case. This prevents us from notifying the client
of extraneous insertions and removals during certain editing commands which may reparent and move attachment
elements around. In both cases, we schedule an editor UI update afterwards, where we will notify the client of
attachment updates.

(WebCore::Editor::notifyClientOfAttachmentUpdates):
(WebCore::Editor::insertAttachmentFromFile):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::HTMLAttachmentElement):

Remove the version of HTMLAttachmentElement's constructor that takes a unique identifier.

(WebCore::HTMLAttachmentElement::insertedIntoAncestor):
(WebCore::HTMLAttachmentElement::removedFromAncestor):

Implement these hooks to observe insertion into and removal from the DOM. If the element was attached to or
removed from an ancestor that was connected to the document, call out to the document's frame's editor. This
"document-connected" rule prevents us from calling out to the client in cases where (for instance) we append an
attachment element to a newly created DocumentFragment in preparation for executing a ReplaceSelectionCommand.

(WebCore::HTMLAttachmentElement::uniqueIdentifier const):
(WebCore::HTMLAttachmentElement::setUniqueIdentifier):

Refactor unique identifier to refer to the new attachment identifier attribute instead of a member variable.

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttributeNames.in:

Add a new attribute representing an attachment element's identifier. This enables us to keep track of particular
attachments as they are destroyed and recreated as different objects, as a result of some editing commands.

  • page/EditorClient.h:

(WebCore::EditorClient::didInsertAttachment):
(WebCore::EditorClient::didRemoveAttachment):

Add boilerplate editor client hooks for attachment insertion and removal.

Source/WebKit:

Adds boilerplate plumbing to WebEditorClient, WebPage, and the usual machinery in the UI process to notify
WebKit2 clients when attachment elements have been inserted or removed from the document. See the WebCore
ChangeLog for more details about the implementation, or the Tools ChangeLog for more information about new API
tests.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didInsertAttachment:]):
(-[WKWebView _didRemoveAttachment:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/PageClientImplCocoa.h:
  • UIProcess/Cocoa/PageClientImplCocoa.mm:

(WebKit::PageClientImplCocoa::didInsertAttachment):
(WebKit::PageClientImplCocoa::didRemoveAttachment):

  • UIProcess/PageClient.h:

(WebKit::PageClient::didInsertAttachment):
(WebKit::PageClient::didRemoveAttachment):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didInsertAttachment):
(WebKit::WebPageProxy::didRemoveAttachment):

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

(WebKit::WebEditorClient::didInsertAttachment):
(WebKit::WebEditorClient::didRemoveAttachment):

  • WebProcess/WebCoreSupport/WebEditorClient.h:

Tools:

Introduces new API tests to check that various editing operations will or won't result in the new attachment
insertion and removal delegate hooks being fired. Additionally refactors an existing test to verify that
attachments insertion and removal is observable by the UI delegate.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(-[AttachmentUpdateObserver init]):
(-[AttachmentUpdateObserver inserted]):
(-[AttachmentUpdateObserver removed]):
(-[AttachmentUpdateObserver _webView:didInsertAttachment:]):
(-[AttachmentUpdateObserver _webView:didRemoveAttachment:]):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::~ObserveAttachmentUpdatesForScope):
(TestWebKitAPI::ObserveAttachmentUpdatesForScope::expectAttachmentUpdates):

Implement a testing mechanism to temporarily bind a UI delegate to a given WKWebView and listen for inserted or
removed attachments over the course of a particular scope. The API tests use this mechanism to check that the UI
delegate hooks added in this patch are invoked with the right attachments when performing edit commands.

(-[TestWKWebView _synchronouslyExecuteEditCommand:argument:]):
(-[TestWKWebView expectUpdatesAfterCommand:withArgument:expectedRemovals:expectedInsertions:]):
(TestWebKitAPI::TEST):

1:44 PM Changeset in webkit [224511] by Ryan Haddad
  • 34 edits in trunk/Source/WebCore

Unreviewed, rolling out r224494.

Introduced LayoutTest flakiness on WK1.

Reverted changeset:

"[LayoutState cleanup] Move m_layoutState from RenderView to
LayoutContext"
https://bugs.webkit.org/show_bug.cgi?id=179282
https://trac.webkit.org/changeset/224494

1:41 PM Changeset in webkit [224510] by Simon Fraser
  • 6 edits in trunk/Source/WebCore

UIWebView is not rendering content that comes on screen during overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=179277
rdar://problem/34272949

Reviewed by Tim Horton

When page or overflow scrolling happens, we do a traversal of GraphicsLayers to determine
whether the exposed part of tiled layers changed in a way that requires a change in the tile
coverage. If so, we schedule a compositing layer flush.

There was no equivalent logic for computing whether the "backing store detached" state
of a layer changed (which we use to throw away backing store of layers outside the viewport),
so after scrolling an accelerated overflow:scroll which contained composited layers, we
would sometimes fail to recompute that we should re-create backing store for revealed
layers.

Fix by having GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush() determine
whether 'intersectsCoverageRect' changed, and if so trigger a flush. This requires
tracking CommitState for isViewportConstrained-ness, just like we do during commits.

Also clean up code related to computing the visible rect passed into visibleRectChangeRequiresFlush() and
flushCompositingState(); these diverged for no good reason. Also clean up the logging a little.

Not testable because UIWebView layout tests are unreliable.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::viewportOffsetChanged):
(WebCore::Frame::overflowScrollPositionChangedForNode):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush const):
(WebCore::GraphicsLayerCA::visibleRectChangeRequiresFlush const):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::visibleRectForLayerFlushing const):
(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::didChangeVisibleRect):

  • rendering/RenderLayerCompositor.h:
1:35 PM Changeset in webkit [224509] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

iOS element fullscreen should use a UIGestureRecognizer to detect user interaction.
https://bugs.webkit.org/show_bug.cgi?id=179029
rdar://problem/35307882

Patch by Jeremy Jones <jeremyj@apple.com> on 2017-11-06
Reviewed by Simon Fraser.

Replace _WKTapDelegatingView with a UILongPressGestureRecognizer. When set with a duration of 0, it effectively
recognizes UITouchBegin events.

  • UIProcess/ios/WKFullScreenWindowControllerIOS.mm:

(-[_WKFullScreenViewController loadView]):
(-[_WKFullScreenViewController gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[_WKTapDelegatingView setTarget:action:]): Deleted.
(-[_WKTapDelegatingView hitTest:withEvent:]): Deleted.

1:08 PM Changeset in webkit [224508] by Joseph Pecoraro
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: no way to navigate from Resource tree element to its entry in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=179328
<rdar://problem/35367294>

Reviewed by Brian Burg.

  • Localizations/en.lproj/localizedStrings.js:

New reveal in network tab string.

  • UserInterface/Base/Main.js:

(WI.isShowingNetworkTab):
Utility to know if the network tab is showing.

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):
(showResourceWithOptions):
(WI.appendContextMenuItemsForURL):
Generalize context menus for just a URL.

  • UserInterface/Views/TabBrowser.js:

(WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Support more tab ignore options, this is starting to get icky. We may want to
move to just a preferredTab approach, since that is what some of these want.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._populateTagContextMenu):
Make use of new ContextMenu utility to add menu items for a URL.

  • UserInterface/Views/NetworkTabContentView.js:

(WI.NetworkTabContentView.prototype.showRepresentedObject):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype.showRepresentedObject):
Handle showing a Resource in the NetworkTab. We immediately show
the details view for it, otherwise we fallback to the list view.

12:32 PM Changeset in webkit [224507] by commit-queue@webkit.org
  • 5 edits in trunk

Uncaught Exception: TypeError: null is not an object (evaluating 'mimeType.endsWith')
https://bugs.webkit.org/show_bug.cgi?id=179325
<rdar://problem/35366896>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-11-06
Reviewed by Brian Burg.

Source/WebInspectorUI:

  • UserInterface/Base/MIMETypeUtilities.js:

(WI.fileExtensionForMIMEType):
(WI.shouldTreatMIMETypeAsText):
Handle null mime types.

LayoutTests:

  • inspector/unit-tests/mimetype-utilities-expected.txt:
  • inspector/unit-tests/mimetype-utilities.html:

Add tests for null cases.

12:22 PM Changeset in webkit [224506] by Chris Dumez
  • 14 edits in trunk/Source

[Service Workers] Add proper implementation for 'updatefound' event
https://bugs.webkit.org/show_bug.cgi?id=179302

Reviewed by Brady Eidson.

Source/WebCore:

Add proper implementation for 'updatefound' event instead of faking it.
The 'updatefound' event firing is now triggered from the StorageProcess,
during the install steps, instead of being fired on WebContent process
side in jobResolvedWithRegistration().

Specification:

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::fireUpdateFoundEvent):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
(WebCore::ServiceWorkerContainer::jobDidFinish):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/server/SWClientConnection.cpp:

(WebCore::SWClientConnection::fireUpdateFoundEvent):

  • workers/service/server/SWClientConnection.h:
  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptContextStarted):
(WebCore::SWServerJobQueue::install):

  • workers/service/server/SWServerJobQueue.h:
  • workers/service/server/SWServerRegistration.cpp:

(WebCore::SWServerRegistration::fireUpdateFoundEvent):

  • workers/service/server/SWServerRegistration.h:

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::fireUpdateFoundEvent):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
12:20 PM Changeset in webkit [224505] by commit-queue@webkit.org
  • 30 edits in trunk

Use enum classes within FileSystem
https://bugs.webkit.org/show_bug.cgi?id=175172

Patch by Christopher Reid <chris.reid@sony.com> on 2017-11-06
Reviewed by Myles C. Maxfield.

Source/WebCore:

No new tests, no change in behavior.

Using enum classes in filesystem to enforce stronger type safety.

  • Modules/webdatabase/OriginLock.cpp:
  • loader/appcache/ApplicationCacheStorage.cpp:
  • platform/FileHandle.h:
  • platform/FileStream.cpp:
  • platform/FileSystem.cpp:
  • platform/FileSystem.h:
  • platform/cocoa/FileMonitorCocoa.mm:
  • platform/glib/FileSystemGlib.cpp:
  • platform/network/curl/CurlCacheEntry.cpp:
  • platform/network/curl/CurlCacheManager.cpp:
  • platform/posix/FileSystemPOSIX.cpp:
  • platform/win/FileSystemWin.cpp:
  • rendering/RenderThemeWin.cpp:

Source/WebKit:

  • NetworkProcess/Downloads/BlobDownloadClient.cpp:
  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • NetworkProcess/cache/NetworkCache.cpp:
  • NetworkProcess/capture/NetworkCaptureManager.cpp:
  • NetworkProcess/capture/NetworkCaptureRecorder.cpp:
  • Shared/WebMemorySampler.cpp:
  • UIProcess/API/APIContentRuleListStore.cpp:
  • UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:

Source/WebKitLegacy/win:

  • Plugins/PluginDatabase.cpp:

Source/WTF:

Adding a helper function for converting enum classes to their underlying type when necessary.

  • wtf/EnumTraits.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:
  • TestWebKitAPI/Tests/WebCore/cocoa/DatabaseTrackerTest.mm:
12:03 PM Changeset in webkit [224504] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.0-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364681

11:50 AM Changeset in webkit [224503] by commit-queue@webkit.org
  • 12 edits
    1 delete in trunk/Source

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

It is breaking internal builds (Requested by youenn on
#webkit).

Reverted changeset:

"Use VCP H264 encoder for platforms supporting it"
https://bugs.webkit.org/show_bug.cgi?id=179076
https://trac.webkit.org/changeset/224497

11:46 AM Changeset in webkit [224502] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

ScriptExecutionContext::serviceWorkerContainer() should avoid constructing a Navigator object
https://bugs.webkit.org/show_bug.cgi?id=179322

Reviewed by Sam Weinig.

ScriptExecutionContext::serviceWorkerContainer() should avoid constructing a Navigator object
unnecessarily.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::serviceWorkerContainer):

  • page/DOMWindow.h:
11:29 AM Changeset in webkit [224501] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.10-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364690

11:27 AM Changeset in webkit [224500] by jmarcell@apple.com
  • 2 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224426. rdar://problem/35364675

10:56 AM Changeset in webkit [224499] by Joseph Pecoraro
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Selecting a DOM Search Result in Search Tab unexpectedly changes Tabs
https://bugs.webkit.org/show_bug.cgi?id=179223
<rdar://problem/33949556>

Reviewed by Devin Rousso.

  • Localizations/en.lproj/localizedStrings.js:

New string.

  • UserInterface/Views/SearchResultTreeElement.js:

(WI.SearchResultTreeElement.prototype.populateContextMenu):
Add a context menu for search results to jump to a different tab.
These behaviors match the double click behavior for search results.

  • UserInterface/Views/SearchTabContentView.js:

(WI.SearchTabContentView.prototype.canShowRepresentedObject):
Always support showing a DOM Tree. Clients should be using
ignoreSearchTab if they don't want to jump here.

  • UserInterface/Views/DOMTreeDataGridNode.js:

(WI.DOMTreeDataGridNode.prototype._goToArrowWasClicked):

  • UserInterface/Views/LayerTreeDataGridNode.js:

(WI.LayerTreeDataGridNode.prototype._goToArrowWasClicked):
Use ignoreSearchTab just in case when showing a DOM Tree.

  • UserInterface/Views/ContentBrowser.js:

(WI.ContentBrowser.prototype.shown):
When showing, update our UI to reflect the values of the current content view, which
for a while may have been owned by another ContentBrowser.

(WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange):
(WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange):
(WI.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
We can avoid work in a few places where we might not be the owning ContentBrowser
of a ContentView that is changing.

9:56 AM Changeset in webkit [224498] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Source/WebCore:
Added mime type check to the picture source preloader to avoid downloading incompatible resources.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-06
Reviewed by Alex Christensen.

Test: http/tests/loading/preload-picture-type.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): include type match state when selecting candidate imgs
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): added type attribute evaluation and matching

LayoutTests:
Add tests to ensure that <source> tags are only preloaded when the type
attribute matches.
https://bugs.webkit.org/show_bug.cgi?id=179231

Patch by Colin Bendell <colin> on 2017-11-06
Reviewed by Alex Christensen.

  • http/tests/loading/preload-picture-type-expected.txt: Added.
  • http/tests/loading/preload-picture-type.html: Added.
9:48 AM Changeset in webkit [224497] by commit-queue@webkit.org
  • 12 edits
    1 copy
    2 adds in trunk/Source

Use VCP H264 encoder for platforms supporting it
https://bugs.webkit.org/show_bug.cgi?id=179076
rdar://problem/35180773

Patch by Youenn Fablet <youenn@apple.com> on 2017-11-06
Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.h: Added.

(webrtc::H264VideoToolboxEncoderVCP::SetActive):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoProcessing/encoder_vcp.mm: Copied from Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm.
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/encoder.mm:

(internal::CFStringToString):
(internal::SetVTSessionProperty):
(internal::CopyVideoFrameToPixelBuffer):
(internal::CreatePixelBuffer):
(internal::VTCompressionOutputCallback):
(internal::ExtractProfile):

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

(webrtc::VideoToolboxVideoEncoderFactory::VideoToolboxVideoEncoderFactory):
(webrtc::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):

  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Covered by existing test coverage.

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp:

(WebCore::VideoToolboxVideoEncoderFactory::setActive):
(WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
(WebCore::VideoToolboxVideoEncoderFactory::DestroyVideoEncoder):

  • platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.h:
9:47 AM Changeset in webkit [224496] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

ServiceWorkerContainer should take a PendingActivity while a service worker job is pending
https://bugs.webkit.org/show_bug.cgi?id=179321

Reviewed by Youenn Fablet.

ServiceWorkerContainer should take a PendingActivity while a service worker job is pending.
ServiceWorkerContainer is an ActiveDOMObject and taking such pending activity makes sure
the object stays alive while a job is pending (and a promise is not resolved yet). It also
makes sure the document does not get suspended in the middle of a job.

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::scheduleJob):
(WebCore::ServiceWorkerContainer::jobDidFinish):

9:45 AM Changeset in webkit [224495] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

@media rules ignored in user agent style sheet html.css
https://bugs.webkit.org/show_bug.cgi?id=169245
<rdar://problem/30885951>

Reviewed by Darin Adler.

To support accessibility features, allow non-trivial @media rules in user agent stylesheet.

This patch creates a special stylesheet consisting of rules with media queries seen on user agent stylesheets.
The queries on this sheet are evaluated with the document's media query evaluator.

No tests as I don't want to add things to UA style just for testing purposes. This will
gain coverage when the feature is used.

  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::addToDefaultStyle):

Add a helper.
Build a new stylesheet that consists of complex media rules seen in user agent sheets.

(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

  • css/CSSDefaultStyleSheets.h:
  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::userAgentMediaQueryStyle const):

Rule set constructed from media queries seen on UA sheet.

(WebCore::DocumentRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):

Evalute the media queries if needed.
Re-evaluate if the rule count of the media query stylesheet increases
(this could happen when additional UA style is added).

(WebCore::DocumentRuleSets::resetUserAgentMediaQueryStyle):
(WebCore::DocumentRuleSets::collectFeatures const):

Collect the features from userAgentMediaQueryStyle.

  • css/DocumentRuleSets.h:

(WebCore::DocumentRuleSets::setIsForShadowScope):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ElementRuleCollector):
(WebCore::ElementRuleCollector::matchUARules):

Also match rules in userAgentMediaQueryStyle.

  • css/ElementRuleCollector.h:
  • css/InspectorCSSOMWrappers.cpp:

(WebCore::InspectorCSSOMWrappers::collectDocumentWrappers):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):

9:45 AM Changeset in webkit [224494] by Alan Bujtas
  • 34 edits in trunk/Source/WebCore

[LayoutState cleanup] Move m_layoutState from RenderView to LayoutContext
https://bugs.webkit.org/show_bug.cgi?id=179282
<rdar://problem/35348653>

Reviewed by Antti Koivisto.

LayoutContext now owns the top level LayoutState object.
It makes RenderView behave like any other renderer by constructing a LayoutStateMaintainer on the stack.
This is mostly moving code from RenderView.h/.cpp to LayoutContext.h/.cpp and fixing the callsites.
(While view().frameView().layoutContext().layoutState() is a bit lengthy, it's
temporary only, since LayoutState is planned to be an argument of the layout() method.

Covered by existing test.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::notificationPostTimerFired):

  • page/LayoutContext.cpp:

(WebCore::LayoutContext::layoutDelta const):
(WebCore::LayoutContext::addLayoutDelta):
(WebCore::LayoutContext::layoutDeltaMatches):
(WebCore::LayoutContext::pushLayoutState):
(WebCore::LayoutContext::pushLayoutStateForPaginationIfNeeded):
(WebCore::LayoutContext::popLayoutState):
(WebCore::LayoutContext::checkLayoutState):

  • page/LayoutContext.h:

(WebCore::LayoutContext::layoutState const):
(WebCore::LayoutContext::layoutStateEnabled const):
(WebCore::LayoutContext::disableLayoutState):
(WebCore::LayoutContext::enableLayoutState):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):
(WebCore::LayoutState::computeClipRect):
(WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
(WebCore::LayoutStateMaintainer::push):
(WebCore::LayoutStateMaintainer::pop):
(WebCore::LayoutStateDisabler::LayoutStateDisabler):
(WebCore::LayoutStateDisabler::~LayoutStateDisabler):
(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):
(WebCore::SubtreeLayoutStateMaintainer::~SubtreeLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::PaginatedLayoutStateMaintainer):
(WebCore::PaginatedLayoutStateMaintainer::~PaginatedLayoutStateMaintainer):

  • rendering/LayoutState.h:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::setLogicalLeftForChild):
(WebCore::RenderBlock::setLogicalTopForChild):
(WebCore::RenderBlock::layoutPositionedObject):
(WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
(WebCore::RenderBlock::adjustLogicalLeftOffsetForLine const):
(WebCore::RenderBlock::adjustLogicalRightOffsetForLine const):
(WebCore::RenderBlock::offsetFromLogicalTopOfFirstPage const):
(WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation const):

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::layoutBlockChildren):
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::collapseMarginsWithChildInfo):
(WebCore::RenderBlockFlow::estimateLogicalTopPosition):
(WebCore::RenderBlockFlow::applyBeforeBreak):
(WebCore::RenderBlockFlow::applyAfterBreak):
(WebCore::RenderBlockFlow::hasNextPage const):
(WebCore::RenderBlockFlow::pageLogicalTopForOffset const):
(WebCore::RenderBlockFlow::pageLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::pageRemainingLogicalHeightForOffset const):
(WebCore::RenderBlockFlow::repaintOverhangingFloats):
(WebCore::RenderBlockFlow::insertFloatingObject):
(WebCore::RenderBlockFlow::positionNewFloats):
(WebCore::RenderBlockFlow::layoutSimpleLines):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutRunsAndFloats):
(WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
(WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
(WebCore::RenderBlockFlow::layoutLineBoxes):
(WebCore::RenderBlockFlow::determineStartPosition):
(WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::outlineBoundsForRepaint const):
(WebCore::RenderBox::mapLocalToContainer const):
(WebCore::RenderBox::clippedOverflowRectForRepaint const):
(WebCore::RenderBox::computeRectForRepaint const):
(WebCore::RenderBox::offsetFromLogicalTopOfFirstPage const):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::layoutChildIfNeededApplyingDelta):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::takeChildInternal):

  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderFragmentedFlow.cpp:

(WebCore::RenderFragmentedFlow::repaintRectangleInFragments const):

  • rendering/RenderGrid.cpp:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint const):
(WebCore::RenderInline::computeRectForRepaint const):
(WebCore::RenderInline::mapLocalToContainer const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateLayerPositions):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::layout):

  • rendering/RenderMediaControlElements.cpp:

(WebCore::RenderMediaVolumeSliderContainer::layout):
(WebCore::RenderMediaControlTimelineContainer::layout):
(WebCore::RenderTextTrackContainerElement::layout):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintRectangle const):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::clippedOverflowRectForRepaint const):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::layout):
(WebCore::RenderTable::markForPaginationRelayoutIfNeeded):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::clippedOverflowRectForRepaint const):
(WebCore::RenderTableCell::computeRectForRepaint const):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::layout):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layout):
(WebCore::RenderTableSection::layoutRows):
(WebCore::RenderTableSection::setLogicalPositionForCell const):

  • rendering/RenderVTTCue.cpp:
  • rendering/RenderView.cpp:

(WebCore::RenderView::layout):
(WebCore::RenderView::layoutContent): Deleted.
(WebCore::RenderView::checkLayoutState): Deleted.
(WebCore::RenderView::initializeLayoutState): Deleted.
(WebCore::RenderView::pushLayoutState): Deleted.
(WebCore::RenderView::pushLayoutStateForPaginationIfNeeded): Deleted.

  • rendering/RenderView.h:
  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSnapAdjustment const):

  • rendering/svg/RenderSVGContainer.cpp:

(WebCore::RenderSVGContainer::layout):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::layout):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):

  • style/RenderTreeUpdaterFirstLetter.cpp:

(WebCore::RenderTreeUpdater::FirstLetter::update):

  • style/RenderTreeUpdaterListItem.cpp:

(WebCore::RenderTreeUpdater::ListItem::updateMarker):

8:36 AM Changeset in webkit [224493] by Michael Catanzaro
  • 2 edits in trunk

Unreviewed, fix WPE build after r224492
https://bugs.webkit.org/show_bug.cgi?id=179009

  • Source/cmake/OptionsWPE.cmake:
8:27 AM Changeset in webkit [224492] by Michael Catanzaro
  • 2 edits in trunk

[WPE] Clean up OptionsWPE.cmake
https://bugs.webkit.org/show_bug.cgi?id=179009

Reviewed by Žan Doberšek.

  • Source/cmake/OptionsWPE.cmake:
6:55 AM Changeset in webkit [224491] by rmorisset@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CodeBlock::usesOpcode() is dead code
https://bugs.webkit.org/show_bug.cgi?id=179316

Reviewed by Yusuke Suzuki.

Remove CodeBlock::usesOpcode which is dead code

  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
6:43 AM Changeset in webkit [224490] by Michael Catanzaro
  • 5 edits in trunk

[WPE][GTK] Always use SET_AND_EXPOSE_TO_BUILD to set build variables
https://bugs.webkit.org/show_bug.cgi?id=179038

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:

Source/WTF:

  • wtf/Platform.h:
6:43 AM Changeset in webkit [224489] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[WPE] Properly use SYSTEM_INCLUDE_DIRECTORIES for WebKit build target
https://bugs.webkit.org/show_bug.cgi?id=179097

Reviewed by Žan Doberšek.

  • PlatformWPE.cmake:
6:42 AM Changeset in webkit [224488] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] -Wsign-compare warning in EventSenderProxyWPE.cpp
https://bugs.webkit.org/show_bug.cgi?id=179039

Reviewed by Žan Doberšek.

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::EventSenderProxy::updateTouchPoint):
(WTR::EventSenderProxy::releaseTouchPoint):

6:40 AM Changeset in webkit [224487] by Yusuke Suzuki
  • 114 edits
    8 adds in trunk

JIT call inline caches should cache calls to objects with getCallData/getConstructData traps
https://bugs.webkit.org/show_bug.cgi?id=144458

Reviewed by Saam Barati.

JSTests:

  • microbenchmarks/dfg-internal-function-call.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-construct.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-not-handled-call.js: Added.

(target):

  • microbenchmarks/dfg-internal-function-not-handled-construct.js: Added.

(target):

  • stress/dfg-internal-function-call.js: Added.

(shouldBe):
(target):

  • stress/dfg-internal-function-construct.js: Added.

(shouldBe):
(target):

  • stress/internal-function-call.js: Added.

(shouldBe):

  • stress/internal-function-construct.js: Added.

(shouldBe):

Source/JavaScriptCore:

Previously only JSFunction is handled by CallLinkInfo's caching mechanism. This means that
InternalFunction calls are not cached and they always go to the slow path. This is not good because

  1. We need to query getCallData/getConstructData every time in the slow path.
  2. CallLinkInfo tells nothing in the higher tier JITs.

This patch starts handling InternalFunction in CallLinkInfo's caching mechanism. We change InternalFunction
to hold pointers to the functions for call and construct. We have new stubs that can call/construct
InternalFunction. And we return this code pointer as a result of setup call to use CallLinkInfo mechanism.

This patch is critical to optimizing derived Array construction[1] since it starts using CallLinkInfo
for InternalFunction. Previously we did not record any information to CallLinkInfo. Except for the
case that DFGByteCodeParser figures out InternalFunction constant, we cannot attempt to emit DFG
nodes for these InternalFunctions since CallLinkInfo tells us nothing.

Attached microbenchmarks show performance improvement.

baseline patched

dfg-internal-function-construct 1.6439+-0.0826 1.2829+-0.0727 definitely 1.2813x faster
dfg-internal-function-not-handled-construct 2.1862+-0.1361 2.0696+-0.1201 might be 1.0564x faster
dfg-internal-function-not-handled-call 20.7592+-0.9085 19.7369+-0.7921 might be 1.0518x faster
dfg-internal-function-call 1.6856+-0.0967 1.2771+-0.0744 definitely 1.3198x faster

[1]: https://bugs.webkit.org/show_bug.cgi?id=178064

  • API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::JSCallbackFunction):
(JSC::JSCallbackFunction::getCallData): Deleted.

  • API/JSCallbackFunction.h:

(JSC::JSCallbackFunction::createStructure):

  • API/ObjCCallbackFunction.h:

(JSC::ObjCCallbackFunction::createStructure):

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunction::ObjCCallbackFunction):
(JSC::ObjCCallbackFunction::getCallData): Deleted.
(JSC::ObjCCallbackFunction::getConstructData): Deleted.

  • bytecode/BytecodeDumper.cpp:

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

  • bytecode/BytecodeList.json:
  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::setCallee):
(JSC::CallLinkInfo::callee):
(JSC::CallLinkInfo::setLastSeenCallee):
(JSC::CallLinkInfo::lastSeenCallee):
(JSC::CallLinkInfo::visitWeak):

  • bytecode/CallLinkInfo.h:
  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):

  • bytecode/LLIntCallLinkInfo.h:
  • jit/JITOperations.cpp:
  • jit/JITThunks.cpp:

(JSC::JITThunks::ctiInternalFunctionCall):
(JSC::JITThunks::ctiInternalFunctionConstruct):

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

(JSC::linkFor):
(JSC::linkPolymorphicCall):

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

(JSC::virtualThunkFor):
(JSC::nativeForGenerator):
(JSC::nativeCallGenerator):
(JSC::nativeTailCallGenerator):
(JSC::nativeTailCallWithoutSavedTagsGenerator):
(JSC::nativeConstructGenerator):
(JSC::internalFunctionCallGenerator):
(JSC::internalFunctionConstructGenerator):

  • jit/ThunkGenerators.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setUpCall):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayConstructor.cpp:

(JSC::ArrayConstructor::ArrayConstructor):
(JSC::ArrayConstructor::getConstructData): Deleted.
(JSC::ArrayConstructor::getCallData): Deleted.

  • runtime/ArrayConstructor.h:

(JSC::ArrayConstructor::createStructure):

  • runtime/AsyncFunctionConstructor.cpp:

(JSC::AsyncFunctionConstructor::AsyncFunctionConstructor):
(JSC::AsyncFunctionConstructor::finishCreation):
(JSC::AsyncFunctionConstructor::getCallData): Deleted.
(JSC::AsyncFunctionConstructor::getConstructData): Deleted.

  • runtime/AsyncFunctionConstructor.h:

(JSC::AsyncFunctionConstructor::createStructure):

  • runtime/AsyncGeneratorFunctionConstructor.cpp:

(JSC::AsyncGeneratorFunctionConstructor::AsyncGeneratorFunctionConstructor):
(JSC::AsyncGeneratorFunctionConstructor::finishCreation):
(JSC::AsyncGeneratorFunctionConstructor::getCallData): Deleted.
(JSC::AsyncGeneratorFunctionConstructor::getConstructData): Deleted.

  • runtime/AsyncGeneratorFunctionConstructor.h:

(JSC::AsyncGeneratorFunctionConstructor::createStructure):

  • runtime/BooleanConstructor.cpp:

(JSC::callBooleanConstructor):
(JSC::BooleanConstructor::BooleanConstructor):
(JSC::BooleanConstructor::finishCreation):
(JSC::BooleanConstructor::getConstructData): Deleted.
(JSC::BooleanConstructor::getCallData): Deleted.

  • runtime/BooleanConstructor.h:

(JSC::BooleanConstructor::createStructure):

  • runtime/DateConstructor.cpp:

(JSC::DateConstructor::DateConstructor):
(JSC::DateConstructor::getConstructData): Deleted.
(JSC::DateConstructor::getCallData): Deleted.

  • runtime/DateConstructor.h:

(JSC::DateConstructor::createStructure):

  • runtime/Error.h:

(JSC::StrictModeTypeErrorFunction::StrictModeTypeErrorFunction):
(JSC::StrictModeTypeErrorFunction::createStructure):
(JSC::StrictModeTypeErrorFunction::getConstructData): Deleted.
(JSC::StrictModeTypeErrorFunction::getCallData): Deleted.

  • runtime/ErrorConstructor.cpp:

(JSC::ErrorConstructor::ErrorConstructor):
(JSC::ErrorConstructor::getConstructData): Deleted.
(JSC::ErrorConstructor::getCallData): Deleted.

  • runtime/ErrorConstructor.h:

(JSC::ErrorConstructor::createStructure):

  • runtime/FunctionConstructor.cpp:

(JSC::FunctionConstructor::FunctionConstructor):
(JSC::FunctionConstructor::finishCreation):
(JSC::FunctionConstructor::getConstructData): Deleted.
(JSC::FunctionConstructor::getCallData): Deleted.

  • runtime/FunctionConstructor.h:

(JSC::FunctionConstructor::createStructure):

  • runtime/FunctionPrototype.cpp:

(JSC::callFunctionPrototype):
(JSC::FunctionPrototype::FunctionPrototype):
(JSC::FunctionPrototype::getCallData): Deleted.

  • runtime/FunctionPrototype.h:

(JSC::FunctionPrototype::createStructure):

  • runtime/GeneratorFunctionConstructor.cpp:

(JSC::GeneratorFunctionConstructor::GeneratorFunctionConstructor):
(JSC::GeneratorFunctionConstructor::finishCreation):
(JSC::GeneratorFunctionConstructor::getCallData): Deleted.
(JSC::GeneratorFunctionConstructor::getConstructData): Deleted.

  • runtime/GeneratorFunctionConstructor.h:

(JSC::GeneratorFunctionConstructor::createStructure):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::InternalFunction):
(JSC::InternalFunction::finishCreation):
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::getConstructData):

  • runtime/InternalFunction.h:

(JSC::InternalFunction::createStructure):
(JSC::InternalFunction::nativeFunctionFor):
(JSC::InternalFunction::offsetOfNativeFunctionFor):

  • runtime/IntlCollatorConstructor.cpp:

(JSC::IntlCollatorConstructor::createStructure):
(JSC::IntlCollatorConstructor::IntlCollatorConstructor):
(JSC::IntlCollatorConstructor::getConstructData): Deleted.
(JSC::IntlCollatorConstructor::getCallData): Deleted.

  • runtime/IntlCollatorConstructor.h:
  • runtime/IntlDateTimeFormatConstructor.cpp:

(JSC::IntlDateTimeFormatConstructor::createStructure):
(JSC::IntlDateTimeFormatConstructor::IntlDateTimeFormatConstructor):
(JSC::IntlDateTimeFormatConstructor::getConstructData): Deleted.
(JSC::IntlDateTimeFormatConstructor::getCallData): Deleted.

  • runtime/IntlDateTimeFormatConstructor.h:
  • runtime/IntlNumberFormatConstructor.cpp:

(JSC::IntlNumberFormatConstructor::createStructure):
(JSC::IntlNumberFormatConstructor::IntlNumberFormatConstructor):
(JSC::IntlNumberFormatConstructor::getConstructData): Deleted.
(JSC::IntlNumberFormatConstructor::getCallData): Deleted.

  • runtime/IntlNumberFormatConstructor.h:
  • runtime/JSArrayBufferConstructor.cpp:

(JSC::JSArrayBufferConstructor::JSArrayBufferConstructor):
(JSC::JSArrayBufferConstructor::createStructure):
(JSC::JSArrayBufferConstructor::getConstructData): Deleted.
(JSC::JSArrayBufferConstructor::getCallData): Deleted.

  • runtime/JSArrayBufferConstructor.h:
  • runtime/JSGenericTypedArrayViewConstructor.h:
  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::JSGenericTypedArrayViewConstructor):
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::createStructure):
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::getConstructData): Deleted.
(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::getCallData): Deleted.

  • runtime/JSInternalPromiseConstructor.cpp:

(JSC::JSInternalPromiseConstructor::createStructure):
(JSC::JSInternalPromiseConstructor::JSInternalPromiseConstructor):
(JSC::JSInternalPromiseConstructor::getConstructData): Deleted.
(JSC::JSInternalPromiseConstructor::getCallData): Deleted.

  • runtime/JSInternalPromiseConstructor.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::JSPromiseConstructor::createStructure):
(JSC::JSPromiseConstructor::JSPromiseConstructor):
(JSC::JSPromiseConstructor::getConstructData): Deleted.
(JSC::JSPromiseConstructor::getCallData): Deleted.

  • runtime/JSPromiseConstructor.h:
  • runtime/JSType.h:
  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::JSTypedArrayViewConstructor::JSTypedArrayViewConstructor):
(JSC::JSTypedArrayViewConstructor::createStructure):
(JSC::JSTypedArrayViewConstructor::getConstructData): Deleted.
(JSC::JSTypedArrayViewConstructor::getCallData): Deleted.

  • runtime/JSTypedArrayViewConstructor.h:
  • runtime/MapConstructor.cpp:

(JSC::MapConstructor::MapConstructor):
(JSC::MapConstructor::getConstructData): Deleted.
(JSC::MapConstructor::getCallData): Deleted.

  • runtime/MapConstructor.h:

(JSC::MapConstructor::createStructure):
(JSC::MapConstructor::MapConstructor): Deleted.

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor::NativeErrorConstructor):
(JSC::NativeErrorConstructor::getConstructData): Deleted.
(JSC::NativeErrorConstructor::getCallData): Deleted.

  • runtime/NativeErrorConstructor.h:

(JSC::NativeErrorConstructor::createStructure):

  • runtime/NullGetterFunction.cpp:

(JSC::NullGetterFunction::NullGetterFunction):
(JSC::NullGetterFunction::getCallData): Deleted.
(JSC::NullGetterFunction::getConstructData): Deleted.

  • runtime/NullGetterFunction.h:

(JSC::NullGetterFunction::createStructure):
(JSC::NullGetterFunction::NullGetterFunction): Deleted.

  • runtime/NullSetterFunction.cpp:

(JSC::NullSetterFunction::NullSetterFunction):
(JSC::NullSetterFunction::getCallData): Deleted.
(JSC::NullSetterFunction::getConstructData): Deleted.

  • runtime/NullSetterFunction.h:

(JSC::NullSetterFunction::createStructure):
(JSC::NullSetterFunction::NullSetterFunction): Deleted.

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::NumberConstructor):
(JSC::constructNumberConstructor):
(JSC::constructWithNumberConstructor): Deleted.
(JSC::NumberConstructor::getConstructData): Deleted.
(JSC::NumberConstructor::getCallData): Deleted.

  • runtime/NumberConstructor.h:

(JSC::NumberConstructor::createStructure):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::ObjectConstructor):
(JSC::ObjectConstructor::getConstructData): Deleted.
(JSC::ObjectConstructor::getCallData): Deleted.

  • runtime/ObjectConstructor.h:

(JSC::ObjectConstructor::createStructure):

  • runtime/ProxyConstructor.cpp:

(JSC::ProxyConstructor::ProxyConstructor):
(JSC::ProxyConstructor::getConstructData): Deleted.
(JSC::ProxyConstructor::getCallData): Deleted.

  • runtime/ProxyConstructor.h:

(JSC::ProxyConstructor::createStructure):

  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::ProxyRevoke):
(JSC::ProxyRevoke::getCallData): Deleted.

  • runtime/ProxyRevoke.h:

(JSC::ProxyRevoke::createStructure):

  • runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::RegExpConstructor):
(JSC::RegExpConstructor::getConstructData): Deleted.
(JSC::RegExpConstructor::getCallData): Deleted.

  • runtime/RegExpConstructor.h:

(JSC::RegExpConstructor::createStructure):

  • runtime/SetConstructor.cpp:

(JSC::SetConstructor::SetConstructor):
(JSC::SetConstructor::getConstructData): Deleted.
(JSC::SetConstructor::getCallData): Deleted.

  • runtime/SetConstructor.h:

(JSC::SetConstructor::createStructure):
(JSC::SetConstructor::SetConstructor): Deleted.

  • runtime/StringConstructor.cpp:

(JSC::StringConstructor::StringConstructor):
(JSC::StringConstructor::getConstructData): Deleted.
(JSC::StringConstructor::getCallData): Deleted.

  • runtime/StringConstructor.h:

(JSC::StringConstructor::createStructure):

  • runtime/SymbolConstructor.cpp:

(JSC::SymbolConstructor::SymbolConstructor):
(JSC::SymbolConstructor::getConstructData): Deleted.
(JSC::SymbolConstructor::getCallData): Deleted.

  • runtime/SymbolConstructor.h:

(JSC::SymbolConstructor::createStructure):

  • runtime/VM.cpp:

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

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

(JSC::WeakMapConstructor::WeakMapConstructor):
(JSC::WeakMapConstructor::getConstructData): Deleted.
(JSC::WeakMapConstructor::getCallData): Deleted.

  • runtime/WeakMapConstructor.h:

(JSC::WeakMapConstructor::createStructure):
(JSC::WeakMapConstructor::WeakMapConstructor): Deleted.

  • runtime/WeakSetConstructor.cpp:

(JSC::WeakSetConstructor::WeakSetConstructor):
(JSC::WeakSetConstructor::getConstructData): Deleted.
(JSC::WeakSetConstructor::getCallData): Deleted.

  • runtime/WeakSetConstructor.h:

(JSC::WeakSetConstructor::createStructure):
(JSC::WeakSetConstructor::WeakSetConstructor): Deleted.

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::WebAssemblyCompileErrorConstructor::createStructure):
(JSC::WebAssemblyCompileErrorConstructor::WebAssemblyCompileErrorConstructor):
(JSC::WebAssemblyCompileErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyCompileErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyCompileErrorConstructor.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::WebAssemblyInstanceConstructor::createStructure):
(JSC::WebAssemblyInstanceConstructor::WebAssemblyInstanceConstructor):
(JSC::WebAssemblyInstanceConstructor::getConstructData): Deleted.
(JSC::WebAssemblyInstanceConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyInstanceConstructor.h:
  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::WebAssemblyLinkErrorConstructor::createStructure):
(JSC::WebAssemblyLinkErrorConstructor::WebAssemblyLinkErrorConstructor):
(JSC::WebAssemblyLinkErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyLinkErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyLinkErrorConstructor.h:
  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::WebAssemblyMemoryConstructor::createStructure):
(JSC::WebAssemblyMemoryConstructor::WebAssemblyMemoryConstructor):
(JSC::WebAssemblyMemoryConstructor::getConstructData): Deleted.
(JSC::WebAssemblyMemoryConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyMemoryConstructor.h:
  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::WebAssemblyModuleConstructor::createStructure):
(JSC::WebAssemblyModuleConstructor::WebAssemblyModuleConstructor):
(JSC::WebAssemblyModuleConstructor::getConstructData): Deleted.
(JSC::WebAssemblyModuleConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyModuleConstructor.h:
  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::WebAssemblyRuntimeErrorConstructor::createStructure):
(JSC::WebAssemblyRuntimeErrorConstructor::WebAssemblyRuntimeErrorConstructor):
(JSC::WebAssemblyRuntimeErrorConstructor::getConstructData): Deleted.
(JSC::WebAssemblyRuntimeErrorConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyRuntimeErrorConstructor.h:
  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::WebAssemblyTableConstructor::createStructure):
(JSC::WebAssemblyTableConstructor::WebAssemblyTableConstructor):
(JSC::WebAssemblyTableConstructor::getConstructData): Deleted.
(JSC::WebAssemblyTableConstructor::getCallData): Deleted.

  • wasm/js/WebAssemblyTableConstructor.h:

Source/WebCore:

  • bridge/runtime_method.cpp:

(JSC::RuntimeMethod::RuntimeMethod):
(JSC::RuntimeMethod::getCallData): Deleted.

  • bridge/runtime_method.h:

Source/WebKit:

  • WebProcess/Plugins/Netscape/JSNPMethod.cpp:

(WebKit::JSNPMethod::JSNPMethod):
(WebKit::JSNPMethod::getCallData): Deleted.

  • WebProcess/Plugins/Netscape/JSNPMethod.h:

(WebKit::JSNPMethod::createStructure):

4:58 AM Changeset in webkit [224486] by rmorisset@apple.com
  • 3 edits
    1 add in trunk

Add a third benchmark to TailBench
https://bugs.webkit.org/show_bug.cgi?id=178815

Reviewed by Saam Barati.

Add a new benchmark to TailBench: a BF interpreter written in a weird kinda functional style

PerformanceTests:

  • TailBench9000/bf-interpreter.js: Added.

(lookForMatchingBracket):
(evalRec):
(infiniteTape):
(evalShort):

Tools:

  • Scripts/run-jsc-benchmarks:
4:56 AM Changeset in webkit [224485] by rmorisset@apple.com
  • 2 edits in trunk/PerformanceTests

PerformanceTests/TailBench9000/merge-sort.js does not actually sort any of the large arrays it allocates
https://bugs.webkit.org/show_bug.cgi?id=178817

Reviewed by Saam Barati.

  • TailBench9000/merge-sort.js:

(TEST_mergeSort):

12:31 AM Changeset in webkit [224484] by mjs@apple.com
  • 5 edits in trunk

Canonical name of EUC-KR encoding should be EUC-KR, not windows-949
https://bugs.webkit.org/show_bug.cgi?id=179305

Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

  • web-platform-tests/encoding/textdecoder-labels-expected.txt: Updated expected results. The test already correctly covered this.
  • web-platform-tests/encoding/textencoder-constructor-non-utf-expected.txt: ditto

Source/WebCore:

Already covered by:
LayoutTests/imported/w3c/web-platform-tests/encoding/textdecoder-labels.html
LayoutTests/imported/w3c/web-platform-tests/encoding/textencoder-constructor-non-utf-expected.html
LayoutTests/fast/encoding/charset-decode.html

  • platform/text/TextCodecICU.cpp: Change registration so the EUC-KR name

is canonical.
(WebCore::TextCodecICU::registerCodecs): However, we still want to use the windows-949
decoder. It's not exactly the same, but the spec calls for that.

12:05 AM Changeset in webkit [224483] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] CairoGlyphToPathTranslator::path() shouldn't fill out the glyph path
https://bugs.webkit.org/show_bug.cgi?id=179159

Reviewed by Michael Catanzaro.

In case of non-zero synthetic bold offset in CairoGlyphToPathTranslator::path(),
cairo_glyph_path() should be called just like in the generic case.
cairo_show_glyphs() performs the actual rasterization of the glyph, but we're
only interested in the generated path operations.

No new tests -- covered by existing tests.

  • platform/graphics/cairo/FontCairo.cpp:

(WebCore::CairoGlyphToPathTranslator::path):

Nov 5, 2017:

11:53 PM Changeset in webkit [224482] by mjs@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Unreviewed. Remove stray conflict markers from ChangeLog.

11:04 PM Changeset in webkit [224481] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r221338): Web Inspector: NavigationBar incorrectly calculates minimumWidth
https://bugs.webkit.org/show_bug.cgi?id=179292

Reviewed by Devin Rousso.

  • UserInterface/Views/NavigationBar.js:

(WI.NavigationBar.prototype._calculateMinimumWidth):
totalItemWidth was the minimumWidth of the last item.

10:56 PM Changeset in webkit [224480] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.10-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35339831

10:47 PM Changeset in webkit [224479] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.0-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296415

8:46 PM Changeset in webkit [224478] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296413

8:10 PM Changeset in webkit [224477] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Revert r224473. rdar://problem/35296413

7:59 PM Changeset in webkit [224476] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Fix build after r224463
https://bugs.webkit.org/show_bug.cgi?id=179310

Unreviewed build fix.

No new tests (No behavior change).

Patch by Fujii Hironori <Fujii Hironori> on 2017-11-05

  • platform/graphics/win/GraphicsContextCairoWin.cpp: Include "GraphicsContextImpl.h".
7:47 PM Changeset in webkit [224475] by webkit@devinrousso.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Canvas Tab: selecting Frame tree element should update preview/slider, does nothing
https://bugs.webkit.org/show_bug.cgi?id=179072
<rdar://problem/35278711>

Reviewed by Matt Baker.

  • UserInterface/Views/CanvasTabContentView.js:

(WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):

  • UserInterface/Views/RecordingActionTreeElement.css:

(.item.action > .titles .parameter.swizzled):
(.tree-outline:not(:focus, .force-focus) .item.action:not(.initial-state, .parent, .invalid) > .icon): Deleted.
(body:not(.window-inactive, .window-docked-inactive) .item.action > .titles .parameter.swizzled): Deleted.
Drive-by: remove extra :focus selectors to prevent icon flashing when the window is blurred.

6:17 PM Changeset in webkit [224474] by jmarcell@apple.com
  • 7 edits in branches/safari-604.4.7.1-branch/Source

Versioning.

6:17 PM Changeset in webkit [224473] by jmarcell@apple.com
  • 3 edits in branches/safari-604.4.7.1-branch/Source/JavaScriptCore

Cherry-pick r224416. rdar://problem/35296413

2:34 PM Changeset in webkit [224472] by graouts@webkit.org
  • 27 edits in trunk

[Web Animations] Schedule animations registered on the document timeline
https://bugs.webkit.org/show_bug.cgi?id=179236
<rdar://problem/35332669>

Reviewed by Dean Jackson.

Source/WebCore:

We now schedule animations contained in the document timeline using a three-step approach.

  1. Each time an object that is part of the timing model changes one of its timing properties, we call animationTimingModelDidChange() on the document timeline. This schedules performInvalidationTask() to be called when the current run loop completes, such that we invalidate the timing model just once per run loop.
  1. Once performInvalidationTask() is called, the timing model is invalidated in updateAnimationSchedule(). We iterate over the registered animations on the timineline and identify the shortest interval between the current time and the next moment one of the animations requires a tick to update its value. If we find a value below 15ms, we schedule animations to be resolved with scheduleAnimationResolution() right away. If the value is above 15ms, and not inifinity, we schedule a one-shot timer for that interval to call scheduleAnimationResolution().
  1. Once scheduleAnimationResolution() is called, we call scheduleAnimation() on the shared DisplayRefreshMonitorManager to be notified when the next display refresh occurs to actually resolve animations with resolveAnimations().

Note that, in this patch, resolveAnimations() does nothing, we will add support for interpolating values in
a future patch.

Another important thing to note is that every time the document timeline's current time is requested, we cache
it for the duration of the run loop such that the timing model always uses the same value during a given run loop.

Finally, to support tests where we check the state of the timing model by manually advancing time, we expose a
new pause() method on AnimationTimeline for tests to call to avoid the timeline to self-advance.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::addAnimation): Mark that the timing model changed as a result of adding an animation.
(WebCore::AnimationTimeline::removeAnimation): Mark that the timing model changed as a result of removing an animation.
(WebCore::AnimationTimeline::bindingsCurrentTime): Update the method signature to no longer be const and call into
currentTime() instead of reading directly from the m_currentTime member variable since a subclass, like DocumentTimeline,
may have a custom currentTime() implementation.
(WebCore::AnimationTimeline::setCurrentTime): Mark that the timing model changed as a result of the timeline current time
changing.
(WebCore::AnimationTimeline::bindingsCurrentTime const): Deleted.

  • animation/AnimationTimeline.h:

(WebCore::AnimationTimeline::currentTime): Change both methods signatures to no longer be const so that DocumentTimeline's
implementation of currentTime() may cache the current time in a member variable, enqueuing a callback when the run loop
completes for this member variable to be reset, and updating some states.
(WebCore::AnimationTimeline::pause): To be implemented by subclasses.
(WebCore::AnimationTimeline::animationTimingModelDidChange): Add a new virtual method to indicate that the timing model
needs invalidating.
(WebCore::AnimationTimeline::animations const): Add an accessor to allow animations to be accessed by a subclass.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline): Update the constructor signature to receive a Document and a PlatformDisplayID
since we need a reference to the Document to get at the nowTime() and a PlatformDisplayID to create the DisplayRefreshMonitor.
(WebCore::DocumentTimeline::~DocumentTimeline): Close the task queue when the timeline gets destroyed.
(WebCore::DocumentTimeline::currentTime): If we don't have a current cahed current time, compute one and schedule
the invalidation task if needed so that we may reset the cached value as the run loop completes.
(WebCore::DocumentTimeline::pause): Allows the timeline not to self-advance, for testing purposes only.
(WebCore::DocumentTimeline::animationTimingModelDidChange): If we haven't already done so, mark that we need to update our
animation schedule in the invalidation task and schedule that task if not scheduled yet.
(WebCore::DocumentTimeline::scheduleInvalidationTaskIfNeeded): Schedule the invalidation task to run as the run loop completes
if we haven't already done so.
(WebCore::DocumentTimeline::performInvalidationTask): Update the animation schedule if needed and reset the cached current
time value.
(WebCore::DocumentTimeline::updateAnimationSchedule): Iterate over registed animations and find the shortest interval until
one of them needs to update their animation. If the shortest interval is below 15ms, schedule the animation resolution right
away. If the shortest inverval is finite and above 15ms, then schedule a one-shot timer for that interval to perform the
animation resolution then.
(WebCore::DocumentTimeline::animationScheduleTimerFired): The one-shot timer to perform the animation resolution has fired,
we call scheduleAnimationResolution().
(WebCore::DocumentTimeline::scheduleAnimationResolution): We call scheduleAnimation() on the shared DisplayRefreshMonitorManager
so that we may resolve animations on the next display refresh, or start a timer if the DisplayRefreshMonitorManager is not available.
(WebCore::DocumentTimeline::displayRefreshFired): The display is about to refresh, we call resolveAnimations().
(WebCore::DocumentTimeline::animationResolutionTimerFired): The fallback animation resolution timer has fired, we call resolveAnimations().
(WebCore::DocumentTimeline::resolveAnimations): Currently do nothing, this is where we'll iterate over registered animations to
update them with the current time.
(WebCore::DocumentTimeline::windowScreenDidChange): Notify the shared DisplayRefreshMonitorManager that the PlatformDisplayID
changed.
(WebCore::DocumentTimeline::createDisplayRefreshMonitor const): Provide a DisplayRefreshMonitor as part of the
DisplayRefreshMonitorClient protocol.

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

(WebCore::WebAnimation::create): Remove extra white space.
(WebCore::WebAnimation::setStartTime): Mark that the timing model changed as a result of changing this animation's start time.
(WebCore::WebAnimation::timeToNextRequiredTick const): Compute the interval until the next time we need to resolve this animation.
If the provided current time is before this animation's start time, compute the delay until the start time. If the current time
is after the animation's start time but before the animation's end time, indicate that we want to resolve the animation again
right away and return 0ms. In any other case, return an infinite interval to indicate that we don't need to be refreshed after
the provided time.

  • animation/WebAnimation.h:
  • dom/Document.cpp:

(WebCore::Document::windowScreenDidChange): Notify the document timeline that the PlatformDisplayID changed.
(WebCore::Document::timeline): Provide the Document and the PlatformDisplayID to the DocumentTimeline.

  • testing/Internals.cpp:

(WebCore::Internals::pauseTimeline):

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

LayoutTests:

Adopt the new internals.pauseTimeline() method to ensure that the existing
tests do not have a self-advancing timeline since we're interested in checking
the timing model state based on manually setting the timeline current time.

Also update some WPT expectations with some progressions.

in the failure.

  • http/wpt/web-animations/interfaces/AnimationTimeline/document-timeline-expected.txt:
  • http/wpt/web-animations/timing-model/animations/current-time-expected.txt:
  • http/wpt/web-animations/timing-model/animations/set-the-animation-start-time-expected.txt:
  • http/wpt/wk-web-animations/timing-model/animation-creation-basic.html:
  • http/wpt/wk-web-animations/timing-model/animation-current-time.html:
  • http/wpt/wk-web-animations/timing-model/animation-effect-timing.html:
  • http/wpt/wk-web-animations/timing-model/animation-effect.html:
  • http/wpt/wk-web-animations/timing-model/animation-interface-effect-property.html:
  • http/wpt/wk-web-animations/timing-model/animation-interface-start-time-property.html:
  • http/wpt/wk-web-animations/timing-model/animation-playback-rate.html:
  • http/wpt/wk-web-animations/timing-model/document-timeline.html:
  • http/wpt/wk-web-animations/timing-model/keyframe-effect-interface-timing-duration.html:
  • http/wpt/wk-web-animations/timing-model/keyframe-effect.html:
  • http/wpt/wk-web-animations/timing-model/timeline-current-time.html:
2:17 PM Changeset in webkit [224471] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark http/tests/security/xss-DENIED-xsl-external-entity.xml as a flaky failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179301

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:32 PM Changeset in webkit [224470] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/html/menuitem-element.html as failure on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179299

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:18 PM Changeset in webkit [224469] by Chris Dumez
  • 23 edits in trunk

Implement ServiceWorkerRegistration.update()
https://bugs.webkit.org/show_bug.cgi?id=179270

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT tests now that more are passing or at least failing later.

  • web-platform-tests/service-workers/service-worker/claim-affect-other-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-scripts-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/multiple-update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/ready.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:

I investigated this test and it is still failing later on because we clear registrations too
aggressively on the StorageProcess side we are supposed to make sure the registration does
not have a newestWorker before clearing it when a script fetch fails or a script syntax error
occurs. We properly have those if (!newestWorker) checks in the code but service workers
are not yet populated on the SWServerRegistration object so SWServerRegistration::getNewestWorker()
alwasy returns null.

Source/WebCore:

Implement ServiceWorkerRegistration.update():

We already had support for the Update algorithm in SWServerJobQueue but
this patch enhances our support a bit to get us closer to the specification:

No new tests, rebaselined existing tests.

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/ServiceWorkerJobType.h:
  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):
(WebCore::ServiceWorkerRegistration::installing):
(WebCore::ServiceWorkerRegistration::waiting):
(WebCore::ServiceWorkerRegistration::active):
(WebCore::ServiceWorkerRegistration::setInstallingWorker):
(WebCore::ServiceWorkerRegistration::setWaitingWorker):
(WebCore::ServiceWorkerRegistration::setActiveWorker):
(WebCore::ServiceWorkerRegistration::getNewestWorker):
(WebCore::ServiceWorkerRegistration::update):

  • workers/service/ServiceWorkerRegistration.h:
  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::scriptContextFailedToStart):
(WebCore::SWServerJobQueue::runNextJobSynchronously):
(WebCore::SWServerJobQueue::runUpdateJob):

11:20 AM Changeset in webkit [224468] by pvollan@apple.com
  • 2 edits in trunk/JSTests

[Win] Skip stress/regress-178385.js.
https://bugs.webkit.org/show_bug.cgi?id=179298

Unreviewed test gardening.

  • stress/regress-178385.js:
9:51 AM Changeset in webkit [224467] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/loader/empty-embed-src-attribute.html as a flaky crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179297

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:06 AM Changeset in webkit [224466] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark fast/css/object-fit/object-fit-embed.html and related tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=179296

Unreviewed test gardening.

  • platform/win/TestExpectations:
Note: See TracTimeline for information about the timeline view.