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

Timeline



Apr 6, 2018:

9:08 PM Changeset in webkit [230367] by BJ Burg
  • 2 edits in trunk/Source/WebKit

REGRESSION(r228371): WebAutomationSession::deleteAllCookies doesn't delete some cookies
https://bugs.webkit.org/show_bug.cgi?id=184334
<rdar://problem/39212863>

Reviewed by Timothy Hatcher.

When WebDriver adds a cookie for 'localhost', it actually uses the domain '.localhost' per RFC.
When deleting cookies, we first fetch all cookies matching the document's hostname, and
then delete them one by one. However, this code path does not add the dot prefix. This causes
no cookies to match the requested domain, and thus none of them are deleted.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::domainByAddingDotPrefixIfNeeded): Extract this helper method.
(WebKit::WebAutomationSession::addSingleCookie): Use helper method.
(WebKit::WebAutomationSession::deleteAllCookies): Add a dot prefix when
requesting to delete all cookies for a hostname.

8:56 PM Changeset in webkit [230366] by Alan Bujtas
  • 2 edits in trunk/Tools

Rebaseline LayoutReloaded patch file.

  • LayoutReloaded/misc/LayoutReloadedWebKit.patch:
8:48 PM Changeset in webkit [230365] by youenn@apple.com
  • 19 edits
    4 copies
    8 adds in trunk

Response headers should be filtered when sent from NetworkProcess to WebProcess
https://bugs.webkit.org/show_bug.cgi?id=184310

Reviewed by Ryosuke Niwa.

Source/WebCore:

Did some refactoring to allow ResourceResponse to use header value parsing routines.
We add sanitization levels for regular responses in case responses might be exposed to scripts or not.
If not exposed to scripts, additional filtering is done.

Add internal API to get unfiltered response headers from a fetch response.
Test: http/wpt/service-workers/header-filtering.https.html

  • Modules/fetch/FetchResponse.h:
  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::parse):

  • platform/network/HTTPParsers.h:

(WebCore::addToAccessControlAllowList):
(WebCore::parseAccessControlAllowList):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::isSafeToKeepRedirectionResponseHeader):
(WebCore::isCrossOriginSafeToKeepResponseHeader):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFields):

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

(WebCore::ServiceWorkerInternals::fetchResponseHeaderList):

  • testing/ServiceWorkerInternals.h:
  • testing/ServiceWorkerInternals.idl:

Source/WebKit:

Pass destination parameter to NetworkResourceLoader.
Use new sanitization routine to filter response headers as needed:

  • Cross-origin routines are filtered by removing any non CORS allowed headers.
  • Same-origin responses are filtered by removing non used headers, except when filtering would be visible by JS (XHR, fetch).

In all cases, Set-Cookie/Set-Cookie2 headers are filtered out.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/NetworkResourceLoadParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::sanitizeResponseIfPossible):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::dispatchWillSendRequestForCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::updatePreferencesStore):

LayoutTests:

Rebased tests for WK2 as Server response header is now filtered out for cross-origin and not fetch/XHR loads.

  • http/wpt/service-workers/header-filtering-worker.js: Added.
  • http/wpt/service-workers/header-filtering.https-expected.txt: Added.

Some tests are failing as navigation loads are not yet filtered and we
have no good way yet to detect cross origin loads.

  • http/wpt/service-workers/header-filtering.https.html: Added.
  • http/wpt/service-workers/resources/header-filtering-iframe.html: Added.
  • http/wpt/service-workers/resources/response-full-of-headers.py: Added.
  • http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
  • http/tests/webarchive/test-preload-resources-expected.txt: Added.
  • platform/mac-wk1/http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
  • platform/mac-wk1/http/tests/webarchive/test-preload-resources-expected.txt: Added.
  • platform/win/http/tests/webarchive/cross-origin-stylesheet-crash-expected.txt: Added.
  • platform/win/http/tests/webarchive/test-preload-resources-expected.txt: Added.
5:33 PM Changeset in webkit [230364] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark fast/loader/submit-form-while-parsing-2.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184051

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:31 PM Changeset in webkit [230363] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

5:30 PM Changeset in webkit [230362] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.2.3

Tag Safari-605.2.3.

5:20 PM Changeset in webkit [230361] by Ryan Haddad
  • 2 edits in trunk/LayoutTests/imported/w3c

Rebaseline imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html after r230350.

Unreviewed test gardening.

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt:
5:00 PM Changeset in webkit [230360] by sbarati@apple.com
  • 5 edits in trunk/Source

Source/bmalloc:
bmalloc virtual allocation API should not treat memory it vends as dirty with respect to how it drives the scavenger
https://bugs.webkit.org/show_bug.cgi?id=184342

Reviewed by Mark Lam.

Currently, the only user of this API is Wasm. Ideally, Wasm would tell
us exactly which page is dirtied. We should really do that at some point:
https://bugs.webkit.org/show_bug.cgi?id=184207

However, until we do that, it's better to treat none of the virtual memory
we vend as dirty, versus what we do now, which is treat it all as dirty.
This dirty memory tracking helps drive the scavenger, so on iOS, having the
scavenger think its under memory pressure because of memory it can't free isn't
useful.

  • bmalloc/bmalloc.cpp:

(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):

  • bmalloc/bmalloc.h:

Source/WTF:
bmalloc's tryLargeZeroedMemalignVirtual shouldn't treat the entire virtual size as dirty towards its footprint
https://bugs.webkit.org/show_bug.cgi?id=184207

Reviewed by Mark Lam.

  • wtf/Gigacage.cpp:

(Gigacage::freeVirtualPages):

4:53 PM Changeset in webkit [230359] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit

Make all sync IPCs during ScriptDisallowedScope set DoNotProcessIncomingMessagesWhenWaitingForSyncReply
https://bugs.webkit.org/show_bug.cgi?id=182449
<rdar://problem/39222541>

Reviewed by Chris Dumez.

Release assert that a sync IPC inside ScriptDisallowedScope sets DoNotProcessIncomingMessagesWhenWaitingForSyncReply
to avoid executing arbitrary scripts as a result of processing incoming sync IPCs.

  • Platform/IPC/Connection.h:

(IPC::Connection::sendSync): Added the release assertion.

4:26 PM Changeset in webkit [230358] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix unused parameter warning when credential storage is disabled

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::getCredentialFromPersistentStorage):

4:26 PM Changeset in webkit [230357] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Extra zoom mode] Block playback until fullscreen begins
https://bugs.webkit.org/show_bug.cgi?id=184371
<rdar://problem/39250891>

Reviewed by Youenn Fablet.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlayState): Return early when waiting to enter fullscreen.
(WebCore::HTMLMediaElement::enterFullscreen): Set m_waitingToEnterFullscreen.
(WebCore::HTMLMediaElement::exitFullscreen): Clear m_waitingToEnterFullscreen.
(WebCore::HTMLMediaElement::didBecomeFullscreenElement): Ditto.

  • html/HTMLMediaElement.h:
3:54 PM Changeset in webkit [230356] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

WebCore::screenSupportsExtendedColor improperly calls NSScreen functions in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=184364
<rdar://problem/39246314>

Reviewed by Per Arne Vollan.

The WebContent process is interacting directly with NSScreen to determine if the current screen
has extended color support. This should be brokered from the UIProcess.

Tested by fast/media/mq-color-gamut.html.

  • platform/ScreenProperties.h:

(WebCore::ScreenProperties::encode const): Add screenSupportsExtendedColor.
(WebCore::ScreenProperties::decode): Ditto.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::getScreenProperties): Retrieve extended color support.
(WebCore::screenSupportsExtendedColor): Retrieve cached version when in the WebContent
process. Assert that NSScreen is not accessed in the WebContent process.

1:30 PM Changeset in webkit [230355] by Fujii Hironori
  • 5 edits in trunk

[Win][WebCore] Expose a constant for scrollbar pixels per line (cScrollbarPixelsPerLine)
https://bugs.webkit.org/show_bug.cgi?id=184296

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (No behavior changes).

  • platform/PlatformWheelEvent.h: Placed cScrollbarPixelsPerLine definition.
  • platform/win/WheelEventWin.cpp:

