Timeline
Apr 11, 2018:
- 11:59 PM Changeset in webkit [230558] by
-
- 16 edits1 add in trunk
[GLIB] Handle strings containing null characters
https://bugs.webkit.org/show_bug.cgi?id=184450
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
We should be able to evaluate scripts containing null characters and to handle strings that contains them
too. In JavaScript strings are not null-terminated, they can contain null characters. This patch adds a length
parameter to jsc_context_valuate() to pass the script length (or -1 if it's null terminated), and new functions
jsc_value_new_string_from_bytes() and jsc_value_to_string_as_bytes() using GBytes to store strings that might
contain null characters.
- API/OpaqueJSString.cpp:
(OpaqueJSString::create): Add a create constructor that takes the String.
- API/OpaqueJSString.h:
(OpaqueJSString::OpaqueJSString): Add a constructor that takes the String.
- API/glib/JSCContext.cpp:
(jsc_context_evaluate): Add length parameter.
(jsc_context_evaluate_with_source_uri): Ditto.
- API/glib/JSCContext.h:
- API/glib/JSCValue.cpp:
(jsc_value_new_string_from_bytes):
(jsc_value_to_string):
(jsc_value_to_string_as_bytes):
(jsc_value_object_is_instance_of): Pass length to evaluate.
- API/glib/JSCValue.h:
- API/glib/docs/jsc-glib-4.0-sections.txt:
Tools:
Add test case for strings with null characters and update all calls to evaluate to pass the script length.
- TestWebKitAPI/PlatformGTK.cmake:
- TestWebKitAPI/PlatformWPE.cmake:
- TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:
(testJSCBasic):
(testJSCFunction):
(testJSCObject):
(testJSCClass):
(testJSCPrototypes):
(testJSCExceptions):
(testJSCPromises):
(testJSCGarbageCollector):
(testJSCWeakValue):
(testsJSCVirtualMachine):
(testsJSCAutocleanups):
- TestWebKitAPI/Tests/JavaScriptCore/glib/script.js: Added.
- TestWebKitAPI/Tests/WebKitGLib/DOMElementTest.cpp:
(DOMElementTest::testAutoFill):
- TestWebKitAPI/Tests/WebKitGLib/EditorTest.cpp:
(WebKitWebEditorTest::testSelectionChanged):
- TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:
(WebKitFrameTest::testJavaScriptValues):
- TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:
(consoleMessageSentCallback):
(methodCallCallback):
- 10:53 PM Changeset in webkit [230557] by
-
- 8 edits in trunk
[WPE] Make WebKitWebViewBackend object mandatory for webkit_web_view_new*() constructors
https://bugs.webkit.org/show_bug.cgi?id=184513
Reviewed by Michael Catanzaro.
Source/WebKit:
webkit_web_view_new*() constructors should always expect a non-null
WebKitWebViewBackend object, forcing the user to specify how the
wpe_view_backend object is managed for the WebKitWebView that's being
created.
webkitWebViewBackendCreateDefault() and the default
_WebKitWebViewBackend() constructor are removed. WPE-specific
webkit_web_view_new*() entrypoints are updated to bail if the passed-in
WebKitWebViewBackend object is null. Documentation is updated
accordingly.
- UIProcess/API/glib/WebKitWebView.cpp:
(webkitWebViewConstructed):
- UIProcess/API/wpe/WebKitWebViewBackend.cpp:
(webkitWebViewBackendCreateDefault): Deleted.
- UIProcess/API/wpe/WebKitWebViewBackendPrivate.h:
- UIProcess/API/wpe/WebKitWebViewWPE.cpp:
(webkit_web_view_new):
(webkit_web_view_new_with_context):
(webkit_web_view_new_with_related_view):
(webkit_web_view_new_with_settings):
(webkit_web_view_new_with_user_content_manager):
Tools:
Update the WPE-specific testWebViewWebBackend() test case, removing the
test that passes a null WebKitWebViewBackend object to the
webkit_web_view_new() call.
Helper createWebViewBackend() that's called via Test::createWebView()
variations is updated to, in case of not using the headless backend,
return a WebKitWebViewBackend instance that wraps around a
default wpe_view_backend object.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewWebBackend):
- TestWebKitAPI/glib/WebKitGLib/TestMain.h:
(Test::createWebViewBackend):
- 9:27 PM Changeset in webkit [230556] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] Add CCallHelpers::CellValue to wrap JSCell GPR to convert it to EncodedJSValue
https://bugs.webkit.org/show_bug.cgi?id=184500
Reviewed by Mark Lam.
Instead of passing JSValue::JSCellTag to callOperation meta-program to convert
JSCell GPR to EncodedJSValue in 32bit code, we add CallHelpers::CellValue.
It is a wrapper for GPRReg, like TrustedImmPtr for pointer value. When poking
CellValue, 32bit code emits JSValue::CellTag automatically. In 64bit, we just
poke held GPR. The benefit from this CellValue is that we can use the same code
for 32bit and 64bit. This patch removes several ifdefs.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateImpl):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileCallDOMGetter):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):
(JSC::DFG::SpeculativeJIT::cachedPutById):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
- jit/CCallHelpers.h:
(JSC::CCallHelpers::CellValue::CellValue):
(JSC::CCallHelpers::CellValue::gpr const):
(JSC::CCallHelpers::setupArgumentsImpl):
- 9:19 PM Changeset in webkit [230555] by
-
- 7 edits in trunk/Tools
[LayoutReloaded] Introduce needsLayout flag
https://bugs.webkit.org/show_bug.cgi?id=184527
Reviewed by Antti Koivisto.
Use the formatting state to mark boxes dirty.
- LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
(BlockFormattingContext.prototype.layout):
(BlockFormattingContext.prototype._firstInFlowChildWithNeedsLayout):
(BlockFormattingContext.prototype._nextInFlowSiblingWithNeedsLayout):
(BlockFormattingContext):
- LayoutReloaded/FormattingContext/FormattingContext.js:
(FormattingContext.prototype._layoutOutOfFlowDescendants):
- LayoutReloaded/FormattingState/FormattingState.js:
(FormattingState):
(FormattingState.prototype.markNeedsLayout):
(FormattingState.prototype.clearNeedsLayout):
(FormattingState.prototype.needsLayout):
(FormattingState.prototype.layoutNeeded):
(FormattingState.prototype._markSubTreeNeedsLayout):
- LayoutReloaded/LayoutState.js:
(LayoutState.prototype.formattingStateForBox):
(LayoutState.prototype.setNeedsLayout):
(LayoutState.prototype.needsLayout):
- LayoutReloaded/LayoutTree/Box.js:
(Layout.Box.prototype.isFormattingContextDescendant):
- LayoutReloaded/LayoutTree/Container.js:
(Layout.Container.prototype.isContainingBlockDescendant):
- 8:55 PM Changeset in webkit [230554] by
-
- 3 edits4 adds in trunk
input.webkitEntries does not work as expected when folder contains accented chars
https://bugs.webkit.org/show_bug.cgi?id=184517
<rdar://problem/39265537>
Reviewed by Ryosuke Niwa.
Source/WebCore:
Use String::fromUTF8() to construct a WTF String from the char* returned by
dirname() in FileSystem::directoryName(). Previously, we were just calling
the String constructor, which would treat the input as latin 1 instead of
UTF-8.
Test: fast/forms/file/entries-api/webkitEntries-nonascii-folder-name.html
- platform/posix/FileSystemPOSIX.cpp:
(WebCore::FileSystem::directoryName):
LayoutTests:
Add layout test coverage.
- fast/forms/file/entries-api/webkitEntries-nonascii-folder-name-expected.txt: Added.
- fast/forms/file/entries-api/webkitEntries-nonascii-folder-name.html: Added.
- 7:44 PM Changeset in webkit [230553] by
-
- 2 edits in trunk/Source/bmalloc
raise partial scavenge interval on x86-64
https://bugs.webkit.org/show_bug.cgi?id=184521
Rubber-stamped by Filip Pizlo.
This patch is an attempt to recover the 1-3% JetStream regression
my initial partial scavenging patch introduced on some Macs.
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::threadRunLoop):
- 6:09 PM Changeset in webkit [230552] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, rolling out r230523.
Introduced MotionMark regression
Reverted changeset:
"Deactivate the WindowServer connection for the WebContent
process."
https://bugs.webkit.org/show_bug.cgi?id=184451
https://trac.webkit.org/changeset/230523
- 5:53 PM Changeset in webkit [230551] by
-
- 3 edits2 adds in trunk/Source/WebKit
[curl][WebKit] Implement NetworkDataTaskCurl
https://bugs.webkit.org/show_bug.cgi?id=184488
Reviewed by Alex Christensen.
- NetworkProcess/NetworkDataTask.cpp:
(WebKit::NetworkDataTask::create):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp: Added.
(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::~NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::resume):
(WebKit::NetworkDataTaskCurl::suspend):
(WebKit::NetworkDataTaskCurl::cancel):
(WebKit::NetworkDataTaskCurl::invalidateAndCancel):
(WebKit::NetworkDataTaskCurl::state const):
(WebKit::NetworkDataTaskCurl::createCurlRequest):
(WebKit::NetworkDataTaskCurl::curlDidSendData):
(WebKit::NetworkDataTaskCurl::curlDidReceiveResponse):
(WebKit::NetworkDataTaskCurl::curlDidReceiveBuffer):
(WebKit::NetworkDataTaskCurl::curlDidComplete):
(WebKit::NetworkDataTaskCurl::curlDidFailWithError):
(WebKit::NetworkDataTaskCurl::shouldRedirectAsGET):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
(WebKit::NetworkDataTaskCurl::restartWithCredential):
(WebKit::NetworkDataTaskCurl::appendCookieHeader):
(WebKit::NetworkDataTaskCurl::handleCookieHeaders):
- NetworkProcess/curl/NetworkDataTaskCurl.h: Added.
- PlatformWin.cmake:
- 3:46 PM Changeset in webkit [230550] by
-
- 3 edits in trunk/Source/JavaScriptCore
[Build fix] Replace CompactJITCodeMap with JITCodeMap.
https://bugs.webkit.org/show_bug.cgi?id=184512
<rdar://problem/35391728>
Not reviewed.
- bytecode/CodeBlock.h:
- jit/JITCodeMap.h:
- 3:09 PM Changeset in webkit [230549] by
-
- 10 edits1 add1 delete in trunk/Source/JavaScriptCore
Replace CompactJITCodeMap with JITCodeMap.
https://bugs.webkit.org/show_bug.cgi?id=184512
<rdar://problem/35391728>
Reviewed by Filip Pizlo.
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- bytecode/CodeBlock.h:
(JSC::CodeBlock::setJITCodeMap):
(JSC::CodeBlock::jitCodeMap const):
(JSC::CodeBlock::jitCodeMap): Deleted.
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::adjustAndJumpToTarget):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::decodedCodeMapFor): Deleted.
- jit/AssemblyHelpers.h:
- jit/CompactJITCodeMap.h: Removed.
- jit/JIT.cpp:
(JSC::JIT::link):
- jit/JITCodeMap.h: Added.
(JSC::JITCodeMap::Entry::Entry):
(JSC::JITCodeMap::Entry::bytecodeIndex const):
(JSC::JITCodeMap::Entry::codeLocation):
(JSC::JITCodeMap::append):
(JSC::JITCodeMap::finish):
(JSC::JITCodeMap::find const):
(JSC::JITCodeMap::operator bool const):
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- 2:49 PM Changeset in webkit [230548] by
-
- 9 edits2 adds in trunk
Preventively expect UTF8 strings from libwebrtc SDP and error messages
https://bugs.webkit.org/show_bug.cgi?id=184509
Reviewed by Eric Carlson.
Source/WebCore:
Make WebCore code expect any libwebrtc string to contain UTF-8.
Currently SDPs do not contain any UTF-8 specific character
but https://tools.ietf.org/html/rfc4566 allows it.
Add Internals API to set track id so that we can inject UTF-8 inside some WebRTC tests.
Test: webrtc/utf8-sdp.html
- Modules/mediastream/MediaStreamTrack.h:
(WebCore::MediaStreamTrack::setIdForTesting):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::fromStdString):
(WebCore::fromSessionDescription):
(WebCore::LibWebRTCMediaEndpoint::doSetLocalDescription):
(WebCore::LibWebRTCMediaEndpoint::doSetRemoteDescription):
(WebCore::LibWebRTCMediaEndpoint::mediaStreamFromRTCStream):
(WebCore::LibWebRTCMediaEndpoint::addRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::addDataChannel):
(WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):
(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionSucceeded):
(WebCore::LibWebRTCMediaEndpoint::createSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setLocalSessionDescriptionFailed):
(WebCore::LibWebRTCMediaEndpoint::setRemoteSessionDescriptionFailed):
(WebCore::trackId): Deleted.
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::fromStdString):
(WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate):
(WebCore::createReceiverForSource):
- platform/mediastream/MediaStreamTrackPrivate.h:
(WebCore::MediaStreamTrackPrivate::setIdForTesting):
- testing/Internals.cpp:
(WebCore::Internals::setMediaStreamTrackIdentifier):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
- webrtc/utf8-sdp-expected.txt: Added.
- webrtc/utf8-sdp.html: Added.
- 2:06 PM Changeset in webkit [230547] by
-
- 4 edits2 deletes in trunk/Source/WebKit
[Extra zoom mode] Support pushing input view controllers onto the navigation stack
https://bugs.webkit.org/show_bug.cgi?id=184397
<rdar://problem/39265294>
Reviewed by Timothy Hatcher.
Currently, all input view controllers in extra zoom mode are presented modally. However, the latest iteration of
the HI specification depicts most of these view controllers (with the exception of time pickers) being presented
and dismissed via navigation stack. Since WebKit's iOS API surface doesn't force clients to embed WKWebViews
within a view controller with a corresponding UINavigationController, we cannot always guarantee that UI
presented when focusing form controls in a web view will be pushed onto the navigation stack; as such, the
approach taken in this patch will automatically allow WKWebView clients that already embed WKWebViews within a
UINavigationController to hook into this behavior, with modal presentation as a fallback.
At a high level, this patch makes the following tweaks to implement this behavior:
- Store the currently presented view controller using a single member variable (_presentedFullScreenInputViewController) instead of having one for each type. This makes bookkeepping around which view controller to present or dismiss much more straightforward.
- Replace WKFocusedFormControlViewController with just WKFocusedFormControlView. This addresses problems with pushing an input view controller onto the navigation stack after presenting the focused form control view controller modally. Now, we'll only need to present or push one view controller on the navigation stack.
- Remove -handleWheelEvent: forwarding to date and time pickers. Pushing date picker view controllers onto the navigation stack rather than presenting them modally means that we end up in a state where neither the WKContentView nor WKTimePickerViewController are first responder, which renders time pickers unusable. Instead, have the WKTimePickerViewController actually become first responder when presenting.
- Lastly, and most importantly: change -presentViewControllerForCurrentAssistedNode and -dismissAllInputViewControllers to try and push onto a navigation stack if possible, and fall back to modal presentation.
- UIProcess/ios/WKContentViewInteraction.h:
Remove the separate member variables for each type of input view controller, and instead have one to keep track
of the current (and only) presented input view controller.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _stopAssistingNode]):
Boilerplate renaming of _focusedFormControlViewController => _focusedFormControlView.
(-[WKContentView reloadContextViewForPresentedListViewController]):
Adjust for consolidation of the different input view controller member variables to a single member (see changes
in WKContentViewInteraction.h).
(-[WKContentView addFocusedFormControlOverlay]):
(-[WKContentView removeFocusedFormControlOverlay]):
(-[WKContentView presentViewControllerForCurrentAssistedNode]):
(-[WKContentView dismissAllInputViewControllers:]):
Add an
animatedargument. In the case where a different view controller was presented after presenting the
input view controller, this allows us to dismiss the other view controller with animation, and directly reveal
the web view or focus overlay underneath.
(-[WKContentView focusedFormControlViewDidSubmit:]):
(-[WKContentView focusedFormControlViewDidCancel:]):
(-[WKContentView focusedFormControlViewDidBeginEditing:]):
(-[WKContentView rectForFocusedFormControlView:]):
(-[WKContentView nextRectForFocusedFormControlView:]):
(-[WKContentView previousRectForFocusedFormControlView:]):
(-[WKContentView scrollViewForFocusedFormControlView:]):
(-[WKContentView actionNameForFocusedFormControlView:]):
(-[WKContentView focusedFormControlViewDidRequestNextNode:]):
(-[WKContentView focusedFormControlViewDidRequestPreviousNode:]):
(-[WKContentView hasNextNodeForFocusedFormControlView:]):
(-[WKContentView hasPreviousNodeForFocusedFormControlView:]):
(-[WKContentView focusedFormControllerDidUpdateSuggestions:]):
Boilerplate renaming of focus overlay delegate methods.
(-[WKContentView _wheelChangedWithEvent:]):
Remove event forwarding hacks for date and time inputs, now that they directly become first responder.
(-[WKContentView presentFocusedFormControlViewController:]): Deleted.
(-[WKContentView dismissFocusedFormControlViewController:]): Deleted.
Renamed to -addFocusedFormControlOverlay and -removeFocusedFormControlOverlay.
(-[WKContentView dismissAllInputViewControllers]): Deleted.
(-[WKContentView focusedFormControlControllerDidSubmit:]): Deleted.
(-[WKContentView focusedFormControlControllerDidCancel:]): Deleted.
(-[WKContentView focusedFormControlControllerDidBeginEditing:]): Deleted.
(-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]): Deleted.
(-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]): Deleted.
(-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]): Deleted.
(-[WKContentView scrollViewForFocusedFormControlController:]): Deleted.
(-[WKContentView actionNameForFocusedFormControlController:]): Deleted.
(-[WKContentView focusedFormControlControllerDidRequestNextNode:]): Deleted.
(-[WKContentView focusedFormControlControllerDidRequestPreviousNode:]): Deleted.
(-[WKContentView hasNextNodeForFocusedFormControlController:]): Deleted.
(-[WKContentView hasPreviousNodeForFocusedFormControlController:]): Deleted.
- UIProcess/ios/forms/WKFocusedFormControlViewController.h: Removed.
- UIProcess/ios/forms/WKFocusedFormControlViewController.mm: Removed.
Completely remove WKFocusedFormControlViewController; instead, just directly place the focused form overlay in
the WKWebView's hierarchy. In the case where we have a navigation stack to push to, we can no longer modally
present the focused form overlay as a separate view controller using the UINavigationController, and then
immediately push the input view controller on top of the navigation stack, since the navigation stack isn't
updated until after the animation of the focused form overlay presentation is complete. Rather than hack around
this limitation by dispatch_after-ing after presenting the overlay's view controller, we should just make the
overlay a view. This also fixes the case where a client embedding a WKWebView that is smaller than the bounds of
the screen will no longer see the entire screen dim when focusing an input, but instead, just the web content.
- WebKit.xcodeproj/project.pbxproj:
- 1:58 PM Changeset in webkit [230546] by
-
- 1 copy in tags/Safari-606.1.13
Tag Safari-606.1.13.
- 1:38 PM Changeset in webkit [230545] by
-
- 2 edits in trunk/Tools
Fix TestInvocation class for newer versions of clang.
https://bugs.webkit.org/show_bug.cgi?id=184508
<rdar://problem/39328648>
Reviewed by Alexey Proskuryakov.
Declare TestInvocation to be final so it does not require a virtual destructor.
- WebKitTestRunner/TestInvocation.h:
- 1:29 PM Changeset in webkit [230544] by
-
- 14 edits1 add in trunk/Source/WebCore
Cache glyphs (using display lists) when painting at high frequency
https://bugs.webkit.org/show_bug.cgi?id=178750
<rdar://problem/35201729>
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2018-04-11
Reviewed by Antti Koivisto.
This patch adds support for caching of glyph drawing commands when painting
at high frequency. Caching the glyph drawing will be done using DisplayLists.
GlyphDisplayListCache is basically a hash map which maps InlineTextBox
or SimpleLineLayout::Run to DisplayList. Before adding a new entry to it
we have to check whether the conditions for caching the glyph DisplayList
are met or not. If no entry is found for a given run, a new DisplayList
is created and a new entry is add to the cache.
- WebCore.xcodeproj/project.pbxproj:
- page/MemoryRelease.cpp:
(WebCore::releaseNoncriticalMemory): Make GlyphDisplayListCache respond
to memory pressure.
- platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
- platform/graphics/FontCascade.h:
(WebCore::FontCascade::displayListForTextRun):
Record the drawing of a glyph run into a DisplayList.
- rendering/GlyphDisplayListCache.h: Added.
(WebCore::GlyphDisplayListCache::singleton):
(WebCore::GlyphDisplayListCache::get):
(WebCore::GlyphDisplayListCache::remove):
(WebCore::GlyphDisplayListCache::clear):
(WebCore::GlyphDisplayListCache::size const):
(WebCore::GlyphDisplayListCache::sizeInBytes const):
A simple cache for the TextRun DisplayList. Adding a new entry in the
cache happens under restricted conditions. So this cache is not expected
to grow much.
- rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::~InlineTextBox):
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintMarkedTexts):
(WebCore::InlineTextBox::paintMarkedTextBackground):
(WebCore::InlineTextBox::paintMarkedTextForeground):
(WebCore::InlineTextBox::paintMarkedTextDecoration):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintCompositionUnderlines const):
(WebCore::InlineTextBox::paintCompositionUnderline const):
- rendering/InlineTextBox.h:
(WebCore::InlineTextBox::paintMarkedTexts):
InlineTextBox::paintMarkedTextForeground() now requires PaintInfo to know
whether the entry in the GlyphDisplayListCache should be removed or not.
Change all the GraphicsContext arguments to be PaintInfo.
- rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::Layout::~Layout):
- rendering/SimpleLineLayout.h:
- rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::simpleLineLayoutWillBeDeleted):
- rendering/SimpleLineLayoutFunctions.h:
- rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::simpleRun const):
Implement the glyph caching for SimpleLineLayout::Run.
- rendering/TextPainter.cpp:
(WebCore::TextPainter::paintTextOrEmphasisMarks): If the DisplayList is
available, replay it back into the GraphicsContext. Make sure to reset to
the DisplayList pointer to nullptr after painting.
(WebCore::TextPainter::clearGlyphDisplayLists):
(WebCore::TextPainter::shouldUseGlyphDisplayList): Check whether we should
use DisplayList to the draw glyph run.
- rendering/TextPainter.h:
(WebCore::TextPainter::setGlyphDisplayListIfNeeded): Check whether we should
should use DisplayList to the draw glyph run and if we should, ensure first
the DisplayList is cached and set it in the TextPainter so it uses it when
the run is painted.
(WebCore::TextPainter::removeGlyphDisplayList): Remove the cached DisplayList
entry for a glyph layout run.
- 1:02 PM Changeset in webkit [230543] by
-
- 5 edits1 delete in trunk/Source/JavaScriptCore
[DFG] Remove CompareSlowPathGenerator
https://bugs.webkit.org/show_bug.cgi?id=184492
Reviewed by Mark Lam.
Now CompareSlowPathGenerator is just calling a specified function.
This can be altered with slowPathCall. This patch removes CompareSlowPathGenerator.
We also remove some of unnecessary USE(JSVALUE32_64) / USE(JSVALUE64) ifdefs by
introducing a new constructor for GPRTemporary.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGCompareSlowPathGenerator.h: Removed.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::SpeculativeJIT::compileIsCellWithType):
(JSC::DFG::SpeculativeJIT::compileIsTypedArrayView):
(JSC::DFG::SpeculativeJIT::compileToObjectOrCallObjectConstructor):
(JSC::DFG::SpeculativeJIT::compileIsObject):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::GPRTemporary::GPRTemporary):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
- 12:52 PM Changeset in webkit [230542] by
-
- 2 edits in trunk/Source/WebCore
GraphicsLayerCA::createPlatformCALayer always disables extended color in its backing store
https://bugs.webkit.org/show_bug.cgi?id=184367
<rdar://problem/39249074>
Reviewed by Simon Fraser.
'createPlatformCALayer' always passes a nil widget, which early returns from 'screenSupportsExtendedColor'
with false. Instead, we should just pass the widget (nil or not) to the screen properties methods,
which will use the primary screen if no screen is specified. I.e., we shouldn't do an early return
here if the passed widget is nil.
- platform/mac/PlatformScreenMac.mm:
(WebCore::screenSupportsExtendedColor):
- 12:05 PM Changeset in webkit [230541] by
-
- 15 edits in trunk/Source
Pass FetchOptions and SecurityOrigin as load parameters from WebProcess to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=184374
Reviewed by Chris Dumez.
Source/WebCore:
Add support for SecurityOrigin encode/decode routines.
- page/SecurityOrigin.h:
Source/WebKit:
Pass full FetchOptions parameters as part of NetworkResourceLoadParameters.
This will allow handling redirection mode as well as credentials in case of cross origin redirections.
In case of SameOrigin credentials and there is a redirection from same-origin to cross-origin,
we will be able to stop using credentials without going to WebProcess.
To handle properly cross-origin checks, we have to be able to use SecurityOrigin as in WebProcess.
We make WebProcess sends Origin Access White list information to NetworkProcess.
This allows supporting the white list when doing loading in NetworkProcess.
This only works consistently if all WebProcesses share the same whitelist.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::loadPing):
(WebKit::NetworkConnectionToWebProcess::addOriginAccessWhitelistEntry):
(WebKit::NetworkConnectionToWebProcess::removeOriginAccessWhitelistEntry):
(WebKit::NetworkConnectionToWebProcess::resetOriginAccessWhitelists):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::continueCheckingRequest):
(WebKit::NetworkLoadChecker::checkCORSRequest):
(WebKit::NetworkLoadChecker::checkCORSRedirectedRequest):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
(WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const):
- NetworkProcess/NetworkLoadChecker.h:
(WebKit::NetworkLoadChecker::create):
- NetworkProcess/NetworkResourceLoadParameters.cpp:
(WebKit::NetworkResourceLoadParameters::encode const):
(WebKit::NetworkResourceLoadParameters::decode):
- NetworkProcess/NetworkResourceLoadParameters.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::willPerformHTTPRedirection):
- NetworkProcess/PingLoad.h:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::addOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::removeOriginAccessWhitelistEntry):
(WebKit::InjectedBundle::resetOriginAccessWhitelists):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::startPingLoad):
- 11:33 AM Changeset in webkit [230540] by
-
- 16 edits in trunk
[GStreamer] Use of playbin3 when USE_PLAYBIN3 environment variable is set
https://bugs.webkit.org/show_bug.cgi?id=184498
Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-04-11
Reviewed by Philippe Normand.
.:
This is the same behaviour as with playbin itself.
Make sure to keep using "playbin" for MediaSource.
- Source/cmake/GStreamerDefinitions.cmake:
Source/WebCore:
[GStreamer] Use of playbin3 when USE_PLAYBIN3 environment variable is set
This is the same behaviour as with playbin itself.
Make sure to keep using "playbin" for MediaSource.
No test added as this is basically a small rework of the way we expose a feature.
- platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
- platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
- platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
- platform/graphics/gstreamer/GRefPtrGStreamer.h:
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
- platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::enableTrack):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
- platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
(WebCore::TrackPrivateBaseGStreamer::disconnect):
(WebCore::TrackPrivateBaseGStreamer::tagsChanged):
- platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
- platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
- platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
- 11:15 AM Changeset in webkit [230539] by
-
- 4 edits in branches/safari-605-branch/Source/JavaScriptCore
Unreviewed follow-up fix for r230376. rdar://problem/39317885.
- 11:15 AM Changeset in webkit [230538] by
-
- 6 edits in branches/safari-605-branch/Source
Cherry-pick r230467. rdar://problem/39317878
Refactor Ignore HSTS code
https://bugs.webkit.org/show_bug.cgi?id=184433
<rdar://problem/39298238>
Reviewed by Darin Adler.
This patch refactors our ignore HSTS code. The convenience functions are moved
out of CFNetwork SPI in PAL, and into where they are used. It also switches
from performSelector: calls to straight function calls, after checking that
there is a responder.
Source/WebCore:
- platform/network/mac/WebCoreURLResponse.mm: (WebCore::schemeWasUpgradedDueToDynamicHSTS):
Add convenience function here since it was moved out of
CFNetworkSPI.h.
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h: (schemeWasUpgradedDueToDynamicHSTS): Deleted. (setIgnoreHSTS): Deleted. (ignoreHSTS): Deleted.
Source/WebKit:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm: (schemeWasUpgradedDueToDynamicHSTS): (setIgnoreHSTS): (ignoreHSTS):
Add convenience functions here since they were moved out of
CFNetworkSPI.h.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230467 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:15 AM Changeset in webkit [230537] by
-
- 2 edits in branches/safari-605-branch/Source/JavaScriptCore
Cherry-pick r230379. rdar://problem/39317885
Unreviewed, follow-up patch for DFG 32bit
https://bugs.webkit.org/show_bug.cgi?id=183970
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230379 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:14 AM Changeset in webkit [230536] by
-
- 60 edits4 adds in branches/safari-605-branch
Cherry-pick r230376. rdar://problem/39317885
[JSC] Introduce op_get_by_id_direct
https://bugs.webkit.org/show_bug.cgi?id=183970
Reviewed by Filip Pizlo.
JSTests:
- stress/generator-prototype-copy.js: Added. (gen): (catch): Adopted JF's tests.
- stress/generator-type-check.js: Added. (shouldThrow): (foo2): (i.shouldThrow):
- stress/get-by-id-direct-getter.js: Added. (shouldBe): (shouldThrow): (obj.get hello): (builtin.createBuiltin): (obj2.get length):
- stress/get-by-id-direct.js: Added. (shouldBe): (shouldThrow): (builtin.createBuiltin):
- test262.yaml: We fixed long-standing spec compatibility issue. As a result, this patch makes several test262 tests passed!
Source/JavaScriptCore:
This patch introduces op_get_by_id_direct bytecode. This is super similar to op_get_by_id.
But it just performs GetOwnProperty operation instead of Get. We support this
in all the tiers, so using this opcode does not lead to inefficiency.
Main purpose of this op_get_by_id_direct is using it for private properties. We are using
properties indexed with private symbols to implement ECMAScript internal fields. Before this
patch, we just use get and put operations. However, it is not the correct semantics: accessing
to the internal fields should not traverse prototype chain, which is specified in the spec.
We use op_get_by_id_direct to access to properties which are used internal fields, so that
prototype chains are not traversed.
To emit op_get_by_id_direct, we introduce a new bytecode intrinsic @getByIdDirectPrivate().
When you write@getByIdDirectPrivate(object, "name"), the bytecode generator emits the
bytecodeop_get_by_id_direct, object, @name.
- builtins/ArrayIteratorPrototype.js: (next): (globalPrivate.arrayIteratorValueNext): (globalPrivate.arrayIteratorKeyNext): (globalPrivate.arrayIteratorKeyValueNext):
- builtins/AsyncFromSyncIteratorPrototype.js:
- builtins/AsyncFunctionPrototype.js: (globalPrivate.asyncFunctionResume):
- builtins/AsyncGeneratorPrototype.js: (globalPrivate.asyncGeneratorQueueIsEmpty): (globalPrivate.asyncGeneratorQueueEnqueue): (globalPrivate.asyncGeneratorQueueDequeue): (globalPrivate.asyncGeneratorDequeue): (globalPrivate.isExecutionState): (globalPrivate.isSuspendYieldState): (globalPrivate.asyncGeneratorReject): (globalPrivate.asyncGeneratorResolve): (globalPrivate.doAsyncGeneratorBodyCall): (globalPrivate.asyncGeneratorEnqueue):
- builtins/GeneratorPrototype.js: (globalPrivate.generatorResume): (next): (return): (throw):
- builtins/MapIteratorPrototype.js: (next):
- builtins/PromiseOperations.js: (globalPrivate.isPromise): (globalPrivate.rejectPromise): (globalPrivate.fulfillPromise):
- builtins/PromisePrototype.js: (then):
- builtins/SetIteratorPrototype.js: (next):
- builtins/StringIteratorPrototype.js: (next):
- builtins/TypedArrayConstructor.js: (of): (from):
- bytecode/BytecodeDumper.cpp: (JSC::BytecodeDumper<Block>::dumpBytecode):
- bytecode/BytecodeIntrinsicRegistry.h:
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h: (JSC::computeUsesForBytecodeOffset): (JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp: (JSC::CodeBlock::finishCreation): (JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/GetByIdStatus.cpp: (JSC::GetByIdStatus::computeFromLLInt): (JSC::GetByIdStatus::computeFor):
- bytecode/StructureStubInfo.cpp: (JSC::StructureStubInfo::reset):
- bytecode/StructureStubInfo.h: (JSC::appropriateOptimizingGetByIdFunction): (JSC::appropriateGenericGetByIdFunction):
- bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitDirectGetById):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp: (JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirect): (JSC::BytecodeIntrinsicNode::emit_intrinsic_getByIdDirectPrivate):
- dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleGetById): (JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp: (JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp: (JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp: (JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h: (JSC::DFG::Node::convertToGetByOffset): (JSC::DFG::Node::convertToMultiGetByOffset): (JSC::DFG::Node::hasIdentifier): (JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h: (JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileGetById): (JSC::DFG::SpeculativeJIT::compileGetByIdFlush): (JSC::DFG::SpeculativeJIT::compileTryGetById): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::cachedGetById): (JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp: (JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileNode): (JSC::FTL::DFG::LowerDFGToB3::compileGetById): (JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis): (JSC::FTL::DFG::LowerDFGToB3::getById):
- jit/JIT.cpp: (JSC::JIT::privateCompileMainPass): (JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITOperations.cpp:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_id_direct): (JSC::JIT::emitSlow_op_get_by_id_direct):
- jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_id_direct): (JSC::JIT::emitSlow_op_get_by_id_direct):
- jit/Repatch.cpp: (JSC::appropriateOptimizingGetByIdFunction): (JSC::appropriateGetByIdFunction): (JSC::tryCacheGetByID): (JSC::repatchGetByID): (JSC::appropriateGenericGetByIdFunction): Deleted.
- jit/Repatch.h:
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/JSCJSValue.h:
- runtime/JSCJSValueInlines.h: (JSC::JSValue::getOwnPropertySlot const):
- runtime/JSObject.h:
- runtime/JSObjectInlines.h: (JSC::JSObject::getOwnPropertySlotInline):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230376 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:56 AM Changeset in webkit [230535] by
-
- 2 edits in tags/Safari-606.1.12.0.1/Source/WebCore
Cherry-pick r230265. rdar://problem/39179126
- 10:39 AM Changeset in webkit [230534] by
-
- 7 edits in tags/Safari-606.1.12.0.1/Source
Versioning.
- 10:31 AM Changeset in webkit [230533] by
-
- 4 edits in trunk
IDN spoofing with Hebrew combining characters
https://bugs.webkit.org/show_bug.cgi?id=184472
<rdar://problem/39148687>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by new API tests.
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::isLookalikeCharacter):
Punycode-encode hosts with Hebrew combining marks that look like dots
and Vav with a combining dot above like we do with dotless i and j.
Tools:
- TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:
(TestWebKitAPI::TEST):
- 10:28 AM Changeset in webkit [230532] by
-
- 1 copy in tags/Safari-606.1.12.0.1
Tag Safari-606.1.12.0.1.
- 10:27 AM Changeset in webkit [230531] by
-
- 8 edits22 adds in trunk/LayoutTests
[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=184506
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/media-source/mediasource-is-type-supported-expected.txt:
- platform/ios-wk1/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 10:03 AM Changeset in webkit [230530] by
-
- 5 edits in trunk
Show punycode if URL contains Latin dum character
https://bugs.webkit.org/show_bug.cgi?id=184477
<rdar://problem/39121999>
Reviewed by David Kilzer.
Source/WebCore:
Revise our "lookalike character" logic to include the small
Latin dum character.
Test: fast/url/host.html
- platform/mac/WebCoreNSURLExtras.mm:
(WebCore::isLookalikeCharacter):
LayoutTests:
- fast/url/host-expected.txt:
- fast/url/host.html:
- 9:58 AM Changeset in webkit [230529] by
-
- 12 edits in trunk/Source
[GTK] WaylandCompositorDisplay leaks its wl_display
https://bugs.webkit.org/show_bug.cgi?id=184406
Reviewed by Carlos Garcia Campos.
Source/WebCore:
Well, this was harder than expected. We really just want to fix a small leak in the WebKit
layer, but that requires a change in how WaylandCompositorDisplay calls the
PlatformDisplayWayland constructor, to pass NativeDisplayOwned::Yes. That means
WaylandCompositorDisplay can no longer use PlatformDisplayWayland's protected default
constructor. Problem is that the normal PlatformDisplayWayland constructor calls
PlatformDisplayWayland::initialize, which calls PlatformDisplayWayland::registryGlobal,
which is a virtual function. The WaylandCompositorDisplay portion of the object is not
constructed yet at this point, so WaylandCompositorDisplay::registryGlobal will never be
called if we do that. I had to revert the previous version of this fix due to this problem.
It had broken accelerated compositing.
I'm reminded of Effective C++ item #9: Never call virtual functions during construction or
destruction ("because such calls will never go to a more derived class than that of the
currently executing constructor or destructor"). This code is fragile and likely to break
again in the future, so let's refactor it a bit. Instead of calling initialize in the
constructor, we'll call it from create functions. We'll have to add a couple create
functions, and make the constructor protected to ensure it's not possible to create a
PlatformDisplayWayland without initializing it. For good parallelism, do the same for the
other PlatformDisplay classes.
This commit additionally removes PlatformDisplayWayland's protected default constructor,
since it's not needed anymore.
The NativeDisplayOwned arguments to the PlatformDisplay constructors are now mandatory,
instead of using NativeDisplayOwned::No as the default value, since that was dangerously
close to being the cause of this leak, and the constructors are now accessed from private
create functions anyway. Some more caution when using default parameter values is warranted
in the future.
Lastly, since we have to change PlatformDisplay::createPlatformDisplay to use the new create
functions, take the opportunity to move things around a bit for clarity. There should be no
change in behavior. I was just disappointed that the PlatformDisplayWPE creation was at the
bottom of the function, after a comment indicating that normal display creation has failed,
which is not the case for WPE.
This all might have been a bit overkill, since the leak could probably have been fixed by
passing nullptr to the PlatformDisplayWayland constructor for the wl_display and not
removing WaylandCompositorDisplay's call to PlatformDisplayWayland::initialize. But the
correctness of that code would then rely on implementation details of initialize, so this
refactor seems better.
No new tests since there *should* be no behavior change. Then again, I'm touching
PlatformDisplay, and history shows we don't have the greatest track record of touching this
code without introducing problems.
- platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::createPlatformDisplay):
- platform/graphics/PlatformDisplay.h:
- platform/graphics/wayland/PlatformDisplayWayland.cpp:
(WebCore::PlatformDisplayWayland::create):
(WebCore::PlatformDisplayWayland::create):
(WebCore::PlatformDisplayWayland::createHeadless):
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::initialize):
- platform/graphics/wayland/PlatformDisplayWayland.h:
- platform/graphics/win/PlatformDisplayWin.h:
- platform/graphics/wpe/PlatformDisplayWPE.cpp:
(WebCore::create):
- platform/graphics/wpe/PlatformDisplayWPE.h:
- platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::create):
(WebCore::PlatformDisplayX11::create):
(WebCore::PlatformDisplayX11::createHeadless):
- platform/graphics/x11/PlatformDisplayX11.h:
Source/WebKit:
Since we allocate our own wl_display here, need to chain up to the parent constructor
passing NativeDisplayOwned::Yes, or it won't ever be released. Move the initialize call to
the create function to ensure it's called after the constructor completes.
- WebProcess/gtk/WaylandCompositorDisplay.cpp:
(WebKit::WaylandCompositorDisplay::create): Fix a log message (drive-by).
(WebKit::WaylandCompositorDisplay::WaylandCompositorDisplay):
- 9:56 AM Changeset in webkit [230528] by
-
- 5 edits in trunk/Source/WebKit
Use more r-values in NetworkResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=184478
Reviewed by Chris Dumez.
Pass load parameters as r-values to remove some unneeded copies.
Ditto for ResourceRequest inside NetworkResourceLoader.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::start):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::startNetworkLoad):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::validateCacheEntry):
- NetworkProcess/NetworkResourceLoader.h:
- 9:43 AM Changeset in webkit [230527] by
-
- 20 edits1 copy1 add in trunk
[Extra zoom mode] Missing label when focusing a <select> with a title attribute but no associated <label>
https://bugs.webkit.org/show_bug.cgi?id=184352
<rdar://problem/39237683>
Reviewed by Andy Estes.
Source/WebKit:
Currently, AssistedNodeInformation only sends the
titleof input elements to the UI process. This means that
any information requested in the UI process that is dependent on thetitleof the focused element is broken
in the case of select elements. An existing example of this is the title of the table view controller used to
present select menus on iPad.
To fix this, we simply send the
titleof the focused element across, as long as the focused element is an
HTMLElement. This ensures that there's label text when focusing unlabeled select elements with titles in extra
zoom mode, and also fixes a currenly broken codepath where we show the title of the select in the presented view
controller's title.
Test: fast/forms/ios/ipad/select-with-title.html
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView selectFormPopoverTitle]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Add new testing SPI to fetch the title of the UITableViewController presented for the currently focused select
element.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView selectFormPopoverTitle]):
- UIProcess/ios/forms/WKFormSelectControl.h:
- UIProcess/ios/forms/WKFormSelectControl.mm:
(-[WKFormSelectControl selectFormPopoverTitle]):
- UIProcess/ios/forms/WKFormSelectPopover.h:
- UIProcess/ios/forms/WKFormSelectPopover.mm:
(-[WKSelectPopover initWithView:hasGroups:]):
(-[WKSelectPopover tableViewController]):
- WebProcess/WebPage/ios/WebPageIOS.mm:
Always send the title across if the focused node is an HTMLElement.
(WebKit::WebPage::getAssistedNodeInformation):
Tools:
Add support for UIScriptController::selectFormPopoverTitle, which returns the title of the current select
popover's UITableViewController (for testing purposes).
- DumpRenderTree/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::selectFormPopoverTitle const):
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.cpp:
(WTR::UIScriptController::selectFormPopoverTitle const):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptController::selectFormPopoverTitle const):
LayoutTests:
Add a new layout test to check that the title of select elements is propagated to the UI process upon focus.
This title is used for several purposes, one of them being the title of select menus in the table view
controller presented when tapping on a select on an iPad, so the test checks that the title of the select is
shown here.
Also moves a select-related helper into UIHelper from basic-gestures.js (since this doesn't involve user gesture
simulation in any way) and also introduces a new UIHelper method for querying the title of the select menu that
is currently being presented.
- fast/forms/ios/ipad/multiple-select-updates-renderer.html:
- fast/forms/ios/ipad/select-with-title-expected.txt: Added.
- fast/forms/ios/ipad/select-with-title.html: Copied from LayoutTests/fast/forms/ios/ipad/multiple-select-updates-renderer.html.
- resources/basic-gestures.js:
- resources/ui-helper.js:
(window.UIHelper.selectFormAccessoryPickerRow):
(window.UIHelper.selectFormPopoverTitle):
(window.UIHelper):
- 9:22 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:22 AM WebKitGTK/Gardening/Calendar edited by
- (diff)
- 9:01 AM Changeset in webkit [230526] by
-
- 13 edits in trunk/Source/WebKit
Unreviewed, rolling out r230508.
Breaks internal builds.
Reverted changeset:
"Remove block selection code"
https://bugs.webkit.org/show_bug.cgi?id=184470
https://trac.webkit.org/changeset/230508
- 8:58 AM Changeset in webkit [230525] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184456
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 8:28 AM Changeset in webkit [230524] by
-
- 4 edits in trunk
Fix a WebRTC data channel issue for non-ASCII characters.
At the sender side, buffer size are calulcated after UTF8 encoding. At the
receiver side, strings are constructed with UTF8 data.
https://bugs.webkit.org/show_bug.cgi?id=184481
Patch by Jianjun Zhu <jianjun.zhu@intel.com> on 2018-04-11
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/webrtc/RTCDataChannel-send-expected.txt:
Source/WebCore:
Updated test:
LayoutTests/imported/w3c/web-platform-tests/webrtc/RTCDataChannel-send-expected.txt
- Modules/mediastream/libwebrtc/LibWebRTCDataChannelHandler.cpp:
(WebCore::LibWebRTCDataChannelHandler::sendStringData):
(WebCore::LibWebRTCDataChannelHandler::OnMessage):
- 7:29 AM Changeset in webkit [230523] by
-
- 2 edits in trunk/Source/WTF
Deactivate the WindowServer connection for the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=184451
<rdar://problem/38313938>
Reviewed by Brent Fulgham.
Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
process startup. After calling this function, every attempt to establish a connection to the
WindowServer from the WebContent process will fail, except for CA render server connections.
- wtf/FeatureDefines.h:
- 6:47 AM Changeset in webkit [230522] by
-
- 21 edits2 copies in trunk/Source/WebCore
ImageFrame type used by non-Cocoa image decoder should not be the same as that used by ImageSource
https://bugs.webkit.org/show_bug.cgi?id=184418
Reviewed by Said Abou-Hallawa.
ScalableImageDecoder uses ImageFrame class which is meant to be an implementation detail of ImageSource.
There are bunch of fields and methods in the type that are only used by one or the other client. For hackability
there should be an unrelated frame type for ScalableImageDecoder.
This patch adds ScalableImageDecoderFrame type used in ScalableImageDecoder only. It then cleans up
unneeded things from both ImageFrame and ScalableImageDecoderFrame.
- platform/ImageDecoders.cmake:
- platform/graphics/ImageFrame.cpp:
(WebCore::ImageFrame::operator=):
(WebCore::ImageFrame::clearImage):
(WebCore::ImageFrame::size const):
(WebCore::ImageFrame::initialize): Deleted.
- platform/graphics/ImageFrame.h:
(WebCore::ImageFrame::setDisposalMethod): Deleted.
(WebCore::ImageFrame::disposalMethod const): Deleted.
(WebCore::ImageFrame::backingStore const): Deleted.
(WebCore::ImageFrame::hasBackingStore const): Deleted.
- platform/image-decoders/ScalableImageDecoder.cpp:
(WebCore::ScalableImageDecoder::frameIsCompleteAtIndex const):
(WebCore::ScalableImageDecoder::frameDurationAtIndex const):
(WebCore::ScalableImageDecoder::createFrameImageAtIndex):
- platform/image-decoders/ScalableImageDecoder.h:
- platform/image-decoders/ScalableImageDecoderFrame.cpp: Copied from Source/WebCore/platform/graphics/ImageFrame.cpp.
(WebCore::ScalableImageDecoderFrame::ScalableImageDecoderFrame):
(WebCore::ScalableImageDecoderFrame::~ScalableImageDecoderFrame):
(WebCore::ScalableImageDecoderFrame::operator=):
(WebCore::ScalableImageDecoderFrame::setDecodingStatus):
(WebCore::ScalableImageDecoderFrame::decodingStatus const):
(WebCore::ScalableImageDecoderFrame::clearImage):
(WebCore::ScalableImageDecoderFrame::clear):
(WebCore::ScalableImageDecoderFrame::initialize):
(WebCore::ScalableImageDecoderFrame::size const):
(WebCore::ImageFrame::ImageFrame): Deleted.
(WebCore::ImageFrame::~ImageFrame): Deleted.
(WebCore::ImageFrame::defaultFrame): Deleted.
(WebCore::ImageFrame::operator=): Deleted.
(WebCore::ImageFrame::setDecodingStatus): Deleted.
(WebCore::ImageFrame::decodingStatus const): Deleted.
(WebCore::ImageFrame::clearImage): Deleted.
(WebCore::ImageFrame::clear): Deleted.
(WebCore::ImageFrame::initialize): Deleted.
(WebCore::ImageFrame::size const): Deleted.
(WebCore::ImageFrame::hasNativeImage const): Deleted.
(WebCore::ImageFrame::hasFullSizeNativeImage const): Deleted.
(WebCore::ImageFrame::hasDecodedNativeImageCompatibleWithOptions const): Deleted.
(WebCore::ImageFrame::singlePixelSolidColor const): Deleted.
- platform/image-decoders/ScalableImageDecoderFrame.h: Copied from Source/WebCore/platform/graphics/ImageFrame.h.
(WebCore::ScalableImageDecoderFrame::ScalableImageDecoderFrame):
(WebCore::ScalableImageDecoderFrame::disposalMethod const):
(WebCore::ScalableImageDecoderFrame::hasAlpha const):
(WebCore::ScalableImageDecoderFrame::hasBackingStore const):
(WebCore::ImageFrame::ImageFrame): Deleted.
(WebCore::ImageFrame::isInvalid const): Deleted.
(WebCore::ImageFrame::isPartial const): Deleted.
(WebCore::ImageFrame::isComplete const): Deleted.
(WebCore::ImageFrame::sizeRespectingOrientation const): Deleted.
(WebCore::ImageFrame::frameBytes const): Deleted.
(WebCore::ImageFrame::subsamplingLevel const): Deleted.
(WebCore::ImageFrame::setDisposalMethod): Deleted.
(WebCore::ImageFrame::disposalMethod const): Deleted.
(WebCore::ImageFrame::nativeImage const): Deleted.
(WebCore::ImageFrame::setOrientation): Deleted.
(WebCore::ImageFrame::orientation const): Deleted.
(WebCore::ImageFrame::setDuration): Deleted.
(WebCore::ImageFrame::duration const): Deleted.
(WebCore::ImageFrame::setHasAlpha): Deleted.
(WebCore::ImageFrame::hasAlpha const): Deleted.
(WebCore::ImageFrame::hasNativeImage): Deleted.
(WebCore::ImageFrame::hasFullSizeNativeImage): Deleted.
(WebCore::ImageFrame::hasMetadata const): Deleted.
(WebCore::ImageFrame::backingStore const): Deleted.
(WebCore::ImageFrame::hasBackingStore const): Deleted.
- platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::frameBufferAtIndex):
- platform/image-decoders/bmp/BMPImageDecoder.h:
- platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::setBuffer):
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::GIFImageDecoder::frameBufferAtIndex):
(WebCore::GIFImageDecoder::clearFrameBufferCache):
(WebCore::GIFImageDecoder::haveDecodedRow):
(WebCore::GIFImageDecoder::frameComplete):
(WebCore::GIFImageDecoder::initFrameBuffer):
- platform/image-decoders/gif/GIFImageDecoder.h:
- platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::parse):
- platform/image-decoders/gif/GIFImageReader.h:
(GIFFrameContext::GIFFrameContext):
- platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::frameBufferAtIndex):
- platform/image-decoders/ico/ICOImageDecoder.h:
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageDecoder::frameBufferAtIndex):
(WebCore::setPixel):
(WebCore::JPEGImageDecoder::outputScanlines):
(WebCore::JPEGImageDecoder::jpegComplete):
- platform/image-decoders/jpeg/JPEGImageDecoder.h:
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::frameBufferAtIndex):
(WebCore::PNGImageDecoder::rowAvailable):
(WebCore::PNGImageDecoder::readChunks):
(WebCore::PNGImageDecoder::clearFrameBufferCache):
(WebCore::PNGImageDecoder::initFrameBuffer):
(WebCore::PNGImageDecoder::frameComplete):
- platform/image-decoders/png/PNGImageDecoder.h:
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::frameBufferAtIndex):
(WebCore::WEBPImageDecoder::findFirstRequiredFrameToDecode):
(WebCore::WEBPImageDecoder::decodeFrame):
(WebCore::WEBPImageDecoder::initFrameBuffer):
(WebCore::WEBPImageDecoder::applyPostProcessing):
(WebCore::WEBPImageDecoder::clearFrameBufferCache):
- platform/image-decoders/webp/WEBPImageDecoder.h:
- 5:05 AM Changeset in webkit [230521] by
-
- 4 edits in trunk/Source
[Web Animations] Turn Web Animations on by default
https://bugs.webkit.org/show_bug.cgi?id=184491
Patch by Antoine Quint <Antoine Quint> on 2018-04-11
Reviewed by Simon Fraser.
Source/WebCore:
- page/RuntimeEnabledFeatures.h:
Source/WebKit:
- Shared/WebPreferences.yaml:
- 2:37 AM Changeset in webkit [230520] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, build fix for 32bit
https://bugs.webkit.org/show_bug.cgi?id=184236
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):
- 2:36 AM Changeset in webkit [230519] by
-
- 2 edits70 adds66 deletes in trunk/LayoutTests
Unreviewed WPE gardening. Updating expectations and moving baselines
for EME and WebCryptoAPI tests after W3C sync in r230445.
- platform/wpe/TestExpectations:
- platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/: Updated.
- platform/wpe/imported/w3c/web-platform-tests/encrypted-media/: Updated.
- 1:57 AM Changeset in webkit [230518] by
-
- 2 edits in trunk/Source/WebCore
Fix warning in HashTools.h for newer versions of clang
https://bugs.webkit.org/show_bug.cgi?id=184489
Reviewed by Alexey Proskuryakov.
Removed "register" storage class specififer as it has been deprecated in C++11.
- platform/HashTools.h:
- 12:44 AM Changeset in webkit [230517] by
-
- 11 edits1 add in trunk/Source/JavaScriptCore
[DFG] Remove duplicate 32bit code more
https://bugs.webkit.org/show_bug.cgi?id=184236
Reviewed by Mark Lam.
Remove duplicate 32bit code more aggressively part 2.
- JavaScriptCore.xcodeproj/project.pbxproj:
- dfg/DFGCompareSlowPathGenerator.h: Added.
(JSC::DFG::CompareSlowPathGenerator::CompareSlowPathGenerator):
Drop boxing part. Use unblessedBooleanResult in DFGSpeculativeJIT side instead.
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileOverridesHasInstance):
(JSC::DFG::SpeculativeJIT::compileLoadVarargs):
(JSC::DFG::SpeculativeJIT::compileIsObject):
(JSC::DFG::SpeculativeJIT::compileCheckNotEmpty):
(JSC::DFG::SpeculativeJIT::compilePutByIdFlush):
(JSC::DFG::SpeculativeJIT::compilePutById):
(JSC::DFG::SpeculativeJIT::compilePutByIdDirect):
(JSC::DFG::SpeculativeJIT::compileNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq):
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly):
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize):
(JSC::DFG::SpeculativeJIT::compileHasIndexedProperty):
(JSC::DFG::SpeculativeJIT::compileGetDirectPname):
(JSC::DFG::SpeculativeJIT::compileExtractCatchLocal):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativeCompare): Deleted.
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::selectScratchGPR): Deleted.
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::cachedPutById): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch): Deleted.
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator): Deleted.
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::generateInternal): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): Deleted.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::cachedPutById): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch): Deleted.
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::CompareAndBoxBooleanSlowPathGenerator): Deleted.
(): Deleted.
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare): Deleted.
(JSC::DFG::SpeculativeJIT::compileMiscStrictEq): Deleted.
(JSC::DFG::SpeculativeJIT::emitInitializeButterfly): Deleted.
(JSC::DFG::SpeculativeJIT::compileAllocateNewArrayWithSize): Deleted.
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
operationHasIndexedPropertyByInt starts returning unblessed boolean with size_t.
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::loadValue):
(JSC::AssemblyHelpers::selectScratchGPR):
(JSC::AssemblyHelpers::constructRegisterSet):
- jit/RegisterSet.h:
(JSC::RegisterSet::setAny):
Clean up selectScratchGPR code to pass JSValueRegs.
Apr 10, 2018:
- 10:49 PM Changeset in webkit [230516] by
-
- 27 edits5 adds in trunk
[ESNext][BigInt] Add support for BigInt in SpeculatedType
https://bugs.webkit.org/show_bug.cgi?id=182470
Reviewed by Saam Barati.
JSTests:
- stress/big-int-spec-to-primitive.js: Added.
- stress/big-int-spec-to-this.js: Added.
- stress/big-int-strict-equals-jit.js: Added.
- stress/big-int-strict-spec-to-this.js: Added.
- stress/big-int-type-of-proven-type.js: Added.
Source/JavaScriptCore:
This patch introduces the SpecBigInt type to DFG to enable BigInt
speculation into DFG and FTL.
With SpecBigInt introduction, we can then specialize "===" operations
to BigInts. As we are doing for some cells, we first check if operands
are pointing to the same JSCell, and if it is false, we
fallback to "operationCompareStrictEqCell". The idea in further
patches is to implement BigInt equality check directly in
assembly.
We are also adding support for BigInt constant folding into
TypeOf operation.
- bytecode/SpeculatedType.cpp:
(JSC::dumpSpeculation):
(JSC::speculationFromClassInfo):
(JSC::speculationFromStructure):
(JSC::speculationFromJSType):
(JSC::speculationFromString):
- bytecode/SpeculatedType.h:
(JSC::isBigIntSpeculation):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGAbstractValue.cpp:
(JSC::DFG::AbstractValue::set):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToThis):
(JSC::DFG::FixupPhase::observeUseKindOnNode):
- dfg/DFGInferredTypeCheck.cpp:
(JSC::DFG::insertInferredTypeCheck):
- dfg/DFGNode.h:
(JSC::DFG::Node::shouldSpeculateBigInt):
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::SafeToExecuteEdge::operator()):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileStrictEq):
(JSC::DFG::SpeculativeJIT::speculateBigInt):
(JSC::DFG::SpeculativeJIT::speculate):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compileBigIntEquality):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileBigIntEquality):
- dfg/DFGUseKind.cpp:
(WTF::printInternal):
- dfg/DFGUseKind.h:
(JSC::DFG::typeFilterFor):
(JSC::DFG::isCell):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::checkInferredType):
(JSC::FTL::DFG::LowerDFGToB3::speculate):
(JSC::FTL::DFG::LowerDFGToB3::isNotBigInt):
(JSC::FTL::DFG::LowerDFGToB3::speculateBigInt):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::branchIfNotType):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::branchIfBigInt):
(JSC::AssemblyHelpers::branchIfNotBigInt):
- runtime/InferredType.cpp:
(JSC::InferredType::Descriptor::forValue):
(JSC::InferredType::Descriptor::putByIdFlags const):
(JSC::InferredType::Descriptor::merge):
(WTF::printInternal):
- runtime/InferredType.h:
- runtime/JSBigInt.h:
- 9:57 PM Changeset in webkit [230515] by
-
- 2 edits in trunk/Source/bmalloc
IsoHeapImpl::scavenge* needs to grab the lock
https://bugs.webkit.org/show_bug.cgi?id=184461
Reviewed by Filip Pizlo.
Another thread could be modifying the linked list that the scavenge* methods traverse.
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
- 9:16 PM Changeset in webkit [230514] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed test fix after r230468
Roll out an assertion added in r230468 that should not be present
until https://bugs.webkit.org/show_bug.cgi?id=184451 is landed.
- Shared/mac/HangDetectionDisablerMac.mm:
(WebKit::setClientsMayIgnoreEvents):
- 8:44 PM Changeset in webkit [230513] by
-
- 3 edits2 adds in trunk
FrameSelection::appearanceUpdateTimerFired should be robust against layout passes underneath it
https://bugs.webkit.org/show_bug.cgi?id=183395
<rdar://problem/38055732>
Reviewed by Zalan Bujtas.
Source/WebCore:
In the case where a FrameSelection updates its appearance when m_appearanceUpdateTimer is fired, the
FrameSelection's Frame is unprotected, and can be removed by arbitrary script. This patch applies a simple
mitigation by wrapping the Frame in a Ref when firing the appearance update timer.
Test: editing/selection/iframe-update-selection-appearance.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::appearanceUpdateTimerFired):
LayoutTests:
Add a new layout test that passes if we didn't crash.
- editing/selection/iframe-update-selection-appearance-expected.txt: Added.
- editing/selection/iframe-update-selection-appearance.html: Added.
- 7:49 PM Changeset in webkit [230512] by
-
- 5 edits in trunk/Source
Unreviewed follow-up to r230468.
Switch some RELEASE_ASSERTs in hot codepaths to normal DEBUG asserts.
Source/WebCore:
- page/mac/EventHandlerMac.mm:
(WebCore::lastEventIsMouseUp):
(WebCore::EventHandler::sendFakeEventsAfterWidgetTracking):
- platform/mac/EventLoopMac.mm:
(WebCore::EventLoop::cycle):
Source/WebKit:
- UIProcess/mac/PageClientImplMac.mm:
(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::setCursor):
- 7:46 PM Changeset in webkit [230511] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix the iOS build
I accidentally exported an inline function in r230506.
- page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::viewSize const):
- 7:08 PM Changeset in webkit [230510] by
-
- 6 edits2 adds in trunk
AX: Expose strong password fields on iOS
https://bugs.webkit.org/show_bug.cgi?id=184465
<rdar://problem/39325104>
Reviewed by Chris Fleizach.
Source/WebCore:
Exposed the strong password field on iOS. And made sure
we are returning its actual value in accessibilityValue.
Test: accessibility/ios-simulator/strong-password-field.html
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper _accessibilityIsStrongPasswordField]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
Tools:
- DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
(AccessibilityUIElement::boolAttributeValue):
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::boolAttributeValue):
LayoutTests:
- accessibility/ios-simulator/strong-password-field-expected.txt: Added.
- accessibility/ios-simulator/strong-password-field.html: Added.
- 6:52 PM Changeset in webkit [230509] by
-
- 4 edits1 add in trunk/Source
[Win] Add UserAgentWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=184438
Reviewed by Michael Catanzaro.
Source/WebCore:
No new tests (No behavior change).
- PlatformWin.cmake:
- platform/win/UserAgentWin.cpp: Added.
(WebCore::standardUserAgent):
(WebCore::standardUserAgentForURL):
Source/WebKit:
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::platformUserAgent const):
Use WebCore::standardUserAgentForURL.
- 6:26 PM Changeset in webkit [230508] by
-
- 13 edits in trunk/Source/WebKit
Remove block selection code
https://bugs.webkit.org/show_bug.cgi?id=184470
Reviewed by Timothy Hatcher.
Remove block selection code that isn't run and is currently not even used.
Had to put this back in for a bug in the mid-year release, but we're past that
so it's time for this to go away.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/ios/PageClientImplIOS.h:
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::stopAssistingNode):
(WebKit::PageClientImpl::didUpdateBlockSelectionWithTouch): Deleted.
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(toSelectionHandlePosition): Deleted.
(-[WKContentView _didUpdateBlockSelectionWithTouch:withFlags:growThreshold:shrinkThreshold:]): Deleted.
(-[WKContentView changeSelectionWithTouchAt:withSelectionTouch:baseIsStart:]): Deleted.
(-[WKContentView changeBlockSelectionWithTouchAt:withSelectionTouch:forHandle:]): Deleted.
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::saveImageToLibrary):
(WebKit::WebPageProxy::updateBlockSelectionWithTouch): Deleted.
(WebKit::WebPageProxy::didUpdateBlockSelectionWithTouch): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeAtWordBoundaryForPosition):
(WebKit::distanceBetweenRectsForPosition): Deleted.
(WebKit::rectsEssentiallyTheSame): Deleted.
(WebKit::unionDOMRanges): Deleted.
(WebKit::computeEdgeCenter): Deleted.
(WebKit::WebPage::expandedRangeFromHandle): Deleted.
(WebKit::WebPage::contractedRangeFromHandle): Deleted.
(WebKit::WebPage::computeExpandAndShrinkThresholdsForHandle): Deleted.
(WebKit::WebPage::rangeForBlockAtPoint): Deleted.
(WebKit::shouldExpand): Deleted.
(WebKit::WebPage::changeBlockSelection): Deleted.
(WebKit::WebPage::updateBlockSelectionWithTouch): Deleted.
- 6:25 PM Changeset in webkit [230507] by
-
- 2 edits in trunk/LayoutTests
Mark legacy-animation-engine/compositing tests as failures on Windows.
https://bugs.webkit.org/show_bug.cgi?id=184482
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:02 PM Changeset in webkit [230506] by
-
- 14 edits in trunk/Source
[Extra zoom mode] Add a mechanism to zoom to fixed scales when double tapping in extra zoom mode
https://bugs.webkit.org/show_bug.cgi?id=184435
<rdar://problem/38726260>
Reviewed by Dean Jackson.
Source/WebCore:
Expose the size of the platform view. By default, in extra zoom mode, this *not* the same as the minimum layout
size, since we lay out at a large width and then shrink down to real device dimensions when computing the
initial scale (see r229063).
ViewGestureGeometryCollector uses this in the process of computing a target zoom scale when double tapping.
- page/ViewportConfiguration.h:
(WebCore::ViewportConfiguration::viewSize const):
Source/WebKit:
Adds support for an alternate codepath when computing a zoom rect when double tapping that doesn't take the hit-
tested node into account, and instead cycles the zoom scale between 2 fixed values (in addition to the initial
scale). In the next patch, these fixed scales will be determined by computing zoom scales needed to make most of
the text on the page legible (i.e. the first text legibility zoom scale), and another to make all of the text on
the page legible, with the exception of outliers (this is the second text legibility zoom scale).
See comments below for more detail.
- UIProcess/Cocoa/ViewGestureController.h:
- UIProcess/Cocoa/ViewGestureController.messages.in:
- UIProcess/ios/SmartMagnificationController.h:
- UIProcess/ios/SmartMagnificationController.messages.in:
- UIProcess/ios/SmartMagnificationController.mm:
(WebKit::SmartMagnificationController::didCollectGeometryForSmartMagnificationGesture):
- UIProcess/mac/ViewGestureControllerMac.mm:
(WebKit::ViewGestureController::didCollectGeometryForSmartMagnificationGesture):
- WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
(WebKit::ViewGestureGeometryCollector::dispatchDidCollectGeometryForSmartMagnificationGesture):
Rename the boolean
isReplacedElementargument tofitEntireRectinstead. The UI process only uses this on iOS
to determine whether or not to fit the entire element rect to the viewport and add padding. This patch renames
this variable because we are not zooming to a replaced element in the case where text legibility on the page
(rather than element geometry) is being used to figure out the zoom scale, but we still want to fit the entire
target rect to the viewport.
(WebKit::ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture):
If text legiblity zoom scaling is preferred, then compute first and second-level text legibility zoom scales to
zoom to upon double tap (where the second zoom scale is greater than the first). To choose a target zoom
scale, choose the lowest target zoom scale that is at least a small amount less than the current scale. If
neither of the two scales fulfill this description, then zoom back out to the initial scale. This has the effect
of consistently cycling between all three zoom scales as the user double taps.
(WebKit::ViewGestureGeometryCollector::computeTextLegibilityScales):
Introduce a new helper method that computes and caches target scales to zoom to when double tapping to zoom. If
a cached pair of target scales is already present, it skips this computation and immediately returns it.
(WebKit::ViewGestureGeometryCollector::computeZoomInformationForNode):
(WebKit::ViewGestureGeometryCollector::computeMinimumAndMaximumViewportScales const):
Factor out logic to compute min and max zoom scales into a separate helper, and call it from both
computeZoomInformationForNode and computeTextLegibilityScales.
(WebKit::ViewGestureGeometryCollector::mainFrameDidLayout):
Invalidate cached text legibility scales when layout is triggered.
- WebProcess/WebPage/ViewGestureGeometryCollector.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::mainFrameDidLayout):
- WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::viewportConfiguration const):
Expose WebPage's ViewportConfiguration as a const reference.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformPrefersTextLegibilityBasedZoomScaling const):
Adds a platform hook for opting into text-legibility-based zoom scaling instead of regular hit-testing-based
zoom scaling heuristics.
- 5:41 PM Changeset in webkit [230505] by
-
- 2 edits in trunk/Source/WebKit
Fix availability annotations for _WKAttachment SPI
https://bugs.webkit.org/show_bug.cgi?id=184473
<rdar://problem/39319732>
Reviewed by Dan Bernstein.
_WKAttachmentInfo is available in WK_MAC_TBA and WK_IOS_TBA, but the SPI method -[_WKAttachment requestInfo:]
is currently available in macOS 10.13.4 and iOS 11.3. Instead, the availability of this SPI should match the
availability of the SPI object it depends on.
- UIProcess/API/Cocoa/_WKAttachment.h:
- 5:39 PM Changeset in webkit [230504] by
-
- 2 edits1 add in trunk/Source/WebCore
[Win][WebKit] LibWebRTCProvider::webRTCAvailable is an undefined symbol
https://bugs.webkit.org/show_bug.cgi?id=184437
Reviewed by Michael Catanzaro.
No new tests (No behavior change).
- PlatformWin.cmake: Added LibWebRTCProviderWin.cpp.
- platform/mediastream/libwebrtc/LibWebRTCProviderWin.cpp: Added.
(WebCore::LibWebRTCProvider::webRTCAvailable):
- 5:23 PM WebKitGTK/2.20.x edited by
- (diff)
- 4:42 PM Changeset in webkit [230503] by
-
- 2 edits in trunk/LayoutTests
Mark legacy-animation-engine/animations/animation-callback-timestamp.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184459
Unreviewed test gardening.
- platform/mac/TestExpectations:
- 4:38 PM Changeset in webkit [230502] by
-
- 4 edits in trunk/Source/WebCore
Unreviewed build fix.
Those enum value names were too generic and would cause conflicts.
- Modules/webvr/VRDisplayCapabilities.h:
(WebCore::VRDisplayCapabilities::hasPosition const):
(WebCore::VRDisplayCapabilities::hasOrientation const):
(WebCore::VRDisplayCapabilities::hasExternalDisplay const):
(WebCore::VRDisplayCapabilities::canPresent const):
- platform/vr/VRPlatformDisplay.h:
- platform/vr/openvr/VRPlatformDisplayOpenVR.cpp:
(WebCore::VRPlatformDisplayOpenVR::VRPlatformDisplayOpenVR):
- 4:34 PM Changeset in webkit [230501] by
-
- 20 edits1 add in trunk/Source/bmalloc
bmalloc should do partial scavenges more frequently
https://bugs.webkit.org/show_bug.cgi?id=184176
Reviewed by Filip Pizlo.
This patch adds the ability for bmalloc to do a partial scavenge.
bmalloc will now do a partial scavenge with some frequency even
when the heap is growing.
For Heap, this means tracking the high water mark of where the Heap
has allocated since the last scavenge. Partial scavenging is just
decommitting entries in the LargeMap that are past this high water
mark. Because we allocate in first fit order out of LargeMap, tracking
the high water mark is a good heuristic of how much memory a partial
scavenge should decommit.
For IsoHeaps, each IsoDirectory also keeps track of its high water mark
for the furthest page it allocates into. Similar to Heap, we scavenge pages
past that high water mark. IsoHeapImpl then tracks the high water mark
for the IsoDirectory it allocates into. We then scavenge all directories
including and past the directory high water mark. This includes scavenging
the inline directory when its the only thing we allocate out of since
the last scavenge.
This patch also adds some other capabilities to bmalloc:
Heaps and IsoHeaps now track how much memory is freeable. Querying
this number is now cheap.
Heaps no longer hold the global lock when decommitting large ranges.
Instead, that range is just marked as non eligible to be allocated.
Then, without the lock held, the scavenger will decommit those ranges.
Once this is done, the scavenger will then reacquire the lock and mark
these ranges as eligible. This lessens lock contention between the
scavenger and the allocation slow path since threads that are taking an
allocation slow path can now allocate concurrently to the scavenger's
decommits. The main consideration in adding this functionality is that
a large allocation may fail while the scavenger is in the process of
decommitting memory. When the Heap fails to allocate a large range when
the scavenger is in the middle of a decommit, Heap will wait for the
Scavenger to finish and then it will try to allocate a large range again.
Decommitting from Heap now aggregates the ranges to decommit and tries to
merge them together to lower the number of calls to vmDeallocatePhysicalPages.
This is analogous to what IsoHeaps already do.
- bmalloc.xcodeproj/project.pbxproj:
- bmalloc/Allocator.cpp:
(bmalloc::Allocator::tryAllocate):
(bmalloc::Allocator::allocateImpl):
(bmalloc::Allocator::reallocate):
(bmalloc::Allocator::refillAllocatorSlowCase):
(bmalloc::Allocator::allocateLarge):
- bmalloc/BulkDecommit.h: Added.
(bmalloc::BulkDecommit::addEager):
(bmalloc::BulkDecommit::addLazy):
(bmalloc::BulkDecommit::processEager):
(bmalloc::BulkDecommit::processLazy):
(bmalloc::BulkDecommit::add):
(bmalloc::BulkDecommit::process):
- bmalloc/Deallocator.cpp:
(bmalloc::Deallocator::scavenge):
(bmalloc::Deallocator::processObjectLog):
(bmalloc::Deallocator::deallocateSlowCase):
- bmalloc/Deallocator.h:
(bmalloc::Deallocator::lineCache):
- bmalloc/Heap.cpp:
(bmalloc::Heap::freeableMemory):
(bmalloc::Heap::markAllLargeAsEligibile):
(bmalloc::Heap::decommitLargeRange):
(bmalloc::Heap::scavenge):
(bmalloc::Heap::scavengeToHighWatermark):
(bmalloc::Heap::deallocateLineCache):
(bmalloc::Heap::allocateSmallChunk):
(bmalloc::Heap::deallocateSmallChunk):
(bmalloc::Heap::allocateSmallPage):
(bmalloc::Heap::deallocateSmallLine):
(bmalloc::Heap::allocateSmallBumpRangesByMetadata):
(bmalloc::Heap::allocateSmallBumpRangesByObject):
(bmalloc::Heap::splitAndAllocate):
(bmalloc::Heap::tryAllocateLarge):
(bmalloc::Heap::allocateLarge):
(bmalloc::Heap::isLarge):
(bmalloc::Heap::largeSize):
(bmalloc::Heap::shrinkLarge):
(bmalloc::Heap::deallocateLarge):
(bmalloc::Heap::externalCommit):
(bmalloc::Heap::externalDecommit):
- bmalloc/Heap.h:
(bmalloc::Heap::allocateSmallBumpRanges):
(bmalloc::Heap::derefSmallLine):
- bmalloc/IsoDirectory.h:
- bmalloc/IsoDirectoryInlines.h:
(bmalloc::passedNumPages>::takeFirstEligible):
(bmalloc::passedNumPages>::didBecome):
(bmalloc::passedNumPages>::didDecommit):
(bmalloc::passedNumPages>::scavengePage):
(bmalloc::passedNumPages>::scavenge):
(bmalloc::passedNumPages>::scavengeToHighWatermark):
(bmalloc::passedNumPages>::freeableMemory): Deleted.
- bmalloc/IsoHeapImpl.h:
- bmalloc/IsoHeapImplInlines.h:
(bmalloc::IsoHeapImpl<Config>::takeFirstEligible):
(bmalloc::IsoHeapImpl<Config>::scavenge):
(bmalloc::IsoHeapImpl<Config>::scavengeToHighWatermark):
(bmalloc::IsoHeapImpl<Config>::freeableMemory):
(bmalloc::IsoHeapImpl<Config>::isNowFreeable):
(bmalloc::IsoHeapImpl<Config>::isNoLongerFreeable):
- bmalloc/LargeMap.cpp:
(bmalloc::LargeMap::remove):
(bmalloc::LargeMap::markAllAsEligibile):
- bmalloc/LargeMap.h:
(bmalloc::LargeMap::size):
(bmalloc::LargeMap::at):
- bmalloc/LargeRange.h:
(bmalloc::LargeRange::setEligible):
(bmalloc::LargeRange::isEligibile const):
(bmalloc::canMerge):
- bmalloc/ObjectType.cpp:
(bmalloc::objectType):
- bmalloc/Scavenger.cpp:
(bmalloc::PrintTime::PrintTime):
(bmalloc::PrintTime::~PrintTime):
(bmalloc::PrintTime::print):
(bmalloc::Scavenger::timeSinceLastFullScavenge):
(bmalloc::Scavenger::timeSinceLastPartialScavenge):
(bmalloc::Scavenger::scavenge):
(bmalloc::Scavenger::partialScavenge):
(bmalloc::Scavenger::freeableMemory):
(bmalloc::Scavenger::threadRunLoop):
- bmalloc/Scavenger.h:
- bmalloc/SmallLine.h:
(bmalloc::SmallLine::refCount):
(bmalloc::SmallLine::ref):
(bmalloc::SmallLine::deref):
- bmalloc/SmallPage.h:
(bmalloc::SmallPage::refCount):
(bmalloc::SmallPage::hasFreeLines const):
(bmalloc::SmallPage::setHasFreeLines):
(bmalloc::SmallPage::ref):
(bmalloc::SmallPage::deref):
- bmalloc/bmalloc.cpp:
(bmalloc::api::tryLargeZeroedMemalignVirtual):
(bmalloc::api::freeLargeVirtual):
- 4:19 PM Changeset in webkit [230500] by
-
- 6 edits in trunk/Source
Avoid constructing a service worker RegistrationStore for private sessions
https://bugs.webkit.org/show_bug.cgi?id=184463
<rdar://problem/36613948>
Reviewed by Youenn Fablet.
Avoid constructing a service worker RegistrationStore for private sessions since there
is no need for persistence and the registrationDatabaseDirectory is the empty string in
such cases.
Source/WebCore:
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::clearAll):
(WebCore::SWServer::clear):
(WebCore::SWServer::SWServer):
(WebCore::SWServer::didFinishActivation):
- workers/service/server/SWServer.h:
Source/WebKit:
- StorageProcess/StorageProcess.cpp:
(WebKit::StorageProcess::initializeWebsiteDataStore):
- 4:06 PM Changeset in webkit [230499] by
-
- 6 edits in trunk/LayoutTests
http/tests/security/shape-image-cors-redirect-error-message-logging-*.html tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=155634
<rdar://problem/39326489>
Reviewed by Youenn Fablet.
These tests no longer appear to be flaky. I believe they were
addressed in <https://trac.webkit.org/changeset/217069/webkit>. After
enabling the test and rebasing the results, I ran run-webkit-tests
with --repeat-each=20 --iterations=20, and then I wrapped the
run-webkit-tests command in a loop that invoked it 20 times.
- TestExpectations:
- http/tests/security/shape-image-cors-redirect-error-message-logging-1-expected.txt:
- http/tests/security/shape-image-cors-redirect-error-message-logging-2-expected.txt:
- http/tests/security/shape-image-cors-redirect-error-message-logging-3-expected.txt:
- http/tests/security/shape-image-cors-redirect-error-message-logging-4-expected.txt:
- 3:48 PM Changeset in webkit [230498] by
-
- 3 edits in trunk/Source/WebCore
Unreviewed build fix.
- page/LayoutContext.cpp:
(WebCore::LayoutContext::~LayoutContext):
- page/LayoutContext.h:
- 3:35 PM Changeset in webkit [230497] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Navigate to URL and page number annotations in WKPDFView
https://bugs.webkit.org/show_bug.cgi?id=184410
Reviewed by Timothy Hatcher.
Implemented navigation to URL and page number (same-document) link annotations in PDFs.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _scrollToURLFragment:]):
(-[WKPDFView web_didSameDocumentNavigation:]):
(-[WKPDFView pdfHostViewController:updatePageCount:]):
(-[WKPDFView pdfHostViewController:goToURL:]):
(-[WKPDFView pdfHostViewController:goToPageIndex:withViewFrustum:]):
- 3:26 PM Changeset in webkit [230496] by
-
- 3 edits in trunk/Source/WebKit
[iOS] WKPDFView should conform to _WKWebViewPrintProvider
https://bugs.webkit.org/show_bug.cgi?id=184471
Reviewed by Dan Bernstein.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _printProvider]):
The print provider will always be either _contentView or _customContentView, but
might not be _currentContentView.
- UIProcess/ios/WKPDFView.mm:
(-[WKPDFView _wk_pageCountForPrintFormatter:]):
Asked _hostViewController for the page count, clamped to 1 if
-[_WKWebViewPrintFormatter snapshotFirstPage] is YES.
(-[WKPDFView _wk_printedDocument]):
Created a CGPDFDocumentRef from _data and returned it.
- 3:16 PM Changeset in webkit [230495] by
-
- 7 edits2 adds in trunk
Beacon redirect responses should be CORS validated
https://bugs.webkit.org/show_bug.cgi?id=184378
Reviewed by Chris Dumez.
Source/WebKit:
Add CORS checks to any redirection response if mode is CORS.
Update response tainting and redirected accordingly.
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::validateResponse):
- NetworkProcess/NetworkLoadChecker.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::willPerformHTTPRedirection):
LayoutTests:
- TestExpectations:
- http/wpt/beacon/cors/cors-redirect-failure-expected.txt: Added.
- http/wpt/beacon/cors/cors-redirect-failure.html: Added.
- http/wpt/beacon/resources/redirect.py:
(main):
- 2:16 PM Changeset in webkit [230494] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix cloop build.
- dfg/DFGAbstractInterpreterClobberState.cpp:
- 2:13 PM Changeset in webkit [230493] by
-
- 4 edits in trunk/LayoutTests
webrtc/datachannel/bufferedAmountLowThreshold tests are failing on WK1
https://bugs.webkit.org/show_bug.cgi?id=184427
Reviewed by Eric Carlson.
Decrease the size of the string sent as one chunk as it may create timeouts.
Instead, we will call more often the send method untile reaching the threshold.
- platform/mac-wk1/TestExpectations:
- webrtc/datachannel/bufferedAmountLowThreshold-default.html:
- webrtc/datachannel/bufferedAmountLowThreshold.html:
- 2:13 PM Changeset in webkit [230492] by
-
- 2 edits1 add in trunk/Source/ThirdParty/libwebrtc
webrtc/datachannel/basic-tcp.html will crash with an invalid crash
https://bugs.webkit.org/show_bug.cgi?id=178285
<rdar://problem/34985374>
Reviewed by Eric Carlson.
Disable SIGPIPE for WebRTC sockets on Mac as well.
- Source/webrtc/rtc_base/physicalsocketserver.cc:
- WebKit/0001-Disable-SIGPIPE-for-WebRTC-sockets.patch: Added.
- 1:58 PM Changeset in webkit [230491] by
-
- 2 edits in trunk/Source/JavaScriptCore
Make the ASSERT in MarkedSpace::sizeClassToIndex() a RELEASE_ASSERT.
https://bugs.webkit.org/show_bug.cgi?id=184464
<rdar://problem/39323947>
Reviewed by Saam Barati.
- heap/MarkedSpace.h:
(JSC::MarkedSpace::sizeClassToIndex):
- 1:31 PM Changeset in webkit [230490] by
-
- 2 edits in trunk/Source/WebCore
MediaSessionManageriOS should defer creation of MPVolumeView until it needs to monitor AirPlay routes
https://bugs.webkit.org/show_bug.cgi?id=184373
<rdar://problem/35177606>
Patch by Jeremy Jones <jeremyj@apple.com> on 2018-04-10
Reviewed by Eric Carlson.
No change of behavior.
This delays the creation of MPVolumeView until airplay routes are monitored.
MPVolumeView is now also released when monitoring ends.
This makes sure the MP* objects are only accessed from a UI safe thread. WebCore's "MainThread" may be different that the UI thread.
Since this state change is necessarily asynchronous, starting and stopping must prevent races to keep state coherent.
- platform/audio/ios/MediaSessionManagerIOS.mm:
(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper dealloc]):
(-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
(-[WebMediaSessionHelper allocateVolumeView]): Deleted.
(-[WebMediaSessionHelper setVolumeView:]): Deleted.
- 12:46 PM Changeset in webkit [230489] by
-
- 7 edits in trunk
Loading of multipart response was cancelled because of content policy set in WebFrameLoaderClient::dispatchDecidePolicyForResponse
https://bugs.webkit.org/show_bug.cgi?id=184268
<rdar://problem/39144446>
Patch by Sihui Liu <sihui_liu@apple.com> on 2018-04-10
Reviewed by Chris Dumez.
Source/WebCore:
The assertion is no longer true after the change, because multiple resources could have same
url. Used if condition here to make sure we only delete specified resource.
No new tests. Updated an existing test to test the stop loading case by not using injected
bundle policy: http/tests/multipart/multipart-html.php.
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::removeCachedResource):
Source/WebKit:
Webpage for multipart stream responses failed to refresh because content policy was set to
be ignore when provisonalDocumentLoader was null and navigation ID could not be retrieved.
As loading should not stop in this case, we set navigation ID 0 and still ask for content
policy.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForResponse):
LayoutTests:
- http/tests/multipart/multipart-html-expected.txt:
- http/tests/multipart/multipart-html.php:
- 12:45 PM Changeset in webkit [230488] by
-
- 15 edits7 adds in trunk
DFG AI and clobberize should agree with each other
https://bugs.webkit.org/show_bug.cgi?id=184440
Reviewed by Saam Barati.
JSTests:
Add tests for all of the bugs I fixed.
- stress/direct-arguments-out-of-bounds-change-structure.js: Added.
(foo):
- stress/new-typed-array-cse-effects.js: Added.
(foo):
- stress/scoped-arguments-out-of-bounds-change-structure.js: Added.
(foo.theO):
(foo):
- stress/string-from-char-code-change-structure-not-dead.js: Added.
(foo):
(i.valueOf):
(weirdValue.valueOf):
- stress/string-from-char-code-change-structure.js: Added.
(foo):
(i.valueOf):
(weirdValue.valueOf):
Source/JavaScriptCore:
One way to fix bugs involving underapproximation in AI or clobberize is to assert that they
agree with each other. That's what this patch does: it adds an assertion that AI's structure
state tracking must be equivalent to JSCell_structureID being clobbered.
One subtlety is that AI sometimes folds away structure clobbering using information that
clobberize doesn't have. So, we track this wuth special kinds of AI states (FoldedClobber and
ObservedTransitions).
This fixes a bunch of cases of AI missing clobberStructures/clobberWorld and one case of
clobberize missing a write(Heap).
This also makes some cases more precise in order to appease the assertion. Making things more
precise might make things faster, but I didn't measure it because that wasn't the goal.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- dfg/DFGAbstractInterpreter.h:
- dfg/DFGAbstractInterpreterClobberState.cpp: Added.
(WTF::printInternal):
- dfg/DFGAbstractInterpreterClobberState.h: Added.
(JSC::DFG::mergeClobberStates):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::startExecuting):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::didFoldClobberWorld):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::clobberStructures):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::didFoldClobberStructures):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransition):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::observeTransitions):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::setDidClobber): Deleted.
- dfg/DFGAtTailAbstractState.h:
(JSC::DFG::AtTailAbstractState::setClobberState):
(JSC::DFG::AtTailAbstractState::mergeClobberState):
(JSC::DFG::AtTailAbstractState::setDidClobber): Deleted.
- dfg/DFGCFAPhase.cpp:
(JSC::DFG::CFAPhase::performBlockCFA):
- dfg/DFGClobberSet.cpp:
(JSC::DFG::writeSet):
- dfg/DFGClobberSet.h:
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGInPlaceAbstractState.h:
(JSC::DFG::InPlaceAbstractState::clobberState const):
(JSC::DFG::InPlaceAbstractState::didClobberOrFolded const):
(JSC::DFG::InPlaceAbstractState::didClobber const):
(JSC::DFG::InPlaceAbstractState::setClobberState):
(JSC::DFG::InPlaceAbstractState::mergeClobberState):
(JSC::DFG::InPlaceAbstractState::setDidClobber): Deleted.
- 12:42 PM Changeset in webkit [230487] by
-
- 11 edits1 copy1 add in trunk/Source
[iOS] Use PDFKit to render PDFs in WKWebView
https://bugs.webkit.org/show_bug.cgi?id=184387
Reviewed by Beth Dakin.
Source/WebKit:
Adopted PDFHostViewController for rendering PDFs in WKWebView.
This patch implements rendering the PDF document and page number indicator. Link
navigation, find-in-page, and printing will be implemented in follow-up patches.
WKLegacyPDFView is still the default PDF view.
- Configurations/WebKit.xcconfig:
Linked WebKit with PDFKit on iOS.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _currentContentView]):
(-[WKWebView viewForZoomingInScrollView:]):
When WKPDFView loads a PDF document, it replaces itself with a view vended by
PDFHostViewController as the WKScrollView's content view. Abstracted WKWebView's
concept of the "current content view" to be either the WKContentView or a view of
the custom content view's choosing (-web_contentView).
(-[WKWebView scrollViewWillBeginZooming:withView:]):
(-[WKWebView scrollViewDidZoom:]):
(-[WKWebView scrollViewDidEndZooming:withView:atScale:]):
Forwarded these calls to _customContentView if it responds to the equivalent
WKWebViewContentProvider selectors.
- UIProcess/Cocoa/WKWebViewContentProvider.h:
Defined new protocol selectors.
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:
(-[WKWebViewContentProviderRegistry init]):
- UIProcess/ios/WKLegacyPDFView.h:
- UIProcess/ios/WKLegacyPDFView.mm:
Changed ENABLE(WKPDFVIEW) to ENABLE(WKLEGACYPDFVIEW).
(-[WKLegacyPDFView web_contentView]):
Added. Returns self as the content view.
- UIProcess/ios/WKPDFView.h: Added.
- UIProcess/ios/WKPDFView.mm: Added.
(-[WKPDFView dealloc]):
Removed the host view and page number indicator from their superviews.
(-[WKPDFView gestureRecognizerShouldBegin:]):
Forwarded to _hostViewController.
(-[WKPDFView web_initWithFrame:webView:]):
Set ours and the scroll view's background color to UIColor.grayColor to match
WKLegacyPDFView.
(-[WKPDFView web_setContentProviderData:suggestedFilename:]):
Created a PDFHostViewController and set its root view as the scroll view's content
view after removing the WKPDFView itself. This allows WKPDFView to act as a
placeholder content view until the PDF is loaded. Added the host view controller's
page number indicator to the fixed overlay view. Finally, loaded the PDF document
by calling -[PDFHostViewController setDocumentData:withScrollView:].
(-[WKPDFView _offsetForPageNumberIndicator]):
Computed an offset for the page number indicator like WKLegacyPDFView did, taking
into account the overlaid accessory views inset, computed unobscured safe area
inset, and computed obscured inset.
(-[WKPDFView _movePageNumberIndicatorToPoint:animated:]):
Moved the page number indicator using the margin and animation duration from
WKLegacyPDFView.
(-[WKPDFView _updateLayoutAnimated:]):
Added a convenience method to update the PDF view layout and position the page
number indicator.
(-[WKPDFView web_setMinimumSize:]):
Updated our own frame in case we are still the placeholder content view.
Called -_updateLayoutAnimated:.
(-[WKPDFView web_setOverlaidAccessoryViewsInset:]):
Stored the inset and called -_updateLayoutAnimated:.
(-[WKPDFView web_computedContentInsetDidChange]):
Called -_updateLayoutAnimated:.
(-[WKPDFView web_setFixedOverlayView:]):
Stored the fixed overlay view.
(-[WKPDFView web_didSameDocumentNavigation:]):
(-[WKPDFView web_countStringMatches:options:maxCount:]):
(-[WKPDFView web_findString:options:maxCount:]):
(-[WKPDFView web_hideFindUI]):
Added FIXMEs.
(-[WKPDFView web_contentView]):
If there is a host view controller, return its root view. Otherwise, return self.
(-[WKPDFView web_scrollViewDidScroll:]):
(-[WKPDFView web_scrollViewWillBeginZooming:withView:]):
(-[WKPDFView web_scrollViewDidEndZooming:withView:atScale:]):
(-[WKPDFView web_scrollViewDidZoom:]):
Called -[PDFHostViewController updatePDFViewLayout].
(-[WKPDFView web_dataRepresentation]):
Returned _data.
(-[WKPDFView web_suggestedFilename]):
Returned _suggestedFilename.
(-[WKPDFView web_isBackground]):
Returned self.isBackground.
- UIProcess/ios/WKSystemPreviewView.mm:
(-[WKSystemPreviewView web_contentView]):
Added. Returns self as the content view.
- WebKit.xcodeproj/project.pbxproj:
Source/WTF:
- wtf/FeatureDefines.h: Defined ENABLE_WKLEGACYPDFVIEW and ENABLE_WKPDFVIEW.
- 11:04 AM Changeset in webkit [230486] by
-
- 2 edits in trunk/Source/JavaScriptCore
ExecutableToCodeBlockEdge::visitChildren() should be cool with m_codeBlock being null since we clear it in finalizeUnconditionally()
https://bugs.webkit.org/show_bug.cgi?id=184460
<rdar://problem/37610966>
Reviewed by Mark Lam.
- bytecode/ExecutableToCodeBlockEdge.cpp:
(JSC::ExecutableToCodeBlockEdge::visitChildren):
- 10:57 AM Changeset in webkit [230485] by
-
- 3 edits in trunk/Source/JavaScriptCore
REGRESSION(r227341 and r227742): AI and clobberize should be precise and consistent about the effectfulness of CompareEq
https://bugs.webkit.org/show_bug.cgi?id=184455
Reviewed by Michael Saboff.
LICM is sort of an assertion that AI is as precise as clobberize about effects. If clobberize
says that something is not effectful, then LICM will try to hoist it. But LICM's AI hack
(AtTailAbstractState) cannot handle hoisting of things that have effects. So, if AI thinks that
the thing being hoisted does have effects, then we get a crash.
In r227341, we incorrectly told AI that CompareEq(Untyped:, _) is effectful. In fact, only
ComapreEq(Untyped:, Untyped:) is effectful, and clobberize knew this already. As a result, LICM
would blow up if we hoisted CompareEq(Untyped:, Other:), which clobberize knew wasn't
effectful.
Instead of fixing this by making AI precise, in r227742 we made matters worse by then breaking
clobberize to also think that CompareEq(Untyped:, _) is effectful.
This fixes the whole situation by teaching both clobberize and AI that the only effectful form
of CompareEq is ComapreEq(Untyped:, Untyped:).
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- 10:21 AM Changeset in webkit [230484] by
-
- 5 edits1 add in trunk/Tools
[LayoutReloaded] Add support for out-of-flow descendants in inline formatting context.
https://bugs.webkit.org/show_bug.cgi?id=184454
Reviewed by Antti Koivisto.
When the containing block of an out-of-flow positioned element establishes an inline formatting context.
This is mostly about moving out-of-flow logic from BlockFormattingContext to the base class.
- LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
(BlockFormattingContext.prototype._adjustBottomWithFIXME):
(BlockFormattingContext):
(BlockFormattingContext.prototype._layoutOutOfFlowDescendants): Deleted.
(BlockFormattingContext.prototype._computeOutOfFlowWidth): Deleted.
(BlockFormattingContext.prototype._computeInFlowWidth): Deleted.
(BlockFormattingContext.prototype._computeOutOfFlowHeight): Deleted.
(BlockFormattingContext.prototype._computeOutOfFlowPosition): Deleted.
(BlockFormattingContext.prototype._shrinkToFitWidth): Deleted.
- LayoutReloaded/FormattingContext/FormattingContext.js:
(FormattingContext.prototype._placeInFlowPositionedChildren):
(FormattingContext.prototype._computeInFlowWidth):
(FormattingContext.prototype._layoutOutOfFlowDescendants):
(FormattingContext.prototype._computeOutOfFlowWidth):
(FormattingContext.prototype._computeOutOfFlowHeight):
(FormattingContext.prototype._computeOutOfFlowPosition):
(FormattingContext.prototype._shrinkToFitWidth):
- LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleInlineContainer):
(InlineFormattingContext.prototype._handleInlineBlockContainer):
(InlineFormattingContext.prototype._placeOutOfFlowDescendants): Deleted.
- LayoutReloaded/test/index.html:
- LayoutReloaded/test/inline-with-out-of-flow-descendant.html: Added.
- 10:07 AM Changeset in webkit [230483] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/workers/name-property.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184453
Unreviewed test gardening.
- 9:41 AM Changeset in webkit [230482] by
-
- 2 edits in trunk/LayoutTests
Update test expectations in the new legacy-animation-engine directory.
Unreviewed test gardening.
- platform/win/TestExpectations:
- 9:26 AM Changeset in webkit [230481] by
-
- 2 edits in trunk/Source/WebKit
[GTK][WPE] Race condition when destroying webprocesses
https://bugs.webkit.org/show_bug.cgi?id=184445
Reviewed by Carlos Garcia Campos.
Ensure that the WebProcess is properly closing its pages when it's exiting because
the UIProcess has invalidated the IPC connection.
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::didClose):
- 7:56 AM Changeset in webkit [230480] by
-
- 2 edits in trunk/Source/WebCore
Do not layout images when we only need the overflow information.
https://bugs.webkit.org/show_bug.cgi?id=175331
Reviewed by Simon Fraser.
This improves MotionMark's Simple Leaves by ~10%.
Covered by existing tests.
- rendering/RenderImage.cpp:
(WebCore::RenderImage::layout):
- 3:47 AM Changeset in webkit [230479] by
-
- 3 edits in trunk/Source/WebCore
[TexMap] TextureMapperLayer unnecessarily duplicates state in GraphicsLayerTransform
https://bugs.webkit.org/show_bug.cgi?id=183868
Reviewed by Carlos Garcia Campos.
Drop the GraphicsLayerTransform member variable from TextureMapperLayer
and instead compute all the required transform information in the
computeTransformsRecursive() method. These computations are not too
expensive, and in turn we can drop an object from this class' state that
was only duplicating a bunch of state variables.
No new tests -- no change in functionality.
- platform/graphics/texmap/TextureMapperLayer.cpp:
(WebCore::TextureMapperLayer::computeTransformsRecursive):
(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintSelfAndChildren):
(WebCore::TextureMapperLayer::paintSelfAndChildrenWithReplica):
(WebCore::TextureMapperLayer::replicaTransform):
(WebCore::TextureMapperLayer::computeOverlapRegions):
(WebCore::TextureMapperLayer::setPosition):
(WebCore::TextureMapperLayer::setSize):
(WebCore::TextureMapperLayer::setAnchorPoint):
(WebCore::TextureMapperLayer::setPreserves3D):
(WebCore::TextureMapperLayer::setTransform):
(WebCore::TextureMapperLayer::setChildrenTransform):
(WebCore::TextureMapperLayer::syncAnimations):
(WebCore::TextureMapperLayer::setScrollPositionDeltaIfNeeded):
- platform/graphics/texmap/TextureMapperLayer.h:
- 1:43 AM Changeset in webkit [230478] by
-
- 1 copy in releases/WebKitGTK/webkit-2.20.1
WebKitGTK+ 2.20.1
- 1:42 AM Changeset in webkit [230477] by
-
- 4 edits in releases/WebKitGTK/webkit-2.20
Unreviewed. Update OptionsGTK.cmake and NEWS for 2.20.1 release.
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.20.1.
- 1:10 AM Changeset in webkit [230476] by
-
- 5 edits in releases/WebKitGTK/webkit-2.20
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 message. This can happen when the WebView is created and destroyed quickly.
- Platform/IPC/Connection.h:
(IPC::Connection::shouldExitOnSyncMessageSendFailure const):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
Tools:
Add a test case to reproduce the crash.
- TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
(testWebViewCloseQuickly):
(beforeAll):
- 1:10 AM Changeset in webkit [230475] by
-
- 4 edits in releases/WebKitGTK/webkit-2.20/Source
Merge r230442 - Unreviewed, rolling out r230390.
Broke accelerated compositing
Reverted changeset:
"[GTK] WaylandCompositorDisplay leaks its wl_display"
https://bugs.webkit.org/show_bug.cgi?id=184406
https://trac.webkit.org/changeset/230390
- 12:58 AM Changeset in webkit [230474] by
-
- 3 edits in trunk/Source/bmalloc
[bmalloc] Name Scavenger thread "bmalloc scavenger"
https://bugs.webkit.org/show_bug.cgi?id=166684
Reviewed by Saam Barati.
We name the thread for bmalloc Scavenger "bmalloc scavenger".
It is useful for debugging. In Linux environment, it will be
shown in GDB.
- bmalloc/Scavenger.cpp:
(bmalloc::Scavenger::threadRunLoop):
(bmalloc::Scavenger::setName):
- bmalloc/Scavenger.h: