Timeline
Oct 22, 2017:
- 10:27 PM Changeset in webkit [223832] by
-
- 2 edits in trunk/JSTests
stress/check-string-ident.js is improperly skipped
https://bugs.webkit.org/show_bug.cgi?id=178642
Reviewed by Saam Barati.
- stress/check-string-ident.js: Drop the defaultNoEagerRun directive
since it enforces the run-jsc-stress-tests script to still set up the
test to run, despite the skip directive that's used before.
- 10:26 PM Changeset in webkit [223831] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Remove !(OS(LINUX) && CPU(ARM64)) guards in RegisterState.h
https://bugs.webkit.org/show_bug.cgi?id=178452
Reviewed by Yusuke Suzuki.
- heap/RegisterState.h: Re-enable the custom RegisterState and
ALLOCATE_AND_GET_REGISTER_STATE definitions on ARM64 Linux. These don't
cause any crashes nowadays.
- 8:38 PM Changeset in webkit [223830] by
-
- 7 edits in tags/Safari-604.4.5.1/Source
Versioning.
- 8:24 PM Changeset in webkit [223829] by
-
- 1 copy in tags/Safari-604.4.5.1
New tag.
- 8:13 PM Changeset in webkit [223828] by
-
- 5 edits8 adds3 deletes in trunk/Source/WebCore
[Settings] Replace current Settings generation with template file based approach
https://bugs.webkit.org/show_bug.cgi?id=178634
Patch by Sam Weinig <sam@webkit.org> on 2017-10-22
Reviewed by Joseph Pecoraro.
This replaces the recently added python based Settings generation with a generator
built in ruby, so we can take advantage of ERB for templating. The result has much
of the logic in the templates and as a result feels much easier to follow and cleaner.
Since I was moving things to ruby, I took the opertunity to switch the Settings definition
file from our .in format to yaml, which is quite a bit easier to read.
- CMakeLists.txt:
- DerivedSources.make:
- Scripts/GenerateSettings: Removed.
- Scripts/GenerateSettings.py: Removed.
- Scripts/GenerateSettings.rb: Added.
- Scripts/GenerateSettings/GenerateInternalSettingsHeaderFile.py: Removed.
- Scripts/GenerateSettings/GenerateInternalSettingsIDLFile.py: Removed.
- Scripts/GenerateSettings/GenerateInternalSettingsImplementationFile.py: Removed.
- Scripts/GenerateSettings/GenerateSettings.py: Removed.
- Scripts/GenerateSettings/GenerateSettingsHeaderFile.py: Removed.
- Scripts/GenerateSettings/GenerateSettingsImplementationFile.py: Removed.
- Scripts/GenerateSettings/Settings.py: Removed.
- Scripts/GenerateSettings/init.py: Removed.
- Scripts/SettingsTemplates: Added.
- Scripts/SettingsTemplates/InternalSettingsGenerated.cpp.erb: Added.
- Scripts/SettingsTemplates/InternalSettingsGenerated.h.erb: Added.
- Scripts/SettingsTemplates/InternalSettingsGenerated.idl.erb: Added.
- Scripts/SettingsTemplates/Settings.cpp.erb: Added.
- Scripts/SettingsTemplates/Settings.h.erb: Added.
- WebCore.xcodeproj/project.pbxproj:
- WebCoreMacros.cmake:
- page/Settings.in: Removed.
- page/Settings.yaml: Added.
- 7:20 PM Changeset in webkit [223827] by
-
- 6 edits in trunk/Source/WebKit
[iOS] WebProcess::initializeWebProcess spends ~150ms spinning up AVSystemController on some devices
https://bugs.webkit.org/show_bug.cgi?id=178640
<rdar://problem/35113105>
Reviewed by Youenn Fablet.
In r213933, we added a mechanism to allow the web process to drive media capture, by setting an attribute on the
shared AVSystemController. This requires us to fault in the Celestial framework, which is a slight performance
hit on some hardware. Instead of doing this at the start of every web process launch, we can just do this work
lazily, the first time the web process requests permissions for user media access.
- WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
(WebKit::WebUserMediaClient::requestUserMediaAccess):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::prepareToSendUserMediaPermissionRequest):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::prepareToSendUserMediaPermissionRequest):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 5:43 PM Changeset in webkit [223826] by
-
- 5 edits2 adds in trunk
REGRESSION(r219675): Web Inspector: CommandLineAPI getEventListeners does not work
https://bugs.webkit.org/show_bug.cgi?id=178650
<rdar://problem/35116347>
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-22
Reviewed by Sam Weinig.
Source/WebCore:
Test: inspector/console/command-line-api-getEventListeners.html
- inspector/CommandLineAPIHost.cpp:
(WebCore::listenerEntriesFromListenerInfo):
Fix typo.
(WebCore::CommandLineAPIHost::getEventListeners):
Fix incorrect early return.
- inspector/CommandLineAPIHost.h:
- inspector/CommandLineAPIHost.idl:
Add more attributes about the listener. These new attributes match output from Chrome.
LayoutTests:
- inspector/console/command-line-api-getEventListeners-expected.txt: Added.
- inspector/console/command-line-api-getEventListeners.html: Added.
- 2:31 PM Changeset in webkit [223825] by
-
- 10 edits2 adds in trunk
[Web Animations] Add animations to the timeline
https://bugs.webkit.org/show_bug.cgi?id=178643
Patch by Antoine Quint <Antoine Quint> on 2017-10-22
Reviewed by Dean Jackson.
Source/WebCore:
If a timeline is provided as a parameter to the Animation constructor,
add it to the timeline, and remove it when the object is destroyed.
We also start the basic mechanism to dump the contents of a timeline
as text for testing purposes, currently only logging the number of
animations in a timeline and just logging the class name for animation
themselves.
Test: webanimations/animation-creation-addition.html
- animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::description):
- animation/AnimationTimeline.h:
- animation/AnimationTimeline.idl:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::create):
(WebCore::WebAnimation::~WebAnimation):
(WebCore::WebAnimation::description):
- animation/WebAnimation.h:
- testing/Internals.cpp:
(WebCore::Internals::timelineDescription):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
Add a new test that checks that animations created with a timeline
are added to the provided timeline.
- webanimations/animation-creation-addition-expected.txt: Added.
- webanimations/animation-creation-addition.html: Added.
- 11:28 AM Changeset in webkit [223824] by
-
- 11 edits in trunk/Source/JavaScriptCore
[JSC][Baseline] Use linkAllSlowCasesForBytecodeOffset as much as possible to simplify slow cases handling
https://bugs.webkit.org/show_bug.cgi?id=178647
Reviewed by Saam Barati.
There is much code counting slow cases in fast paths to call
linkSlowCasecarefully. This is really error-prone
since the number of slow cases depends on values of instruction's metadata. We have linkAllSlowCasesForBytecodeOffset,
which drains all slow cases for a specified bytecode offset. In typical cases like just calling a slow path function,
this is enough. We use linkAllSlowCasesForBytecodeOffset as much as possible. It significantly simplifies the code.
- jit/JIT.h:
(JSC::JIT::linkAllSlowCases):
- jit/JITArithmetic.cpp:
(JSC::JIT::emitSlow_op_unsigned):
(JSC::JIT::emit_compareAndJump):
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emitSlow_op_inc):
(JSC::JIT::emitSlow_op_dec):
(JSC::JIT::emitSlow_op_mod):
(JSC::JIT::emitSlow_op_negate):
(JSC::JIT::emitSlow_op_bitand):
(JSC::JIT::emitSlow_op_bitor):
(JSC::JIT::emitSlow_op_bitxor):
(JSC::JIT::emitSlow_op_lshift):
(JSC::JIT::emitSlow_op_rshift):
(JSC::JIT::emitSlow_op_urshift):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitSlow_op_div):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emitSlow_op_sub):
- jit/JITArithmetic32_64.cpp:
(JSC::JIT::emit_compareAndJumpSlow):
(JSC::JIT::emitSlow_op_unsigned):
(JSC::JIT::emitSlow_op_inc):
(JSC::JIT::emitSlow_op_dec):
(JSC::JIT::emitSlow_op_mod):
- jit/JITCall.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITCall32_64.cpp:
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCallSlowCase):
- jit/JITInlines.h:
(JSC::JIT::linkAllSlowCasesForBytecodeOffset):
- jit/JITOpcodes.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emitSlow_op_create_this):
(JSC::JIT::emitSlow_op_check_tdz):
(JSC::JIT::emitSlow_op_to_this):
(JSC::JIT::emitSlow_op_to_primitive):
(JSC::JIT::emitSlow_op_not):
(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emitSlow_op_neq):
(JSC::JIT::emitSlow_op_stricteq):
(JSC::JIT::emitSlow_op_nstricteq):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emitSlow_op_to_number):
(JSC::JIT::emitSlow_op_to_string):
(JSC::JIT::emitSlow_op_loop_hint):
(JSC::JIT::emitSlow_op_check_traps):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emitSlow_op_get_direct_pname):
(JSC::JIT::emitSlow_op_has_structure_property):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emitSlow_op_new_object):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emitSlow_op_to_primitive):
(JSC::JIT::emitSlow_op_not):
(JSC::JIT::emitSlow_op_stricteq):
(JSC::JIT::emitSlow_op_nstricteq):
(JSC::JIT::emitSlow_op_to_number):
(JSC::JIT::emitSlow_op_to_string):
(JSC::JIT::emitSlow_op_create_this):
(JSC::JIT::emitSlow_op_to_this):
(JSC::JIT::emitSlow_op_check_tdz):
(JSC::JIT::emitSlow_op_has_indexed_property):
(JSC::JIT::emitSlow_op_get_direct_pname):
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emitSlow_op_try_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id):
(JSC::JIT::emitSlow_op_get_by_id_with_this):
(JSC::JIT::emitSlow_op_put_by_id):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emitSlow_op_put_to_scope):
- 9:47 AM Changeset in webkit [223823] by
-
- 9 edits in trunk/Source/JavaScriptCore
[JSC] Clean up baseline slow path
https://bugs.webkit.org/show_bug.cgi?id=178646
Reviewed by Saam Barati.
If the given op is just calling a slow path function, we should use DEFINE_SLOW_OP instead.
It is good since (1) we can reduce the manual emitting code and (2) it can clarify which
function is implemented as a slow path call. This patch is an attempt to reduce 32bit specific
code in baseline JIT.
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
- jit/JIT.h:
- jit/JITArithmetic.cpp:
(JSC::JIT::emit_op_pow): Deleted.
- jit/JITArithmetic32_64.cpp:
(JSC::JIT::emitSlow_op_mod):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.
(JSC::JIT::emit_op_throw_static_error): Deleted.
(JSC::JIT::emit_op_new_array_with_spread): Deleted.
(JSC::JIT::emit_op_spread): Deleted.
(JSC::JIT::emit_op_get_enumerable_length): Deleted.
(JSC::JIT::emit_op_has_generic_property): Deleted.
(JSC::JIT::emit_op_get_property_enumerator): Deleted.
(JSC::JIT::emit_op_to_index_string): Deleted.
(JSC::JIT::emit_op_create_direct_arguments): Deleted.
(JSC::JIT::emit_op_create_scoped_arguments): Deleted.
(JSC::JIT::emit_op_create_cloned_arguments): Deleted.
(JSC::JIT::emit_op_create_rest): Deleted.
(JSC::JIT::emit_op_unreachable): Deleted.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_put_by_val_with_this): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_define_data_property): Deleted.
(JSC::JIT::emit_op_define_accessor_property): Deleted.
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_put_by_val_with_this): Deleted.
Oct 21, 2017:
- 8:41 PM Changeset in webkit [223822] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, silence a -Wunused-but-set-variable warning
- WebProcess/WebPage/EventDispatcher.cpp:
(WebKit::EventDispatcher::wheelEvent):
- 7:05 PM Changeset in webkit [223821] by
-
- 3 edits in trunk/Source/WebCore
[FrameView::layout cleanup] Drop allowSubtree parameter
https://bugs.webkit.org/show_bug.cgi?id=178623
<rdar://problem/35111012>
Reviewed by Sam Weinig.
This flag is only set through ::forceLayout(). Let's just convert the subtree layout
to full layout right before calling ::layout().
No change in functionality.
- page/FrameView.cpp:
(WebCore::FrameView::handleLayoutWithFrameFlatteningIfNeeded):
(WebCore::FrameView::layout):
(WebCore::FrameView::startLayoutAtMainFrameViewIfNeeded):
(WebCore::FrameView::forceLayout):
- page/FrameView.h:
- 3:23 PM Changeset in webkit [223820] by
-
- 14 edits2 deletes in trunk/Source
Web Inspector: Remove unused Console.setMonitoringXHREnabled
https://bugs.webkit.org/show_bug.cgi?id=178617
Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-10-21
Reviewed by Sam Weinig.
Source/JavaScriptCore:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- inspector/agents/InspectorConsoleAgent.h:
- inspector/agents/JSGlobalObjectConsoleAgent.cpp: Removed.
- inspector/agents/JSGlobalObjectConsoleAgent.h: Removed.
- inspector/protocol/Console.json:
Removed files and method.
- inspector/JSGlobalObjectInspectorController.cpp:
(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):
This can use the base ConsoleAgent now.
Source/WebCore:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didFinishXHRLoadingImpl):
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didFinishXHRLoading):
- inspector/WebConsoleAgent.cpp:
(WebCore::WebConsoleAgent::setMonitoringXHREnabled): Deleted.
(WebCore::WebConsoleAgent::didFinishXHRLoading): Deleted.
- inspector/WebConsoleAgent.h:
Remove XHR monitoring code.
- xml/XMLHttpRequest.h:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::didFinishLoading):
(WebCore::XMLHttpRequest::setLastSendLineAndColumnNumber): Deleted.
- xml/XMLHttpRequest.idl:
Remove now unused state on XHR and ExecState requirement for send().
- 2:48 PM Changeset in webkit [223819] by
-
- 4 edits9 adds in trunk
createImageBitmap with basic HTMLImageElement
https://bugs.webkit.org/show_bug.cgi?id=178619
<rdar://problem/35104118>
Reviewed by Antoine Quint.
Source/WebCore:
Implement the basic infrastructure for creating
an ImageBitmap from an HTMLImageElement.
Test: http/wpt/2dcontext/imagebitmap/createImageBitmap.html
- html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createPromise): Create the image buffer
and draw the image into its backing store.
- html/ImageBitmap.h:
LayoutTests:
Make a better test for createImageBitmap. This will be
submitted to Web Platform Tests.
- http/wpt/2dcontext/imagebitmap/createImageBitmap-expected.txt: Added.
- http/wpt/2dcontext/imagebitmap/createImageBitmap.html: Added.
- http/wpt/common/canvas-tests.css: Added.
- http/wpt/common/canvas-tests.js: Added.
- http/wpt/images/pattern.png: Added.
- 2:42 PM Changeset in webkit [223818] by
-
- 5 edits1 copy1 add in trunk
Turn on ccache for Mac cmake builds by default
https://bugs.webkit.org/show_bug.cgi?id=177059
Reviewed by Sam Weinig.
.:
- Source/cmake/WebKitCCache.cmake: Added.
- Source/cmake/WebKitCommon.cmake:
Turn on ccache for Mac CMake builds (Makefile and Ninja generators only)
if it's installed, making use of CMake's ability to wrap the compiler invocation.
Tools:
- ccache/ccache-clang:
- ccache/ccache-wrapper: Added.
Add a pass-through ccache wrapper to be used with CMake, in addition
to the existing faux-clang wrappers.
- Scripts/build-webkit:
Add --use-ccache and --no-use-ccache option, which will define
WK_USE_CCACHE to YES or NO, respectively, which the underlying
build systems respect. We do not define WK_USE_CCACHE if the option
is not specified, because the underlying build systems have different
default values.
- 12:23 PM Changeset in webkit [223817] by
-
- 7 edits in branches/safari-604-branch/Source
Versioning.
- 12:19 PM Changeset in webkit [223816] by
-
- 3 edits1 add in branches/safari-604-branch
Cherry-pick r223731. rdar://problem/35100279
- 12:19 PM Changeset in webkit [223815] by
-
- 3 edits1 add in branches/safari-604-branch
Cherry-pick r223645. rdar://problem/34820875
- 12:19 PM Changeset in webkit [223814] by
-
- 7 edits49 adds in branches/safari-604-branch
Cherry-pick r223578. rdar://problem/34891313
- 8:34 AM Changeset in webkit [223813] by
-
- 6 edits in trunk/Source/JavaScriptCore
[JSC] Remove per-host-function CTI stub in 32bit environment
https://bugs.webkit.org/show_bug.cgi?id=178581
Reviewed by Saam Barati.
JIT::privateCompileCTINativeCall only exists in 32bit environment and it is almost the same to native call CTI stub.
The only difference is that it embed the address of the host function directly in the generated stub. This means
that we have per-host-function CTI stub only in 32bit environment.
This patch just removes it and use one CTI stub instead. This design is the same to the current 64bit implementation.
- jit/JIT.cpp:
(JSC::JIT::compileCTINativeCall): Deleted.
- jit/JIT.h:
- jit/JITOpcodes.cpp:
(JSC::JIT::privateCompileCTINativeCall): Deleted.
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::privateCompileCTINativeCall): Deleted.
- jit/JITThunks.cpp:
(JSC::JITThunks::hostFunctionStub):
- 7:11 AM Changeset in webkit [223812] by
-
- 3 edits in trunk/Source/WebCore
[Web Animations] Add bindings to unified sources
https://bugs.webkit.org/show_bug.cgi?id=178620
Patch by Antoine Quint <Antoine Quint> on 2017-10-21
Reviewed by Dean Jackson.
Removing the Web Animations bindings from the WebCore target and adding them to the unified sources list instead.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- 1:26 AM Changeset in webkit [223811] by
-
- 2 edits in trunk/Source/WebCore
Fix the Mac CMake build
- PlatformMac.cmake:
- 1:15 AM Changeset in webkit [223810] by
-
- 7 edits in trunk
Support ::before/::after pseudo elements with display:contents
https://bugs.webkit.org/show_bug.cgi?id=178584
Reviewed by Ryosuke Niwa.
Source/WebCore:
This is cases like
::before { display:contents; content:'foo' }
- css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustDisplayContentsStyle): Added.
Allow display:contents on pseudo elements.
Factor into function.
(WebCore::StyleResolver::adjustRenderStyle):
- dom/PseudoElement.h:
Add a weak vector of content renderers.
- style/RenderTreePosition.h:
(WebCore::RenderTreePosition::moveToLastChild):
Add a way to set a valid render tree position without a node.
- style/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::createContentRenderers):
Take RenderTreePosition.
(WebCore::updateStyleForContentRenderers):
Update based on the content renderer vector instead of doing a tree walk.
(WebCore::removeAndDestroyContentRenderers):
Helper for destroying content renderers.
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
In the normal case create a render tree position for the pseudo element renderer and
use RenderTreePosition::moveToLastChild to make it a valid position. (The existing
RenderTreePosition interface didn't have way to move to positions in anonymous boxes)
In the case of a non box generating display:contents pseudo element, use the current
render tree position instead.
Ensure that pseudo element renderers are destroyed before creating the new ones since in
display:contents case they are not descendants of the pseudo renderer and don't get cleared
automatically.
LayoutTests:
- TestExpectations: Enable imported/w3c/web-platform-tests/css/css-display-3/display-contents-before-after-002.html