(WebCore::PlatformWheelEvent::PlatformWheelEvent): Removed cScrollbarPixelsPerLine definition.

Tools:

  • DumpRenderTree/win/EventSender.cpp:

(mouseScrollBy): Removed the duplicated cScrollbarPixelsPerLine
definition. Use WebCore::cScrollbarPixelsPerLine.

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

Mark three wpt LayoutTests as slow on iOS
https://bugs.webkit.org/show_bug.cgi?id=184278

Unreviewed test gardening.

These tests were marked as slow for macOS debug, but not for iOS.

  • platform/ios/TestExpectations:
1:05 PM Changeset in webkit [230353] by youenn@apple.com
  • 7 edits
    247 adds in trunk/LayoutTests

Import wpt webaudio tests
https://bugs.webkit.org/show_bug.cgi?id=184348

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/webaudio/: Added.

LayoutTests:

  • TestExpectations:
  • resources/testharnessreport.js: Mock AudioContext with webkitAudioContext for wpt tests only.
12:43 PM Changeset in webkit [230352] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed test fix after r230323

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenSupportsExtendedColor): Remove assertion hit during test runs.

12:37 PM Changeset in webkit [230351] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

WebCore::screenColorSpace is retrieving CGColorSpace from NSScreen directly
https://bugs.webkit.org/show_bug.cgi?id=184343
<rdar://problem/39224881>

Reviewed by Per Arne Vollan.

Revise ScreenProperties to serialize the screen's color space, and later
retrieve that in the WebContent process. This allows us to close off
the CGSWindowServer connection.

  • platform/ScreenProperties.h:

(WebCore::ScreenProperties::encode const): Add CGColorSpaceRef support.
(WebCore::ScreenProperties::decode): Ditto.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::displayID): Add assertion to prevent use in WebContent process.
(WebCore::firstScreen): Ditto.
(WebCore::getScreenProperties): Add support for CGColorSpaceRef.
(WebCore::screenColorSpace): Retrieve cached version when in WebContent process.
Assert that NSScreen is not accessed in WebContent process.

12:33 PM Changeset in webkit [230350] by Ms2ger@igalia.com
  • 12 edits in trunk

Implement createImageBitmap(Blob)
https://bugs.webkit.org/show_bug.cgi?id=183247

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Update expectations.

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage-expected.txt:
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:

Source/WebCore:

Tests:

  • imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html
  • imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args.html
  • fileapi/FileReaderLoader.h:

(WebCore::FileReaderLoader::url): expose the Blob's URL.

  • html/ImageBitmap.cpp: implement createImageBitmap(Blob).
  • html/ImageBitmap.h: allow the BlobImageObserver class access to the creation function.
  • loader/cache/CachedImage.cpp: reuse extracted code.

(WebCore::CachedImage::isPDFResource const):
(WebCore::CachedImage::isPostScriptResource const):
(WebCore::CachedImage::createImage):

  • platform/graphics/Image.cpp: extract some code from CachedImage to reuse.

(WebCore::Image::create):
(WebCore::Image::isPDFResource):
(WebCore::Image::isPostScriptResource):

  • platform/graphics/Image.h: add declarations.

LayoutTests:

Update expectations.

  • platform/gtk/imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-invalid-args-expected.txt:
12:31 PM Changeset in webkit [230349] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Flex child does not get repainted when it is inserted back to the render tree.
https://bugs.webkit.org/show_bug.cgi?id=184361
<rdar://problem/34528716>

Reviewed by Antti Koivisto.

Source/WebCore:

As with any regular block children, we should issue full repaint for flexbox items on their
first layout (see RenderBlockFlow::layoutBlockChild()).

Test: fast/flexbox/missing-repaint-when-flext-item-never-had-layout.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):

LayoutTests:

  • fast/flexbox/missing-repaint-when-flext-item-never-had-layout-expected.txt: Added.
  • fast/flexbox/missing-repaint-when-flext-item-never-had-layout.html: Added.
12:20 PM Changeset in webkit [230348] by Ms2ger@igalia.com
  • 6 edits
    3 adds in trunk

Support transferring ImageBitmap objects
https://bugs.webkit.org/show_bug.cgi?id=183131

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer-expected.txt: Added.
  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html: Added.
  • web-platform-tests/2dcontext/imagebitmap/transfer-worker.js: Added.

Source/WebCore:

Test: imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-transfer.html

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::serialize): thread through ImageBitmaps.
(WebCore::CloneSerializer::CloneSerializer): thread through ImageBitmaps.
(WebCore::CloneSerializer::fillTransferMap): don't require a mutable reference.
(WebCore::CloneSerializer::dumpImageBitmap): add.
(WebCore::CloneSerializer::dumpIfTerminal): check for ImageBitmap.
(WebCore::CloneDeserializer::deserialize): thread through ImageBitmaps.
(WebCore::CloneDeserializer::CloneDeserializer): thread through ImageBitmaps.
(WebCore::CloneDeserializer::readImageBitmap): add.
(WebCore::CloneDeserializer::readTerminal): check for ImageBitmap.
(WebCore::SerializedScriptValue::SerializedScriptValue): thread through ImageBitmaps.
(WebCore::SerializedScriptValue::create): thread through ImageBitmaps.
(WebCore::containsDuplicates): add.
(WebCore::SerializedScriptValue::deserialize): handle ImageBitmap arguments.

  • bindings/js/SerializedScriptValue.h: update signatures, add member.
  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::create): add.
(WebCore::ImageBitmap::detachBitmaps): add.

  • html/ImageBitmap.h: add signatures.
12:19 PM Changeset in webkit [230347] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebCore

When recording the drawing, the DisplayList should be initialized with the GraphicsContextState of the underlying GraphicsContext
https://bugs.webkit.org/show_bug.cgi?id=184336

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-04-06
Reviewed by Antti Koivisto.

The state of the drawing context has to be transfered to the recording
DisplayList before recording. Many recording GraphicsContext functions
will behave wrongly if it gets the default state.

  • html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::DisplayListDrawingContext::DisplayListDrawingContext):
(WebCore::CanvasRenderingContext2DBase::drawingContext const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

  • platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):

  • platform/graphics/displaylists/DisplayListRecorder.h:

(WebCore::DisplayList::Recorder::ContextState::ContextState):
(WebCore::DisplayList::Recorder::ContextState::cloneForSave const):

  • platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::Replayer::replay):

  • platform/graphics/displaylists/DisplayListReplayer.h:

(WebCore::DisplayList::Replayer::replay): If we do not have a clipping
rectangle and we want to record all the drawing, we need a default value
for the clipping rectangle and we want no clipping to happen.

12:15 PM Changeset in webkit [230346] by dbates@webkit.org
  • 11 edits
    3 adds in trunk

Emit a more informative message when a script is blocked due to "X-Content-Type: nosniff"
https://bugs.webkit.org/show_bug.cgi?id=184359

Reviewed by Per Arne Vollan.

Source/WebCore:

Emphasize in the message that the script was blocked from executing.

Test: http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::notifyFinished):

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveResponse):

LayoutTests:

Adds a test to ensure we block importing scripts into a Web Worker whose HTTP responses
include "X-Content-Type: nosniff" and have a non script MIME type.

Also update existing expected results.

  • http/tests/security/contentTypeOptions/invalid-content-type-options-allowed-expected.txt:
  • http/tests/security/contentTypeOptions/nosniff-dynamic-script-blocked-expected.txt:
  • http/tests/security/contentTypeOptions/nosniff-importScript-blocked-expected.txt: Added.
  • http/tests/security/contentTypeOptions/nosniff-importScript-blocked.html: Added.
  • http/tests/security/contentTypeOptions/nosniff-script-allowed-expected.txt:
  • http/tests/security/contentTypeOptions/nosniff-script-blocked-expected.txt:
  • http/tests/security/contentTypeOptions/nosniff-script-without-content-type-blocked-expected.txt:
  • http/tests/security/contentTypeOptions/resources/nosniff-importScript-blocked.js: Added.

