Timeline
Apr 19, 2017:
- 11:26 PM Changeset in webkit [215553] by
-
- 3 edits in trunk/Source/ThirdParty
[GTK] ../../Source/ThirdParty/xdgmime/src/xdgmimecache.c:200:62: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith]
https://bugs.webkit.org/show_bug.cgi?id=171026
Reviewed by Carlos Garcia Campos.
- xdgmime/README.webkit:
- xdgmime/src/xdgmimecache.c:
(cache_magic_matchlet_compare_to_data):
- 10:26 PM Changeset in webkit [215552] by
-
- 6 edits in trunk
Remove WebKitTestRunner code for enabling features that are already enabled by default
https://bugs.webkit.org/show_bug.cgi?id=171033
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-19
Reviewed by Ryosuke Niwa.
Source/WebKit2:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):
Tools:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setShadowDOMEnabled): Deleted.
(WTR::TestRunner::setCustomElementsEnabled): Deleted.
(WTR::TestRunner::setFetchAPIEnabled): Deleted.
(WTR::TestRunner::setDownloadAttributeEnabled): Deleted.
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- 9:36 PM Changeset in webkit [215551] by
-
- 4 edits in trunk/Source/WebKit/win
[Win] REGRESSION(r215486): Windows Release build is broken
https://bugs.webkit.org/show_bug.cgi?id=171024
<rdar://problem/31722618>
Reviewed by Mark Lam.
Windows WebKit refers to a handful of JSC methods that are always
inline. We need to include 'HeapInlines.h' to get the implementation
of these methods.
- Plugins/PluginPackage.cpp:
- WebFrame.cpp:
- WebView.cpp:
- 8:40 PM Changeset in webkit [215550] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=170907
Unreviewed test gardening.
- platform/mac-wk2/TestExpectations:
- 8:40 PM Changeset in webkit [215549] by
-
- 2 edits in trunk/LayoutTests
Rebaseline imported/w3c/web-platform-tests/html/dom/reflection-embedded.html.
Unreviewed test gardening.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
- 8:08 PM Changeset in webkit [215548] by
-
- 18 edits2 copies in trunk
[Mac] Allow customizing H264 encoder
https://bugs.webkit.org/show_bug.cgi?id=170829
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-19
Reviewed by Alex Christensen.
Source/JavaScriptCore:
- Configurations/FeatureDefines.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.xcconfig:
- Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.h:
- Source/webrtc/sdk/objc/Framework/Classes/h264_video_toolbox_encoder.mm:
(webrtc::H264VideoToolboxEncoder::ResetCompressionSession):
(webrtc::H264VideoToolboxEncoder::CreateCompressionSession): Default implementation, fixing memory leak for dictionary.
- Source/webrtc/sdk/objc/Framework/Classes/videotoolboxvideocodecfactory.cc:
Source/WebCore:
Using WebKitAdditions CreateCompressionSession if available.
- Configurations/FeatureDefines.xcconfig:
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.h: Added.
- platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm: Added.
(WebCore::H264VideoToolboxEncoder::CreateCompressionSession):
- platform/mediastream/libwebrtc/VideoToolBoxEncoderFactory.cpp:
(WebCore::VideoToolboxVideoEncoderFactory::CreateSupportedVideoEncoder):
Source/WebCore/PAL:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit/mac:
- Configurations/FeatureDefines.xcconfig:
Source/WebKit2:
- Configurations/FeatureDefines.xcconfig:
- WebKit2.xcodeproj/project.pbxproj:
Tools:
- TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
- 7:29 PM Changeset in webkit [215547] by
-
- 2 edits in trunk/LayoutTests
Mark imported/w3c/web-platform-tests/XMLHttpRequest/getallresponseheaders-cl.htm as failing.
https://bugs.webkit.org/show_bug.cgi?id=171031
Unreviewed test gardening.
- 5:53 PM Changeset in webkit [215546] by
-
- 3 edits in trunk/Source/WebCore
Another deadlock in CoreAudioCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=171001
Fix another regression introduced by r215201, plus make changes suggested
in the review of 170771.
Reviewed by Youenn Fablet.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::configureSpeakerProc): Assert if the lock is no held.
(WebCore::CoreAudioCaptureSource::provideSpeakerData): Don't reset the buffer.
(WebCore::CoreAudioCaptureSource::processMicrophoneSamples): Take the state lock. Don't
reset the buffer. No more microphone callbacks.
(WebCore::CoreAudioCaptureSource::stopProducingData): Return early if the io unit isn't
running. Drop the lock before calling setMuted to avoid another deadlock.
(WebCore::CoreAudioCaptureSource::addMicrophoneDataConsumer): Deleted.
(WebCore::CoreAudioCaptureSource::removeMicrophoneDataConsumer): Deleted.
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- 5:43 PM Changeset in webkit [215545] by
-
- 10 edits in trunk
Add asynchronous equivalent of -[<WKUIDelegate> webView:createWebViewWithConfiguration:...].
<rdar://problem/30699851> and https://bugs.webkit.org/show_bug.cgi?id=171018
Reviewed by Tim Horton.
Source/WebKit2:
- UIProcess/API/APIUIClient.h:
(API::UIClient::createNewPageAsync):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::createNewPageCommon):
(WebKit::UIDelegate::UIClient::createNewPage):
(WebKit::UIDelegate::UIClient::createNewPageAsync):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::createNewPage):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
Tools:
- TestWebKitAPI/Tests/WebKit2Cocoa/OpenAndCloseWindow.mm:
(TEST):
(-[OpenAndCloseWindowUIDelegateAsync webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
(-[OpenAndCloseWindowUIDelegateAsync _webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:completionHandler:]):
- 4:48 PM Changeset in webkit [215544] by
-
- 2 edits in trunk/Source/WTF
[Win] Activate streams API by default
https://bugs.webkit.org/show_bug.cgi?id=171000
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-19
Reviewed by Brent Fulgham.
- wtf/FeatureDefines.h:
- 4:41 PM Changeset in webkit [215543] by
-
- 2 edits in trunk/Source/WebInspectorUI
REGRESSION (r209882): Web Inspector: Console's filter bar has text search field, but the next/previous buttons don't do anything
https://bugs.webkit.org/show_bug.cgi?id=170556
<rdar://problem/31481755>
Reviewed by Matt Baker.
- UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.performSearch):
Update numberOfResults setter, which sets "disabled" attribute to false when numberOfResults > 0.
- 4:38 PM Changeset in webkit [215542] by
-
- 3 edits4 deletes in trunk/LayoutTests
Remove two tests after r215515.
https://bugs.webkit.org/show_bug.cgi?id=171014
Unreviewed test gardening.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/basic/scheme-about.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/scheme-about.worker.html: Removed.
- web-platform-tests/user-timing/clear_one_measure.worker-expected.txt: Removed.
- web-platform-tests/user-timing/clear_one_measure.worker.html: Removed.
LayoutTests:
- 4:30 PM Changeset in webkit [215541] by
-
- 21 edits in trunk/Source
Stop using deprecated APIs, part 3
https://bugs.webkit.org/show_bug.cgi?id=171003
rdar://problem/31589635
Source/WebCore:
rdar://problem/31589635
Reviewed by Tim Horton.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
The status member variable has been removed from ApplePayShippingMethodUpdate.
(WebCore::ApplePaySession::completeShippingMethodSelection):
If status is not STATUS_SUCCESS, cancel the payment session.
(WebCore::ApplePaySession::canSuspendForDocumentSuspension):
(WebCore::ApplePaySession::canBegin):
(WebCore::ApplePaySession::canAbort):
(WebCore::ApplePaySession::canCancel):
(WebCore::ApplePaySession::canCompleteShippingMethodSelection):
(WebCore::ApplePaySession::canCompleteShippingContactSelection):
(WebCore::ApplePaySession::canCompletePaymentMethodSelection):
(WebCore::ApplePaySession::canCompletePayment):
(WebCore::ApplePaySession::isFinalState):
Add State::CancelRequested.
- Modules/applepay/ApplePayShippingMethodUpdate.h:
- Modules/applepay/ApplePayShippingMethodUpdate.idl:
Remove status.
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::cancelPaymentSession):
Call through to the client.
- Modules/applepay/PaymentCoordinator.h:
- Modules/applepay/PaymentCoordinatorClient.h:
Add cancelPaymentSession().
- Modules/applepay/PaymentRequest.h:
Remove status.
- loader/EmptyClients.cpp:
Add new client member function.
Source/WebKit/mac:
Reviewed by Tim Horton.
- WebCoreSupport/WebPaymentCoordinatorClient.h:
- WebCoreSupport/WebPaymentCoordinatorClient.mm:
(WebPaymentCoordinatorClient::cancelPaymentSession):
Update for WebCore changes.
Source/WebKit2:
Reviewed by Tim Horton.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::ShippingMethodUpdate>::encode):
(IPC::ArgumentCoder<WebCore::ShippingMethodUpdate>::decode):
Don't encode/decode status.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::cancelPaymentSession):
Hide the UI and report back.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
Add new member.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
Add new message.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection):
Always pass success in the old code path. Stop using the deprecated method.
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::cancelPaymentSession):
Send a message to the UI process.
- WebProcess/ApplePay/WebPaymentCoordinator.h:
Add new member.
- 4:27 PM Changeset in webkit [215540] by
-
- 12 edits in trunk/LayoutTests
Rebaseline tests after r215515.
https://bugs.webkit.org/show_bug.cgi?id=171014
Unreviewed test gardening.
LayoutTests/imported/w3c:
- web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
- web-platform-tests/html/webappapis/timers/negative-settimeout-expected.txt:
LayoutTests:
- TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
- 4:23 PM Changeset in webkit [215539] by
-
- 2 edits in trunk/Source/JavaScriptCore
Tune GC related JSC options for iOS
https://bugs.webkit.org/show_bug.cgi?id=171019
Reviewed by Mark Lam.
Always set these GC options on iOS.
- runtime/Options.cpp:
(JSC::overrideDefaults):
- 4:21 PM Changeset in webkit [215538] by
-
- 2 edits in trunk/Source/WTF
Vector.h: error: 'auto' not allowed in lambda parameter
<https://webkit.org/b/171010>
<rdar://problem/31716076>
Reviewed by Saam Barati.
- wtf/Vector.h:
(WTF::removeRepeatedElements): Replace 'auto' with a specific
type, 'T', based on a Vector<> template type.
- 4:13 PM Changeset in webkit [215537] by
-
- 12 edits in trunk/Source
[MediaStream] Limit capture to one tab at a time
https://bugs.webkit.org/show_bug.cgi?id=171009
Reviewed by Jon Lee.
Source/WebCore:
No new tests yet, filed bug 171011.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::stopTrack): Drive-by fix: renamed from stopProducingData
because stopProducingData is a method in RealtimeMediaSource that does something different.
(WebCore::MediaStreamTrack::stop): Call stopTrack.
(WebCore::MediaStreamTrack::stopProducingData): Deleted.
- Modules/mediastream/MediaStreamTrack.h:
- Modules/mediastream/MediaStreamTrack.idl:
- Modules/mediastream/RTCRtpSender.cpp:
(WebCore::RTCRtpSender::replaceTrack): Update for rename.
- platform/mediastream/MediaStreamPrivate.cpp:
(WebCore::MediaStreamPrivate::muted): Drive-by fix: a track that has ended but
which is not muted will never produce data.
Source/WebKit2:
- UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
(WebKit::UserMediaPermissionRequestManagerProxy::stopCapture): Deleted, not used.
- UIProcess/UserMediaPermissionRequestManagerProxy.h:
- UIProcess/UserMediaProcessManager.cpp:
(WebKit::UserMediaProcessManager::willEnableMediaStreamInPage): Mute media streams
on other pages.
(WebKit::UserMediaProcessManager::willCreateMediaStream): Call willEnableMediaStreamInPage.
- UIProcess/UserMediaProcessManager.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::setMuted): If media streams in the page will be unmuted, call
willEnableMediaStreamInPage so streams in other pages are muted first.
- 3:43 PM Changeset in webkit [215536] by
-
- 6 edits1 add in trunk
REGRESSION (r213168): An extra Web Content process is spun up on launch and is never closed.
<rdar://problem/30774839> and https://bugs.webkit.org/show_bug.cgi?id=171002
Reviewed by Alex Christensen.
Source/WebKit2:
The original change unnecessarily avoided using the initial warmed process if an explicit
data store was set on the new WKWebView.
Fixing that fixes the regression.
- UIProcess/API/Cocoa/WKProcessPool.mm:
(-[WKProcessPool _webProcessCount]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit2Cocoa/InitialWarmedProcessUsed.mm: Added.
- 3:27 PM Changeset in webkit [215535] by
-
- 3 edits2 adds in trunk
Parsing large XML strings fails
https://bugs.webkit.org/show_bug.cgi?id=170999
<rdar://problem/17336267>
Reviewed by Brady Eidson.
Source/WebCore:
Test: fast/dom/xml-large.html
- xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLParserContext::createStringParser):
(WebCore::XMLParserContext::createMemoryParser):
Allow huge XML strings. They work fine in Chrome and Firefox.
LayoutTests:
- fast/dom/xml-large-expected.txt: Added.
- fast/dom/xml-large.html: Added.
- 3:06 PM Changeset in webkit [215534] by
-
- 4 edits1 delete in trunk/Source/WTF
Unreviewed, rolling out r215518.
This change appears to have broken the Windows build.
Reverted changeset:
"Move notFound into its own file"
https://bugs.webkit.org/show_bug.cgi?id=170972
http://trac.webkit.org/changeset/215518
- 3:05 PM Changeset in webkit [215533] by
-
- 12 edits in trunk/Source/JavaScriptCore
WebAssembly: fast memory cleanups
https://bugs.webkit.org/show_bug.cgi?id=170909
Reviewed by Saam Barati.
- b3/B3LowerToAir.cpp: correct comment, and make wasm-independent
(JSC::B3::Air::LowerToAir::lower):
- b3/B3Procedure.h:
- b3/B3Validate.cpp:
- b3/B3Value.cpp:
(JSC::B3::Value::effects):
- b3/B3WasmBoundsCheckValue.cpp: have the creator pass in a
maximum, so we don't have to know so much about wasm here
(JSC::B3::WasmBoundsCheckValue::WasmBoundsCheckValue):
(JSC::B3::WasmBoundsCheckValue::cloneImpl):
(JSC::B3::WasmBoundsCheckValue::dumpMeta):
- b3/B3WasmBoundsCheckValue.h:
(JSC::B3::WasmBoundsCheckValue::boundsType):
(JSC::B3::WasmBoundsCheckValue::bounds):
- b3/air/AirCode.h:
- b3/air/AirCustom.h:
(JSC::B3::Air::WasmBoundsCheckCustom::generate):
- b3/testb3.cpp:
(JSC::B3::testWasmBoundsCheck):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::createJSToWasmWrapper): remove dead code
- wasm/WasmMemory.cpp: don't GC if no memory could possibly be free'd
(JSC::Wasm::Memory::initializePreallocations): verbose-only code,
and copy-pasta bug
- 2:58 PM Changeset in webkit [215532] by
-
- 7 edits in trunk
AX: <hr> should use a different role description than interactive separators
https://bugs.webkit.org/show_bug.cgi?id=170317
<rdar://problem/31363024>
Reviewed by Joanmarie Diggs.
Source/WebCore:
Users are confused with WebKit's accessibility description of separators.
We should call these what they are, horizontal rules.
Updated test: accessibility/mac/hr-element-expected.txt
- English.lproj/Localizable.strings:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::orientation):
- platform/cocoa/LocalizedStringsCocoa.mm:
(WebCore::AXHorizontalRuleDescriptionText):
LayoutTests:
- accessibility/mac/hr-element-expected.txt:
- accessibility/mac/hr-element.html:
- 2:51 PM Changeset in webkit [215531] by
-
- 6 edits1 add in trunk
B3StackmapSpecial should handle when stackmap values are not recoverable from a Def'ed arg.
https://bugs.webkit.org/show_bug.cgi?id=170973
<rdar://problem/30318657>
Reviewed by Filip Pizlo.
JSTests:
- stress/regress-170973.js: Added.
Source/JavaScriptCore:
In the event of an arithmetic overflow on a binary sub instruction (where the
result register is same as one of the operand registers), the CheckSub FTL
operation will try to recover the original value in the clobbered result register.
This recover is done by adding the other operand value to the result register.
However, this recovery method only works if the width of the original value in
the result register is less or equal to the width of the expected result. If the
width of the original operand value (e.g. a JSInt32) is wider than the result
(e.g. a machine Int32), then the sub operation would have zero extended the
result and cleared the upper 32-bits of the result register. Recovery by adding
back the other operand will not restore the JSValue tag in the upper word.
This poses a problem if the stackmap value for the operand relies on that same
clobbered register.
The fix is to detect this potential scenario (i.e. width of the Def's arg < width
of a stackmap value). If this condition is detected, we'll declare the stackmap
value to be LateColdUse to ensure that the register allocator gives it a
different register if needed so that it's not dependent on the clobbered register.
- b3/B3CheckSpecial.cpp:
(JSC::B3::CheckSpecial::forEachArg):
- b3/B3PatchpointSpecial.cpp:
(JSC::B3::PatchpointSpecial::forEachArg):
- b3/B3StackmapSpecial.cpp:
(JSC::B3::StackmapSpecial::forEachArgImpl):
- b3/B3StackmapSpecial.h:
- 2:30 PM Changeset in webkit [215530] by
-
- 12 edits in trunk/Source
Rename cancelPayment to cancelPaymentSession
https://bugs.webkit.org/show_bug.cgi?id=171007
Reviewed by Tim Horton.
Source/WebCore:
- Modules/applepay/ApplePaySession.cpp:
(WebCore::ApplePaySession::didCancelPaymentSession):
(WebCore::ApplePaySession::didCancelPayment): Deleted.
- Modules/applepay/ApplePaySession.h:
- Modules/applepay/PaymentCoordinator.cpp:
(WebCore::PaymentCoordinator::didCancelPaymentSession):
(WebCore::PaymentCoordinator::didCancelPayment): Deleted.
- Modules/applepay/PaymentCoordinator.h:
Source/WebKit2:
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:
(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::didCancelPaymentSession):
(WebKit::WebPaymentCoordinatorProxy::didCancelPayment): Deleted.
- UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
- WebProcess/ApplePay/WebPaymentCoordinator.cpp:
(WebKit::WebPaymentCoordinator::didCancelPaymentSession):
(WebKit::WebPaymentCoordinator::didCancelPayment): Deleted.
- WebProcess/ApplePay/WebPaymentCoordinator.h:
- WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
- 2:00 PM Changeset in webkit [215529] by
-
- 8 copies1 add in releases/Apple/Safari Technology Preview 28
Added a tag for Safari Technology Preview release 28.
- 1:22 PM Changeset in webkit [215528] by
-
- 3 edits in trunk/Source/WebCore
ASAN Crash running LayoutTests/inspector/worker tests
https://bugs.webkit.org/show_bug.cgi?id=170967
<rdar://problem/31256437>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-04-19
Reviewed by Alex Christensen.
- workers/WorkerMessagingProxy.h:
- workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal):
Make the MessagingProxy thread safe ref counted. Since it used to
delete itself, turn this into a ref (implicit on construction)
and deref (replacing delete this).
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
When dispatching have the lambda implicitly ref/deref with the
lambda to keep the proxy alive while a lambda is queued.
- 1:20 PM Changeset in webkit [215527] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Remove executable property from a header file.
- include/KHR/khrplatform.h: Removed property svn:executable.
- 1:03 PM Changeset in webkit [215526] by
-
- 8 edits1 delete in trunk
Unreviewed, rolling out r215520.
Broke Debian 8
Reverted changeset:
"[INTL] Implement Intl.DateTimeFormat.prototype.formatToParts"
https://bugs.webkit.org/show_bug.cgi?id=169458
http://trac.webkit.org/changeset/215520
- 12:38 PM Changeset in webkit [215525] by
-
- 4 edits2 adds in trunk
WebAssembly: limit slow memories
https://bugs.webkit.org/show_bug.cgi?id=170825
Reviewed by Saam Barati.
JSTests:
- wasm.yaml:
- wasm/stress/oom.js: Added.
(try.true.WebAssemblyMemoryMode):
(catch):
Source/JavaScriptCore:
We limits the number of fast memories, partly because ASLR. The
code then falls back to slow memories. It first tries to virtually
allocated any declared maximum (and in there, physically the
initial), and if that fails it tries to physically allocate the
initial without any extra.
This can still be used to cause a bunch of virtual
allocation. This patch imposes soft limit on slow memories as
well. The total virtual maximum for slow memories is set at the
same (theoretical) value as that for fast memories.
Anything exceeding that limit causes allocation/grow to fail.
- wasm/WasmMemory.cpp:
- 12:11 PM Changeset in webkit [215524] by
-
- 2 edits in trunk/Tools
[WK2] Run tests with ResourceLoadStatistics enabled
https://bugs.webkit.org/show_bug.cgi?id=170952
Reviewed by Andy Estes.
Excercise the load statistics code during tests.
- WebKitTestRunner/cocoa/TestControllerCocoa.mm:
(WTR::initializeWebViewConfiguration):
- 11:57 AM Changeset in webkit [215523] by
-
- 2 edits in trunk/Tools
close_fds should be set to False on Windows.
https://bugs.webkit.org/show_bug.cgi?id=170838
Patch by Bill Ming <mbbill@gmail.com> on 2017-04-19
Reviewed by Brent Fulgham.
- Scripts/webkitpy/common/system/executive.py:
(Executive._should_close_fds):
- 11:25 AM Changeset in webkit [215522] by
-
- 2 edits in trunk/Source/JavaScriptCore
Cannot compile JavaScriptCore/runtime/VMTraps.cpp on FreeBSD because std::pair has a non-trivial copy constructor
https://bugs.webkit.org/show_bug.cgi?id=170875
Reviewed by Mark Lam.
WTF::ExpectedDetail::ConstexprBase doesn't have a user-defined
copy constructor, and its implicitly-defined copy constructor is
deleted because the default std::pair implementation on FreeBSD
has a non-trivial copy constructor. /usr/include/c++/v1/config
says _LIBCPP_TRIVIAL_PAIR_COPY_CTOR is disabled in order to keep
ABI compatibility:
https://svnweb.freebsd.org/changeset/base/261801.
That's a huge bummer, and I'm not a fan of broken stdlibs, but in
this case it's pretty nice to have a custom named type anyways and
costs nothing.
- runtime/VMTraps.cpp:
(JSC::findActiveVMAndStackBounds):
(JSC::handleSigusr1):
(JSC::handleSigtrap):
- 11:17 AM Changeset in webkit [215521] by
-
- 6 edits1 add in trunk
Stop using strcpy() in WebKit::EnvironmentUtilities::stripValuesEndingWithString()
<https://webkit.org/b/170994>
<rdar://problem/29889932>
Reviewed by Brent Fulgham.
Source/WebKit2:
- Platform/unix/EnvironmentUtilities.cpp:
(WebKit::EnvironmentUtilities::stripValuesEndingWithString):
Switch from using strcpy() to strlcpy(). Also switch from using
strstr() to strnstr().
- Platform/unix/EnvironmentUtilities.h: Switch to #pragma once.
(WebKit::EnvironmentUtilities::stripValuesEndingWithString):
Export function for testing.
- WebKit2.xcodeproj/project.pbxproj:
(EnvironmentUtilitiesTest.h): Make header private for testing.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
(EnvironmentUtilitiesTest.cpp): Add to TestWebKitAPILibrary
target.
- TestWebKitAPI/Tests/WebKit2/EnvironmentUtilitiesTest.cpp: Add.
(TestWebKitAPI::strip): Helper method to set/get environment
variable for testing.
(TestWebKitAPI::WebKit2_StripValuesEndingWithString_Test): Add
tests.
- 11:08 AM Changeset in webkit [215520] by
-
- 8 edits1 add in trunk
[INTL] Implement Intl.DateTimeFormat.prototype.formatToParts
https://bugs.webkit.org/show_bug.cgi?id=169458
Patch by Andy VanWagoner <thetalecrafter@gmail.com> on 2017-04-19
Reviewed by JF Bastien.
Source/JavaScriptCore:
Use udat_formatForFields to iterate through the parts of a formatted date string.
- icu/unicode/udat.h: Update to 55.1.
- icu/unicode/ufieldpositer.h: Added from 55.1.
- runtime/IntlDateTimeFormat.cpp:
(JSC::IntlDateTimeFormat::partTypeString): Convert UDateFormatField to string.
(JSC::IntlDateTimeFormat::formatToParts): Return parts of formatted date string.
- runtime/IntlDateTimeFormat.h:
- runtime/IntlDateTimeFormatPrototype.cpp:
(JSC::IntlDateTimeFormatPrototypeFuncFormatToParts): Add prototype function formatToParts.
LayoutTests:
Add tests for formatToParts
- js/intl-datetimeformat-expected.txt:
- js/script-tests/intl-datetimeformat.js:
- 11:02 AM Changeset in webkit [215519] by
-
- 2 edits1 add in trunk/Tools
WebAssembly: add script which can import GCC torture tests
https://bugs.webkit.org/show_bug.cgi?id=170740
Reviewed by Saam Barati.
Add a script which can import the GCC torture tests and create a
yaml file to run them as part of jsc's WebAssembly regression
tests.
This patch doesn't commit the tests themselves because they're
licensed differently.
- Scripts/run-jsc-stress-tests: learn how to run
Emscripten-generated .js+.wasm files, and do a bit of cleanup on
the options because WebAssembly is enabled by default.
- Scripts/update-wasm-gcc-torture.py: Added.
(parse_args):
(update_lkgr):
(untar_torture):
(list_js_files):
(waterfall_known_failures):
(create_yaml):
(main):
- 10:57 AM Changeset in webkit [215518] by
-
- 4 edits1 add in trunk/Source/WTF
Move notFound into its own file
https://bugs.webkit.org/show_bug.cgi?id=170972
Patch by Sam Weinig <sam@webkit.org> on 2017-04-19
Reviewed by Zalan Bujtas.
It is odd to require including <wtf/Vector.h> just to use WTF::notFound.
This is not causing any current problems, but does in few changes I have
queued up.
- WTF.xcodeproj/project.pbxproj:
- wtf/NotFound.h: Added.
- wtf/Vector.h:
- wtf/text/StringCommon.h:
- 10:12 AM Changeset in webkit [215517] by
-
- 4 edits2 adds in trunk
WebAssembly: don't expose any WebAssembly JS object if JIT is off
https://bugs.webkit.org/show_bug.cgi?id=170782
Reviewed by Saam Barati.
JSTests:
- wasm.yaml:
- wasm/noJIT/noJIT.js: Added.
Source/JavaScriptCore:
It's unexpected that we expose the global WebAssembly object if no
JIT is present because it can't be used to compile or
instantiate. Other APIs such as Memory should also be Inaccessible
in those circumstances.
Also ensure that we don't pre-allocate fast memories if
WebAssembly won't be used, and don't mark our intention to use a
fast TLS slot for WebAssembly.
- runtime/Options.cpp:
(JSC::recomputeDependentOptions):
- 9:49 AM Changeset in webkit [215516] by
-
- 5 edits in trunk/Source/JavaScriptCore
r211670 broke double to int conversion.
https://bugs.webkit.org/show_bug.cgi?id=170961
Reviewed by Mark Lam.
In this patch, we take a template parameter way.
While it reduces duplicate code, it effectively produces
optimized code for operationToInt32SensibleSlow,
and fixes kraken pbkdf2 regression on Linux.
And this patch also fixes undefined behavior by changing
int32_t to uint32_t. If exp is 31, missingOne is 1 << 31,
INT32_MIN. Thus missingOne - 1 will cause int32_t overflow,
and it is an undefined behavior.
- runtime/MathCommon.cpp:
(JSC::operationToInt32SensibleSlow):
- runtime/MathCommon.h:
(JSC::toInt32Internal):
(JSC::toInt32):
- 9:32 AM Changeset in webkit [215515] by
-
- 55 edits4 copies40 moves1129 adds42 deletes in trunk
LayoutTests/imported/w3c:
Adding wpt tools
Import web-platform-tests/tools
https://bugs.webkit.org/show_bug.cgi?id=170718
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-19
Reviewed by Alex Christensen.
- resources/TestRepositories:
- resources/import-expectations.json:
- resources/resource-files.json:
- resources/web-platform-tests-modules.json: Removed.
- web-platform-tests/.gitignore:
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.worker-expected.txt: Added.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.any.worker.html: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker.html.
- web-platform-tests/XMLHttpRequest/XMLHttpRequest-withCredentials.worker-expected.txt: Removed.
- web-platform-tests/XMLHttpRequest/getallresponseheaders-cl-expected.txt:
- web-platform-tests/XMLHttpRequest/responsetype-expected.txt:
- web-platform-tests/XMLHttpRequest/send-usp.any.worker-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-usp.worker-expected.txt.
- web-platform-tests/XMLHttpRequest/send-usp.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-usp.worker.html.
- web-platform-tests/XMLHttpRequest/send-usp.worker.js: Removed.
- web-platform-tests/XMLHttpRequest/timeout-sync-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
- web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
- web-platform-tests/fetch/api/basic/accept-header.any-expected.txt:
- web-platform-tests/fetch/api/basic/accept-header.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/accept-header.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/accept-header.worker.html.
- web-platform-tests/fetch/api/basic/accept-header.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/mode-same-origin.any-expected.txt:
- web-platform-tests/fetch/api/basic/mode-same-origin.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/mode-same-origin.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/mode-same-origin.worker.html.
- web-platform-tests/fetch/api/basic/mode-same-origin.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/referrer.any-expected.txt:
- web-platform-tests/fetch/api/basic/referrer.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/referrer.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/referrer.worker.html.
- web-platform-tests/fetch/api/basic/referrer.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/request-forbidden-headers.any-expected.txt:
- web-platform-tests/fetch/api/basic/request-forbidden-headers.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/request-forbidden-headers.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-forbidden-headers.worker.html.
- web-platform-tests/fetch/api/basic/request-forbidden-headers.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/request-head.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/request-head.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-head.worker.html.
- web-platform-tests/fetch/api/basic/request-head.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/request-headers.any-expected.txt:
- web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/request-headers.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.worker.html.
- web-platform-tests/fetch/api/basic/request-headers.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/request-referrer-redirected-worker-expected.txt:
- web-platform-tests/fetch/api/basic/request-referrer.any-expected.txt:
- web-platform-tests/fetch/api/basic/request-referrer.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/request-referrer.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-referrer.worker.html.
- web-platform-tests/fetch/api/basic/request-referrer.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/request-upload.any-expected.txt:
- web-platform-tests/fetch/api/basic/request-upload.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/request-upload.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/request-upload.worker.html.
- web-platform-tests/fetch/api/basic/request-upload.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/scheme-about.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/scheme-about.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/scheme-data.worker.html.
- web-platform-tests/fetch/api/basic/scheme-about.worker-expected.txt:
- web-platform-tests/fetch/api/basic/scheme-data.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/scheme-data.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/basic/stream-response.worker.html.
- web-platform-tests/fetch/api/basic/scheme-data.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/basic/stream-response.any-expected.txt:
- web-platform-tests/fetch/api/basic/stream-response.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/basic/stream-response.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic.worker.html.
- web-platform-tests/fetch/api/basic/stream-response.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-basic.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-basic.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-basic.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies.worker.html.
- web-platform-tests/fetch/api/cors/cors-basic.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-cookies.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-cookies.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-cookies.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.worker.html.
- web-platform-tests/fetch/api/cors/cors-cookies.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-no-preflight.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-no-preflight.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-no-preflight.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.worker.html.
- web-platform-tests/fetch/api/cors/cors-no-preflight.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-origin.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-origin.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-origin.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect.worker.html.
- web-platform-tests/fetch/api/cors/cors-origin.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-referrer.worker.html.
- web-platform-tests/fetch/api/cors/cors-preflight-redirect.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-star.worker.html.
- web-platform-tests/fetch/api/cors/cors-preflight-referrer.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-preflight-star.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-preflight-star.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.worker.html.
- web-platform-tests/fetch/api/cors/cors-preflight-star.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-preflight-status.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight-status.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-preflight-status.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.worker.html.
- web-platform-tests/fetch/api/cors/cors-preflight-status.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-preflight.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-preflight.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-preflight.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-credentials.worker.html.
- web-platform-tests/fetch/api/cors/cors-preflight.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-preflight.worker.html.
- web-platform-tests/fetch/api/cors/cors-redirect-credentials.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-redirect-preflight.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-redirect-preflight.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-redirect-preflight.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect.worker.html.
- web-platform-tests/fetch/api/cors/cors-redirect-preflight.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/cors/cors-redirect.any-expected.txt:
- web-platform-tests/fetch/api/cors/cors-redirect.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/cors/cors-redirect.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic.worker.html.
- web-platform-tests/fetch/api/cors/cors-redirect.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/credentials/authentication-basic.any-expected.txt:
- web-platform-tests/fetch/api/credentials/authentication-basic.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/credentials/authentication-basic.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/credentials/cookies.worker.html.
- web-platform-tests/fetch/api/credentials/authentication-basic.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/credentials/cookies.any-expected.txt:
- web-platform-tests/fetch/api/credentials/cookies.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/credentials/cookies.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/fetch/api/headers/historical.worker.html.
- web-platform-tests/fetch/api/credentials/cookies.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/headers/historical.any.worker-expected.txt: Added.
- web-platform-tests/fetch/api/headers/historical.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/hr-time/basic.worker.html.
- web-platform-tests/fetch/api/headers/historical.worker-expected.txt: Removed.
- web-platform-tests/fetch/api/redirect/redirect-count-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-count-worker-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-location-expected.txt:
- web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
- web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Copied from LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt.
- web-platform-tests/fetch/http-cache/partial-expected.txt:
- web-platform-tests/hr-time/basic.any.worker-expected.txt: Added.
- web-platform-tests/hr-time/basic.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/hr-time/monotonic-clock.worker.html.
- web-platform-tests/hr-time/basic.worker-expected.txt: Removed.
- web-platform-tests/hr-time/basic.worker.js: Removed.
- web-platform-tests/hr-time/monotonic-clock.any.worker-expected.txt: Added.
- web-platform-tests/hr-time/monotonic-clock.any.worker.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/dom/self-origin.worker.html.
- web-platform-tests/hr-time/monotonic-clock.worker-expected.txt: Removed.
Tools:
Import web-platform-tests/tools
https://bugs.webkit.org/show_bug.cgi?id=170718
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-19
Reviewed by Alex Christensen.
- Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:
(main):
- Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:
(WebPlatformTestServer.ports_to_forward):
(WebPlatformTestServer._prepare_config):
(WebPlatformTestServer._install_modules): Deleted.
- Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.write_html_files_for_templated_js_tests):
LayoutTests:
Import web-platform-tests/tools
https://bugs.webkit.org/show_bug.cgi?id=170718
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-19
Reviewed by Alex Christensen.
- TestExpectations:
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic.any-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic.any.worker-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.any-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-no-preflight.any.worker-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any.worker-expected.txt: Added.
- platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Renamed from LayoutTests/platform/mac/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt.
- tests-options.json:
- 9:17 AM Changeset in webkit [215514] by
-
- 2 edits in trunk/Source/WebCore
[iOS, macOS] Guard against passing nullptr to vImagePremultiplyData
https://bugs.webkit.org/show_bug.cgi?id=170912
<rdar://problem/30565800>
Reviewed by Brady Eidson.
- platform/graphics/cg/ImageBufferDataCG.cpp:
(WebCore::affineWarpBufferData): Assert if we passed nullptr buffers.
(WebCore::transferData): Ditto.
(WebCore::ImageBufferData::getData): Check for nullptr data member and avoid passing to vImage routines.
(WebCore::ImageBufferData::putData): Ditto.
- 9:14 AM Changeset in webkit [215513] by
-
- 2 edits in trunk/Source/WebCore
Remove bogus assert for :not.
https://bugs.webkit.org/show_bug.cgi?id=170995
<rdar://problem/29693115>
Reviewed by Zalan Bujtas.
- css/parser/CSSSelectorParser.cpp:
- 8:51 AM Changeset in webkit [215512] by
-
- 2 edits in trunk/Source/WebKit2
Provide a way for clients to unmute a media stream.
https://bugs.webkit.org/show_bug.cgi?id=170855
<rdar://problem/31656855>
Unreviewed, fix a typo missed in the review of r215420.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _setPageMuted:]):
- 8:20 AM Changeset in webkit [215511] by
-
- 7 edits in trunk/Source
Versioning.
- 8:15 AM Changeset in webkit [215510] by
-
- 1 copy in tags/Safari-604.1.18
Tag Safari-604.1.18.
- 7:57 AM Changeset in webkit [215509] by
-
- 11 edits in trunk/Source/WebCore
[Modern Media Controls] Allow non-PNG resources
https://bugs.webkit.org/show_bug.cgi?id=170992
<rdar://problem/31706590>
Reviewed by Dean Jackson.
Instead of passing in a name and a platform to MediaControlsHost::base64StringForIconAndPlatform(),
we now pass in a name and a type to MediaControlsHost::base64StringForIconNameAndType(). We've removed
the need to provide a platform by copying the resources directly under "Resources/modern-media-controls"
insted of "Resources/modern-media-controls/platform-name-here", and now we provide a type so that it
may be passed down to -[NSBundle pathForResource:ofType:inDirectory:].
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::base64StringForIconNameAndType):
(WebCore::MediaControlsHost::base64StringForIconAndPlatform): Deleted.
- Modules/mediacontrols/MediaControlsHost.h:
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/modern-media-controls/controls/icon-service.js:
(const.iconService.new.IconService.prototype.imageForIconNameAndLayoutTraits):
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderTheme.h:
(WebCore::RenderTheme::mediaControlsBase64StringForIconNameAndType):
(WebCore::RenderTheme::mediaControlsBase64StringForIconAndPlatform): Deleted.
- rendering/RenderThemeIOS.h:
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::mediaControlsBase64StringForIconNameAndType):
(WebCore::RenderThemeIOS::mediaControlsBase64StringForIconAndPlatform): Deleted.
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconNameAndType):
(WebCore::RenderThemeMac::mediaControlsBase64StringForIconAndPlatform): Deleted.
- 6:00 AM Changeset in webkit [215508] by
-
- 2 edits in trunk/Source/WebKit2
[GTK] WebKitAutocleanups.h regression in v2.16.1 release
https://bugs.webkit.org/show_bug.cgi?id=170987
Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2017-04-19
Reviewed by Carlos Garcia Campos.
- UIProcess/API/gtk/WebKitAutocleanups.h: Remove stray semicolon.
- 5:15 AM Changeset in webkit [215507] by
-
- 3 edits2 adds in trunk
Avoid repaints for invisible animations on tumblr.com/search/aww
https://bugs.webkit.org/show_bug.cgi?id=170986
<rdar://problem/28644580>
Reviewed by Andreas Kling.
Source/WebCore:
Test: fast/repaint/mutate-non-visible.html
- rendering/style/RenderStyle.cpp:
(WebCore::requiresPainting):
(WebCore::RenderStyle::changeRequiresRepaint):
If an element is invisible it does not require repaint even if something else changes.
LayoutTests:
- fast/repaint/mutate-non-visible-expected.txt: Added.
- fast/repaint/mutate-non-visible.html: Added.
- 1:41 AM Changeset in webkit [215506] by
-
- 2 edits in trunk/Source/WebCore
Non-muxable GPUs shouldn't allow offline rendering
https://bugs.webkit.org/show_bug.cgi?id=170984
<rdar://problem/31614406>
Reviewed by Myles Maxfield.
Setting the kCGLPFAAllowOfflineRenderers flag doesn't do any
harm on devices that only have one GPU. It's also what we
want on devices that can mux between GPUs. However, we were
also setting it unconditionally on devices with multiple
GPUs that have issues muxing.
- platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::setPixelFormat): Add a test for hasMuxableGPU.
- 12:42 AM Changeset in webkit [215505] by
-
- 2 edits in trunk/Websites/perf.webkit.org
Another build fix after r215061. Clear TriggerableRepositoryGroup's static map in each iteration.
- tools/sync-buildbot.js:
(syncLoop):
Apr 18, 2017:
- 10:59 PM Changeset in webkit [215504] by
-
- 3 edits in trunk/Source/WebKit2
Dragging a few items over MiniBrowser has 0 in the red indicator.
https://bugs.webkit.org/show_bug.cgi?id=170874
Reviewed by Tim Horton.
When WebKit does not accept the drag items, the drag count badge should not be updated.
Also, if WebKit changes the drag count badge, it should be restored to its original
value when the drag exits.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):
(WebKit::WebViewImpl::draggingExited):
- 10:58 PM Changeset in webkit [215503] by
-
- 3 edits in trunk/Websites/perf.webkit.org
Build fix after r215061.
There was a mismatch between the format updateTriggerable and /api/update-triggerable were using.
Namely, each repository group was assumed to contain a name field in /api/update-triggerable
but updateTriggerable was not including that at all.
We didn't catch this because the test for updateTriggerable also used the wrong format :(
- server-tests/tools-buildbot-triggerable-tests.js:
- tools/js/buildbot-triggerable.js:
(BuildbotTriggerable.prototype.updateTriggerable):
- 9:22 PM Changeset in webkit [215502] by
-
- 8 edits in trunk
[WK2] Add infrastructure and unit tests for file uploads using data interaction
https://bugs.webkit.org/show_bug.cgi?id=170903
<rdar://problem/31314689>
Reviewed by Tim Horton.
Source/WebKit2:
See Tools/ChangeLog for more details. Makes a small adjustment to _simulateDataInteractionUpdated: to return a
BOOL indicating whether or not to allow the operation to proceed. This is necessary for testing scenarios where
multiple files are being "data interacted" onto an element. See <https://bugs.webkit.org/show_bug.cgi?id=170880>
for more details about the change this patch is testing.
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _simulateDataInteractionUpdated:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
- UIProcess/ios/WKContentViewInteraction.h:
Tools:
Adds 5 new unit tests covering different cases of uploading files through data interaction, as well as
infrastructure for simulating UIItemProviders that load file data. Makes a few adjustments to the
DataInteractionSimulator along the way, detailed in the per-method annotations below. See
<https://bugs.webkit.org/show_bug.cgi?id=170880> for more details about the change this patch is testing.
New tests:
DataInteractionTests.ExternalSourceImageToFileInput
DataInteractionTests.ExternalSourceHTMLToUploadArea
DataInteractionTests.ExternalSourceImageAndHTMLToSingleFileInput
DataInteractionTests.ExternalSourceImageAndHTMLToMultipleFileInput
DataInteractionTests.ExternalSourceImageAndHTMLToUploadArea
- TestWebKitAPI/Tests/ios/DataInteractionTests.mm:
(testIconImage):
(temporaryURLForDataInteractionFileLoad):
(cleanUpDataInteractionTemporaryPath):
Creates and tears down temporary file directories for testing data interaction.
(-[UIItemProvider registerFileRepresentationForTypeIdentifier:withData:filename:]):
(TestWebKitAPI::TEST):
- TestWebKitAPI/ios/DataInteractionSimulator.h:
- TestWebKitAPI/ios/DataInteractionSimulator.mm:
Make necessary changes to be able to test what happens when data interaction ends over an element with no
operation. Previously, we would always simulate performing a data interaction operation when ending the
simulation, but this causes us to wait indefinitely for a data operation response to arrive in the UI process.
Instead, we need to note whether or not the content view is allowing data interaction, and only perform an
operation and wait for the -didPerform call if the operation was allowed. Otherwise, we immediately transition
the phase to Cancelled and end the run.
(-[DataInteractionSimulator _resetSimulatedState]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _concludeDataInteractionAndPerformOperationIfNecessary]):
(-[DataInteractionSimulator _advanceProgress]):
(-[DataInteractionSimulator externalItemProviders]):
(-[DataInteractionSimulator setExternalItemProviders:]):
Previously, we hard-coded DataInteractionSimulator to only support a single external item provider. In order to
test the scenario where multiple files are being "data interacted" into a file-type input, we generalize this to
take multiple item providers.
(-[DataInteractionSimulator externalItemProvider]): Deleted.
(-[DataInteractionSimulator setExternalItemProvider:]): Deleted.
- 9:01 PM Changeset in webkit [215501] by
-
- 6 edits in trunk/Source/WebCore
RTCOfferOptions iceRestart should be supported
https://bugs.webkit.org/show_bug.cgi?id=170966
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-18
Reviewed by Alex Christensen.
No ability to test iceRestart as of now.
Passing iceRestart value to libwebrtc.
Passing also voiceActivityDetection value to libwebrtc.
Updating mock to use the new overloaded CreateOffer method.
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
- Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
(WebCore::LibWebRTCPeerConnectionBackend::doCreateOffer):
- Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
(WebCore::LibWebRTCMediaEndpoint::doCreateOffer):
- testing/MockLibWebRTCPeerConnection.cpp:
(WebCore::MockLibWebRTCPeerConnection::CreateOffer):
- testing/MockLibWebRTCPeerConnection.h:
- 8:29 PM Changeset in webkit [215500] by
-
- 3 edits in trunk/Source/ThirdParty/ANGLE
Add the actual content to the files, now that
SVN knows they can have tabs.
- src/third_party/murmurhash/MurmurHash3.cpp:
- src/third_party/murmurhash/MurmurHash3.h:
- 8:27 PM Changeset in webkit [215499] by
-
- 1 edit4 adds in trunk/Source/ThirdParty/ANGLE
WinCairo needs these files I recently removed
from our copy of ANGLE.
- src/third_party/murmurhash/LICENSE: Added.
- src/third_party/murmurhash/MurmurHash3.cpp: Added.
- src/third_party/murmurhash/MurmurHash3.h: Added.
- 8:22 PM Changeset in webkit [215498] by
-
- 23 edits in trunk/Source
[WK2] Support DataTransfer::files() when performing a DHTML data interaction
https://bugs.webkit.org/show_bug.cgi?id=170880
<rdar://problem/31314689>
Reviewed by Tim Horton.
Source/WebCore:
Adds support for fetching files from the DataTransfer when performing a data interaction operation handled by
JavaScript. There are two changes we make here to achieve this:
First, we teach the Pasteboard on iOS to know what file paths hold the item provider contents used in the
current data interaction operation. On iOS, Pasteboard::readFilenames is currently hard-coded to return an empty
vector. To fix this, we add logic to the iOS Pasteboard to remember what the paths of all files that were
successfully loaded from item providers as the data interaction is taking place. This ensures that at the
WebCore layer, the implementation of Pasteboard::readFilenames on Mac and iOS is similar -- they both call out
to the client layer in order to read file paths off of their respective pasteboards. Once in the client layer
(WebKit1 or WebKit2) we then call into PlatformPasteboard::filenamesForDataInteraction, which then calls into
WebItemProviderPasteboard if applicable.
The second tweak is to propagate information about whether the document is preventing default data interaction
behavior to the client layer. This prevents us from having to save pasteboard content when performing data
interaction in cases where file information is not needed (i.e. the default behavior is being performed, and
the target is not a file input). This also avoids compatibility issues with insertion animations when performing
data interaction in editable areas, due to the extra time spent loading item provider data into a temporary
file.
Unit tests in <https://bugs.webkit.org/show_bug.cgi?id=170903>.
- page/DragController.cpp:
(WebCore::DragController::DragController):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::dragEnteredOrUpdated):
(WebCore::DragController::tryDocumentDrag):
Refactor DragController::tryDocumentDrag to return a DragHandlingMethod. This method currently returns either
true or false; this patch changes it to return a DragHandlingMethod, which is either None (the equivalent of
returning false before the patch), Default (indicating that the drop destination is allowing default handling),
or NonDefault, which indicates that the drop destination has explicitly prevented default.
- page/DragController.h:
(WebCore::DragController::documentIsHandlingNonDefaultDrag):
Used by WebPage when sending an IPC response after handling dragentered or dragupdated.
- platform/PasteboardStrategy.h:
- platform/PlatformPasteboard.h:
- platform/ios/AbstractPasteboard.h:
- platform/ios/PasteboardIOS.mm:
(WebCore::Pasteboard::readFilenames):
- platform/ios/PlatformPasteboardIOS.mm:
(WebCore::PlatformPasteboard::filenamesForDataInteraction):
- platform/ios/WebItemProviderPasteboard.h:
- platform/ios/WebItemProviderPasteboard.mm:
WebItemProviderPasteboard now remembers the file URLs of successfully loaded item provider content when a data
interaction is being performed. The new filenamesForDataInteraction property returns the array of data
interaction file URLs which have been propagated to the web process along with sandbox extensions. This state
is cleaned up when list of item providers change (i.e. when the data interaction operation is finished, or if
the web content process crashes, etc.)
(-[WebItemProviderPasteboard init]):
(-[WebItemProviderPasteboard setItemProviders:]):
(-[WebItemProviderPasteboard filenamesForDataInteraction]):
(-[WebItemProviderPasteboard doAfterLoadingProvidedContentIntoFileURLs:]):
Source/WebKit/mac:
Adjust for a change in PasteboardStrategy. See WebCore ChangeLog for more details.
- WebCoreSupport/WebPlatformStrategies.h:
- WebCoreSupport/WebPlatformStrategies.mm:
(WebPlatformStrategies::getFilenamesForDataInteraction):
Source/WebKit2:
See the WebCore ChangeLog for more details.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getFilenamesForDataInteraction):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didPerformDragControllerAction):
(WebKit::WebPageProxy::resetCurrentDragInformation):
- UIProcess/WebPageProxy.h:
(WebKit::WebPageProxy::documentIsHandlingNonDefaultDrag):
- UIProcess/WebPageProxy.messages.in:
Adds an IPC argument to DidPerformDragControllerAction specifying whether the page prevented the default behavior.
- UIProcess/WebPasteboardProxy.h:
- UIProcess/WebPasteboardProxy.messages.in:
Adds IPC plumbing for the new filenamesForDataInteraction Pasteboard codepath.
- WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
(WebKit::WebPlatformStrategies::getFilenamesForDataInteraction):
- WebProcess/WebCoreSupport/WebPlatformStrategies.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::performDragControllerAction):
- 7:12 PM Changeset in webkit [215497] by
-
- 2 edits in trunk/Source/WebCore
Cairo build fix.
https://bugs.webkit.org/show_bug.cgi?id=170941
- platform/graphics/cairo/GraphicsContext3DCairo.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- 7:10 PM Changeset in webkit [215496] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Still trying to fix Windows.
- PlatformWin.cmake:
- 6:56 PM Changeset in webkit [215495] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Attempt to fix the Windows build.
- PlatformWin.cmake:
- 6:51 PM Changeset in webkit [215494] by
-
- 8 edits in trunk/Source/ThirdParty/libwebrtc
Add NDEBUG and CodeStripping to libwebrtc build system
https://bugs.webkit.org/show_bug.cgi?id=170954
Patch by Youenn Fablet <youenn@apple.com> on 2017-04-18
Reviewed by Alex Christensen.
This optimizes libwebrtc library size and efficiency.
This allows allocating libwebrtc objects in WebCore without issues.
- Configurations/Base.xcconfig:
- Configurations/boringssl.xcconfig:
- Configurations/libsrtp.xcconfig:
- Configurations/libwebrtc.xcconfig:
- Configurations/libwebrtcpcrtc.xcconfig:
- Configurations/opus.xcconfig:
- Configurations/usrsctp.xcconfig:
- 6:46 PM Changeset in webkit [215493] by
-
- 2 edits in trunk/Source/WebCore
Rebaseline bindings tests after r215486.
Unreviewed test gardening.
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjOnfooGetter):
(WebCore::jsTestObjOnwebkitfooGetter):
- 6:22 PM Changeset in webkit [215492] by
-
- 2 edits in trunk/Source/WebCore
Attempted build fix. Add/remove some files from ANGLE.
- CMakeLists.txt:
- 6:07 PM Changeset in webkit [215491] by
-
- 9 edits2 adds in trunk
Resource Load Statistics: Check both origins and cookieHostNames for domain matches in data removal
https://bugs.webkit.org/show_bug.cgi?id=170763
<rdar://problem/31573091>
Reviewed by Alex Christensen.
Source/WebKit2:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyControlledDomainsInAllPersistentDataStores):
Move semantics for topPrivatelyControlledDomains vector.
(WebKit::WebProcessProxy::deleteWebsiteDataForTopPrivatelyOwnedDomainsInAllPersistentDataStores): Deleted.
Renamed 'PrivatelyControlled' instead of 'PrivatelyOwned.'
- UIProcess/WebProcessProxy.h:
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
Move semantics for prevalentResourceDomains vector.
- UIProcess/WebsiteData/WebsiteDataRecord.cpp:
(WebKit::hostIsInDomain):
Static convenience function.
(WebKit::WebsiteDataRecord::matchesTopPrivatelyControlledDomain):
Checks for matching cookieHostNames if types contains WebsiteDataType::Cookies.
Also checks origins.
- UIProcess/WebsiteData/WebsiteDataRecord.h:
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyControlledDomains):
Now makes use of the new function
WebKit::WebsiteDataRecord::validForTopPrivatelyControlledDomain().
(WebKit::WebsiteDataStore::removeDataForTopPrivatelyControlledDomains):
Move semantics for topPrivatelyControlledDomains vector.
(WebKit::WebsiteDataStore::fetchDataForTopPrivatelyOwnedDomains): Deleted.
Renamed 'PrivatelyControlled' instead of 'PrivatelyOwned.'
(WebKit::WebsiteDataStore::removeDataForTopPrivatelyOwnedDomains): Deleted.
Renamed 'PrivatelyControlled' instead of 'PrivatelyOwned.'
- UIProcess/WebsiteData/WebsiteDataStore.h:
LayoutTests:
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion-expected.txt: Added.
- http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html: Added.
- 5:37 PM Changeset in webkit [215490] by
-
- 594 edits1 copy5 moves67 adds258 deletes in trunk
Update ANGLE
https://bugs.webkit.org/show_bug.cgi?id=170941
<rdar://problem/31633999>
Reviewed by Alex Christensen.
Source/ThirdParty/ANGLE:
Huge list of changed files omitted.
Source/WebCore:
- platform/graphics/ANGLEWebKitBridge.cpp:
(WebCore::getSymbolInfo):
(WebCore::ANGLEWebKitBridge::ANGLEWebKitBridge):
(WebCore::ANGLEWebKitBridge::cleanupCompilers):
(WebCore::ANGLEWebKitBridge::compileShaderSource):
- platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
(WebCore::GraphicsContext3D::checkVaryingsPacking):
LayoutTests:
- fast/canvas/webgl/fragment-shader-assertion-expected.txt:
- 5:04 PM Changeset in webkit [215489] by
-
- 4 edits in trunk
Make WebCore::topPrivatelyControlledDomain() return "localhost" for localhost
https://bugs.webkit.org/show_bug.cgi?id=170798
<rdar://problem/31595108>
Reviewed by Alex Christensen.
Source/WebCore:
API test augmented.
- platform/mac/PublicSuffixMac.mm:
(WebCore::topPrivatelyControlledDomain):
Now returns the lowercase top privately controlled
domain including "localhost" for the host localhost.
Tools:
- TestWebKitAPI/Tests/mac/PublicSuffix.mm:
(TestWebKitAPI::TEST_F):
Added two negative test cases for WebCore::isPublicSuffix().
Added test cases with mixed case domains, localhost, and
non-ASCII for WebCore::topPrivatelyControlledDomain().
- 4:38 PM Changeset in webkit [215488] by
-
- 4 edits1 add in trunk/Source/WebKit2
[iOS][WK2] Prevent ephemeral files from being backed up
https://bugs.webkit.org/show_bug.cgi?id=170963
<rdar://problem/30470332>
Reviewed by Brady Eidson.
Tell the OS to skip temporary data files when performing backups.
- UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm: Added.
(WebKit::WebResourceLoadStatisticsStore::platformExcludeFromBackup): Added.
- UIProcess/WebResourceLoadStatisticsStore.cpp:
(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):
(WebKit::WebResourceLoadStatisticsStore::platformExcludeFromBackup): Add stub for
non-iOS platforms.
- UIProcess/WebResourceLoadStatisticsStore.h:
- WebKit2.xcodeproj/project.pbxproj: Add new file.
- 4:34 PM Changeset in webkit [215487] by
-
- 3 edits in trunk/Source/WebCore
JSEventListener::m_isolatedWorld should be a Ref
https://bugs.webkit.org/show_bug.cgi?id=170910
<rdar://problem/30470332>
Reviewed by Alex Christensen.
Since m_isolatedWorld should never be nullptr, change the implementation of m_isolatedWorld
from a RefPtr to a Ref, and adjust the various call sites to support this change.
This should help us catch any changes that permit the isolatedWorld to be set to nullptr.
No new tests since there should be no change in behavior.
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::JSEventListener):
(WebCore::JSEventListener::initializeJSFunction):
(WebCore::JSEventListener::handleEvent):
- bindings/js/JSEventListener.h:
(WebCore::JSEventListener::cast):
(WebCore::JSEventListener::isolatedWorld):
(WebCore::JSEventListener::jsFunction):
- 4:27 PM Changeset in webkit [215486] by
-
- 14 edits4 adds in trunk
Correct handling of isolatedWorld in event handling
https://bugs.webkit.org/show_bug.cgi?id=65589
<rdar://problem/24097804>
Reviewed by Geoffrey Garen.
Source/WebCore:
This patch was inspired by Adam's original patch as well as the
following Blink change:
https://src.chromium.org/viewvc/blink?revision=152377&view=revision
Thread isolatedWorld state through event handling logic.
Tests: fast/dom/event-attrs-isolated-world.html
http/tests/security/isolatedWorld/onclick-attribute.html
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::initializeJSFunction):
(WebCore::JSEventListener::world):
(WebCore::eventHandlerAttribute):
(WebCore::setEventHandlerAttribute):
(WebCore::windowEventHandlerAttribute):
(WebCore::setWindowEventHandlerAttribute):
(WebCore::documentEventHandlerAttribute):
(WebCore::setDocumentEventHandlerAttribute):
- bindings/js/JSEventListener.h:
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
- dom/Document.cpp:
(WebCore::Document::setWindowAttributeEventListener):
(WebCore::Document::getWindowAttributeEventListener):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::setAttributeEventListener):
- dom/EventTarget.cpp:
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::attributeEventListener):
- dom/EventTarget.h:
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::ReplacementFragment):
- html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::parseAttribute):
- html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseAttribute):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseAttribute):
LayoutTests:
This following test cases are from the following Blink change:
https://src.chromium.org/viewvc/blink?revision=152377&view=revision
- fast/dom/event-attrs-isolated-world-expected.txt: Added.
- fast/dom/event-attrs-isolated-world.html: Added.
- http/tests/security/isolatedWorld/onclick-attribute-expected.txt: Added.
- http/tests/security/isolatedWorld/onclick-attribute.html: Added.
- 4:14 PM Changeset in webkit [215485] by
-
- 3 edits in trunk/Source/WebCore
Deadlock in CoreAudioCaptureSource
https://bugs.webkit.org/show_bug.cgi?id=170771
rdar://problem/31578919
Patch by Jeremy Jones <jeremyj@apple.com> on 2017-04-18
Reviewed by Eric Carlson.
Fixes a regression introduced by r215201.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
- 4:12 PM Changeset in webkit [215484] by
-
- 4 edits2 adds in trunk
[WK2] Cannot select text on nytimes.com when the selection granularity is WKSelectionGranularityCharacter
https://bugs.webkit.org/show_bug.cgi?id=170968
<rdar://problem/31692560>
Reviewed by Dan Bernstein.
Source/WebKit2:
Makes a small adjustment to textInteractionGesture:shouldBeginAtPoint:. When determining whether to allow the
text interaction assistant to recognize at a given point, instead of depending on whether or not the hit node is
the same as the assisted node, only enforce this restriction when editing an assisted node. Otherwise, default
to allowing the selection gesture.
Note that character granularity selection was working on most pages before, due to the fact that
nodeAtPositionIsAssistedNode was true in many cases when there is no assisted node at all. This is because, in
WebPage.mm, we compute the hit-tested node responding to click events to be null, and then set
nodeAtPositionIsAssistedNode to be equal to hitNode == m_assistedNode, which ends up being true because both of
these values are null.
This allowed text selection to work in the simple case when selection granularity character is used, but not
when the node containing the selected point actually does respond to click events, since the comparison returns
false.
New layout test: LayoutTests/editing/selection/character-granularity-select-text-with-click-handler.html.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
LayoutTests:
Adds a new layout test checking that text within a node with a click handler can be selected when using
character selection granularity.
- editing/selection/character-granularity-select-text-with-click-handler-expected.txt: Added.
- editing/selection/character-granularity-select-text-with-click-handler.html: Added.
- 3:58 PM Changeset in webkit [215483] by
-
- 3 edits in branches/safari-603-branch/LayoutTests
Land LayoutTest changes for rdar://problem/31636547.
- fast/forms/range/range-drag-when-toggled-disabled-expected.txt:
- fast/forms/range/range-drag-when-toggled-disabled.html:
- 3:34 PM Changeset in webkit [215482] by
-
- 6 edits2 adds in trunk
r211670 broke double to int conversion.
https://bugs.webkit.org/show_bug.cgi?id=170961
<rdar://problem/31687696>
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/double-to-int32.js: Added.
- stress/to-int32-sensible2.js: Added.
Source/JavaScriptCore:
This is because operationToInt32SensibleSlow() assumes that left shifts of greater
than 31 bits on an 31-bit value will produce a 0. However, the spec says that
"if the value of the right operand is negative or is greater or equal to the
number of bits in the promoted left operand, the behavior is undefined."
See http://en.cppreference.com/w/cpp/language/operator_arithmetic#Bitwise_shift_operators.
This patch fixes this by restoring the check to prevent a shift of greater than
31 bits. It also consolidates the optimization in operationToInt32SensibleSlow()
back into toInt32() so that we don't have 2 copies of the same code with only a
slight variation.
JSC benchmarks shows that performance is neutral with this patch.
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileValueToInt32):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
- runtime/MathCommon.cpp:
(JSC::operationToInt32SensibleSlow): Deleted.
- runtime/MathCommon.h:
(JSC::toInt32):
- 3:28 PM Changeset in webkit [215481] by
-
- 2 edits in trunk/Source/WebKit2
Add additional information when logging URL disposition in WebLoaderStrategy::scheduleLoad
https://bugs.webkit.org/show_bug.cgi?id=170813
Reviewed by Alex Christensen.
There are a few logging statements in WebLoaderStrategy::scheduleLoad
that report, for example, "URL will be loaded as data". These
statements also log the address of the frame doing the loading and the
identifier of the resource. For consistency with other logging and to
make scripted analysis of the logs more robust, also include the
pageID and frameID in the logging.
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::scheduleLoad):
- 3:22 PM Changeset in webkit [215480] by
-
- 7 edits in trunk/Source
Stop using deprecated APIs, part 2
https://bugs.webkit.org/show_bug.cgi?id=170965
Source/WebCore:
rdar://problem/31589635
Reviewed by Tim Horton.
- Modules/applepay/ApplePaySession.cpp:
(WebCore::convertAndValidate):
No need to convert the status anymore.
(WebCore::ApplePaySession::completeShippingContactSelection):
Create an ApplePayError given the status.
- Modules/applepay/ApplePayShippingContactUpdate.h:
Remove the status member variable.
- Modules/applepay/PaymentRequest.h:
Remove the status member variable.
Source/WebKit2:
Reviewed by Tim Horton.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::ShippingContactUpdate>::encode):
(IPC::ArgumentCoder<WebCore::ShippingContactUpdate>::decode):
Remove the status member variable.
- UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
(WebKit::status):
New function to be used by older OSes. This will recreate a PKPaymentAuthorizationStatus given a ShippingContactUpdate.
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
Stop using the deprecated API.
- 1:59 PM Changeset in webkit [215479] by
-
- 2 edits in trunk/Source/WebCore
Safari crash when clicking phone number data detector popover button
https://bugs.webkit.org/show_bug.cgi?id=170936
<rdar://problem/31416570>
Reviewed by Wenson Hsieh.
- platform/spi/mac/DataDetectorsSPI.h:
Soft-link the phone number key from the correct framework.
- 1:37 PM Changeset in webkit [215478] by
-
- 2 edits in trunk/LayoutTests
[mac-wk1 Debug] LayoutTest http/tests/inspector/network/resource-sizes-network.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=170953
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
Mark a flakey test in WebKit1.
- 1:35 PM Changeset in webkit [215477] by
-
- 48 edits in trunk
[WebIDL] Make annotated types first class allowing them to be used in sequences and unions
https://bugs.webkit.org/show_bug.cgi?id=170926
Reviewed by Chris Dumez.
Source/WebCore:
- Adds IDL types for WebIDL annotated types:
[Clamp] T -> IDLClampAdaptor<T>
[EnforceRange] T -> IDLEnforceRangeAdaptor<T>
[TreatNullAs=EmptyString] T -> IDLTreatNullAsEmptyAdaptor<T>
- Adds additional adaptors for existing specializations
[AtomicString] T -> IDLAtomicStringAdaptor<T>
[RequiresExistingAtomicString] T -> IDLRequiresExistingAtomicStringAdaptor<T>
- Removes the need for IntegerConversionConfiguration and StringConversionConfiguration overloads of convert().
- Allows the use of annotated types as subtypes, such as in sequences and unions.
- bindings/IDLTypes.h:
Add new types:
- IDLClampAdaptor
- IDLEnforceRangeAdaptor
- IDLTreatNullAsEmptyAdaptor
- IDLAtomicStringAdaptor
- IDLRequiresExistingAtomicStringAdaptor
Add new predicates for matching strings and strings/enumerations.
- bindings/js/JSDOMConvertNullable.h:
Remove now unnecessary overloads of convert that took IntegerConversionConfiguration
and StringConversionConfiguration.
- bindings/js/JSDOMConvertNumbers.cpp:
- bindings/js/JSDOMConvertNumbers.h:
Replace individually named conversion functions with explicit template specializations
based on type.
(WebCore::Converter<IDLByte>::convert):
(WebCore::Converter<IDLOctet>::convert):
(WebCore::Converter<IDLShort>::convert):
(WebCore::Converter<IDLUnsignedShort>::convert):
(WebCore::Converter<IDLLong>::convert):
(WebCore::Converter<IDLUnsignedLong>::convert):
(WebCore::Converter<IDLLongLong>::convert):
(WebCore::Converter<IDLUnsignedLongLong>::convert):
Simplify convert functions for normal integer converters to only handle
the normal case.
(WebCore::Converter<IDLClampAdaptor<T>>::convert):
(WebCore::JSConverter<IDLClampAdaptor<T>>::convert):
(WebCore::Converter<IDLEnforceRangeAdaptor<T>>::convert):
(WebCore::JSConverter<IDLEnforceRangeAdaptor<T>>::convert):
Add converters for the new annotated types that call into the new
template specialized conversion functions.
- bindings/js/JSDOMConvertStrings.h:
(WebCore::Converter<IDLDOMString>::convert):
(WebCore::Converter<IDLByteString>::convert):
(WebCore::Converter<IDLUSVString>::convert):
Remove no longer needed StringConversionConfiguration parameter.
(WebCore::Converter<IDLTreatNullAsEmptyAdaptor<T>>::convert):
(WebCore::JSConverter<IDLTreatNullAsEmptyAdaptor<T>>::convert):
(WebCore::Converter<IDLAtomicStringAdaptor<T>>::convert):
(WebCore::JSConverter<IDLAtomicStringAdaptor<T>>::convert):
(WebCore::Converter<IDLRequiresExistingAtomicStringAdaptor<T>>::convert):
(WebCore::JSConverter<IDLRequiresExistingAtomicStringAdaptor<T>>::convert):
Add converters for new annotated types. Statically assert that the atomic string
adaptors only work for DOMString at present.
- bindings/js/JSDOMConvertUnion.h:
Update union code to fix a long standing FIXME, treating enumerations as strings
for the purposes of the union algorithm, and using the new predicate that works
with the slightly more complicated IDLString type (e.g. it can now either be a String
or an AtomicString).
- bindings/js/JSCSSStyleDeclarationCustom.cpp:
- bindings/js/JSCryptoAlgorithmDictionary.cpp:
- bindings/js/JSDocumentCustom.cpp:
- bindings/js/JSEventListener.cpp:
- bindings/js/JSHTMLCanvasElementCustom.cpp:
- bindings/js/JSMockContentFilterSettingsCustom.cpp:
- bindings/js/JSNodeFilterCustom.cpp:
- bindings/js/JSSubtleCryptoCustom.cpp:
Remove explicit passing of Normal for the conversion configuration
and use new adaptors where appropriate.
- bindings/scripts/CodeGeneratorJS.pm:
(IsAnnotatedType):
(GetAnnotatedIDLType):
(GetIDLType):
(JSValueToNative):
(UnsafeToNative):
(GetIntegerConversionConfiguration): Deleted.
(GetStringConversionConfiguration): Deleted.
Replace passing conversion configuration and specializing for atomic string
with annotated types.
- bindings/scripts/IDLParser.pm:
(parseUnionMemberType):
Fix parser error where we weren't parsing extended attributes for a union correctly.
- bindings/scripts/test/JS/JSMapLike.cpp:
- bindings/scripts/test/JS/JSReadOnlyMapLike.cpp:
- bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
- bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
- bindings/scripts/test/JS/JSTestDOMJIT.cpp:
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
- bindings/scripts/test/JS/JSTestGlobalObject.cpp:
- bindings/scripts/test/JS/JSTestInterface.cpp:
- bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
- bindings/scripts/test/JS/JSTestNode.cpp:
- bindings/scripts/test/JS/JSTestObj.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
- bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
- bindings/scripts/test/JS/JSTestSerialization.cpp:
- bindings/scripts/test/JS/JSTestSerializationInherit.cpp:
- bindings/scripts/test/JS/JSTestSerializationInheritFinal.cpp:
- bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
Update tests for changes to integer and string conversion.
- domjit/DOMJITIDLConvert.h:
- domjit/DOMJITIDLType.h:
- domjit/DOMJITIDLTypeFilter.h:
Add specializations for AtomicString related adaptors.
- testing/TypeConversions.h:
- testing/TypeConversions.idl:
- Re-arrange integer attributes to be in size order, and add [Clamp] variants.
- Replace function taking a dictionary + attributes to inspect it with a dictionary attribute. This has been supported for a while and makes the test much clearer (this includes the enum used for inspecting the union in the dictionary).
- Add additional test unions that exercise annotated types as subtypes.
- Add additional dictionary items that exercise annotated types as subtypes.
LayoutTests:
- js/dom/webidl-type-mapping-expected.txt:
- js/dom/webidl-type-mapping.html:
Update test to account for testDictionary now being an attribute,
and test that the annotated type members behave correctly.
- 12:35 PM Changeset in webkit [215476] by
-
- 49 edits13 adds in trunk
[ES6]. Implement Annex B.3.3 function hoisting rules for eval
https://bugs.webkit.org/show_bug.cgi?id=163208
Reviewed by Saam Barati.
JSTests:
- stress/eval-func-decl-block-scoping-reassign.js: Added.
(assert):
(throw.new.Error.f):
(throw.new.Error):
- stress/eval-func-decl-block-with-remove.js: Added.
(assert):
(foo.boo):
(foo):
- stress/eval-func-decl-block-with-var-and-remove.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(joo):
(koo):
- stress/eval-func-decl-block-with-var-sinthesize.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(hoo):
(joo):
(koo):
- stress/eval-func-decl-in-block-scope-and-bind-to-top-eval-scope.js: Added.
- stress/eval-func-decl-in-eval-within-block-with-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
- stress/eval-func-decl-in-eval-within-with-scope.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(boo.let.val2):
(boo.let.val3):
- stress/eval-func-decl-in-frozen-global.js: Added.
(assert):
(assertThrow):
(throw.new.Error):
(Object.freeze):
- stress/eval-func-decl-in-global-of-eval.js: Added.
(assert):
(assertThrow):
(bar):
(baz):
(foobar):
- stress/eval-func-decl-in-global.js: Added.
(assert):
(assertThrow):
- stress/eval-func-decl-in-if.js: Added.
(assert):
- stress/eval-func-decl-within-eval-with-reassign-to-var.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(foobar):
(hoo):
(joo):
(koo):
(loo):
- stress/eval-func-decl-within-eval-without-reassign-to-let.js: Added.
(assert):
(assertThrow):
(foo):
(boo):
(goo):
- stress/variable-under-tdz-eval-tricky.js:
(assert):
- test262.yaml:
Source/JavaScriptCore:
Current patch implements Annex B.3.3 that is related to
hoisting of function declaration in eval.
https://tc39.github.io/ecma262/#sec-web-compat-evaldeclarationinstantiation
Function declaration in eval should create variable with
function name in function scope where eval is invoked
or bind to variable if it declared outside of the eval.
If variable is created it can be removed by 'delete a;' command.
If eval is invoke in block scope that contains let/const
variable with the same name as function declaration
we do not bind. This patch leads to the following behavior:
function foo() {
{
print(boo); undefined
eval('{ function boo() {}}');
print(boo); function boo() {}
}
print(boo); function boo() {}
}
function foobar() {
{
let boo = 10;
print(boo); 10;
eval('{ function boo() {}}');
print(boo); 10;
}
print(boo) 10
}
function bar() {
{
var boo = 10;
print(boo); 10
eval('{ function boo() {} }');
print(boo); function boo() {}
}
print(boo); function boo() {}
}
function bas() {
{
let boo = 10;
eval(' { function boo() {} } ');
print(boo); 10
}
print(boo); Reference Error
}
Current implementation relies on already implemented
'hoist function in sloppy mode' feature, with small changes.
In short it works in following way: during hoisting of function
with name S in eval, we are looking for first scope that
contains space for variable with name S and if this scope
has var type we bind function there
To implement this feature was added bytecode ops:
op_resolve_scope_for_hoisting_func_decl_in_eval - get variable scope
or return undefined if variable can't be binded there.
There is a corner case, hoist function in eval within catch block,
that is not covered by this patch, and will be fixed in
https://bugs.webkit.org/show_bug.cgi?id=168184
- bytecode/BytecodeDumper.cpp:
(JSC::BytecodeDumper<Block>::dumpBytecode):
- bytecode/BytecodeList.json:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::finalizeLLIntInlineCaches):
- bytecode/EvalCodeBlock.h:
(JSC::EvalCodeBlock::functionHoistingCandidate):
(JSC::EvalCodeBlock::numFunctionHoistingCandidates):
- bytecode/UnlinkedEvalCodeBlock.h:
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::hoistSloppyModeFunctionIfNecessary):
(JSC::BytecodeGenerator::emitResolveScopeForHoistingFuncDeclInEval):
- bytecompiler/BytecodeGenerator.h:
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGNode.h:
(JSC::DFG::Node::hasIdentifier):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileResolveScopeForHoistingFuncDeclInEval):
- dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::callOperation):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScopeForHoistingFuncDeclInEval):
- interpreter/Interpreter.cpp:
(JSC::Interpreter::execute):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval):
- llint/LowLevelInterpreter.asm:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseFunctionDeclarationStatement):
- parser/Parser.h:
(JSC::Scope::getSloppyModeHoistedFunctions):
(JSC::Parser::declareFunction):
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/EvalExecutable.h:
(JSC::EvalExecutable::numFunctionHoistingCandidates):
(JSC::EvalExecutable::numTopLevelFunctionDecls):
(JSC::EvalExecutable::numberOfFunctionDecls): Deleted.
- runtime/JSScope.cpp:
(JSC::JSScope::resolve):
(JSC::JSScope::resolveScopeForHoistingFuncDeclInEval):
- runtime/JSScope.h:
LayoutTests:
- inspector/runtime/evaluate-CommandLineAPI-expected.txt:
- inspector/runtime/evaluate-CommandLineAPI.html:
- js/parser-syntax-check-expected.txt:
- js/script-tests/parser-syntax-check.js:
- 12:27 PM Changeset in webkit [215475] by
-
- 3 edits in trunk/JSTests
wasm/function-tests/memory-multiagent times out sometimes
https://bugs.webkit.org/show_bug.cgi?id=170958
Reviewed by Keith Miller.
Add the ability to skip tests easily. Skip the test.
- wasm.yaml:
- wasm/function-tests/memory-multiagent.js:
- 12:02 PM Changeset in webkit [215474] by
-
- 8 edits in trunk
JSTests:
Follow up to debug build stack overflow in test after r215453
Rubber stamped by Mark Lam.
- stress/call-apply-exponential-bytecode-size.js: Decrease the call
size to prevent stack overflow errors on debug builds.
Source/JavaScriptCore:
Follow up to address Mark's comments after r215453
Rubber stamped by Mark Lam.
This patch chooses better names for things, adhering to Mark's suggestions
in https://bugs.webkit.org/show_bug.cgi?id=139847
- bytecompiler/NodesCodegen.cpp:
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
- parser/NodeConstructors.h:
(JSC::CallFunctionCallDotNode::CallFunctionCallDotNode):
(JSC::ApplyFunctionCallDotNode::ApplyFunctionCallDotNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::recordCallOrApplyDepth):
(JSC::Parser<LexerType>::parseMemberExpression):
- parser/Parser.h:
(JSC::Parser::CallOrApplyDepthScope::CallOrApplyDepthScope):
(JSC::Parser::CallOrApplyDepthScope::distanceToInnermostChild):
(JSC::Parser::CallOrApplyDepthScope::~CallOrApplyDepthScope):
(JSC::Parser::CallOrApplyDepth::CallOrApplyDepth): Deleted.
(JSC::Parser::CallOrApplyDepth::maxChildDepth): Deleted.
(JSC::Parser::CallOrApplyDepth::~CallOrApplyDepth): Deleted.
- 11:50 AM Changeset in webkit [215473] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: XHR breakpoints shouldn't be cleared from the sidebar on reload
https://bugs.webkit.org/show_bug.cgi?id=170930
Reviewed by Joseph Pecoraro.
XHR breakpoints aren't associated with the main resource, and shouldn't
be cleared from the manager or sidebar UI When the main resource changes.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
- UserInterface/Controllers/XHRBreakpointTreeController.js:
(WebInspector.XHRBreakpointTreeController):
(WebInspector.XHRBreakpointTreeController.prototype._mainResourceDidChange): Deleted.
- 11:06 AM Changeset in webkit [215472] by
-
- 4 edits4 adds in trunk
[DFG] Convert ValueAdd(Int32, String) => MakeRope(ToString(Int32), String)
https://bugs.webkit.org/show_bug.cgi?id=170943
Reviewed by Geoffrey Garen.
JSTests:
- microbenchmarks/number-to-string-with-add-empty.js: Added.
(toStringLeft):
(toStringRight):
- microbenchmarks/number-to-string-with-add-in-loop.js: Added.
(toStringLeft):
(toStringRight):
- microbenchmarks/number-to-string-with-add.js: Added.
(toStringLeft):
(toStringRight):
- stress/number-to-string-with-add.js: Added.
(shouldBe):
(toStringRight):
(toStringLeftEmpty):
(toStringRightEmpty):
Source/JavaScriptCore:
This patch converts ValueAdd(Int32, String) to MakeRope(ToString(Int32), String).
This has 2 great features.
- MakeRope(ToString(Int32), String) is less clobbering.
While ValueAdd ends up calling functions, VM knows much about MakeRope(ToString(Int32), String)
and VM knows it is less clobbering. It encourages LICM and other operations that is conservatively
executed because of ValueAdd's clobbering.
- Simply, MakeRope(ToString(Int32), String) is faster than ValueAdd.
While ValueAdd ends up calling a generic function, our ToString(Int32) calls well-optimized toString
operation. And later, MakeRope can fall into the fast path that just takes a string from a free list.
It is simply faster than ValueAdd.
We ensure that this patch shows performance improvement in attached benchmarks.
baseline patched
number-to-string-with-add-empty 16.2763+-3.3930 10.3142+-1.0967 definitely 1.5780x faster
number-to-string-with-add-in-loop 168.7621+-10.9738 15.5307+-3.3179 definitely 10.8664x faster
number-to-string-with-add 18.8557+-4.8292 11.6901+-2.5650 might be 1.6130x faster
In SixSpeed,
baseline patched
template_string_tag.es5 200.1027+-20.6871 25.7925+-11.4052 definitely 7.7582x faster
template_string_tag.es6 331.3913+-12.1750 286.6958+-26.0441 definitely 1.1559x faster
for-of-array.es5 412.4344+-23.2517 272.8707+-47.2118 definitely 1.5115x faster
for-of-array.es6 504.0082+-65.5045 300.3277+-12.8193 definitely 1.6782x faster
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::createToString):
- dfg/DFGPredictionPropagationPhase.cpp:
- 10:54 AM Changeset in webkit [215471] by
-
- 2 edits in trunk/Source/JavaScriptCore
REGRESSION(215272): microbenchmark/seal-and-do-work and microbenchmark/freeze-and-do-work are 27x slower
https://bugs.webkit.org/show_bug.cgi?id=170881
Reviewed by Saam Barati.
- runtime/ObjectConstructor.cpp:
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
Restored fast paths for final objects that don't have indexed properties.
- 10:34 AM Changeset in webkit [215470] by
-
- 3 edits in trunk/Tools
Unreviewed, rolling out r215346 and 215361.
The problem these changes were fixing was addressed in
<https://trac.webkit.org/changeset/215416/webkit>.
Reverted changesets:
"webkitpy: Ignore previously launched pid when system is under
stress"
https://bugs.webkit.org/show_bug.cgi?id=170741
http://trac.webkit.org/changeset/215346
http://trac.webkit.org/changeset/215361
- 10:31 AM Changeset in webkit [215469] by
-
- 10 edits2 adds in trunk
Enable optimized layer flushes on iOS
https://bugs.webkit.org/show_bug.cgi?id=170938
<rdar://problem/31677395>
Reviewed by Simon Fraser.
Source/WebCore:
Test: compositing/ios/overflow-scroll-touch-tiles.html
- platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setApproximatePosition):
Make virtual.
(WebCore::GraphicsLayer::flushCompositingState):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::syncPosition):
Rename PositionChanged enum value to more descriptive NeedsComputeVisibleAndCoverageRect.
(WebCore::GraphicsLayerCA::setApproximatePosition):
(WebCore::GraphicsLayerCA::syncBoundsOrigin):
Like syncPosition make these invalidate the geometry without scheduling a flush. This is needed
so when flush happens we don't just optimize it away. Tile coverage depends on position and bounds.
(WebCore::GraphicsLayerCA::flushCompositingState):
Remove FlushScope argument.
Disable optimization on WK1 due to some UIKit interactions.
- platform/graphics/ca/GraphicsLayerCA.h:
- platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
(WebCore::GraphicsLayerTextureMapper::flushCompositingState):
- platform/graphics/texmap/GraphicsLayerTextureMapper.h:
LayoutTests:
Add test verifying that tiles get created for touch overflow scrolling.
- compositing/ios/overflow-scroll-touch-tiles-expected.txt: Added.
- compositing/ios/overflow-scroll-touch-tiles.html: Added.
- 10:14 AM Changeset in webkit [215468] by
-
- 3 edits in trunk/Source/WebKit2
Force scroll view insets to be respected regardless of rubber-banding state
https://bugs.webkit.org/show_bug.cgi?id=170937
<rdar://problem/31412788>
Reviewed by Simon Fraser.
- Platform/spi/ios/UIKitSPI.h:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
- 10:11 AM Changeset in webkit [215467] by
-
- 2 edits in trunk/Source/WebCore
Try to fix the iOS Debug build
- platform/LengthBox.h:
- 9:42 AM Changeset in webkit [215466] by
-
- 2 edits in trunk/Source/JavaScriptCore
[DFG] Use Phantom for base instead of getter when inlining intrinsic getter
https://bugs.webkit.org/show_bug.cgi?id=170947
Reviewed by Saam Barati.
getter does not need to be live after OSR Exit.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleGetById):
- 9:34 AM Changeset in webkit [215465] by
-
- 2 edits in trunk/Source/WebCore
Break Document::m_associatedFormControls reference cycle.
<https://webkit.org/b/170946>
Reviewed by Antti Koivisto.
There was a race between didAssociateFormControls() and didAssociateFormControlsTimerFired()
where detaching Document from its frame between the two would lead to an unbreakable reference
cycle between Document and its form elements.
Solve this by clearing the set of associated form elements in removedLastRef(), where we clear
all the other strong smart pointers to elements.
- dom/Document.cpp:
(WebCore::Document::removedLastRef):
- 9:33 AM Changeset in webkit [215464] by
-
- 2 edits in trunk/LayoutTests
Update TestExpectations for "selectors4" tests on mac-wk1.
https://trac.webkit.org/changeset/215457/webkit
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations:
- 9:27 AM Changeset in webkit [215463] by
-
- 8 edits2 adds in trunk
[css-grid] Add support for percentage gaps
https://bugs.webkit.org/show_bug.cgi?id=170764
Reviewed by Sergio Villar Senin.
Source/WebCore:
Part of the code to support percentage gaps was already imported
from Blink in r213149 (bug #168657). However parsing was not enabled yet,
so some pieces were missing.
This patch accepts percentages in the parsing of grid-column-gap and
grid-row-gap properties, and the grid-gap shorthand.
On top of that it gets rid of GridTrackSizingAlgorithm::sizingOperation()
method as it's not needed. And instead it passes the specific operation
to each call to RenderGrid::guttersSize(), otherwise we would be getting
wrong results.
Test: fast/css-grid-layout/grid-gutters-as-percentage.html
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::parseSingleValue): Add support for
percentage values.
(WebCore::CSSPropertyParser::parseShorthand): Ditto.
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::IndefiniteSizeStrategy::recomputeUsedFlexFractionIfNeeded):
Pass the specific sizing operation.
- rendering/GridTrackSizingAlgorithm.h: Remove sizingOperation().
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeTrackBasedLogicalHeight): Pass the specific
sizing operation.
(WebCore::RenderGrid::computeTrackSizesForDefiniteSize): Ditto.
(WebCore::RenderGrid::computeTrackSizesForIndefiniteSize): Ditto.
(WebCore::RenderGrid::populateGridPositionsForDirection): Ditto.
LayoutTests:
Import tests from Blink.
- fast/css-grid-layout/grid-gutters-as-percentage-expected.txt: Added.
- fast/css-grid-layout/grid-gutters-as-percentage.html: Added.
- fast/css-grid-layout/grid-gutters-get-set-expected.txt:
- fast/css-grid-layout/grid-gutters-get-set.html:
- 9:17 AM Changeset in webkit [215462] by
-
- 2 edits in trunk/Websites/webkit.org
Images in WebKit.org blog article are stretched out
https://bugs.webkit.org/show_bug.cgi?id=169208
Reviewed by Michael Catanzaro.
- wp-content/themes/webkit/style.css:
(article figure > img):
- 9:15 AM Changeset in webkit [215461] by
-
- 3 edits in trunk/Source/WebCore
Add fallback fonts to video captions stylesheet.
https://bugs.webkit.org/show_bug.cgi?id=170495
Reviewed by Eric Carlson.
The kCTFontCascadeListAttribute key is used to obtain the cascade list for a font reference.
I have not added a test, since CaptionUserPreferences::testingMode() returns true when running tests,
preventing this code path from being executed.
- page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::captionsDefaultFontCSS):
- platform/spi/win/CoreTextSPIWin.h:
- 8:39 AM Changeset in webkit [215460] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow-up patch after r215459
https://bugs.webkit.org/show_bug.cgi?id=170940
Reviewed by Filip Pizlo.
CheckCell can cause OSRExit. Thus Phantom should be placed after CheckCell.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::emitFunctionChecks):
(JSC::DFG::ByteCodeParser::handleGetById):
- 8:04 AM Changeset in webkit [215459] by
-
- 3 edits1 add in trunk
[DFG] Drop unknown use of CheckCell's child2 to work ObjectAllocationSinking for Array iterator object
https://bugs.webkit.org/show_bug.cgi?id=170940
Reviewed by Filip Pizlo.
JSTests:
- microbenchmarks/for-of-array.js: Added.
(fn):
Source/JavaScriptCore:
The second argument of CheckCell is not used in meaningful way. It is just *use* the node.
The problem is that it effectively *use* the child2 in ObjectAllocationSinking phase, and
prevent us from eliminating object allocations. Actually, it materializes Array iterator
when inliningnext(). Instead, we should use Phantom in such a case.
It improves destructuring.es6 in SixSpeed 2.5x.
destructuring.es6 308.5184+-25.3490 119.5680+-15.0520 definitely 2.5803x faster
Note that SixSpeed tested in arewefastyet executes all the tests in one process while our SixSpeed
tests each one in isolated way.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::emitFunctionChecks):
(JSC::DFG::ByteCodeParser::handleGetById):
- 4:54 AM Changeset in webkit [215458] by
-
- 3 edits3 adds in trunk
[GTK+] Crash in WebCore::ImageFrame::ImageFrame()
https://bugs.webkit.org/show_bug.cgi?id=170332
Reviewed by Carlos Garcia Campos.
Source/WebCore:
When decoding a PNG image, don't reset the number of frames to 1 when there's a decoding error. Doing
so causes a crash if the number of frames we reported before is bigger than 1.
Test: fast/images/bad-png-missing-fdat.html
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::fallbackNotAnimated):
LayoutTests:
Added a test to ensure that the browser doesn't crash when loading a PNG image which
reports a wrong number of frames.
- fast/images/bad-png-missing-fdat-expected.txt: Added.
- fast/images/bad-png-missing-fdat.html: Added.
- fast/images/resources/bad-png-missing-fdAT.png: Added.
- 2:17 AM Changeset in webkit [215457] by
-
- 5 edits41 adds in trunk/LayoutTests
[selectors4] Import W3C Test Suite
https://bugs.webkit.org/show_bug.cgi?id=170898
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
This patch imports "selectors4" test suite from WPT repo:
https://github.com/w3c/web-platform-tests/tree/master/css/selectors4
- resources/import-expectations.json:
- web-platform-tests/css/selectors4/OWNERS: Added.
- web-platform-tests/css/selectors4/focus-within-001-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-001.html: Added.
- web-platform-tests/css/selectors4/focus-within-002-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-002.html: Added.
- web-platform-tests/css/selectors4/focus-within-003-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-003.html: Added.
- web-platform-tests/css/selectors4/focus-within-004-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-004.html: Added.
- web-platform-tests/css/selectors4/focus-within-005-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-005.html: Added.
- web-platform-tests/css/selectors4/focus-within-006-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-006.html: Added.
- web-platform-tests/css/selectors4/focus-within-007-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-007.html: Added.
- web-platform-tests/css/selectors4/focus-within-008-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-008.html: Added.
- web-platform-tests/css/selectors4/focus-within-009-expected.txt: Added.
- web-platform-tests/css/selectors4/focus-within-009.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-001-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-001.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-002-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-002.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-003-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-003.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-004-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-004.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-005-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-005.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-006-expected.html: Added.
- web-platform-tests/css/selectors4/focus-within-shadow-006.html: Added.
- web-platform-tests/css/selectors4/of-type-selectors-expected.xhtml: Added.
- web-platform-tests/css/selectors4/of-type-selectors.xhtml: Added.
- web-platform-tests/css/selectors4/selector-required-expected.html: Added.
- web-platform-tests/css/selectors4/selector-required.html: Added.
- web-platform-tests/css/selectors4/selectors-dir-selector-ltr-001-expected.xht: Added.
- web-platform-tests/css/selectors4/selectors-dir-selector-ltr-001.html: Added.
- web-platform-tests/css/selectors4/selectors-dir-selector-rtl-001-expected.xht: Added.
- web-platform-tests/css/selectors4/selectors-dir-selector-rtl-001.html: Added.
- web-platform-tests/css/selectors4/w3c-import.log: Added.
LayoutTests:
- TestExpectations: Mark a few tests as failure linking to the related bugs.
- platform/mac-wk1/TestExpectations: Marking some tests that have issues on WK1.
- 1:11 AM Changeset in webkit [215456] by
-
- 2 edits in trunk/LayoutTests
Unreviewed GTK+ gardening. Add several test expectations.
- platform/gtk/TestExpectations:
- 12:57 AM Changeset in webkit [215455] by
-
- 9 edits in trunk/Source
[GLIB] Define priorities also for async network IO tasks
https://bugs.webkit.org/show_bug.cgi?id=170905
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2017-04-18
Reviewed by Žan Doberšek.
Source/WebCore:
- platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::redirectSkipCallback):
(WebCore::sendRequestCallback):
(WebCore::continueAfterDidReceiveResponse):
(WebCore::readCallback):
- platform/network/soup/SocketStreamHandleImplSoup.cpp:
(WebCore::SocketStreamHandleImpl::connected):
(WebCore::SocketStreamHandleImpl::readBytes):
Source/WebKit2:
- NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:
(WebKit::NetworkCache::inputStreamReadReadyCallback):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::outputStreamWriteReadyCallback):
(WebKit::NetworkCache::IOChannel::write):
- NetworkProcess/soup/NetworkDataTaskSoup.cpp:
(WebKit::NetworkDataTaskSoup::skipInputStreamForRedirection):
(WebKit::NetworkDataTaskSoup::read):
(WebKit::NetworkDataTaskSoup::requestNextPart):
(WebKit::NetworkDataTaskSoup::writeDownload):
(WebKit::NetworkDataTaskSoup::didFinishDownload):
- UIProcess/API/gtk/WebKitURISchemeRequest.cpp:
(webkitURISchemeRequestReadCallback):
(webkit_uri_scheme_request_finish):
Source/WTF:
Add AsyncIONetwork, DiskCacheRead and DiskCacheWrite priorities.
- wtf/glib/RunLoopSourcePriority.h:
- 12:28 AM Changeset in webkit [215454] by
-
- 5 edits in trunk/Source
[JSC][GTK] glib RunLoop does not accept negative start interval
https://bugs.webkit.org/show_bug.cgi?id=170775
Reviewed by Saam Barati.
Source/JavaScriptCore:
- heap/GCActivityCallback.cpp:
(JSC::GCActivityCallback::scheduleTimer):
Source/WTF:
RunLoop::Timer for glib does not accept negative start interval.
We use 0_s if the given value is negative.
- wtf/glib/RunLoopGLib.cpp:
(WTF::RunLoop::TimerBase::secondsUntilFire):