- 22 Jun, 2018 1 commit
-
-
Dominic Farolino authored
As per https://github.com/whatwg/console/issues/27#issuecomment-289312546 and https://bugs.chromium.org/p/chromium/issues/detail?id=706804 we're leaving the console timeline/timelineEnd methods out of the specification and testing that implementations do not expose them (relevant WPTs at https://github.com/web-platform-tests/wpt/blob/master/console/console-tests-historical.any.js). Their implementations should be removed from Chrome, one of the last implementers of these legacy methods. The same goes for markTimeline, as it is deprecated in Chrome and not being included in the spec. R=bmeurer@chromium.org, kozyatinskiy@chromium.org Bug: chromium:706804 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ibe05848fb664d26d16eeb5bdf6f519c1eeb4b2df Reviewed-on: https://chromium-review.googlesource.com/1082112Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Dominic Farolino <domfarolino@gmail.com> Cr-Commit-Position: refs/heads/master@{#53973}
-
- 03 Jun, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
Removed most of mirrors.js and debug.js. Further steps: - migrate liveedit.js to native, - remove debugger context. R=yangguo@chromium.org TBR=leszeks@chromium.org Bug: v8:5530 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I291ef20ef3c63a424d32e3e0c9d0962a6ca382d1 Reviewed-on: https://chromium-review.googlesource.com/1081176 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53480}
-
- 30 May, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
New intstrumentation consists of: - kAsyncFunctionSuspended when async function is suspended on await (called on each await), - kAsyncFunctionFinished when async function is finished. Old instrumentation was based on reusing async function promise. Using this promise produces couple side effects: - for any promise instrumentation we first need to check if it is special case for async function promise or not - it requires expensive reading from promise object. - we capture stack for async functions even if it does not contain awaits. - we do not properly cancel async task created for async function. New intsrumntation resolved all these problems as well as provide clear mapping between async task and generator which we can use later to fetch scope information for async functions on pause. R=dgozman@chromium.org,yangguo@chromium.org Bug: v8:7078 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ifdcec947d91e6e3d4d5f9029bc080a19b8e23d41 Reviewed-on: https://chromium-review.googlesource.com/1043096Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#53445}
-
- 09 May, 2018 1 commit
-
-
Dominic Farolino authored
Implement console.countReset() from the WHATWG Console Standard R=bmeurer@chromium.org, dgozman@chromium.org, kozyatinskiy@chromium.org Bug: chromium:839947 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I8a900e9cdf3e5b08506f709cf6497476c8c6c00b Reviewed-on: https://chromium-review.googlesource.com/1044902Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Dominic Farolino <domfarolino@gmail.com> Cr-Commit-Position: refs/heads/master@{#53106}
-
- 12 Feb, 2018 1 commit
-
-
Yang Guo authored
R=jgruber@chromium.org Bug: v8:5510 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic0ba012ed7ff66f034c5a54554b2ab36d1d70d2c Reviewed-on: https://chromium-review.googlesource.com/911110Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: ปอ คับ <misspor061853@gmail.com> Cr-Commit-Position: refs/heads/master@{#51245}
-
- 21 Nov, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Old instrumentation was designed to collect promise creation stack and promise scheduled stack together. In DevTools for last 6 months we show only creation stack for promises. We got strong support from users for new model. Now we can drop support for scheduled stacks and simplify implementation. New promise instrumentation is straightforward: - we send kDebugPromiseThen when promise is created by .then call, - we send kDebugPromiseCatch when promise is created by .catch call, - we send kDebugWillHandle before chained callback and kDebugDidHandle after chained callback, - and we send separate kDebugAsyncFunctionPromiseCreated for internal promise inside async await function. Advantages: - we reduce amount of captured stacks (we do not capture stack for promise that constructed not by .then or .catch), - we can consider async task related to .then and .catch as one shot since chained callback is executed once, - on V8 side we can implement required instrumentation using only promise hooks, Disadvantage: - see await-promise test, sometimes scheduled stack was useful since we add catch handler in native code, Implementation details: - on kInit promise hook we need to figure out why promise was created. We analyze builtin functions until first user defined function on current stack. If there is kAsyncFunctionPromiseCreate function then we send kDebugAsyncFunctionPromiseCreated event. If there is kPromiseThen or kPromiseCatch then only if this function is bottom builtin function we send corresponded event to inspector. We need it because Promise.all internally calls .then and in this case we have Promise.all and Promise.then on stack at the same time and we do not need to report this internally created promise to inspector. Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I53f47ce8c5c4a9897655c3396c249ea59529ae47 Reviewed-on: https://chromium-review.googlesource.com/765208 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#49553}
-
- 11 Aug, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
As long as we have scripts with negative source offset (see inline event listeners) we should not crash a browser when get negative offset. R=jgruber@chromium.org Bug: chromium:750592 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ic3138e7c61ec0a5133c56de9970acdffa5536d8e Reviewed-on: https://chromium-review.googlesource.com/611613Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47318}
-
- 02 Aug, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
My goal was to move breakpoint API to native with minimal changes around, so on inspector side we use v8::debug::BreakpointId instead of String16, on v8::internal::Debug we use i::BreakPoint object instead of break point object created inside of debug.js. There are a lot of opportunities how we can improve breakpoints (at least we can avoid some of linear lookups to speedup implementation) but I think that as first step we need to remove mirrors/debug.js APIs. Drive by: debugger-script.js and usage of debugger context in inspector code base. R=yangguo@chromium.org,jgruber@chromium.org,clemensh@chromium.org Bug: v8:5510,chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0b17972c39053dd4989bbe26db2bb0b88ca378f7 Reviewed-on: https://chromium-review.googlesource.com/593156Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47091}
-
- 12 Jun, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
console.context(name:string) method returns console instance, this console instance fully implements console interface (including fact that any method can be called without console as receiver). Protocol.Runtime.consoleAPICalled notification contains additional context:string field: - "anonymous#unique-id" for any method call on unnamed console context, - "name#unique-id" for any method call on named console context. console.count and console.timeEnd have context as a scope. console.clear clear all messages regardless on what context instance it was called. console calls is ~10% slower with this CL since we need to store and then fetch console_context_id and console_context_name from function object. We recently (in April) made console calls twice faster so 10% doesn't sound critical and existing of console.log call in hot code is problem by itself. R=pfeldman@chromium.org Bug: chromium:728767 Change-Id: I5fc73216fb8b28bfe1e8c2c1b393ebfbe43cd02e Reviewed-on: https://chromium-review.googlesource.com/522128Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45864}
-
- 20 Apr, 2017 1 commit
-
-
kozyatinskiy authored
With recent CLs we always store maximum N async stack traces and when we reach limit we drop half of them. Current promise collected event requires creating weak handle: - it takes time, - it consumes memory. Since async task id distribution for promises is uniform (each new promise has last_async_task_id + 1 as an id) our hash map is good enough to handle any amount of async task ids, following time of executing 1 000 000 000 of lookups: - for empty hash map: 1.45 seconds, - for hash map with one entry: 14.95 seconds - 1024 entries: 15.03 seconds - 1024 * 1024 entries: 14.82 seconds - 1024 * 1024 * 1024: 17.9 seconds BUG=v8:6189 R=dgozman@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2819423005 Cr-Commit-Position: refs/heads/master@{#44750}
-
- 18 Apr, 2017 1 commit
-
-
kozyatinskiy authored
What will we get: - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, - console calls are ~ 15% faster. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng BUG=v8:6175 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Original-Original-Commit-Position: refs/heads/master@{#44353} Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Original-Commit-Position: refs/heads/master@{#44355} Committed: https://chromium.googlesource.com/v8/v8/+/cc74ea0bc4fe4a71fa53d08b62cc18d15e01fbb3 Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Commit-Position: refs/heads/master@{#44416} Committed: https://chromium.googlesource.com/v8/v8/+/f5dc738cda0336929dcb8eb73b87fdcd01b7c685 Review-Url: https://codereview.chromium.org/2785293002 Cr-Commit-Position: refs/heads/master@{#44702}
-
- 06 Apr, 2017 1 commit
-
-
machenbach authored
Revert of [inspector] move console to builtins (patchset #9 id:180001 of https://codereview.chromium.org/2785293002/ ) Reason for revert: Seems to block roll: https://codereview.chromium.org/2801013002/ See also: https://build.chromium.org/p/client.v8.fyi/builders/Linux%20Tests%20%28dbg%29%281%29/builds/2731 Original issue's description: > [inspector] move console to builtins > > What will we get: > - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), > - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, > - console calls are ~ 15% faster. > > BUG=v8:6175 > R=dgozman@chromium.org > > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Original-Original-Commit-Position: refs/heads/master@{#44353} > Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Original-Commit-Position: refs/heads/master@{#44355} > Committed: https://chromium.googlesource.com/v8/v8/+/cc74ea0bc4fe4a71fa53d08b62cc18d15e01fbb3 > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Commit-Position: refs/heads/master@{#44416} > Committed: https://chromium.googlesource.com/v8/v8/+/f5dc738cda0336929dcb8eb73b87fdcd01b7c685 TBR=dgozman@chromium.org,kozyatinskiy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6175 Review-Url: https://codereview.chromium.org/2801023003 Cr-Commit-Position: refs/heads/master@{#44429}
-
- 05 Apr, 2017 1 commit
-
-
kozyatinskiy authored
What will we get: - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, - console calls are ~ 15% faster. BUG=v8:6175 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Original-Commit-Position: refs/heads/master@{#44353} Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Commit-Position: refs/heads/master@{#44355} Committed: https://chromium.googlesource.com/v8/v8/+/cc74ea0bc4fe4a71fa53d08b62cc18d15e01fbb3 Review-Url: https://codereview.chromium.org/2785293002 Cr-Commit-Position: refs/heads/master@{#44416}
-
- 04 Apr, 2017 2 commits
-
-
machenbach authored
Revert of [inspector] move console to builtins (patchset #7 id:140001 of https://codereview.chromium.org/2785293002/ ) Reason for revert: http://crbug.com/v8/6198 Original issue's description: > [inspector] move console to builtins > > What will we get: > - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), > - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, > - console calls are ~ 15% faster. > > BUG=v8:6175 > R=dgozman@chromium.org > > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Original-Commit-Position: refs/heads/master@{#44353} > Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Commit-Position: refs/heads/master@{#44355} > Committed: https://chromium.googlesource.com/v8/v8/+/cc74ea0bc4fe4a71fa53d08b62cc18d15e01fbb3 TBR=dgozman@chromium.org,kozyatinskiy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6175 Review-Url: https://codereview.chromium.org/2790343002 Cr-Commit-Position: refs/heads/master@{#44358}
-
kozyatinskiy authored
What will we get: - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, - console calls are ~ 15% faster. BUG=v8:6175 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2785293002 Cr-Original-Commit-Position: refs/heads/master@{#44353} Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c Review-Url: https://codereview.chromium.org/2785293002 Cr-Commit-Position: refs/heads/master@{#44355}
-
- 03 Apr, 2017 2 commits
-
-
kozyatinskiy authored
Revert of [inspector] move console to builtins (patchset #6 id:120001 of https://codereview.chromium.org/2785293002/ ) Reason for revert: console.toString() should return "[object Object]" Original issue's description: > [inspector] move console to builtins > > What will we get: > - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), > - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, > - console calls are ~ 15% faster. > > BUG=v8:6175 > R=dgozman@chromium.org > > Review-Url: https://codereview.chromium.org/2785293002 > Cr-Commit-Position: refs/heads/master@{#44353} > Committed: https://chromium.googlesource.com/v8/v8/+/55905f85d63d75aaa9313e51eb7bede754a8e41c TBR=dgozman@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:6175 Review-Url: https://codereview.chromium.org/2795003003 Cr-Commit-Position: refs/heads/master@{#44354}
-
kozyatinskiy authored
What will we get: - console would be included into snapshot and allow us to reduce time that we spent in contextCreated function (~5 times faster), - it allows us to make further small improvement of console methods, e.g. we can implement super quick return from console.assert if first argument is true, - console calls are ~ 15% faster. BUG=v8:6175 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2785293002 Cr-Commit-Position: refs/heads/master@{#44353}
-
- 06 Mar, 2017 1 commit
-
-
kozyatinskiy authored
This CL provide type with each break location, type could be: call, return or debugger statement. BUG=chromium:432469 R=yangguo@chromium.org,dgozman@chromium.org Review-Url: https://codereview.chromium.org/2728563002 Cr-Commit-Position: refs/heads/master@{#43619}
-
- 16 Feb, 2017 1 commit
-
-
yangguo authored
The inspector uses V8's API handles and should not access V8 internals. This change makes sure it can use the coverage data in an encapsulated way. R=jgruber@chromium.org, kozyatinskiy@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2696163002 Cr-Commit-Position: refs/heads/master@{#43231}
-
- 25 Jan, 2017 1 commit
-
-
kozyatinskiy authored
- kDebugPromiseCreated(task, parent_task) This event occurs when promise is created (PromiseHookType::Init). V8Debugger uses this event to maintain task -> parent task map. - kDebugEnqueueAsyncFunction(task) This event occurs when first internal promise for async function is created. V8Debugger collects stack trace at this point. - kDebugEnqueuePromiseResolve(task), This event occurs when Promise fulfills with resolved status. V8Debugger collects stack trace at this point. - kDebugEnqueuePromiseReject(task), This event occurs when Promise fulfills with rejected status. V8Debugger collects stack trace at this point. - kDebugPromiseCollected, This event occurs when Promise is collected and no other chained callbacks can be added. V8Debugger removes information about async task for this promise. - kDebugWillHandle, This event occurs when chained promise function (either resolve or reject handler) is called. V8Debugger installs parent promise's stack (based on task -> parent_task map) as current if available or current promise's scheduled stack otherwise. - kDebugDidHandle, This event occurs after chained promise function has finished. V8Debugger restores asynchronous call chain to previous one. With this change all instrumentation calls are related to current promise (before WillHandle and DidHandle were related to next async task). Before V8Debugger supported only the following: - asyncTaskScheduled(task1) - asyncTaskStarted(task1) - asyncTaskFinished(task1) Now V8Debugger supports the following: - asyncTaskScheduled(parent_task) .. - asyncTaskCreated(task, parent_task), - asyncTaskStarted(task), uses parent_task scheduled stack - asyncTaskScheduled(task) - asyncTaskFinished(task) Additionally: WillHandle and DidHandle were migrated to PromiseHook API. More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE BUG=v8:5738 R=dgozman@chromium.org,gsathya@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2650803003 Cr-Commit-Position: refs/heads/master@{#42644}
-
- 13 Jan, 2017 1 commit
-
-
kozyatinskiy authored
Inspector uses event name only for enqueue* events and doesn't really need name for other events. BUG=v8:5738 R=jgruber@chromium.org,gsathya@chromium.org TBR=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2628173005 Cr-Commit-Position: refs/heads/master@{#42339}
-
- 10 Jan, 2017 1 commit
-
-
kozyatinskiy authored
... which were done after the promise has been resolved. Goal of this CL - change promise instrumentation to support better callbacks, chained after promise resolution and prepare instrumentation for adding new asyncTaskCreated instrumentation. Instrumentation changes: - asyncTaskScheduled(recurring) when promise is fulfilled or rejected, - asyncTaskCancelled when promise is collected (since [1] we can be sure that promise will survive scheduled microtasks). Minor changes: - async task type in inspector <-> debugger API transferred by enum instead of string, - Debug manages async task ids based on promise objects. More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE [1] https://codereview.chromium.org/2581503003/ BUG=chromium:632829,v8:5738 R=dgozman@chromium.org,yangguo@chromium.org,gsathya@chromium.org Review-Url: https://codereview.chromium.org/2578923002 Cr-Commit-Position: refs/heads/master@{#42178}
-
- 05 Dec, 2016 1 commit
-
-
clemensh authored
This CL adds a new header src/debug/interface-types.h, moves the definition of Location from the debug-interface.h to this new header, and adds a new definition for the WasmDisassembly types. This allows to use the types in other implementation files or headers without having to include the entire debug-interface.h, reducing build dependencies and compile time (especially for incremental builds). The WasmDisassembly type replaces the old std::pair<std::string, std::vector<std::tuple<...>>>, which was a bit hard to unravel. R=yangguo@chromium.org, kozyatinskiy@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2529383002 Cr-Commit-Position: refs/heads/master@{#41488}
-