(let.mimeType.of.unscriptyMIMETypes.catch):

  • http/tests/security/contentTypeOptions/resources/script-with-header.pl:
  • http/tests/security/module-correct-mime-types-expected.txt:
12:12 PM Changeset in webkit [230345] by dbates@webkit.org
  • 6 edits in trunk

importScripts() should throw exception with a reason when it fails to load a script from the network
https://bugs.webkit.org/show_bug.cgi?id=184345

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Currently importScripts() throws a NetworkError exception without a reason when
it fails to load a script from the network. It is ambiguous whether the load failed
due to an access control failure or some other error. Instead we should include
the reason the load failed in the thrown exception.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

LayoutTests:

Update expected results.

  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/workers/worker-importScripts-expected.txt:
12:08 PM Changeset in webkit [230344] by Alan Bujtas
  • 2 edits in trunk/Tools

Rebaseline LayoutReloaded patch file.

  • LayoutReloaded/misc/LayoutReloadedWebKit.patch:
12:07 PM Changeset in webkit [230343] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove pass expectation for LayoutTest imported/w3c/web-platform-tests/FileAPI/url/sandboxed-iframe.html
https://bugs.webkit.org/show_bug.cgi?id=184362

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
11:26 AM Changeset in webkit [230342] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix the build after <https://trac.webkit.org/changeset/230338>
(https://bugs.webkit.org/show_bug.cgi?id=184360)

Make lambdas mutable so that we can WTFMove() their captured arguments.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionFailed):

11:13 AM Changeset in webkit [230341] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore/PAL

Cherry-pick r230311. rdar://problem/39217770

Add necessary colon to CFNetwork selector
https://bugs.webkit.org/show_bug.cgi?id=184335
<rdar://problem/39213124>

Reviewed by Brent Fulgham.

  • pal/spi/cf/CFNetworkSPI.h: (setIgnoreHSTS):

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

11:11 AM WebKitGTK/2.20.x edited by jdiggs@igalia.com
(diff)
10:47 AM Changeset in webkit [230340] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.12.1/Source

Versioning.

10:45 AM Changeset in webkit [230339] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.12.1

New tag.

10:45 AM Changeset in webkit [230338] by dbates@webkit.org
  • 5 edits in trunk/Source/WebCore

Have class Exception take String by value instead of a String&&
https://bugs.webkit.org/show_bug.cgi?id=184360

Reviewed by Alexey Proskuryakov.

For convenience support instantiating an Exception with either an lvalue String or
rvalue String.

Although it can be argued that having Exception take a String by value instead of String&&
can lead to missed opportunities to WTFMove() a String object into Exception such mistakes
are just that, missed opportunities. That is, correctness is not affected and we may perform
an unnecessary ref/deref of the underlying StringImpl when instantiating an Exception. If
such missed opportunities show up in profiles and such mistakes happen often then we can
re-evaluate the decision to have Exception take a String by value.

  • Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::put): Simplify code now that Exception takes a String by value.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didFail): Ditto.

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionFailed): Move String into Exception to avoid an
unnecessary ref/de-ref.
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed): Ditto.
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionFailed): Ditto.

  • dom/Exception.h:

(WebCore::Exception::Exception): Take String by value. Also use uniform initializer syntax.

10:44 AM Changeset in webkit [230337] by jmarcell@apple.com
  • 1 delete in tags/Safari-606.1.13

Delete tag.

10:42 AM Changeset in webkit [230336] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.13

New tag.

10:22 AM Changeset in webkit [230335] by jmarcell@apple.com
  • 7 edits in branches/safari-605-branch/Source

Versioning.

9:29 AM Changeset in webkit [230334] by Antti Koivisto
  • 10 edits in trunk/Source/WebCore

Tighten ImageSource to have BitmapImage pointer instead of Image
https://bugs.webkit.org/show_bug.cgi?id=184356

Reviewed by Said Abou-Hallawa.

ImageSource is an implementation detail of BitmapImage, not a generic type.

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::decode):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::decode): Deleted.
(WebCore::Image::imageFrameAvailableAtIndex): Deleted.

Also make some BitmapImage specific functions non-virtual and remove them from Image.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::ImageSource):

  • platform/graphics/ImageSource.h:

(WebCore::ImageSource::create):

Make constructors private.

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

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

9:26 AM Changeset in webkit [230333] by ap@apple.com
  • 2 edits in trunk/JSTests

Add svn:eol-style to line-terminator-normalisation-CR.js
https://bugs.webkit.org/show_bug.cgi?id=184341

  • test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js: Added property svn:eol-style.
9:16 AM Changeset in webkit [230332] by Ross Kirsling
  • 2 edits in trunk/JSTests

Unreviewed, remove errant LF from existing test262 test for CR line endings.

  • test262/test/built-ins/Function/prototype/toString/line-terminator-normalisation-CR.js:
9:07 AM Changeset in webkit [230331] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed test fix after r230323

  • platform/mac/PlatformScreenMac.mm:

(WebCore::screen): Remove assertion we still hit due to event handling code.

8:53 AM Changeset in webkit [230330] by commit-queue@webkit.org
  • 99 edits
    2 moves
    34 adds
    10 deletes in trunk/LayoutTests

Sync 2dcontext, FileAPI, IndexedDB, background-fetch, credential-management, custom-elements, dom, encoding, and fetch web-platform-tests to 94b33b573a069ae5170104ca581a354a35762536
https://bugs.webkit.org/show_bug.cgi?id=184299

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

LayoutTests/imported/w3c:

  • web-platform-tests/2dcontext/imagebitmap/common.sub.js:

(makeMakeHTMLImage.return.new.Promise): Deleted.

  • web-platform-tests/2dcontext/imagebitmap/createImageBitmap-origin.sub.html:
  • web-platform-tests/FileAPI/BlobURL/support/file_test1.js: Removed.
  • web-platform-tests/FileAPI/BlobURL/support/file_test3.html: Removed.
  • web-platform-tests/FileAPI/FileReader/w3c-import.log:
  • web-platform-tests/FileAPI/blob/Blob-XHR-revoke-expected.txt: Removed.
  • web-platform-tests/FileAPI/blob/Blob-XHR-revoke.html: Removed.
  • web-platform-tests/FileAPI/blob/Blob-constructor-expected.txt:
  • web-platform-tests/FileAPI/blob/Blob-constructor.html:
  • web-platform-tests/FileAPI/blob/Blob-slice-overflow.html:
  • web-platform-tests/FileAPI/blob/w3c-import.log:
  • web-platform-tests/FileAPI/file/File-constructor-expected.txt:
  • web-platform-tests/FileAPI/file/File-constructor.html:
  • web-platform-tests/FileAPI/file/w3c-import.log:
  • web-platform-tests/FileAPI/url/blob-url-in-sandboxed-iframe-expected.txt: Removed.
  • web-platform-tests/FileAPI/url/blob-url-in-sandboxed-iframe.html: Removed.
  • web-platform-tests/FileAPI/url/cross-global-revoke.sub-expected.txt: Added.
  • web-platform-tests/FileAPI/url/cross-global-revoke.sub.html: Added.
  • web-platform-tests/FileAPI/url/resources/create-helper.html: Added.
  • web-platform-tests/FileAPI/url/resources/create-helper.js: Added.
  • web-platform-tests/FileAPI/url/resources/fetch-tests.js: Added.

(fetch_tests):

  • web-platform-tests/FileAPI/url/resources/revoke-helper.html: Added.
  • web-platform-tests/FileAPI/url/resources/revoke-helper.js: Added.
  • web-platform-tests/FileAPI/url/sandboxed-iframe-expected.txt: Added.
  • web-platform-tests/FileAPI/url/sandboxed-iframe.html: Added.
  • web-platform-tests/FileAPI/url/unicode-origin.sub-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/origin.sub-expected.txt.
  • web-platform-tests/FileAPI/url/unicode-origin.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/FileAPI/url/origin.sub.html.
  • web-platform-tests/FileAPI/url/url-format.any-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-format.any.html: Added.
  • web-platform-tests/FileAPI/url/url-format.any.js: Added.

