keith_miller@apple.com [Fri, 4 May 2018 20:47:57 +0000 (20:47 +0000)]
isCacheableArrayLength should return true for undecided arrays
https://bugs.webkit.org/show_bug.cgi?id=185309
Reviewed by Michael Saboff.
JSTests:
* stress/get-array-length-undecided.js: Added.
(test):
Source/JavaScriptCore:
Undecided arrays have butterflies so there is no reason why we
should not be able to cache their length.
* bytecode/InlineAccess.cpp:
(JSC::InlineAccess::isCacheableArrayLength):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231375
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Fri, 4 May 2018 20:44:36 +0000 (20:44 +0000)]
Adjust sandbox profile for simulator.
https://bugs.webkit.org/show_bug.cgi?id=185319
Reviewed by Brent Fulgham.
Disable Kerberos rules, as well as rules related to NSApplication initialization.
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231374
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 20:40:24 +0000 (20:40 +0000)]
Test262-Runner: Add base module to the local deps - unicore/PVA.pl
https://bugs.webkit.org/show_bug.cgi?id=185314
Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-04
Reviewed by Michael Saboff.
* Scripts/test262/local/lib/perl5/unicore/PVA.pl: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231373
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
webkit@devinrousso.com [Fri, 4 May 2018 20:29:24 +0000 (20:29 +0000)]
Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first
https://bugs.webkit.org/show_bug.cgi?id=181973
Reviewed by Matt Baker.
Unified delegate functions to start editing previous/next rules into a single function for
simplicity.
* UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
* UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted.
* UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted.
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted.
* UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox):
(WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
(WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):
Drive-by fix: provide tabbing support for the Computed styles panel.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
(WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
(WI.ComputedStyleDetailsPanel.prototype.focusLastSection):
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231372
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Fri, 4 May 2018 19:42:40 +0000 (19:42 +0000)]
Wasted time dlopening Lookup when tearing down a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=185310
<rdar://problem/
39934085>
Reviewed by Wenson Hsieh.
* UIProcess/Cocoa/WebViewImpl.h:
* UIProcess/Cocoa/WebViewImpl.mm:
(-[WKWindowVisibilityObserver dealloc]):
(-[WKWindowVisibilityObserver startObservingLookupDismissalIfNeeded]):
(WebKit::WebViewImpl::prepareForDictionaryLookup):
(-[WKWindowVisibilityObserver startObservingLookupDismissal]): Deleted.
Avoid un-registering as a Lookup dismissal observer if we never
registered in the first place, because that involves dlopening Lookup.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231371
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
megan_gardner@apple.com [Fri, 4 May 2018 19:16:40 +0000 (19:16 +0000)]
Allow Web Touch events to timeout
https://bugs.webkit.org/show_bug.cgi?id=185282
<rdar://problem/
38728319>
Reviewed by Tim Horton.
Web Touch events currently never time out, which blocks the user from interacting with the UI Process at all.
We should allow these events to time out so that the user can interact with the rest of the UI.
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::handleTouchEventSynchronously):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231370
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 18:52:47 +0000 (18:52 +0000)]
REGRESSION: [ios-simulator] 3 WKWebViewAutofillTests API test failures seen with 11.3 SDK
https://bugs.webkit.org/show_bug.cgi?id=184196
<rdar://problem/
39054481>
Patch by Wenson Hsieh <whsieh@berkeley.edu> on 2018-05-04
Reviewed by Tim Horton.
Source/WebKit:
Remove an unnecessary call to NSClassFromString, now that trunk WebKit only supports iOS 11.3+.
* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView insertTextSuggestion:]):
Tools:
Removes some unnecessary workarounds to enable running app autofill tests against iOS versions
earlier than 11.3. Also re-enables these tests.
* TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:
(TestWebKitAPI::TEST):
(-[UITextAutofillSuggestion initWithUsername:password:]): Deleted.
(+[UITextAutofillSuggestion autofillSuggestionWithUsername:password:]): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231369
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
webkit@devinrousso.com [Fri, 4 May 2018 18:50:30 +0000 (18:50 +0000)]
Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
https://bugs.webkit.org/show_bug.cgi?id=184990
Reviewed by Brian Burg.
Source/WebInspectorUI:
* UserInterface/Models/RecordingAction.js:
(WI.RecordingAction.isFunctionForType):
(WI.RecordingAction._prototypeForType):
(WI.RecordingAction.prototype.async.swizzle):
LayoutTests:
* inspector/canvas/recording-2d-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231368
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Fri, 4 May 2018 18:44:47 +0000 (18:44 +0000)]
Unreviewed, rolling out r231331.
Caused a few tests to assert
Reverted changeset:
"Stop using an iframe's id as fallback if its name attribute
is not set"
https://bugs.webkit.org/show_bug.cgi?id=11388
https://trac.webkit.org/changeset/231331
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231367
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Fri, 4 May 2018 18:37:19 +0000 (18:37 +0000)]
Use more references in updateTracksOfType
https://bugs.webkit.org/show_bug.cgi?id=185305
Reviewed by Eric Carlson.
No change of behavior.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::updateTracksOfType):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231366
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Fri, 4 May 2018 18:35:59 +0000 (18:35 +0000)]
NetworkProcessProxy::didReceiveAuthenticationChallenge should take an AuthenticationChallenge r-value
https://bugs.webkit.org/show_bug.cgi?id=185302
Reviewed by Geoffrey Garen.
Pass AuthenticationChallenge as an r-value since it comes from IPC.
No change of behavior.
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
* UIProcess/Authentication/AuthenticationChallengeProxy.h:
(WebKit::AuthenticationChallengeProxy::create):
* UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):
* UIProcess/Downloads/DownloadProxy.h:
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
* UIProcess/Network/NetworkProcessProxy.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231365
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Fri, 4 May 2018 18:01:21 +0000 (18:01 +0000)]
Mark http/tests/contentextensions/make-https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184476
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231364
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Fri, 4 May 2018 18:01:18 +0000 (18:01 +0000)]
Mark media/navigate-with-pip-should-not-crash.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173119
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231363
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 17:46:47 +0000 (17:46 +0000)]
Disable tests on systems with limited memory
https://bugs.webkit.org/show_bug.cgi?id=185296
Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-04
Reviewed by Saam Barati.
Test doesn't work with a limited amount of memory. I tried to reduce memory usage
but then it was hard to reproduce the failure the test was originally made to test.
* stress/array-reverse-doesnt-clobber.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231362
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mmaxfield@apple.com [Fri, 4 May 2018 17:38:54 +0000 (17:38 +0000)]
Text shaping in the simple path is flipped in the y direction
https://bugs.webkit.org/show_bug.cgi?id=185062
<rdar://problem/
39778678>
Reviewed by Simon Fraser.
Source/WebCore:
Shaping in our simple codepath occurs in an "increasing-y-goes-up" coordinate system, but our painting
code uses an "increasing-y-goes-down" coordinate system. We weren't fixing up the coordinate systems
because we never noticed. This is because the simple codepath is only designed for kerning and ligatures,
neither of which move glyphs vertically in the common case.
Test: fast/text/vertical-displacement-simple-codepath.html
* platform/graphics/Font.cpp:
(WebCore::Font::applyTransforms const):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyFontTransforms):
Tools:
Huge thanks to Ulrike Rausch of LiebeFonts for contributing the test fonts!!!
* Scripts/webkitpy/common/config/contributors.json:
LayoutTests:
This test renders a font which uses our fast text codepath but also includes vertical
displacements inside its liga feature. The test makes sure that the vertical displacement
occurs in the correct direction.
The test fonts were created by Ulrike Rausch of LiebeFonts specifically for the purpose
of testing. Huge thanks to her!! Figuring out this bug would not have been possible if
not for her huge help!
* fast/text/resources/LiebeTest-calt.woff: Added.
* fast/text/resources/LiebeTest-dlig.woff: Added.
* fast/text/resources/LiebeTest-liga.woff: Added.
* fast/text/resources/LiebeTest-swsh.woff: Added.
* fast/text/vertical-displacement-simple-codepath-expected.html: Added.
* fast/text/vertical-displacement-simple-codepath.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231361
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 17:36:34 +0000 (17:36 +0000)]
Test262-Runner: place the processCLI inside the main call
https://bugs.webkit.org/show_bug.cgi?id=185304
Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-04
Reviewed by Michael Saboff.
* Scripts/test262/Runner.pm:
(main):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231360
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 17:32:48 +0000 (17:32 +0000)]
Serialize all URLs with double-quotes per CSSOM spec
https://bugs.webkit.org/show_bug.cgi?id=184935
Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-04
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Update expectations for using double quotes when serializing URLs.
* web-platform-tests/cssom/serialize-values-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
Source/WebCore:
According to https://drafts.csswg.org/cssom/#serialize-a-url, all URLs should be serialized as strings,
which means they should have double quotes around the text of the URL. Update our implementation to match
this (and Firefox/Chrome). Also remove isCSSTokenizerURL() as this method is no longer needed.
Tests: Many LayoutTests updated to use double quotes.
* css/CSSMarkup.cpp:
(WebCore::serializeString): Remove FIXME as this was already fixed in a previous patch.
(WebCore::serializeURL): Remove FIXME and update implementation.
LayoutTests:
Update tests to use double quotes when serializing URLs, and fixes for using double quotes in the test.
* css3/calc/cross-fade-calc.html:
* css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
* css3/filters/backdrop/backdropfilter-property-computed-style.html:
* css3/filters/backdrop/backdropfilter-property-parsing-expected.txt:
* css3/filters/backdrop/backdropfilter-property-parsing.html:
* css3/filters/filter-property-computed-style-expected.txt:
* css3/filters/filter-property-computed-style.html:
* css3/filters/filter-property-expected.txt:
* css3/filters/filter-property-parsing-expected.txt:
* css3/filters/filter-property-parsing.html:
* css3/filters/filter-property.html:
* css3/filters/unprefixed-expected.txt:
* css3/filters/unprefixed.html:
* fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
* fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
* fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
* fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
* fast/backgrounds/multiple-backgrounds-computed-style-expected.txt:
* fast/backgrounds/multiple-backgrounds-computed-style.html:
* fast/css/background-position-serialize-expected.txt:
* fast/css/cursor-parsing-expected.txt:
* fast/css/cursor-parsing-image-set-expected.txt:
* fast/css/cursor-parsing-image-set.html:
* fast/css/cursor-parsing.html:
* fast/css/getComputedStyle/computed-style-border-image-expected.txt:
* fast/css/getComputedStyle/computed-style-border-image.html:
* fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
* fast/css/getComputedStyle/computed-style-cross-fade.html:
* fast/css/getComputedStyle/computed-style-properties-expected.txt:
* fast/css/getComputedStyle/computed-style-properties.html:
* fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
* fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
* fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
* fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
* fast/css/image-set-parsing.html:
* fast/css/image-set-setting-expected.txt:
* fast/css/image-set-setting.html:
* fast/css/image-set-unprefixed-expected.txt:
* fast/css/image-set-unprefixed.html:
* fast/css/invalid-cursor-property-crash.html:
* fast/css/parse-border-image-repeat-null-crash-expected.txt:
* fast/css/uri-token-parsing-expected.txt:
* fast/css/uri-token-parsing.html:
* fast/css/url-with-multi-byte-unicode-escape-expected.txt:
* fast/css/url-with-multi-byte-unicode-escape.html:
* fast/filter-image/parse-filter-image-expected.txt:
* fast/filter-image/parse-filter-image.html:
* fast/innerHTML/innerHTML-uri-resolution.html:
* fast/inspector-support/cssURLQuotes-expected.txt:
* fast/inspector-support/cssURLQuotes.html:
* fast/masking/parsing-clip-path-iri-expected.txt:
* fast/masking/parsing-clip-path-iri.html:
* fast/masking/parsing-mask-expected.txt:
* fast/masking/parsing-mask.html:
* fast/shapes/parsing/parsing-shape-outside-expected.txt:
* fast/shapes/parsing/parsing-shape-outside.html:
* fast/shapes/parsing/parsing-test-utils.js:
(removeBaseURL):
* platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* platform/ios/fast/css/image-set-unprefixed-expected.txt: Removed.
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* platform/win/fast/css/parse-border-image-repeat-null-crash-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
* resources/image-preload-helper.js:
(preloadImagesFromStyle):
* svg/css/svg-attribute-parser-mode-expected.txt:
* svg/css/svg-attribute-parser-mode.html:
* svg/custom/marker-getPropertyValue-expected.txt:
* svg/custom/marker-getPropertyValue.svg:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231359
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Fri, 4 May 2018 17:24:08 +0000 (17:24 +0000)]
LayoutTests/fast/mediastream/change-tracks-media-stream-being-played.html is crashing after r231304
https://bugs.webkit.org/show_bug.cgi?id=185303
Reviewed by Eric Carlson.
We need to stop observing the audio track like we do for video track once we are no longer interested in it.
Covered by test no longer crashing.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231358
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 17:21:21 +0000 (17:21 +0000)]
Improve test at media/modern-media-controls/airplay-button/airplay-button-on.html to not hardcode the -apple-wireless-playback-target-active color
https://bugs.webkit.org/show_bug.cgi?id=185297
<rdar://problem/
39737716>
Patch by Antoine Quint <graouts@apple.com> on 2018-05-04
Reviewed by Dean Jackson.
Create an element and set its "color" property to "-apple-wireless-playback-target-active" so we can use
getComputedStyle() to query the applied value instead of hard-coding the expected color.
* media/modern-media-controls/airplay-button/airplay-button-on.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231357
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 16:51:16 +0000 (16:51 +0000)]
Assertion failure in NetworkStorageSession::setCookie: privilege of UI process is not set
https://bugs.webkit.org/show_bug.cgi?id=185262
Patch by Sihui Liu <sihui_liu@apple.com> on 2018-05-04
Reviewed by Chris Dumez.
Fix an assertion failure by setting UI process privileges in constructor of WebsiteDataStore
because UI process may use the cookie API before creating a WebView.
* UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::WebsiteDataStore):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231356
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Fri, 4 May 2018 16:30:27 +0000 (16:30 +0000)]
[LFC] Set the invalidation root as the result of style change.
https://bugs.webkit.org/show_bug.cgi?id=185301
Reviewed by Antti Koivisto.
Compute/propagate the update type on the ancestor chain and return the invalidation root
so that LayoutContext could use it as the entry point for the next layout frame.
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::styleChanged):
* layout/LayoutContext.h: order is not important.
* layout/blockformatting/BlockInvalidation.cpp:
(WebCore::Layout::invalidationStopsAtFormattingContextBoundary):
(WebCore::Layout::computeUpdateType):
(WebCore::Layout::computeUpdateTypeForAncestor):
(WebCore::Layout::BlockInvalidation::invalidate):
* layout/blockformatting/BlockInvalidation.h:
* layout/inlineformatting/InlineInvalidation.cpp:
(WebCore::Layout::InlineInvalidation::invalidate):
* layout/inlineformatting/InlineInvalidation.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231355
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Fri, 4 May 2018 16:15:12 +0000 (16:15 +0000)]
Adjust sandbox rules for simulator.
https://bugs.webkit.org/show_bug.cgi?id=185275
Reviewed by Brent Fulgham.
Enable rules related to CoreMedia for minimal simulator.
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231354
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
antti@apple.com [Fri, 4 May 2018 15:35:29 +0000 (15:35 +0000)]
OptionsSet initializer list constructor should be constexpr
https://bugs.webkit.org/show_bug.cgi?id=185298
Reviewed by Anders Carlsson.
* wtf/OptionSet.h:
(WTF::OptionSet::OptionSet):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231353
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Fri, 4 May 2018 15:18:34 +0000 (15:18 +0000)]
PeerConnection should have its connectionState closed even if doing gathering
https://bugs.webkit.org/show_bug.cgi?id=185267
Reviewed by Darin Adler.
Source/WebCore:
Test: webrtc/addICECandidate-closed.html
In case m_iceConnectionState is closed, m_connectionState should also be set to closed
and RTCPeerConnection should be closed so as to reject any other call.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::close):
(WebCore::RTCPeerConnection::updateConnectionState):
LayoutTests:
* webrtc/addICECandidate-closed-expected.txt: Added.
* webrtc/addICECandidate-closed.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231352
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 13:26:13 +0000 (13:26 +0000)]
[MSE][GStreamer] Delete properly the stream from the WebKitMediaSource
https://bugs.webkit.org/show_bug.cgi?id=185242
Patch by Yacine Bandou <yacine.bandou_ext@softathome.com> on 2018-05-04
Reviewed by Xabier Rodriguez-Calvar.
When the sourceBuffer is removed from mediasource, the appropriate stream is not
properly deleted from WebKitMediaSource, because the appsrc and parser elements
of the stream are not removed from the WebKitMediaSource bin.
This patch avoids the regression of r231089, see https://bugs.webkit.org/show_bug.cgi?id=185071
* platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
(webKitMediaSrcFreeStream):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231351
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Fri, 4 May 2018 10:14:27 +0000 (10:14 +0000)]
[GTK] Epiphany (GNOME Web) says "Error downloading: Service Unavailable." when trying to download an image from discogs.com
https://bugs.webkit.org/show_bug.cgi?id=174730
Reviewed by Michael Catanzaro.
Source/WebCore:
Export ResourceRequestBase::hasHTTPHeaderField().
* platform/network/ResourceRequestBase.h:
Source/WebKit:
The problem is that we don't send any User-Agent HTTP header for downloads started by WebProcessPool::download().
* UIProcess/API/glib/WebKitDownload.cpp:
(webkitDownloadUpdateRequest): Helper to update the cached request.
(webkitDownloadStarted): Updated the cached request if we have one.
(webkit_download_get_request): Use webkitDownloadUpdateRequest().
* UIProcess/API/glib/WebKitDownloadClient.cpp:
* UIProcess/API/glib/WebKitDownloadPrivate.h:
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::download): Set the User-Agent HTTP header if there isn't any.
Tools:
Update unit tests to check that User-Agent header is included in HTTP download requests.
* TestWebKitAPI/Tests/WebKitGLib/TestDownloads.cpp:
(testDownloadRemoteFile):
(testWebViewDownloadURI):
(testPolicyResponseDownload):
(testPolicyResponseDownloadCancel):
(testDownloadMIMEType):
(testContextMenuDownloadActions):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231350
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Fri, 4 May 2018 10:12:03 +0000 (10:12 +0000)]
[GTK] Some event tests failing after r230817
https://bugs.webkit.org/show_bug.cgi?id=185072
Reviewed by Michael Catanzaro.
Source/WebKit:
Do not send mouse move events to the WebProcess for crossing events during testing. WTR never generates crossing
events and they can confuse tests.
Fixes: editing/pasteboard/drag-link-with-data-transfer-adds-trusted-link-to-pasteboard.html
fast/css/user-drag-none.html
fast/events/context-activated-by-key-event.html
fast/events/drag-selects-image.html
fast/events/dropzone-005.html
fast/events/mouse-click-events.html
fast/events/mouse-cursor-change.html
* UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseCrossingNotifyEvent):
LayoutTests:
Remove expectations for tests that are passing now.
* platform/gtk/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231349
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Fri, 4 May 2018 06:03:42 +0000 (06:03 +0000)]
More aggressively terminate child processes when the connection to their parent process is severed
https://bugs.webkit.org/show_bug.cgi?id=177972
<rdar://problem/
33317607>
Reviewed by Geoff Garen.
More aggressively terminate child processes when the connection to their parent process is severed.
Previously, we would dispatch to the main thread and then exit the process. This would sometimes
cause the process to say alive for 10 seconds until our watchdog would forcefully terminate the
process. This could happen in particular when the main thread is blocked on a synchronous IPC.
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::didClose): Deleted.
* NetworkProcess/NetworkProcess.h:
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::didClose): Deleted.
* PluginProcess/PluginProcess.h:
* Shared/ChildProcess.cpp:
(WebKit::ChildProcess::didClose):
(WebKit::didCloseOnConnectionWorkQueue):
(WebKit::ChildProcess::terminationTimerFired):
* Shared/ChildProcess.h:
* StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::didClose): Deleted.
* StorageProcess/StorageProcess.h:
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didClose): Deleted.
* WebProcess/WebProcess.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231348
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Fri, 4 May 2018 05:32:41 +0000 (05:32 +0000)]
Remove std::random_shuffle
https://bugs.webkit.org/show_bug.cgi?id=185292
Reviewed by Darin Adler.
std::random_shuffle is deprecated in C++14 and removed in C++17,
since std::random_shuffle relies on rand and srand.
Use std::shuffle instead.
* jit/BinarySwitch.cpp:
(JSC::RandomNumberGenerator::RandomNumberGenerator):
(JSC::RandomNumberGenerator::operator()):
(JSC::RandomNumberGenerator::min):
(JSC::RandomNumberGenerator::max):
(JSC::BinarySwitch::build):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231347
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Fri, 4 May 2018 05:28:12 +0000 (05:28 +0000)]
Use subprocess.call instead of os.system to handle path with spaces
https://bugs.webkit.org/show_bug.cgi?id=185291
Reviewed by Darin Adler.
If gperf path includes spaces, these python scripts fail to execute gperf.
We use subprocess module instead of os.system to invoke gperf.
* css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
* css/makeSelectorPseudoElementsMap.py:
* platform/network/create-http-header-name-table:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231346
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
sbarati@apple.com [Fri, 4 May 2018 04:33:53 +0000 (04:33 +0000)]
Don't prevent CreateThis being folded to NewObject when the structure is poly proto
https://bugs.webkit.org/show_bug.cgi?id=185177
Reviewed by Filip Pizlo.
JSTests:
* microbenchmarks/construct-poly-proto-object.js: Added.
(foo.A):
(foo):
* stress/allocation-sinking-new-object-with-poly-proto.js: Added.
(foo.A):
(foo):
(makePolyProto):
(bar):
(baz):
Source/JavaScriptCore:
This patch teaches the DFG/FTL how to constant fold CreateThis with
a known poly proto Structure to NewObject. We do it by emitting a NewObject
followed by a PutByOffset for the prototype value.
We make it so that ObjectAllocationProfile holds the prototype value.
This is sound because JSFunction clears that profile when its 'prototype'
field changes.
This patch also renames underscoreProtoPrivateName to polyProtoName since
that name was nonsensical: it was only used for poly proto.
This is a 2x speedup on the get_callee_polymorphic microbenchmark. I had
regressed that benchmark when I first introduced poly proto.
* builtins/BuiltinNames.cpp:
* builtins/BuiltinNames.h:
(JSC::BuiltinNames::BuiltinNames):
(JSC::BuiltinNames::polyProtoName const):
(JSC::BuiltinNames::underscoreProtoPrivateName const): Deleted.
* bytecode/ObjectAllocationProfile.h:
(JSC::ObjectAllocationProfile::prototype):
(JSC::ObjectAllocationProfile::clear):
(JSC::ObjectAllocationProfile::visitAggregate):
* bytecode/ObjectAllocationProfileInlines.h:
(JSC::ObjectAllocationProfile::initializeProfile):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
* dfg/DFGOperations.cpp:
* runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
* runtime/FunctionRareData.h:
* runtime/Structure.cpp:
(JSC::Structure::create):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231345
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Fri, 4 May 2018 01:50:47 +0000 (01:50 +0000)]
Unreviewed, attempt to fix WinCairo build failure
https://bugs.webkit.org/show_bug.cgi?id=185218
* platform/text/win/LocaleWin.cpp:
(WebCore::LocaleWin::getLocaleInfoString):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231344
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
msaboff@apple.com [Fri, 4 May 2018 01:11:47 +0000 (01:11 +0000)]
OSR entry pruning of Program Bytecodes doesn't take into account try/catch
https://bugs.webkit.org/show_bug.cgi?id=185281
Reviewed by Saam Barati.
JSTests:
New regression test.
* stress/baseline-osrentry-catch-is-reachable.js: Added.
(i.j.catch):
Source/JavaScriptCore:
When we compute bytecode block reachability, we need to take into account blocks
containing try/catch.
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231343
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Fri, 4 May 2018 01:00:18 +0000 (01:00 +0000)]
Use default std::optional if it is provided
https://bugs.webkit.org/show_bug.cgi?id=185159
Reviewed by Michael Catanzaro.
Source/WebKit:
* Shared/SandboxExtension.h:
(WebKit::SandboxExtension::Handle::decode):
* Shared/TouchBarMenuItemData.cpp:
(WebKit::TouchBarMenuItemData::decode):
Source/WTF:
* wtf/Expected.h:
* wtf/Optional.h:
Do not use <optional> for clang currently.
(WTF::valueOrCompute):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231342
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 00:55:28 +0000 (00:55 +0000)]
ARM: Wrong offset for operand rt in disassembler
https://bugs.webkit.org/show_bug.cgi?id=184083
Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.
* disassembler/ARMv7/ARMv7DOpcode.h:
(JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231341
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 00:54:24 +0000 (00:54 +0000)]
ARM: Support vstr in disassembler
https://bugs.webkit.org/show_bug.cgi?id=184084
Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.
* disassembler/ARMv7/ARMv7DOpcode.cpp:
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::format):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::format): Deleted.
* disassembler/ARMv7/ARMv7DOpcode.h:
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDRSTR::opName):
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::condition): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::uBit): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::rn): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::vd): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::doubleReg): Deleted.
(JSC::ARMv7Disassembler::ARMv7DOpcodeVLDR::immediate8): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231340
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Fri, 4 May 2018 00:49:04 +0000 (00:49 +0000)]
Invoke ensureArrayStorage for all arguments
https://bugs.webkit.org/show_bug.cgi?id=185247
Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.
ensureArrayStorage was only invoked for first argument in each loop iteration.
* jsc.cpp:
(functionEnsureArrayStorage):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231339
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 4 May 2018 00:41:58 +0000 (00:41 +0000)]
Make it easy to log compile times for all optimizing tiers
https://bugs.webkit.org/show_bug.cgi?id=185270
Reviewed by Keith Miller.
This makes --logPhaseTimes=true enable logging of phase times for DFG and B3 using a common
helper class, CompilerTimingScope. This used to be called B3::TimingScope and only B3 used
it.
This should help us reduce compile times by telling us where to look. So, far, it looks like
CFA is the worst.
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* b3/B3Common.cpp:
(JSC::B3::shouldMeasurePhaseTiming): Deleted.
* b3/B3Common.h:
* b3/B3TimingScope.cpp: Removed.
* b3/B3TimingScope.h:
(JSC::B3::TimingScope::TimingScope):
* dfg/DFGPhase.h:
(JSC::DFG::runAndLog):
* dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThread):
* tools/CompilerTimingScope.cpp: Added.
(JSC::CompilerTimingScope::CompilerTimingScope):
(JSC::CompilerTimingScope::~CompilerTimingScope):
* tools/CompilerTimingScope.h: Added.
* runtime/Options.cpp:
(JSC::recomputeDependentOptions):
* runtime/Options.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231338
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Fri, 4 May 2018 00:40:18 +0000 (00:40 +0000)]
Strings should not be allocated in a gigacage
https://bugs.webkit.org/show_bug.cgi?id=185218
Reviewed by Saam Barati.
Source/bmalloc:
This removes the string gigacage.
Putting strings in a gigacage prevents read gadgets. The other things that get to be in gigacages
are there to prevent read-write gadgets.
Also, putting strings in a gigacage seems to have been a bigger regression than putting other
things in gigacages.
Therefore, to maximize the benefit/cost ratio of gigacages, we should evict strings from them. If
we want to throw away perf for security, there are more beneficial things to sacrifice.
* bmalloc/Gigacage.h:
(Gigacage::name):
(Gigacage::basePtr):
(Gigacage::size):
(Gigacage::forEachKind):
* bmalloc/HeapKind.h:
(bmalloc::isGigacage):
(bmalloc::gigacageKind):
(bmalloc::heapKind):
(bmalloc::isActiveHeapKindAfterEnsuringGigacage):
(bmalloc::mapToActiveHeapKindAfterEnsuringGigacage):
Source/JavaScriptCore:
* runtime/JSBigInt.cpp:
(JSC::JSBigInt::toStringGeneric):
* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::resolveRope const):
* runtime/JSString.h:
(JSC::JSString::create):
(JSC::JSString::createHasOtherOwner):
* runtime/VM.h:
(JSC::VM::gigacageAuxiliarySpace):
Source/WebCore:
No new tests because no new behavior.
* Modules/indexeddb/server/IDBSerialization.cpp:
(WebCore::decodeKey):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::readString):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeSpaces):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace):
* platform/URLParser.cpp:
(WebCore::percentEncodeByte):
(WebCore::serializeURLEncodedForm):
(WebCore::URLParser::serialize):
* platform/URLParser.h:
* platform/graphics/FourCC.cpp:
(WebCore::FourCC::toString const):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::ReplicaState::cloneID const):
* platform/text/LocaleICU.cpp:
(WebCore::LocaleICU::decimalSymbol):
(WebCore::LocaleICU::decimalTextAttribute):
(WebCore::getDateFormatPattern):
(WebCore::LocaleICU::createLabelVector):
(WebCore::getFormatForSkeleton):
* platform/win/FileSystemWin.cpp:
(WebCore::FileSystem::getFinalPathName):
(WebCore::FileSystem::pathByAppendingComponent):
(WebCore::FileSystem::storageDirectory):
Source/WTF:
* WTF.xcodeproj/project.pbxproj:
* wtf/Deque.h:
* wtf/Forward.h:
* wtf/Gigacage.h:
(Gigacage::name):
(Gigacage::basePtr):
* wtf/Vector.h:
(WTF::VectorBufferBase::allocateBuffer):
(WTF::VectorBufferBase::tryAllocateBuffer):
(WTF::VectorBufferBase::reallocateBuffer):
(WTF::VectorBufferBase::deallocateBuffer):
(WTF::minCapacity>::Vector):
(WTF::=):
(WTF::minCapacity>::contains const):
(WTF::minCapacity>::findMatching const):
(WTF::minCapacity>::find const):
(WTF::minCapacity>::reverseFind const):
(WTF::minCapacity>::appendIfNotContains):
(WTF::minCapacity>::fill):
(WTF::minCapacity>::appendRange):
(WTF::minCapacity>::expandCapacity):
(WTF::minCapacity>::tryExpandCapacity):
(WTF::minCapacity>::resize):
(WTF::minCapacity>::resizeToFit):
(WTF::minCapacity>::shrink):
(WTF::minCapacity>::grow):
(WTF::minCapacity>::asanSetInitialBufferSizeTo):
(WTF::minCapacity>::asanSetBufferSizeToFullCapacity):
(WTF::minCapacity>::asanBufferSizeWillChangeTo):
(WTF::minCapacity>::reserveCapacity):
(WTF::minCapacity>::tryReserveCapacity):
(WTF::minCapacity>::reserveInitialCapacity):
(WTF::minCapacity>::shrinkCapacity):
(WTF::minCapacity>::append):
(WTF::minCapacity>::tryAppend):
(WTF::minCapacity>::constructAndAppend):
(WTF::minCapacity>::tryConstructAndAppend):
(WTF::minCapacity>::appendSlowCase):
(WTF::minCapacity>::constructAndAppendSlowCase):
(WTF::minCapacity>::tryConstructAndAppendSlowCase):
(WTF::minCapacity>::uncheckedAppend):
(WTF::minCapacity>::appendVector):
(WTF::minCapacity>::insert):
(WTF::minCapacity>::insertVector):
(WTF::minCapacity>::remove):
(WTF::minCapacity>::removeFirst):
(WTF::minCapacity>::removeFirstMatching):
(WTF::minCapacity>::removeAll):
(WTF::minCapacity>::removeAllMatching):
(WTF::minCapacity>::reverse):
(WTF::minCapacity>::map const):
(WTF::minCapacity>::releaseBuffer):
(WTF::minCapacity>::checkConsistency):
(WTF::swap):
(WTF::operator==):
(WTF::operator!=):
(WTF::removeRepeatedElements):
(WTF::Malloc>::Vector): Deleted.
(WTF::Malloc>::contains const): Deleted.
(WTF::Malloc>::findMatching const): Deleted.
(WTF::Malloc>::find const): Deleted.
(WTF::Malloc>::reverseFind const): Deleted.
(WTF::Malloc>::appendIfNotContains): Deleted.
(WTF::Malloc>::fill): Deleted.
(WTF::Malloc>::appendRange): Deleted.
(WTF::Malloc>::expandCapacity): Deleted.
(WTF::Malloc>::tryExpandCapacity): Deleted.
(WTF::Malloc>::resize): Deleted.
(WTF::Malloc>::resizeToFit): Deleted.
(WTF::Malloc>::shrink): Deleted.
(WTF::Malloc>::grow): Deleted.
(WTF::Malloc>::asanSetInitialBufferSizeTo): Deleted.
(WTF::Malloc>::asanSetBufferSizeToFullCapacity): Deleted.
(WTF::Malloc>::asanBufferSizeWillChangeTo): Deleted.
(WTF::Malloc>::reserveCapacity): Deleted.
(WTF::Malloc>::tryReserveCapacity): Deleted.
(WTF::Malloc>::reserveInitialCapacity): Deleted.
(WTF::Malloc>::shrinkCapacity): Deleted.
(WTF::Malloc>::append): Deleted.
(WTF::Malloc>::tryAppend): Deleted.
(WTF::Malloc>::constructAndAppend): Deleted.
(WTF::Malloc>::tryConstructAndAppend): Deleted.
(WTF::Malloc>::appendSlowCase): Deleted.
(WTF::Malloc>::constructAndAppendSlowCase): Deleted.
(WTF::Malloc>::tryConstructAndAppendSlowCase): Deleted.
(WTF::Malloc>::uncheckedAppend): Deleted.
(WTF::Malloc>::appendVector): Deleted.
(WTF::Malloc>::insert): Deleted.
(WTF::Malloc>::insertVector): Deleted.
(WTF::Malloc>::remove): Deleted.
(WTF::Malloc>::removeFirst): Deleted.
(WTF::Malloc>::removeFirstMatching): Deleted.
(WTF::Malloc>::removeAll): Deleted.
(WTF::Malloc>::removeAllMatching): Deleted.
(WTF::Malloc>::reverse): Deleted.
(WTF::Malloc>::map const): Deleted.
(WTF::Malloc>::releaseBuffer): Deleted.
(WTF::Malloc>::checkConsistency): Deleted.
* wtf/text/AtomicStringImpl.h:
* wtf/text/CString.cpp:
(WTF::CStringBuffer::createUninitialized):
* wtf/text/CString.h:
* wtf/text/StringBuffer.h:
(WTF::StringBuffer::StringBuffer):
(WTF::StringBuffer::~StringBuffer):
(WTF::StringBuffer::resize):
* wtf/text/StringImpl.cpp:
(WTF::StringImpl::~StringImpl):
(WTF::StringImpl::destroy):
(WTF::StringImpl::createUninitializedInternalNonEmpty):
(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::releaseAssertCaged const): Deleted.
* wtf/text/StringImpl.h:
(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::adopt):
(WTF::StringImpl::assertCaged const): Deleted.
* wtf/text/StringMalloc.cpp: Removed.
* wtf/text/StringMalloc.h: Removed.
* wtf/text/StringVector.h: Removed.
* wtf/text/SymbolImpl.h:
* wtf/text/UniquedStringImpl.h:
* wtf/text/WTFString.h:
(WTF::String::adopt):
(WTF::String::assertCaged const): Deleted.
(WTF::String::releaseAssertCaged const): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231337
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ross.kirsling@sony.com [Thu, 3 May 2018 23:54:00 +0000 (23:54 +0000)]
[WinCairo] Test archive must use Python zipfile, just like build product.
https://bugs.webkit.org/show_bug.cgi?id=185265
Reviewed by Per Arne Vollan.
* BuildSlaveSupport/test-result-archive:
(archive_test_results):
Copy over Win32-oriented archiving logic from built-product-archive.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231336
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Thu, 3 May 2018 23:51:10 +0000 (23:51 +0000)]
Widgets should hold a WeakPtr to their parents
https://bugs.webkit.org/show_bug.cgi?id=185239
<rdar://problem/
39741250>
Reviewed by Zalan Bujtas.
* platform/ScrollView.h:
(WebCore::ScrollView::weakPtrFactory): Added.
* platform/Widget.cpp:
(WebCore::Widget::init): Don't perform an unnecessary assignment.
(WebCore::Widget::setParent): Grab a WeakPtr to the parent ScrollView.
* platform/Widget.h:
(WebCore::Widget::parent const): Change type to a WeakPtr.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231335
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Thu, 3 May 2018 23:43:45 +0000 (23:43 +0000)]
Revert the unitended changes in r231329.
* http/tests/media/video-play-stall.html: Replaced with LayoutTests/http/tests/media/video-play-stall.html.
* platform/mac/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231334
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 23:34:54 +0000 (23:34 +0000)]
Use pointer instead of std::optional<T&>
https://bugs.webkit.org/show_bug.cgi?id=185186
Reviewed by Alex Christensen.
std::optional<T&> is not accepted in C++17 spec.
In this patch, we replace it with T*, which is well-aligned to
WebKit's convention.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
* css/parser/CSSParser.h:
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::item const):
(WebCore::DatasetDOMStringMap::namedItem const):
(WebCore:: const): Deleted.
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
(WebCore::Element::insertAdjacentHTML):
* dom/Element.h:
* html/canvas/CanvasStyle.cpp:
(WebCore::parseColor):
* inspector/DOMEditor.cpp:
* platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::getPostData):
(): Deleted.
* platform/network/curl/CurlFormDataStream.h:
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupPOST):
* testing/MockCDMFactory.cpp:
(WebCore::MockCDMFactory::keysForSessionWithID const):
(WebCore::MockCDMInstance::updateLicense):
(WebCore:: const): Deleted.
* testing/MockCDMFactory.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231333
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
keith_miller@apple.com [Thu, 3 May 2018 23:21:37 +0000 (23:21 +0000)]
Unreviewed, fix 32-bit profile offset for change in bytecode
length of the get_by_id and get_array_length opcodes.
* llint/LowLevelInterpreter32_64.asm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231332
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Thu, 3 May 2018 23:18:29 +0000 (23:18 +0000)]
Stop using an iframe's id as fallback if its name attribute is not set
https://bugs.webkit.org/show_bug.cgi?id=11388
Reviewed by Geoff Garen.
Source/WebCore:
WebKit had logic to use an iframe's id as fallback name when its name
content attribute is not set. This behavior was not standard and did not
match other browsers:
- https://html.spec.whatwg.org/#attr-iframe-name
Gecko / Trident never behaved this way. Blink was aligned with us until
they started to match the specification in:
- https://bugs.chromium.org/p/chromium/issues/detail?id=347169
This WebKit quirk was causing some Web-compatibility issues because it
would affect the behavior of Window's name property getter when trying
to look up an iframe by id. Because of Window's named property getter
behavior [1], we would return the frame's contentWindow instead of the
iframe element itself.
[1] https://html.spec.whatwg.org/multipage/window-object.html#named-access-on-the-window-object
Test: fast/dom/Window/named-getter-frame-id.html
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::openURL):
(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::didFinishInsertingNode):
* html/HTMLFrameElementBase.h:
LayoutTests:
* fast/dom/Window/named-getter-frame-id-expected.txt: Added.
* fast/dom/Window/named-getter-frame-id.html: Added.
Add layout test coverage.
* fast/dom/Geolocation/srcdoc-getCurrentPosition-expected.txt:
* fast/dom/Geolocation/srcdoc-watchPosition-expected.txt:
* fast/dom/HTMLAnchorElement/anchor-in-noscroll-iframe-crash.html:
* fast/dom/Window/window-special-properties-expected.txt:
* fast/frames/iframe-no-name-expected.txt:
* fast/frames/iframe-no-name.html:
* fast/layers/prevent-hit-test-during-layout.html:
* fast/xmlhttprequest/xmlhttprequest-no-file-access-expected.txt:
* http/tests/security/clipboard/copy-paste-html-cross-origin-iframe-across-origin.html:
* http/tests/security/contentSecurityPolicy/iframe-blank-url-programmatically-add-external-script-expected.txt:
* http/tests/security/cross-origin-reified-window-property-access.html:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-and-try-access-from-right-frame-expected.txt:
* http/tests/storageAccess/request-and-grant-storage-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-non-recent-user-interaction-but-try-access-from-wrong-frame-expected.txt:
* http/tests/webrtc/filtering-ice-candidate-same-origin-frame.html:
* http/wpt/beacon/keepalive-after-navigation-expected.txt:
* http/wpt/cache-storage/cache-remove-twice.html:
Update some layout tests that relied on our old (non-standard) behavior.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231331
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Thu, 3 May 2018 22:10:56 +0000 (22:10 +0000)]
[iOS] Internal text and audio tracks not in fullscreen menu
https://bugs.webkit.org/show_bug.cgi?id=185268
<rdar://problem/
38673440>
Reviewed by Jer Noble.
* platform/cocoa/PlaybackSessionModelMediaElement.mm:
(WebCore::PlaybackSessionModelMediaElement::setMediaElement): 'addtrack' and 'removetrack'
events are fired at the track lists, not the media element.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231330
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Thu, 3 May 2018 21:34:10 +0000 (21:34 +0000)]
Using image map inside a shadow tree results hits a release assert in DocumentOrderedMap::add
https://bugs.webkit.org/show_bug.cgi?id=185238
Reviewed by Antti Koivisto.
Source/WebCore:
The bug was caused by DocumentOrderedMap for the image elements with usemap being stored in Document
even if those image elements were in a shadow tree. Fixed the bug by moving the map to TreeScope.
Test: fast/images/imagemap-in-nested-shadow-tree.html
fast/images/imagemap-in-shadow-tree.html
* dom/Document.cpp:
(WebCore::Document::addImageElementByUsemap): Moved to TreeScope.
(WebCore::Document::removeImageElementByUsemap): Ditto.
(WebCore::Document::imageElementByUsemap const): Ditto.
* dom/Document.h:
* dom/TreeScope.cpp:
(WebCore::TreeScope::destroyTreeScopeData): Clear m_imagesByUsemap as well as m_elementsByName.
(WebCore::TreeScope::getImageMap const): Removed the code to parse usemap. RenderImage::imageMap()
which used to call this function with the raw value of the usemap content attribute now calls it
via HTMLImageElement::associatedMapElement(), which uses the parsed usemap.
(WebCore::TreeScope::addImageElementByUsemap): Moved from Document.
(WebCore::TreeScope::removeImageElementByUsemap): Ditto.
(WebCore::TreeScope::imageElementByUsemap const): Ditto.
* dom/TreeScope.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::insertedIntoAncestor): This image element can be associated with a map element
if it's connected to a document.
(WebCore::HTMLImageElement::removedFromAncestor):
(WebCore::HTMLImageElement::associatedMapElement const):
* html/HTMLImageElement.h:
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::imageElement):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::imageMap const):
LayoutTests:
* fast/images/imagemap-in-nested-shadow-tree-expected.txt: Added.
* fast/images/imagemap-in-nested-shadow-tree.html: Added.
* fast/images/imagemap-in-shadow-tree-expected.txt: Added.
* fast/images/imagemap-in-shadow-tree.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231329
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 21:27:58 +0000 (21:27 +0000)]
cleanup modules usage for the Test262-Runner
https://bugs.webkit.org/show_bug.cgi?id=185263
Patch by Leo Balter <leonardo.balter@gmail.com> on 2018-05-03
Reviewed by Michael Saboff.
* Scripts/test262-runner:
* Scripts/test262/Runner.pm:
(processCLI):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231328
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 21:08:40 +0000 (21:08 +0000)]
[WebGL] Add runtime flag for enabling ASTC support in WebGL
https://bugs.webkit.org/show_bug.cgi?id=184840
Patch by Justin Fan <justin_fan@apple.com> on 2018-05-03
Reviewed by Myles C. Maxfield.
Added runtime flag for ASTC support in WebGL, to turn on/off when extension is implemented.
Source/WebCore:
* page/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setWebGLCompressedTextureASTCSupportEnabled):
(WebCore::RuntimeEnabledFeatures::webGLCompressedTextureASTCSupportEnabled const):
Source/WebKit:
* Shared/WebPreferences.yaml:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231327
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Thu, 3 May 2018 20:55:44 +0000 (20:55 +0000)]
Unreviewed build fix after <https://trac.webkit.org/changeset/231282>.
* NetworkProcess/NetworkActivityTracker.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231326
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 20:52:46 +0000 (20:52 +0000)]
Remove [NoInterfaceObject] from DOMRectList
https://bugs.webkit.org/show_bug.cgi?id=185255
Patch by Chris Nardi <cnardi@chromium.org> on 2018-05-03
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
Update Geometry IDL test from upstream and update expectations.
* web-platform-tests/css/geometry/interfaces-expected.txt:
* web-platform-tests/css/geometry/interfaces.worker-expected.txt:
* web-platform-tests/interfaces/geometry.idl:
Source/WebCore:
In https://github.com/w3c/fxtf-drafts/issues/233, [NoInterfaceObject] was removed
from DOMRectList. Remove it from our implementation to match the spec, as well as
Chrome and Firefox.
Updated web platform tests IDL test for the Geometry spec.
* dom/DOMRectList.idl:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231325
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Thu, 3 May 2018 20:39:33 +0000 (20:39 +0000)]
[iOS] Provide audio route information when invoking AirPlay picker
https://bugs.webkit.org/show_bug.cgi?id=185199
<rdar://problem/
39853103>
Another attempt at an unreviewed build fix.
* pal/spi/mac/AVFoundationSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231324
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 20:27:43 +0000 (20:27 +0000)]
test262/Runner.pm: minor fixes
https://bugs.webkit.org/show_bug.cgi?id=185250
Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-03
Reviewed by Michael Saboff.
Add comments, change output and fix bug: unintended interpolation
of filename when running jsc.
* Scripts/test262/Runner.pm:
(processCLI):
(main):
(runTest):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231323
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
wenson_hsieh@apple.com [Thu, 3 May 2018 20:16:14 +0000 (20:16 +0000)]
Ads in NYTimes app are shifted downwards by the scroll view's top content inset
https://bugs.webkit.org/show_bug.cgi?id=185251
<rdar://problem/
39062357>
Reviewed by Tim Horton.
Source/WebKit:
The NYTimes app embeds advertisements in each article's WKWebView by adding views in the WKScrollView's view
hierarchy. These views are positioned using the bounding client rects of elements in the DOM (via Element
::getBoundingClientRect). Prior to r229641, WebKit would report bounding client rects inset by the content
insets of WKScrollView, which means that if a top content inset X is specified on the scroll view, an element
that is flush against the top of the viewport will have a bounding client rect top of -X (when it should really
be 0).
To account for this, NYTimes adds the scroll view content insets back to the bounding client rect when
determining the position of each advertisement which, after r229641, causes these views to be shifted downwards
by an amount equal to the scroll view content inset top.
This new behavior does not affect Safari, since Safari uses SPI to explicitly set obscured insets. As such, we
address this by gating the scroll view content inset fix with a linked-on-or-after check.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _computedObscuredInset]):
* UIProcess/Cocoa/VersionChecks.h:
Source/WTF:
Add a new DYLD_IOS_VERSION macro definition for previous or non-internal SDKs.
* wtf/spi/darwin/dyldSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231322
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Thu, 3 May 2018 19:59:05 +0000 (19:59 +0000)]
Load hangs if the WebProcess fails to launch
https://bugs.webkit.org/show_bug.cgi?id=185225
<rdar://problem/
38249058>
Reviewed by Geoff Garen.
Source/WebKit:
When a process fails to launch, ChildProcessProxy::didFinishLaunching() gets called with an
invalid connection identifier. While NetworkProcessProxy::didFinishLaunching() properly deals with
this situation, WebProcessProxy::didFinishLaunching() does not. As a result, we do not attempt to
relaunch the process, we do not notify the client and WebPageProxy::m_isValid stays true.
This patch thus updates WebProcessProxy::didFinishLaunching() to check if the connection identifier
is valid and treats it as a crash. As a result, the WebPageProxies properly reset their state and
the client gets notified of the crash so that it can attempt to reload.
* UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _makeNextWebProcessLaunchFailForTesting]):
* UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
* UIProcess/Launcher/ProcessLauncher.h:
* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::ProcessLauncher::launchProcess):
Add SPI to make the next WebProcess launch fail, for the purpose of API testing.
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getLaunchOptions):
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didFinishLaunching):
* UIProcess/WebProcessProxy.h:
Tools:
Add API test coverage.
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKitCocoa/WebContentProcessDidTerminate.mm: Added.
(-[CrashOnStartNavigationDelegate _webView:webContentProcessDidTerminateWithReason:]):
(-[CrashOnStartNavigationDelegate webView:didFinishNavigation:]):
(-[CrashRecoveryScriptMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231321
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Thu, 3 May 2018 19:42:21 +0000 (19:42 +0000)]
Mark media/controls/pip-placeholder-without-video-controls.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170620
Unreviewed test gardening.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231320
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Thu, 3 May 2018 19:17:46 +0000 (19:17 +0000)]
REGRESSION(iOS 11.3): Crashes in TimerBase::~TimerBase() in Tencent x5gamehelper
https://bugs.webkit.org/show_bug.cgi?id=185073
<rdar://problem/
39821223>
Reviewed by Alexey Proskuryakov.
The following changes were made:
- Make sure SocketStream callbacks are always scheduled on the right runloop:
WebThreadRunLoop() on WebKitLegacy iOS, loaderRunLoop() on Windows and
main runloop otherwise.
- When the SocketStream callbacks are called, unconditionally call callOnMainThreadAndWait()
before calling methods on the SocketStream client. Previously, this code path
was specific to Windows but there is no reason to have platform-specific code here.
callOnMainThreadAndWait() calls the function right away if we're already on the main
thread, which will be the case on other platform than Windows.
* platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::callbacksRunLoop):
(WebCore::callbacksRunLoopMode):
(WebCore::SocketStreamHandleImpl::scheduleStreams):
(WebCore::SocketStreamHandleImpl::pacExecutionCallback):
(WebCore::SocketStreamHandleImpl::executePACFileURL):
(WebCore::SocketStreamHandleImpl::removePACRunLoopSource):
(WebCore::SocketStreamHandleImpl::readStreamCallback):
(WebCore::SocketStreamHandleImpl::writeStreamCallback):
(WebCore::SocketStreamHandleImpl::platformClose):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231319
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Thu, 3 May 2018 18:39:44 +0000 (18:39 +0000)]
[LFC] Enable multiple layout roots for incremental layout.
https://bugs.webkit.org/show_bug.cgi?id=185185
Reviewed by Antti Koivisto.
With certain type of style changes, we can stop the box invalidation at the formatting context boundary.
When multiple boxes need updating in different formatting contexts, instead of marking the parent containing block chain all
the way up to a common ancestor, we could just work with a list of layout entry points per layout frame.
* layout/FormattingState.h:
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::updateLayout):
(WebCore::Layout::LayoutContext::addLayoutEntryPoint):
* layout/LayoutContext.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231318
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
msaboff@apple.com [Thu, 3 May 2018 18:39:13 +0000 (18:39 +0000)]
WebContent crash loading page on seas.upenn.edu @ JavaScriptCore: vmEntryToJavaScript
https://bugs.webkit.org/show_bug.cgi?id=185231
Reviewed by Saam Barati.
We weren't clearing the scratch register cache when switching back and forth between
allowing scratch register usage. We disallow scratch register usage when we are in
code that will freely allocate and use any register. Such usage can change the
contents of scratch registers. For ARM64, where we cache the contents of scratch
registers to reuse some or all of the contained values, we need to invalidate these
caches. We do this when re-enabling scratch register usage, that is when we transition
from disallow to allow scratch register usage.
Added a new Air regression test.
* assembler/AllowMacroScratchRegisterUsage.h:
(JSC::AllowMacroScratchRegisterUsage::AllowMacroScratchRegisterUsage):
* assembler/AllowMacroScratchRegisterUsageIf.h:
(JSC::AllowMacroScratchRegisterUsageIf::AllowMacroScratchRegisterUsageIf):
* assembler/DisallowMacroScratchRegisterUsage.h:
(JSC::DisallowMacroScratchRegisterUsage::~DisallowMacroScratchRegisterUsage):
* b3/air/testair.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231317
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
keith_miller@apple.com [Thu, 3 May 2018 18:18:34 +0000 (18:18 +0000)]
Remove the prototype caching for get_by_id in the LLInt
https://bugs.webkit.org/show_bug.cgi?id=185226
Reviewed by Michael Saboff.
There is no evidence that this is actually a speedup and we keep
getting bugs with it. At this point it seems like we should just
remove this code.
* CMakeLists.txt:
* JavaScriptCore.xcodeproj/project.pbxproj:
* Sources.txt:
* bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::printGetByIdOp):
(JSC::BytecodeDumper<Block>::printGetByIdCacheStatus):
(JSC::BytecodeDumper<Block>::dumpBytecode):
* bytecode/BytecodeList.json:
* bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finalizeLLIntInlineCaches):
* bytecode/CodeBlock.h:
(JSC::CodeBlock::llintGetByIdWatchpointMap): Deleted.
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFromLLInt):
* bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp: Removed.
* bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h: Removed.
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitGetById):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
* jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setupGetByIdPrototypeCache): Deleted.
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/Options.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231316
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
cdumez@apple.com [Thu, 3 May 2018 18:13:53 +0000 (18:13 +0000)]
REGRESSION: Layout Test http/tests/security/location-cross-origin.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185259
Unreviewed, stop relying on a setImeout(100) and epect the frame navigation to have completed. Instead,
use a setInterval() to poll until the cross-origin frame has navigated.
* http/tests/security/location-cross-origin.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231315
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
don.olmstead@sony.com [Thu, 3 May 2018 17:19:57 +0000 (17:19 +0000)]
[WinCairo] Add JSC test bots
https://bugs.webkit.org/show_bug.cgi?id=185234
Reviewed by Per Arne Vollan.
* BuildSlaveSupport/build.webkit.org-config/config.json:
* BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunJavaScriptCoreTests.start):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231313
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Thu, 3 May 2018 17:15:22 +0000 (17:15 +0000)]
[LFC] Box invalidation logic should go to dedicated classes.
https://bugs.webkit.org/show_bug.cgi?id=185249
Reviewed by Antti Koivisto.
Each formatting context can initiate a different type of invalidation when
style attribute changes in a box.
* Sources.txt:
* WebCore.xcodeproj/project.pbxproj:
* layout/FormattingState.cpp:
(WebCore::Layout::FormattingState::FormattingState):
* layout/FormattingState.h:
(WebCore::Layout::FormattingState::isBlockFormattingState const):
(WebCore::Layout::FormattingState::isInlineFormattingState const):
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::styleChanged):
(WebCore::Layout::LayoutContext::markNeedsUpdate):
* layout/LayoutContext.h:
* layout/blockformatting/BlockFormattingState.cpp:
(WebCore::Layout::BlockFormattingState::BlockFormattingState):
* layout/blockformatting/BlockFormattingState.h:
* layout/blockformatting/BlockInvalidation.cpp: Copied from Source/WebCore/layout/blockformatting/BlockFormattingState.cpp.
(WebCore::Layout::BlockInvalidation::invalidate):
* layout/blockformatting/BlockInvalidation.h: Copied from Source/WebCore/layout/inlineformatting/InlineFormattingState.h.
* layout/inlineformatting/InlineFormattingState.cpp:
(WebCore::Layout::InlineFormattingState::InlineFormattingState):
* layout/inlineformatting/InlineFormattingState.h:
* layout/inlineformatting/InlineInvalidation.cpp: Copied from Source/WebCore/layout/inlineformatting/InlineFormattingState.cpp.
(WebCore::Layout::InlineInvalidation::invalidate):
* layout/inlineformatting/InlineInvalidation.h: Copied from Source/WebCore/layout/blockformatting/BlockFormattingState.h.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231312
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
mcatanzaro@igalia.com [Thu, 3 May 2018 17:08:25 +0000 (17:08 +0000)]
WebKit should send fake macOS user agent to docs.google.com
https://bugs.webkit.org/show_bug.cgi?id=185165
Reviewed by Carlos Garcia Campos.
Source/WebCore:
* platform/UserAgentQuirks.cpp:
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresLinuxDesktopPlatform):
Tools:
* TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231311
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Thu, 3 May 2018 16:58:48 +0000 (16:58 +0000)]
Unreviewed, rolling out r231197.
The test added with this change crashes on the 32-bit JSC bot.
Reverted changeset:
"Correctly detect string overflow when using the 'Function'
constructor"
https://bugs.webkit.org/show_bug.cgi?id=184883
https://trac.webkit.org/changeset/231197
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231310
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 16:52:28 +0000 (16:52 +0000)]
test262/Runner.pm: performance improvements
https://bugs.webkit.org/show_bug.cgi?id=185202
Patch by Valerie R Young <valerie@bocoup.com> on 2018-05-03
Reviewed by Michael Saboff.
Batch the tests by the number of processes, and give each process
a file to save results to to avoid threading. Do not parallelize
when running small sets of tests.
* Scripts/test262/Runner.pm:
(processCLI):
(main):
(processFile):
(processResult):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231309
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 16:37:01 +0000 (16:37 +0000)]
Unreviewed, rolling out r231223 and r231288.
https://bugs.webkit.org/show_bug.cgi?id=185256
The change in r231223 breaks internal builds, and r231288 is a
dependent change. (Requested by ryanhaddad on #webkit).
Reverted changesets:
"Use default std::optional if it is provided"
https://bugs.webkit.org/show_bug.cgi?id=185159
https://trac.webkit.org/changeset/231223
"Use pointer instead of
std::optional<std::reference_wrapper<>>"
https://bugs.webkit.org/show_bug.cgi?id=185186
https://trac.webkit.org/changeset/231288
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231308
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
pvollan@apple.com [Thu, 3 May 2018 16:31:53 +0000 (16:31 +0000)]
An error message is written to stderr when the WebContent process is blocking WindowServer access.
https://bugs.webkit.org/show_bug.cgi?id=184701
Reviewed by Brent Fulgham.
Calling 'setApplicationIsDaemon(true)' instead of 'CGSSetDenyWindowServerConnections(true)' to disable
access to the WindowServer in the WebContent process, will remove this error message. After this change,
the url of the WebContent process is still showing up in Activity Monitor, which previously was a
problem when calling 'setApplicationIsDaemon(true)'.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::initializeProcess):
* WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231307
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Thu, 3 May 2018 16:01:26 +0000 (16:01 +0000)]
Unreviewed, rolling out r231253.
The API test added with this change is crashing on the bots.
Reverted changeset:
"Web Inspector: opt out of process swap on navigation if a Web
Inspector frontend is connected"
https://bugs.webkit.org/show_bug.cgi?id=184861
https://trac.webkit.org/changeset/231253
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231306
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
magomez@igalia.com [Thu, 3 May 2018 15:43:20 +0000 (15:43 +0000)]
Unreviewed GTK+ gardening after r231300.
* platform/gtk/TestExpectations:
* platform/gtk/compositing/layer-creation/overlap-animation-expected.txt: Removed.
* platform/gtk/editing/selection/select-all-004-expected.png:
* platform/gtk/editing/selection/select-all-004-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231305
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Thu, 3 May 2018 15:08:48 +0000 (15:08 +0000)]
A MediaStream being played should allow removing some of its tracks
https://bugs.webkit.org/show_bug.cgi?id=185233
Reviewed by Eric Carlson.
Source/WebCore:
Update the tracks out of the for loop.
Test: fast/mediastream/change-tracks-media-stream-being-played.html
* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::updateTracksOfType):
LayoutTests:
* fast/mediastream/change-tracks-media-stream-being-played-expected.txt: Added.
* fast/mediastream/change-tracks-media-stream-being-played.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231304
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Thu, 3 May 2018 13:46:06 +0000 (13:46 +0000)]
Re-eneable Network Extension support in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=185236
<rdar://problem/
39883004>
Reviewed by Eric Carlson.
* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231302
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 11:58:50 +0000 (11:58 +0000)]
Disable usage of fused multiply-add instructions for JSC with compiler flag
https://bugs.webkit.org/show_bug.cgi?id=184909
Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-05-03
Reviewed by Yusuke Suzuki.
Adds -ffp-contract as compiler flag for building JSC. This ensures that functions
like parseInt() do not return slightly different results depending on whether the
compiler was able to use fused multiply-add instructions or not.
* CMakeLists.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231301
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
magomez@igalia.com [Thu, 3 May 2018 10:17:02 +0000 (10:17 +0000)]
WebCore::TextureMapperLayer object used after freed
https://bugs.webkit.org/show_bug.cgi?id=184729
Reviewed by Michael Catanzaro.
Replace the raw pointers with WeakPtr for effectTarget, maskLayer and replicaLayer
inside TextureMapperLayer.
* platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::~TextureMapperLayer):
(WebCore::TextureMapperLayer::setMaskLayer):
(WebCore::TextureMapperLayer::setReplicaLayer):
* platform/graphics/texmap/TextureMapperLayer.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231300
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
timothy_horton@apple.com [Thu, 3 May 2018 08:50:09 +0000 (08:50 +0000)]
REGRESSION (r231014): Entitlements are not applied to XPC services on macOS
https://bugs.webkit.org/show_bug.cgi?id=185241
Reviewed by Dan Bernstein.
* Configurations/BaseXPCService.xcconfig:
* Configurations/WebContentService.Development.xcconfig:
* Configurations/WebContentService.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231299
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
carlosgc@webkit.org [Thu, 3 May 2018 08:45:32 +0000 (08:45 +0000)]
REGRESSION(r222772): [GTK][WPE] WebProcess from WebKitGtk+ 2.19.9x SIGSEVs in WebKit::WebProcess::ensureNetworkProcessConnection() at Source/WebKit/WebProcess/WebProcess.cpp:1127
https://bugs.webkit.org/show_bug.cgi?id=183348
Reviewed by Michael Catanzaro.
Source/WebKit:
When connection doesn't exit in case of sync message failure, always exit in case of failing to send
GetNetworkProcessConnection or GetStorageProcessConnection messages. This can happen when the WebView is created
and destroyed quickly.
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
(WebKit::WebProcess::ensureWebToStorageProcessConnection):
Tools:
Add a test case to reproduce the crash.
* TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewCloseQuickly):
(beforeAll):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231298
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 07:23:08 +0000 (07:23 +0000)]
[Curl] Add OpenSSL/LibreSSL multi-threading support
https://bugs.webkit.org/show_bug.cgi?id=185138
The older OpenSSL manual says the locking_function and threadid_function should
be set when use it in multi-threading environment. This applies to LibreSSL also.
https://www.openssl.org/docs/man1.0.2/crypto/threads.html
For unix and other similar os, the default threadId_function implementation is
good enough. We'll set custom callback only for Windows OS.
Note it's not required for OpenSSL 1.1.0 and after.
https://www.openssl.org/blog/blog/2017/02/21/threads/
Patch by Basuke Suzuki <Basuke.Suzuki@sony.com> on 2018-05-03
Reviewed by Per Arne Vollan.
* platform/network/curl/CurlSSLHandle.cpp:
(WebCore::CurlSSLHandle::CurlSSLHandle):
(WebCore::CurlSSLHandle::ThreadSupport::ThreadSupport):
(WebCore::CurlSSLHandle::ThreadSupport::lockingCallback):
(WebCore::CurlSSLHandle::ThreadSupport::threadIdCallback):
* platform/network/curl/CurlSSLHandle.h:
(WebCore::CurlSSLHandle::ThreadSupport::setup):
(WebCore::CurlSSLHandle::ThreadSupport::singleton):
(WebCore::CurlSSLHandle::ThreadSupport::lock):
(WebCore::CurlSSLHandle::ThreadSupport::unlock):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231297
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dewei_zhu@apple.com [Thu, 3 May 2018 07:06:16 +0000 (07:06 +0000)]
Create analysis task should sync analysis task status after creation.
https://bugs.webkit.org/show_bug.cgi?id=185222
Reviewed by Ryosuke Niwa.
* public/v3/models/analysis-task.js:
(AnalysisTask.async.create): Fetch newly-created analysis task right about its creation.
(AnalysisTask):
* tools/js/measurement-set-analyzer.js:
(MeasurementSetAnalyzer.prototype.async._analyzeMeasurementSet): Adjust as 'AnalysisTask.create' now
returns an anlysis task instance.
(MeasurementSetAnalyzer):
* unit-tests/analysis-task-tests.js: Added a unit test for this change.
(async):
* unit-tests/measurement-set-analyzer-tests.js: Update unit tests accordingly.
Fix a typo in one previous unit test.
(async):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231296
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
n_wang@apple.com [Thu, 3 May 2018 06:05:57 +0000 (06:05 +0000)]
AX: Missing kAXSWebAccessibilityEventsEnabledNotification causes a crash
https://bugs.webkit.org/show_bug.cgi?id=185237
Reviewed by Dan Bernstein.
When libAccessibility.dylib is missing, the compiler would optimize out the global
notification and lead to a crash. Fixed it by using the isNullFunction check instead,
since we are sure the global notification would be there when the corresponding function
is available.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231295
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
rniwa@webkit.org [Thu, 3 May 2018 03:40:29 +0000 (03:40 +0000)]
Remove superfluous check for a null attribute value check in Element::removeAttributeInternal
https://bugs.webkit.org/show_bug.cgi?id=185227
Reviewed by Chris Dumez.
Removed the check. The attribute value string can never be null.
* dom/Element.cpp:
(WebCore::Element::removeAttributeInternal):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231294
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
zalan@apple.com [Thu, 3 May 2018 03:19:33 +0000 (03:19 +0000)]
[LFC] Implement LayoutContext::createDisplayBox
https://bugs.webkit.org/show_bug.cgi?id=185158
Reviewed by Antti Koivisto.
Now compute*() functions take both the const layout and the corresponding non-const display boxes.
Display boxes are owned by the LayoutContext and they don't form a tree structure (only implicitly through the layout tree).
(This might need to change in the future if we decide to arrange them in some sort of painting order)
* layout/FloatingContext.cpp:
(WebCore::Layout::FloatingContext::computePosition):
* layout/FloatingContext.h:
* layout/FormattingContext.cpp:
(WebCore::Layout::FormattingContext::computeStaticPosition const):
(WebCore::Layout::FormattingContext::computeInFlowPositionedPosition const):
(WebCore::Layout::FormattingContext::computeOutOfFlowPosition const):
(WebCore::Layout::FormattingContext::computeWidth const):
(WebCore::Layout::FormattingContext::computeHeight const):
(WebCore::Layout::FormattingContext::computeOutOfFlowWidth const):
(WebCore::Layout::FormattingContext::computeFloatingWidth const):
(WebCore::Layout::FormattingContext::computeOutOfFlowHeight const):
(WebCore::Layout::FormattingContext::computeFloatingHeight const):
* layout/FormattingContext.h:
* layout/LayoutContext.cpp:
(WebCore::Layout::LayoutContext::createDisplayBox):
* layout/LayoutContext.h:
(WebCore::Layout::LayoutContext::displayBoxForLayoutBox const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layout const):
(WebCore::Layout::BlockFormattingContext::computeStaticPosition const):
(WebCore::Layout::BlockFormattingContext::computeInFlowWidth const):
(WebCore::Layout::BlockFormattingContext::computeInFlowHeight const):
* layout/blockformatting/BlockFormattingContext.h:
* layout/displaytree/DisplayBox.h:
(WebCore::Display::Box::parent const): Deleted.
(WebCore::Display::Box::nextSibling const): Deleted.
(WebCore::Display::Box::previousSibling const): Deleted.
(WebCore::Display::Box::firstChild const): Deleted.
(WebCore::Display::Box::lastChild const): Deleted.
(WebCore::Display::Box::setParent): Deleted.
(WebCore::Display::Box::setNextSibling): Deleted.
(WebCore::Display::Box::setPreviousSibling): Deleted.
(WebCore::Display::Box::setFirstChild): Deleted.
(WebCore::Display::Box::setLastChild): Deleted.
(): Deleted.
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeInFlowWidth const):
(WebCore::Layout::InlineFormattingContext::computeInFlowHeight const):
* layout/inlineformatting/InlineFormattingContext.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231293
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 01:17:55 +0000 (01:17 +0000)]
Hiding then showing an <object> of type image makes the underlaying image disappear
https://bugs.webkit.org/show_bug.cgi?id=185216
<rdar://problem/
39055630>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-05-02
Reviewed by Youenn Fablet.
Source/WebCore:
Ensure the HTMLPlugInImageElement updates the RenderImageResource of its
RenderImage with the CachedImage of its ImageLoader when the RenderImage
is recreated.
Test: fast/images/object-image-hide-show.html
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::didAttachRenderers):
This is very similar to what we do in HTMLImageElement::didAttachRenderers().
LayoutTests:
* fast/images/object-image-hide-show-expected.html: Added.
* fast/images/object-image-hide-show.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231292
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
bfulgham@apple.com [Thu, 3 May 2018 01:08:55 +0000 (01:08 +0000)]
Use RetainPtr for form input type
https://bugs.webkit.org/show_bug.cgi?id=185210
<rdar://problem/
39734040>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Refactor our HTMLInputElement class to store its InputType member as a RefPtr.
Test: fast/forms/access-key-mutation-2.html.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::didAddUserAgentShadowRoot):
(WebCore::HTMLInputElement::accessKeyAction):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::appendFormData):
* html/HTMLInputElement.h:
* html/InputType.cpp:
(WebCore::createInputType):
(WebCore::InputType::create):
(WebCore::InputType::createText):
* html/InputType.h:
LayoutTests:
* fast/forms/access-key-mutation-2-expected.txt: Added.
* fast/forms/access-key-mutation-2.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231291
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 01:03:26 +0000 (01:03 +0000)]
Unreviewed, fix build failure in ARM, ARMv7 and MIPS
https://bugs.webkit.org/show_bug.cgi?id=185192
compareDouble relies on MacroAssembler::invert function.
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::compareDouble):
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::compareDouble): Deleted.
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::compareDouble): Deleted.
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::compareDouble): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231290
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 00:53:41 +0000 (00:53 +0000)]
[JSC] Add MacroAssembler::and16 and store16
https://bugs.webkit.org/show_bug.cgi?id=185188
Reviewed by Mark Lam.
r231129 requires and16(ImplicitAddress, RegisterID) and store16(RegisterID, ImplicitAddress) implementations.
This patch adds these methods for ARM.
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::and16):
(JSC::MacroAssemblerARM::store16):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231289
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 00:50:19 +0000 (00:50 +0000)]
Use pointer instead of std::optional<std::reference_wrapper<>>
https://bugs.webkit.org/show_bug.cgi?id=185186
Reviewed by Alex Christensen.
std::optional<T&> is not accepted in C++17 spec. So we replaced it
with std::optional<std::reference_wrapper<T>>.
In this patch, we replace it with T*, which is well-aligned to
WebKit's convention.
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::iceServersFromConfiguration):
(WebCore::RTCPeerConnection::initializeConfiguration):
(WebCore::RTCPeerConnection::setConfiguration):
* css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseSystemColor):
* css/parser/CSSParser.h:
* dom/DatasetDOMStringMap.cpp:
(WebCore::DatasetDOMStringMap::item const):
(WebCore::DatasetDOMStringMap::namedItem const):
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
(WebCore::Element::insertAdjacentHTML):
* dom/Element.h:
* html/canvas/CanvasStyle.cpp:
(WebCore::parseColor):
* inspector/DOMEditor.cpp:
* platform/network/curl/CurlFormDataStream.cpp:
(WebCore::CurlFormDataStream::getPostData):
* platform/network/curl/CurlFormDataStream.h:
* platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::setupPOST):
* testing/MockCDMFactory.cpp:
(WebCore::MockCDMFactory::keysForSessionWithID const):
(WebCore::MockCDMInstance::updateLicense):
* testing/MockCDMFactory.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231288
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ryanhaddad@apple.com [Thu, 3 May 2018 00:49:20 +0000 (00:49 +0000)]
Skip transitions/opacity-transition-zindex.html.
https://bugs.webkit.org/show_bug.cgi?id=184947
Unreviewed test gardening.
* TestExpectations: Remove old expectation that is no longer applicable.
* platform/mac-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231287
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 00:48:22 +0000 (00:48 +0000)]
[DFG] Unify compare related code in 32bit and 64bit
https://bugs.webkit.org/show_bug.cgi?id=185189
Reviewed by Mark Lam.
This patch unifies some part of compare related code in 32bit and 64bit
to reduce the size of 32bit specific DFG code.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileInt32Compare):
(JSC::DFG::SpeculativeJIT::compileDoubleCompare):
(JSC::DFG::SpeculativeJIT::compileObjectEquality):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileObjectEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileInt32Compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileDoubleCompare): Deleted.
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileObjectEquality): Deleted.
(JSC::DFG::SpeculativeJIT::compileInt32Compare): Deleted.
(JSC::DFG::SpeculativeJIT::compileDoubleCompare): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231286
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 00:46:09 +0000 (00:46 +0000)]
[JSC] Add compareDouble and compareFloat for ARM64, X86, and X86_64
https://bugs.webkit.org/show_bug.cgi?id=185192
Reviewed by Mark Lam.
Now Object.is starts using compareDouble. So we would like to have
efficient implementation for compareDouble and compareFloat for
major architectures, ARM64, X86, and X86_64.
This patch adds compareDouble and compareFloat implementations for
these architectures. And generic implementation is moved to each
architecture's MacroAssembler implementation.
We also add tests for them in testmasm. To implement this test
easily, we also add loadFloat(TrustedImmPtr, FPRegisterID) for the
major architectures.
* assembler/MacroAssembler.h:
(JSC::MacroAssembler::compareDouble): Deleted.
(JSC::MacroAssembler::compareFloat): Deleted.
* assembler/MacroAssemblerARM.h:
(JSC::MacroAssemblerARM::compareDouble):
* assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::compareDouble):
(JSC::MacroAssemblerARM64::compareFloat):
(JSC::MacroAssemblerARM64::loadFloat):
(JSC::MacroAssemblerARM64::floatingPointCompare):
* assembler/MacroAssemblerARMv7.h:
(JSC::MacroAssemblerARMv7::compareDouble):
* assembler/MacroAssemblerMIPS.h:
(JSC::MacroAssemblerMIPS::compareDouble):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::loadFloat):
(JSC::MacroAssemblerX86Common::compareDouble):
(JSC::MacroAssemblerX86Common::compareFloat):
(JSC::MacroAssemblerX86Common::floatingPointCompare):
* assembler/X86Assembler.h:
(JSC::X86Assembler::movss_mr):
(JSC::X86Assembler::movss_rm):
* assembler/testmasm.cpp:
(JSC::floatOperands):
(JSC::testCompareFloat):
(JSC::run):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231285
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
utatane.tea@gmail.com [Thu, 3 May 2018 00:42:12 +0000 (00:42 +0000)]
Unreviewed, fix 32bit DFG code
https://bugs.webkit.org/show_bug.cgi?id=185065
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileSameValue):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231284
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
fpizlo@apple.com [Thu, 3 May 2018 00:37:30 +0000 (00:37 +0000)]
JSC should know how to cache custom getter accesses on the prototype chain
https://bugs.webkit.org/show_bug.cgi?id=185213
Reviewed by Keith Miller.
JSTests:
* microbenchmarks/get-custom-getter.js: Added.
(test):
Source/JavaScriptCore:
This was a simple fix after the work I did for bug 185174. >4x speed-up on the new get-custom-getter.js test.
* jit/Repatch.cpp:
(JSC::tryCacheGetByID):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231283
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
krollin@apple.com [Thu, 3 May 2018 00:31:50 +0000 (00:31 +0000)]
Add facility for tracking times and results of page and resource loading
https://bugs.webkit.org/show_bug.cgi?id=184838
<rdar://problem/
36548974>
Reviewed by Brent Fulgham.
Source/WebCore:
Update FrameProgressTracker to send the necessary page load start/stop
signals so that we can track the entire page load at a network level.
Add an empty override of the pure virtual
LoaderStrategy::pageLoadCompleted method.
No new tests. There is no testable effect from these changes. On
Cocoa, measurable changes take place in another (non-WebKit) process.
On non-Cocoa systems, this facility is currently disabled.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameProgressTracker::progressCompleted):
* loader/LoaderStrategy.h:
Source/WebKit:
Add NetworkActivityTracker. The idea behind this facility is to create
and destroy them around networking activity that we want to track for
the purpose of measuring overall network health. They can be created
around the loading of pages or individual resources, and can be
arranged in a parent/child hierarchy to indicate what pages the
resources are part of. The NetworkActivity tracker tracks load times
and results. On Cocoa, it can be integrated with CFNetwork in order to
associate WebKit activity with low-level networking activity.
* CMakeLists.txt:
* Configurations/WebKit.xcconfig:
* NetworkProcess/NetworkActivityTracker.cpp: Copied from Source/WebKit/NetworkProcess/NetworkLoadParameters.h.
(WebKit::NetworkActivityTracker::NetworkActivityTracker):
(WebKit::NetworkActivityTracker::~NetworkActivityTracker):
(WebKit::NetworkActivityTracker::setParent):
(WebKit::NetworkActivityTracker::start):
(WebKit::NetworkActivityTracker::complete):
* NetworkProcess/NetworkActivityTracker.h: Added.
(WebKit::NetworkActivityTracker::getPlatformObject):
* NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::pageLoadCompleted):
(WebKit::networkActivityTrackingEnabled):
(WebKit::NetworkConnectionToWebProcess::startTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::stopTrackingResourceLoad):
(WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTracking):
(WebKit::NetworkConnectionToWebProcess::stopAllNetworkActivityTrackingForPage):
(WebKit::NetworkConnectionToWebProcess::findRootNetworkActivity):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):
* NetworkProcess/NetworkConnectionToWebProcess.h:
(WebKit::NetworkConnectionToWebProcess::ResourceNetworkActivityTracker::ResourceNetworkActivityTracker):
* NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
* NetworkProcess/NetworkLoadParameters.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::initializeNetworkProcess):
* NetworkProcess/NetworkProcess.h:
(WebKit::NetworkProcess::trackNetworkActivity const):
* NetworkProcess/NetworkProcessCreationParameters.cpp:
(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):
* NetworkProcess/NetworkProcessCreationParameters.h:
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::didFailLoading):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::continueProcessingCachedEntryAfterDidReceiveResponse):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/cocoa/NetworkActivityTrackerCocoa.mm: Added.
(WebKit::NetworkActivityTracker::NetworkActivityTracker):
(WebKit::NetworkActivityTracker::~NetworkActivityTracker):
(WebKit::NetworkActivityTracker::setParent):
(WebKit::NetworkActivityTracker::start):
(WebKit::NetworkActivityTracker::complete):
* NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* UIProcess/API/APIProcessPoolConfiguration.cpp:
(API::ProcessPoolConfiguration::copy):
* UIProcess/API/APIProcessPoolConfiguration.h:
* UIProcess/API/C/WKContextConfigurationRef.cpp:
(WKContextConfigurationTrackNetworkActivity):
(WKContextConfigurationSetTrackNetworkActivity):
* UIProcess/API/C/WKContextConfigurationRef.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
* UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:
(-[_WKProcessPoolConfiguration trackNetworkActivity]):
(-[_WKProcessPoolConfiguration setTrackNetworkActivity:]):
* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::ensureNetworkProcess):
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::pageLoadCompleted):
* WebProcess/Network/WebLoaderStrategy.h:
Source/WebKitLegacy:
Add an empty override of the pure virtual
LoaderStrategy::pageLoadCompleted method.
* WebCoreSupport/WebResourceLoadScheduler.cpp:
(WebResourceLoadScheduler::pageLoadCompleted):
* WebCoreSupport/WebResourceLoadScheduler.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231282
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Thu, 3 May 2018 00:28:27 +0000 (00:28 +0000)]
Unreviewed, rolling out r231251.
https://bugs.webkit.org/show_bug.cgi?id=185229
__cpp_lib_optional should be used after including <optional>
since it is defined in <optional> (Requested by yusukesuzuki
on #webkit).
Reverted changeset:
"Follow-up build fix for r231223"
https://bugs.webkit.org/show_bug.cgi?id=185159
https://trac.webkit.org/changeset/231251
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231281
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jmarcell@apple.com [Wed, 2 May 2018 23:10:37 +0000 (23:10 +0000)]
Versioning.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231280
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
eric.carlson@apple.com [Wed, 2 May 2018 23:08:20 +0000 (23:08 +0000)]
[iOS] Provide audio route information when invoking AirPlay picker
https://bugs.webkit.org/show_bug.cgi?id=185199
<rdar://problem/
39853103>
Unreviewed, another attempted build fix.
* pal/spi/mac/AVFoundationSPI.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231278
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
jer.noble@apple.com [Wed, 2 May 2018 23:00:19 +0000 (23:00 +0000)]
Open audio/video sandbox services for minimal simulator
https://bugs.webkit.org/show_bug.cgi?id=185217
<rdar://problem/
39918909>
Reviewed by Per Arne Vollan.
* WebKit.xcodeproj/project.pbxproj:
* WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231277
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
commit-queue@webkit.org [Wed, 2 May 2018 22:55:44 +0000 (22:55 +0000)]
Can't copy and paste URLs that have no title into Mail (macOS)
https://bugs.webkit.org/show_bug.cgi?id=185205
<rdar://problem/
36352406>
Patch by Aditya Keerthi <akeerthi@apple.com> on 2018-05-02
Reviewed by Tim Horton.
Source/WebCore:
The pasteboardURL generated has an empty title for URLs without titles. Currently, the pasteboardURL.title is being saved to the pasteboard.
To fix the error, we check whether the title is empty and instead save the lastPathComponent to the pasteboard. This matches current behavior as the fallback title.
Augmented WebKitLegacy.ContextMenuCanCopyURL test
* platform/mac/PasteboardMac.mm:
(WebCore::writeURLForTypes):
Tools:
Added test to verify behavior when copying and pasting a URL without a title.
* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.html:
* TestWebKitAPI/Tests/mac/ContextMenuCanCopyURL.mm:
(TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231276
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
youenn@apple.com [Wed, 2 May 2018 22:50:01 +0000 (22:50 +0000)]
Rebase imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html expectation
https://bugs.webkit.org/show_bug.cgi?id=185221
Unreviewed.
* web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231274
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
dbates@webkit.org [Wed, 2 May 2018 22:22:21 +0000 (22:22 +0000)]
Cleanup NetworkResourceLoader::didReceiveResponse()
https://bugs.webkit.org/show_bug.cgi?id=185209
Reviewed by Chris Dumez.
Use early returns to make the control flow easier to read and reason about. Disregarding a
From-Origin violation, NetworkResourceLoader::didReceiveResponse() only returns NetworkLoadClient::ShouldContinueDidReceiveResponse::No
when the load is for a main resource and hence it must wait for the embedding client to allow
the load before continuing with it. With regards to a From-Origin violation, the network
process schedules to fail the load in a subsequent turn of the event loop before returning
NetworkLoadClient::ShouldContinueDidReceiveResponse::No. It return NetworkLoadClient::ShouldContinueDidReceiveResponse::No
solely to tell the NetworkLoadClient to defer assuming the load is allowed (because we will
fail it on the next turn of the event loop).
Additionally, remove all logging about the return value as we no longer have a need for
such logging.
* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveResponse):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231271
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
ross.kirsling@sony.com [Wed, 2 May 2018 22:11:22 +0000 (22:11 +0000)]
[WinCairo] Unreviewed gardening. Add missing Skip for http/wpt.
* platform/wincairo/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@231268
268f45cc-cd09-0410-ab3c-
d52691b4dbfc