(test):

  • web-platform-tests/FileAPI/url/url-format.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-format.any.worker.html: Added.
  • web-platform-tests/FileAPI/url/url-in-tags.window.js: Added.

(async_test.t.e.onload.t.step_func_done):
(async_test.t.frame.onload.t.step_func_done):

  • web-platform-tests/FileAPI/url/url-lifetime-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-lifetime.html: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any.html: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any.js: Added.

(fetch_should_succeed):
(promise_test):

  • web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-with-fetch.any.worker.html: Added.
  • web-platform-tests/FileAPI/url/url-with-xhr.any-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-with-xhr.any.html: Added.
  • web-platform-tests/FileAPI/url/url-with-xhr.any.js: Added.

(xhr_should_succeed):
(async_test.t.xhr.onloadend.t.step_func_done):
(async_test.t.xhr.onload.t.step_func_done):

  • web-platform-tests/FileAPI/url/url-with-xhr.any.worker-expected.txt: Added.
  • web-platform-tests/FileAPI/url/url-with-xhr.any.worker.html: Added.
  • web-platform-tests/FileAPI/url/url_createobjecturl_blob-expected.txt: Removed.
  • web-platform-tests/FileAPI/url/url_createobjecturl_blob.html: Removed.
  • web-platform-tests/FileAPI/url/url_xmlhttprequest.html: Removed.
  • web-platform-tests/FileAPI/url/url_xmlhttprequest_img.html:
  • web-platform-tests/FileAPI/url/w3c-import.log:
  • web-platform-tests/FileAPI/w3c-import.log:
  • web-platform-tests/IndexedDB/README.md:
  • web-platform-tests/IndexedDB/interleaved-cursors.html: Removed.
  • web-platform-tests/IndexedDB/w3c-import.log:
  • web-platform-tests/background-fetch/mixed-content-and-allowed-schemes.https.window.js:

(backgroundFetchTest):

  • web-platform-tests/background-fetch/w3c-import.log:
  • web-platform-tests/credential-management/credentialscontainer-create-basics.https-expected.txt:
  • web-platform-tests/credential-management/credentialscontainer-create-basics.https.html:
  • web-platform-tests/custom-elements/Document-createElement-expected.txt:
  • web-platform-tests/custom-elements/Document-createElement.html:
  • web-platform-tests/custom-elements/OWNERS:
  • web-platform-tests/custom-elements/attribute-changed-callback-expected.txt:
  • web-platform-tests/custom-elements/attribute-changed-callback.html:
  • web-platform-tests/custom-elements/custom-element-registry/w3c-import.log:
  • web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children-expected.txt:
  • web-platform-tests/custom-elements/parser/parser-sets-attributes-and-children.html:
  • web-platform-tests/custom-elements/parser/parser-uses-registry-of-owner-document-expected.txt:
  • web-platform-tests/custom-elements/parser/parser-uses-registry-of-owner-document.html:
  • web-platform-tests/custom-elements/parser/w3c-import.log:
  • web-platform-tests/custom-elements/reactions/CSSStyleDeclaration-expected.txt:
  • web-platform-tests/custom-elements/reactions/CSSStyleDeclaration.html:
  • web-platform-tests/custom-elements/reactions/Document.html:
  • web-platform-tests/custom-elements/reactions/HTMLElement-expected.txt:
  • web-platform-tests/custom-elements/reactions/HTMLElement.html:
  • web-platform-tests/custom-elements/reactions/w3c-import.log:
  • web-platform-tests/custom-elements/resources/custom-elements-helpers.js:

(CustomElement):
(CustomElement.prototype.attributeChangedCallback):
(CustomElement.prototype.connectedCallback):
(CustomElement.prototype.disconnectedCallback):
(CustomElement.prototype.adoptedCallback):
(document_types.return.create): Deleted.
(document_types.create): Deleted.
(document_types.): Deleted.
(document_types): Deleted.

  • web-platform-tests/custom-elements/resources/w3c-import.log:
  • web-platform-tests/custom-elements/upgrading/Node-cloneNode-expected.txt:
  • web-platform-tests/custom-elements/upgrading/Node-cloneNode.html:
  • web-platform-tests/custom-elements/upgrading/w3c-import.log:
  • web-platform-tests/custom-elements/w3c-import.log:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/encoding/big5-encoder-expected.txt:
  • web-platform-tests/encoding/big5-encoder.html:
  • web-platform-tests/encoding/gbk-encoder-expected.txt:
  • web-platform-tests/encoding/gbk-encoder.html:
  • web-platform-tests/fetch/README.md:
  • web-platform-tests/fetch/api/abort/general.any.js:
  • web-platform-tests/fetch/api/basic/integrity.js:
  • web-platform-tests/fetch/api/cors/cors-expose-star.js:

(string_appeared_here.promise_test):

  • web-platform-tests/fetch/api/cors/cors-filtering.js:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.js:
  • web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location.js:
  • web-platform-tests/fetch/api/redirect/redirect-method-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-method.js:

(redirectMethod):

  • web-platform-tests/fetch/api/redirect/redirect-mode-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode.js:

(redirectMode):

  • web-platform-tests/fetch/api/request/request-disturbed-expected.txt:
  • web-platform-tests/fetch/api/request/request-disturbed.html:
  • web-platform-tests/fetch/api/request/request-keepalive-expected.txt:
  • web-platform-tests/fetch/api/request/request-keepalive-quota-expected.txt:
  • web-platform-tests/fetch/api/request/request-keepalive-quota.html:
  • web-platform-tests/fetch/api/request/request-keepalive.html:
  • web-platform-tests/fetch/api/resources/redirect.py:

(main):

  • web-platform-tests/fetch/api/resources/trickle.py:

(main):

  • web-platform-tests/fetch/api/response/response-consume.html:
  • web-platform-tests/fetch/api/response/response-init-002-expected.txt:
  • web-platform-tests/fetch/api/response/response-init-002.html:
  • web-platform-tests/fetch/api/response/response-trailer-expected.txt:
  • web-platform-tests/fetch/api/response/response-trailer.html:
  • web-platform-tests/fetch/data-urls/resources/base64.json: Added.
  • web-platform-tests/fetch/http-cache/cc-request.html:
  • web-platform-tests/fetch/http-cache/heuristic.html:
  • web-platform-tests/fetch/http-cache/partial.html:
  • web-platform-tests/fetch/http-cache/vary-expected.txt:
  • web-platform-tests/fetch/http-cache/vary.html:
  • web-platform-tests/fetch/nosniff/importscripts.js:

(string_appeared_here.forEach):

  • web-platform-tests/fetch/nosniff/resources/css.py:

(main):

  • web-platform-tests/fetch/nosniff/script-expected.txt:
  • web-platform-tests/fetch/nosniff/script.html:
  • web-platform-tests/fetch/nosniff/stylesheet-expected.txt:
  • web-platform-tests/fetch/nosniff/stylesheet.html:
  • web-platform-tests/fetch/nosniff/worker-expected.txt:
  • web-platform-tests/fetch/nosniff/worker.html:

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Added.
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wpe/TestExpectations:

Apr 5, 2018:

11:56 PM Changeset in webkit [230329] by Ross Kirsling
  • 1 edit
    1 delete in trunk/JSTests

Unreviewed, rolling out r230320.

Revert fix, as the root cause lies elsewhere.

Reverted changeset:

"[test262] Mark line-terminator-normalisation-CR.js as a
binary file."
https://bugs.webkit.org/show_bug.cgi?id=184341
https://trac.webkit.org/changeset/230320

11:47 PM Changeset in webkit [230328] by youenn@apple.com
  • 3 edits
    5 adds in trunk/LayoutTests

Add a test for scoped cookies used to load AppCache resources
https://bugs.webkit.org/show_bug.cgi?id=184315

Reviewed by Ryosuke Niwa.

  • http/tests/appcache/document-cookie-http-only-expected.txt:
  • http/tests/appcache/document-cookie-http-only.php:
  • http/tests/appcache/resources/manifest-protected-script.php: Added.
  • http/tests/appcache/resources/scope1/cookie-protected-manifest.php: Added.
  • http/tests/appcache/resources/scope2/cookie-protected-script.php: Added.
11:18 PM Changeset in webkit [230327] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

MacroAssemblerCodePtr::retagged() should not re-decorate the pointer on ARMv7.
https://bugs.webkit.org/show_bug.cgi?id=184347
<rdar://problem/39183165>

Reviewed by Michael Saboff.

  • assembler/MacroAssemblerCodeRef.h:

(JSC::MacroAssemblerCodePtr::MacroAssemblerCodePtr):
(JSC::MacroAssemblerCodePtr::retagged const):

10:23 PM Changeset in webkit [230326] by youenn@apple.com
  • 7 edits in trunk/Source

REGRESSION (r230223): LayoutTest http/tests/contentextensions/css-display-none-overflows-rule-data-1.html is crashing
https://bugs.webkit.org/show_bug.cgi?id=184306

Reviewed by Ryosuke Niwa.

Source/WebCore:

Add an option to not compile CSS rules since they are not useful in NetworkProcess.
Covered by tests no longer crashing in Debug WK2 bots.

  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::create):
(WebCore::ContentExtensions::ContentExtension::ContentExtension):

  • contentextensions/ContentExtension.h:
  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::addContentExtension):

  • contentextensions/ContentExtensionsBackend.h:

Source/WebKit:

  • NetworkProcess/NetworkContentRuleListManager.cpp:

(WebKit::NetworkContentRuleListManager::addContentRuleLists):

10:00 PM Changeset in webkit [230325] by youenn@apple.com
  • 3 edits in trunk/Tools

Test expectation updater should handle Win bot results
https://bugs.webkit.org/show_bug.cgi?id=184274

Reviewed by Ryosuke Niwa.

Add processing of win bot results.
They will update platform/win results.

Updated the script so that if there is no mac-wk2 results, it will still process specific results.

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

(TestExpectationUpdater.init):
(TestExpectationUpdater._bot_type):
(TestExpectationUpdater.do_update):

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

(MockAttachment):
(MockAttachment.init):
(MockAttachment.contents):
(MockBugzilla):
(MockBugzilla.init):
(MockBugzilla.fetch_bug):
(MockBugzilla.attachments):
(MockZip):
(MockZip.init):
(MockZip.unzip):
(MockZip.read):
(TestExpectationUpdaterTest.test_update_test_expectations):
(TestExpectationUpdaterTest):
(TestExpectationUpdaterTest.test_update_win_future_test_expectations):

9:57 PM Changeset in webkit [230324] by Alan Bujtas
  • 4 edits
    1 add in trunk/Tools

[LayoutReloaded] Fix static position for floating boxes when they don't fit the current line
https://bugs.webkit.org/show_bug.cgi?id=184354

Reviewed by Antti Koivisto.

Do not shrink the current line with the floating box unless it is on the current line.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._handleFloatingBox):
(InlineFormattingContext.prototype._mapFloatingVerticalPosition):

  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:

(Line.prototype.addFloatingBox):
(Line):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-with-right-floats3.html: Added.
9:44 PM Changeset in webkit [230323] by Brent Fulgham
  • 9 edits in trunk/Source

WebContent process is calling CGDisplayUsesInvertedPolarity
https://bugs.webkit.org/show_bug.cgi?id=184337
<rdar://problem/39215702>

Reviewed by Zalan Bujtas.

The PlatformScreenMac code is still calling display-related routines directly, specifically
CGDisplayUsesInvertedPolarity and CGDisplayUsesForceToGray. These should be brokered from
the UIProcess.

There's also no reason to avoid the brokering behavior on current WebKit builds. Remove
the compile guards so all macOS builds use this behavior.

Finally, add some ProcessPrivilege assertions to guard against accidentally calling these
routines in the future.

Source/WebCore:

Tested by existing regression tests.

  • platform/PlatformScreen.h:
  • platform/ScreenProperties.h:

(WebCore::ScreenProperties::encode const): Add new values.
(WebCore::ScreenProperties::decode):

  • platform/mac/PlatformScreenMac.mm:

(WebCore::displayID): Add assertion that this is not calling display-related routines in
the WebContent process.
(WebCore::firstScreen): Ditto.
(WebCore::screenProperties): Moved higher in the file so it can be reused. Add calls to
CGDisplayUsesInvertedPolarity and CGDisplayUsesForceToGray.
(WebCore::getScreenProperties): Moved higher in the file so it can be reused. Stop
double-hashing displayID.
(WebCore::screenIsMonochrome): Use cached values in WebContent process. Assert if this
code attempts a display-related routine in the WebContent process.
(WebCore::screenHasInvertedColors): Ditto.
(WebCore::screenDepth): Add assertion that this is not calling display-related routines in
the WebContent process.
(WebCore::screenDepthPerComponent): Ditto.
(WebCore::screenRect): Ditto.
(WebCore::screenAvailableRect): Ditto.
(WebCore::screen): Ditto.
(WebCore::screenColorSpace): Ditto.
(WebCore::screenSupportsExtendedColor): Ditto.

Source/WebKit:

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::initializeNewWebProcess): Activate screen brokering code for all builds.

  • WebProcess/WebProcess.cpp: Ditto.
  • WebProcess/WebProcess.h: Ditto.
  • WebProcess/WebProcess.messages.in: Ditto.
8:18 PM Changeset in webkit [230322] by Dewei Zhu
  • 2 edits in trunk/Websites/perf.webkit.org

Fix a bug introduced in r230295 that A/B test result is not shown.
https://bugs.webkit.org/show_bug.cgi?id=184350

Reviewed by Ryosuke Niwa.

result.label should be assigned in TestGroup._computeRequestedCommitSets.

  • public/v3/models/test-group.js:

(TestGroup.prototype._computeRequestedCommitSets):

8:10 PM Changeset in webkit [230321] by Alan Bujtas
  • 4 edits
    2 adds in trunk/Tools

[LayoutReloaded] Add support for right floating boxes in inline formatting context
https://bugs.webkit.org/show_bug.cgi?id=184351

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._handleFloatingBox):
(InlineFormattingContext.prototype._mapFloatingVerticalPosition):

  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:

(Line.prototype.addFloatingBox):
(Line):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-with-right-float-simple.html: Added.
  • LayoutReloaded/test/inline-with-right-floats2.html: Added.
7:38 PM Changeset in webkit [230320] by Ross Kirsling
  • 1 edit
    1 add in trunk/JSTests

[test262] Mark line-terminator-normalisation-CR.js as a binary file.
https://bugs.webkit.org/show_bug.cgi?id=184341

Reviewed by Yusuke Suzuki.

This test is all about CR line endings, but svn-apply can't deal with them.
Treating the file as binary ensures that its contents never are never shown in a diff.

  • .gitattributes: Added.
7:25 PM Changeset in webkit [230319] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Apply cookie blocking to setCookiesFromDOM()
https://bugs.webkit.org/show_bug.cgi?id=184346
<rdar://problem/39226036>

Reviewed by Brent Fulgham.

Since these cookies can't be seen and are not sent in requests, I
can't write an automated test for them. This really should have been
done as part of: https://bugs.webkit.org/show_bug.cgi?id=180682.
That said, I have tested this manually.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::setCookiesFromDOM):

7:12 PM Changeset in webkit [230318] by Alan Bujtas
  • 5 edits
    1 add in trunk/Tools

[LayoutReloaded] Move floating box to the next line when needed
https://bugs.webkit.org/show_bug.cgi?id=184349

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleContent):
(InlineFormattingContext.prototype._handleText):
(InlineFormattingContext.prototype._handleFloatingBox):
(InlineFormattingContext.prototype._mapFloatingHorizontalPosition):
(InlineFormattingContext):
(InlineFormattingContext.prototype._handleFloatingBoxes): Deleted.
(InlineFormattingContext.prototype._floatingBoxes): Deleted.

  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:

(Line.prototype.addTextLineBox):
(Line.prototype.addFloatingBox):
(Line):

  • LayoutReloaded/Utils.js:

(LayoutRect.prototype.moveHorizontally):
(LayoutRect.prototype.moveVertically):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-with-floats-when-they-dont-fit.html: Added.
6:29 PM Changeset in webkit [230317] by sbarati@apple.com
  • 4 edits in trunk/Source/bmalloc

IsoHeapImpl not IsoHeapImplBase should add itself to AllIsoHeaps
https://bugs.webkit.org/show_bug.cgi?id=184174

Reviewed by Filip Pizlo.

Otherwise, another thread may see a non-fully formed IsoHeapImpl.

  • bmalloc/IsoHeapImpl.cpp:

(bmalloc::IsoHeapImplBase::IsoHeapImplBase):
(bmalloc::IsoHeapImplBase::addToAllIsoHeaps):

  • bmalloc/IsoHeapImpl.h:
  • bmalloc/IsoHeapImplInlines.h:

(bmalloc::IsoHeapImpl<Config>::IsoHeapImpl):

5:45 PM Changeset in webkit [230316] by jmarcell@apple.com
  • 1 copy in tags/Safari-605.2.2

Tag Safari-605.2.2.

4:18 PM Changeset in webkit [230315] by beidson@apple.com
  • 4 edits in trunk

Process Swap on Navigation causes many webpages to hang due to attempted process swap for iframe navigations.
<rdar://problem/39162236> and https://bugs.webkit.org/show_bug.cgi?id=184318

Reviewed by Andy Estes.

Source/WebKit:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedPolicyDecision): Don't consider a swap if the navigation is not in the main frame.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONMessageHandler userContentController:didReceiveScriptMessage:]):
(-[PSONScheme addMappingFromURLString:toData:]):
(-[PSONScheme webView:startURLSchemeTask:]):

2:21 PM Changeset in webkit [230314] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebKit

WebContent process sometimes hangs in WebProcess::ensureNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=184326

Reviewed by Chris Dumez.

The hang was caused by UI process never sending the reply back to GetNetworkProcessConnection
due to m_pendingOutgoingMachMessage being set and the event handler for DISPATCH_MACH_SEND_POSSIBLE
never getting called. This is because the event handler registration happens asynchronously,
and may not have completed by the time we send the first IPC to the web content process
in which case it can timeout and we may never get the callback.

Fixed the hang by waiting for the event handler registration to be completed using
dispatch_source_set_registration_handler. To do this, this patch adds a new boolean instance variable,
m_isInitializingSendSource, to Connection which is set to true between the time mach port is created
and until the event handler registration has been completed. platformCanSendOutgoingMessages returns
false while m_isInitializingSendSource is set to prevent the attempt to send messages like we do when
m_pendingOutgoingMachMessage is set to true.

  • Platform/IPC/Connection.h:

(IPC::Connection::m_isInitializingSendSource): Added.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInvalidate): Set m_isInitializingSendSource to false.
(IPC::Connection::sendMessage): Assert that m_isInitializingSendSource is false.
(IPC::Connection::platformCanSendOutgoingMessages const): Return false if m_isInitializingSendSource
is set to true.
(IPC::Connection::sendOutgoingMessage): Assert that m_isInitializingSendSource is false.
(IPC::Connection::initializeSendSource): Set m_isInitializingSendSource to true temporarily until
dispatch_source_set_registration_handler's callback is called. Resume and send any pending outgoing
messages.
(IPC::Connection::resumeSendSource): Extracted from initializeSendSource.

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

Folding anonymous blocks should not result in deleting content.
https://bugs.webkit.org/show_bug.cgi?id=184339
<rdar://problem/37327428>

Reviewed by Antti Koivisto.

Source/WebCore:

While folding multiple anonymous blocks (moving the children from next sibling over to previous sibling)
we should ensure that the block we are about to destroy does not gain new descendants.
In case of 4 sibling anonymous blocks (A B C D), while destroying B

  1. we move C's children to A and destroy C.
  2. While destroying C, we notice B and C as sibling anonymous blocks and we move

D's children over to B (even though B is going to be destroyed as we climb back on the stack).

In this patch, B is detached from the tree before we start moving renderers around so that a subsequent folding won't
find B anymore as a candidate.

Test: fast/block/crash-while-folding-anonymous-blocks.html

  • rendering/updating/RenderTreeBuilderBlock.cpp:

(WebCore::RenderTreeBuilder::Block::detach):

LayoutTests:

  • fast/block/crash-when-subtree-is-still-attached-expected.txt: Progressing. This test does not

intend to remove "foobar" text at all.

  • fast/block/crash-while-folding-anonymous-blocks-expected.txt: Added.
  • fast/block/crash-while-folding-anonymous-blocks.html: Added.
1:09 PM Changeset in webkit [230312] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Mark Payment Request as "Supported" in features.json
https://bugs.webkit.org/show_bug.cgi?id=184338

Reviewed by Anders Carlsson.

  • features.json:
1:02 PM Changeset in webkit [230311] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Add necessary colon to CFNetwork selector
https://bugs.webkit.org/show_bug.cgi?id=184335
<rdar://problem/39213124>

Reviewed by Brent Fulgham.

  • pal/spi/cf/CFNetworkSPI.h:

(setIgnoreHSTS):

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

[MIPS] Optimize generated JIT code for branches
https://bugs.webkit.org/show_bug.cgi?id=183130

Patch by Stanislav Ocovaj <stanislav.ocovaj@rt-rk.com> on 2018-04-05
Reviewed by Yusuke Suzuki.

The patch https://bugs.webkit.org/show_bug.cgi?id=101328 added two nop instructions to
branchEqual() and branchNotEqual() in order to allow the code generated by branchPtrWithPatch()
to be reverted back to branchPtrWithPatch after replacing it with a 4-instruction jump.
However, this adds a significant overhead for all other types of branches. Since these nop's
protect the code that is generated by branchPtrWithPatch, this function seems like a better
place to add them.

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::repatchInt32):
(JSC::MIPSAssembler::revertJumpToMove):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::branchAdd32):
(JSC::MacroAssemblerMIPS::branchMul32):
(JSC::MacroAssemblerMIPS::branchSub32):
(JSC::MacroAssemblerMIPS::branchNeg32):
(JSC::MacroAssemblerMIPS::branchPtrWithPatch):
(JSC::MacroAssemblerMIPS::branchEqual):
(JSC::MacroAssemblerMIPS::branchNotEqual):

12:03 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
11:50 AM Changeset in webkit [230309] by jmarcell@apple.com
  • 2 edits in branches/safari-605-branch/Source/WebCore

Cherry-pick r228334. rdar://problem/38712636

11:07 AM Changeset in webkit [230308] by Yusuke Suzuki
  • 37 edits
    1 move
    1 delete in trunk/Source/bmalloc

bmalloc StaticMutex's constructor should be constexpr
https://bugs.webkit.org/show_bug.cgi?id=180600

Reviewed by Mark Lam.

StaticMutex and Mutex can be unified. This patch changes std::atomic_flag in StaticMutex
to std::atomic<bool> to add constexpr constructor to StaticMutex. Then, StaticMutex can
be initialized in static storage without calling any static initializers.
And we also rename StaticMutex to Mutex simply.

  • CMakeLists.txt:
  • bmalloc.xcodeproj/project.pbxproj:
  • bmalloc/AllIsoHeaps.cpp:

(bmalloc::AllIsoHeaps::AllIsoHeaps):

  • bmalloc/AllIsoHeaps.h:
  • bmalloc/Allocator.cpp:

(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::refillAllocatorSlowCase):
(bmalloc::Allocator::allocateLarge):

  • bmalloc/CryptoRandom.cpp:

(bmalloc::ARC4RandomNumberGenerator::ARC4RandomNumberGenerator):

  • bmalloc/Deallocator.cpp:

(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):

  • bmalloc/Deallocator.h:

(bmalloc::Deallocator::lineCache):

  • bmalloc/DebugHeap.cpp:

(bmalloc::DebugHeap::DebugHeap):

  • bmalloc/DebugHeap.h:
  • bmalloc/Environment.cpp:

(bmalloc::Environment::Environment):

  • bmalloc/Environment.h:
  • bmalloc/Gigacage.cpp:

(Gigacage::disablePrimitiveGigacage):
(Gigacage::addPrimitiveDisableCallback):
(Gigacage::removePrimitiveDisableCallback):

  • bmalloc/Heap.cpp:

(bmalloc::Heap::Heap):
(bmalloc::Heap::freeableMemory):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::deallocateLineCache):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):

  • bmalloc/Heap.h:

(bmalloc::Heap::mutex):
(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine):

  • bmalloc/IsoDeallocator.h:
  • bmalloc/IsoHeap.h:
  • bmalloc/IsoTLSDeallocatorEntry.h:
  • bmalloc/IsoTLSDeallocatorEntryInlines.h:

(bmalloc::IsoTLSDeallocatorEntry<Config>::IsoTLSDeallocatorEntry):

  • bmalloc/IsoTLSInlines.h:

(bmalloc::IsoTLS::ensureHeap):

  • bmalloc/IsoTLSLayout.cpp:

(bmalloc::IsoTLSLayout::IsoTLSLayout):
(bmalloc::IsoTLSLayout::add):

  • bmalloc/IsoTLSLayout.h:
  • bmalloc/Mutex.cpp: Renamed from Source/bmalloc/bmalloc/StaticMutex.cpp.

(bmalloc::Mutex::lockSlowCase):

  • bmalloc/Mutex.h:

(bmalloc::sleep):
(bmalloc::waitUntilFalse):
(bmalloc::Mutex::try_lock):
(bmalloc::Mutex::lock):
(bmalloc::Mutex::unlock):
(bmalloc::Mutex::Mutex): Deleted.

  • bmalloc/ObjectType.cpp:

(bmalloc::objectType):

  • bmalloc/PerProcess.cpp:

(bmalloc::getPerProcessData):

  • bmalloc/PerProcess.h:

(bmalloc::PerProcess::mutex):
(bmalloc::PerProcess::getSlowCase):

  • bmalloc/Scavenger.cpp:

(bmalloc::Scavenger::Scavenger):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::freeableMemory):

  • bmalloc/Scavenger.h:
  • bmalloc/SmallLine.h:

(bmalloc::SmallLine::refCount):
(bmalloc::SmallLine::ref):
(bmalloc::SmallLine::deref):

  • bmalloc/SmallPage.h:

(bmalloc::SmallPage::refCount):
(bmalloc::SmallPage::hasFreeLines const):
(bmalloc::SmallPage::setHasFreeLines):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref):

  • bmalloc/StaticMutex.h: Removed.
  • bmalloc/VMHeap.cpp:

(bmalloc::VMHeap::VMHeap):

  • bmalloc/VMHeap.h:
  • bmalloc/Zone.cpp:

(bmalloc::Zone::Zone):

  • bmalloc/Zone.h:
  • bmalloc/bmalloc.cpp:

(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
(bmalloc::api::isEnabled):
(bmalloc::api::setScavengerThreadQOSClass):

  • bmalloc/bmalloc.h:
10:43 AM Changeset in webkit [230307] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

WebRTC data channel only applications require capture permissions for direct connections
https://bugs.webkit.org/show_bug.cgi?id=174500
<rdar://problem/34134281>

Unreviewed.
Changed the code to suppress: "error: unused variable 'error' [-Werror,-Wunused-variable]"
Added some logging to this error case as a side bonus.

  • NetworkProcess/webrtc/NetworkMDNSRegister.cpp:

(WebKit::NetworkMDNSRegister::registerMDNSName):

10:37 AM Changeset in webkit [230306] by Ryan Haddad
  • 2 edits in trunk/JSTests

Fix testcase (missing try/catch).
https://bugs.webkit.org/show_bug.cgi?id=183657

Unreviewed.

  • stress/large-unshift-splice.js

Patch by Robin Morisset <rmorisset@apple.com> on 2018-04-05

10:32 AM Changeset in webkit [230305] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r230042.

It is no longer needed now that it is safe to construct a
SecurityOrigin from an on-main thread

Reverted changeset:

"WebSocket::didReceiveMessage() may construct a SecurityOrigin
object on a non-main thread"
https://bugs.webkit.org/show_bug.cgi?id=184068
https://trac.webkit.org/changeset/230042

10:22 AM Changeset in webkit [230304] by Ryan Haddad
  • 3 edits
    2 copies in trunk/LayoutTests

Rebaseline tests for High Sierra.

Unreviewed test gardening.

  • platform/mac-sierra/fast/forms/input-table-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-table-expected.txt.
  • platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
10:22 AM Changeset in webkit [230303] by Yusuke Suzuki
  • 74 edits in trunk

[WTF] Remove StaticLock
https://bugs.webkit.org/show_bug.cgi?id=184332

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • API/JSValue.mm:

(handerForStructTag):

  • API/JSVirtualMachine.mm:

(+[JSVMWrapperCache addWrapper:forJSContextGroupRef:]):
(+[JSVMWrapperCache wrapperForJSContextGroupRef:]):

  • API/glib/JSCVirtualMachine.cpp:

(addWrapper):
(removeWrapper):

  • assembler/testmasm.cpp:
  • b3/air/testair.cpp:
  • b3/testb3.cpp:
  • bytecode/SuperSampler.cpp:
  • dfg/DFGCommon.cpp:
  • dfg/DFGCommonData.cpp:
  • dynbench.cpp:
  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • inspector/remote/cocoa/RemoteConnectionToTargetCocoa.mm:

(Inspector::RemoteTargetHandleRunSourceGlobal):
(Inspector::RemoteTargetQueueTaskOnGlobalQueue):

  • interpreter/CLoopStack.cpp:
  • parser/SourceProvider.cpp:
  • profiler/ProfilerDatabase.cpp:
  • profiler/ProfilerUID.cpp:

(JSC::Profiler::UID::create):

  • runtime/IntlObject.cpp:

(JSC::numberingSystemsForLocale):

  • runtime/JSLock.cpp:
  • runtime/JSLock.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::registerForReportAtExit):

  • runtime/VM.cpp:
  • wasm/WasmFaultSignalHandler.cpp:

Source/WebCore:

No behavior change.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::closeDatabase):
(WebCore::Database::getCachedVersion const):
(WebCore::Database::setCachedVersion):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::openDatabaseMutex):

  • Modules/webdatabase/DatabaseTracker.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::allActiveWebSocketsMutex):

  • Modules/websockets/WebSocket.h:
  • bridge/objc/WebScriptObject.mm:
  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::identifier):
(WebCore::CryptoAlgorithmRegistry::name):
(WebCore::CryptoAlgorithmRegistry::create):
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):

  • dom/Node.cpp:
  • platform/URL.cpp:
  • platform/graphics/FontCache.cpp:
  • platform/graphics/MediaPlayer.cpp:
  • platform/ios/QuickLook.mm:
  • platform/ios/WebSQLiteDatabaseTrackerClient.mm:
  • platform/ios/wak/WebCoreThread.mm:
  • platform/ios/wak/WebCoreThreadRun.cpp:
  • platform/network/cf/LoaderRunLoopCF.cpp:

(WebCore::loaderRunLoop):

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlShareHandle::mutexFor):

  • platform/network/curl/CurlContext.h:
  • platform/sql/SQLiteDatabaseTracker.cpp:

(WebCore::SQLiteDatabaseTracker::incrementTransactionInProgressCount):
(WebCore::SQLiteDatabaseTracker::decrementTransactionInProgressCount):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::buildBaseTextCodecMaps):
(WebCore::newTextCodec):
(WebCore::atomicCanonicalTextEncodingName):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThreadCount):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::~WorkerThread):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebFixedPositionContent.mm:

Source/WebKitLegacy/mac:

  • DOM/DOMInternal.mm:

(getDOMWrapper):
(addDOMWrapper):
(removeDOMWrapper):

Source/WebKitLegacy/win:

  • WebKitQuartzCoreAdditions/CAView.cpp:

(WKQCA::CAView::releaseAllD3DResources):

  • WebLocalizableStrings.cpp:

Source/WTF:

Now, WTF::StaticLock is using StaticLock = Lock. Lock just works
in either static storage and dynamic storage. Remove StaticLock and
always use Lock.

We also remove StaticWordLock and StaticReadWriteLock. And we add
WTF::RecursiveLock, which is RecursiveLockAdapter<Lock>.

  • wtf/HashTable.cpp:

(WTF::HashTableStats::recordCollisionAtCount):
(WTF::HashTableStats::dumpStats):

  • wtf/Language.cpp:

(WTF::userPreferredLanguages):

  • wtf/Lock.h:
  • wtf/MainThread.cpp:

(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):

  • wtf/ParkingLot.cpp:
  • wtf/ReadWriteLock.h:
  • wtf/RecursiveLockAdapter.h:
  • wtf/StackStats.cpp:

(WTF::StackStats::CheckPoint::CheckPoint):
(WTF::StackStats::CheckPoint::~CheckPoint):
(WTF::StackStats::probe):
(WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
(WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):

  • wtf/StackStats.h:
  • wtf/ThreadMessage.cpp:

(WTF::sendMessageScoped):

  • wtf/ThreadingPthreads.cpp:
  • wtf/ThreadingWin.cpp:
  • wtf/WordLock.h:
  • wtf/cf/LanguageCF.cpp:

(WTF::languagePreferencesDidChange):
(WTF::platformUserPreferredLanguages):

  • wtf/dtoa.cpp:
  • wtf/text/AtomicStringImpl.cpp:
  • wtf/text/StringView.cpp:

(WTF::StringView::invalidate):
(WTF::StringView::adoptUnderlyingString):
(WTF::StringView::setUnderlyingString):

  • wtf/unicode/icu/CollatorICU.cpp:

(WTF::Collator::Collator):
(WTF::Collator::~Collator):

  • wtf/win/LanguageWin.cpp:

(WTF::platformLanguage):

Tools:

  • DumpRenderTree/JavaScriptThreading.cpp:
10:05 AM Changeset in webkit [230302] by jmarcell@apple.com
  • 8 edits
    2 adds in branches/safari-605-branch

Cherry-pick r230287. rdar://problem/39208588

REGRESSION(r222563): removed DoubleReal type check causes tons of crashes because CSE has never known how to handle SaneChain
https://bugs.webkit.org/show_bug.cgi?id=184319

Reviewed by Saam Barati.

JSTests:

  • stress/array-push-nan-to-double-array-cse-sane-and-insane-chain.js: Added. (foo): (bar):
  • stress/array-push-nan-to-double-array.js: Added. (foo): (bar):

Source/JavaScriptCore:

In r222581, we replaced type checks about DoubleReal in ArrayPush in the DFG/FTL backends with
assertions. That's correct because FixupPhase was emitting those checks as Check(DoubleRealRep:) before
the ArrayPush.

But this revealed a longstanding CSE bug: CSE will happily match a SaneChain GetByVal with a InBounds
GetByVal. SaneChain can return NaN while InBounds cannot. This means that if we first use AI to
eliminate the Check(DoubleRealRep:) based on the input being a GetByVal(InBounds) but then replace that
with a GetByVal(SaneChain), then we will hit the assertion.

This teaches CSE to not replace GetByVal(InBounds) with GetByVal(SaneChain) and vice versa. That gets
tricky because PutByVal can match either. So, we use the fact that it's legal for a store to def() more
than once: PutByVal now defs() a HeapLocation for InBounds and a HeapLocation for SaneChain.

  • dfg/DFGCSEPhase.cpp:
  • dfg/DFGClobberize.h: (JSC::DFG::clobberize):
  • dfg/DFGHeapLocation.cpp: (WTF::printInternal):
  • dfg/DFGHeapLocation.h:
  • dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileArrayPush):

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

10:05 AM Changeset in webkit [230301] by jmarcell@apple.com
  • 4 edits
    7 adds in branches/safari-605-branch

Apply patch. rdar://problem/39191858

fix-httponly-cookie

8:50 AM Changeset in webkit [230300] by Alan Bujtas
  • 4 edits
    1 add in trunk/Tools

[LayoutReloaded] Find the correct left edge for a line when floating boxes are in parent formatting context.
https://bugs.webkit.org/show_bug.cgi?id=184330

Reviewed by Antti Koivisto.

In inline formatting context, the floating boxes can come from the parent (block) formatting context. Let's
take them into account when computing the line edges.

  • LayoutReloaded/FormattingContext/FloatingContext.js:

(FloatingContext.prototype.left):
(FloatingContext.prototype.right):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._createNewLine):
(InlineFormattingContext.prototype._mapFloatingVerticalPosition):
(InlineFormattingContext.prototype._mapFloatingHorizontalPosition):
(InlineFormattingContext.prototype._mapFloatingPosition): Deleted.

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/multiple-left-floats-on-line-from-parent-formatting-context.html: Added.
8:21 AM Changeset in webkit [230299] by Alan Bujtas
  • 4 edits
    1 add in trunk/Tools

[LayoutReloaded] Collect floating boxes in inline formatting context and layout them first.
https://bugs.webkit.org/show_bug.cgi?id=184329

Reviewed by Antti Koivisto.

Let's do this for now. There might be some cases where this violates layout.

  • LayoutReloaded/FormattingContext/FormattingContext.js:

(FormattingContext.prototype._outOfFlowDescendants):
(FormattingContext):

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleFloatingBoxes):
(InlineFormattingContext.prototype._handleFloatingBox):
(InlineFormattingContext.prototype._floatingBoxes):
(InlineFormattingContext):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/multiple-left-floats-on-line-simple.html: Added.
2:01 AM Changeset in webkit [230298] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

REGRESSION(r229831): Test WebKit2.ProvisionalURLAfterWillSendRequestCallback times out since r229831
https://bugs.webkit.org/show_bug.cgi?id=184293

Reviewed by Alex Christensen.

The problem is that after willSendRequest callback changes the request, the load is cancelled while
transitioning to committed state. This happens because the load is not waiting for the response policy check, so
it continues and when transitioning to committed, FrameLoader::closeURL() invalidates the current policy check
that causes a load failure. The new request returned by the API doesn't have any requester, so it's no longer
considered a main resource load. In the network process the resource load task doesn't wait for the response
policy and continues the load, sending the data to the web process. Once the first data is received, the load
transitions to commit, but the response policy check is still ongoing. This can only happen when using the C API
(I don't know about the Cocoa API), but not with the GLib API because it doesn't allow to create a new request,
only to modify the passed in one. With the C API we loss other internal things of the request like the priority,
but I guess the most important one is the requester.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillSendRequest):

1:00 AM Changeset in webkit [230297] by commit-queue@webkit.org
  • 2 edits
    4 adds in trunk/Source/ThirdParty/libwebrtc

[GTK] Add CMake package search for vpx and libevent libraries
https://bugs.webkit.org/show_bug.cgi?id=184257

Patch by Alejandro G. Castro <alex@igalia.com> on 2018-04-05
Reviewed by Michael Catanzaro.

Add new cmake search files for libevent, vpx and alsa-lib, this
makes a cleaner detection of the libraries.

  • CMakeLists.txt: Use the new cmake find files to detect the

package and add a better error message when the library is not
there.

  • Source/cmake/FindAlsaLib.cmake: Added.
  • Source/cmake/FindLibEvent.cmake: Added.
  • Source/cmake/FindVpx.cmake: Added.
Note: See TracTimeline for information about the timeline view.